From c795a9a204431c79f06accd11ae485991f905b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20M=C3=BChlstrasser?= Date: Fri, 31 Oct 2014 20:10:18 +0100 Subject: [PATCH 01/21] Fixed typos. --- my_modules/shared/templates/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/my_modules/shared/templates/README.md b/my_modules/shared/templates/README.md index 085abdf89..e4cb160da 100644 --- a/my_modules/shared/templates/README.md +++ b/my_modules/shared/templates/README.md @@ -17,11 +17,11 @@ files. [*machine.xsl*](machine.xsl) is an XML stylesheet that takes things a step further and transforms a machine XML into a stand-alone HTML document, which also includes all necessary compiled scripts (eg, c1p.js, c1p-dbg.js, -pc.js or pc-dbg.js). Most machine XML files explcitly link to this stylesheet, so that simply loading the XML +pc.js or pc-dbg.js). Most machine XML files explicitly link to this stylesheet, so that simply loading the XML file in your web browser creates a working virtual machine. [*manifest.xsl*](manifest.xsl) is an XML stylesheet that renders a software manifest XML file into a standalone -document; it may even contain a referene to a machine XML file. +document; it may even contain a reference to a machine XML file. [*document.xsl*](document.xsl) is a collection of XSL templates used exclusively by [*outline.xsl*](outline.xsl), which is a more grandiose version of [*machine.xsl*](machine.xsl), designed to support XML-based documentation @@ -32,4 +32,4 @@ in a README.md document. Since the XML document syntax that [*outline.xsl*](outline.xsl) supports was never very well documented, I'm tempted to deprecate it and port any XML documents that still rely on it (mostly the older IAS Electronic Computer Project -documents) to Markdown files. \ No newline at end of file +documents) to Markdown files. From 5dce2a1a23863ad53ff3fea3ab83544e61fef63f Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sat, 1 Nov 2014 17:12:20 -0700 Subject: [PATCH 02/21] Implemented 80286 LOADALL --- my_modules/c1pjs-client/lib/cpu.js | 26 +- my_modules/c1pjs-client/lib/debugger.js | 4 +- my_modules/c1pjs-client/lib/disk.js | 6 +- my_modules/c1pjs-client/lib/keyboard.js | 6 +- my_modules/c1pjs-client/lib/panel.js | 6 +- my_modules/c1pjs-client/lib/rom.js | 4 +- my_modules/c1pjs-client/lib/serial.js | 6 +- my_modules/c1pjs-client/lib/video.js | 10 +- .../c1pjs-client/templates/components.xsl | 2 +- my_modules/pcjs-client/lib/.jshintrc | 2 +- my_modules/pcjs-client/lib/computer.js | 30 +- my_modules/pcjs-client/lib/cpu.js | 245 ++--- my_modules/pcjs-client/lib/debugger.js | 149 +-- my_modules/pcjs-client/lib/defines.js | 42 +- my_modules/pcjs-client/lib/disk.js | 2 +- my_modules/pcjs-client/lib/keyboard.js | 4 +- my_modules/pcjs-client/lib/nodebugger.js | 7 +- my_modules/pcjs-client/lib/video.js | 4 +- my_modules/pcjs-client/lib/x86.js | 57 +- my_modules/pcjs-client/lib/x86cpu.js | 96 +- my_modules/pcjs-client/lib/x86grps.js | 34 +- my_modules/pcjs-client/lib/x86help.js | 25 +- my_modules/pcjs-client/lib/x86op0f.js | 57 +- my_modules/pcjs-client/lib/x86opxx.js | 64 +- my_modules/pcjs-client/lib/x86seg.js | 234 +++-- .../pcjs-client/templates/components.xsl | 2 +- my_modules/shared/lib/component.js | 140 +-- versions/c1pjs/1.15.8/c1p-dbg.js | 304 +++--- versions/c1pjs/1.15.8/c1p.js | 220 ++-- versions/pcjs/1.15.8/pc-dbg.js | 994 +++++++++--------- versions/pcjs/1.15.8/pc.js | 812 +++++++------- 31 files changed, 1830 insertions(+), 1764 deletions(-) diff --git a/my_modules/c1pjs-client/lib/cpu.js b/my_modules/c1pjs-client/lib/cpu.js index 36cc5772f..49a32f502 100644 --- a/my_modules/c1pjs-client/lib/cpu.js +++ b/my_modules/c1pjs-client/lib/cpu.js @@ -57,8 +57,8 @@ function C1PCPU(parmsCPU) Component.call(this, "C1PCPU", parmsCPU); this.clearRegs(); - this.fPower = false; - this.fRunning = false; + this.aFlags.fPowered = false; + this.aFlags.fRunning = false; this.fAutoStart = parmsCPU["autoStart"]; /* @@ -482,7 +482,7 @@ Component.subclass(Component, C1PCPU); */ C1PCPU.prototype.reset = function(fPowerOn) { - if (this.fRunning) + if (this.aFlags.fRunning) this.halt(); this.clearRegs(); this.regPC = this.getWord(this.VECTOR_RESET); @@ -516,7 +516,7 @@ C1PCPU.prototype.setBinding = function(c, t, s, e) this.bindings[s] = e; e.onclick = function(cpu) { return function() { - if (!cpu.fRunning) + if (!cpu.aFlags.fRunning) cpu.run(); else cpu.halt(); @@ -579,7 +579,7 @@ C1PCPU.prototype.setBuffer = function(abMemory, start, end) */ C1PCPU.prototype.setPower = function(fOn, cmp) { - if (fOn && !this.fPower) { + if (fOn && !this.aFlags.fPowered) { this.cmp = cmp; /* * Attach the Debugger, if any, to the CPU, so that the CPU can periodically @@ -607,7 +607,7 @@ C1PCPU.prototype.setPower = function(fOn, cmp) }; }(video); } - this.fPower = true; + this.aFlags.fPowered = true; this.reset(true); this.update(); } @@ -880,7 +880,7 @@ C1PCPU.prototype.displayStatus = function() */ C1PCPU.prototype.isRunning = function() { - return this.fRunning; + return this.aFlags.fRunning; }; /** @@ -1051,7 +1051,7 @@ C1PCPU.prototype.run = function() if (this.cmp) this.cmp.stop(this.msRunStart, this.nRunCycles); return; } - if (!this.fRunning) { + if (!this.aFlags.fRunning) { /* * setSpeed() without a speed parameter leaves the selected speed in place, but also resets the * cycle counter and timestamp for the current series of run() calls, calculates the maximum number @@ -1060,7 +1060,7 @@ C1PCPU.prototype.run = function() */ this.setSpeed(); if (this.cmp) this.cmp.start(); - this.fRunning = true; + this.aFlags.fRunning = true; if (this.bindings["run"]) this.bindings["run"].innerHTML = "Halt"; this.setFocus(); } @@ -1107,7 +1107,7 @@ C1PCPU.prototype.run = function() this.nCyclesNextYield += this.nCyclesPerYield; break; } - } while (this.fRunning); + } while (this.aFlags.fRunning); } catch (e) { this.halt(); @@ -1268,8 +1268,8 @@ C1PCPU.prototype.halt = function() this.isBusy(true); this.nBurstCycles -= this.nStepCycles; this.nStepCycles = 0; - if (this.fRunning) { - this.fRunning = false; + if (this.aFlags.fRunning) { + this.aFlags.fRunning = false; if (this.bindings["run"]) this.bindings["run"].innerHTML = "Run"; } }; @@ -1303,7 +1303,7 @@ C1PCPU.prototype.update = function() */ C1PCPU.prototype.getCycles = function() { - return (this.fRunning? this.nRunCycles + this.nBurstCycles - this.nStepCycles : 0); + return (this.aFlags.fRunning? this.nRunCycles + this.nBurstCycles - this.nStepCycles : 0); }; /** diff --git a/my_modules/c1pjs-client/lib/debugger.js b/my_modules/c1pjs-client/lib/debugger.js index 89a0a3866..708ad6ac1 100644 --- a/my_modules/c1pjs-client/lib/debugger.js +++ b/my_modules/c1pjs-client/lib/debugger.js @@ -579,8 +579,8 @@ if (DEBUGGER) { */ C1PDebugger.prototype.setPower = function(fOn, cmp) { - if (fOn && !this.fPower) { - this.fPower = true; + if (fOn && !this.aFlags.fPowered) { + this.aFlags.fPowered = true; this.cpu = cmp.getComponentByType("cpu"); } }; diff --git a/my_modules/c1pjs-client/lib/disk.js b/my_modules/c1pjs-client/lib/disk.js index 04482213f..8da1833a4 100644 --- a/my_modules/c1pjs-client/lib/disk.js +++ b/my_modules/c1pjs-client/lib/disk.js @@ -217,7 +217,7 @@ function C1PDiskController(parmsDC) { Component.call(this, "C1PDiskController", parmsDC); - this.fPower = false; + this.aFlags.fPowered = false; /* * Our DiskController simulates the combination of an MC6820 PIA and an MC6850 ACIA. @@ -733,8 +733,8 @@ C1PDiskController.prototype.setBuffer = function(abMemory, start, end, cpu) */ C1PDiskController.prototype.setPower = function(fOn, cmp) { - if (fOn && !this.fPower) { - this.fPower = true; + if (fOn && !this.aFlags.fPowered) { + this.aFlags.fPowered = true; if (DEBUGGER) this.dbg = cmp.getComponentByType("debugger"); } }; diff --git a/my_modules/c1pjs-client/lib/keyboard.js b/my_modules/c1pjs-client/lib/keyboard.js index 3874031dc..119b82783 100644 --- a/my_modules/c1pjs-client/lib/keyboard.js +++ b/my_modules/c1pjs-client/lib/keyboard.js @@ -122,7 +122,7 @@ function C1PKeyboard(parmsKbd) { Component.call(this, "C1PKeyboard", parmsKbd); - this.fPower = false; + this.aFlags.fPowered = false; this.nDefaultModel = parmsKbd['model']; /* @@ -516,8 +516,8 @@ C1PKeyboard.prototype.setModel = function(nModel) */ C1PKeyboard.prototype.setPower = function(fOn, cmp) { - if (fOn && !this.fPower) { - this.fPower = true; + if (fOn && !this.aFlags.fPowered) { + this.aFlags.fPowered = true; this.cmp = cmp; if (DEBUGGER) this.dbg = cmp.getComponentByType("debugger"); } diff --git a/my_modules/c1pjs-client/lib/panel.js b/my_modules/c1pjs-client/lib/panel.js index 6efbf1944..92651180f 100644 --- a/my_modules/c1pjs-client/lib/panel.js +++ b/my_modules/c1pjs-client/lib/panel.js @@ -44,7 +44,7 @@ function C1PPanel(parmsPanel) { Component.call(this, "C1PPanel", parmsPanel); - this.fPower = false; + this.aFlags.fPowered = false; } Component.subclass(Component, C1PPanel); @@ -77,8 +77,8 @@ C1PPanel.prototype.setBinding = function(sHTMLClass, sHTMLType, sBinding, contro */ C1PPanel.prototype.setPower = function(fOn, cmp) { - if (fOn && !this.fPower) { - this.fPower = true; + if (fOn && !this.aFlags.fPowered) { + this.aFlags.fPowered = true; this.cmp = cmp; this.cpu = cmp.getComponentByType("cpu"); this.kbd = cmp.getComponentByType("keyboard"); diff --git a/my_modules/c1pjs-client/lib/rom.js b/my_modules/c1pjs-client/lib/rom.js index 02505bee8..0b64da37d 100644 --- a/my_modules/c1pjs-client/lib/rom.js +++ b/my_modules/c1pjs-client/lib/rom.js @@ -115,8 +115,8 @@ C1PROM.prototype.setBuffer = function(abMemory, start, end, cpu) */ C1PROM.prototype.setPower = function(fOn, cmp) { - if (fOn && !this.fPower) { - this.fPower = true; + if (fOn && !this.aFlags.fPowered) { + this.aFlags.fPowered = true; if (DEBUGGER) this.dbg = cmp.getComponentByType("debugger"); } }; diff --git a/my_modules/c1pjs-client/lib/serial.js b/my_modules/c1pjs-client/lib/serial.js index c21a91f0b..fb1c898b7 100644 --- a/my_modules/c1pjs-client/lib/serial.js +++ b/my_modules/c1pjs-client/lib/serial.js @@ -44,7 +44,7 @@ function C1PSerialPort(parmsSerial) { Component.call(this, "C1PSerialPort", parmsSerial); - this.fPower = false; + this.aFlags.fPowered = false; this.fDemo = parmsSerial['demo']; this.STATUS_NONE = 0x00; @@ -160,8 +160,8 @@ C1PSerialPort.prototype.setBuffer = function(abMemory, start, end, cpu) */ C1PSerialPort.prototype.setPower = function(fOn, cmp) { - if (fOn && !this.fPower) { - this.fPower = true; + if (fOn && !this.aFlags.fPowered) { + this.aFlags.fPowered = true; this.cmp = cmp; this.kbd = cmp.getComponentByType("keyboard"); if (DEBUGGER) this.dbg = cmp.getComponentByType("debugger"); diff --git a/my_modules/c1pjs-client/lib/video.js b/my_modules/c1pjs-client/lib/video.js index 45efe9cd4..628ce3fa3 100644 --- a/my_modules/c1pjs-client/lib/video.js +++ b/my_modules/c1pjs-client/lib/video.js @@ -308,8 +308,8 @@ C1PVideo.prototype.setPower = function(fOn, cmp) * it ourselves, too. This also means that updateScreen() need check only fPower and not isReady(), * since we guarantee that the former implies the latter. */ - if (fOn && !this.fPower && this.isReady()) { - this.fPower = true; + if (fOn && !this.aFlags.fPowered && this.isReady()) { + this.aFlags.fPowered = true; if (DEBUGGER) this.dbg = cmp.getComponentByType("debugger"); /* * If we have an associated keyboard, then ensure that the keyboard will be notified whenever @@ -328,8 +328,8 @@ C1PVideo.prototype.setPower = function(fOn, cmp) } } else - if (!fOn && this.fPower) { - this.fPower = false; + if (!fOn && this.aFlags.fPowered) { + this.aFlags.fPowered = false; /* * This is where we would add some method of blanking the display, without the disturbing the video * buffer contents, and blocking all further updates to the display. @@ -442,7 +442,7 @@ C1PVideo.prototype.initScreen = function() C1PVideo.prototype.updateScreen = function() { var offset = 0; - if (this.fPower) { + if (this.aFlags.fPowered) { while (offset < this.cbScreen) { var b = this.abMem[this.offVideo + offset]; if (this.abScreen[offset] != b) { diff --git a/my_modules/c1pjs-client/templates/components.xsl b/my_modules/c1pjs-client/templates/components.xsl index abdb87994..282d2a6d1 100644 --- a/my_modules/c1pjs-client/templates/components.xsl +++ b/my_modules/c1pjs-client/templates/components.xsl @@ -9,7 +9,7 @@ c1p c1pjs - 1.0.0 + 1.x.x www.pcjs.org diff --git a/my_modules/pcjs-client/lib/.jshintrc b/my_modules/pcjs-client/lib/.jshintrc index e7cb1bbbb..8d6a42516 100644 --- a/my_modules/pcjs-client/lib/.jshintrc +++ b/my_modules/pcjs-client/lib/.jshintrc @@ -15,7 +15,7 @@ "PCJSCLASS": true, "DEBUGGER": true, "PREFETCH": true, - "FASTDISABLE": true, + "EAFUNCS": true, "FATARRAYS": true, "TYPEDARRAYS": true, "Component": true, diff --git a/my_modules/pcjs-client/lib/computer.js b/my_modules/pcjs-client/lib/computer.js index 87a2590da..bea44bb70 100644 --- a/my_modules/pcjs-client/lib/computer.js +++ b/my_modules/pcjs-client/lib/computer.js @@ -123,11 +123,11 @@ function Computer(parmsComputer, parmsMachine, fSuspended) { Component.call(this, "Computer", parmsComputer, Computer); - this.fPowered = false; + this.aFlags.fPowered = false; this.nBusWidth = parmsComputer['buswidth']; this.resume = Computer.RESUME_NONE; this.sStateData = null; - this.fServerState = this.fSave = false; + this.fServerState = false; this.url = parmsMachine? parmsMachine['url'] : null; /* @@ -544,9 +544,9 @@ Computer.prototype.powerOn = function(resume) */ Computer.prototype.powerRestore = function(component, stateComputer, fRepower, fRestore) { - if (!component.fPowered) { + if (!component.aFlags.fPowered) { - component.fPowered = true; + component.aFlags.fPowered = true; if (component.powerUp) { @@ -649,9 +649,9 @@ Computer.prototype.donePowerOn = function(aParms) var fRepower = (aParms[1] < 0); var fRestore = aParms[2]; - if (DEBUG && this.fPowered) this.messageDebugger("Computer.donePowerOn(): redundant"); + if (DEBUG && this.aFlags.fPowered) this.messageDebugger("Computer.donePowerOn(): redundant"); - this.fPowered = true; + this.aFlags.fPowered = true; if (!this.fInitialized) { this.println(Computer.sAppName + " v" + Computer.sAppVer + "\n" + Computer.sCopyright + "\n" + Computer.LICENSE); @@ -754,7 +754,7 @@ Computer.prototype.powerOff = function(fSave, fShutdown) data = this.cpu.powerDown(fSave, fShutdown); if (typeof data === "object") stateComputer.set(this.cpu.id, data); if (fShutdown) { - this.cpu.fPowered = false; + this.cpu.aFlags.fPowered = false; if (data === false) sState = null; } } @@ -762,13 +762,13 @@ Computer.prototype.powerOff = function(fSave, fShutdown) var aComponents = Component.getComponents(this.id); for (var iComponent = 0; iComponent < aComponents.length; iComponent++) { var component = aComponents[iComponent]; - if (component.fPowered) { + if (component.aFlags.fPowered) { if (component.powerDown) { data = component.powerDown(fSave, fShutdown); if (typeof data === "object") stateComputer.set(component.id, data); } if (fShutdown) { - component.fPowered = false; + component.aFlags.fPowered = false; if (data === false) sState = null; } } @@ -820,7 +820,7 @@ Computer.prototype.powerOff = function(fSave, fShutdown) } } - if (fShutdown) this.fPowered = false; + if (fShutdown) this.aFlags.fPowered = false; return sState; }; @@ -1221,7 +1221,7 @@ Computer.init = function() */ var computer = new Computer(parmsComputer, parmsMachine, true); - if (DEBUG) computer.messageDebugger("onInit(" + computer.fPowered + ")"); + if (DEBUG) computer.messageDebugger("onInit(" + computer.aFlags.fPowered + ")"); /* * For now, all we support are "reset" and "save" buttons. We may eventually add a "power" @@ -1251,9 +1251,9 @@ Computer.show = function() var computer = Component.getComponentByType("Computer", parmsComputer['id']); if (computer) { - if (DEBUG) computer.messageDebugger("onShow(" + computer.fInitialized + "," + computer.fPowered + ")"); + if (DEBUG) computer.messageDebugger("onShow(" + computer.fInitialized + "," + computer.aFlags.fPowered + ")"); - if (computer.fInitialized && !computer.fPowered) { + if (computer.fInitialized && !computer.aFlags.fPowered) { /** * Repower the computer, notifying every component to continue running as-is. */ @@ -1298,9 +1298,9 @@ Computer.exit = function() var computer = Component.getComponentByType("Computer", parmsComputer['id']); if (computer) { - if (DEBUG) computer.messageDebugger("onExit(" + computer.fPowered + ")"); + if (DEBUG) computer.messageDebugger("onExit(" + computer.aFlags.fPowered + ")"); - if (computer.fPowered) { + if (computer.aFlags.fPowered) { /** * Power "down" the computer, giving every component an opportunity to save its state, * but only if 'resume' has been set AND there is no valid resume path (because if a valid resume diff --git a/my_modules/pcjs-client/lib/cpu.js b/my_modules/pcjs-client/lib/cpu.js index f40ea164e..b7349a94a 100644 --- a/my_modules/pcjs-client/lib/cpu.js +++ b/my_modules/pcjs-client/lib/cpu.js @@ -80,23 +80,24 @@ function CPU(parmsCPU, nCyclesDefault) var nMultiplier = parmsCPU['multiplier'] || 1; - this.nCyclesPerSecond = nCycles; + this.aCounts = {}; + this.aCounts.nCyclesPerSecond = nCycles; /* * nCyclesMultiplier replaces the old "speed" variable (0, 1, 2) and eliminates the need for * the constants (SPEED_SLOW, SPEED_FAST and SPEED_MAX). The UI simply doubles the multiplier * until we've exceeded the host's speed limit and then starts the multiplier over at 1. */ - this.nCyclesMultiplier = nMultiplier; - this.mhzDefault = Math.round(this.nCyclesPerSecond / 10000) / 100; + this.aCounts.nCyclesMultiplier = nMultiplier; + this.aCounts.mhzDefault = Math.round(this.aCounts.nCyclesPerSecond / 10000) / 100; /* * TODO: Take care of this with an initial setSpeed() call instead? */ - this.mhzTarget = this.mhzDefault * this.nCyclesMultiplier; + this.aCounts.mhzTarget = this.aCounts.mhzDefault * this.aCounts.nCyclesMultiplier; - this.fPowered = false; - this.fRunning = false; - this.fAutoStart = parmsCPU['autoStart']; + this.aFlags.fPowered = false; + this.aFlags.fRunning = false; + this.aFlags.fAutoStart = parmsCPU['autoStart']; /* * Provide a power-saving URL-based way of overriding the 'autostart' setting; @@ -105,7 +106,7 @@ function CPU(parmsCPU, nCyclesDefault) */ var sAutoStart = Component.parmsURL['autostart']; if (sAutoStart !== undefined) { - this.fAutoStart = (sAutoStart == "true"? true : (sAutoStart == "false"? false : null)); + this.aFlags.fAutoStart = (sAutoStart == "true"? true : (sAutoStart == "false"? false : null)); } /* @@ -117,11 +118,11 @@ function CPU(parmsCPU, nCyclesDefault) * command ("x"); for example, "x cs int 5000" will set nCyclesChecksumInterval to 5000 * and call resetChecksum(). */ - this.fChecksum = false; - this.nChecksum = this.nCyclesChecksumNext = 0; - this.nCyclesChecksumStart = parmsCPU["csStart"]; - this.nCyclesChecksumInterval = parmsCPU["csInterval"]; - this.nCyclesChecksumStop = parmsCPU["csStop"]; + this.aFlags.fChecksum = false; + this.aCounts.nChecksum = this.aCounts.nCyclesChecksumNext = 0; + this.aCounts.nCyclesChecksumStart = parmsCPU["csStart"]; + this.aCounts.nCyclesChecksumInterval = parmsCPU["csInterval"]; + this.aCounts.nCyclesChecksumStop = parmsCPU["csStop"]; var cpu = this; this.onRunTimeout = function() { cpu.runCPU(); }; @@ -138,16 +139,16 @@ Component.subclass(Component, CPU); * calcCycles(), which uses the nCyclesPerSecond passed to the constructor as a starting * point and computes the following variables: * - * this.nCyclesPerYield (this.nCyclesPerSecond / CPU.YIELDS_PER_SECOND) - * this.nCyclesPerVideoUpdate (this.nCyclesPerSecond / CPU.VIDEO_UPDATES_PER_SECOND) - * this.nCyclesPerStatusUpdate (this.nCyclesPerSecond / CPU.STATUS_UPDATES_PER_SECOND) + * this.aCounts.nCyclesPerYield (this.aCounts.nCyclesPerSecond / CPU.YIELDS_PER_SECOND) + * this.aCounts.nCyclesPerVideoUpdate (this.aCounts.nCyclesPerSecond / CPU.VIDEO_UPDATES_PER_SECOND) + * this.aCounts.nCyclesPerStatusUpdate (this.aCounts.nCyclesPerSecond / CPU.STATUS_UPDATES_PER_SECOND) * * The above variables are also multiplied by any cycle multiplier in effect, via setSpeed(), * and then they're used to initialize another set of variables for each runCPU() iteration: * - * this.nCyclesNextYield <= this.nCyclesPerYield - * this.nCyclesNextVideoUpdate <= this.nCyclesPerVideoUpdate - * this.nCyclesNextStatusUpdate <= this.nCyclesPerStatusUpdate + * this.aCounts.nCyclesNextYield <= this.aCounts.nCyclesPerYield + * this.aCounts.nCyclesNextVideoUpdate <= this.aCounts.nCyclesPerVideoUpdate + * this.aCounts.nCyclesNextStatusUpdate <= this.aCounts.nCyclesPerStatusUpdate */ CPU.YIELDS_PER_SECOND = 30; CPU.VIDEO_UPDATES_PER_SECOND = 60; // WARNING: if you change this, beware of side-effects in the Video component @@ -264,7 +265,7 @@ CPU.prototype.powerUp = function(data, fRepower) this.println("No debugger detected"); } } - this.fPowered = true; + this.aFlags.fPowered = true; if (!this.autoStart() && this.dbg) this.dbg.updateStatus(); this.updateCPU(); return true; @@ -279,7 +280,7 @@ CPU.prototype.powerUp = function(data, fRepower) */ CPU.prototype.powerDown = function(fSave) { - this.fPowered = false; + this.aFlags.fPowered = false; return fSave && this.save ? this.save() : true; }; @@ -291,7 +292,7 @@ CPU.prototype.powerDown = function(fSave) */ CPU.prototype.autoStart = function() { - if (this.fAutoStart === true || this.fAutoStart === null && (!DEBUGGER || !this.dbg) && this.bindings["run"] === undefined) { + if (this.aFlags.fAutoStart === true || this.aFlags.fAutoStart === null && (!DEBUGGER || !this.dbg) && this.bindings["run"] === undefined) { this.runCPU(); // start running automatically on power-up, assuming there's no Debugger return true; } @@ -318,7 +319,7 @@ CPU.prototype.setFocus = function() */ CPU.prototype.isPowered = function() { - if (!this.fPowered) { + if (!this.aFlags.fPowered) { this.println(this.toString() + " not powered"); return false; } @@ -333,7 +334,7 @@ CPU.prototype.isPowered = function() */ CPU.prototype.isRunning = function() { - return this.fRunning; + return this.aFlags.fRunning; }; /** @@ -361,14 +362,14 @@ CPU.prototype.getChecksum = function() */ CPU.prototype.resetChecksum = function() { - if (this.nCyclesChecksumStart === undefined) this.nCyclesChecksumStart = 0; - if (this.nCyclesChecksumInterval === undefined) this.nCyclesChecksumInterval = -1; - if (this.nCyclesChecksumStop === undefined) this.nCyclesChecksumStop = -1; - this.fChecksum = (this.nCyclesChecksumStart >= 0 && this.nCyclesChecksumInterval > 0); - if (this.fChecksum) { - this.nChecksum = 0; - this.nCyclesChecksumNext = this.nCyclesChecksumStart - this.nTotalCycles; - // this.nCyclesChecksumNext = this.nCyclesChecksumStart + this.nCyclesChecksumInterval - (this.nTotalCycles % this.nCyclesChecksumInterval); + if (this.aCounts.nCyclesChecksumStart === undefined) this.aCounts.nCyclesChecksumStart = 0; + if (this.aCounts.nCyclesChecksumInterval === undefined) this.aCounts.nCyclesChecksumInterval = -1; + if (this.aCounts.nCyclesChecksumStop === undefined) this.aCounts.nCyclesChecksumStop = -1; + this.aFlags.fChecksum = (this.aCounts.nCyclesChecksumStart >= 0 && this.aCounts.nCyclesChecksumInterval > 0); + if (this.aFlags.fChecksum) { + this.aCounts.nChecksum = 0; + this.aCounts.nCyclesChecksumNext = this.aCounts.nCyclesChecksumStart - this.nTotalCycles; + // this.aCounts.nCyclesChecksumNext = this.aCounts.nCyclesChecksumStart + this.aCounts.nCyclesChecksumInterval - (this.nTotalCycles % this.aCounts.nCyclesChecksumInterval); return true; } return false; @@ -387,20 +388,20 @@ CPU.prototype.resetChecksum = function() */ CPU.prototype.updateChecksum = function(nCycles) { - if (this.fChecksum) { + if (this.aFlags.fChecksum) { /* * Get a 32-bit summation of the current CPU state and add it to our running 32-bit checksum */ var fDisplay = false; - this.nChecksum = (this.nChecksum + this.getChecksum()) | 0; - this.nCyclesChecksumNext -= nCycles; - if (this.nCyclesChecksumNext <= 0) { - this.nCyclesChecksumNext += this.nCyclesChecksumInterval; + this.aCounts.nChecksum = (this.aCounts.nChecksum + this.getChecksum()) | 0; + this.aCounts.nCyclesChecksumNext -= nCycles; + if (this.aCounts.nCyclesChecksumNext <= 0) { + this.aCounts.nCyclesChecksumNext += this.aCounts.nCyclesChecksumInterval; fDisplay = true; } - if (this.nCyclesChecksumStop >= 0) { - if (this.nCyclesChecksumStop <= this.getCycles()) { - this.nCyclesChecksumInterval = this.nCyclesChecksumStop = -1; + if (this.aCounts.nCyclesChecksumStop >= 0) { + if (this.aCounts.nCyclesChecksumStop <= this.getCycles()) { + this.aCounts.nCyclesChecksumInterval = this.aCounts.nCyclesChecksumStop = -1; this.resetChecksum(); this.haltCPU(); fDisplay = true; @@ -421,7 +422,7 @@ CPU.prototype.updateChecksum = function(nCycles) */ CPU.prototype.displayChecksum = function() { - this.println(this.getCycles() + " cycles: " + "checksum=" + str.toHex(this.nChecksum)); + this.println(this.getCycles() + " cycles: " + "checksum=" + str.toHex(this.aCounts.nChecksum)); }; /** @@ -492,7 +493,7 @@ CPU.prototype.setBinding = function(sHTMLClass, sHTMLType, sBinding, control) case "run": this.bindings[sBinding] = control; control.onclick = function onClickRun() { - if (!cpu.fRunning) + if (!cpu.aFlags.fRunning) cpu.runCPU(true); else cpu.haltCPU(true); @@ -521,7 +522,7 @@ CPU.prototype.setBinding = function(sHTMLClass, sHTMLType, sBinding, control) case "setSpeed": this.bindings[sBinding] = control; control.onclick = function onClickSetSpeed() { - cpu.setSpeed(cpu.nCyclesMultiplier << 1, true); + cpu.setSpeed(cpu.aCounts.nCyclesMultiplier << 1, true); }; control.innerHTML = this.getSpeedTarget(); fBound = true; @@ -605,26 +606,26 @@ CPU.prototype.calcCycles = function(fRecalc) */ var vMultiplier = 1; if (fRecalc) { - if (this.nCyclesMultiplier > 1 && this.mhz) { - vMultiplier = (this.mhz / this.mhzDefault); + if (this.aCounts.nCyclesMultiplier > 1 && this.aCounts.mhz) { + vMultiplier = (this.aCounts.mhz / this.aCounts.mhzDefault); } } - this.msPerYield = Math.round(1000 / CPU.YIELDS_PER_SECOND); - this.nCyclesPerBurst = Math.floor(this.nCyclesPerSecond / nMostUpdatesPerSecond * vMultiplier); - this.nCyclesPerYield = Math.floor(this.nCyclesPerSecond / CPU.YIELDS_PER_SECOND * vMultiplier); - this.nCyclesPerVideoUpdate = Math.floor(this.nCyclesPerSecond / CPU.VIDEO_UPDATES_PER_SECOND * vMultiplier); - this.nCyclesPerStatusUpdate = Math.floor(this.nCyclesPerSecond / CPU.STATUS_UPDATES_PER_SECOND * vMultiplier); + this.aCounts.msPerYield = Math.round(1000 / CPU.YIELDS_PER_SECOND); + this.aCounts.nCyclesPerBurst = Math.floor(this.aCounts.nCyclesPerSecond / nMostUpdatesPerSecond * vMultiplier); + this.aCounts.nCyclesPerYield = Math.floor(this.aCounts.nCyclesPerSecond / CPU.YIELDS_PER_SECOND * vMultiplier); + this.aCounts.nCyclesPerVideoUpdate = Math.floor(this.aCounts.nCyclesPerSecond / CPU.VIDEO_UPDATES_PER_SECOND * vMultiplier); + this.aCounts.nCyclesPerStatusUpdate = Math.floor(this.aCounts.nCyclesPerSecond / CPU.STATUS_UPDATES_PER_SECOND * vMultiplier); /* * And initialize "next" yield, video update, and status update cycle "threshold" counters to those "per" values */ if (!fRecalc) { - this.nCyclesNextYield = this.nCyclesPerYield; - this.nCyclesNextVideoUpdate = this.nCyclesPerVideoUpdate; - this.nCyclesNextStatusUpdate = this.nCyclesPerStatusUpdate; + this.aCounts.nCyclesNextYield = this.aCounts.nCyclesPerYield; + this.aCounts.nCyclesNextVideoUpdate = this.aCounts.nCyclesPerVideoUpdate; + this.aCounts.nCyclesNextStatusUpdate = this.aCounts.nCyclesPerStatusUpdate; } - this.nRecalcCycles = 0; + this.aCounts.nCyclesRecalc = 0; }; /** @@ -647,11 +648,11 @@ CPU.prototype.calcCycles = function(fRecalc) CPU.prototype.getCycles = function(fScaled) { var nCycles = this.nTotalCycles + this.nRunCycles + this.nBurstCycles - this.nStepCycles; - if (fScaled && this.nCyclesMultiplier > 1 && this.mhz > this.mhzDefault) { + if (fScaled && this.aCounts.nCyclesMultiplier > 1 && this.aCounts.mhz > this.aCounts.mhzDefault) { /* - * We could scale the current cycle count by the current effective speed (this.mhz); eg: + * We could scale the current cycle count by the current effective speed (this.aCounts.mhz); eg: * - * nCycles = Math.round(nCycles / (this.mhz / this.mhzDefault)); + * nCycles = Math.round(nCycles / (this.aCounts.mhz / this.aCounts.mhzDefault)); * * but that speed will fluctuate somewhat: large fluctuations at first, but increasingly smaller * fluctuations after each burst of instructions that runCPU() executes. @@ -666,7 +667,7 @@ CPU.prototype.getCycles = function(fScaled) * interface allows any value, as does the CPU "multiplier" parmsCPU property (from the machine's * XML file). */ - nCycles = Math.round(nCycles / this.nCyclesMultiplier); + nCycles = Math.round(nCycles / this.aCounts.nCyclesMultiplier); } return nCycles; }; @@ -681,7 +682,7 @@ CPU.prototype.getCycles = function(fScaled) */ CPU.prototype.getCyclesPerSecond = function() { - return this.nCyclesPerSecond; + return this.aCounts.nCyclesPerSecond; }; /** @@ -695,7 +696,7 @@ CPU.prototype.getCyclesPerSecond = function() */ CPU.prototype.resetCycles = function() { - this.mhz = 0; + this.aCounts.mhz = 0; this.setBurstDivisor(1); this.nTotalCycles = this.nRunCycles = this.nBurstCycles = this.nStepCycles = 0; this.resetChecksum(); @@ -709,7 +710,7 @@ CPU.prototype.resetCycles = function() * @return {number} the current speed multiplier */ CPU.prototype.getSpeed = function() { - return this.nCyclesMultiplier; + return this.aCounts.nCyclesMultiplier; }; /** @@ -722,7 +723,7 @@ CPU.prototype.getSpeedCurrent = function() { /* * TODO: Has toFixed() been "fixed" in all browsers (eg, IE) to return a rounded value now? */ - return ((this.fRunning && this.mhz)? (this.mhz.toFixed(2) + "Mhz") : "Stopped"); + return ((this.aFlags.fRunning && this.aCounts.mhz)? (this.aCounts.mhz.toFixed(2) + "Mhz") : "Stopped"); }; /** @@ -735,7 +736,7 @@ CPU.prototype.getSpeedTarget = function() { /* * TODO: Has toFixed() been "fixed" in all browsers (eg, IE) to return a rounded value now? */ - return this.mhzTarget.toFixed(2) + "Mhz"; + return this.aCounts.mhzTarget.toFixed(2) + "Mhz"; }; /** @@ -756,11 +757,11 @@ CPU.prototype.setSpeed = function(nMultiplier, fOnClick) * If we couldn't reach at least 80% (0.8) of the current target speed, * then revert the multiplier back to one. */ - if (this.mhz/this.mhzTarget < 0.8) nMultiplier = 1; - this.nCyclesMultiplier = nMultiplier; - var mhz = this.mhzDefault * this.nCyclesMultiplier; - if (this.mhzTarget != mhz) { - this.mhzTarget = mhz; + if (this.aCounts.mhz / this.aCounts.mhzTarget < 0.8) nMultiplier = 1; + this.aCounts.nCyclesMultiplier = nMultiplier; + var mhz = this.aCounts.mhzDefault * this.aCounts.nCyclesMultiplier; + if (this.aCounts.mhzTarget != mhz) { + this.aCounts.mhzTarget = mhz; var sSpeed = this.getSpeedTarget(); if (this.bindings["setSpeed"]) this.bindings["setSpeed"].innerHTML = sSpeed; this.println("target speed: " + sSpeed); @@ -769,10 +770,10 @@ CPU.prototype.setSpeed = function(nMultiplier, fOnClick) } this.addCycles(this.nRunCycles); this.nRunCycles = 0; - this.msRunStart = usr.getTime(); - this.msEndThisRun = 0; + this.aCounts.msStartRun = usr.getTime(); + this.aCounts.msEndThisRun = 0; this.calcCycles(); - return this.mhzTarget; + return this.aCounts.mhzTarget; }; /** @@ -785,7 +786,7 @@ CPU.prototype.setSpeed = function(nMultiplier, fOnClick) CPU.prototype.calcSpeed = function(nCycles, msElapsed) { if (msElapsed) { - this.mhz = Math.round(nCycles / (msElapsed * 10)) / 100; + this.aCounts.mhz = Math.round(nCycles / (msElapsed * 10)) / 100; if (msElapsed >= 86400000) { this.nTotalCycles = 0; if (this.chipset) this.chipset.updateAllTimers(true); @@ -801,11 +802,11 @@ CPU.prototype.calcSpeed = function(nCycles, msElapsed) */ CPU.prototype.calcStartTime = function() { - if (this.nRecalcCycles >= this.nCyclesPerSecond) { + if (this.aCounts.nCyclesRecalc >= this.aCounts.nCyclesPerSecond) { this.calcCycles(true); } - this.nCyclesThisRun = 0; - this.msStartThisRun = usr.getTime(); + this.aCounts.nCyclesThisRun = 0; + this.aCounts.msStartThisRun = usr.getTime(); /* * Try to detect situations where the browser may have throttled us, such as when the user switches @@ -818,7 +819,7 @@ CPU.prototype.calcStartTime = function() * * We can detect throttling/lagging by verifying that msEndThisRun (which was set at the end of the * previous run and includes any requested sleep time) is comparable to the current msStartThisRun; - * if the delta is significant, we compensate by bumping msRunStart forward by that delta. + * if the delta is significant, we compensate by bumping msStartRun forward by that delta. * * This shouldn't be triggered when the Debugger halts the CPU, because setSpeed() -- which is called * whenever the CPU starts running again -- zeroes msEndThisRun. @@ -832,19 +833,19 @@ CPU.prototype.calcStartTime = function() * to hit its target speed, since you would expect any instruction that displays a message to be an * EXTREMELY slow instruction. */ - if (this.msEndThisRun) { - var msDelta = this.msStartThisRun - this.msEndThisRun; - if (msDelta > this.msPerYield) { + if (this.aCounts.msEndThisRun) { + var msDelta = this.aCounts.msStartThisRun - this.aCounts.msEndThisRun; + if (msDelta > this.aCounts.msPerYield) { if (MAXDEBUG) this.println("large time delay: " + msDelta + "ms"); - this.msRunStart += msDelta; + this.aCounts.msStartRun += msDelta; /* - * Bumping msRunStart forward should NEVER cause it to exceed msStartThisRun; however, just + * Bumping msStartRun forward should NEVER cause it to exceed msStartThisRun; however, just * in case, I make absolutely sure it cannot happen, since doing so could result in negative * speed calculations. */ - Component.assert(this.msRunStart <= this.msStartThisRun); - if (this.msRunStart > this.msStartThisRun) { - this.msRunStart = this.msStartThisRun; + Component.assert(this.aCounts.msStartRun <= this.aCounts.msStartThisRun); + if (this.aCounts.msStartRun > this.aCounts.msStartThisRun) { + this.aCounts.msStartRun = this.aCounts.msStartThisRun; } } } @@ -858,47 +859,47 @@ CPU.prototype.calcStartTime = function() */ CPU.prototype.calcRemainingTime = function() { - this.msEndThisRun = usr.getTime(); + this.aCounts.msEndThisRun = usr.getTime(); - var msYield = this.msPerYield; - if (this.nCyclesThisRun) { + var msYield = this.aCounts.msPerYield; + if (this.aCounts.nCyclesThisRun) { /* * Normally, we would assume we executed a full quota of work over msPerYield, but since the CPU * now has the option of calling yieldCPU(), that might not be true. If nCyclesThisRun is correct, then * the ratio of nCyclesThisRun/nCyclesPerYield should represent the percentage of work we performed, * and so applying that percentage to msPerYield should give us a better estimate of work vs. time. */ - msYield = Math.round(msYield * this.nCyclesThisRun / this.nCyclesPerYield); + msYield = Math.round(msYield * this.aCounts.nCyclesThisRun / this.aCounts.nCyclesPerYield); } - var msElapsedThisRun = this.msEndThisRun - this.msStartThisRun; + var msElapsedThisRun = this.aCounts.msEndThisRun - this.aCounts.msStartThisRun; var msRemainsThisRun = msYield - msElapsedThisRun; /* * We could pass only "this run" results to calcSpeed(): * - * nCycles = this.nCyclesThisRun; + * nCycles = this.aCounts.nCyclesThisRun; * msElapsed = msElapsedThisRun; * * but it seems preferable to use longer time periods and hopefully get a more accurate speed. * - * Also, if msRemainsThisRun >= 0 && this.nCyclesMultiplier == 1, we could pass these results instead: + * Also, if msRemainsThisRun >= 0 && this.aCounts.nCyclesMultiplier == 1, we could pass these results instead: * - * nCycles = this.nCyclesThisRun; - * msElapsed = this.msPerYield; + * nCycles = this.aCounts.nCyclesThisRun; + * msElapsed = this.aCounts.msPerYield; * * to insure that we display a smooth, constant N Mhz. But for now, I prefer seeing any fluctuations. */ var nCycles = this.nRunCycles; - var msElapsed = this.msEndThisRun - this.msRunStart; + var msElapsed = this.aCounts.msEndThisRun - this.aCounts.msStartRun; - if (MAXDEBUG && msRemainsThisRun < 0 && this.nCyclesMultiplier > 1) { + if (MAXDEBUG && msRemainsThisRun < 0 && this.aCounts.nCyclesMultiplier > 1) { this.println("warning: updates @" + msElapsedThisRun + "ms (prefer " + Math.round(msYield) + "ms)"); } this.calcSpeed(nCycles, msElapsed); - if (msRemainsThisRun < 0 || this.mhz < this.mhzTarget) { + if (msRemainsThisRun < 0 || this.aCounts.mhz < this.aCounts.mhzTarget) { /* * If the last burst took MORE time than we allotted (ie, it's taking more than 1 second to simulate * nCyclesPerSecond), all we can do is yield for as little time as possible (ie, 0ms) and hope that the @@ -908,16 +909,16 @@ CPU.prototype.calcRemainingTime = function() } /* - * Last but not least, update nRecalcCycles, so that when runCPU() starts up again and calls calcStartTime(), + * Last but not least, update nCyclesRecalc, so that when runCPU() starts up again and calls calcStartTime(), * it'll be ready to decide if calcCycles() should be called again. */ - this.nRecalcCycles += this.nCyclesThisRun; + this.aCounts.nCyclesRecalc += this.aCounts.nCyclesThisRun; if (DEBUG && this.dbg && this.dbg.messageEnabled(Debugger.MESSAGE_LOG) && msRemainsThisRun) { - this.dbg.message("at " + this.msEndThisRun + "ms, calcRemainingTime returned " + msRemainsThisRun + "ms to sleep"); + this.dbg.message("at " + this.aCounts.msEndThisRun + "ms, calcRemainingTime returned " + msRemainsThisRun + "ms to sleep"); } - this.msEndThisRun += msRemainsThisRun; + this.aCounts.msEndThisRun += msRemainsThisRun; return msRemainsThisRun; }; @@ -934,28 +935,28 @@ CPU.prototype.runCPU = function(fOnClick) if (this.cmp) this.cmp.stop(usr.getTime(), this.getCycles()); return; } - if (!this.fRunning) { + if (!this.aFlags.fRunning) { /* * setSpeed() without a speed parameter leaves the selected speed in place, but also resets the * cycle counter and timestamp for the current series of runCPU() calls, calculates the maximum number - * of cycles for each burst based on the last known effective CPU speed, and resets the nRecalcCycles + * of cycles for each burst based on the last known effective CPU speed, and resets the nCyclesRecalc * threshold counter. */ this.setSpeed(); - if (this.cmp) this.cmp.start(this.msRunStart, this.getCycles()); - this.fRunning = true; + if (this.cmp) this.cmp.start(this.aCounts.msStartRun, this.getCycles()); + this.aFlags.fRunning = true; if (this.chipset) this.chipset.setSpeaker(); if (this.bindings["run"]) this.bindings["run"].innerHTML = "Halt"; if (fOnClick) this.setFocus(); } /* * calcStartTime() initializes the cycle counter and timestamp for this runCPU() invocation, and optionally - * recalculates the the maximum number of cycles for each burst if the nRecalcCycles threshold has been reached. + * recalculates the the maximum number of cycles for each burst if the nCyclesRecalc threshold has been reached. */ this.calcStartTime(); try { do { - var nCyclesPerBurst = this.fChecksum? 1 : Math.round(this.nCyclesPerBurst / this.nBurstDivisor); + var nCyclesPerBurst = this.aFlags.fChecksum? 1 : Math.round(this.aCounts.nCyclesPerBurst / this.nBurstDivisor); /* * This is an alternative to ChipSet calling setBurstDivisor(). Unfortunately, this doesn't seem @@ -982,28 +983,28 @@ CPU.prototype.runCPU = function(fOnClick) */ var nCycles = this.nBurstCycles - this.nStepCycles; this.nRunCycles += nCycles; - this.nCyclesThisRun += nCycles; + this.aCounts.nCyclesThisRun += nCycles; this.addCycles(0, true); this.updateChecksum(nCycles); - this.nCyclesNextVideoUpdate -= nCycles; - if (this.nCyclesNextVideoUpdate <= 0) { - this.nCyclesNextVideoUpdate += this.nCyclesPerVideoUpdate; + this.aCounts.nCyclesNextVideoUpdate -= nCycles; + if (this.aCounts.nCyclesNextVideoUpdate <= 0) { + this.aCounts.nCyclesNextVideoUpdate += this.aCounts.nCyclesPerVideoUpdate; this.displayVideo(); } - this.nCyclesNextStatusUpdate -= nCycles; - if (this.nCyclesNextStatusUpdate <= 0) { - this.nCyclesNextStatusUpdate += this.nCyclesPerStatusUpdate; + this.aCounts.nCyclesNextStatusUpdate -= nCycles; + if (this.aCounts.nCyclesNextStatusUpdate <= 0) { + this.aCounts.nCyclesNextStatusUpdate += this.aCounts.nCyclesPerStatusUpdate; this.displayStatus(); } - this.nCyclesNextYield -= nCycles; - if (this.nCyclesNextYield <= 0) { - this.nCyclesNextYield += this.nCyclesPerYield; + this.aCounts.nCyclesNextYield -= nCycles; + if (this.aCounts.nCyclesNextYield <= 0) { + this.aCounts.nCyclesNextYield += this.aCounts.nCyclesPerYield; break; } - } while (this.fRunning); + } while (this.aFlags.fRunning); } catch (e) { this.haltCPU(); @@ -1029,7 +1030,7 @@ CPU.prototype.runCPU = function(fOnClick) */ CPU.prototype.setBurstCycles = function(nCycles) { - if (this.fRunning) { + if (this.aFlags.fRunning) { var nDelta = this.nStepCycles - nCycles; /* * NOTE: If nDelta is negative, we will actually be increasing nStepCycles and nBurstCycles. @@ -1060,12 +1061,12 @@ CPU.prototype.haltCPU = function(fComplete) this.nStepCycles = 0; this.addCycles(this.nRunCycles); this.nRunCycles = 0; - if (this.fRunning) { - this.fRunning = false; + if (this.aFlags.fRunning) { + this.aFlags.fRunning = false; if (this.chipset) this.chipset.setSpeaker(); if (this.bindings["run"]) this.bindings["run"].innerHTML = "Run"; } - this.fComplete = fComplete; + this.aFlags.fComplete = fComplete; }; /** @@ -1108,7 +1109,7 @@ CPU.prototype.updateCPU = function() */ CPU.prototype.yieldCPU = function() { - this.nCyclesNextYield = 0; // this will break us out of runCPU(), once we break out of stepCPU() + this.aCounts.nCyclesNextYield = 0; // this will break us out of runCPU(), once we break out of stepCPU() this.nBurstCycles -= this.nStepCycles; this.nStepCycles = 0; // this will break us out of stepCPU() /* diff --git a/my_modules/pcjs-client/lib/debugger.js b/my_modules/pcjs-client/lib/debugger.js index 23d5fe486..8bbe507ca 100644 --- a/my_modules/pcjs-client/lib/debugger.js +++ b/my_modules/pcjs-client/lib/debugger.js @@ -235,62 +235,62 @@ if (DEBUGGER) { * 286 or 386, then I might as well leave some of that support in place, since the impact is minimal). */ Debugger.INS = { - NONE: 0, AAA: 1, AAD: 2, AAM: 3, AAS: 4, ADC: 5, ADD: 6, AND: 7, - ARPL: 8, ASIZE: 9, BOUND: 10, BSF: 11, BSR: 12, BT: 13, BTC: 14, BTR: 15, - BTS: 16, CALL: 17, CBW: 18, CLC: 19, CLD: 20, CLI: 21, CLTS: 22, CMC: 23, - CMP: 24, CMPSB: 25, CMPSW: 26, CS: 27, CWD: 28, DAA: 29, DAS: 30, DEC: 31, - DIV: 32, DS: 33, ENTER: 34, ES: 35, ESC: 36, FADD: 37, FBLD: 38, FBSTP: 39, - FCOM: 40, FCOMP: 41, FDIV: 42, FDIVR: 43, FIADD: 44, FICOM: 45, FICOMP: 46, FIDIV: 47, - FIDIVR: 48, FILD: 49, FIMUL: 50, FIST: 51, FISTP: 52, FISUB: 53, FISUBR: 54, FLD: 55, - FLDCW: 56, FLDENV: 57, FMUL: 58, FNSAVE: 59, FNSTCW: 60, FNSTENV: 61, FNSTSW: 62, FRSTOR: 63, - FS: 64, FST: 65, FSTP: 66, FSUB: 67, FSUBR: 68, GBP: 69, GS: 70, HLT: 71, - IDIV: 72, IMUL: 73, IN: 74, INC: 75, INS: 76, INT: 77, INT3: 78, INTO: 79, - IRET: 80, JBE: 81, JC: 82, JCXZ: 83, JG: 84, JGE: 85, JL: 86, JLE: 87, - JMP: 88, JNBE: 89, JNC: 90, JNO: 91, JNP: 92, JNS: 93, JNZ: 94, JO: 95, - JP: 96, JS: 97, JZ: 98, LAHF: 99, LAR: 100, LDS: 101, LEA: 102, LEAVE: 103, - LES: 104, LFS: 105, LGDT: 106, LGS: 107, LIDT: 108, LLDT: 109, LMSW: 110, LOCK: 111, - LODSB: 112, LODSW: 113, LOOP: 114, LOOPNZ: 115, LOOPZ: 116, LSL: 117, LSS: 118, LTR: 119, - MOV: 120, MOVSB: 121, MOVSW: 122, MOVSX: 123, MOVZX: 124, MUL: 125, NEG: 126, NOP: 127, - NOT: 128, OR: 129, OSIZE: 130, OUT: 131, OUTS: 132, POP: 133, POPA: 134, POPF: 135, - PUSH: 136, PUSHA: 137, PUSHF: 138, RCL: 139, RCR: 140, REPNZ: 141, REPZ: 142, RET: 143, - RETF: 144, ROL: 145, ROR: 146, SAHF: 147, SAR: 148, SBB: 149, SCASB: 150, SCASW: 151, - SETBE: 152, SETC: 153, SETG: 154, SETGE: 155, SETL: 156, SETLE: 157, SETNBE: 158, SETNC: 159, - SETNO: 160, SETNP: 161, SETNS: 162, SETNZ: 163, SETO: 164, SETP: 165, SETS: 166, SETZ: 167, - SGDT: 168, SHL: 169, SHLD: 170, SHR: 171, SHRD: 172, SIDT: 173, SLDT: 174, SMSW: 175, - SS: 176, STC: 177, STD: 178, STI: 179, STOSB: 180, STOSW: 181, STR: 182, SUB: 183, - TEST: 184, VERR: 185, VERW: 186, WAIT: 187, XCHG: 188, XLAT: 189, XOR: 190, GRP1B: 191, - GRP1W: 192, GRP1SW: 193, GRP2B: 194, GRP2W: 195, GRP2B1: 196, GRP2W1: 197, GRP2BC: 198, GRP2WC: 199, - GRP3B: 200, GRP3W: 201, GRP4B: 202, GRP4W: 203, OP0F: 204, GRP6: 205, GRP7: 206 + NONE: 0, AAA: 1, AAD: 2, AAM: 3, AAS: 4, ADC: 5, ADD: 6, AND: 7, + ARPL: 8, ASIZE: 9, BOUND: 10, BSF: 11, BSR: 12, BT: 13, BTC: 14, BTR: 15, + BTS: 16, CALL: 17, CBW: 18, CLC: 19, CLD: 20, CLI: 21, CLTS: 22, CMC: 23, + CMP: 24, CMPSB: 25, CMPSW: 26, CS: 27, CWD: 28, DAA: 29, DAS: 30, DEC: 31, + DIV: 32, DS: 33, ENTER: 34, ES: 35, ESC: 36, FADD: 37, FBLD: 38, FBSTP: 39, + FCOM: 40, FCOMP: 41, FDIV: 42, FDIVR: 43, FIADD: 44, FICOM: 45, FICOMP: 46, FIDIV: 47, + FIDIVR: 48, FILD: 49, FIMUL: 50, FIST: 51, FISTP: 52, FISUB: 53, FISUBR: 54, FLD: 55, + FLDCW: 56, FLDENV: 57, FMUL: 58, FNSAVE: 59, FNSTCW: 60, FNSTENV:61, FNSTSW: 62, FRSTOR: 63, + FS: 64, FST: 65, FSTP: 66, FSUB: 67, FSUBR: 68, GBP: 69, GS: 70, HLT: 71, + IDIV: 72, IMUL: 73, IN: 74, INC: 75, INS: 76, INT: 77, INT3: 78, INTO: 79, + IRET: 80, JBE: 81, JC: 82, JCXZ: 83, JG: 84, JGE: 85, JL: 86, JLE: 87, + JMP: 88, JNBE: 89, JNC: 90, JNO: 91, JNP: 92, JNS: 93, JNZ: 94, JO: 95, + JP: 96, JS: 97, JZ: 98, LAHF: 99, LAR: 100, LDS: 101, LEA: 102, LEAVE: 103, + LES: 104, LFS: 105, LGDT: 106, LGS: 107, LIDT: 108, LLDT: 109, LMSW: 110, LOADALL:111, + LOCK: 112, LODSB: 113, LODSW: 114, LOOP: 115, LOOPNZ: 116, LOOPZ: 117, LSL: 118, LSS: 119, + LTR: 120, MOV: 121, MOVSB: 122, MOVSW: 123, MOVSX: 124, MOVZX: 125, MUL: 126, NEG: 127, + NOP: 128, NOT: 129, OR: 130, OSIZE: 131, OUT: 132, OUTS: 133, POP: 134, POPA: 135, + POPF: 136, PUSH: 137, PUSHA: 138, PUSHF: 139, RCL: 140, RCR: 141, REPNZ: 142, REPZ: 143, + RET: 144, RETF: 145, ROL: 146, ROR: 147, SAHF: 148, SAR: 149, SBB: 150, SCASB: 151, + SCASW: 152, SETBE: 153, SETC: 154, SETG: 155, SETGE: 156, SETL: 157, SETLE: 158, SETNBE: 159, + SETNC: 160, SETNO: 161, SETNP: 162, SETNS: 163, SETNZ: 164, SETO: 165, SETP: 166, SETS: 167, + SETZ: 168, SGDT: 169, SHL: 170, SHLD: 171, SHR: 172, SHRD: 173, SIDT: 174, SLDT: 175, + SMSW: 176, SS: 177, STC: 178, STD: 179, STI: 180, STOSB: 181, STOSW: 182, STR: 183, + SUB: 184, TEST: 185, VERR: 186, VERW: 187, WAIT: 188, XCHG: 189, XLAT: 190, XOR: 191, + GRP1B: 192, GRP1W: 193, GRP1SW: 194, GRP2B: 195, GRP2W: 196, GRP2B1: 197, GRP2W1: 198, GRP2BC: 199, + GRP2WC: 200, GRP3B: 201, GRP3W: 202, GRP4B: 203, GRP4W: 204, OP0F: 205, GRP6: 206, GRP7: 207 }; /* * Instruction names, indexed by instruction ordinal (above) */ Debugger.asIns = [ - "DB", "AAA", "AAD", "AAM", "AAS", "ADC", "ADD", "AND", - "ARPL", "AS:", "BOUND", "BSF", "BSR", "BT", "BTC", "BTR", - "BTS", "CALL", "CBW", "CLC", "CLD", "CLI", "CLTS", "CMC", - "CMP", "CMPSB", "CMPSW", "CS:", "CWD", "DAA", "DAS", "DEC", - "DIV", "DS:", "ENTER", "ES:", "ESC", "FADD", "FBLD", "FBSTP", - "FCOM", "FCOMP", "FDIV", "FDIVR", "FIADD", "FICOM", "FICOMP", "FIDIV", - "FIDIVR", "FILD", "FIMUL", "FIST", "FISTP", "FISUB", "FISUBR", "FLD", - "FLDCW", "FLDENV", "FMUL", "FNSAVE", "FNSTCW", "FNSTENV", "FNSTSW", "FRSTOR", - "FS:", "FST", "FSTP", "FSUB", "FSUBR", "GBP", "GS:", "HLT", - "IDIV", "IMUL", "IN", "INC", "INS", "INT", "INT3", "INTO", - "IRET", "JBE", "JC", "JCXZ", "JG", "JGE", "JL", "JLE", - "JMP", "JNBE", "JNC", "JNO", "JNP", "JNS", "JNZ", "JO", - "JP", "JS", "JZ", "LAHF", "LAR", "LDS", "LEA", "LEAVE", - "LES", "LFS", "LGDT", "LGS", "LIDT", "LLDT", "LMSW", "LOCK", - "LODSB", "LODSW", "LOOP", "LOOPNZ", "LOOPZ", "LSL", "LSS", "LTR", - "MOV", "MOVSB", "MOVSW", "MOVSX", "MOVZX", "MUL", "NEG", "NOP", - "NOT", "OR", "OS:", "OUT", "OUTS", "POP", "POPA", "POPF", - "PUSH", "PUSHA", "PUSHF", "RCL", "RCR", "REPNZ", "REPZ", "RET", - "RETF", "ROL", "ROR", "SAHF", "SAR", "SBB", "SCASB", "SCASW", - "SETBE", "SETC", "SETG", "SETGE", "SETL", "SETLE", "SETNBE", "SETNC", - "SETNO", "SETNP", "SETNS", "SETNZ", "SETO", "SETP", "SETS", "SETZ", - "SGDT", "SHL", "SHLD", "SHR", "SHRD", "SIDT", "SLDT", "SMSW", - "SS:", "STC", "STD", "STI", "STOSB", "STOSW", "STR", "SUB", - "TEST", "VERR", "VERW", "WAIT", "XCHG", "XLAT", "XOR" + "DB", "AAA", "AAD", "AAM", "AAS", "ADC", "ADD", "AND", + "ARPL", "AS:", "BOUND", "BSF", "BSR", "BT", "BTC", "BTR", + "BTS", "CALL", "CBW", "CLC", "CLD", "CLI", "CLTS", "CMC", + "CMP", "CMPSB", "CMPSW", "CS:", "CWD", "DAA", "DAS", "DEC", + "DIV", "DS:", "ENTER", "ES:", "ESC", "FADD", "FBLD", "FBSTP", + "FCOM", "FCOMP", "FDIV", "FDIVR", "FIADD", "FICOM", "FICOMP", "FIDIV", + "FIDIVR", "FILD", "FIMUL", "FIST", "FISTP", "FISUB", "FISUBR", "FLD", + "FLDCW", "FLDENV", "FMUL", "FNSAVE", "FNSTCW", "FNSTENV","FNSTSW", "FRSTOR", + "FS:", "FST", "FSTP", "FSUB", "FSUBR", "GBP", "GS:", "HLT", + "IDIV", "IMUL", "IN", "INC", "INS", "INT", "INT3", "INTO", + "IRET", "JBE", "JC", "JCXZ", "JG", "JGE", "JL", "JLE", + "JMP", "JNBE", "JNC", "JNO", "JNP", "JNS", "JNZ", "JO", + "JP", "JS", "JZ", "LAHF", "LAR", "LDS", "LEA", "LEAVE", + "LES", "LFS", "LGDT", "LGS", "LIDT", "LLDT", "LMSW", "LOADALL", + "LOCK", "LODSB", "LODSW", "LOOP", "LOOPNZ", "LOOPZ", "LSL", "LSS", + "LTR", "MOV", "MOVSB", "MOVSW", "MOVSX", "MOVZX", "MUL", "NEG", + "NOP", "NOT", "OR", "OS:", "OUT", "OUTS", "POP", "POPA", + "POPF", "PUSH", "PUSHA", "PUSHF", "RCL", "RCR", "REPNZ", "REPZ", + "RET", "RETF", "ROL", "ROR", "SAHF", "SAR", "SBB", "SCASB", + "SCASW", "SETBE", "SETC", "SETG", "SETGE", "SETL", "SETLE", "SETNBE", + "SETNC", "SETNO", "SETNP", "SETNS", "SETNZ", "SETO", "SETP", "SETS", + "SETZ", "SGDT", "SHL", "SHLD", "SHR", "SHRD", "SIDT", "SLDT", + "SMSW", "SS:", "STC", "STD", "STI", "STOSB", "STOSW", "STR", + "SUB", "TEST", "VERR", "VERW", "WAIT", "XCHG", "XLAT", "XOR" ]; Debugger.CPU_86 = 0; @@ -524,7 +524,7 @@ if (DEBUGGER) { * * On the 8086, it functioned as POP CS * On the 80186, it generated an illegal opcode (UD_FAULT) exception - * On the 80286, it introduced a series of new (and growing) two-byte opcodes + * On the 80286, it introduced a new (and growing) series of two-byte opcodes * * Based on the active CPU model, we make every effort to execute and disassemble this (and every other) * opcode appropriately, by setting the opcode's entry in aaOpDescs accordingly. 0x0F defaults to the 8086 @@ -840,10 +840,11 @@ if (DEBUGGER) { ]; Debugger.aaOp0FDescs = { - 0x00: [Debugger.INS.GRP6, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_BOTH], - 0x01: [Debugger.INS.GRP7, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_BOTH], - 0x02: [Debugger.INS.LAR, Debugger.TYPE_REG | Debugger.TYPE_WORD | Debugger.TYPE_IN | Debugger.TYPE_286, Debugger.TYPE_MEM | Debugger.TYPE_WORD | Debugger.TYPE_IN], - 0x03: [Debugger.INS.LSL, Debugger.TYPE_REG | Debugger.TYPE_WORD | Debugger.TYPE_IN | Debugger.TYPE_286, Debugger.TYPE_MEM | Debugger.TYPE_WORD | Debugger.TYPE_IN] + 0x00: [Debugger.INS.GRP6, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_BOTH], + 0x01: [Debugger.INS.GRP7, Debugger.TYPE_MODRM | Debugger.TYPE_WORD | Debugger.TYPE_BOTH], + 0x02: [Debugger.INS.LAR, Debugger.TYPE_REG | Debugger.TYPE_WORD | Debugger.TYPE_IN | Debugger.TYPE_286, Debugger.TYPE_MEM | Debugger.TYPE_WORD | Debugger.TYPE_IN], + 0x03: [Debugger.INS.LSL, Debugger.TYPE_REG | Debugger.TYPE_WORD | Debugger.TYPE_IN | Debugger.TYPE_286, Debugger.TYPE_MEM | Debugger.TYPE_WORD | Debugger.TYPE_IN], + 0x05: [Debugger.INS.LOADALL, Debugger.TYPE_286] }; Debugger.aaGrpDescs = [ @@ -1778,8 +1779,8 @@ if (DEBUGGER) { * it here, so that if the CPU is reset while running, we can prevent stop() * from unnecessarily dumping the CPU state. */ - if (this.fRunning !== undefined && !fQuiet) this.println("reset"); - this.fRunning = false; + if (this.aFlags.fRunning !== undefined && !fQuiet) this.println("reset"); + this.aFlags.fRunning = false; this.clearTempBreakpoint(); if (!fQuiet) this.updateStatus(); }; @@ -1845,7 +1846,7 @@ if (DEBUGGER) { Debugger.prototype.start = function(ms, nCycles) { if (!this.fProcStep) this.println("running"); - this.fRunning = true; + this.aFlags.fRunning = true; this.msStart = ms; this.nCyclesStart = nCycles; }; @@ -1861,8 +1862,8 @@ if (DEBUGGER) { */ Debugger.prototype.stop = function(ms, nCycles) { - if (this.fRunning) { - this.fRunning = false; + if (this.aFlags.fRunning) { + this.aFlags.fRunning = false; this.nCycles = nCycles - this.nCyclesStart; if (!this.fProcStep) { var sStopped = "stopped"; @@ -2565,11 +2566,11 @@ if (DEBUGGER) { sLine += " "; sLine = sLine.substr(0, 50); sLine += ";"; - if (!this.cpu.fChecksum) { + if (!this.cpu.aFlags.fChecksum) { sLine += sComment + (nSequence != null? '=' + nSequence.toString() : ""); } else { var nCycles = this.cpu.getCycles(); - sLine += "cycles=" + nCycles.toString() + " cs=" + str.toHex(this.cpu.nChecksum); + sLine += "cycles=" + nCycles.toString() + " cs=" + str.toHex(this.cpu.aCounts.nChecksum); } } return sLine; @@ -3495,7 +3496,7 @@ if (DEBUGGER) { break; } } - s += ",dpl" + ((seg.acc >> X86.DESC.ACC.LEVEL.SHIFT) & X86.DESC.ACC.LEVEL.MASK); + s += ",dpl" + ((seg.acc >> X86.DESC.ACC.DPL.SHIFT) & X86.DESC.ACC.DPL.MASK); s += (seg.acc & X86.DESC.ACC.PRESENT)? ",present" : ",not present"; } else { // We must be in real-mode, where selectors have no access bytes @@ -3618,7 +3619,7 @@ if (DEBUGGER) { */ Debugger.prototype.doHalt = function(sCount) { - if (this.fRunning && sCount === undefined) { + if (this.aFlags.fRunning && sCount === undefined) { this.haltCPU(); return; } @@ -3713,11 +3714,11 @@ if (DEBUGGER) { } while (cLines && i != this.iTraceBuffer); if (!sDump) sDump = "nothing to dump"; this.println(sDump); - this.println("msPerYield: " + this.cpu.msPerYield); - this.println("nCyclesPerBurst: " + this.cpu.nCyclesPerBurst); - this.println("nCyclesPerYield: " + this.cpu.nCyclesPerYield); - this.println("nCyclesPerVideoUpdate: " + this.cpu.nCyclesPerVideoUpdate); - this.println("nCyclesPerStatusUpdate: " + this.cpu.nCyclesPerStatusUpdate); + this.println("msPerYield: " + this.cpu.aCounts.msPerYield); + this.println("nCyclesPerBurst: " + this.cpu.aCounts.nCyclesPerBurst); + this.println("nCyclesPerYield: " + this.cpu.aCounts.nCyclesPerYield); + this.println("nCyclesPerVideoUpdate: " + this.cpu.aCounts.nCyclesPerVideoUpdate); + this.println("nCyclesPerStatusUpdate: " + this.cpu.aCounts.nCyclesPerStatusUpdate); } else { var fEnable = (sEnable == "on"); for (var prop in this.traceEnabled) { @@ -3980,13 +3981,13 @@ if (DEBUGGER) { } switch (asArgs[2]) { case "int": - this.cpu.nCyclesChecksumInterval = nCycles; + this.cpu.aCounts.nCyclesChecksumInterval = nCycles; break; case "start": - this.cpu.nCyclesChecksumStart = nCycles; + this.cpu.aCounts.nCyclesChecksumStart = nCycles; break; case "stop": - this.cpu.nCyclesChecksumStop = nCycles; + this.cpu.aCounts.nCyclesChecksumStop = nCycles; break; default: this.println("unknown cs option"); @@ -3995,7 +3996,7 @@ if (DEBUGGER) { if (nCycles !== undefined) { this.cpu.resetChecksum(); } - this.println("checksums " + (this.cpu.fChecksum? "enabled" : "disabled")); + this.println("checksums " + (this.cpu.aFlags.fChecksum? "enabled" : "disabled")); break; case "sp": if (asArgs[2] !== undefined) { @@ -4533,7 +4534,7 @@ if (DEBUGGER) { if (this.cmp) this.cmp.reset(); return true; case "ver": - this.println((APPNAME || "PCjs") + " version " + APPVERSION + " (" + (COMPILED? "release" : (DEBUG? "debug" : "nodebug")) + (PREFETCH? ",prefetch" : "") + (TYPEDARRAYS? ",typedarrays" : (FATARRAYS? ",fatarrays" : "")) + ")"); + this.println((APPNAME || "PCjs") + " version " + APPVERSION + " (" + (COMPILED? "release" : (DEBUG? "debug" : "nodebug")) + (PREFETCH? ",prefetch" : ",noprefetch") + (EAFUNCS? "eafuncs" : ",eatests") + (TYPEDARRAYS? ",typedarrays" : (FATARRAYS? ",fatarrays" : ",dwords")) + ")"); return true; default: ch0 = sCmd.charAt(0); diff --git a/my_modules/pcjs-client/lib/defines.js b/my_modules/pcjs-client/lib/defines.js index 92123af86..62a8aef20 100644 --- a/my_modules/pcjs-client/lib/defines.js +++ b/my_modules/pcjs-client/lib/defines.js @@ -64,7 +64,7 @@ var DEBUGGER = true; // this @define is overridden by the Closure Com * @define {boolean} * * PREFETCH enables the use of a prefetch queue. - * + * * See the Bus component for details. */ var PREFETCH = false; @@ -72,27 +72,21 @@ var PREFETCH = false; /** * @define {boolean} * - * FASTDISABLE turns on memory-function switching to dynamically disable memory accesses whenever the CPU wants - * to disable spurious memory reads (which are mostly harmless) or stale memory writes (which tend to be destructive - * and are NOT mostly harmless). - * - * If FASTDISABLE is false, then the code falls back to setting/testing internal OP_NOREAD and OP_NOWRITE opFlags - * as needed. - * - * At the moment, it seems that FASTDISABLE is a bit slower than relying on the OP_NOREAD/OP_NOWRITE flags, so it's - * turned off; apparently, I was a bit too optimistic calling it "FAST". But your mileage may vary, depending on the - * browser and its version. + * EAFUNCS enables dynamic function switching whenever the CPU needs to disable one or both EA (Effective Address) + * memory functions for an instruction that doesn't observe the normal "read/modify/write" behavior. The goal is to + * avoid useless memory reads (which are mostly harmless) and stale memory writes (which are mostly destructive). * - * See the X86CPU component for details, since it is the CPU, not the underlying Bus or Memory components, that needs - * to be able to do this. + * If EAFUNCS is false, then the CPU falls back to setting/testing internal OP_NOREAD and OP_NOWRITE opFlags + * as needed. At the moment, it seems that "EAFUNCS mode" is a bit slower than "EATESTS mode", which relies on the + * bits in opFlags, so EAFUNCS is turned off; however, your mileage may vary, depending on the browser and its vintage. */ -var FASTDISABLE = false; +var EAFUNCS = false; /** * @define {boolean} * - * FATARRAYS is a Closure Compiler compile-time option that allocates 1 number per byte for Memory blocks; - * wasteful, but potentially slightly faster. + * FATARRAYS is a Closure Compiler compile-time option that allocates a normal Array of numbers for each Memory block, + * where each a number represents ONE byte; very wasteful, but potentially slightly faster. * * See the Memory component for details. */ @@ -100,16 +94,14 @@ var FATARRAYS = false; /** * @define {boolean} - * - * TYPEDARRAYS enables use of typed arrays for Memory blocks. This used to be a compile-time-only option, but since I've - * added memory access functions for typed arrays (see Memory.afnTypedArray), I can turn the support on dynamically now. - * Originally, I didn't see much of a speed increase over the original (non-typed) implementation, but that will probably - * change over time. + * + * TYPEDARRAYS enables use of typed arrays for Memory blocks. This used to be a compile-time-only option, but I've + * added memory access functions for typed arrays (see Memory.afnTypedArray), so the support CAN be enabled dynamically. + * + * However, TYPEDARRAYS has always been slightly slower than the original DWORDS implementation (which uses a normal Array + * of numbers that stores 32 bits, or 4 consecutive bytes, per number), so TYPEDARRAYS is completely disabled for now. * * See the Memory component for details. - * - * UPDATE (Oct 2014): Time has passed, and TypedArray support is still measurably slower than the default Memory implementation, - * so it's turned off by default for now. */ var TYPEDARRAYS = false; // (typeof ArrayBuffer !== 'undefined'); @@ -117,7 +109,7 @@ if (typeof module !== 'undefined') { global.PCJSCLASS = PCJSCLASS; global.DEBUGGER = DEBUGGER; global.PREFETCH = PREFETCH; - global.FASTDISABLE = FASTDISABLE; + global.EAFUNCS = EAFUNCS; global.FATARRAYS = FATARRAYS; global.TYPEDARRAYS = TYPEDARRAYS; /* diff --git a/my_modules/pcjs-client/lib/disk.js b/my_modules/pcjs-client/lib/disk.js index fac3abc5e..2f54b078d 100644 --- a/my_modules/pcjs-client/lib/disk.js +++ b/my_modules/pcjs-client/lib/disk.js @@ -578,7 +578,7 @@ Disk.prototype.doneLoad = function(sDiskFile, sDiskData, nErrorCode, sDiskPath) { var disk = null; this.fWriteProtected = false; - var fPrintOnly = (nErrorCode < 0 && this.cmp && !this.cmp.fPowered); + var fPrintOnly = (nErrorCode < 0 && this.cmp && !this.cmp.aFlags.fPowered); if (this.fOnDemand) { if (!nErrorCode) { diff --git a/my_modules/pcjs-client/lib/keyboard.js b/my_modules/pcjs-client/lib/keyboard.js index 9649eba8f..3d5c23932 100644 --- a/my_modules/pcjs-client/lib/keyboard.js +++ b/my_modules/pcjs-client/lib/keyboard.js @@ -939,8 +939,8 @@ Keyboard.prototype.calcReleaseDelay = function(fRepeat) * handler, otherwise doing things like pressing ENTER repeatedly will result in sluggish behavior * (because you can generally press/release/repress keys faster than they will auto-repeat). */ - var msDelay = (fRepeat ? this.msReleaseRepeat : this.msReleaseDelay); - if (this.cpu && this.cpu.mhz) msDelay /= this.cpu.mhz; + var msDelay = (fRepeat? this.msReleaseRepeat : this.msReleaseDelay); + if (this.cpu && this.cpu.aCounts.mhz) msDelay /= this.cpu.aCounts.mhz; return msDelay; }; diff --git a/my_modules/pcjs-client/lib/nodebugger.js b/my_modules/pcjs-client/lib/nodebugger.js index d3bbe8b12..1d02794bc 100644 --- a/my_modules/pcjs-client/lib/nodebugger.js +++ b/my_modules/pcjs-client/lib/nodebugger.js @@ -38,9 +38,14 @@ * nearly all of debugger.js will be conditionally removed by the compiler, reducing it to little more than a * "type skeleton", which also solves some type-related warnings we would otherwise have if we tried to remove * debugger.js from the compilation process altogether. - * + * * However, when we're in "development mode" and running uncompiled code in debugger-less configurations, * I would still like to skip loading debugger.js altogether. To do that, we must arrange for an additional file, * nodebugger.js, to be loaded as early as possible, which must explicitly UPDATE the value of DEBUGGER to *false*. */ DEBUGGER = false; + +/* + * We still need a Debugger "stub" object, so that attempts to reference Debugger constants won't trigger exceptions. + */ +var Debugger = {}; diff --git a/my_modules/pcjs-client/lib/video.js b/my_modules/pcjs-client/lib/video.js index 01edb4705..d4f507f1f 100644 --- a/my_modules/pcjs-client/lib/video.js +++ b/my_modules/pcjs-client/lib/video.js @@ -3820,9 +3820,9 @@ Video.prototype.updateChar = function(col, row, data, context) Video.prototype.updateScreen = function(fForce) { /* - * The Computer component maintains an fPowered setting on our behalf, so we use it. + * The Computer component maintains the fPowered setting on our behalf, so we use it. */ - if (!this.fPowered) return; + if (!this.aFlags.fPowered) return; /* * If the card's video signal is disabled (eg, during a mode change), then skip the update, diff --git a/my_modules/pcjs-client/lib/x86.js b/my_modules/pcjs-client/lib/x86.js index 0c7c5dbd5..a731d4ed4 100644 --- a/my_modules/pcjs-client/lib/x86.js +++ b/my_modules/pcjs-client/lib/x86.js @@ -75,7 +75,7 @@ var X86 = { SET: 0xfff0 // on the 80286, these are always set (TODO: Verify) }, SEL: { - LEVEL: 0x0003, // selector privilege level (0-3) + RPL: 0x0003, // requested privilege level (0-3) LDT: 0x0004, // table indicator (0: GDT, 1: LDT) MASK: 0xfff8 // table index }, @@ -91,37 +91,48 @@ var X86 = { BASE1623: 0x00ff, MASK: 0xff00, TYPE: { - MASK: 0x1f00, - SEG: 0x1000, + MASK: 0x1f00, + SEG: 0x1000, + NONSEG: 0x0f00, /* - * The rest of these apply only when SEG is set + * The following bits apply only when SEG is set */ - ACCESSED: 0x0100, - READABLE: 0x0200, // CODE: set if readable, clear if execute-only - WRITEABLE: 0x0200, // DATA: set if writable, clear if read-only - CONFORMING: 0x0400, // CODE: set if conforming, clear if not - EXPDOWN: 0x0400, // DATA: set if expand-down, clear if not - CODE: 0x0800, // set for CODE, clear for DATA - CODE_READABLE: 0x0A00, // both CODE and READABLE - CODE_CONFORMING: 0x0C00, // both CODE and CONFORMING - CODE_CONFORMING_READABLE: 0x0E00, // all of CODE and CONFORMING and READABLE + CODE: 0x0800, // set for CODE, clear for DATA + ACCESSED: 0x0100, // set if accessed, clear if not accessed + READABLE: 0x0200, // CODE: set if readable, clear if exec-only + WRITEABLE: 0x0200, // DATA: set if writable, clear if read-only + CONFORMING: 0x0400, // CODE: set if conforming, clear if not + EXPDOWN: 0x0400, // DATA: set if expand-down, clear if not /* - * The rest of these apply only when SEG is clear + * The following are all the possible (valid) types (well, except for the variations + * of DATA and CODE where the ACCESSED bit (0x0100) may also be set) */ - TSS: 0x0100, - LDT: 0x0200, - TSS_LDT: 0x0300, - TSS_BUSY: 0x0300, - GATE_CALL: 0x0400, - GATE_TASK: 0x0500, - GATE_INT: 0x0600, - GATE_TRAP: 0x0700 + TSS: 0x0100, + LDT: 0x0200, + TSS_LDT: 0x0300, + TSS_BUSY: 0x0300, + GATE_CALL: 0x0400, + GATE_TASK: 0x0500, + GATE_INT: 0x0600, + GATE_TRAP: 0x0700, + DATA_READONLY: 0x1000, + DATA_WRITEABLE: 0x1200, + DATA_EXPDOWN_READONLY: 0x1400, + DATA_EXPDOWN_WRITEABLE: 0x1600, + CODE_EXECONLY: 0x1800, + CODE_READABLE: 0x1a00, + CODE_CONFORMING_EXECONLY: 0x1c00, + CODE_CONFORMING_READABLE: 0x1e00 }, - LEVEL: { + DPL: { MASK: 0x6000, SHIFT: 13 }, PRESENT: 0x8000 + }, + EXT: { // descriptor extension word (reserved on the 80286; "must be zero") + OFFSET: 0x6, + MASK: 0xffff } }, /* diff --git a/my_modules/pcjs-client/lib/x86cpu.js b/my_modules/pcjs-client/lib/x86cpu.js index d345eb10f..6dc7e31ff 100644 --- a/my_modules/pcjs-client/lib/x86cpu.js +++ b/my_modules/pcjs-client/lib/x86cpu.js @@ -143,14 +143,14 @@ function X86CPU(parmsCPU) { * stepCPU() call, but it's good form to do so. */ this.nBurstCycles = 0; - this.fComplete = this.fDebugCheck = false; + this.aFlags.fComplete = this.aFlags.fDebugCheck = false; /* * We're just declaring aMemBlocks and associated Bus parameters here; they'll be initialized by initMemory() * when the Bus is initialized. */ this.aMemBlocks = []; - this.addrLimit = this.addrMask = this.blockShift = this.blockLimit = this.blockMask = 0; + this.addrMemMask = this.blockShift = this.blockLimit = this.blockMask = 0; /* * Establish all the default get/set functions for accessing memory; see this function for details. @@ -467,7 +467,7 @@ X86CPU.PREFETCH.MASK = 0x7; // (X86CPU.PREFETCH.ARRAY - 1) X86CPU.prototype.initMemory = function(aMemBlocks, addrLimit, blockShift, blockLimit, blockMask) { this.aMemBlocks = aMemBlocks; - this.addrLimit = this.addrMask = addrLimit; + this.addrMemMask = addrLimit; this.blockShift = blockShift; this.blockLimit = blockLimit; this.blockMask = blockMask; @@ -491,7 +491,7 @@ X86CPU.prototype.initMemory = function(aMemBlocks, addrLimit, blockShift, blockL */ X86CPU.prototype.setAddressMask = function(addrMask) { - this.addrMask = addrMask; + this.addrMemMask = addrMask; }; /** @@ -727,7 +727,7 @@ X86CPU.prototype.initProcessor = function() */ X86CPU.prototype.reset = function() { - if (this.fRunning) this.haltCPU(); + if (this.aFlags.fRunning) this.haltCPU(); this.resetRegs(); this.resetCycles(); this.clearError(); // clear any fatal error/exception that setError() may have flagged @@ -760,9 +760,6 @@ X86CPU.prototype.reset = function() * which takes both an offset and a segment, or setIP(), whichever is appropriate; in unusual cases where only * segCS is changing (eg, undocumented 8086 opcodes), use setCS(). * - * On the 80286, another "register" that mirrors segCS is nCPL: whenever CS is updated, nCPL is updated - * with the CS selector's access level. - * * The other segment registers (DS, SS and ES) have similar setters (for segDS, segSS and segES), but those * functions do not mirror any special segment:offset values in the same way that regEIP mirrors CS:IP. * @@ -827,7 +824,7 @@ X86CPU.prototype.resetRegs = function() /* * This resets the Processor Status flags (regPS), along with all the internal "result registers"; - * we've taken care to ensure that both nCPL and nIOPL are initialized before this first setPS() call. + * we've taken care to ensure that both segCS.cpl and nIOPL are initialized before this first setPS() call. */ this.setPS(0); @@ -924,7 +921,7 @@ X86CPU.prototype.checkIntNotify = function(nInt) } } } - else if (DEBUGGER && this.fDebugCheck) { + else if (DEBUGGER && this.aFlags.fDebugCheck) { /* * Enabling MESSAGE_INT messages is one of the criteria that's also included in fDebugCheck, so for maximum * speed, we check fDebugCheck first. @@ -1007,10 +1004,10 @@ X86CPU.prototype.setProtMode = function(fProt) } else { X86Op0F.aOpGRP6 = X86Op0F.aOpGRP6Real; } - this.segCS.setProt(fProt); - this.segDS.setProt(fProt); - this.segSS.setProt(fProt); - this.segES.setProt(fProt); + this.segCS.updateAccess(fProt); + this.segDS.updateAccess(fProt); + this.segSS.updateAccess(fProt); + this.segES.updateAccess(fProt); }; /** @@ -1048,7 +1045,6 @@ X86CPU.prototype.restoreProtMode = function(a) this.segLDT.restore(a[5]); this.segTSS.restore(a[6]); this.nIOPL = a[7]; - this.nCPL = this.segCS.level; this.setProtMode(); } }; @@ -1122,7 +1118,7 @@ X86CPU.prototype.restore = function(data) /** * setMemoryEnabled() * - * Set the default EA memory access functions (enabled vs. disabled). When FASTDISABLE is true, assorted + * Set the default EA memory access functions (enabled vs. disabled). When EAFUNCS is true, assorted * CPU opcode functions override the default functions whenever a CPU operation needs to temporarily disable the * "get" of a source operand (or the "set" of a destination operand, as in the case of a CMP instruction). * @@ -1248,7 +1244,6 @@ X86CPU.prototype.loadIDTEntry = function(nIDT) X86CPU.prototype.setCS = function(sel) { this.regEIP = this.segCS.load(sel) + this.regIP; - this.nCPL = this.segCS.level; this.opFlags |= this.OPFLAG_NOINTR8086; if (PREFETCH) this.flushPrefetch(this.regEIP); }; @@ -1330,7 +1325,6 @@ X86CPU.prototype.setCSIP = function(off, sel) { Component.assert((off & 0xffff) == off); this.regEIP = this.segCS.load(sel) + (this.regIP = off); - this.nCPL = this.segCS.level; if (PREFETCH) this.flushPrefetch(this.regEIP); }; @@ -1646,13 +1640,13 @@ X86CPU.prototype.setPS = function(regPS) * Since PS.IOPL and PS.IF are part of PS.DIRECT, we need to take care of any 80286-specific checks before * setting the PS.DIRECT bits. Specifically, PS.IOPL is unchanged if CPL > 0, and PS.IF is unchanged if CPL > IOPL. */ - if (!this.nCPL) { + if (!this.segCS.cpl) { this.nIOPL = (regPS & X86.PS.IOPL.MASK) >> X86.PS.IOPL.SHIFT; // IOPL allowed to change if (this.nIOPL && !(this.regMSW & X86.MSW.PE)) this.nIOPL = 0; // effective IOPL remains 0 } else { regPS = (regPS & ~X86.PS.IOPL.MASK) | (this.regPS & X86.PS.IOPL.MASK); // IOPL not allowed to change } - if (this.nCPL > this.nIOPL) { + if (this.segCS.cpl > this.nIOPL) { regPS = (regPS & ~X86.PS.IF) | (this.regPS & X86.PS.IF); // IF not allowed to change } @@ -1744,7 +1738,7 @@ X86CPU.prototype.setBinding = function(sHTMLClass, sHTMLType, sBinding, control) */ X86CPU.prototype.getByte = function(addr) { - return this.aMemBlocks[(addr & this.addrMask) >> this.blockShift].readByte(addr & this.blockLimit); + return this.aMemBlocks[(addr & this.addrMemMask) >> this.blockShift].readByte(addr & this.blockLimit); }; /** @@ -1757,7 +1751,7 @@ X86CPU.prototype.getByte = function(addr) X86CPU.prototype.getWord = function(addr) { var off = addr & this.blockLimit; - var iBlock = (addr & this.addrMask) >> this.blockShift; + var iBlock = (addr & this.addrMemMask) >> this.blockShift; /* * On the 8088, it takes 4 cycles to read the additional byte REGARDLESS whether the address is odd or even. * @@ -1779,7 +1773,7 @@ X86CPU.prototype.getWord = function(addr) */ X86CPU.prototype.setByte = function(addr, b) { - this.aMemBlocks[(addr & this.addrMask) >> this.blockShift].writeByte(addr & this.blockLimit, b & 0xff); + this.aMemBlocks[(addr & this.addrMemMask) >> this.blockShift].writeByte(addr & this.blockLimit, b & 0xff); }; /** @@ -1792,7 +1786,7 @@ X86CPU.prototype.setByte = function(addr, b) X86CPU.prototype.setWord = function(addr, w) { var off = addr & this.blockLimit; - var iBlock = (addr & this.addrMask) >> this.blockShift; + var iBlock = (addr & this.addrMemMask) >> this.blockShift; /* * On the 8088, it takes 4 cycles to write the additional byte REGARDLESS whether the address is odd or even. * @@ -1815,7 +1809,7 @@ X86CPU.prototype.setWord = function(addr, w) * @param {number} off is a segment-relative offset * @return {number} * -X86CPU.prototype.getEAByteDisabled = function(seg, off) +X86CPU.prototype.getEAByteDisabled = function getEAByteDisabled(seg, off) { this.segEA = seg; this.offEA = off; @@ -1836,7 +1830,7 @@ X86CPU.prototype.getEAByteDisabled = function(seg, off) * @param {number} off is a segment-relative offset * @return {number} */ -X86CPU.prototype.getEAWordDisabled = function(seg, off) +X86CPU.prototype.getEAWordDisabled = function getEAWordDisabled(seg, off) { this.segEA = seg; this.offEA = off; @@ -1855,7 +1849,7 @@ X86CPU.prototype.getEAWordDisabled = function(seg, off) * @param {number} off is a segment-relative offset * @return {number} */ -X86CPU.prototype.modEAByteDisabled = function(seg, off) +X86CPU.prototype.modEAByteDisabled = function modEADisabled(seg, off) { this.segEA = seg; this.offEA = off; @@ -1874,7 +1868,7 @@ X86CPU.prototype.modEAWordDisabled = X86CPU.prototype.modEAByteDisabled; * @this {X86CPU} * @param {number} w is the word (16-bit) value to write (ignored) */ -X86CPU.prototype.setEAByteDisabled = function(w) +X86CPU.prototype.setEAByteDisabled = function setEAByteDisabled(w) { }; @@ -1884,7 +1878,7 @@ X86CPU.prototype.setEAByteDisabled = function(w) * @this {X86CPU} * @param {number} w is the word (16-bit) value to write (ignored) */ -X86CPU.prototype.setEAWordDisabled = function(w) +X86CPU.prototype.setEAWordDisabled = function setEAWordDisabled(w) { }; @@ -1896,11 +1890,11 @@ X86CPU.prototype.setEAWordDisabled = function(w) * @param {number} off is a segment-relative offset * @return {number} byte (8-bit) value at that address */ -X86CPU.prototype.getEAByteEnabled = function(seg, off) +X86CPU.prototype.getEAByteEnabled = function getEAByteEnabled(seg, off) { this.segEA = seg; this.regEA = seg.checkRead(this.offEA = off, 0); - if (!FASTDISABLE && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; + if (!EAFUNCS && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; return this.getByte(this.regEA); }; @@ -1912,11 +1906,11 @@ X86CPU.prototype.getEAByteEnabled = function(seg, off) * @param {number} off is a segment-relative offset * @return {number} word (16-bit) value at that address */ -X86CPU.prototype.getEAWordEnabled = function(seg, off) +X86CPU.prototype.getEAWordEnabled = function getEAWordEnabled(seg, off) { this.segEA = seg; this.regEA = seg.checkRead(this.offEA = off, 1); - if (!FASTDISABLE && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; + if (!EAFUNCS && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; return this.getWord(this.regEA); }; @@ -1928,11 +1922,11 @@ X86CPU.prototype.getEAWordEnabled = function(seg, off) * @param {number} off is a segment-relative offset * @return {number} byte (8-bit) value at that address */ -X86CPU.prototype.modEAByteEnabled = function(seg, off) +X86CPU.prototype.modEAByteEnabled = function modEAByteEnabled(seg, off) { this.segEA = seg; this.regEAWrite = this.regEA = seg.checkRead(this.offEA = off, 0); - if (!FASTDISABLE && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; + if (!EAFUNCS && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; return this.getByte(this.regEA); }; @@ -1944,11 +1938,11 @@ X86CPU.prototype.modEAByteEnabled = function(seg, off) * @param {number} off is a segment-relative offset * @return {number} word (16-bit) value at that address */ -X86CPU.prototype.modEAWordEnabled = function(seg, off) +X86CPU.prototype.modEAWordEnabled = function modEAWordEnabled(seg, off) { this.segEA = seg; this.regEAWrite = this.regEA = seg.checkRead(this.offEA = off, 1); - if (!FASTDISABLE && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; + if (!EAFUNCS && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; return this.getWord(this.regEA); }; @@ -1958,9 +1952,9 @@ X86CPU.prototype.modEAWordEnabled = function(seg, off) * @this {X86CPU} * @param {number} b is the byte (8-bit) value to write */ -X86CPU.prototype.setEAByteEnabled = function(b) +X86CPU.prototype.setEAByteEnabled = function setEAByteEnabled(b) { - if (!FASTDISABLE && (this.opFlags & X86.OPFLAG.NOWRITE)) return; + if (!EAFUNCS && (this.opFlags & X86.OPFLAG.NOWRITE)) return; this.setByte(this.segEA.checkWrite(this.offEA, 1), b); }; @@ -1970,9 +1964,9 @@ X86CPU.prototype.setEAByteEnabled = function(b) * @this {X86CPU} * @param {number} w is the word (16-bit) value to write */ -X86CPU.prototype.setEAWordEnabled = function(w) +X86CPU.prototype.setEAWordEnabled = function setEAWordEnabled(w) { - if (!FASTDISABLE && (this.opFlags & X86.OPFLAG.NOWRITE)) return; + if (!EAFUNCS && (this.opFlags & X86.OPFLAG.NOWRITE)) return; this.setWord(this.segEA.checkWrite(this.offEA, 2), w); }; @@ -2047,7 +2041,7 @@ X86CPU.prototype.setSOWord = function(seg, off, w) */ X86CPU.prototype.getBytePrefetch = function(addr) { - if (!FASTDISABLE && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; + if (!EAFUNCS && (this.opFlags & X86.OPFLAG.NOREAD)) return 0; var b; if (!this.cbPrefetchQueued) { if (MAXDEBUG) Component.assert(addr == this.addrPrefetchHead, "X86CPU.getBytePrefetch(" + str.toHex(addr) + "): invalid head address (" + str.toHex(this.addrPrefetchHead) + ")"); @@ -2059,10 +2053,10 @@ X86CPU.prototype.getBytePrefetch = function(addr) * with side-effects we may not want, and in any case, while it seemed to improve Safari's performance slightly, * it did nothing for the oddball Chrome performance I'm seeing with PREFETCH enabled. * - * b = this.aMemBlocks[(addr & this.addrMask) >> this.blockShift].readByte(addr & this.blockLimit); + * b = this.aMemBlocks[(addr & this.addrMemMask) >> this.blockShift].readByte(addr & this.blockLimit); * this.nBusCycles += 4; * this.cbPrefetchValid = 0; - * this.addrPrefetchHead = (addr + 1) & this.addrMask; + * this.addrPrefetchHead = (addr + 1) & this.addrMemMask; * return b; */ } @@ -2107,10 +2101,10 @@ X86CPU.prototype.fillPrefetch = function(n) { while (n-- > 0 && this.cbPrefetchQueued < X86CPU.PREFETCH.QUEUE) { var addr = this.addrPrefetchHead; - var b = this.aMemBlocks[(addr & this.addrMask) >> this.blockShift].readByte(addr & this.blockLimit); + var b = this.aMemBlocks[(addr & this.addrMemMask) >> this.blockShift].readByte(addr & this.blockLimit); this.aPrefetch[this.iPrefetchHead] = b | (addr << 8); if (MAXDEBUG) this.messageDebugger(" fillPrefetch[" + this.iPrefetchHead + "]: " + str.toHex(addr) + ":" + str.toHexByte(b)); - this.addrPrefetchHead = (addr + 1) & this.addrMask; + this.addrPrefetchHead = (addr + 1) & this.addrMemMask; this.iPrefetchHead = (this.iPrefetchHead + 1) & X86CPU.PREFETCH.MASK; this.cbPrefetchQueued++; /* @@ -2443,7 +2437,7 @@ X86CPU.prototype.stepCPU = function(nMinCycles) * Debugger is single-stepping (even when performing multiple single-steps), fRunning is never set, * so haltCPU() would have no effect as far as the Debugger is concerned. */ - this.fComplete = true; + this.aFlags.fComplete = true; /* * fDebugCheck is true if we need to "check" every instruction with the Debugger. The Debugger will @@ -2460,7 +2454,7 @@ X86CPU.prototype.stepCPU = function(nMinCycles) * minimum number of cycles to process: one and only one instruction will execute, since every (valid) * instruction consumes at least 1 cycle. */ - this.fDebugCheck = (DEBUGGER && nMinCycles && this.dbg && this.dbg.checksEnabled()); + var fDebugCheck = this.aFlags.fDebugCheck = (DEBUGGER && nMinCycles && this.dbg && this.dbg.checksEnabled()); /* * We move the minimum cycle count to nStepCycles (the number of cycles left to step), so that other @@ -2542,7 +2536,7 @@ X86CPU.prototype.stepCPU = function(nMinCycles) } } - if (DEBUGGER && this.fDebugCheck && this.dbg.checkInstruction(this.regEIP)) { + if (DEBUGGER && fDebugCheck && this.dbg.checkInstruction(this.regEIP)) { this.haltCPU(); break; } @@ -2589,7 +2583,7 @@ X86CPU.prototype.stepCPU = function(nMinCycles) } while (this.nStepCycles > 0); - return (this.fComplete? this.nBurstCycles - this.nStepCycles : (this.fComplete === undefined? 0 : -1)); + return (this.aFlags.fComplete? this.nBurstCycles - this.nStepCycles : (this.aFlags.fComplete === undefined? 0 : -1)); }; /** @@ -2603,7 +2597,7 @@ X86CPU.prototype.stepCPU = function(nMinCycles) X86CPU.prototype.messageDebugger = function(sMessage) { if (DEBUGGER && this.dbg) { - if (this.dbg.messageEnabled(Debugger.MESSAGE_MEM)) { + if (this.dbg.messageEnabled(Debugger.MESSAGE_CPU)) { this.dbg.message(sMessage); } } diff --git a/my_modules/pcjs-client/lib/x86grps.js b/my_modules/pcjs-client/lib/x86grps.js index d01465ff8..db5581db4 100644 --- a/my_modules/pcjs-client/lib/x86grps.js +++ b/my_modules/pcjs-client/lib/x86grps.js @@ -139,7 +139,7 @@ var X86Grps = { this.resultSize = X86.RESULT.SIZE_BYTE; this.resultValue = this.resultParitySign = dst - src; this.nStepCycles -= (this.regEAWrite < 0? (this.regEA < 0? this.CYCLES.nOpCyclesArithRR : this.CYCLES.nOpCyclesCompareRM) : this.CYCLES.nOpCyclesArithRM); - if (FASTDISABLE) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -242,7 +242,7 @@ var X86Grps = { this.resultSize = X86.RESULT.SIZE_WORD; this.resultValue = this.resultParitySign = dst - src; this.nStepCycles -= (this.regEAWrite < 0? (this.regEA < 0? this.CYCLES.nOpCyclesArithRR : this.CYCLES.nOpCyclesCompareRM) : this.CYCLES.nOpCyclesArithRM); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -654,7 +654,7 @@ var X86Grps = { this.resultValue = this.resultParitySign = this.resultAuxOverflow = dst & src; this.resultSize = X86.RESULT.SIZE_BYTE; this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesTestRI : this.CYCLES.nOpCyclesTestMI); - if (FASTDISABLE) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -668,7 +668,7 @@ var X86Grps = { this.resultValue = this.resultParitySign = this.resultAuxOverflow = dst & src; this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesTestRI : this.CYCLES.nOpCyclesTestMI); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -744,7 +744,7 @@ var X86Grps = { */ if (DEBUG && DEBUGGER) this.traceLog('MULB', src, dst, null, this.getPS(), this.regMD16); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesMulBR : this.CYCLES.nOpCyclesMulBM); - if (FASTDISABLE) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -788,7 +788,7 @@ var X86Grps = { */ if (DEBUG && DEBUGGER) this.traceLog('IMULB', src, dst, null, this.getPS(), this.regMD16); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesIMulBR : this.CYCLES.nOpCyclesIMulBM); - if (FASTDISABLE) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -827,7 +827,7 @@ var X86Grps = { */ if (DEBUG && DEBUGGER) this.traceLog('DIVB', src, dst, null, this.getPS(), this.regMD16); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesDivBR : this.CYCLES.nOpCyclesDivBM); - if (FASTDISABLE) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -874,7 +874,7 @@ var X86Grps = { */ if (DEBUG && DEBUGGER) this.traceLog('IDIVB', src, dst, null, this.getPS(), this.regMD16); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesIDivBR : this.CYCLES.nOpCyclesIDivBM); - if (FASTDISABLE) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -905,7 +905,7 @@ var X86Grps = { */ if (DEBUG && DEBUGGER) this.traceLog('MULW', src, dst, null, this.getPS(), this.regMD16 | (this.regMD32 << 16)); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesMulWR : this.CYCLES.nOpCyclesMulWM); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -950,7 +950,7 @@ var X86Grps = { */ if (DEBUG && DEBUGGER) this.traceLog('IMULW', src, dst, null, this.getPS(), this.regMD16 | (this.regMD32 << 16)); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesIMulWR : this.CYCLES.nOpCyclesIMulWM); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -995,7 +995,7 @@ var X86Grps = { */ if (DEBUG && DEBUGGER) this.traceLog('DIVW', src, dst, null, this.getPS(), this.regMD16 | (this.regMD32 << 16)); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesDivWR : this.CYCLES.nOpCyclesDivWM); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -1045,7 +1045,7 @@ var X86Grps = { */ if (DEBUG && DEBUGGER) this.traceLog('IDIVW', src, dst, null, this.getPS(), this.regMD16 | (this.regMD32 << 16)); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesIDivWR : this.CYCLES.nOpCyclesIDivWM); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -1114,7 +1114,7 @@ var X86Grps = { this.pushWord(this.regIP); this.setIP(dst); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesCallWR : this.CYCLES.nOpCyclesCallWM); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -1131,7 +1131,7 @@ var X86Grps = { this.pushWord(this.regIP); this.setCSIP(dst, this.getWord(this.regEA + 2)); this.nStepCycles -= this.CYCLES.nOpCyclesCallDM; - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -1143,7 +1143,7 @@ var X86Grps = { opGrpJMPw: function(dst, src) { this.setIP(dst); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesJmpWR : this.CYCLES.nOpCyclesJmpWM); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -1158,7 +1158,7 @@ var X86Grps = { } this.setCSIP(dst, this.getWord(this.regEA + 2)); this.nStepCycles -= this.CYCLES.nOpCyclesJmpDM; - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -1186,7 +1186,7 @@ var X86Grps = { /* * The PUSH is the only write that needs to occur; dst was the source operand and does not need to be rewritten. */ - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** diff --git a/my_modules/pcjs-client/lib/x86help.js b/my_modules/pcjs-client/lib/x86help.js index 541a49b0f..39cb00ce8 100644 --- a/my_modules/pcjs-client/lib/x86help.js +++ b/my_modules/pcjs-client/lib/x86help.js @@ -67,7 +67,7 @@ var X86Help = { this.resultValue = this.resultParitySign = this.resultAuxOverflow = dst & src; this.resultSize = X86.RESULT.SIZE_BYTE; this.nStepCycles -= (this.regEAWrite < 0? (this.regEA < 0? this.CYCLES.nOpCyclesTestRR : this.CYCLES.nOpCyclesTestRM) : this.CYCLES.nOpCyclesTestRM); - if (FASTDISABLE) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -80,7 +80,7 @@ var X86Help = { this.resultValue = this.resultParitySign = this.resultAuxOverflow = dst & src; this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= (this.regEAWrite < 0? (this.regEA < 0? this.CYCLES.nOpCyclesTestRR : this.CYCLES.nOpCyclesTestRM) : this.CYCLES.nOpCyclesTestRM); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -242,7 +242,7 @@ var X86Help = { this.setIP(this.opEA - this.segCS.base); X86Help.opHelpINT.call(this, X86.EXCEPTION.BOUND_ERR, null, 0); } - if (FASTDISABLE) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; }, /** @@ -253,8 +253,8 @@ var X86Help = { */ opHelpARPL: function(dst, src) { this.nStepCycles -= (10 + (this.regEA < 0? 0 : 1)); - if ((dst & X86.SEL.LEVEL) < (src & X86.SEL.LEVEL)) { - dst = (dst & ~X86.SEL.LEVEL) | (src & X86.SEL.LEVEL); + if ((dst & X86.SEL.RPL) < (src & X86.SEL.RPL)) { + dst = (dst & ~X86.SEL.RPL) | (src & X86.SEL.RPL); this.setZF(); return dst; } @@ -277,7 +277,7 @@ var X86Help = { * if we need a special check for them. */ if (this.segVER.load(src, true) >= 0) { - if (this.segVER.level >= (this.segCS.sel & X86.SEL.LEVEL) && this.segVER.level >= (src & X86.SEL.LEVEL)) { + if (this.segVER.dpl >= this.segCS.cpl && this.segVER.dpl >= (src & X86.SEL.RPL)) { this.setZF(); return this.segVER.acc & X86.DESC.ACC.MASK; } @@ -288,10 +288,13 @@ var X86Help = { /** * @this {X86CPU} * @param {number} dst - * @param {number} src + * @param {number} src (the selector) * @return {number} */ opHelpLSL: function(dst, src) { + /* + * TODO: Is this an invalid operation if regEAWrite is set? dst is required to be a register. + */ this.nStepCycles -= (14 + (this.regEA < 0? 0 : 2)); /* * Currently, segVER.load() will return an error only if the selector is beyond the bounds of the @@ -301,8 +304,8 @@ var X86Help = { * are there any other instructions that were, um, less explicit but also require a non-null selector? */ if ((src & X86.SEL.MASK) && this.segVER.load(src, true) >= 0) { - var fConforming = ((this.segVER.acc & X86.DESC.ACC.TYPE.CODE_CONFORMING) == X86.DESC.ACC.TYPE.CODE_CONFORMING); - if ((fConforming || this.segVER.level >= (this.segCS.sel & X86.SEL.LEVEL)) && this.segVER.level >= (src & X86.SEL.LEVEL)) { + var fConforming = ((this.segVER.acc & X86.DESC.ACC.TYPE.CODE_CONFORMING_EXECONLY) == X86.DESC.ACC.TYPE.CODE_CONFORMING_EXECONLY); + if ((fConforming || this.segVER.dpl >= this.segCS.cpl) && this.segVER.dpl >= (src & X86.SEL.RPL)) { this.setZF(); return this.segVER.limit; } @@ -465,8 +468,9 @@ var X86Help = { * @this {X86CPU} * @param {number} nFault * @param {number} [nError] + * @param {boolean} [fHalt] will halt the CPU if true *and* a Debugger is loaded */ - opHelpFault: function(nFault, nError) { + opHelpFault: function(nFault, nError, fHalt) { if (DEBUGGER && this.dbg) { /* * NOTE: By using Debugger.message(), we have the option of setting "m halt on" and halting on messages like this. @@ -474,6 +478,7 @@ var X86Help = { if (this.dbg.messageEnabled(Debugger.MESSAGE_CPU)) { this.dbg.message("Fault 0x" + str.toHexByte(nFault) + (nError != null? " (0x" + str.toHexWord(nError) + ")" : "") + " on opcode 0x" + str.toHexByte(this.bus.getByteDirect(this.regEIP)) + " at " + str.toHexAddr(this.regIP, this.segCS.sel)); } + if (fHalt) this.haltCPU(); } if (this.model >= X86.MODEL_80186) { this.setIP(this.opEA - this.segCS.base); diff --git a/my_modules/pcjs-client/lib/x86op0f.js b/my_modules/pcjs-client/lib/x86op0f.js index 988f26841..15b3c5d66 100644 --- a/my_modules/pcjs-client/lib/x86op0f.js +++ b/my_modules/pcjs-client/lib/x86op0f.js @@ -48,10 +48,10 @@ var X86Op0F = { opGRP6: function() { var bModRM = this.getIPByte(); if ((bModRM & 0x38) < 0x10) { // possible reg values: 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38 - if (FASTDISABLE) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; } X86Mods.aOpModsGrpWord[bModRM].call(this, X86Op0F.aOpGRP6, X86Grps.opGrpNoSrc); - if (FASTDISABLE) { this.modEAWord = this.modEAWordEnabled; this.setEAWord = this.setEAWordEnabled; } + if (EAFUNCS) { this.modEAWord = this.modEAWordEnabled; this.setEAWord = this.setEAWordEnabled; } }, /** * @this {X86CPU} @@ -61,10 +61,10 @@ var X86Op0F = { opGRP7: function() { var bModRM = this.getIPByte(); if (!(bModRM & 0x10)) { - if (FASTDISABLE) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; } X86Mods.aOpModsGrpWord[bModRM].call(this, X86Op0F.aOpGRP7, X86Grps.opGrpNoSrc); - if (FASTDISABLE) { this.modEAWord = this.modEAWordEnabled; this.setEAWord = this.setEAWordEnabled; } + if (EAFUNCS) { this.modEAWord = this.modEAWordEnabled; this.setEAWord = this.setEAWordEnabled; } }, /** * @this {X86CPU} @@ -124,6 +124,10 @@ var X86Op0F = { * op=0x0F,0x05 (loadall) */ opLOADALL: function() { + if (this.segCS.cpl) { + X86Help.opHelpFault.call(this, X86.EXCEPTION.GP_FAULT, 0, true); + return; + } X86Help.opHelpLMSW.call(this, this.getWord(0x806)); this.regDI = this.getWord(0x826); this.regSI = this.getWord(0x828); @@ -133,26 +137,21 @@ var X86Op0F = { this.regDX = this.getWord(0x830); this.regCX = this.getWord(0x832); this.regAX = this.getWord(0x834); - /* - * loadDesc() is an X86Seg class method that we must use to force the specified descriptor to be loaded; - * since the processor might still be in real-mode, we can't use normal segment register instance methods. - */ - X86Seg.loadDesc.call(this.segES, this.getWord(0x824), 0x836); - X86Seg.loadDesc.call(this.segCS, this.getWord(0x822), 0x83C); - X86Seg.loadDesc.call(this.segSS, this.getWord(0x820), 0x842); - X86Seg.loadDesc.call(this.segDS, this.getWord(0x81E), 0x848); - this.nCPL = this.segCS.level; + this.segES.loadDesc6(this.getWord(0x824), 0x836); + this.segCS.loadDesc6(this.getWord(0x822), 0x83C); + this.segSS.loadDesc6(this.getWord(0x820), 0x842); + this.segDS.loadDesc6(this.getWord(0x81E), 0x848); this.setPS(this.getWord(0x818)); this.setIP(this.getWord(0x81A)); /* - * TODO: The bytes at 0x851 and 0x85D "should be zeroes", but do we rely on that, or should we load zeroes ourselves? + * TODO: The bytes at 0x851 and 0x85D "should be zeroes", but do we rely on that, or do we load zeros ourselves? */ this.addrGDT = this.getWord(0x84E) | (this.getWord(0x850) << 16); this.addrGDTLimit = this.addrGDT + this.getWord(0x852); - this.segLDT.loadDesc(this.getWord(0x81C), 0x854); + this.segLDT.loadDesc6(this.getWord(0x81C), 0x854); this.addrIDT = this.getWord(0x85A) | (this.getWord(0x85C) << 16); this.addrIDTLimit = this.addrIDT + this.getWord(0x85E); - this.segTSS.loadDesc(this.getWord(0x816), 0x860); + this.segTSS.loadDesc6(this.getWord(0x816), 0x860); this.nStepCycles -= 195; }, /** @@ -182,7 +181,7 @@ var X86Op0F = { * @return {number} */ opLLDT: function(dst, src) { - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; this.segLDT.load(dst); this.nStepCycles -= (17 + (this.regEA < 0? 0 : 2)); return dst; @@ -194,7 +193,7 @@ var X86Op0F = { * @return {number} */ opLTR: function(dst, src) { - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; this.segTSS.load(dst); this.nStepCycles -= (17 + (this.regEA < 0? 0 : 2)); return dst; @@ -206,7 +205,7 @@ var X86Op0F = { * @return {number} */ opVERR: function(dst, src) { - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; /* * Currently, segVER.load() will return an error only if the selector is beyond the bounds of the * descriptor table or the descriptor is not for a segment. @@ -224,12 +223,9 @@ var X86Op0F = { * * Otherwise, DPL must be greater than or equal to (have less or the same privilege as) both the * current privilege level and the selector's RPL. - * - * TODO: Consider making a CPL (current privilege level) variable that tracks segCS.sel, so that we - * don't have to mask segCS.sel every time. */ - if ((this.segVER.acc & X86.DESC.ACC.TYPE.CODE_CONFORMING) == X86.DESC.ACC.TYPE.CODE_CONFORMING || - this.segVER.level >= (this.segCS.sel & X86.SEL.LEVEL) && this.segVER.level >= (dst & X86.SEL.LEVEL)) { + if (this.segVER.dpl >= this.segCS.cpl && this.segVER.dpl >= (dst & X86.SEL.RPL) || + (this.segVER.acc & X86.DESC.ACC.TYPE.CODE_CONFORMING_EXECONLY) == X86.DESC.ACC.TYPE.CODE_CONFORMING_EXECONLY) { this.setZF(); return dst; } @@ -245,7 +241,7 @@ var X86Op0F = { * @return {number} */ opVERW: function(dst, src) { - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; /* * Currently, segVER.load() will return an error only if the selector is beyond the bounds of the * descriptor table or the descriptor is not for a segment. @@ -259,11 +255,8 @@ var X86Op0F = { /* * DPL must be greater than or equal to (have less or the same privilege as) both the current * privilege level and the selector's RPL. - * - * TODO: Consider making a CPL (current privilege level) variable that tracks segCS.sel, so that we - * don't have to mask segCS.sel every time. */ - if (this.segVER.level >= (this.segCS.sel & X86.SEL.LEVEL) && this.segVER.level >= (dst & X86.SEL.LEVEL)) { + if (this.segVER.dpl >= this.segCS.cpl && this.segVER.dpl >= (dst & X86.SEL.RPL)) { this.setZF(); return dst; } @@ -371,7 +364,7 @@ var X86Op0F = { } else { this.addrGDT = this.getWord(this.regEA + 2) | (this.getByte(this.regEA + 4) << 16); this.addrGDTLimit = this.addrGDT + dst; - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; this.nStepCycles -= 11; } return dst; @@ -394,7 +387,7 @@ var X86Op0F = { } else { this.addrIDT = this.getWord(this.regEA + 2) | (this.getByte(this.regEA + 4) << 16); this.addrIDTLimit = this.addrIDT + dst; - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; this.nStepCycles -= 12; } return dst; @@ -418,7 +411,7 @@ var X86Op0F = { opLMSW: function(dst, src) { X86Help.opHelpLMSW.call(this, dst); this.nStepCycles -= (this.regEA < 0? 3 : 6); - if (FASTDISABLE) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; + if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; } }; diff --git a/my_modules/pcjs-client/lib/x86opxx.js b/my_modules/pcjs-client/lib/x86opxx.js index 95c65436d..a4749b0f8 100644 --- a/my_modules/pcjs-client/lib/x86opxx.js +++ b/my_modules/pcjs-client/lib/x86opxx.js @@ -651,7 +651,7 @@ var X86OpXX = { */ opCMPmb: function() { X86Mods.aOpModsMemByte[this.getIPByte()].call(this, X86Grps.opGrpCMPb); - if (FASTDISABLE) this.setEAByte = this.setEAByteEnabled; + if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; }, /** * @this {X86CPU} @@ -660,7 +660,7 @@ var X86OpXX = { */ opCMPmw: function() { X86Mods.aOpModsMemWord[this.getIPByte()].call(this, X86Grps.opGrpCMPw); - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; }, /** * @this {X86CPU} @@ -669,7 +669,7 @@ var X86OpXX = { */ opCMPrb: function() { X86Mods.aOpModsRegByte[this.getIPByte()].call(this, X86Grps.opGrpCMPb); - if (FASTDISABLE) this.setEAByte = this.setEAByteEnabled; + if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; }, /** * @this {X86CPU} @@ -678,7 +678,7 @@ var X86OpXX = { */ opCMPrw: function() { X86Mods.aOpModsRegWord[this.getIPByte()].call(this, X86Grps.opGrpCMPw); - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; }, /** * @this {X86CPU} @@ -687,7 +687,7 @@ var X86OpXX = { */ opCMPALb: function() { this.regAX = (this.regAX & ~0xff) | X86Grps.opGrpCMPb.call(this, this.regAX & 0xff, this.getIPByte()); - if (FASTDISABLE) this.setEAByte = this.setEAByteEnabled; + if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; /* * In the absence of any EA calculations, opGrpCMPb() will deduct nOpCyclesArithRR, and for all CPUs through * the 80286, we need deduct only one more cycle. @@ -701,7 +701,7 @@ var X86OpXX = { */ opCMPAXw: function() { this.regAX = X86Grps.opGrpCMPw.call(this, this.regAX, this.getIPWord()); - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; /* * In the absence of any EA calculations, opGrpCMPw() will deduct nOpCyclesArithRR, and for all CPUs through * the 80286, we need deduct only one more cycle. @@ -1592,7 +1592,7 @@ var X86OpXX = { */ opGRP1b: function() { X86Mods.aOpModsGrpByte[this.getIPByte()].call(this, X86Grps.aOpGRP1b, this.getIPByte); - if (FASTDISABLE) this.setEAByte = this.setEAByteEnabled; + if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; this.nStepCycles -= (this.regEAWrite < 0? 1 : this.CYCLES.nOpCyclesArithMID); }, /** @@ -1602,7 +1602,7 @@ var X86OpXX = { */ opGRP1w: function() { X86Mods.aOpModsGrpWord[this.getIPByte()].call(this, X86Grps.aOpGRP1w, this.getIPWord); - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; this.nStepCycles -= (this.regEAWrite < 0? 1 : this.CYCLES.nOpCyclesArithMID); }, /** @@ -1612,7 +1612,7 @@ var X86OpXX = { */ opGRP1sw: function() { X86Mods.aOpModsGrpWord[this.getIPByte()].call(this, X86Grps.aOpGRP1w, this.getIPDisp); - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; this.nStepCycles -= (this.regEAWrite < 0? 1 : this.CYCLES.nOpCyclesArithMID); }, /** @@ -1622,7 +1622,7 @@ var X86OpXX = { */ opTESTrb: function() { X86Mods.aOpModsMemByte[this.getIPByte()].call(this, X86Help.opHelpTESTb); - if (FASTDISABLE) this.setEAByte = this.setEAByteEnabled; + if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; }, /** * @this {X86CPU} @@ -1631,7 +1631,7 @@ var X86OpXX = { */ opTESTrw: function() { X86Mods.aOpModsMemWord[this.getIPByte()].call(this, X86Help.opHelpTESTw); - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; }, /** * @this {X86CPU} @@ -1682,9 +1682,9 @@ var X86OpXX = { /* * Like other MOV operations, the destination does not need to be read, just written. */ - if (FASTDISABLE) this.modEAByte = this.modEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.modEAByte = this.modEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; X86Mods.aOpModsMemByte[this.getIPByte()].call(this, X86Help.opHelpMOV); - if (FASTDISABLE) this.modEAByte = this.modEAByteEnabled; + if (EAFUNCS) this.modEAByte = this.modEAByteEnabled; }, /** * @this {X86CPU} @@ -1695,9 +1695,9 @@ var X86OpXX = { /* * Like other MOV operations, the destination does not need to be read, just written. */ - if (FASTDISABLE) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; X86Mods.aOpModsMemWord[this.getIPByte()].call(this, X86Help.opHelpMOV); - if (FASTDISABLE) this.modEAWord = this.modEAWordEnabled; + if (EAFUNCS) this.modEAWord = this.modEAWordEnabled; }, /** * @this {X86CPU} @@ -1747,9 +1747,9 @@ var X86OpXX = { /* * Like other MOV operations, the destination does not need to be read, just written. */ - if (FASTDISABLE) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; X86Mods.aOpModsMemWord[bModRM].call(this, X86Help.opHelpMOVSegSrc); - if (FASTDISABLE) this.modEAWord = this.modEAWordEnabled; + if (EAFUNCS) this.modEAWord = this.modEAWordEnabled; }, /** * @this {X86CPU} @@ -1757,10 +1757,10 @@ var X86OpXX = { * op=0x8D (lea reg,rm) */ opLEA: function() { - if (FASTDISABLE) this.getEAWord = this.getEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.getEAWord = this.getEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; this.segData = this.segStack = this.segZERO; // we can't have the EA calculation, if any, "polluted" by segment arithmetic X86Mods.aOpModsRegWord[this.getIPByte()].call(this, X86Help.opHelpLEA); - if (FASTDISABLE) this.getEAWord = this.getEAWordEnabled; + if (EAFUNCS) this.getEAWord = this.getEAWordEnabled; }, /** * @this {X86CPU} @@ -1858,9 +1858,9 @@ var X86OpXX = { /* * Like other MOV operations, the destination does not need to be read, just written. */ - if (FASTDISABLE) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; X86Mods.aOpModsGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrpPOPw, this.popWord); - if (FASTDISABLE) this.modEAWord = this.modEAWordEnabled; + if (EAFUNCS) this.modEAWord = this.modEAWordEnabled; }, /** * @this {X86CPU} @@ -2198,7 +2198,7 @@ var X86OpXX = { this.advanceIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2)); this.opFlags |= X86.OPFLAG.REPEAT; } - if (FASTDISABLE) this.setEAByte = this.setEAByteEnabled; + if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; } }, /** @@ -2246,7 +2246,7 @@ var X86OpXX = { this.advanceIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2)); this.opFlags |= X86.OPFLAG.REPEAT; } - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; } }, /** @@ -2453,7 +2453,7 @@ var X86OpXX = { this.advanceIP(-2); // this instruction does not support segment overrides this.opFlags |= X86.OPFLAG.REPEAT; } - if (FASTDISABLE) this.setEAByte = this.setEAByteEnabled; + if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; } }, /** @@ -2493,7 +2493,7 @@ var X86OpXX = { this.advanceIP(-2); // this instruction does not support segment overrides this.opFlags |= X86.OPFLAG.REPEAT; } - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; } }, /** @@ -2707,9 +2707,9 @@ var X86OpXX = { /* * Like other MOV operations, the destination does not need to be read, just written. */ - if (FASTDISABLE) this.modEAByte = this.modEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.modEAByte = this.modEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; X86Mods.aOpModsGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrpMOVImm, this.getIPByte); - if (FASTDISABLE) this.modEAByte = this.modEAByteEnabled; + if (EAFUNCS) this.modEAByte = this.modEAByteEnabled; }, /** * @this {X86CPU} @@ -2720,9 +2720,9 @@ var X86OpXX = { /* * Like other MOV operations, the destination does not need to be read, just written. */ - if (FASTDISABLE) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; + if (EAFUNCS) this.modEAWord = this.modEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOREAD; X86Mods.aOpModsGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrpMOVImm, this.getIPWord); - if (FASTDISABLE) this.modEAWord = this.modEAWordEnabled; + if (EAFUNCS) this.modEAWord = this.modEAWordEnabled; }, /** * @this {X86CPU} @@ -3253,7 +3253,7 @@ var X86OpXX = { this.regMD16 = -1; X86Mods.aOpModsGrpByte[this.getIPByte()].call(this, X86Grps.aOpGRP3b, X86Grps.opGrpNoSrc); if (this.regMD16 >= 0) this.regAX = this.regMD16; - if (FASTDISABLE) this.setEAByte = this.setEAByteEnabled; + if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; }, /** * @this {X86CPU} @@ -3280,7 +3280,7 @@ var X86OpXX = { this.regAX = this.regMD16; this.regDX = this.regMD32; } - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; }, /** * @this {X86CPU} @@ -3352,7 +3352,7 @@ var X86OpXX = { */ opGRP4w: function() { X86Mods.aOpModsGrpWord[this.getIPByte()].call(this, X86Grps.aOpGRP4w, X86Grps.opGrpNoSrc); - if (FASTDISABLE) this.setEAWord = this.setEAWordEnabled; + if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; } }; diff --git a/my_modules/pcjs-client/lib/x86seg.js b/my_modules/pcjs-client/lib/x86seg.js index 188acd824..222919d9e 100644 --- a/my_modules/pcjs-client/lib/x86seg.js +++ b/my_modules/pcjs-client/lib/x86seg.js @@ -33,6 +33,7 @@ "use strict"; if (typeof module !== 'undefined') { + var str = require("../../shared/lib/strlib"); var X86 = require("./x86"); var X86Help = require("./x86help"); } @@ -52,9 +53,11 @@ function X86Seg(cpu, sName, fProt) this.base = 0; this.limit = 0xffff; this.acc = 0; - this.level = 0; + this.fCode = (sName == "CS"); this.sName = sName; - this.setProt(fProt); + this.cpl = 0; + this.dpl = 0; + this.updateAccess(fProt); } /* @@ -67,7 +70,7 @@ function X86Seg(cpu, sName, fProt) * This is the default real-mode load() function. * * @this {X86Seg} - * @param {number} sel containing a selector + * @param {number} sel * @param {boolean} [fSuppress] is true to suppress any errors * @return {number} base address of selected segment, or -1 if error */ @@ -75,7 +78,7 @@ X86Seg.loadReal = function loadReal(sel, fSuppress) { this.sel = sel; this.limit = 0xffff; // TODO: Consider NOT setting the limit field in real-mode (unless it's required for, say, LOADALL support?) - this.level = 0; + this.cpl = this.dpl = 0; return this.base = sel << 4; }; @@ -96,7 +99,7 @@ X86Seg.loadReal = function loadReal(sel, fSuppress) * See X86.DESC for offset and bit definitions. * * @this {X86Seg} - * @param {number} sel containing a selector + * @param {number} sel * @param {boolean} [fSuppress] is true to suppress any errors * @return {number} base address of selected segment, or -1 if error */ @@ -111,70 +114,21 @@ X86Seg.loadProt = function loadProt(sel, fSuppress) addrDT = this.cpu.segLDT.base; addrDTLimit = this.cpu.segLDT.limit; } - var offDesc = addrDT + (sel & X86.SEL.MASK); - if (offDesc + 7 <= addrDTLimit) { + var addrDesc = addrDT + (sel & X86.SEL.MASK); + if (addrDesc + 7 <= addrDTLimit) { /* * TODO: This is only the first of many steps toward accurately counting cycles in protected mode; * I simply noted that "POP segreg" takes 5 cycles in real mode and 20 in protected mode, so I'm * starting with a 15-cycle difference. Obviously the difference will be much greater when the load fails. */ this.cpu.nStepCycles -= 15; - return X86Seg.loadDesc.call(this, sel, offDesc, true); + return this.loadDesc8(sel, addrDesc); } return -1; }; /** - * loadDesc(sel, offDesc, fProt) - * - * @this {X86Seg} - * @param {number} sel containing a selector - * @param {number} offDesc is the physical address of a descriptor - * @param {boolean} [fProt] is true if protected-mode, false if real-mode, undefined if TBD - * @return {number} base address of selected segment, or -1 if error - */ -X86Seg.loadDesc = function(sel, offDesc, fProt) -{ - var limit = this.cpu.getWord(offDesc + X86.DESC.LIMIT.OFFSET); - var acc = this.cpu.getWord(offDesc + X86.DESC.ACC.OFFSET); - var base = this.cpu.getWord(offDesc + X86.DESC.BASE.OFFSET) | ((acc & X86.DESC.ACC.BASE1623) << 16); - - Component.assert(this.cpu.getWord(offDesc + 0x06) == 0); - - fProt = this.setProt(fProt); - - /* - * For LSL (which uses fSuppress), we must support X86.DESC.ACC.TYPE.SEG as well as TSS and LDT. - */ - var accType = (acc & X86.DESC.ACC.TYPE.MASK); - - if (accType & X86.DESC.ACC.TYPE.SEG) { - if (fProt) { - if ((accType & X86.DESC.ACC.TYPE.CODE_READABLE) == X86.DESC.ACC.TYPE.CODE) { - this.checkWrite = X86Seg.checkReadProtDisabled; - } - if ((accType & X86.DESC.ACC.TYPE.CODE) || !(accType & X86.DESC.ACC.TYPE.WRITEABLE)) { - this.checkWrite = X86Seg.checkWriteProtDisabled; - } - } - this.sel = sel; - this.limit = limit; - this.acc = acc; - this.level = (acc & X86.DESC.ACC.LEVEL.MASK) >> X86.DESC.ACC.LEVEL.SHIFT; - return this.base = base; - } - else if (accType && accType <= X86.DESC.ACC.TYPE.TSS_BUSY) { - this.sel = sel; - this.limit = limit; - this.acc = acc; - this.level = (acc & X86.DESC.ACC.LEVEL.MASK) >> X86.DESC.ACC.LEVEL.SHIFT; - return this.base = base; - } - return -1; -}; - -/** - * checkReadReal(off, cb) + * checkReadReal(off, cb, fSuppress) * * TODO: Invoke X86Help.opHelpFault.call(this.cpu, X86.EXCEPTION.GP_FAULT) if off is 0xffff and cb is 1; * also, whether or not the opHelpFault() call should include an error code, since this is happening in real-mode. @@ -191,7 +145,7 @@ X86Seg.checkReadReal = function checkReadReal(off, cb, fSuppress) }; /** - * checkWriteReal(off, cb) + * checkWriteReal(off, cb, fSuppress) * * TODO: Invoke X86Help.opHelpFault.call(this.cpu, X86.EXCEPTION.GP_FAULT) if off is 0xffff and cb is 1; * also, whether or not the opHelpFault() call should include an error code, since this is happening in real-mode. @@ -208,7 +162,7 @@ X86Seg.checkWriteReal = function checkWriteReal(off, cb, fSuppress) }; /** - * checkReadProtEnabled(off, cb) + * checkReadProtEnabled(off, cb, fSuppress) * * @this {X86Seg} * @param {number} off is a segment-relative offset @@ -225,7 +179,7 @@ X86Seg.checkReadProtEnabled = function checkReadProtEnabled(off, cb, fSuppress) }; /** - * checkReadProtDisabled(off, cb) + * checkReadProtDisabled(off, cb, fSuppress) * * @this {X86Seg} * @param {number} off is a segment-relative offset @@ -242,7 +196,7 @@ X86Seg.checkReadProtDisabled = function checkReadProtDisabled(off, cb, fSuppress }; /** - * checkWriteProtEnabled(off, cb) + * checkWriteProtEnabled(off, cb, fSuppress) * * @this {X86Seg} * @param {number} off is a segment-relative offset @@ -259,7 +213,7 @@ X86Seg.checkWriteProtEnabled = function checkWriteProtEnabled(off, cb, fSuppress }; /** - * checkWriteProtDisabled(off, cb) + * checkWriteProtDisabled(off, cb, fSuppress) * * @this {X86Seg} * @param {number} off is a segment-relative offset @@ -280,40 +234,88 @@ X86Seg.checkWriteProtDisabled = function checkWriteProtDisabled(off, cb, fSuppre */ /** - * save() + * loadDesc6(sel, addrDesc) * - * Early versions of PCjs saved only segment selectors, since that's all that mattered in real-mode; - * newer versions need to save/restore the entire segment object. + * Used to load a protected-mode selector that refers to a 6-byte descriptor "cache" (LOADALL) entry: + * + * word 0: base address low + * word 1: base address high (0-7), segment type (8-11), descriptor type (12), DPL (13-14), present bit (15) + * word 2: segment limit (0-15) * * @this {X86Seg} - * @return {Array} + * @param {number} sel is the selector + * @param {number} addrDesc is the offset + * @return {number} base address of selected segment, or -1 if error */ -X86Seg.prototype.save = function() +X86Seg.prototype.loadDesc6 = function(sel, addrDesc) { - return [this.sel, this.base, this.limit, this.acc, this.level, this.sName]; + var acc = this.cpu.getWord(addrDesc + 2); + var base = this.cpu.getWord(addrDesc + 0) | ((acc & 0xff) << 16); + var limit = this.cpu.getWord(addrDesc + 4); + + if (DEBUG) { + this.cpu.messageDebugger("loadDesc6(" + this.sName + "): base=" + str.toHex(base) + " limit=" + str.toHexWord(limit) + " acc=" + str.toHexWord(acc)); + } + + this.sel = sel; + this.base = base; + this.limit = limit; + this.acc = acc & X86.DESC.ACC.MASK; + this.updateAccess(); + + return base; }; /** - * restore(a) + * loadDesc8(sel, addrDesc) * - * Early versions of PCjs saved only segment selectors, since that's all that mattered in real-mode; - * newer versions need to save/restore the entire segment object. + * Used to load a protected-mode selector that refers to an 8-byte descriptor table (GDT, LDT, IDT) entry: + * + * word 0: segment limit (0-15) + * word 1: base address low + * word 2: base address high (0-7), segment type (8-11), descriptor type (12), DPL (13-14), present bit (15) + * word 3: used only on 80386 and up (should be set to zero for upward compatibility) + * + * See X86.DESC for offset and bit definitions. * * @this {X86Seg} - * @param {Array|number} a + * @param {number} sel is the selector + * @param {number} addrDesc is the offset + * @return {number} base address of selected segment, or -1 if error */ -X86Seg.prototype.restore = function(a) +X86Seg.prototype.loadDesc8 = function(sel, addrDesc) { - if (typeof a == "number") { - this.load(a); - } else { - this.sel = a[0]; - this.base = a[1]; - this.limit = a[2]; - this.acc = a[3]; - this.level = a[4]; - this.sName = a[5]; + var limit = this.cpu.getWord(addrDesc + X86.DESC.LIMIT.OFFSET); + var acc = this.cpu.getWord(addrDesc + X86.DESC.ACC.OFFSET); + var base = this.cpu.getWord(addrDesc + X86.DESC.BASE.OFFSET) | ((acc & X86.DESC.ACC.BASE1623) << 16); + var ext = (DEBUG? this.cpu.getWord(addrDesc + X86.DESC.EXT.OFFSET) : 0); + + if (DEBUG) { + this.cpu.messageDebugger("loadDesc8(" + this.sName + "): base=" + str.toHex(base) + " limit=" + str.toHexWord(limit) + " acc=" + str.toHexWord(acc) + (ext? " ext=" + str.toHexWord(ext) : "")); + Component.assert(!ext); } + + /* + * For LSL (which uses fSuppress), we must support X86.DESC.ACC.TYPE.SEG as well as TSS and LDT. + */ + var accType; + if ((acc & X86.DESC.ACC.TYPE.SEG) || (accType = (acc & X86.DESC.ACC.TYPE.MASK)) && accType <= X86.DESC.ACC.TYPE.TSS_BUSY) { + this.sel = sel; + this.base = base; + this.limit = limit; + /* + * Note that bits 0-7 of acc will usually contain the BASE1623 bits from the descriptor entry, + * but it doesn't matter, because the only acc bits we pay attention to are bits 8-15; however, + * to keep things tidy, we zero bits 0-7. Perhaps we'll find other (internal) uses for those bits. + */ + this.acc = acc & X86.DESC.ACC.MASK; + this.type = acc & X86.DESC.ACC.TYPE.MASK; + this.updateAccess(); + } + else { + base = -1; + } + return base; }; /** @@ -333,16 +335,55 @@ X86Seg.prototype.setBase = function(addr) }; /** - * setProt(fProt) + * save() * - * This must be used to ensure that the segment register's state (ie, load and check methods) matches - * the current operating mode (real or protected). + * Early versions of PCjs saved only segment selectors, since that's all that mattered in real-mode; + * newer versions need to save/restore the entire segment object. * * @this {X86Seg} - * @param {boolean} [fProt] + * @return {Array} + */ +X86Seg.prototype.save = function() +{ + return [this.sel, this.base, this.limit, this.acc, this.fCode, this.sName, this.cpl, this.dpl]; +}; + +/** + * restore(a) + * + * Early versions of PCjs saved only segment selectors, since that's all that mattered in real-mode; + * newer versions need to save/restore the entire segment object. + * + * @this {X86Seg} + * @param {Array|number} a + */ +X86Seg.prototype.restore = function(a) +{ + if (typeof a == "number") { + this.load(a); + } else { + this.sel = a[0]; + this.base = a[1]; + this.limit = a[2]; + this.acc = a[3]; + this.fCode = a[4]; + this.sName = a[5]; + this.cpl = a[6]; + this.dpl = a[7]; + } +}; + +/** + * updateAccess(fProt) + * + * Ensures that the segment register's access (ie, load and check methods) matches the specified (or current) + * operating mode (real or protected). + * + * @this {X86Seg} + * @param {boolean} [fProt] true for protected-mode access, false for real-mode access, undefined for current mode * @return {boolean} */ -X86Seg.prototype.setProt = function(fProt) +X86Seg.prototype.updateAccess = function(fProt) { if (fProt === undefined) { fProt = !!(this.cpu.regMSW & X86.MSW.PE); @@ -351,10 +392,27 @@ X86Seg.prototype.setProt = function(fProt) this.load = X86Seg.loadProt; this.checkRead = X86Seg.checkReadProtEnabled; this.checkWrite = X86Seg.checkWriteProtEnabled; + if (this.acc & X86.DESC.ACC.TYPE.SEG) { + /* + * If the READABLE bit of CODE_READABLE is not set, then disallow reads + */ + if ((this.acc & X86.DESC.ACC.TYPE.CODE_READABLE) == X86.DESC.ACC.TYPE.CODE_EXECONLY) { + this.checkWrite = X86Seg.checkReadProtDisabled; + } + /* + * If the CODE bit is set, or the the WRITEABLE bit is not set, then disallow writes + */ + if ((this.acc & X86.DESC.ACC.TYPE.CODE) || !(this.acc & X86.DESC.ACC.TYPE.WRITEABLE)) { + this.checkWrite = X86Seg.checkWriteProtDisabled; + } + } + this.cpl = this.sel & X86.SEL.RPL; + this.dpl = (this.acc & X86.DESC.ACC.DPL.MASK) >> X86.DESC.ACC.DPL.SHIFT; } else { this.load = X86Seg.loadReal; this.checkRead = X86Seg.checkReadReal; this.checkWrite = X86Seg.checkWriteReal; + this.cpl = this.dpl = 0; } return fProt; }; diff --git a/my_modules/pcjs-client/templates/components.xsl b/my_modules/pcjs-client/templates/components.xsl index 9e02af93a..a037373ef 100644 --- a/my_modules/pcjs-client/templates/components.xsl +++ b/my_modules/pcjs-client/templates/components.xsl @@ -9,7 +9,7 @@ pc pcjs - 1.0.0 + 1.x.x www.pcjs.org diff --git a/my_modules/shared/lib/component.js b/my_modules/shared/lib/component.js index 3fff57e2d..cd6463a35 100644 --- a/my_modules/shared/lib/component.js +++ b/my_modules/shared/lib/component.js @@ -46,7 +46,7 @@ * It's not that I'm trying to write "portable JavaScript", but some of this code was ported from C code * I'd written about 14 years earlier, and portability is good, so I see no reason to rewrite code to make * it less portable. - * + * * UPDATE: I've since switched to JSHint, which seems to have more reasonable defaults. */ @@ -62,7 +62,7 @@ if (typeof module !== 'undefined') { /** * Component(type, parms, constructor) - * + * * @constructor * @param {string} type * @param {Object} [parms] @@ -83,7 +83,7 @@ if (typeof module !== 'undefined') { function Component(type, parms, constructor) { this.type = type; - + if (!parms) { parms = {'id': "", 'name': ""}; } @@ -110,19 +110,23 @@ function Component(type, parms, constructor) this[type] = constructor; /* - * TODO: Decide how to reintegrate this code into the components that still want it.... + * TODO: Decide how to reintegrate this code into the components that still want it.... * if (this.initStep) this.initStep(parms); */ - + this.aFlags = { + fReady: false, + fBusy: false, + fBusyCancel: false, + fPowered: false, + fError: false + }; + this.fnReady = null; - this.fReady = false; - this.fBusy = this.fBusyCancel = false; - this.fPowered = false; this.clearError(); this.bindings = {}; this.dbg = null; // by default, no connection to a Debugger - + this.getMachineNum(); // once again, make the function appear used Component.add(this); @@ -139,10 +143,10 @@ Component.parmsURL = web.getURLParameters(); /** * Component.inherit(p) - * + * * Returns a newly created object that inherits properties from the prototype object p. * It uses the ECMAScript 5 function Object.create() if it is defined, and otherwise falls back to an older technique. - * + * * See: Flanagan, David (2011-04-18). JavaScript: The Definitive Guide: The Definitive Guide (Kindle Locations 9854-9903). OReilly Media - A. Kindle Edition (Example 6-1) * * @param {Object} p @@ -167,10 +171,10 @@ Component.inherit = function(p) /** * Component.extend(o, p) - * + * * Copies the enumerable properties of p to o and returns o. * If o and p have a property by the same name, o's property is overwritten. - * + * * See: Flanagan, David (2011-04-18). JavaScript: The Definitive Guide: The Definitive Guide (Kindle Locations 9854-9903). OReilly Media - A. Kindle Edition (Example 6-2) * * @param {Object} o @@ -221,7 +225,7 @@ Component.all = []; /** * Component.add(component) - * + * * @param {Component} component */ Component.add = function(component) @@ -236,7 +240,7 @@ Component.add = function(component) /** * Component.log(s, type) - * + * * For diagnostic output only. * * @param {string} [s] is the message text @@ -258,7 +262,7 @@ Component.log = function(s, type) /** * Component.assert(f, s) - * + * * Used to verify conditions that must be true (for DEBUG builds only; compiled builds should automatically have all * references to Component.assert() removed). * @@ -281,9 +285,9 @@ Component.assert = function(f, s) /** * Component.println(s, type, id) - * + * * For non-diagnostic messages, which components may override to control the destination/appearance of their output. - * + * * Components that inherit from this class should use the instance method, this.println(), rather than Component.println(), * because if a Control Panel is loaded, it will override only the instance method, not the class method (overriding the class * method would improperly affect any other machines loaded on the same page). @@ -301,7 +305,7 @@ Component.println = function(s, type, id) /** * Component.notice(s, fPrintOnly, id) - * + * * notice() is like println() but implies a need for user notification, so we alert() as well. * * @param {string} s is the message text @@ -318,7 +322,7 @@ Component.notice = function(s, fPrintOnly, id) /** * Component.warning(s) - * + * * @param {string} s describes the warning */ Component.warning = function(s) @@ -331,7 +335,7 @@ Component.warning = function(s) /** * Component.error(s) - * + * * @param {string} s describes the error; an alert() is displayed as well */ Component.error = function(s) @@ -344,7 +348,7 @@ Component.error = function(s) /** * Component.getComponents(idRelated) - * + * * We could store components as properties of an 'all' object, using the component's ID, * and change this linear lookup into a property lookup, but some components may have no ID. * @@ -357,7 +361,7 @@ Component.getComponents = function(idRelated) var aComponents = []; /* * getComponentByID(id, idRelated) - * + * * If idRelated is provided, we check it for a machine prefix, and use any * existing prefix to constrain matches to IDs with the same prefix, in order to * avoid matching components belonging to other machines. @@ -379,7 +383,7 @@ Component.getComponents = function(idRelated) /** * Component.getComponentByID(id, idRelated) - * + * * We could store components as properties of an 'all' object, using the component's ID, * and change this linear lookup into a property lookup, but some components may have no ID. * @@ -411,7 +415,7 @@ Component.getComponentByID = function(id, idRelated) /** * Component.getComponentByType(sType, idRelated, componentPrev) - * + * * @param {string} sType of the desired component * @param {string} [idRelated] of related component * @param {Component} [componentPrev] of previously returned component, if any @@ -449,7 +453,7 @@ Component.getComponentByType = function(sType, idRelated, componentPrev) /** * Component.getComponentParms(element) - * + * * @param {Object} element from the DOM */ Component.getComponentParms = function(element) @@ -476,7 +480,7 @@ Component.getComponentParms = function(element) /** * Component.bindExternalControl(component, sControl, sBinding, sType) - * + * * @param {Component} component * @param {string} sControl * @param {string} sBinding @@ -498,7 +502,7 @@ Component.bindExternalControl = function(component, sControl, sBinding, sType) /** * Component.bindComponentControls(component, element, sAppClass) - * + * * @param {Component} component * @param {Object} element from the DOM * @param {string} sAppClass @@ -544,9 +548,9 @@ Component.bindComponentControls = function(component, element, sAppClass) /** * Component.getElementsByClass(element, sClass, sObjClass) - * + * * This is a cross-browser helper function, since not all browser's support getElementsByClassName() - * + * * TODO: This should probably be moved into weblib.js at some point, along with the control binding functions above, * to keep all the browser-related code together. * @@ -583,7 +587,7 @@ Component.prototype = { constructor: Component, /** * toString() - * + * * @this {Component} * @return {string} */ @@ -592,7 +596,7 @@ Component.prototype = { }, /** * getMachineNum() - * + * * @this {Component} * @return {number} unique machine number */ @@ -607,7 +611,7 @@ Component.prototype = { }, /** * setBinding(sHTMLClass, sHTMLType, sBinding, control) - * + * * Component's setBinding() method is intended to be overridden by subclasses. * * @this {Component} @@ -661,8 +665,8 @@ Component.prototype = { }; }(control)); /** - * Override this.notice() with a replacement function that eliminates the web.alertUser() call - * + * Override this.notice() with a replacement function that eliminates the web.alertUser() call + * * @this {Component} * @param {string} s * @param {boolean} [fPrintOnly] @@ -679,12 +683,12 @@ Component.prototype = { }, /** * log(s, type) - * + * * For diagnostic output only. - * + * * WARNING: Even though this function's body is completely wrapped in DEBUG, that won't prevent the Closure Compiler * from including it, so all calls must still be prefixed with "if (DEBUG) ....". For this reason, the class method, - * Component.log(), is preferred, because the compiler IS smart enough to remove those calls. + * Component.log(), is preferred, because the compiler IS smart enough to remove those calls. * * @this {Component} * @param {string} [s] is the message text @@ -702,7 +706,7 @@ Component.prototype = { * * Components using this.println() should wait until after their constructor has run to display any messages, because * if a Control Panel has been loaded, its override will not take effect until its own constructor has run. - * + * * @this {Component} * @param {string} [s] is the message text * @param {string} [type] is the message type @@ -713,7 +717,7 @@ Component.prototype = { }, /** * status(s) - * + * * status() is like println() but it also includes information about the component (ie, the component ID), * which is why there is no corresponding Component.status() function. * @@ -724,7 +728,7 @@ Component.prototype = { }, /** * notice(s, fPrintOnly) - * + * * notice() is like println() but implies a need for user notification, so we alert() as well; however, if this.println() * is overridden, this.notice will be replaced with a similar override, on the assumption that the override is taking care * of alerting the user. @@ -739,36 +743,36 @@ Component.prototype = { }, /** * setError(s) - * + * * Set a fatal error condition * * @this {Component} * @param {string} s describes a fatal error condition */ setError: function(s) { - this.fError = true; + this.aFlags.fError = true; this.notice("Fatal error: " + s); }, /** * clearError() - * + * * Clear any fatal error condition * * @this {Component} */ clearError: function() { - this.fError = false; + this.aFlags.fError = false; }, /** * isError() - * + * * Report any fatal error condition * * @this {Component} * @return {boolean} true if a fatal error condition exists, false if not */ isError: function() { - if (this.fError) { + if (this.aFlags.fError) { this.println(this.toString() + " error"); return true; } @@ -776,7 +780,7 @@ Component.prototype = { }, /** * isReady(fnReady) - * + * * Return the "ready" state of the component; if the component is not ready, it will queue the optional * notification function, otherwise it will immediately call the notification function, if any, without queuing it. * @@ -789,27 +793,27 @@ Component.prototype = { */ isReady: function(fnReady) { if (fnReady) { - if (this.fReady) { + if (this.aFlags.fReady) { fnReady(); } else { if (DEBUG) this.log("NOT ready"); this.fnReady = fnReady; } } - return this.fReady; + return this.aFlags.fReady; }, /** * setReady(fReady) - * + * * Set the "ready" state of the component to true, and call any queued notification functions. * * @this {Component} * @param {boolean} [fReady] is assumed to indicate "ready" unless EXPLICITLY set to false */ setReady: function(fReady) { - if (!this.fError) { - this.fReady = (fReady !== false); - if (this.fReady) { + if (!this.aFlags.fError) { + this.aFlags.fReady = (fReady !== false); + if (this.aFlags.fReady) { if (DEBUG || this.name) this.log("ready"); var fnReady = this.fnReady; this.fnReady = null; @@ -819,7 +823,7 @@ Component.prototype = { }, /** * isBusy(fCancel) - * + * * Return the "busy" state of the component * * @this {Component} @@ -827,18 +831,18 @@ Component.prototype = { * @return {boolean} true if "busy", false if not */ isBusy: function(fCancel) { - if (this.fBusy) { + if (this.aFlags.fBusy) { if (fCancel) { - this.fBusyCancel = true; + this.aFlags.fBusyCancel = true; } else if (fCancel === undefined) { this.println(this.toString() + " busy"); } } - return this.fBusy; + return this.aFlags.fBusy; }, /** * setBusy(fBusy) - * + * * Update the current busy state; if an fCancel request is pending, it will be honored now. * * @this {Component} @@ -846,19 +850,19 @@ Component.prototype = { * @return {boolean} */ setBusy: function(fBusy) { - if (this.fBusyCancel) { - if (this.fBusy) { - this.fBusy = false; + if (this.aFlags.fBusyCancel) { + if (this.aFlags.fBusy) { + this.aFlags.fBusy = false; } - this.fBusyCancel = false; + this.aFlags.fBusyCancel = false; return false; } - if (this.fError) { + if (this.aFlags.fError) { this.println(this.toString() + " error"); return false; } - this.fBusy = fBusy; - return this.fBusy; + this.aFlags.fBusy = fBusy; + return this.aFlags.fBusy; }, /** * powerUp(fSave) @@ -869,7 +873,7 @@ Component.prototype = { * @return {boolean} true if successful, false if failure */ powerUp: function(data, fRepower) { - this.fPowered = true; + this.aFlags.fPowered = true; return true; }, /** @@ -881,7 +885,7 @@ Component.prototype = { * @return {Object|boolean} component state if fSave; otherwise, true if successful, false if failure */ powerDown: function(fSave, fShutdown) { - if (fShutdown) this.fPowered = false; + if (fShutdown) this.aFlags.fPowered = false; return true; } }; diff --git a/versions/c1pjs/1.15.8/c1p-dbg.js b/versions/c1pjs/1.15.8/c1p-dbg.js index 820576dfa..e23444d13 100644 --- a/versions/c1pjs/1.15.8/c1p-dbg.js +++ b/versions/c1pjs/1.15.8/c1p-dbg.js @@ -3,163 +3,163 @@ function s(a,b,c){var d;d=!0;var e=0,g=null,h=ba(a),k=window.XMLHttpRequest?new function t(a){window?window.alert(a):console.log(a)}function u(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function ea(a,b,c){function d(){a-=1;0<=a&&(b()||(a=0));0=a.Ma?a.Hb:a.speed+1,!0)}}(this),a=!0}return a}; -f.V=function(a,b,c){this.a=a;this.$=b;this.rc=c-b+1;this.Ya=this.$+this.rc;this.$?t("unsupported CPU address buffer offset ("+this.$+")"):this.P()};f.ba=function(a,b){if(a&&!this.C){this.N=b;(this.m=L(b,"debugger"))&&this.m.Nf();var c=L(b,"video");c&&(this.tc=function(a){return function(){ua(a)}}(c),this.W=function(a){return function(){a.W()}}(c));this.C=!0;this.reset(!0);this.update()}};function va(a,b,c,d,e){0>wa(a.Ca,b,c,d,e)&&(a.nc>b&&(a.nc=b),a.oc=a.Ca[d][0]&&b<=a.Ca[d][1]&&a.Ca[d][3].call(a.Ca[d][2],b,c)}function N(a,b,c,d,e){0>wa(a.sa,b,c,d,e)&&(a.Lb>b&&(a.Lb=b),a.Mb=a.sa[d][0]&&b<=a.sa[d][1]&&a.sa[d][3].call(a.sa[d][2],b,c)}function wa(a,b,c,d,e){for(var g=0;ga.Hb&&a.ua&&(d=a.ua);d>a.mb&&a.speedc?c=0:a.speed==a.qd?a.ua<=a.mb&&(c=0):a.speed==a.Ma&&(c=0);a.Ac+=a.qb;return c} -f.ya=function(){if(H(this,!0)){this.ga||(M(this),this.N&&this.N.start(),this.ga=!0,this.r.run&&(this.r.run.innerHTML="Halt"),this.W());this.Ac>=this.pb&&za(this,!0);this.qb=0;this.Vf=r();try{do{this.step(this.Wb);var a=this.va-this.F;this.Xa+=a;this.qb+=a;this.va=this.F=0;this.ob-=this.Wb;0>=this.ob&&(this.ob+=this.Jd,this.tc());this.nb-=this.Wb;0>=this.nb&&(this.nb+=this.Id,Aa(this));this.Va-=this.Wb;if(0>=this.Va){this.Va+=this.xc;break}}while(this.ga)}catch(b){this.T();this.update();H(this,!1); -K(this,b.message);return}setTimeout(function(a){return function(){a.ya()}}(this),Ca(this))}else this.update(),this.N&&this.N.stop(this.Hd,this.Xa)}; -f.step=function(a){var b=!0;this.b=this.h=-1;var c;if(c=a)if(c=this.m)c=this.m,c=0=d.Da.length&&(d.kb=0));d=!!g}if(d){b=void 0;this.T();break}this.d++;this.t[a].call(this);if(0<=this.b){this.b>=this.nc&&this.b<=this.oc&&xa(this,this.b,this.d);if(d=c)d=this.m,e=!1,Da(d,this.b,d.Ba,"read")&&(e=!0),d=!!e;if(d){b= -!1;this.T();break}this.b=-1}else if(0<=this.h){this.h>=this.Lb&&this.h<=this.Mb&&ya(this,this.h,this.d);if(d=c){d=this.m;var e=this.h,g=this.a[this.h],h=!1;(g&255)!=g&&(d.i("invalid value at "+p(e)+": "+g),h=!0);Da(d,e,d.Ea,"write")&&(h=!0);d=!!h}if(d){b=!1;this.T();break}this.h=-1}this.F-=this.Cf[a]}while(0>1)&128?64:0),b=b|(a.f&128?128:0);return a.w&60|b} -function Ga(a){a.w|=8;a.t[97]=a.eg;a.t[101]=a.gg;a.t[105]=a.dg;a.t[109]=a.ag;a.t[113]=a.fg;a.t[117]=a.hg;a.t[121]=a.cg;a.t[125]=a.bg;a.t[225]=a.ui;a.t[229]=a.wi;a.t[233]=a.ti;a.t[237]=a.qi;a.t[241]=a.vi;a.t[245]=a.xi;a.t[249]=a.si;a.t[253]=a.ri}function Ha(a){a.w&=-9;a.t[97]=a.Vd;a.t[101]=a.Xd;a.t[105]=a.Ud;a.t[109]=a.Rd;a.t[113]=a.Wd;a.t[117]=a.Yd;a.t[121]=a.Td;a.t[125]=a.Sd;a.t[225]=a.ce;a.t[229]=a.ee;a.t[233]=a.be;a.t[237]=a.Zd;a.t[241]=a.de;a.t[245]=a.fe;a.t[249]=a.ae;a.t[253]=a.$d} -function P(a,b,c){var d=a.c&256?1:0,e=(b&15)+(c&15)+d;10<=e&&(e=e+6&15|16);e+=(b&240)+(c&240);a.v=b^c;a.u=e;a.f=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.g=b+c+d&255;a.F--;return e&255}function Q(a,b,c){var d=a.c&256?0:1,e=(b&15)-(c&15)-d;0>e&&(e=(e-6&15)-16);e+=(b&240)-(c&240);0>e&&(e-=96);a.f=a.g=(a.c=b-c-d)&255;a.v=b^c;a.u=a.c;a.c^=256;a.F--;return e&255}function ta(a){a.e=0;a.n=0;a.p=0;a.q=256;a.w=0;a.f=0;a.g=0;a.v=0;a.u=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.ua=0;a.Xa=a.va=a.F=0} -f.Dg=function(){this.d++;this.a[this.q--]=this.d>>8;this.q|=256;this.a[this.q--]=this.d&255;this.q|=256;this.w|=16;this.w=Ba(this);this.a[this.q--]=this.w;this.q|=256;this.w&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.Xh=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e|=this.a[this.b]};f.Zh=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]}; -f.tg=function(){this.h=this.a[this.d++];this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.bi=function(){this.w=Ba(this);this.a[this.q--]=this.w;this.q|=256};f.Wh=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};f.sg=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};f.Th=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]}; -f.qg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.Cg=function(){this.d+=(this.f&128?0:(this.F--,this.a[this.d]<<24>>24))+1};f.Yh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.e|=this.a[this.b]};f.$h=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e|=this.a[this.b]}; -f.ug=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.Gg=function(){this.c=0};f.Vh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.e|=this.a[this.b]};f.Uh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e|=this.a[this.b]};f.rg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255}; -f.uh=function(){this.b=this.d++;this.a[this.q--]=this.d>>8;this.q|=256;this.a[this.q--]=this.d&255;this.q|=256;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.mg=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e&=this.a[this.b]};f.zg=function(){this.b=this.a[this.d++];this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.u=0;this.v=this.a[this.b]&64?128:0};f.og=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]}; -f.hi=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.di=function(){this.q=this.q+1&255|256;this.w=this.a[this.q];this.c=this.w&1?256:0;this.g=this.w&2?0:1;this.f=this.w&128;this.u=0;this.v=this.w&64?128:0};f.lg=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]}; -f.gi=function(){this.c=this.c&65280|this.e;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.e=this.c&255};f.yg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.u=0;this.v=this.a[this.b]&64?128:0};f.ig=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]}; -f.ei=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.Ag=function(){this.d+=(this.f&128?(this.F--,this.a[this.d]<<24>>24):0)+1};f.ng=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.e&=this.a[this.b]};f.pg=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e&=this.a[this.b]}; -f.ii=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.yi=function(){this.c=256};f.kg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.e&=this.a[this.b]};f.jg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e&=this.a[this.b]}; -f.fi=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.oi=function(){this.q=this.q+1&255|256;this.w=this.a[this.q];this.c=this.w&1?256:0;this.g=this.w&2?0:1;this.f=this.w&128;this.u=0;this.v=this.w&64?128:0;this.q=this.q+2&255|256;this.d=this.a[this.q-1|256]|this.a[this.q]<<8}; -f.ih=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e^=this.a[this.b]};f.kh=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};f.Qh=function(){this.h=this.a[this.d++];this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};f.ai=function(){this.a[this.q--]=this.e;this.q|=256};f.hh=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]}; -f.Ph=function(){this.c=this.c&65279|(this.e&1?256:0);this.e=(this.c=this.c&65280|this.e>>1)&255;this.f=this.g=this.c&255};f.th=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.eh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};f.Nh=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; -f.Eg=function(){this.d+=((this.u&255^this.v^this.u>>1)&128?0:(this.F--,this.a[this.d]<<24>>24))+1};f.jh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.e^=this.a[this.b]};f.lh=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e^=this.a[this.b]};f.Rh=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; -f.Ig=function(){this.w&=251};f.gh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.e^=this.a[this.b]};f.fh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e^=this.a[this.b]};f.Oh=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; -f.pi=function(){this.q=this.q+2&255|256;this.d=(this.a[this.q-1|256]|this.a[this.q]<<8)+1};f.Vd=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.eg=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=P(this,this.e,this.a[this.b])}; -f.Xd=function(){this.b=this.a[this.d++];this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.gg=function(){this.b=this.a[this.d++];this.e=P(this,this.e,this.a[this.b])};f.mi=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.ci=function(){this.q=this.q+1&255|256;this.f=this.g=this.e=this.a[this.q]}; -f.Ud=function(){this.b=this.d++;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.dg=function(){this.b=this.d++;this.e=P(this,this.e,this.a[this.b])};f.li=function(){this.c=this.c&65280|this.e;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.e=this.c&255};f.sh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.d=this.a[this.b]|this.a[this.b+1]<<8}; -f.Rd=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.ag=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=P(this,this.e,this.a[this.b])};f.ji=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255}; -f.Fg=function(){this.d+=((this.u&255^this.v^this.u>>1)&128?(this.F--,this.a[this.d]<<24>>24):0)+1};f.Wd=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.fg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.e=P(this,this.e,this.a[this.b])}; -f.Yd=function(){this.b=this.a[this.d++]+this.n&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.hg=function(){this.b=this.a[this.d++]+this.n&255;this.e=P(this,this.e,this.a[this.b])};f.ni=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.Ai=function(){this.w|=4}; -f.Td=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.cg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.e=P(this,this.e,this.a[this.b])};f.Sd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255}; -f.bg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.e=P(this,this.e,this.a[this.b])};f.ki=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.Ei=function(){this.h=this.a[this.d++]+this.n&255;this.h=this.a[this.h]|this.a[this.h+1]<<8;this.a[this.h]=this.e};f.Mi=function(){this.h=this.a[this.d++];this.a[this.h]=this.p}; -f.Gi=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};f.Ji=function(){this.h=this.a[this.d++];this.a[this.h]=this.n};f.dh=function(){this.f=this.g=this.p=this.p-1&255};f.Si=function(){this.f=this.g=this.e=this.n};f.Li=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.p};f.Bi=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};f.Ii=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.n}; -f.vg=function(){this.d+=(this.c&256?0:(this.F--,this.a[this.d]<<24>>24))+1};f.Fi=function(){this.h=this.a[this.d++];this.h=(this.a[this.h]|this.a[this.h+1]<<8)+this.p;this.a[this.h]=this.e};f.Ni=function(){this.h=this.a[this.d++]+this.n&255;this.a[this.h]=this.p};f.Hi=function(){this.h=this.a[this.d++]+this.n&255;this.a[this.h]=this.e};f.Ki=function(){this.h=this.a[this.d++]+this.p&255;this.a[this.h]=this.n};f.Ui=function(){this.f=this.g=this.e=this.p}; -f.Di=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.a[this.h]=this.e};f.Ti=function(){this.q=this.n|256};f.Ci=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.a[this.h]=this.e};f.Kh=function(){this.b=this.d++;this.f=this.g=this.p=this.a[this.b]};f.zh=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e=this.a[this.b]};f.Fh=function(){this.b=this.d++;this.f=this.g=this.n=this.a[this.b]}; -f.Lh=function(){this.b=this.a[this.d++];this.f=this.g=this.p=this.a[this.b]};f.Bh=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};f.Gh=function(){this.b=this.a[this.d++];this.f=this.g=this.n=this.a[this.b]};f.Qi=function(){this.f=this.g=this.p=this.e};f.yh=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};f.Pi=function(){this.f=this.g=this.n=this.e};f.Ih=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.p=this.a[this.b]}; -f.vh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};f.Dh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.n=this.a[this.b]};f.wg=function(){this.d+=(this.c&256?(this.F--,this.a[this.d]<<24>>24):0)+1};f.Ah=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.e=this.a[this.b]};f.Mh=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.p=this.a[this.b]}; -f.Ch=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e=this.a[this.b]};f.Hh=function(){this.b=this.a[this.d++]+this.p&255;this.f=this.g=this.n=this.a[this.b]};f.Jg=function(){this.v=this.u=0};f.xh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.e=this.a[this.b]};f.Ri=function(){this.f=this.g=this.n=this.q&255};f.Jh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.p=this.a[this.b]}; -f.wh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e=this.a[this.b]};f.Eh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.n=this.a[this.b]};f.Wg=function(){this.b=this.d++;this.f=this.g=this.c=this.p-this.a[this.b];this.c^=256};f.Og=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256}; -f.Xg=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.p-this.a[this.b];this.c^=256};f.Qg=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.$g=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.rh=function(){this.f=this.g=this.p=this.p+1&255};f.Ng=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.bh=function(){this.f=this.g=this.n=this.n-1&255}; -f.Vg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.p-this.a[this.b];this.c^=256};f.Kg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Yg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Bg=function(){this.d+=(this.g&255?(this.F--,this.a[this.d]<<24>>24):0)+1}; -f.Pg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Rg=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.ah=function(){this.h=this.a[this.d++]+this.n&255;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Hg=function(){Ha(this)}; -f.Mg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Lg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Zg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Tg=function(){this.b=this.d++;this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256}; -f.ce=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ui=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=Q(this,this.e,this.a[this.b])};f.Ug=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256}; -f.ee=function(){this.b=this.a[this.d++];this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.wi=function(){this.b=this.a[this.d++];this.e=Q(this,this.e,this.a[this.b])};f.oh=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.qh=function(){this.f=this.g=this.n=this.n+1&255}; -f.be=function(){this.b=this.d++;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ti=function(){this.b=this.d++;this.e=Q(this,this.e,this.a[this.b])};f.Sh=function(){};f.Sg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256}; -f.Zd=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.qi=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=Q(this,this.e,this.a[this.b])};f.mh=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.xg=function(){this.d+=(this.g&255?0:(this.F--,this.a[this.d]<<24>>24))+1}; -f.de=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.vi=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.e=Q(this,this.e,this.a[this.b])}; -f.fe=function(){this.b=this.a[this.d++]+this.n&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.xi=function(){this.b=this.a[this.d++]+this.n&255;this.e=Q(this,this.e,this.a[this.b])};f.ph=function(){this.h=this.a[this.d++]+this.n&255;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.zi=function(){Ga(this)}; -f.ae=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.si=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.e=Q(this,this.e,this.a[this.b])}; -f.$d=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ri=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.e=Q(this,this.e,this.a[this.b])};f.nh=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255}; -f.Oi=function(){var a;a=this.a[this.d++];switch(a){case this.wf:this.i("HALT");this.T();break;case this.pd:a=this.d;for(var b="";a=a.Na?a.Ib:a.speed+1,!0)}}(this),a=!0}return a}; +f.W=function(a,b,c){this.a=a;this.aa=b;this.sc=c-b+1;this.$a=this.aa+this.sc;this.aa?t("unsupported CPU address buffer offset ("+this.aa+")"):this.Q()};f.ca=function(a,b){if(a&&!this.o.C){this.O=b;(this.m=L(b,"debugger"))&&this.m.Of();var c=L(b,"video");c&&(this.uc=function(a){return function(){ua(a)}}(c),this.X=function(a){return function(){a.X()}}(c));this.o.C=!0;this.reset(!0);this.update()}};function va(a,b,c,d,e){0>wa(a.Da,b,c,d,e)&&(a.oc>b&&(a.oc=b),a.pc=a.Da[d][0]&&b<=a.Da[d][1]&&a.Da[d][3].call(a.Da[d][2],b,c)}function N(a,b,c,d,e){0>wa(a.ta,b,c,d,e)&&(a.Mb>b&&(a.Mb=b),a.Nb=a.ta[d][0]&&b<=a.ta[d][1]&&a.ta[d][3].call(a.ta[d][2],b,c)}function wa(a,b,c,d,e){for(var g=0;ga.Ib&&a.va&&(d=a.va);d>a.nb&&a.speedc?c=0:a.speed==a.rd?a.va<=a.nb&&(c=0):a.speed==a.Na&&(c=0);a.Bc+=a.rb;return c} +f.za=function(){if(H(this,!0)){this.o.ha||(M(this),this.O&&this.O.start(),this.o.ha=!0,this.s.run&&(this.s.run.innerHTML="Halt"),this.X());this.Bc>=this.qb&&za(this,!0);this.rb=0;this.Wf=r();try{do{this.step(this.Xb);var a=this.wa-this.G;this.Za+=a;this.rb+=a;this.wa=this.G=0;this.pb-=this.Xb;0>=this.pb&&(this.pb+=this.Kd,this.uc());this.ob-=this.Xb;0>=this.ob&&(this.ob+=this.Jd,Aa(this));this.Xa-=this.Xb;if(0>=this.Xa){this.Xa+=this.yc;break}}while(this.o.ha)}catch(b){this.U();this.update();H(this, +!1);K(this,b.message);return}setTimeout(function(a){return function(){a.za()}}(this),Ca(this))}else this.update(),this.O&&this.O.stop(this.Id,this.Za)}; +f.step=function(a){var b=!0;this.b=this.h=-1;var c;if(c=a)if(c=this.m)c=this.m,c=0=d.Ea.length&&(d.lb=0));d=!!g}if(d){b=void 0;this.U();break}this.d++;this.u[a].call(this);if(0<=this.b){this.b>=this.oc&&this.b<=this.pc&&xa(this,this.b,this.d);if(d=c)d=this.m,e=!1,Da(d,this.b,d.Ca,"read")&&(e=!0),d=!!e;if(d){b= +!1;this.U();break}this.b=-1}else if(0<=this.h){this.h>=this.Mb&&this.h<=this.Nb&&ya(this,this.h,this.d);if(d=c){d=this.m;var e=this.h,g=this.a[this.h],h=!1;(g&255)!=g&&(d.i("invalid value at "+p(e)+": "+g),h=!0);Da(d,e,d.Fa,"write")&&(h=!0);d=!!h}if(d){b=!1;this.U();break}this.h=-1}this.G-=this.Df[a]}while(0>1)&128?64:0),b=b|(a.f&128?128:0);return a.A&60|b} +function Ga(a){a.A|=8;a.u[97]=a.fg;a.u[101]=a.hg;a.u[105]=a.eg;a.u[109]=a.bg;a.u[113]=a.gg;a.u[117]=a.ig;a.u[121]=a.dg;a.u[125]=a.cg;a.u[225]=a.vi;a.u[229]=a.xi;a.u[233]=a.ui;a.u[237]=a.ri;a.u[241]=a.wi;a.u[245]=a.yi;a.u[249]=a.ti;a.u[253]=a.si}function Ha(a){a.A&=-9;a.u[97]=a.Wd;a.u[101]=a.Yd;a.u[105]=a.Vd;a.u[109]=a.Sd;a.u[113]=a.Xd;a.u[117]=a.Zd;a.u[121]=a.Ud;a.u[125]=a.Td;a.u[225]=a.de;a.u[229]=a.fe;a.u[233]=a.ce;a.u[237]=a.$d;a.u[241]=a.ee;a.u[245]=a.ge;a.u[249]=a.be;a.u[253]=a.ae} +function P(a,b,c){var d=a.c&256?1:0,e=(b&15)+(c&15)+d;10<=e&&(e=e+6&15|16);e+=(b&240)+(c&240);a.w=b^c;a.v=e;a.f=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.g=b+c+d&255;a.G--;return e&255}function Q(a,b,c){var d=a.c&256?0:1,e=(b&15)-(c&15)-d;0>e&&(e=(e-6&15)-16);e+=(b&240)-(c&240);0>e&&(e-=96);a.f=a.g=(a.c=b-c-d)&255;a.w=b^c;a.v=a.c;a.c^=256;a.G--;return e&255}function ta(a){a.e=0;a.n=0;a.q=0;a.r=256;a.A=0;a.f=0;a.g=0;a.w=0;a.v=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.va=0;a.Za=a.wa=a.G=0} +f.Eg=function(){this.d++;this.a[this.r--]=this.d>>8;this.r|=256;this.a[this.r--]=this.d&255;this.r|=256;this.A|=16;this.A=Ba(this);this.a[this.r--]=this.A;this.r|=256;this.A&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.Yh=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e|=this.a[this.b]};f.$h=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]}; +f.ug=function(){this.h=this.a[this.d++];this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.ci=function(){this.A=Ba(this);this.a[this.r--]=this.A;this.r|=256};f.Xh=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};f.tg=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};f.Uh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]}; +f.rg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.Dg=function(){this.d+=(this.f&128?0:(this.G--,this.a[this.d]<<24>>24))+1};f.Zh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.f=this.g=this.e|=this.a[this.b]};f.ai=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e|=this.a[this.b]}; +f.vg=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.Hg=function(){this.c=0};f.Wh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.f=this.g=this.e|=this.a[this.b]};f.Vh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e|=this.a[this.b]};f.sg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255}; +f.vh=function(){this.b=this.d++;this.a[this.r--]=this.d>>8;this.r|=256;this.a[this.r--]=this.d&255;this.r|=256;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.ng=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e&=this.a[this.b]};f.Ag=function(){this.b=this.a[this.d++];this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.v=0;this.w=this.a[this.b]&64?128:0};f.pg=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]}; +f.ii=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.ei=function(){this.r=this.r+1&255|256;this.A=this.a[this.r];this.c=this.A&1?256:0;this.g=this.A&2?0:1;this.f=this.A&128;this.v=0;this.w=this.A&64?128:0};f.mg=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]}; +f.hi=function(){this.c=this.c&65280|this.e;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.e=this.c&255};f.zg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.v=0;this.w=this.a[this.b]&64?128:0};f.jg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]}; +f.fi=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.Bg=function(){this.d+=(this.f&128?(this.G--,this.a[this.d]<<24>>24):0)+1};f.og=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.f=this.g=this.e&=this.a[this.b]};f.qg=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e&=this.a[this.b]}; +f.ji=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.zi=function(){this.c=256};f.lg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.f=this.g=this.e&=this.a[this.b]};f.kg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e&=this.a[this.b]}; +f.gi=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};f.pi=function(){this.r=this.r+1&255|256;this.A=this.a[this.r];this.c=this.A&1?256:0;this.g=this.A&2?0:1;this.f=this.A&128;this.v=0;this.w=this.A&64?128:0;this.r=this.r+2&255|256;this.d=this.a[this.r-1|256]|this.a[this.r]<<8}; +f.jh=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e^=this.a[this.b]};f.lh=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};f.Rh=function(){this.h=this.a[this.d++];this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};f.bi=function(){this.a[this.r--]=this.e;this.r|=256};f.ih=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]}; +f.Qh=function(){this.c=this.c&65279|(this.e&1?256:0);this.e=(this.c=this.c&65280|this.e>>1)&255;this.f=this.g=this.c&255};f.uh=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.fh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};f.Oh=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; +f.Fg=function(){this.d+=((this.v&255^this.w^this.v>>1)&128?0:(this.G--,this.a[this.d]<<24>>24))+1};f.kh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.f=this.g=this.e^=this.a[this.b]};f.mh=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e^=this.a[this.b]};f.Sh=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; +f.Jg=function(){this.A&=251};f.hh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.f=this.g=this.e^=this.a[this.b]};f.gh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e^=this.a[this.b]};f.Ph=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; +f.qi=function(){this.r=this.r+2&255|256;this.d=(this.a[this.r-1|256]|this.a[this.r]<<8)+1};f.Wd=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255};f.fg=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=P(this,this.e,this.a[this.b])}; +f.Yd=function(){this.b=this.a[this.d++];this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255};f.hg=function(){this.b=this.a[this.d++];this.e=P(this,this.e,this.a[this.b])};f.ni=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.di=function(){this.r=this.r+1&255|256;this.f=this.g=this.e=this.a[this.r]}; +f.Vd=function(){this.b=this.d++;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255};f.eg=function(){this.b=this.d++;this.e=P(this,this.e,this.a[this.b])};f.mi=function(){this.c=this.c&65280|this.e;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.e=this.c&255};f.th=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.d=this.a[this.b]|this.a[this.b+1]<<8}; +f.Sd=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255};f.bg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=P(this,this.e,this.a[this.b])};f.ki=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255}; +f.Gg=function(){this.d+=((this.v&255^this.w^this.v>>1)&128?(this.G--,this.a[this.d]<<24>>24):0)+1};f.Xd=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255};f.gg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.e=P(this,this.e,this.a[this.b])}; +f.Zd=function(){this.b=this.a[this.d++]+this.n&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255};f.ig=function(){this.b=this.a[this.d++]+this.n&255;this.e=P(this,this.e,this.a[this.b])};f.oi=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.Bi=function(){this.A|=4}; +f.Ud=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255};f.dg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.e=P(this,this.e,this.a[this.b])};f.Td=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255}; +f.cg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.e=P(this,this.e,this.a[this.b])};f.li=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};f.Fi=function(){this.h=this.a[this.d++]+this.n&255;this.h=this.a[this.h]|this.a[this.h+1]<<8;this.a[this.h]=this.e};f.Ni=function(){this.h=this.a[this.d++];this.a[this.h]=this.q}; +f.Hi=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};f.Ki=function(){this.h=this.a[this.d++];this.a[this.h]=this.n};f.eh=function(){this.f=this.g=this.q=this.q-1&255};f.Ti=function(){this.f=this.g=this.e=this.n};f.Mi=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.q};f.Ci=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};f.Ji=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.n}; +f.wg=function(){this.d+=(this.c&256?0:(this.G--,this.a[this.d]<<24>>24))+1};f.Gi=function(){this.h=this.a[this.d++];this.h=(this.a[this.h]|this.a[this.h+1]<<8)+this.q;this.a[this.h]=this.e};f.Oi=function(){this.h=this.a[this.d++]+this.n&255;this.a[this.h]=this.q};f.Ii=function(){this.h=this.a[this.d++]+this.n&255;this.a[this.h]=this.e};f.Li=function(){this.h=this.a[this.d++]+this.q&255;this.a[this.h]=this.n};f.Vi=function(){this.f=this.g=this.e=this.q}; +f.Ei=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.a[this.h]=this.e};f.Ui=function(){this.r=this.n|256};f.Di=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.a[this.h]=this.e};f.Lh=function(){this.b=this.d++;this.f=this.g=this.q=this.a[this.b]};f.Ah=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e=this.a[this.b]};f.Gh=function(){this.b=this.d++;this.f=this.g=this.n=this.a[this.b]}; +f.Mh=function(){this.b=this.a[this.d++];this.f=this.g=this.q=this.a[this.b]};f.Ch=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};f.Hh=function(){this.b=this.a[this.d++];this.f=this.g=this.n=this.a[this.b]};f.Ri=function(){this.f=this.g=this.q=this.e};f.zh=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};f.Qi=function(){this.f=this.g=this.n=this.e};f.Jh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.q=this.a[this.b]}; +f.wh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};f.Eh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.n=this.a[this.b]};f.xg=function(){this.d+=(this.c&256?(this.G--,this.a[this.d]<<24>>24):0)+1};f.Bh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.f=this.g=this.e=this.a[this.b]};f.Nh=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.q=this.a[this.b]}; +f.Dh=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e=this.a[this.b]};f.Ih=function(){this.b=this.a[this.d++]+this.q&255;this.f=this.g=this.n=this.a[this.b]};f.Kg=function(){this.w=this.v=0};f.yh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.f=this.g=this.e=this.a[this.b]};f.Si=function(){this.f=this.g=this.n=this.r&255};f.Kh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.q=this.a[this.b]}; +f.xh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e=this.a[this.b]};f.Fh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.f=this.g=this.n=this.a[this.b]};f.Xg=function(){this.b=this.d++;this.f=this.g=this.c=this.q-this.a[this.b];this.c^=256};f.Pg=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256}; +f.Yg=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.q-this.a[this.b];this.c^=256};f.Rg=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.ah=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.sh=function(){this.f=this.g=this.q=this.q+1&255};f.Og=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.dh=function(){this.f=this.g=this.n=this.n-1&255}; +f.Wg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.q-this.a[this.b];this.c^=256};f.Lg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Zg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Cg=function(){this.d+=(this.g&255?(this.G--,this.a[this.d]<<24>>24):0)+1}; +f.Qg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Sg=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.bh=function(){this.h=this.a[this.d++]+this.n&255;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Ig=function(){Ha(this)}; +f.Ng=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Mg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.$g=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Ug=function(){this.b=this.d++;this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256}; +f.de=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.vi=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=Q(this,this.e,this.a[this.b])};f.Vg=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256}; +f.fe=function(){this.b=this.a[this.d++];this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.xi=function(){this.b=this.a[this.d++];this.e=Q(this,this.e,this.a[this.b])};f.ph=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.rh=function(){this.f=this.g=this.n=this.n+1&255}; +f.ce=function(){this.b=this.d++;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ui=function(){this.b=this.d++;this.e=Q(this,this.e,this.a[this.b])};f.Th=function(){};f.Tg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256}; +f.$d=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ri=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=Q(this,this.e,this.a[this.b])};f.nh=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.yg=function(){this.d+=(this.g&255?0:(this.G--,this.a[this.d]<<24>>24))+1}; +f.ee=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.wi=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.q;this.e=Q(this,this.e,this.a[this.b])}; +f.ge=function(){this.b=this.a[this.d++]+this.n&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.yi=function(){this.b=this.a[this.d++]+this.n&255;this.e=Q(this,this.e,this.a[this.b])};f.qh=function(){this.h=this.a[this.d++]+this.n&255;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.Ai=function(){Ga(this)}; +f.be=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ti=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.q;this.e=Q(this,this.e,this.a[this.b])}; +f.ae=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.v=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.si=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.e=Q(this,this.e,this.a[this.b])};f.oh=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255}; +f.Pi=function(){var a;a=this.a[this.d++];switch(a){case this.xf:this.i("HALT");this.U();break;case this.qd:a=this.d;for(var b="";a=c&&(c+=32);a.Ja=a.Ja.substr(1);Ma(a,c)}0=b&&(b+=32),Oa(a,b),U(a,b,!0,a.od)&&(a.l.speed==a.l.Ma?U(a,b,!1,a.uf):(c=!1,a.da[b]&&(clearTimeout(a.da[b]),c=!0),c=Na(a,c),a.da[a.xa=b]=setTimeout(function(a){return function(){U(a,b,!1,a.vf)}}(a),c),a.m&&T(a.m,a.m.za)&&a.m.message("keyPressSimulate("+n(b)+"): setTimeout()")),c=!0));a.m&&T(a.m,a.m.za)&&a.m.message("keyPressSimulate("+n(b)+"): "+(c?"true":"false"));return c} -function U(a,b,c,d){var e=!1;c||(a.da[b]=null,a.xa==b&&(a.xa=0));var g=0,h=a.k[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.zb),h=a.k[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.M[b]|=1<d||d>=this.Wf}a&&(d=this.kc.shift(),void 0!==d&&(this.xd=d),this.Dc=0,this.Kd=c);for(d=c=0;8>d;d++)this.yd&1<d[g][0]&&(h=d[g][0]),k=a.Ed&&(d-=a.Ed,d=c&&(c+=32);a.Ka=a.Ka.substr(1);Ma(a,c)}0=b&&(b+=32),Oa(a,b),U(a,b,!0,a.pd)&&(a.l.speed==a.l.Na?U(a,b,!1,a.vf):(c=!1,a.ea[b]&&(clearTimeout(a.ea[b]),c=!0),c=Na(a,c),a.ea[a.ya=b]=setTimeout(function(a){return function(){U(a,b,!1,a.wf)}}(a),c),a.m&&T(a.m,a.m.Aa)&&a.m.message("keyPressSimulate("+n(b)+"): setTimeout()")),c=!0));a.m&&T(a.m,a.m.Aa)&&a.m.message("keyPressSimulate("+n(b)+"): "+(c?"true":"false"));return c} +function U(a,b,c,d){var e=!1;c||(a.ea[b]=null,a.ya==b&&(a.ya=0));var g=0,h=a.k[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.Ab),h=a.k[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.N[b]|=1<d||d>=this.Xf}a&&(d=this.lc.shift(),void 0!==d&&(this.yd=d),this.Ec=0,this.Ld=c);for(d=c=0;8>d;d++)this.zd&1<d[g][0]&&(h=d[g][0]),k=a.Fd&&(d-=a.Fd,dMissing <canvas> support; try a new web browser.";break}e.setAttribute("class","c1pjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor; -e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight));c.appendChild(e);var g=new Image,h=e.getContext("2d"),e=new Qa(d,e,h,g);g.onload=function(a){return function(){a.P()}}(e,d.charSet);g.src=d.charSet;E(e,c)}}); -function Ta(a){z.call(this,"C1PSerialPort",a);this.C=!1;this.Dd=a.demo;this.yf=0;this.xf=1;this.reset()}B(Ta);f=Ta.prototype;f.reset=function(){2!=this.Fa&&(this.Nb=this.pc=0,this.Za='10 PRINT "HELLO OSI #'+ka(this)+'"\n',this.Fa=this.Ub=0)};f.start=function(){this.G&&this.Dd&&(V(this.G," C\n\n",3E3),setTimeout(function(a){return function(){a.Fa=1;V(a.G,"LOAD\n")}}(this),12E3));this.Dd=!1}; -f.I=function(a,b,c,d){switch(c){case "listSerial":return this.r[c]=d,!0;case "loadSerial":return this.r[c]=d,d.onclick=function(a){return function(){a.r.listSerial&&s(a.r.listSerial.value,a,a.Pf)}}(this),!0}return!1};f.V=function(a,b,c,d){this.a=a;this.Fc=b;this.Ff=c-b+1;this.Qd=this.Fc+this.Ff;if(this.l=d)va(d,b,c,this,this.H),N(d,b,c,this,this.O);this.P()};f.ba=function(a,b){a&&!this.C&&(this.C=!0,this.N=b,this.G=L(b,"keyboard"),this.m=L(b,"debugger"))}; -f.Pf=function(a,b,c){b?(this.Za=b,this.Fa=this.Ub=0,this.N&&this.G&&this.l.ga?(this.i("auto-loading "+a),this.l.W(),"."!=this.Za.charAt(0)?(this.Fa=1,V(this.G,"NEW\nLOAD\n")):(this.Fa=2,this.N.reset(!0),V(this.G,"ML"))):this.i(a+" ready to load")):this.i(a+" load error ("+c+")")};f.H=function(a,b){void 0!==b&&(a&1?Ua(this):this.Za&&!this.Ub&&Ua(this))};f.O=function(a,b){void 0!==b&&this.m&&S(this.m,this,a,b,this.m.Sc,!0)}; -function Ua(a){if(void 0!==a.Za){a.pc=0;a.Nb=0;if(a.Ub=--d.Wa&&(0=d.Od&&(d.ha=d.Od),0>d.ha&&(d.ha=0),d.Wa=20,a.Ha.update(a.Ha.s|a.jc),Ya(a))}this.s=c;a.$b.s&a.Ka&&W(a,a.nd,this)}}(a)};a.$b={s:0,aa:function(){},update:function(a){return function(c){void 0!==c&&(this.s=c&~(a.Nc|a.Oc));W(a,a.kd,this);a.sb.update();a.ie.update()}}(a)};a.Vi={s:0,aa:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Pc)==a.Pc&&(a.Ia.s=a.ud|a.sd|a.rd),this.s=c);a.Ia.update()}}(a)};a.Ia={s:a.ud|a.sd|a.rd,aa:function(){},update:function(a){return function(c){void 0=== -c&&(c=a.Ia.s);c&=~a.td;0<=a.K&&0<=a.U[a.K].Ua&&(c|=a.td);this.s=c;W(a,a.rf,this)}}(a)};a.Jc={s:0,aa:function(a){return function(){Za(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.s=c);W(a,a.ld,this)}}(a)};a.Wi={s:0,aa:function(){},update:function(){return function(){}}(a)}} -f.I=function(a,b,c,d){switch(c){case "listDisk":return this.r[c]=d,!0;case "loadDisk":return this.r[c]=d,d.onclick=function(a){return function(){if(a.r.listDisk){var b=a.r.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.i("loading "+ba(b)+"...");s(c,a,a.Of)}}}(this),!0}return!1};f.V=function(a,b,c,d){this.a=a;this.mc=b;if(this.l=d)va(d,b,c,this,this.H),N(d,b,c,this,this.O);this.P()}; -f.ba=function(a,b){a&&!this.C&&(this.C=!0,this.m=L(b,"debugger"))}; -f.Of=function(a,b,c){if(c)this.i("disk load error ("+c+")");else{c=[];this.i("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.i("data error: "+d[0]);else if(this.U[0]){for(b=0;b=--d.Ya&&(0=d.Pd&&(d.ia=d.Pd),0>d.ia&&(d.ia=0),d.Ya=20,a.Ia.update(a.Ia.t|a.kc),Ya(a))}this.t=c;a.ac.t&a.La&&W(a,a.od,this)}}(a)};a.ac={t:0,ba:function(){},update:function(a){return function(c){void 0!==c&&(this.t=c&~(a.Oc|a.Pc));W(a,a.ld,this);a.tb.update();a.je.update()}}(a)};a.Wi={t:0,ba:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Qc)==a.Qc&&(a.Ja.t=a.vd|a.td|a.sd),this.t=c);a.Ja.update()}}(a)};a.Ja={t:a.vd|a.td|a.sd,ba:function(){},update:function(a){return function(c){void 0=== +c&&(c=a.Ja.t);c&=~a.ud;0<=a.L&&0<=a.V[a.L].Wa&&(c|=a.ud);this.t=c;W(a,a.sf,this)}}(a)};a.Kc={t:0,ba:function(a){return function(){Za(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.t=c);W(a,a.md,this)}}(a)};a.Xi={t:0,ba:function(){},update:function(){return function(){}}(a)}} +f.J=function(a,b,c,d){switch(c){case "listDisk":return this.s[c]=d,!0;case "loadDisk":return this.s[c]=d,d.onclick=function(a){return function(){if(a.s.listDisk){var b=a.s.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.i("loading "+ba(b)+"...");s(c,a,a.Pf)}}}(this),!0}return!1};f.W=function(a,b,c,d){this.a=a;this.nc=b;if(this.l=d)va(d,b,c,this,this.I),N(d,b,c,this,this.P);this.Q()}; +f.ca=function(a,b){a&&!this.o.C&&(this.o.C=!0,this.m=L(b,"debugger"))}; +f.Pf=function(a,b,c){if(c)this.i("disk load error ("+c+")");else{c=[];this.i("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.i("data error: "+d[0]);else if(this.V[0]){for(b=0;b>8&255);a.push(b&255)}function $a(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;cb?b&=3:32>b&&(b&=17);switch(b){case a.md:a=a.Zb.s&a.Ka?a.Ha:a.he;break;case a.jd:a=a.Zb;break;case a.nd:a=a.$b.s&a.Ka?a.sb:a.ie;break;case a.kd:a=a.$b;break;case a.of:a=c?a.Vi:a.Ia;break;case a.ld:a=a.Jc;break;default:a=a.Wi}return a}f.H=function(a,b){if(void 0!==b){var c=bb(this,a-this.mc,!1);this.m&&S(this.m,this,a,b,this.m.La,!1,c.je);c.aa()}}; -f.O=function(a,b){if(void 0!==b){var c=this.l.H(a),d=bb(this,a-this.mc,!0);if(this.m&&T(this.m,this.m.La|this.m.dc)&&(S(this.m,this,a,b,this.m.La,!0,d.je),d.Af))for(var e=128,g=d.s^c;g&&e;)g&e&&this.m.message(" changed "+d.je+"."+d.Af[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Xa(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.nf||(d|=2),a.Ha.s&a.dd||(d|=1));a.K!=d&&(a.K=d,a.Ia.update())}function Ya(a){0<=a.K&&(a.U[a.K].Ua=-1,a.Jc.update(255),a.Ia.update())} -function Za(a){var b=null;if(0<=a.K){var b=a.U[a.K],c=b.Jb[b.ha];void 0!==c&&(0<=b.Ua&&b.Ua>24)}f.H=function(a){var b;a>=this.$&&a=this.Ya?this.i("invalid address: "+p(a)):(this.a[this.$+a]=b&255,ya(this.l,a),this.l.update())};function kb(a,b){Y(a.ra,b,void 0)||a.ra.push(b);return!0} -function Y(a,b,c){for(var d=!1,e=0;eh&&(m+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.l.gc&&(h< -a.vd.length&&(m=a.vd[h]),h==a.l.pd)){l=0;for(m='"';h=a.H(b++);)16>l?m+=String.fromCharCode(h):16==l&&(m+="\u2026"),l++;m+='"'}m&&(d+=" "+m);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.Zf=b;return d} -function Z(a,b){var c=a.wa;if(void 0!==b){var d=16;"$"==b.charAt(0)?b=b.substr(1):"0x"==b.substr(0,2)?b=b.substr(2):"."==b.charAt(b.length-1)&&(d=10,b=b.substr(0,b.length-1));c=parseInt(b,d);isNaN(c)&&(a.i("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c=a.Ya)&&(a.i("address out of range: "+aa(c)),c=void 0);return c} -function nb(a,b){if("?"==b)a.i("\nfrequency commands:"),a.i("clear\tclear all frequency counts");else{var c=0,d;if(a.fa)if("clear"==b){for(d=0;db?b&=3:32>b&&(b&=17);switch(b){case a.nd:a=a.$b.t&a.La?a.Ia:a.ie;break;case a.kd:a=a.$b;break;case a.od:a=a.ac.t&a.La?a.tb:a.je;break;case a.ld:a=a.ac;break;case a.pf:a=c?a.Wi:a.Ja;break;case a.md:a=a.Kc;break;default:a=a.Xi}return a}f.I=function(a,b){if(void 0!==b){var c=bb(this,a-this.nc,!1);this.m&&S(this.m,this,a,b,this.m.Ma,!1,c.ke);c.ba()}}; +f.P=function(a,b){if(void 0!==b){var c=this.l.I(a),d=bb(this,a-this.nc,!0);if(this.m&&T(this.m,this.m.Ma|this.m.ec)&&(S(this.m,this,a,b,this.m.Ma,!0,d.ke),d.Bf))for(var e=128,g=d.t^c;g&&e;)g&e&&this.m.message(" changed "+d.ke+"."+d.Bf[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Xa(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.of||(d|=2),a.Ia.t&a.ed||(d|=1));a.L!=d&&(a.L=d,a.Ja.update())}function Ya(a){0<=a.L&&(a.V[a.L].Wa=-1,a.Kc.update(255),a.Ja.update())} +function Za(a){var b=null;if(0<=a.L){var b=a.V[a.L],c=b.Kb[b.ia];void 0!==c&&(0<=b.Wa&&b.Wa>24)}f.I=function(a){var b;a>=this.aa&&a=this.$a?this.i("invalid address: "+p(a)):(this.a[this.aa+a]=b&255,ya(this.l,a),this.l.update())};function kb(a,b){Y(a.sa,b,void 0)||a.sa.push(b);return!0} +function Y(a,b,c){for(var d=!1,e=0;eh&&(m+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.l.hc&&(h< +a.wd.length&&(m=a.wd[h]),h==a.l.qd)){l=0;for(m='"';h=a.I(b++);)16>l?m+=String.fromCharCode(h):16==l&&(m+="\u2026"),l++;m+='"'}m&&(d+=" "+m);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.$f=b;return d} +function Z(a,b){var c=a.xa;if(void 0!==b){var d=16;"$"==b.charAt(0)?b=b.substr(1):"0x"==b.substr(0,2)?b=b.substr(2):"."==b.charAt(b.length-1)&&(d=10,b=b.substr(0,b.length-1));c=parseInt(b,d);isNaN(c)&&(a.i("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c=a.$a)&&(a.i("address out of range: "+aa(c)),c=void 0);return c} +function nb(a,b){if("?"==b)a.i("\nfrequency commands:"),a.i("clear\tclear all frequency counts");else{var c=0,d;if(a.ga)if("clear"==b){for(d=0;da.Bf.indexOf(k)&&(e=a.B);e==a.Tc&&k!=a.Fb&&(e=a.B)}else a.i("unknown operand: "+l),k=-1;if(0<=k){m=-1;for(h=0;hm)m=h;else{a.i("too many instruction matches (both "+n(m)+" and "+n(h)+")");m=-2;break}if(0<=m){if(d.push(m),void 0!==e)if(g=a.Y[m][1],l=l.match(/[0-9A-F]+/),null!==l)for(l=parseInt(l[0],16),1==g&&e==a.X&&(l-=c+2,-128>l||127>>=8;else g&& -a.i("instruction missing "+g+" bytes")}else a.i("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;ck&&em?String.fromCharCode(m):".",e++;a.i(p(h)+" "+g+l)}a.wa=e}break;case "e":e=c[1];if(void 0===e)a.i("missing address");else if(e=Z(a,e),void 0!==e)for(d=2;dd.length&&(a.i("note: only "+d.length+" available"),g=d.length); -void 0!==l&&(a.zc=0,a.i(g+" instructions earlier:"));l=a.zc?a.zc:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.kb;){h=d[c];if(0>h)break;a.i(mb(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Yf=g;a.zc=l}10==e&&a.i("no history available");break;case "r":hb(a,c);break;case "s":a.H(a.l.d)==a.l.Gb?(lb(a,a.l.d+3),a.Ta=!0,a.ya()||a.l.W()):ob(a);break;case "t":ob(a,c[1]);break;case "u":gb(a,c[1],c[2],8);break;case "?":case "help":a.i("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble"); -a.i("note: frequency and history commands operate only when breakpoints are set");break;default:a.i("unknown command: "+b)}}}x(function(){for(var a=F(window.document,"c1pjs","debugger"),b=0;b");b&&b.ba(!0,a)} -x(function(){for(var a=F(window.document,"c1pjs","computer"),b=0;b');return}}if(void 0===h){t(' definition must appear first in the specification'); -break}if(e=C("debugger",d.id))g["debugger"]=[e],e.V&&e.V(h,k,l,g.cpu[0]);k=new $(d,g);if(l=C("panel",d.id))if(g.panel=[l],l.sc){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;da.Cf.indexOf(k)&&(e=a.D);e==a.Uc&&k!=a.Gb&&(e=a.D)}else a.i("unknown operand: "+l),k=-1;if(0<=k){m=-1;for(h=0;hm)m=h;else{a.i("too many instruction matches (both "+n(m)+" and "+n(h)+")");m=-2;break}if(0<=m){if(d.push(m),void 0!==e)if(g=a.Z[m][1],l=l.match(/[0-9A-F]+/),null!==l)for(l=parseInt(l[0],16),1==g&&e==a.Y&&(l-=c+2,-128>l||127>>=8;else g&& +a.i("instruction missing "+g+" bytes")}else a.i("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;ck&&em?String.fromCharCode(m):".",e++;a.i(p(h)+" "+g+l)}a.xa=e}break;case "e":e=c[1];if(void 0===e)a.i("missing address");else if(e=Z(a,e),void 0!==e)for(d=2;dd.length&&(a.i("note: only "+d.length+" available"),g=d.length); +void 0!==l&&(a.Ac=0,a.i(g+" instructions earlier:"));l=a.Ac?a.Ac:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.lb;){h=d[c];if(0>h)break;a.i(mb(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Zf=g;a.Ac=l}10==e&&a.i("no history available");break;case "r":hb(a,c);break;case "s":a.I(a.l.d)==a.l.Hb?(lb(a,a.l.d+3),a.Va=!0,a.za()||a.l.X()):ob(a);break;case "t":ob(a,c[1]);break;case "u":gb(a,c[1],c[2],8);break;case "?":case "help":a.i("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble"); +a.i("note: frequency and history commands operate only when breakpoints are set");break;default:a.i("unknown command: "+b)}}}x(function(){for(var a=F(window.document,"c1pjs","debugger"),b=0;b");b&&b.ca(!0,a)} +x(function(){for(var a=F(window.document,"c1pjs","computer"),b=0;b');return}}if(void 0===h){t(' definition must appear first in the specification'); +break}if(e=C("debugger",d.id))g["debugger"]=[e],e.W&&e.W(h,k,l,g.cpu[0]);k=new $(d,g);if(l=C("panel",d.id))if(g.panel=[l],l.tc){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;dk.indexOf("/")&&(k=window.location.pathname+k);a=a.replace(/(]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(k?" url=$2"+k+"$2":""))}k=null;if("<"==a.charAt(0))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/\s*/g,"")),k=new window.ActiveXObject("Microsoft.XMLDOM"),k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(G){k= null,a=G.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");s(e,null,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, diff --git a/versions/c1pjs/1.15.8/c1p.js b/versions/c1pjs/1.15.8/c1p.js index 8d5cdbeee..f6759e5ef 100644 --- a/versions/c1pjs/1.15.8/c1p.js +++ b/versions/c1pjs/1.15.8/c1p.js @@ -2,124 +2,124 @@ function q(a,b,c){var d;d=!0;var f=0,g=null,k=aa(a),h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),c&&(b?c.call(b,k,g,f,void 0):c(k,g,f,void 0)))});h.open("GET",a,d);h.send();d||(g=h.responseText,200!=h.status&&(f=h.status||-1),c&&(b?c.call(b,k,g,f,void 0):c(k,g,f,void 0)))} function r(a){window?window.alert(a):console.log(a)}function s(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},da=!1,u=!0;function v(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function w(a){t.init.push(a)} function x(a){if(u)try{for(var b=0;b=a.oa?a.ab:a.speed+1,!0)}}(this),a=!0}return a}; -e.P=function(a,b){this.a=a;(this.oc=b)?r("unsupported CPU address buffer offset ("+this.oc+")"):this.J()};e.S=function(a,b){if(a&&!this.A){this.G=b;var c=M(b,"video");c&&(this.kb=function(a){return function(){na(a)}}(c),this.da=function(a){return function(){a.da()}}(c));this.A=!0;this.reset(!0);this.update()}};function oa(a,b,c,d,f){0>pa(a.Y,b,c,d,f)&&(a.fb>b&&(a.fb=b),a.gbpa(a.T,b,c,d,f)&&(a.Ha>b&&(a.Ha=b),a.Iaa.ab&&a.W&&(d=a.W);d>a.Qa&&a.speed=a.ua&&qa(a,!0);a.va=0;a.Td=Date.now()||+new Date} -function ua(a){var b=Date.now()||+new Date,c=a.Qd;a.va&&(c=Math.round(c*a.va/a.nb));c-=b-a.Td;if(b-=a.fc)a.W=Math.round(a.la/(100*b))/10,864E5<=b&&ma(a);0>c?c=0:a.speed==a.xd?a.W<=a.Qa&&(c=0):a.speed==a.oa&&(c=0);a.pb+=a.va;return c} -function P(a){if(ja(a,!0)){a.R||(ma(a),a.G&&a.G.start(),a.R=!0,a.o.run&&(a.o.run.innerHTML="Halt"),a.da());ta(a);try{do{a.step(a.Sa);var b=a.X-a.B;a.la+=b;a.va+=b;a.X=a.B=0;a.ta-=a.Sa;0>=a.ta&&(a.ta+=a.hc,a.kb());a.sa-=a.Sa;0>=a.sa&&(a.sa+=a.gc,ra(a));a.ja-=a.Sa;if(0>=a.ja){a.ja+=a.nb;break}}while(a.R)}catch(c){O(a);a.update();ja(a,!1);K(a,c.message);return}setTimeout(function(a){return function(){P(a)}}(a),ua(a))}else a.update(),a.G&&a.G.stop(a.fc,a.la)} -e.step=function(a){this.b=this.h=-1;this.X=this.B=a;do{a=this.a[this.d];this.d++;this.q[a].call(this);if(0<=this.b){if(this.b>=this.fb&&this.b<=this.gb)for(var b=this.b,c=this.d,d=0;d=this.Y[d][0]&&b<=this.Y[d][1]&&this.Y[d][3].call(this.Y[d][2],b,c);this.b=-1}else if(0<=this.h){if(this.h>=this.Ha&&this.h<=this.Ia)for(b=this.h,c=this.d,d=0;d=this.T[d][0]&&b<=this.T[d][1]&&this.T[d][3].call(this.T[d][2],b,c);this.h=-1}this.B-=this.Bd[a]}while(0>1)&128?64:0),b=b|(a.f&128?128:0);return a.u&60|b} -function S(a,b,c){var d=a.c&256?1:0,f=(b&15)+(c&15)+d;10<=f&&(f=f+6&15|16);f+=(b&240)+(c&240);a.w=b^c;a.r=f;a.f=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.c=f;a.g=b+c+d&255;a.B--;return f&255}function T(a,b,c){var d=a.c&256?0:1,f=(b&15)-(c&15)-d;0>f&&(f=(f-6&15)-16);f+=(b&240)-(c&240);0>f&&(f-=96);a.f=a.g=(a.c=b-c-d)&255;a.w=b^c;a.r=a.c;a.c^=256;a.B--;return f&255}function la(a){a.e=0;a.k=0;a.m=0;a.n=256;a.u=0;a.f=0;a.g=0;a.w=0;a.r=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.W=0;a.la=a.X=a.B=0} -e.ze=function(){this.d++;this.a[this.n--]=this.d>>8;this.n|=256;this.a[this.n--]=this.d&255;this.n|=256;this.u|=16;this.u=sa(this);this.a[this.n--]=this.u;this.n|=256;this.u&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.Tf=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e|=this.a[this.b]};e.Vf=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]}; -e.pe=function(){this.h=this.a[this.d++];this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.Yf=function(){this.u=sa(this);this.a[this.n--]=this.u;this.n|=256};e.Sf=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};e.oe=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};e.Pf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]}; -e.me=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.ye=function(){this.d+=(this.f&128?0:(this.B--,this.a[this.d]<<24>>24))+1};e.Uf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e|=this.a[this.b]};e.Wf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e|=this.a[this.b]}; -e.qe=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.Ce=function(){this.c=0};e.Rf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e|=this.a[this.b]};e.Qf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e|=this.a[this.b]};e.ne=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255}; -e.qf=function(){this.b=this.d++;this.a[this.n--]=this.d>>8;this.n|=256;this.a[this.n--]=this.d&255;this.n|=256;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.ie=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e&=this.a[this.b]};e.ve=function(){this.b=this.a[this.d++];this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.r=0;this.w=this.a[this.b]&64?128:0};e.ke=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]}; -e.dg=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.$f=function(){this.n=this.n+1&255|256;this.u=this.a[this.n];this.c=this.u&1?256:0;this.g=this.u&2?0:1;this.f=this.u&128;this.r=0;this.w=this.u&64?128:0};e.he=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]}; -e.cg=function(){this.c=this.c&65280|this.e;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.e=this.c&255};e.ue=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.r=0;this.w=this.a[this.b]&64?128:0};e.ee=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]}; -e.ag=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.we=function(){this.d+=(this.f&128?(this.B--,this.a[this.d]<<24>>24):0)+1};e.je=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e&=this.a[this.b]};e.le=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e&=this.a[this.b]}; -e.eg=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.ug=function(){this.c=256};e.ge=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e&=this.a[this.b]};e.fe=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e&=this.a[this.b]}; -e.bg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.kg=function(){this.n=this.n+1&255|256;this.u=this.a[this.n];this.c=this.u&1?256:0;this.g=this.u&2?0:1;this.f=this.u&128;this.r=0;this.w=this.u&64?128:0;this.n=this.n+2&255|256;this.d=this.a[this.n-1|256]|this.a[this.n]<<8}; -e.df=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e^=this.a[this.b]};e.ff=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};e.Mf=function(){this.h=this.a[this.d++];this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};e.Xf=function(){this.a[this.n--]=this.e;this.n|=256};e.cf=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]}; -e.Lf=function(){this.c=this.c&65279|(this.e&1?256:0);this.e=(this.c=this.c&65280|this.e>>1)&255;this.f=this.g=this.c&255};e.pf=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.$e=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};e.Jf=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; -e.Ae=function(){this.d+=((this.r&255^this.w^this.r>>1)&128?0:(this.B--,this.a[this.d]<<24>>24))+1};e.ef=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e^=this.a[this.b]};e.gf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e^=this.a[this.b]};e.Nf=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; -e.Ee=function(){this.u&=251};e.bf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e^=this.a[this.b]};e.af=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e^=this.a[this.b]};e.Kf=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; -e.lg=function(){this.n=this.n+2&255|256;this.d=(this.a[this.n-1|256]|this.a[this.n]<<8)+1};e.uc=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.ae=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=S(this,this.e,this.a[this.b])}; -e.wc=function(){this.b=this.a[this.d++];this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.ce=function(){this.b=this.a[this.d++];this.e=S(this,this.e,this.a[this.b])};e.ig=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.Zf=function(){this.n=this.n+1&255|256;this.f=this.g=this.e=this.a[this.n]}; -e.tc=function(){this.b=this.d++;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.$d=function(){this.b=this.d++;this.e=S(this,this.e,this.a[this.b])};e.hg=function(){this.c=this.c&65280|this.e;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.e=this.c&255};e.of=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.d=this.a[this.b]|this.a[this.b+1]<<8}; -e.qc=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Xd=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=S(this,this.e,this.a[this.b])};e.fg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255}; -e.Be=function(){this.d+=((this.r&255^this.w^this.r>>1)&128?(this.B--,this.a[this.d]<<24>>24):0)+1};e.vc=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.be=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.e=S(this,this.e,this.a[this.b])}; -e.xc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.de=function(){this.b=this.a[this.d++]+this.k&255;this.e=S(this,this.e,this.a[this.b])};e.jg=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.wg=function(){this.u|=4}; -e.sc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Zd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.e=S(this,this.e,this.a[this.b])};e.rc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255}; -e.Yd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.e=S(this,this.e,this.a[this.b])};e.gg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.Ag=function(){this.h=this.a[this.d++]+this.k&255;this.h=this.a[this.h]|this.a[this.h+1]<<8;this.a[this.h]=this.e};e.Ig=function(){this.h=this.a[this.d++];this.a[this.h]=this.m}; -e.Cg=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};e.Fg=function(){this.h=this.a[this.d++];this.a[this.h]=this.k};e.Ze=function(){this.f=this.g=this.m=this.m-1&255};e.Og=function(){this.f=this.g=this.e=this.k};e.Hg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.m};e.xg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};e.Eg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.k}; -e.re=function(){this.d+=(this.c&256?0:(this.B--,this.a[this.d]<<24>>24))+1};e.Bg=function(){this.h=this.a[this.d++];this.h=(this.a[this.h]|this.a[this.h+1]<<8)+this.m;this.a[this.h]=this.e};e.Jg=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.m};e.Dg=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.e};e.Gg=function(){this.h=this.a[this.d++]+this.m&255;this.a[this.h]=this.k};e.Qg=function(){this.f=this.g=this.e=this.m}; -e.zg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.a[this.h]=this.e};e.Pg=function(){this.n=this.k|256};e.yg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.a[this.h]=this.e};e.Gf=function(){this.b=this.d++;this.f=this.g=this.m=this.a[this.b]};e.vf=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e=this.a[this.b]};e.Bf=function(){this.b=this.d++;this.f=this.g=this.k=this.a[this.b]}; -e.Hf=function(){this.b=this.a[this.d++];this.f=this.g=this.m=this.a[this.b]};e.xf=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};e.Cf=function(){this.b=this.a[this.d++];this.f=this.g=this.k=this.a[this.b]};e.Mg=function(){this.f=this.g=this.m=this.e};e.uf=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};e.Lg=function(){this.f=this.g=this.k=this.e};e.Ef=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.m=this.a[this.b]}; -e.rf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};e.zf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.k=this.a[this.b]};e.se=function(){this.d+=(this.c&256?(this.B--,this.a[this.d]<<24>>24):0)+1};e.wf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e=this.a[this.b]};e.If=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.m=this.a[this.b]}; -e.yf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e=this.a[this.b]};e.Df=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.k=this.a[this.b]};e.Fe=function(){this.w=this.r=0};e.tf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e=this.a[this.b]};e.Ng=function(){this.f=this.g=this.k=this.n&255};e.Ff=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.m=this.a[this.b]}; -e.sf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e=this.a[this.b]};e.Af=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.k=this.a[this.b]};e.Se=function(){this.b=this.d++;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.Ke=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256}; -e.Te=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.Me=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.We=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.nf=function(){this.f=this.g=this.m=this.m+1&255};e.Je=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ye=function(){this.f=this.g=this.k=this.k-1&255}; -e.Re=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.Ge=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ue=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.xe=function(){this.d+=(this.g&255?(this.B--,this.a[this.d]<<24>>24):0)+1}; -e.Le=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ne=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Xe=function(){this.h=this.a[this.d++]+this.k&255;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255}; -e.De=function(){this.u&=-9;this.q[97]=this.uc;this.q[101]=this.wc;this.q[105]=this.tc;this.q[109]=this.qc;this.q[113]=this.vc;this.q[117]=this.xc;this.q[121]=this.sc;this.q[125]=this.rc;this.q[225]=this.Cc;this.q[229]=this.Ec;this.q[233]=this.Bc;this.q[237]=this.yc;this.q[241]=this.Dc;this.q[245]=this.Fc;this.q[249]=this.Ac;this.q[253]=this.zc};e.Ie=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256}; -e.He=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ve=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.Pe=function(){this.b=this.d++;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256}; -e.Cc=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.qg=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=T(this,this.e,this.a[this.b])};e.Qe=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256}; -e.Ec=function(){this.b=this.a[this.d++];this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.sg=function(){this.b=this.a[this.d++];this.e=T(this,this.e,this.a[this.b])};e.kf=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.mf=function(){this.f=this.g=this.k=this.k+1&255}; -e.Bc=function(){this.b=this.d++;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.pg=function(){this.b=this.d++;this.e=T(this,this.e,this.a[this.b])};e.Of=function(){};e.Oe=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256}; -e.yc=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.mg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=T(this,this.e,this.a[this.b])};e.hf=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.te=function(){this.d+=(this.g&255?0:(this.B--,this.a[this.d]<<24>>24))+1}; -e.Dc=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.rg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.e=T(this,this.e,this.a[this.b])}; -e.Fc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.tg=function(){this.b=this.a[this.d++]+this.k&255;this.e=T(this,this.e,this.a[this.b])};e.lf=function(){this.h=this.a[this.d++]+this.k&255;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255}; -e.vg=function(){this.u|=8;this.q[97]=this.ae;this.q[101]=this.ce;this.q[105]=this.$d;this.q[109]=this.Xd;this.q[113]=this.be;this.q[117]=this.de;this.q[121]=this.Zd;this.q[125]=this.Yd;this.q[225]=this.qg;this.q[229]=this.sg;this.q[233]=this.pg;this.q[237]=this.mg;this.q[241]=this.rg;this.q[245]=this.tg;this.q[249]=this.og;this.q[253]=this.ng}; -e.Ac=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.og=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.e=T(this,this.e,this.a[this.b])}; -e.zc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.ng=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.e=T(this,this.e,this.a[this.b])};e.jf=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255}; -e.Kg=function(){var a;a=this.a[this.d++];switch(a){case this.vd:this.t("HALT");O(this);break;case this.wd:a=this.d;for(var b="";a=a.pa?a.bb:a.speed+1,!0)}}(this),a=!0}return a}; +e.Q=function(a,b){this.a=a;(this.pc=b)?r("unsupported CPU address buffer offset ("+this.pc+")"):this.K()};e.T=function(a,b){if(a&&!this.m.B){this.H=b;var c=M(b,"video");c&&(this.lb=function(a){return function(){na(a)}}(c),this.ea=function(a){return function(){a.ea()}}(c));this.m.B=!0;this.reset(!0);this.update()}};function oa(a,b,c,d,f){0>pa(a.Z,b,c,d,f)&&(a.gb>b&&(a.gb=b),a.hbpa(a.U,b,c,d,f)&&(a.Ja>b&&(a.Ja=b),a.Kaa.bb&&a.X&&(d=a.X);d>a.Ra&&a.speed=a.wa&&qa(a,!0);a.xa=0;a.Ud=Date.now()||+new Date} +function ua(a){var b=Date.now()||+new Date,c=a.Rd;a.xa&&(c=Math.round(c*a.xa/a.ob));c-=b-a.Ud;if(b-=a.gc)a.X=Math.round(a.ma/(100*b))/10,864E5<=b&&ma(a);0>c?c=0:a.speed==a.yd?a.X<=a.Ra&&(c=0):a.speed==a.pa&&(c=0);a.qb+=a.xa;return c} +function P(a){if(ja(a,!0)){a.m.S||(ma(a),a.H&&a.H.start(),a.m.S=!0,a.p.run&&(a.p.run.innerHTML="Halt"),a.ea());ta(a);try{do{a.step(a.Ta);var b=a.Y-a.C;a.ma+=b;a.xa+=b;a.Y=a.C=0;a.va-=a.Ta;0>=a.va&&(a.va+=a.ic,a.lb());a.ua-=a.Ta;0>=a.ua&&(a.ua+=a.hc,ra(a));a.ka-=a.Ta;if(0>=a.ka){a.ka+=a.ob;break}}while(a.m.S)}catch(c){O(a);a.update();ja(a,!1);K(a,c.message);return}setTimeout(function(a){return function(){P(a)}}(a),ua(a))}else a.update(),a.H&&a.H.stop(a.gc,a.ma)} +e.step=function(a){this.b=this.h=-1;this.Y=this.C=a;do{a=this.a[this.d];this.d++;this.r[a].call(this);if(0<=this.b){if(this.b>=this.gb&&this.b<=this.hb)for(var b=this.b,c=this.d,d=0;d=this.Z[d][0]&&b<=this.Z[d][1]&&this.Z[d][3].call(this.Z[d][2],b,c);this.b=-1}else if(0<=this.h){if(this.h>=this.Ja&&this.h<=this.Ka)for(b=this.h,c=this.d,d=0;d=this.U[d][0]&&b<=this.U[d][1]&&this.U[d][3].call(this.U[d][2],b,c);this.h=-1}this.C-=this.Cd[a]}while(0>1)&128?64:0),b=b|(a.f&128?128:0);return a.v&60|b} +function S(a,b,c){var d=a.c&256?1:0,f=(b&15)+(c&15)+d;10<=f&&(f=f+6&15|16);f+=(b&240)+(c&240);a.A=b^c;a.s=f;a.f=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.c=f;a.g=b+c+d&255;a.C--;return f&255}function T(a,b,c){var d=a.c&256?0:1,f=(b&15)-(c&15)-d;0>f&&(f=(f-6&15)-16);f+=(b&240)-(c&240);0>f&&(f-=96);a.f=a.g=(a.c=b-c-d)&255;a.A=b^c;a.s=a.c;a.c^=256;a.C--;return f&255}function la(a){a.e=0;a.k=0;a.n=0;a.o=256;a.v=0;a.f=0;a.g=0;a.A=0;a.s=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.X=0;a.ma=a.Y=a.C=0} +e.Ae=function(){this.d++;this.a[this.o--]=this.d>>8;this.o|=256;this.a[this.o--]=this.d&255;this.o|=256;this.v|=16;this.v=sa(this);this.a[this.o--]=this.v;this.o|=256;this.v&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.Uf=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e|=this.a[this.b]};e.Wf=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]}; +e.qe=function(){this.h=this.a[this.d++];this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.Zf=function(){this.v=sa(this);this.a[this.o--]=this.v;this.o|=256};e.Tf=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};e.pe=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};e.Qf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]}; +e.ne=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.ze=function(){this.d+=(this.f&128?0:(this.C--,this.a[this.d]<<24>>24))+1};e.Vf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.f=this.g=this.e|=this.a[this.b]};e.Xf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e|=this.a[this.b]}; +e.re=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.De=function(){this.c=0};e.Sf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e|=this.a[this.b]};e.Rf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e|=this.a[this.b]};e.oe=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255}; +e.rf=function(){this.b=this.d++;this.a[this.o--]=this.d>>8;this.o|=256;this.a[this.o--]=this.d&255;this.o|=256;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.je=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e&=this.a[this.b]};e.we=function(){this.b=this.a[this.d++];this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.s=0;this.A=this.a[this.b]&64?128:0};e.le=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]}; +e.eg=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.ag=function(){this.o=this.o+1&255|256;this.v=this.a[this.o];this.c=this.v&1?256:0;this.g=this.v&2?0:1;this.f=this.v&128;this.s=0;this.A=this.v&64?128:0};e.ie=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]}; +e.dg=function(){this.c=this.c&65280|this.e;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.e=this.c&255};e.ve=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.s=0;this.A=this.a[this.b]&64?128:0};e.fe=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]}; +e.bg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.xe=function(){this.d+=(this.f&128?(this.C--,this.a[this.d]<<24>>24):0)+1};e.ke=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.f=this.g=this.e&=this.a[this.b]};e.me=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e&=this.a[this.b]}; +e.fg=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.vg=function(){this.c=256};e.he=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e&=this.a[this.b]};e.ge=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e&=this.a[this.b]}; +e.cg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.lg=function(){this.o=this.o+1&255|256;this.v=this.a[this.o];this.c=this.v&1?256:0;this.g=this.v&2?0:1;this.f=this.v&128;this.s=0;this.A=this.v&64?128:0;this.o=this.o+2&255|256;this.d=this.a[this.o-1|256]|this.a[this.o]<<8}; +e.ef=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e^=this.a[this.b]};e.gf=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};e.Nf=function(){this.h=this.a[this.d++];this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};e.Yf=function(){this.a[this.o--]=this.e;this.o|=256};e.df=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]}; +e.Mf=function(){this.c=this.c&65279|(this.e&1?256:0);this.e=(this.c=this.c&65280|this.e>>1)&255;this.f=this.g=this.c&255};e.qf=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.af=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};e.Kf=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; +e.Be=function(){this.d+=((this.s&255^this.A^this.s>>1)&128?0:(this.C--,this.a[this.d]<<24>>24))+1};e.ff=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.f=this.g=this.e^=this.a[this.b]};e.hf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e^=this.a[this.b]};e.Of=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; +e.Fe=function(){this.v&=251};e.cf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e^=this.a[this.b]};e.bf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e^=this.a[this.b]};e.Lf=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255}; +e.mg=function(){this.o=this.o+2&255|256;this.d=(this.a[this.o-1|256]|this.a[this.o]<<8)+1};e.vc=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255};e.be=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=S(this,this.e,this.a[this.b])}; +e.xc=function(){this.b=this.a[this.d++];this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255};e.de=function(){this.b=this.a[this.d++];this.e=S(this,this.e,this.a[this.b])};e.jg=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.$f=function(){this.o=this.o+1&255|256;this.f=this.g=this.e=this.a[this.o]}; +e.uc=function(){this.b=this.d++;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255};e.ae=function(){this.b=this.d++;this.e=S(this,this.e,this.a[this.b])};e.ig=function(){this.c=this.c&65280|this.e;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.e=this.c&255};e.pf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.d=this.a[this.b]|this.a[this.b+1]<<8}; +e.rc=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255};e.Yd=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=S(this,this.e,this.a[this.b])};e.gg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255}; +e.Ce=function(){this.d+=((this.s&255^this.A^this.s>>1)&128?(this.C--,this.a[this.d]<<24>>24):0)+1};e.wc=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255};e.ce=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.e=S(this,this.e,this.a[this.b])}; +e.yc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255};e.ee=function(){this.b=this.a[this.d++]+this.k&255;this.e=S(this,this.e,this.a[this.b])};e.kg=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.xg=function(){this.v|=4}; +e.tc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255};e.$d=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.e=S(this,this.e,this.a[this.b])};e.sc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255}; +e.Zd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.e=S(this,this.e,this.a[this.b])};e.hg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.Bg=function(){this.h=this.a[this.d++]+this.k&255;this.h=this.a[this.h]|this.a[this.h+1]<<8;this.a[this.h]=this.e};e.Jg=function(){this.h=this.a[this.d++];this.a[this.h]=this.n}; +e.Dg=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};e.Gg=function(){this.h=this.a[this.d++];this.a[this.h]=this.k};e.$e=function(){this.f=this.g=this.n=this.n-1&255};e.Pg=function(){this.f=this.g=this.e=this.k};e.Ig=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.n};e.yg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};e.Fg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.k}; +e.se=function(){this.d+=(this.c&256?0:(this.C--,this.a[this.d]<<24>>24))+1};e.Cg=function(){this.h=this.a[this.d++];this.h=(this.a[this.h]|this.a[this.h+1]<<8)+this.n;this.a[this.h]=this.e};e.Kg=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.n};e.Eg=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.e};e.Hg=function(){this.h=this.a[this.d++]+this.n&255;this.a[this.h]=this.k};e.Rg=function(){this.f=this.g=this.e=this.n}; +e.Ag=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.a[this.h]=this.e};e.Qg=function(){this.o=this.k|256};e.zg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.a[this.h]=this.e};e.Hf=function(){this.b=this.d++;this.f=this.g=this.n=this.a[this.b]};e.wf=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e=this.a[this.b]};e.Cf=function(){this.b=this.d++;this.f=this.g=this.k=this.a[this.b]}; +e.If=function(){this.b=this.a[this.d++];this.f=this.g=this.n=this.a[this.b]};e.yf=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};e.Df=function(){this.b=this.a[this.d++];this.f=this.g=this.k=this.a[this.b]};e.Ng=function(){this.f=this.g=this.n=this.e};e.vf=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};e.Mg=function(){this.f=this.g=this.k=this.e};e.Ff=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.n=this.a[this.b]}; +e.sf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};e.Af=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.k=this.a[this.b]};e.te=function(){this.d+=(this.c&256?(this.C--,this.a[this.d]<<24>>24):0)+1};e.xf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.f=this.g=this.e=this.a[this.b]};e.Jf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.n=this.a[this.b]}; +e.zf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e=this.a[this.b]};e.Ef=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.k=this.a[this.b]};e.Ge=function(){this.A=this.s=0};e.uf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e=this.a[this.b]};e.Og=function(){this.f=this.g=this.k=this.o&255};e.Gf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.n=this.a[this.b]}; +e.tf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e=this.a[this.b]};e.Bf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.k=this.a[this.b]};e.Te=function(){this.b=this.d++;this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256};e.Le=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256}; +e.Ue=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256};e.Ne=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Xe=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.of=function(){this.f=this.g=this.n=this.n+1&255};e.Ke=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ze=function(){this.f=this.g=this.k=this.k-1&255}; +e.Se=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256};e.He=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ve=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.ye=function(){this.d+=(this.g&255?(this.C--,this.a[this.d]<<24>>24):0)+1}; +e.Me=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Oe=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ye=function(){this.h=this.a[this.d++]+this.k&255;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255}; +e.Ee=function(){this.v&=-9;this.r[97]=this.vc;this.r[101]=this.xc;this.r[105]=this.uc;this.r[109]=this.rc;this.r[113]=this.wc;this.r[117]=this.yc;this.r[121]=this.tc;this.r[125]=this.sc;this.r[225]=this.Dc;this.r[229]=this.Fc;this.r[233]=this.Cc;this.r[237]=this.zc;this.r[241]=this.Ec;this.r[245]=this.Gc;this.r[249]=this.Bc;this.r[253]=this.Ac};e.Je=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256}; +e.Ie=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.We=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.Qe=function(){this.b=this.d++;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256}; +e.Dc=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.rg=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=T(this,this.e,this.a[this.b])};e.Re=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256}; +e.Fc=function(){this.b=this.a[this.d++];this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.tg=function(){this.b=this.a[this.d++];this.e=T(this,this.e,this.a[this.b])};e.lf=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.nf=function(){this.f=this.g=this.k=this.k+1&255}; +e.Cc=function(){this.b=this.d++;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.qg=function(){this.b=this.d++;this.e=T(this,this.e,this.a[this.b])};e.Pf=function(){};e.Pe=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256}; +e.zc=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.ng=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=T(this,this.e,this.a[this.b])};e.jf=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.ue=function(){this.d+=(this.g&255?0:(this.C--,this.a[this.d]<<24>>24))+1}; +e.Ec=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.sg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.n;this.e=T(this,this.e,this.a[this.b])}; +e.Gc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.ug=function(){this.b=this.a[this.d++]+this.k&255;this.e=T(this,this.e,this.a[this.b])};e.mf=function(){this.h=this.a[this.d++]+this.k&255;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255}; +e.wg=function(){this.v|=8;this.r[97]=this.be;this.r[101]=this.de;this.r[105]=this.ae;this.r[109]=this.Yd;this.r[113]=this.ce;this.r[117]=this.ee;this.r[121]=this.$d;this.r[125]=this.Zd;this.r[225]=this.rg;this.r[229]=this.tg;this.r[233]=this.qg;this.r[237]=this.ng;this.r[241]=this.sg;this.r[245]=this.ug;this.r[249]=this.pg;this.r[253]=this.og}; +e.Bc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.pg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.e=T(this,this.e,this.a[this.b])}; +e.Ac=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.A=this.e^this.a[this.b];this.s=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.og=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.e=T(this,this.e,this.a[this.b])};e.kf=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255}; +e.Lg=function(){var a;a=this.a[this.d++];switch(a){case this.wd:this.u("HALT");O(this);break;case this.xd:a=this.d;for(var b="";a=c&&(c+=32);a.ca=a.ca.substr(1);V(a,c)}0=b&&(b+=32),Ba(a,b),W(a,b,!0,a.Pb)&&(a.s.speed==a.s.oa?W(a,b,!1,a.td):(c=!1,a.Q[b]&&(clearTimeout(a.Q[b]),c=!0),c=Aa(a,c),a.Q[a.$=b]=setTimeout(function(a){return function(){W(a,b,!1,a.ud)}}(a),c)),c=!0));return c} -function W(a,b,c,d){var f=!1;c||(a.Q[b]=null,a.$==b&&(a.$=0));var g=0,k=a.j[b];void 0===k&&(1<=b&&26>=b&&(b+=64,g=a.Ea),k=a.j[b]);void 0!==k&&(b=k>>12,f=k>>8&15,g||(g=k&255),c?(a.F[b]|=1<d||d>=this.Ud}a&&(d=this.bb.shift(),void 0!==d&&(this.Vb=d),this.sb=0,this.ic=c);for(d=c=0;8>d;d++)this.Wb&1<d[g][0]&&(k=d[g][0]),h=a.cc&&(d-=a.cc,d=c&&(c+=32);a.da=a.da.substr(1);V(a,c)}0=b&&(b+=32),Ba(a,b),W(a,b,!0,a.Qb)&&(a.t.speed==a.t.pa?W(a,b,!1,a.ud):(c=!1,a.R[b]&&(clearTimeout(a.R[b]),c=!0),c=Aa(a,c),a.R[a.aa=b]=setTimeout(function(a){return function(){W(a,b,!1,a.vd)}}(a),c)),c=!0));return c} +function W(a,b,c,d){var f=!1;c||(a.R[b]=null,a.aa==b&&(a.aa=0));var g=0,k=a.j[b];void 0===k&&(1<=b&&26>=b&&(b+=64,g=a.Ga),k=a.j[b]);void 0!==k&&(b=k>>12,f=k>>8&15,g||(g=k&255),c?(a.G[b]|=1<d||d>=this.Vd}a&&(d=this.cb.shift(),void 0!==d&&(this.Wb=d),this.tb=0,this.jc=c);for(d=c=0;8>d;d++)this.Xb&1<d[g][0]&&(k=d[g][0]),h=a.dc&&(d-=a.dc,dMissing <canvas> support; try a new web browser.";break}f.setAttribute("class","c1pjs-canvas");f.setAttribute("width",d.screenWidth);f.setAttribute("height",d.screenHeight);f.setAttribute("contenteditable","true");f.setAttribute("autocapitalize","off");f.setAttribute("autocorrect","off");f.style.backgroundColor=d.screenColor; -f.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(f.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,f,d.screenWidth,d.screenHeight));c.appendChild(f);var g=new Image,k=f.getContext("2d"),f=new Da(d,f,k,g);g.onload=function(a){return function(){a.J()}}(f,d.charSet);g.src=d.charSet;H(f,c)}}); -function Ga(a){z.call(this,"C1PSerialPort",a);this.A=!1;this.ac=a.demo;this.zd=0;this.yd=1;this.reset()}E(Ga);e=Ga.prototype;e.reset=function(){2!=this.Z&&(this.Ja=this.hb=0,this.ma='10 PRINT "HELLO OSI #'+fa(this)+'"\n',this.Z=this.Pa=0)};e.start=function(){this.C&&this.ac&&(X(this.C," C\n\n",3E3),setTimeout(function(a){return function(){a.Z=1;X(a.C,"LOAD\n")}}(this),12E3));this.ac=!1}; -e.H=function(a,b,c,d){switch(c){case "listSerial":return this.o[c]=d,!0;case "loadSerial":return this.o[c]=d,d.onclick=function(a){return function(){a.o.listSerial&&q(a.o.listSerial.value,a,a.Nd)}}(this),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.ub=b;this.Ed=c-b+1;this.pc=this.ub+this.Ed;if(this.s=d)oa(d,b,c,this,this.N),Q(d,b,c,this,this.L);this.J()};e.S=function(a,b){a&&!this.A&&(this.A=!0,this.G=b,this.C=M(b,"keyboard"))}; -e.Nd=function(a,b,c){b?(this.ma=b,this.Z=this.Pa=0,this.G&&this.C&&this.s.R?(this.t("auto-loading "+a),this.s.da(),"."!=this.ma.charAt(0)?(this.Z=1,X(this.C,"NEW\nLOAD\n")):(this.Z=2,this.G.reset(!0),X(this.C,"ML"))):this.t(a+" ready to load")):this.t(a+" load error ("+c+")")};e.N=function(a,b){void 0!==b&&(a&1?Ha(this):this.ma&&!this.Pa&&Ha(this))};e.L=function(){}; -function Ha(a){if(void 0!==a.ma){a.hb=0;a.Ja=0;if(a.Pa=--d.ka&&(0=d.mc&&(d.V=d.mc),0>d.V&&(d.V=0),d.ka= -20,a.aa.update(a.aa.p|a.$a),La(a))}this.p=c;a.Wa.p&a.ea&&Y(a,a.Ob,this)}}(a)};a.Wa={p:0,O:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.Bb|a.Cb));Y(a,a.Lb,this);a.xa.update();a.Ic.update()}}(a)};a.Rg={p:0,O:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Db)==a.Db&&(a.ba.p=a.Tb|a.Rb|a.Qb),this.p=c);a.ba.update()}}(a)};a.ba={p:a.Tb|a.Rb|a.Qb,O:function(){},update:function(a){return function(c){void 0===c&&(c=a.ba.p);c&=~a.Sb;0<=a.D&&0<=a.M[a.D].ia&& -(c|=a.Sb);this.p=c;Y(a,a.qd,this)}}(a)};a.xb={p:0,O:function(a){return function(){Ma(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.p=c);Y(a,a.Mb,this)}}(a)};a.Sg={p:0,O:function(){},update:function(){return function(){}}(a)}} -e.H=function(a,b,c,d){switch(c){case "listDisk":return this.o[c]=d,!0;case "loadDisk":return this.o[c]=d,d.onclick=function(a){return function(){if(a.o.listDisk){var b=a.o.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.t("loading "+aa(b)+"...");q(c,a,a.Md)}}}(this),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.eb=b;if(this.s=d)oa(d,b,c,this,this.N),Q(d,b,c,this,this.L);this.J()};e.S=function(a){a&&!this.A&&(this.A=!0)}; -e.Md=function(a,b,c){if(c)this.t("disk load error ("+c+")");else{c=[];this.t("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.t("data error: "+d[0]);else if(this.M[0]){for(b=0;b=--d.la&&(0=d.nc&&(d.W=d.nc),0>d.W&&(d.W=0),d.la= +20,a.ba.update(a.ba.q|a.ab),La(a))}this.q=c;a.Xa.q&a.fa&&Y(a,a.Pb,this)}}(a)};a.Xa={q:0,P:function(){},update:function(a){return function(c){void 0!==c&&(this.q=c&~(a.Cb|a.Db));Y(a,a.Mb,this);a.za.update();a.Jc.update()}}(a)};a.Sg={q:0,P:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Eb)==a.Eb&&(a.ca.q=a.Ub|a.Sb|a.Rb),this.q=c);a.ca.update()}}(a)};a.ca={q:a.Ub|a.Sb|a.Rb,P:function(){},update:function(a){return function(c){void 0===c&&(c=a.ca.q);c&=~a.Tb;0<=a.F&&0<=a.N[a.F].ja&& +(c|=a.Tb);this.q=c;Y(a,a.rd,this)}}(a)};a.yb={q:0,P:function(a){return function(){Ma(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.q=c);Y(a,a.Nb,this)}}(a)};a.Tg={q:0,P:function(){},update:function(){return function(){}}(a)}} +e.I=function(a,b,c,d){switch(c){case "listDisk":return this.p[c]=d,!0;case "loadDisk":return this.p[c]=d,d.onclick=function(a){return function(){if(a.p.listDisk){var b=a.p.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.u("loading "+aa(b)+"...");q(c,a,a.Nd)}}}(this),!0}return!1};e.Q=function(a,b,c,d){this.a=a;this.fb=b;if(this.t=d)oa(d,b,c,this,this.O),Q(d,b,c,this,this.M);this.K()};e.T=function(a){a&&!this.m.B&&(this.m.B=!0)}; +e.Nd=function(a,b,c){if(c)this.u("disk load error ("+c+")");else{c=[];this.u("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.u("data error: "+d[0]);else if(this.N[0]){for(b=0;b>8&255);a.push(b&255)}function Na(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;cb?b&=3:32>b&&(b&=17);switch(b){case a.Nb:a=a.Va.p&a.ea?a.aa:a.Hc;break;case a.Kb:a=a.Va;break;case a.Ob:a=a.Wa.p&a.ea?a.xa:a.Ic;break;case a.Lb:a=a.Wa;break;case a.nd:a=c?a.Rg:a.ba;break;case a.Mb:a=a.xb;break;default:a=a.Sg}return a}e.N=function(a,b){void 0!==b&&Pa(this,a-this.eb,!1).O()};e.L=function(a,b){if(void 0!==b){var c=this.s.N(a);Pa(this,a-this.eb,!0).update(c)}}; -function Ka(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.ld||(d|=2),a.aa.p&a.Gb||(d|=1));a.D!=d&&(a.D=d,a.ba.update())}function La(a){0<=a.D&&(a.M[a.D].ia=-1,a.xb.update(255),a.ba.update())}function Ma(a){var b=null;if(0<=a.D){var b=a.M[a.D],c=b.Fa[b.V];void 0!==c&&(0<=b.ia&&b.ia");b&&b.S(!0,a)} -w(function(){for(var a=I(window.document,"c1pjs","computer"),b=0;b');return}}if(void 0===k){r(' definition must appear first in the specification'); -break}if(f=F("debugger",d.id))g["debugger"]=[f],f.P&&f.P(k,h,l,g.cpu[0]);h=new $(d,g);if(l=F("panel",d.id))if(g.panel=[l],l.jb){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;db?b&=3:32>b&&(b&=17);switch(b){case a.Ob:a=a.Wa.q&a.fa?a.ba:a.Ic;break;case a.Lb:a=a.Wa;break;case a.Pb:a=a.Xa.q&a.fa?a.za:a.Jc;break;case a.Mb:a=a.Xa;break;case a.od:a=c?a.Sg:a.ca;break;case a.Nb:a=a.yb;break;default:a=a.Tg}return a}e.O=function(a,b){void 0!==b&&Pa(this,a-this.fb,!1).P()};e.M=function(a,b){if(void 0!==b){var c=this.t.O(a);Pa(this,a-this.fb,!0).update(c)}}; +function Ka(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.md||(d|=2),a.ba.q&a.Hb||(d|=1));a.F!=d&&(a.F=d,a.ca.update())}function La(a){0<=a.F&&(a.N[a.F].ja=-1,a.yb.update(255),a.ca.update())}function Ma(a){var b=null;if(0<=a.F){var b=a.N[a.F],c=b.Ha[b.W];void 0!==c&&(0<=b.ja&&b.ja");b&&b.T(!0,a)} +w(function(){for(var a=I(window.document,"c1pjs","computer"),b=0;b');return}}if(void 0===k){r(' definition must appear first in the specification'); +break}if(f=F("debugger",d.id))g["debugger"]=[f],f.Q&&f.Q(k,h,l,g.cpu[0]);h=new $(d,g);if(l=F("panel",d.id))if(g.panel=[l],l.kb){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;dh.indexOf("/")&&(h=window.location.pathname+h);a=a.replace(/(]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(h?" url=$2"+h+"$2":""))}h=null;if("<"==a.charAt(0))try{window.ActiveXObject||"ActiveXObject"in window?(f||(a=a.replace(/\s*/g,"")),h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(C){h= null,a=C.message}else a="unrecognized XML: "+(255/g.exec(a)){var f=d[2];b("Loading "+f+"...");q(f,null,function(g,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+f);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, diff --git a/versions/pcjs/1.15.8/pc-dbg.js b/versions/pcjs/1.15.8/pc-dbg.js index c31945353..ed099a137 100644 --- a/versions/pcjs/1.15.8/pc-dbg.js +++ b/versions/pcjs/1.15.8/pc-dbg.js @@ -9,96 +9,96 @@ function va(){if(void 0===ra){var a;try{window.localStorage.setItem("PCjs.localS function ya(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function za(a,b,c){function d(){a-=1;0<=a&&(b()||(a=0));0=this.$f?12:14;this.ec=1<>2;this.eb=this.ec-1;this.Tg=(this.ve+this.ec)/this.ec|0;this.ze=this.Tg-1;this.od=[];this.pd=[];this.Wf=this.Xf=!1;this.Di();this.Qa()}A(y,fb); -fb.prototype.Di=function(){this.Ca=Array(this.Tg);for(var a=0;a>a.pb;0>this.pb;0>a.pb;0>a.pb].tg(b&a.eb)} -function nb(a,b){var c=b&a.eb,d=(b&a.Fb)>>a.pb;return c!=a.eb?a.Ca[d].Gj(c):a.Ca[d++].tg(c)|a.Ca[d&a.ze].tg(0)<<8}function ob(a,b,c){a.Ca[(b&a.Fb)>>a.pb].Ag(b&a.eb,c&255)}function pb(a,b,c){var d=b&a.eb;b=(b&a.Fb)>>a.pb;d!=a.eb?a.Ca[b].Pj(d,c&65535):(a.Ca[b++].Ag(d,c&255),a.Ca[b&a.ze].Ag(0,c>>8&255))} -function qb(a){for(var b=0,c=[],d=0;d>2);for(d=0;d>2]>>>((a&3)<<3)&255},Vo:function(a){var b=a>>2;a=(a&3)<<3;var c=this.sa[b]>>>a;return 24>a?c&65535:c&255|(this.sa[b+1]&255)<<8},cp:function(a,b){var c=a>>2,d=(a&3)<< -3;this.sa[c]=this.sa[c]&~(255<>2,d=(a&3)<<3;24>d?this.sa[c]=this.sa[c]&~(65535<>8);this.jb=!0},So:function(a){Db(this.ba,this.Ud+a);return this.tg(a)},Uo:function(a){Db(this.ba,this.Ud+a)||Db(this.ba,this.Ud+a+1);return this.Gj(a)},bp:function(a,b){Eb(this.ba,this.Ud+a);this.Ag(a,b)},dp:function(a,b){Eb(this.ba,this.Ud+a)||Eb(this.ba,this.Ud+a+1);this.Pj(a,b)},save:function(){return this.ga? -null:this.sa},restore:function(a){return this.ga?null==a:a&&this.hm==a.length<<2?(this.sa=a,this.jb=!0):!1},Re:function(a,b){a||(a=[]);void 0===b&&(b=!0);Fb(this,a,b);Gb(this,a,b)},Td:function(a,b){b?0===this.fk++&&Gb(this,Hb):0===this.ek++&&Fb(this,Hb)}};function Ib(a,b){b?0===--a.fk&&(a.Bc=a.hh?a.vf:a.Ag,a.Xl=a.hh?a.vf:a.Pj):0===--a.ek&&(a.rc=a.tg,a.Kl=a.Gj)}function gb(a,b,c,d,e){a.T=b;a.ba=c;a.Ud=d;a.ek=a.fk=0;a.ba&&Jb(a.ba,d,e)} -function Gb(a,b,c){a.Bc=b[2]&&!a.hh?b[2]:a.vf;a.Xl=b[3]&&!a.hh?b[3]:a.vf;c&&(a.Ag=b[2]?b[2]:a.vf,a.Pj=b[3]?b[3]:a.vf)}function Fb(a,b,c){a.rc=b[0]?b[0]:a.Fh;a.Kl=b[1]?b[1]:a.Fh;c&&(a.tg=b[0]?b[0]:a.Fh,a.Gj=b[1]?b[1]:a.Fh)}var Bb=[hb.prototype.To,hb.prototype.Vo,hb.prototype.cp,hb.prototype.ep],Hb=[hb.prototype.So,hb.prototype.Uo,hb.prototype.bp,hb.prototype.dp]; -function Kb(a,b){y.call(this,"CPU",a,Kb);var c=a.multiplier||1;this.Ed=a.cycles||b;this.Dd=c;this.sh=Math.round(this.Ed/1E4)/100;this.He=this.sh*this.Dd;this.Kb=this.Jb=!1;this.ni=a.autoStart;c=Pa.autostart;void 0!==c&&(this.ni="true"==c?!0:"false"==c?!1:null);this.bf=!1;this.bg=this.lf=0;this.dg=a.csStart;this.kf=a.csInterval;this.mf=a.csStop;var d=this;this.Tn=function(){d.Oe()};this.Qa()}A(y,Kb);k=Kb.prototype; -k.oc=function(a,b,c,d){this.oa=b;this.ba=d;this.Fa=a;var e=db(a,"Video");e&&(this.ii=function(){Lb(e)},this.Kd=function(){e.Kd()});this.ma=db(a,"ChipSet");this.Qa()};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.Xb=function(a,b){if(!b){if(a&&this.restore){Mb(this);if(!this.restore(a))return!1;Ob(this)}else this.reset();this.ba?this.ba.yn():this.da("No debugger detected")}this.Jb=!0;!Pb(this)&&this.ba&&Qb(this.ba);Rb(this);return!0}; -k.Wb=function(a){this.Jb=!1;return a&&this.save?this.save():!0};function Pb(a){return!0===a.ni||null===a.ni&&!a.ba&&void 0===a.va.run?(a.Oe(),!0):!1}k.Kd=function(){};k.sk=function(){return 0};function Ob(a){void 0===a.dg&&(a.dg=0);void 0===a.kf&&(a.kf=-1);void 0===a.mf&&(a.mf=-1);a.bf=0<=a.dg&&0=a.lf&&(a.lf+=a.kf,c=!0);0<=a.mf&&a.mf<=F(a)&&(a.kf=a.mf=-1,Ob(a),a.zb(),c=!0);c&&a.da(F(a)+" cycles: checksum="+q(a.bg))}}function G(a,b,c,d){void 0!==a.va[b]&&(void 0===d&&(d=4),void 0===c&&(bb(a,"Register "+b+" is invalid"),a.zb()),c=q(c,d),a.va[b].innerHTML!=c&&(a.va[b].innerHTML=c))}k.Yg=function(){};k.ii=function(){}; -k.wb=function(a,b,c,d){var e=this;a=!1;switch(c){case "run":this.va[c]=d;d.onclick=function(){e.Kb?e.zb(!0):e.Oe(!0)};a=!0;break;case "reset":this.va[c]=d;d.onclick=function(){e.Fa&&Tb(e.Fa)};a=!0;break;case "speed":this.va[c]=d;a=!0;break;case "setSpeed":this.va[c]=d,d.onclick=function(){Ub(e,e.Dd<<1,!0)},d.innerHTML=this.He.toFixed(2)+"Mhz",a=!0}return a};function Vb(a,b,c){a.Le+=b;c&&(a.Mc=a.A=0)} -function Wb(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1a.sh&&(c=Math.round(c/a.Dd));return c}function Mb(a){a.hd=0;a.vh=1;a.Le=a.le=a.Mc=a.A=0;Ob(a);Ub(a,1)} -function Ub(a,b,c){void 0!==b&&(0.8>a.hd/a.He&&(b=1),a.Dd=b,b=a.sh*a.Dd,a.He!=b&&(a.He=b,b=a.He.toFixed(2)+"Mhz",a.va.setSpeed&&(a.va.setSpeed.innerHTML=b),a.da("target speed: "+b)),c&&a.Kd());Vb(a,a.le);a.le=0;a.jf=oa();a.Ie=0;Wb(a)} -k.Oe=function(a){if(Za(this,!0)){this.Kb||(Ub(this),this.Fa&&this.Fa.start(this.jf,F(this)),this.Kb=!0,this.ma&&Xb(this.ma),this.va.run&&(this.va.run.innerHTML="Halt"),a&&this.Kd());this.zj>=this.Ed&&Wb(this,!0);this.gg=0;this.th=oa();this.Ie&&(a=this.th-this.Ie,a>this.zk&&(this.jf+=a,this.jf>this.th&&(this.jf=this.th)));try{do{this.uf(this.bf?1:Math.round(this.Mn/this.vh));var b=this.Mc-this.A;this.le+=b;this.gg+=b;Vb(this,0,!0);Sb(this,b);this.fg-=b;0>=this.fg&&(this.fg+=this.Dk,this.ii());this.eg-= -b;0>=this.eg&&(this.eg+=this.Ck,this.Yg());this.nf-=b;if(0>=this.nf){this.nf+=this.Ki;break}}while(this.Kb)}catch(c){this.zb();Rb(this);this.Fa&&this.Fa.stop(oa(),F(this));Za(this,!1);bb(this,c.message);return}b=setTimeout;a=this.Tn;this.Ie=oa();var d=this.zk;this.gg&&(d=Math.round(d*this.gg/this.Ki));var d=d-(this.Ie-this.th),e=this.Ie-this.jf;e&&(this.hd=Math.round(this.le/(10*e))/100,864E5<=e&&(this.Le=0,this.ma&&Yb(this.ma,!0),Ub(this)));if(0>d||this.hd=this.dg?12:14;this.ec=1<>2;this.gb=this.ec-1;this.Wg=(this.If+this.ec)/this.ec|0;this.Ce=this.Wg-1;this.rd=[];this.sd=[];this.$f=this.ag=!1;this.Fi();this.Ta()}A(y,fb); +fb.prototype.Fi=function(){this.Ea=Array(this.Wg);for(var a=0;a>a.rb;0>this.rb;0>a.rb;0>a.rb].wg(b&a.gb)} +function nb(a,b){var c=b&a.gb,d=(b&a.dd)>>a.rb;return c!=a.gb?a.Ea[d].Ij(c):a.Ea[d++].wg(c)|a.Ea[d&a.Ce].wg(0)<<8}function ob(a,b,c){a.Ea[(b&a.dd)>>a.rb].Dg(b&a.gb,c&255)}function pb(a,b,c){var d=b&a.gb;b=(b&a.dd)>>a.rb;d!=a.gb?a.Ea[b].Rj(d,c&65535):(a.Ea[b++].Dg(d,c&255),a.Ea[b&a.Ce].Dg(0,c>>8&255))} +function qb(a){for(var b=0,c=[],d=0;d>2);for(d=0;d>2]>>>((a&3)<<3)&255},Yo:function(a){var b=a>>2;a=(a&3)<<3;var c=this.va[b]>>>a;return 24>a?c&65535:c&255|(this.va[b+1]&255)<<8},fp:function(a,b){var c=a>>2,d=(a&3)<< +3;this.va[c]=this.va[c]&~(255<>2,d=(a&3)<<3;24>d?this.va[c]=this.va[c]&~(65535<>8);this.lb=!0},Vo:function(a){Db(this.ca,this.Xd+a);return this.wg(a)},Xo:function(a){Db(this.ca,this.Xd+a)||Db(this.ca,this.Xd+a+1);return this.Ij(a)},ep:function(a,b){Eb(this.ca,this.Xd+a);this.Dg(a,b)},gp:function(a,b){Eb(this.ca,this.Xd+a)||Eb(this.ca,this.Xd+a+1);this.Rj(a,b)},save:function(){return this.ha? +null:this.va},restore:function(a){return this.ha?null==a:a&&this.lm==a.length<<2?(this.va=a,this.lb=!0):!1},Ue:function(a,b){a||(a=[]);void 0===b&&(b=!0);Fb(this,a,b);Gb(this,a,b)},Wd:function(a,b){b?0===this.hk++&&Gb(this,Hb):0===this.gk++&&Fb(this,Hb)}};function Ib(a,b){b?0===--a.hk&&(a.Cc=a.kh?a.yf:a.Dg,a.am=a.kh?a.yf:a.Rj):0===--a.gk&&(a.rc=a.wg,a.Ol=a.Ij)}function gb(a,b,c,d,e){a.T=b;a.ca=c;a.Xd=d;a.gk=a.hk=0;a.ca&&Jb(a.ca,d,e)} +function Gb(a,b,c){a.Cc=b[2]&&!a.kh?b[2]:a.yf;a.am=b[3]&&!a.kh?b[3]:a.yf;c&&(a.Dg=b[2]?b[2]:a.yf,a.Rj=b[3]?b[3]:a.yf)}function Fb(a,b,c){a.rc=b[0]?b[0]:a.Ih;a.Ol=b[1]?b[1]:a.Ih;c&&(a.wg=b[0]?b[0]:a.Ih,a.Ij=b[1]?b[1]:a.Ih)}var Bb=[hb.prototype.Wo,hb.prototype.Yo,hb.prototype.fp,hb.prototype.hp],Hb=[hb.prototype.Vo,hb.prototype.Xo,hb.prototype.ep,hb.prototype.gp]; +function Kb(a,b){y.call(this,"CPU",a,Kb);var c=a.cycles||b,d=a.multiplier||1;this.ba={};this.ba.Hd=c;this.ba.Gd=d;this.ba.vh=Math.round(this.ba.Hd/1E4)/100;this.ba.Ke=this.ba.vh*this.ba.Gd;this.pa.Kb=!1;this.pa.Lb=!1;this.pa.qi=a.autoStart;c=Pa.autostart;void 0!==c&&(this.pa.qi="true"==c?!0:"false"==c?!1:null);this.pa.ef=!1;this.ba.eg=this.ba.of=0;this.ba.gg=a.csStart;this.ba.nf=a.csInterval;this.ba.pf=a.csStop;var e=this;this.Wn=function(){e.Re()};this.Ta()}A(y,Kb);k=Kb.prototype; +k.oc=function(a,b,c,d){this.qa=b;this.ca=d;this.Ha=a;var e=db(a,"Video");e&&(this.li=function(){Lb(e)},this.Nd=function(){e.Nd()});this.na=db(a,"ChipSet");this.Ta()};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.Xb=function(a,b){if(!b){if(a&&this.restore){Mb(this);if(!this.restore(a))return!1;Nb(this)}else this.reset();this.ca?this.ca.Cn():this.ea("No debugger detected")}this.pa.Kb=!0;!Pb(this)&&this.ca&&Qb(this.ca);Rb(this);return!0}; +k.Wb=function(a){this.pa.Kb=!1;return a&&this.save?this.save():!0};function Pb(a){return!0===a.pa.qi||null===a.pa.qi&&!a.ca&&void 0===a.xa.run?(a.Re(),!0):!1}k.Nd=function(){};k.wk=function(){return 0};function Nb(a){void 0===a.ba.gg&&(a.ba.gg=0);void 0===a.ba.nf&&(a.ba.nf=-1);void 0===a.ba.pf&&(a.ba.pf=-1);a.pa.ef=0<=a.ba.gg&&0=a.ba.of&&(a.ba.of+=a.ba.nf,c=!0);0<=a.ba.pf&&a.ba.pf<=F(a)&&(a.ba.nf=a.ba.pf=-1,Nb(a),a.wb(),c=!0);c&&a.ea(F(a)+" cycles: checksum="+q(a.ba.eg))}}function G(a,b,c,d){void 0!==a.xa[b]&&(void 0===d&&(d=4),void 0===c&&(bb(a,"Register "+b+" is invalid"),a.wb()),c=q(c,d),a.xa[b].innerHTML!=c&&(a.xa[b].innerHTML=c))}k.ah=function(){};k.li=function(){}; +k.zb=function(a,b,c,d){var e=this;a=!1;switch(c){case "run":this.xa[c]=d;d.onclick=function(){e.pa.Lb?e.wb(!0):e.Re(!0)};a=!0;break;case "reset":this.xa[c]=d;d.onclick=function(){e.Ha&&Tb(e.Ha)};a=!0;break;case "speed":this.xa[c]=d;a=!0;break;case "setSpeed":this.xa[c]=d,d.onclick=function(){Ub(e,e.ba.Gd<<1,!0)},d.innerHTML=this.ba.Ke.toFixed(2)+"Mhz",a=!0}return a};function Vb(a,b,c){a.Oe+=b;c&&(a.Oc=a.A=0)} +function Wb(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1a.ba.vh&&(c=Math.round(c/a.ba.Gd));return c}function Mb(a){a.ba.ld=0;a.yh=1;a.Oe=a.oe=a.Oc=a.A=0;Nb(a);Ub(a,1)} +function Ub(a,b,c){void 0!==b&&(0.8>a.ba.ld/a.ba.Ke&&(b=1),a.ba.Gd=b,b=a.ba.vh*a.ba.Gd,a.ba.Ke!=b&&(a.ba.Ke=b,b=a.ba.Ke.toFixed(2)+"Mhz",a.xa.setSpeed&&(a.xa.setSpeed.innerHTML=b),a.ea("target speed: "+b)),c&&a.Nd());Vb(a,a.oe);a.oe=0;a.ba.mf=oa();a.ba.Le=0;Wb(a)} +k.Re=function(a){if(Za(this,!0)){this.pa.Lb||(Ub(this),this.Ha&&this.Ha.start(this.ba.mf,F(this)),this.pa.Lb=!0,this.na&&Xb(this.na),this.xa.run&&(this.xa.run.innerHTML="Halt"),a&&this.Nd());this.ba.Ni>=this.ba.Hd&&Wb(this,!0);this.ba.jg=0;this.ba.wh=oa();this.ba.Le&&(a=this.ba.wh-this.ba.Le,a>this.ba.Dk&&(this.ba.mf+=a,this.ba.mf>this.ba.wh&&(this.ba.mf=this.ba.wh)));try{do{this.xf(this.pa.ef?1:Math.round(this.ba.Pn/this.yh));var b=this.Oc-this.A;this.oe+=b;this.ba.jg+=b;Vb(this,0,!0);Sb(this,b); +this.ba.ig-=b;0>=this.ba.ig&&(this.ba.ig+=this.ba.Hk,this.li());this.ba.hg-=b;0>=this.ba.hg&&(this.ba.hg+=this.ba.Gk,this.ah());this.ba.qf-=b;if(0>=this.ba.qf){this.ba.qf+=this.ba.Mi;break}}while(this.pa.Lb)}catch(c){this.wb();Rb(this);this.Ha&&this.Ha.stop(oa(),F(this));Za(this,!1);bb(this,c.message);return}b=setTimeout;a=this.Wn;this.ba.Le=oa();var d=this.ba.Dk;this.ba.jg&&(d=Math.round(d*this.ba.jg/this.ba.Mi));var d=d-(this.ba.Le-this.ba.wh),e=this.ba.Le-this.ba.mf;e&&(this.ba.ld=Math.round(this.oe/ +(10*e))/100,864E5<=e&&(this.Oe=0,this.na&&Yb(this.na,!0),Ub(this)));if(0>d||this.ba.ld>13,this.Ua=f):b&&768>=b?(this.pa=a,this.Lc=d,this.ab=e,this.Pb=(e&24576)>>13,this.Ua=f):-1}function gc(a){return this.Ua+a}function hc(a){return this.Ua+a}function kc(a,b,c){return a+b<=this.Lc?this.Ua+a:ec.call(this,0,0,c)} -function ec(a,b,c){c||lc.call(this.T,13,0);return-1}function nc(a,b,c){return a+b<=this.Lc?this.Ua+a:fc.call(this,0,0,c)}function fc(a,b,c){c||lc.call(this.T,13,0);return-1}$b.prototype.save=function(){return[this.pa,this.Ua,this.Lc,this.ab,this.Pb,this.xg]};$b.prototype.restore=function(a){"number"==typeof a?this.load(a):(this.pa=a[0],this.Ua=a[1],this.Lc=a[2],this.ab=a[3],this.Pb=a[4],this.xg=a[5])}; -function ac(a,b){void 0===b&&(b=!!(a.T.Ac&1));b?(a.load=cc,a.cd=kc,a.fc=nc):(a.load=bc,a.cd=gc,a.fc=hc);return b} -function oc(a){this.Ga=a.model||8088;var b=0;switch(this.Ga){default:case 8088:b=4772727;break;case 80286:b=6E6}Kb.call(this,a,b);this.Tj=61442;this.Dg=4;this.of=255;this.B=80286<=this.Ga?pc:qc;this.Sa=rc.slice();80186<=this.Ga&&(this.of=31,this.Sa[15]=sc,this.Sa[96]=tc,this.Sa[97]=uc,this.Sa[98]=vc,this.Sa[99]=sc,this.Sa[100]=sc,this.Sa[101]=sc,this.Sa[102]=sc,this.Sa[103]=sc,this.Sa[104]=wc,this.Sa[105]=xc,this.Sa[106]=yc,this.Sa[107]=zc,this.Sa[108]=Ac,this.Sa[109]=Bc,this.Sa[110]=Cc,this.Sa[111]= -Dc,this.Sa[192]=Ec,this.Sa[193]=Fc,this.Sa[200]=Gc,this.Sa[201]=Hc,this.Sa[241]=Ic,Kc[7]=Lc,Nc[7]=Lc,80286<=this.Ga&&(this.Tj=2,this.Dg=0,this.Sa[15]=Oc,this.Sa[99]=Pc,this.Sa[84]=Qc));this.Fg=[];this.Gg=[];this.Mc=this.Vg=0;this.eh=this.ri=!1;this.Ca=[];this.ve=this.Fb=this.pb=this.eb=this.ze=0;this.U=this.wm;this.V=this.xm;this.O=this.Fn;this.P=this.Gn;this.R=this.$o;this.S=this.ap;Rc(this)}A(Kb,oc); -var qc={Aj:4,aa:5,xa:6,ha:7,ia:8,Q:9,W:11,X:12,Je:4,Fk:60,Gk:83,Tb:3,qb:9,gc:16,zh:1,Kk:19,Mk:28,Ok:16,Nk:21,Lk:37,Ik:2,Ti:9,Jk:5,Hk:33,Vi:10,Ui:8,mg:3,lg:15,bl:51,cl:1,dl:2,el:4,al:32,Wi:15,gl:15,Ub:16,Vb:4,il:11,hl:18,fl:24,Bb:4,jl:2,Xi:16,kl:17,bj:18,ll:19,aj:5,cj:6,ql:2,pl:8,nl:9,ol:10,ml:10,dj:10,ej:10,Qk:80,Sk:144,Pk:86,Rk:154,Uk:101,Wk:165,Tk:107,Vk:171,sl:70,ul:113,rl:76,tl:124,Yk:80,$k:128,Xk:86,Zk:134,og:3,ng:16,jj:10,ij:8,vl:51,hc:8,wl:17,xl:36,pc:11,yl:16,pg:10,ke:2,Qi:18,Ri:7,Si:15,Yi:12, -Zi:7,$i:11,fj:18,gj:7,hj:15,kj:15,lj:7,mj:13,qj:11,rj:7,sj:8,zl:8,Cl:12,Al:18,Bl:17,Dl:15,oj:8,nj:20,pj:2,vj:3,qg:9,uj:5,tj:11,xj:4,wj:17,El:11},pc={Aj:0,aa:0,xa:0,ha:0,ia:0,Q:0,W:1,X:1,Je:3,Fk:14,Gk:16,Tb:2,qb:7,gc:7,zh:0,Kk:7,Mk:13,Ok:7,Nk:11,Lk:16,Ik:3,Ti:6,Jk:2,Hk:13,Vi:5,Ui:5,mg:2,lg:7,bl:23,cl:0,dl:1,el:3,al:17,Wi:7,gl:11,Ub:7,Vb:3,il:7,hl:11,fl:15,Bb:2,jl:3,Xi:7,kl:8,bj:8,ll:8,aj:4,cj:4,ql:2,pl:3,nl:5,ol:2,ml:3,dj:5,ej:3,Qk:14,Sk:22,Pk:17,Rk:25,Uk:17,Wk:25,Tk:20,Vk:28,sl:13,ul:21,rl:16,tl:24, -Yk:13,$k:21,Xk:16,Zk:24,og:2,ng:7,jj:5,ij:5,vl:19,hc:5,wl:5,xl:17,pc:3,yl:5,pg:3,ke:0,Qi:8,Ri:5,Si:9,Yi:5,Zi:5,$i:4,fj:5,gj:5,hj:4,kj:7,lj:5,mj:8,qj:3,rj:4,sj:3,zl:11,Cl:11,Al:15,Bl:15,Dl:7,oj:5,nj:8,pj:0,vj:2,qg:6,uj:3,tj:6,xj:3,wj:5,El:5};k=oc.prototype;k.Di=function(a,b,c,d,e){this.Ca=a;this.ve=this.Fb=b;this.pb=c;this.eb=d;this.ze=e};k.reset=function(){this.Kb&&this.zb();Rc(this);Mb(this);this.fd=!1}; -function Rc(a){a.H=0;a.C=0;a.J=0;a.K=0;a.Y=0;a.I=0;a.G=0;a.F=0;a.Ac=65520;a.Dc=0;a.Vd=1023;a.Ic={Bj:0,pa:0,ab:0,rh:-1};a.ie=0;a.ua=new $b(a,"CS");a.vb=new $b(a,"DS");a.rb=new $b(a,"SS");a.Wa=new $b(a,"ES");a.Ul=new $b(a,"ZERO");Sc(a,0,65535);80286<=a.Ga&&(a.xc=0,a.ue=65535,a.Yc=new $b(a,"LDT",!0),a.Qe=new $b(a,"TSS",!0),a.Lb=new $b(a,"VER",!0),Sc(a,65520,61440),a.ua.Ua=16711680);Tc(a,0);Uc(a);a.kb=0;a.Cb=a.ug=-1;a.Og=0;a.ja=a.Ka=-1;a.D=a.vb;a.N=a.rb;a.$=a.ya=0} -k.sk=function(){var a=this.H+this.C+this.J+this.K+this.Y+this.I+this.G+this.F|0;return a=a+this.ra+this.ua.pa+this.vb.pa+this.rb.pa+this.Wa.pa+Vc(this)|0};function Wc(a,b,c,d){void 0!==d&&(void 0===a.Fg[b]&&(a.Fg[b]=[]),a.Fg[b].push([c,d]))}function Xc(a,b){var c=a.Fg[b];if(void 0!==c)for(var d=0;d>1?128:0}function rd(a){return(a.ka^a.na^a.ka>>1)&a.ea>>1?2048:0}function sd(a){a.Z&=~a.ea}function td(a){a.na=a.ka&16|a.na&-17}function ud(a){a.Z|=a.ea-1}function vd(a){qd(a)&&(a.ka^=a.ea>>1|a.ea>>2,a.na^=32896)}function wd(a){a.ka&=~a.ea;a.na=a.ka&32896|a.na&-32897}function xd(a){a.Z|=a.ea}function yd(a){a.na=~(a.ka&16)&16|a.na&-17}function zd(a){a.Z&=~(a.ea-1)}function Ad(a){qd(a)||(a.ka^=a.ea>>1|a.ea>>2,a.na^=32896)} -function Bd(a){a.ka|=a.ea;a.na=a.ka&32896|a.na&-32897}function Vc(a){return a.za&-2262|md(a)|nd(a)|od(a)|pd(a)|qd(a)|rd(a)}function Tc(a,b){a.ea=256;a.Z=a.ka=a.na=0;b&1&&xd(a);b&4||(a.ka|=1);b&16&&(a.na|=16);b&64||ud(a);b&128&&Ad(a);b&2048&&Bd(a);a.ag?b=b&-12289|a.za&12288:(a.ie=(b&12288)>>12,!a.ie||a.Ac&1||(a.ie=0));a.ag>a.ie&&(b=b&-513|a.za&512);a.za=a.za&-1793|b&1792|a.Tj;a.za&256&&(a.kb|=2,a.$|=4)} -k.wb=function(a,b,c,d){var e=!1;switch(c){case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "CS":case "DS":case "SS":case "ES":case "IP":case "PC":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "O":this.va[c]=d;e=!0;break;default:e=Kb.prototype.wb.call(this,a,b,c,d)}return e};k.tb=function(a){return this.Ca[(a&this.Fb)>>this.pb].rc(a&this.eb)}; -k.ta=function(a){var b=a&this.eb;a=(a&this.Fb)>>this.pb;this.A-=this.B.Aj;return b!=this.eb?this.Ca[a].Kl(b):this.Ca[a++].rc(b)|this.Ca[a&this.ze].rc(0)<<8};k.Jd=function(a,b){this.Ca[(a&this.Fb)>>this.pb].Bc(a&this.eb,b&255)};k.Zc=function(a,b){var c=a&this.eb,d=(a&this.Fb)>>this.pb;this.A-=this.B.Aj;c!=this.eb?this.Ca[d].Xl(c,b&65535):(this.Ca[d++].Bc(c,b&255),this.Ca[d&this.ze].Bc(0,b>>8&255))};k.wm=function(a,b){this.zg=a;this.ja=a.cd(this.rg=b,0);return this.$&1?0:this.tb(this.ja)}; -k.xm=function(a,b){this.zg=a;this.ja=a.cd(this.rg=b,1);return this.$&1?0:this.ta(this.ja)};k.Fn=function(a,b){this.zg=a;this.Ka=this.ja=a.cd(this.rg=b,0);return this.$&1?0:this.tb(this.ja)};k.Gn=function(a,b){this.zg=a;this.Ka=this.ja=a.cd(this.rg=b,1);return this.$&1?0:this.ta(this.ja)};k.$o=function(a){this.$&2||this.Jd(this.zg.fc(this.rg,1),a)};k.ap=function(a){this.$&2||this.Zc(this.zg.fc(this.rg,2),a)};k.fa=function(){var a=this.tb(this.Da);this.Da=this.ua.Ua+(this.ra=this.ra+1&65535);return a}; -k.M=function(){var a=this.tb(this.Da)<<24>>24;this.Da=this.ua.Ua+(this.ra=this.ra+1&65535);return a&65535};k.L=function(){var a=this.ta(this.Da);this.Da=this.ua.Ua+(this.ra=this.ra+2&65535);return a};k.Ja=function(){var a=this.Y;this.Y=this.Y+2&65535;return this.ta(this.rb.cd(a,1))};function L(a,b){var c=a.Y=a.Y-2&65535;a.Zc(a.rb.fc(c,1),b)} -k.Yg=function(){G(this,"AX",this.H);G(this,"BX",this.C);G(this,"CX",this.J);G(this,"DX",this.K);G(this,"SP",this.Y);G(this,"BP",this.I);G(this,"SI",this.G);G(this,"DI",this.F);G(this,"CS",this.ua.pa);G(this,"DS",this.vb.pa);G(this,"SS",this.rb.pa);G(this,"ES",this.Wa.pa);G(this,"IP",this.ra);var a=Vc(this);G(this,"PS",a);G(this,"C",a&1?1:0,1);G(this,"P",a&4?1:0,1);G(this,"A",a&16?1:0,1);G(this,"Z",a&64?1:0,1);G(this,"S",a&128?1:0,1);G(this,"T",a&256?1:0,1);G(this,"I",a&512?1:0,1);G(this,"D",a&1024? -1:0,1);G(this,"O",a&2048?1:0,1);this.va.speed&&(this.va.speed.innerHTML=this.Kb&&this.hd?this.hd.toFixed(2)+"Mhz":"Stopped")}; -k.uf=function(a){this.eh=!0;this.ri=a&&this.ba&&Cd(this.ba);this.Mc=this.A=a;this.ma&&Yb(this.ma);a||!this.ba||E(this.ba,Dd)||(this.$|=4);do{var b=this.$&240;if(b)this.ya|=b;else if(this.Ch=this.Da,this.ja=this.Ka=-1,this.D=this.vb,this.N=this.rb,this.ya=this.$&256,this.kb){a:{if(!(this.$&4))if(this.kb&1&&this.za&512){if(b=Ed(this.ma),-1<=b&&(this.kb&=-2,0<=b)){this.kb&=-5;Fd.call(this,b,null,11);b=!0;break a}}else if(this.kb&2){this.kb&=-3;Fd.call(this,1,null,11);b=!0;break a}if(b=this.kb&8){for(var b= -this.ma,c=!1,d=0;dthis.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=a+b)&255}function Ld(a,b){this.ea=256;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=this.na=a|b)&255} -function Md(a,b){this.na=a^b;this.Z=this.ka=a+b+(this.Z&this.ea?1:0);this.ea=256;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return this.Z&255}function Nd(a,b){this.na=a^b;this.Z=this.ka=a-b-(this.Z&this.ea?1:0);this.ea=256;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return this.Z&255}function Od(a,b){this.ea=256;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=this.na=a&b)&255} -function Pd(a,b){this.na=a^b;this.ea=256;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=a-b)&255}function Qd(a,b){this.ea=256;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=this.na=a^b)&255}function Rd(a,b){this.na=a^b;this.ea=256;this.Z=this.ka=a-b;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.Ti:this.B.qb;this.$|=2;return a} -function Sd(a,b){this.na=a^b;this.ea=65536;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=a+b)&65535}function Td(a,b){this.ea=65536;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=this.na=a|b)&65535}function Ud(a,b){this.na=a^b;this.Z=this.ka=a+b+(this.Z&this.ea?1:0);this.ea=65536;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return this.Z&65535} -function Vd(a,b){this.na=a^b;this.Z=this.ka=a-b-(this.Z&this.ea?1:0);this.ea=65536;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return this.Z&65535}function Wd(a,b){this.ea=65536;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=this.na=a&b)&65535}function Xd(a,b){this.na=a^b;this.ea=65536;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=a-b)&65535} -function Yd(a,b){this.ea=65536;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.qb:this.B.gc;return(this.Z=this.ka=this.na=a^b)&65535}function Zd(a,b){this.na=a^b;this.ea=65536;this.Z=this.ka=a-b;this.A-=0>this.Ka?0>this.ja?this.B.Tb:this.B.Ti:this.B.qb;this.$|=2;return a}function $d(a,b){this.Z=this.Z&this.ea-1|(a&b?this.ea:0);(a^a>>1)&b>>1?Bd(this):wd(this)}function ae(a,b){var c=a;if(b){var d,e=b&7;e?c=(d=a<>8-e)&255:d=a<<8;$d.call(this,d,256)}return c} -function be(a,b){var c=a;if(b){var d,e=b&15;e?c=(d=a<>16-e)&65535:d=a<<16;$d.call(this,d,65536)}return c}function ce(a,b){var c=a;if(b){var d,c=b&7,c=d=(a>>c|a<<8-c)&255;d&128&&(d|=256);$d.call(this,d,256)}return c}function de(a,b){var c=a;if(b){var d,c=b&15,c=d=(a>>c|a<<16-c)&65535;d&32768&&(d|=65536);$d.call(this,d,65536)}return c} -function ee(a,b){var c=a;if(b){var d;(d=(b&this.of)%9)?(d=a<>9-d,c=d&255):d=a|(this.Z&this.ea?1:0)<<8;$d.call(this,d,256)}return c}function fe(a,b){var c=a;if(b){var d;(d=(b&this.of)%17)?(d=a<>17-d,c=d&65535):d=a|(this.Z&this.ea?1:0)<<16;$d.call(this,d,65536)}return c}function ge(a,b){var c=a;b&&(c=(b&this.of)%9,c=a>>c|(this.Z&this.ea?1:0)<<8-c|a<<9-c,$d.call(this,c,256),c&=255);return c} -function he(a,b){var c=a;b&&(c=(b&this.of)%17,c=a>>c|(this.Z&this.ea?1:0)<<16-c|a<<17-c,$d.call(this,c,65536),c&=65535);return c}function ie(a,b){var c=a;b&&(c=8>b-1;this.Z=this.ka=c>>1;this.Z=c&1?this.Z|256:this.Z&-257;this.na=a^this.Z;this.ea=256;a=this.Z}return a&255}function le(a,b){if(b){var c=16>b-1;this.Z=this.ka=c>>1;this.Z=c&1?this.Z|65536:this.Z&-65537;this.na=a^this.Z;this.ea=65536;a=this.Z}return a&65535}function me(a,b){if(b){8>24>>b-1;this.Z=this.ka=c>>1;this.Z=c&1?this.Z|256:this.Z&-257;this.na=a^this.Z;this.ea=256;a=this.Z}return a&255} -function ne(a,b){if(b){16>16>>b-1;this.Z=this.ka=c>>1;this.Z=c&1?this.Z|65536:this.Z&-65537;this.na=a^this.Z;this.ea=65536;a=this.Z}return a&65535}function oe(){this.A-=0>this.ja?2:this.B.Dl;return 1}function pe(){var a=this.J&this.of;this.A-=(0>this.ja?this.B.oj:this.B.nj)+(a<this.ja?this.B.oj:this.B.nj)+(a<=e?(this.sa=a,this.Xa=b,this.Nc=c,this.Oa=d&65280,this.type=d&7936,ac(this)):b=-1;return b}return-1}function dc(a){return this.Xa+a}function ec(a){return this.Xa+a}function fc(a,b,c){return a+b<=this.Nc?this.Xa+a:gc.call(this,0,0,c)} +function gc(a,b,c){c||hc.call(this.T,13,0);return-1}function ic(a,b,c){return a+b<=this.Nc?this.Xa+a:lc.call(this,0,0,c)}function lc(a,b,c){c||hc.call(this.T,13,0);return-1}function mc(a,b,c){var d=a.T.ta(c+2),e=a.T.ta(c+0)|(d&255)<<16;c=a.T.ta(c+4);a.sa=b;a.Xa=e;a.Nc=c;a.Oa=d&65280;ac(a)}$b.prototype.save=function(){return[this.sa,this.Xa,this.Nc,this.Oa,this.ok,this.Ag,this.Jc,this.zc]}; +$b.prototype.restore=function(a){"number"==typeof a?this.load(a):(this.sa=a[0],this.Xa=a[1],this.Nc=a[2],this.Oa=a[3],this.ok=a[4],this.Ag=a[5],this.Jc=a[6],this.zc=a[7])};function ac(a,b){void 0===b&&(b=!!(a.T.Bc&1));b?(a.load=cc,a.gd=fc,a.fc=ic,a.Oa&4096&&(6144==(a.Oa&6656)&&(a.fc=gc),a.Oa&2048||!(a.Oa&512))&&(a.fc=lc),a.Jc=a.sa&3,a.zc=(a.Oa&24576)>>13):(a.load=bc,a.gd=dc,a.fc=ec,a.Jc=a.zc=0)} +function oc(a){this.Ia=a.model||8088;var b=0;switch(this.Ia){default:case 8088:b=4772727;break;case 80286:b=6E6}Kb.call(this,a,b);this.Vj=61442;this.Gg=4;this.rf=255;this.B=80286<=this.Ia?pc:qc;this.Va=rc.slice();80186<=this.Ia&&(this.rf=31,this.Va[15]=sc,this.Va[96]=tc,this.Va[97]=uc,this.Va[98]=vc,this.Va[99]=sc,this.Va[100]=sc,this.Va[101]=sc,this.Va[102]=sc,this.Va[103]=sc,this.Va[104]=wc,this.Va[105]=xc,this.Va[106]=yc,this.Va[107]=zc,this.Va[108]=Ac,this.Va[109]=Bc,this.Va[110]=Cc,this.Va[111]= +Dc,this.Va[192]=Ec,this.Va[193]=Fc,this.Va[200]=Gc,this.Va[201]=Hc,this.Va[241]=Ic,Kc[7]=Lc,Nc[7]=Lc,80286<=this.Ia&&(this.Vj=2,this.Gg=0,this.Va[15]=Oc,this.Va[99]=Pc,this.Va[84]=Qc));this.Ig=[];this.Jg=[];this.Oc=this.Yg=0;this.pa.hh=this.pa.pk=!1;this.Ea=[];this.ye=this.rb=this.gb=this.Ce=0;this.U=this.Am;this.V=this.Bm;this.O=this.In;this.P=this.Jn;this.R=this.cp;this.S=this.dp;Rc(this)}A(Kb,oc); +var qc={Cj:4,aa:5,za:6,ia:7,ja:8,Q:9,W:11,X:12,Me:4,Jk:60,Kk:83,Tb:3,sb:9,gc:16,Ch:1,Ok:19,Qk:28,Sk:16,Rk:21,Pk:37,Mk:2,Wi:9,Nk:5,Lk:33,Yi:10,Xi:8,pg:3,og:15,fl:51,gl:1,hl:2,il:4,el:32,Zi:15,kl:15,Ub:16,Vb:4,ml:11,ll:18,jl:24,Db:4,nl:2,$i:16,ol:17,ej:18,pl:19,dj:5,fj:6,ul:2,tl:8,rl:9,sl:10,ql:10,gj:10,hj:10,Uk:80,Wk:144,Tk:86,Vk:154,Yk:101,$k:165,Xk:107,Zk:171,wl:70,yl:113,vl:76,xl:124,bl:80,dl:128,al:86,cl:134,rg:3,qg:16,mj:10,lj:8,zl:51,hc:8,Al:17,Bl:36,pc:11,Cl:16,sg:10,ne:2,Ti:18,Ui:7,Vi:15,aj:12, +bj:7,cj:11,ij:18,jj:7,kj:15,nj:15,oj:7,pj:13,tj:11,uj:7,vj:8,Dl:8,Gl:12,El:18,Fl:17,Hl:15,rj:8,qj:20,sj:2,yj:3,tg:9,xj:5,wj:11,Aj:4,zj:17,Il:11},pc={Cj:0,aa:0,za:0,ia:0,ja:0,Q:0,W:1,X:1,Me:3,Jk:14,Kk:16,Tb:2,sb:7,gc:7,Ch:0,Ok:7,Qk:13,Sk:7,Rk:11,Pk:16,Mk:3,Wi:6,Nk:2,Lk:13,Yi:5,Xi:5,pg:2,og:7,fl:23,gl:0,hl:1,il:3,el:17,Zi:7,kl:11,Ub:7,Vb:3,ml:7,ll:11,jl:15,Db:2,nl:3,$i:7,ol:8,ej:8,pl:8,dj:4,fj:4,ul:2,tl:3,rl:5,sl:2,ql:3,gj:5,hj:3,Uk:14,Wk:22,Tk:17,Vk:25,Yk:17,$k:25,Xk:20,Zk:28,wl:13,yl:21,vl:16,xl:24, +bl:13,dl:21,al:16,cl:24,rg:2,qg:7,mj:5,lj:5,zl:19,hc:5,Al:5,Bl:17,pc:3,Cl:5,sg:3,ne:0,Ti:8,Ui:5,Vi:9,aj:5,bj:5,cj:4,ij:5,jj:5,kj:4,nj:7,oj:5,pj:8,tj:3,uj:4,vj:3,Dl:11,Gl:11,El:15,Fl:15,Hl:7,rj:5,qj:8,sj:0,yj:2,tg:6,xj:3,wj:6,Aj:3,zj:5,Il:5};k=oc.prototype;k.Fi=function(a,b,c,d,e){this.Ea=a;this.ye=b;this.rb=c;this.gb=d;this.Ce=e};k.reset=function(){this.pa.Lb&&this.wb();Rc(this);Mb(this);this.pa.Yc=!1}; +function Rc(a){a.H=0;a.C=0;a.J=0;a.K=0;a.Y=0;a.I=0;a.G=0;a.F=0;a.Bc=65520;a.Ec=0;a.Yd=1023;a.Kc={Dj:0,sa:0,Oa:0,uh:-1};a.le=0;a.wa=new $b(a,"CS");a.yb=new $b(a,"DS");a.tb=new $b(a,"SS");a.Za=new $b(a,"ES");a.Yl=new $b(a,"ZERO");Sc(a,0,65535);80286<=a.Ia&&(a.xc=0,a.xe=65535,a.ad=new $b(a,"LDT",!0),a.Te=new $b(a,"TSS",!0),a.Mb=new $b(a,"VER",!0),Sc(a,65520,61440),a.wa.Xa=16711680);Tc(a,0);Uc(a);a.mb=0;a.Eb=a.xg=-1;a.Rg=0;a.ka=a.Ma=-1;a.D=a.yb;a.N=a.tb;a.$=a.Aa=0} +k.wk=function(){var a=this.H+this.C+this.J+this.K+this.Y+this.I+this.G+this.F|0;return a=a+this.ua+this.wa.sa+this.yb.sa+this.tb.sa+this.Za.sa+Vc(this)|0};function Wc(a,b,c,d){void 0!==d&&(void 0===a.Ig[b]&&(a.Ig[b]=[]),a.Ig[b].push([c,d]))}function Xc(a,b){var c=a.Ig[b];if(void 0!==c)for(var d=0;d>1?128:0}function rd(a){return(a.la^a.oa^a.la>>1)&a.fa>>1?2048:0}function sd(a){a.Z&=~a.fa}function td(a){a.oa=a.la&16|a.oa&-17}function ud(a){a.Z|=a.fa-1}function vd(a){qd(a)&&(a.la^=a.fa>>1|a.fa>>2,a.oa^=32896)}function wd(a){a.la&=~a.fa;a.oa=a.la&32896|a.oa&-32897}function xd(a){a.Z|=a.fa}function yd(a){a.oa=~(a.la&16)&16|a.oa&-17}function zd(a){a.Z&=~(a.fa-1)}function Ad(a){qd(a)||(a.la^=a.fa>>1|a.fa>>2,a.oa^=32896)} +function Bd(a){a.la|=a.fa;a.oa=a.la&32896|a.oa&-32897}function Vc(a){return a.Ba&-2262|md(a)|nd(a)|od(a)|pd(a)|qd(a)|rd(a)}function Tc(a,b){a.fa=256;a.Z=a.la=a.oa=0;b&1&&xd(a);b&4||(a.la|=1);b&16&&(a.oa|=16);b&64||ud(a);b&128&&Ad(a);b&2048&&Bd(a);a.wa.Jc?b=b&-12289|a.Ba&12288:(a.le=(b&12288)>>12,!a.le||a.Bc&1||(a.le=0));a.wa.Jc>a.le&&(b=b&-513|a.Ba&512);a.Ba=a.Ba&-1793|b&1792|a.Vj;a.Ba&256&&(a.mb|=2,a.$|=4)} +k.zb=function(a,b,c,d){var e=!1;switch(c){case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "CS":case "DS":case "SS":case "ES":case "IP":case "PC":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "O":this.xa[c]=d;e=!0;break;default:e=Kb.prototype.zb.call(this,a,b,c,d)}return e};k.vb=function(a){return this.Ea[(a&this.ye)>>this.rb].rc(a&this.gb)}; +k.ta=function(a){var b=a&this.gb;a=(a&this.ye)>>this.rb;this.A-=this.B.Cj;return b!=this.gb?this.Ea[a].Ol(b):this.Ea[a++].rc(b)|this.Ea[a&this.Ce].rc(0)<<8};k.Md=function(a,b){this.Ea[(a&this.ye)>>this.rb].Cc(a&this.gb,b&255)};k.bd=function(a,b){var c=a&this.gb,d=(a&this.ye)>>this.rb;this.A-=this.B.Cj;c!=this.gb?this.Ea[d].am(c,b&65535):(this.Ea[d++].Cc(c,b&255),this.Ea[d&this.Ce].Cc(0,b>>8&255))};k.Am=function(a,b){this.Cg=a;this.ka=a.gd(this.ug=b,0);return this.$&1?0:this.vb(this.ka)}; +k.Bm=function(a,b){this.Cg=a;this.ka=a.gd(this.ug=b,1);return this.$&1?0:this.ta(this.ka)};k.In=function(a,b){this.Cg=a;this.Ma=this.ka=a.gd(this.ug=b,0);return this.$&1?0:this.vb(this.ka)};k.Jn=function(a,b){this.Cg=a;this.Ma=this.ka=a.gd(this.ug=b,1);return this.$&1?0:this.ta(this.ka)};k.cp=function(a){this.$&2||this.Md(this.Cg.fc(this.ug,1),a)};k.dp=function(a){this.$&2||this.bd(this.Cg.fc(this.ug,2),a)};k.ga=function(){var a=this.vb(this.Fa);this.Fa=this.wa.Xa+(this.ua=this.ua+1&65535);return a}; +k.M=function(){var a=this.vb(this.Fa)<<24>>24;this.Fa=this.wa.Xa+(this.ua=this.ua+1&65535);return a&65535};k.L=function(){var a=this.ta(this.Fa);this.Fa=this.wa.Xa+(this.ua=this.ua+2&65535);return a};k.La=function(){var a=this.Y;this.Y=this.Y+2&65535;return this.ta(this.tb.gd(a,1))};function L(a,b){var c=a.Y=a.Y-2&65535;a.bd(a.tb.fc(c,1),b)} +k.ah=function(){G(this,"AX",this.H);G(this,"BX",this.C);G(this,"CX",this.J);G(this,"DX",this.K);G(this,"SP",this.Y);G(this,"BP",this.I);G(this,"SI",this.G);G(this,"DI",this.F);G(this,"CS",this.wa.sa);G(this,"DS",this.yb.sa);G(this,"SS",this.tb.sa);G(this,"ES",this.Za.sa);G(this,"IP",this.ua);var a=Vc(this);G(this,"PS",a);G(this,"C",a&1?1:0,1);G(this,"P",a&4?1:0,1);G(this,"A",a&16?1:0,1);G(this,"Z",a&64?1:0,1);G(this,"S",a&128?1:0,1);G(this,"T",a&256?1:0,1);G(this,"I",a&512?1:0,1);G(this,"D",a&1024? +1:0,1);G(this,"O",a&2048?1:0,1);this.xa.speed&&(this.xa.speed.innerHTML=this.pa.Lb&&this.ba.ld?this.ba.ld.toFixed(2)+"Mhz":"Stopped")}; +k.xf=function(a){this.pa.hh=!0;var b=this.pa.pk=a&&this.ca&&Cd(this.ca);this.Oc=this.A=a;this.na&&Yb(this.na);a||!this.ca||E(this.ca,Dd)||(this.$|=4);do{var c=this.$&240;if(c)this.Aa|=c;else if(this.Fh=this.Fa,this.ka=this.Ma=-1,this.D=this.yb,this.N=this.tb,this.Aa=this.$&256,this.mb){a:{if(!(this.$&4))if(this.mb&1&&this.Ba&512){if(c=Ed(this.na),-1<=c&&(this.mb&=-2,0<=c)){this.mb&=-5;Fd.call(this,c,null,11);c=!0;break a}}else if(this.mb&2){this.mb&=-3;Fd.call(this,1,null,11);c=!0;break a}if(c=this.mb& +8){for(var c=this.na,d=!1,e=0;ethis.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=a+b)&255}function Md(a,b){this.fa=256;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=this.oa=a|b)&255} +function Nd(a,b){this.oa=a^b;this.Z=this.la=a+b+(this.Z&this.fa?1:0);this.fa=256;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return this.Z&255}function Od(a,b){this.oa=a^b;this.Z=this.la=a-b-(this.Z&this.fa?1:0);this.fa=256;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return this.Z&255}function Pd(a,b){this.fa=256;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=this.oa=a&b)&255} +function Qd(a,b){this.oa=a^b;this.fa=256;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=a-b)&255}function Rd(a,b){this.fa=256;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=this.oa=a^b)&255}function Sd(a,b){this.oa=a^b;this.fa=256;this.Z=this.la=a-b;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.Wi:this.B.sb;this.$|=2;return a} +function Td(a,b){this.oa=a^b;this.fa=65536;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=a+b)&65535}function Ud(a,b){this.fa=65536;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=this.oa=a|b)&65535}function Vd(a,b){this.oa=a^b;this.Z=this.la=a+b+(this.Z&this.fa?1:0);this.fa=65536;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return this.Z&65535} +function Wd(a,b){this.oa=a^b;this.Z=this.la=a-b-(this.Z&this.fa?1:0);this.fa=65536;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return this.Z&65535}function Xd(a,b){this.fa=65536;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=this.oa=a&b)&65535}function Yd(a,b){this.oa=a^b;this.fa=65536;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=a-b)&65535} +function Zd(a,b){this.fa=65536;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.sb:this.B.gc;return(this.Z=this.la=this.oa=a^b)&65535}function $d(a,b){this.oa=a^b;this.fa=65536;this.Z=this.la=a-b;this.A-=0>this.Ma?0>this.ka?this.B.Tb:this.B.Wi:this.B.sb;this.$|=2;return a}function ae(a,b){this.Z=this.Z&this.fa-1|(a&b?this.fa:0);(a^a>>1)&b>>1?Bd(this):wd(this)}function be(a,b){var c=a;if(b){var d,e=b&7;e?c=(d=a<>8-e)&255:d=a<<8;ae.call(this,d,256)}return c} +function ce(a,b){var c=a;if(b){var d,e=b&15;e?c=(d=a<>16-e)&65535:d=a<<16;ae.call(this,d,65536)}return c}function de(a,b){var c=a;if(b){var d,c=b&7,c=d=(a>>c|a<<8-c)&255;d&128&&(d|=256);ae.call(this,d,256)}return c}function ee(a,b){var c=a;if(b){var d,c=b&15,c=d=(a>>c|a<<16-c)&65535;d&32768&&(d|=65536);ae.call(this,d,65536)}return c} +function fe(a,b){var c=a;if(b){var d;(d=(b&this.rf)%9)?(d=a<>9-d,c=d&255):d=a|(this.Z&this.fa?1:0)<<8;ae.call(this,d,256)}return c}function ge(a,b){var c=a;if(b){var d;(d=(b&this.rf)%17)?(d=a<>17-d,c=d&65535):d=a|(this.Z&this.fa?1:0)<<16;ae.call(this,d,65536)}return c}function he(a,b){var c=a;b&&(c=(b&this.rf)%9,c=a>>c|(this.Z&this.fa?1:0)<<8-c|a<<9-c,ae.call(this,c,256),c&=255);return c} +function ie(a,b){var c=a;b&&(c=(b&this.rf)%17,c=a>>c|(this.Z&this.fa?1:0)<<16-c|a<<17-c,ae.call(this,c,65536),c&=65535);return c}function je(a,b){var c=a;b&&(c=8>b-1;this.Z=this.la=c>>1;this.Z=c&1?this.Z|256:this.Z&-257;this.oa=a^this.Z;this.fa=256;a=this.Z}return a&255}function me(a,b){if(b){var c=16>b-1;this.Z=this.la=c>>1;this.Z=c&1?this.Z|65536:this.Z&-65537;this.oa=a^this.Z;this.fa=65536;a=this.Z}return a&65535}function ne(a,b){if(b){8>24>>b-1;this.Z=this.la=c>>1;this.Z=c&1?this.Z|256:this.Z&-257;this.oa=a^this.Z;this.fa=256;a=this.Z}return a&255} +function oe(a,b){if(b){16>16>>b-1;this.Z=this.la=c>>1;this.Z=c&1?this.Z|65536:this.Z&-65537;this.oa=a^this.Z;this.fa=65536;a=this.Z}return a&65535}function pe(){this.A-=0>this.ka?2:this.B.Hl;return 1}function qe(){var a=this.J&this.rf;this.A-=(0>this.ka?this.B.rj:this.B.qj)+(a<this.ka?this.B.rj:this.B.qj)+(a<this.Ka?this.B.hc:this.B.wl;return b},se,se,se,se,se,se,se],we=[function(a,b){this.A-=0>this.Ka?this.B.ol:this.B.ml;return b},M,M,M,M,M,M,M],xe=[ae,ce,ee,ge,ie,ke,M,me],ye=[be,de,fe,he,je,le,M,ne],Ae=[function(a,b){b=this.fa();this.Z=this.ka=this.na=a&b;this.ea=256;this.A-=0>this.ja?this.B.uj:this.B.tj;this.$|=2;return a},M,function(a){this.A-=0>this.ja?this.B.og:this.B.ng;return a^255},function(a,b){b=0;this.na= -a^b;this.ea=256;this.A-=0>this.ja?this.B.og:this.B.ng;return(this.Z=this.ka=b-a)&255},function(a){this.H=this.Cb=(this.Z=(this.H&255)*a)&65535;this.na=this.ka=this.Z;this.ea=256;this.H&65280?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ja?this.B.sl:this.B.rl;this.$|=2;return a},function(a){var b=(this.H<<24>>24)*(a<<24>>24);this.H=this.Cb=b&65535;this.Z=this.na=this.ka=b;this.ea=256;127b?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ja?this.B.Yk:this.B.Xk;this.$|=2;return a}, -function(a){if(!a)return ze.call(this),a;var b=this.H/a;if(255this.ja?this.B.Qk:this.B.Pk;this.$|=2;return a},function(a){if(!a)return ze.call(this),a;var b=(this.H<<16>>16)/(a<<24>>24);if(b>b<<24>>24&65535)return ze.call(this),a;this.Cb=this.H=b&255|((this.H<<16>>16)%(a<<24>>24)&255)<<8;this.ka=this.na=this.Z=b|256;this.ea=256;this.A-=0>this.ja?this.B.Uk:this.B.Tk;this.$|=2;return a}], -Be=[function(a,b){b=this.L();this.Z=this.ka=this.na=a&b;this.ea=65536;this.A-=0>this.ja?this.B.uj:this.B.tj;this.$|=2;return a},M,function(a){this.A-=0>this.ja?this.B.og:this.B.ng;return a^65535},function(a,b){b=0;this.na=a^b;this.ea=65536;this.A-=0>this.ja?this.B.og:this.B.ng;return(this.Z=this.ka=b-a)&65535},function(a){this.Cb=this.H=(this.Z=this.H*a)&65535;this.ug=this.K=this.Z>>16&65535;this.na=this.ka=this.Z;this.ea=65536;this.K?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ja?this.B.ul: -this.B.tl;this.$|=2;return a},function(a){var b=(this.H<<16>>16)*(a<<16>>16);this.H=this.Cb=b&65535;this.K=this.ug=b>>16&65535;this.Z=this.na=this.ka=b;this.ea=65536;32767b?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ja?this.B.$k:this.B.Zk;this.$|=2;return a},function(a,b){if(!a)return ze.call(this),a;b=this.H+65536*this.K;var c=Math.floor(b/a);if(65536<=c)return ze.call(this),a;this.Cb=this.H=c&65535;this.ug=this.K=b%a&65535;this.ka=this.na=this.Z=c|65536;this.ea=65536;this.A-= -0>this.ja?this.B.Sk:this.B.Rk;this.$|=2;return a},function(a,b){if(!a)return ze.call(this),a;var c=a<<16>>16;b=this.K<<16|this.H;var d=Math.floor(b/c);if(d!=(d&65535)<<16>>16)return ze.call(this),a;this.Cb=this.H=d&65535;this.ug=this.K=b%c&65535;this.ka=this.na=this.Z=d|65536;this.ea=65536;this.A-=0>this.ja?this.B.Wk:this.B.Vk;this.$|=2;return a}],Kc=[function(a){this.na=a;a=(this.ka=a+1)&255;this.Z=a|(this.Z&this.ea?1:0)<<8;this.ea=256;this.A-=0>this.ja?this.B.mg:this.B.lg;return a},function(a){this.na= -a;a=(this.ka=a-1)&255;this.Z=a|(this.Z&this.ea?1:0)<<8;this.ea=256;this.A-=0>this.ja?this.B.mg:this.B.lg;return a},M,M,M,M,M,M],Nc=[function(a){this.na=a;a=(this.ka=a+1)&65535;this.Z=a|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=0>this.ja?this.B.mg:this.B.lg;return a},function(a){this.na=a;a=(this.ka=a-1)&65535;this.Z=a|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=0>this.ja?this.B.mg:this.B.lg;return a},function(a){L(this,this.ra);K(this,a);this.A-=0>this.ja?this.B.Ok:this.B.Nk;this.$|=2;return a}, -function(a){if(0>this.ja)return M.call(this,a);L(this,this.ua.pa);L(this,this.ra);Sc(this,a,this.ta(this.ja+2));this.A-=this.B.Lk;this.$|=2;return a},function(a){K(this,a);this.A-=0>this.ja?this.B.il:this.B.hl;this.$|=2;return a},function(a){if(0>this.ja)return M.call(this,a);Sc(this,a,this.ta(this.ja+2));this.A-=this.B.fl;this.$|=2;return a},function(a){var b=a;this.$&512&&(a=a-2&65535,80286>this.Ga&&(b=a));L(this,b);this.A-=0>this.ja?this.B.pc:this.B.yl;this.$|=2;return a},se],Ce=[ae,ce,ee,ge,ie, -ke,M,me],De=[be,de,fe,he,je,le,M,ne];function Ee(a,b){this.A-=0>this.Ka?0>this.ja?this.B.ql:this.B.pl:this.B.nl;return b}function Fe(){return Ee.call(this,0,this.Cb)}function Ge(a,b){this.Z=this.ka=this.na=a&b;this.ea=256;this.A-=0>this.Ka?0>this.ja?this.B.vj:this.B.qg:this.B.qg;this.$|=2;return a}function He(a,b){this.Z=this.ka=this.na=a&b;this.ea=65536;this.A-=0>this.Ka?0>this.ja?this.B.vj:this.B.qg:this.B.qg;this.$|=2;return a} -function Ie(a,b){var c=(b<<16>>16)*(this.fa()<<24>>24);this.Z=this.na=this.ka=c;this.ea=256;32767c?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ja?21:24;return c&65535}function Je(a,b){var c=(b<<16>>16)*(this.L()<<16>>16);this.Z=this.na=this.ka=c;this.ea=65536;32767c?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ja?21:24;return c&65535}function Ke(a){return a}function Le(a){if(0>this.ja)return N.call(this),a;this.A-=this.B.jl;return this.ja} -function Me(a,b){if(0>this.ja)return N.call(this),a;id(this,this.ta(this.ja+2));this.A-=this.B.Xi;return b}function Ne(a,b){if(0>this.ja)return N.call(this),a;kd(this,this.ta(this.ja+2));this.A-=this.B.Xi;return b}function Oe(a){if(0>this.ja)return sc.call(this),a;var b=a<<16>>16,c=this.ta(this.ja)<<16>>16,d=this.ta(this.ja+2)<<16>>16;this.A-=this.B.Hk;if(bd)K(this,this.Ch-this.ua.Ua),Fd.call(this,5,null,0);this.$|=2;return a} -function Pe(a,b){this.A-=10+(0>this.ja?0:1);if((a&3)<(b&3))return a=a&-4|b&3,zd(this),a;ud(this);return a}function Qe(a,b){this.A-=14+(0>this.ja?0:2);if(0<=this.Lb.load(b,!0)&&this.Lb.Pb>=(this.ua.pa&3)&&this.Lb.Pb>=(b&3))return zd(this),this.Lb.ab&65280;ud(this);return a}function Ue(a,b){this.A-=14+(0>this.ja?0:2);if(b&65528&&0<=this.Lb.load(b,!0)&&(3072==(this.Lb.ab&3072)||this.Lb.Pb>=(this.ua.pa&3))&&this.Lb.Pb>=(b&3))return zd(this),this.Lb.Lc;ud(this);return a} -function Ve(a,b){if(0>this.ja){switch(this.Og&7){case 0:this.H=this.H&-256|a;break;case 1:this.J=this.J&-256|a;break;case 2:this.K=this.K&-256|a;break;case 3:this.C=this.C&-256|a;break;case 4:this.H=this.H&255|a<<8;break;case 5:this.J=this.J&255|a<<8;break;case 6:this.K=this.K&255|a<<8;break;case 7:this.C=this.C&255|a<<8}this.A-=this.B.xj}else this.Ka=this.ja,this.R(a),this.A-=this.B.wj;return b} -function We(a,b){if(0>this.ja){switch(this.Og&7){case 0:this.H=a;break;case 1:this.J=a;break;case 2:this.K=a;break;case 3:this.C=a;break;case 4:this.Y=a;break;case 5:this.I=a;break;case 6:this.G=a;break;case 7:this.F=a}this.A-=this.B.xj}else this.Ka=this.ja,this.S(a),this.A-=this.B.wj;return b}function Fd(a,b,c){gd(this,a)&&(L(this,Vc(this)),this.za&=this.Ic.rh,L(this,this.ua.pa),L(this,this.ra),null!=b&&L(this,b),Sc(this,this.Ic.Bj,this.Ic.pa),this.A-=this.B.bl+c)} -function Xe(a){a|=this.Ac&1;this.Ac=this.Ac&65520|a&-65521;this.Ac&1&&Uc(this,!0)}function ze(){K(this,this.Ch-this.ua.Ua);Fd.call(this,0,null,2)}function lc(a,b){this.ba&&E(this.ba,Ye)&&this.ba.message("Fault 0x"+t(a)+(null!=b?" (0x"+v(b)+")":"")+" on opcode 0x"+t(mb(this.oa,this.Da))+" at "+da(this.ra,this.ua.pa));80186<=this.Ga&&(K(this,this.Ch-this.ua.Ua),Fd.call(this,a,b,0))}function sc(){lc.call(this,6);this.zb()} -function N(){K(this,this.Ch-this.ua.Ua);bb(this,"Undefined opcode 0x"+t(mb(this.oa,this.Da))+" at "+da(this.ra,this.ua.pa));this.zb()}function Ze(a){a=a.call(this,this.H&255,this.H&255);this.H=this.H&-256|a}function $e(a){a=a.call(this,this.H&255,this.J&255);this.H=this.H&-256|a}function af(a){a=a.call(this,this.H&255,this.K&255);this.H=this.H&-256|a}function bf(a){a=a.call(this,this.H&255,this.C&255);this.H=this.H&-256|a}function cf(a){a=a.call(this,this.H&255,this.H>>8);this.H=this.H&-256|a} +var ue=[Ld,Md,Nd,Od,Pd,Qd,Rd,Sd],ve=[Td,Ud,Vd,Wd,Xd,Yd,Zd,$d],we=[function(a,b){this.A-=0>this.Ma?this.B.hc:this.B.Al;return b},te,te,te,te,te,te,te],xe=[function(a,b){this.A-=0>this.Ma?this.B.sl:this.B.ql;return b},M,M,M,M,M,M,M],ye=[be,de,fe,he,je,le,M,ne],ze=[ce,ee,ge,ie,ke,me,M,oe],Be=[function(a,b){b=this.ga();this.Z=this.la=this.oa=a&b;this.fa=256;this.A-=0>this.ka?this.B.xj:this.B.wj;this.$|=2;return a},M,function(a){this.A-=0>this.ka?this.B.rg:this.B.qg;return a^255},function(a,b){b=0;this.oa= +a^b;this.fa=256;this.A-=0>this.ka?this.B.rg:this.B.qg;return(this.Z=this.la=b-a)&255},function(a){this.H=this.Eb=(this.Z=(this.H&255)*a)&65535;this.oa=this.la=this.Z;this.fa=256;this.H&65280?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ka?this.B.wl:this.B.vl;this.$|=2;return a},function(a){var b=(this.H<<24>>24)*(a<<24>>24);this.H=this.Eb=b&65535;this.Z=this.oa=this.la=b;this.fa=256;127b?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ka?this.B.bl:this.B.al;this.$|=2;return a}, +function(a){if(!a)return Ae.call(this),a;var b=this.H/a;if(255this.ka?this.B.Uk:this.B.Tk;this.$|=2;return a},function(a){if(!a)return Ae.call(this),a;var b=(this.H<<16>>16)/(a<<24>>24);if(b>b<<24>>24&65535)return Ae.call(this),a;this.Eb=this.H=b&255|((this.H<<16>>16)%(a<<24>>24)&255)<<8;this.la=this.oa=this.Z=b|256;this.fa=256;this.A-=0>this.ka?this.B.Yk:this.B.Xk;this.$|=2;return a}], +Ce=[function(a,b){b=this.L();this.Z=this.la=this.oa=a&b;this.fa=65536;this.A-=0>this.ka?this.B.xj:this.B.wj;this.$|=2;return a},M,function(a){this.A-=0>this.ka?this.B.rg:this.B.qg;return a^65535},function(a,b){b=0;this.oa=a^b;this.fa=65536;this.A-=0>this.ka?this.B.rg:this.B.qg;return(this.Z=this.la=b-a)&65535},function(a){this.Eb=this.H=(this.Z=this.H*a)&65535;this.xg=this.K=this.Z>>16&65535;this.oa=this.la=this.Z;this.fa=65536;this.K?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ka?this.B.yl: +this.B.xl;this.$|=2;return a},function(a){var b=(this.H<<16>>16)*(a<<16>>16);this.H=this.Eb=b&65535;this.K=this.xg=b>>16&65535;this.Z=this.oa=this.la=b;this.fa=65536;32767b?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ka?this.B.dl:this.B.cl;this.$|=2;return a},function(a,b){if(!a)return Ae.call(this),a;b=this.H+65536*this.K;var c=Math.floor(b/a);if(65536<=c)return Ae.call(this),a;this.Eb=this.H=c&65535;this.xg=this.K=b%a&65535;this.la=this.oa=this.Z=c|65536;this.fa=65536;this.A-= +0>this.ka?this.B.Wk:this.B.Vk;this.$|=2;return a},function(a,b){if(!a)return Ae.call(this),a;var c=a<<16>>16;b=this.K<<16|this.H;var d=Math.floor(b/c);if(d!=(d&65535)<<16>>16)return Ae.call(this),a;this.Eb=this.H=d&65535;this.xg=this.K=b%c&65535;this.la=this.oa=this.Z=d|65536;this.fa=65536;this.A-=0>this.ka?this.B.$k:this.B.Zk;this.$|=2;return a}],Kc=[function(a){this.oa=a;a=(this.la=a+1)&255;this.Z=a|(this.Z&this.fa?1:0)<<8;this.fa=256;this.A-=0>this.ka?this.B.pg:this.B.og;return a},function(a){this.oa= +a;a=(this.la=a-1)&255;this.Z=a|(this.Z&this.fa?1:0)<<8;this.fa=256;this.A-=0>this.ka?this.B.pg:this.B.og;return a},M,M,M,M,M,M],Nc=[function(a){this.oa=a;a=(this.la=a+1)&65535;this.Z=a|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=0>this.ka?this.B.pg:this.B.og;return a},function(a){this.oa=a;a=(this.la=a-1)&65535;this.Z=a|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=0>this.ka?this.B.pg:this.B.og;return a},function(a){L(this,this.ua);K(this,a);this.A-=0>this.ka?this.B.Sk:this.B.Rk;this.$|=2;return a}, +function(a){if(0>this.ka)return M.call(this,a);L(this,this.wa.sa);L(this,this.ua);Sc(this,a,this.ta(this.ka+2));this.A-=this.B.Pk;this.$|=2;return a},function(a){K(this,a);this.A-=0>this.ka?this.B.ml:this.B.ll;this.$|=2;return a},function(a){if(0>this.ka)return M.call(this,a);Sc(this,a,this.ta(this.ka+2));this.A-=this.B.jl;this.$|=2;return a},function(a){var b=a;this.$&512&&(a=a-2&65535,80286>this.Ia&&(b=a));L(this,b);this.A-=0>this.ka?this.B.pc:this.B.Cl;this.$|=2;return a},te],De=[be,de,fe,he,je, +le,M,ne],Ee=[ce,ee,ge,ie,ke,me,M,oe];function Fe(a,b){this.A-=0>this.Ma?0>this.ka?this.B.ul:this.B.tl:this.B.rl;return b}function Ge(){return Fe.call(this,0,this.Eb)}function He(a,b){this.Z=this.la=this.oa=a&b;this.fa=256;this.A-=0>this.Ma?0>this.ka?this.B.yj:this.B.tg:this.B.tg;this.$|=2;return a}function Ie(a,b){this.Z=this.la=this.oa=a&b;this.fa=65536;this.A-=0>this.Ma?0>this.ka?this.B.yj:this.B.tg:this.B.tg;this.$|=2;return a} +function Je(a,b){var c=(b<<16>>16)*(this.ga()<<24>>24);this.Z=this.oa=this.la=c;this.fa=256;32767c?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ka?21:24;return c&65535}function Ke(a,b){var c=(b<<16>>16)*(this.L()<<16>>16);this.Z=this.oa=this.la=c;this.fa=65536;32767c?(xd(this),Bd(this)):(sd(this),wd(this));this.A-=0>this.ka?21:24;return c&65535}function Le(a){return a}function Me(a){if(0>this.ka)return N.call(this),a;this.A-=this.B.nl;return this.ka} +function Ne(a,b){if(0>this.ka)return N.call(this),a;id(this,this.ta(this.ka+2));this.A-=this.B.$i;return b}function Oe(a,b){if(0>this.ka)return N.call(this),a;kd(this,this.ta(this.ka+2));this.A-=this.B.$i;return b}function Pe(a){if(0>this.ka)return sc.call(this),a;var b=a<<16>>16,c=this.ta(this.ka)<<16>>16,d=this.ta(this.ka+2)<<16>>16;this.A-=this.B.Lk;if(bd)K(this,this.Fh-this.wa.Xa),Fd.call(this,5,null,0);this.$|=2;return a} +function Qe(a,b){this.A-=10+(0>this.ka?0:1);if((a&3)<(b&3))return a=a&-4|b&3,zd(this),a;ud(this);return a}function Re(a,b){this.A-=14+(0>this.ka?0:2);if(0<=this.Mb.load(b,!0)&&this.Mb.zc>=this.wa.Jc&&this.Mb.zc>=(b&3))return zd(this),this.Mb.Oa&65280;ud(this);return a}function Ve(a,b){this.A-=14+(0>this.ka?0:2);if(b&65528&&0<=this.Mb.load(b,!0)&&(7168==(this.Mb.Oa&7168)||this.Mb.zc>=this.wa.Jc)&&this.Mb.zc>=(b&3))return zd(this),this.Mb.Nc;ud(this);return a} +function We(a,b){if(0>this.ka){switch(this.Rg&7){case 0:this.H=this.H&-256|a;break;case 1:this.J=this.J&-256|a;break;case 2:this.K=this.K&-256|a;break;case 3:this.C=this.C&-256|a;break;case 4:this.H=this.H&255|a<<8;break;case 5:this.J=this.J&255|a<<8;break;case 6:this.K=this.K&255|a<<8;break;case 7:this.C=this.C&255|a<<8}this.A-=this.B.Aj}else this.Ma=this.ka,this.R(a),this.A-=this.B.zj;return b} +function Xe(a,b){if(0>this.ka){switch(this.Rg&7){case 0:this.H=a;break;case 1:this.J=a;break;case 2:this.K=a;break;case 3:this.C=a;break;case 4:this.Y=a;break;case 5:this.I=a;break;case 6:this.G=a;break;case 7:this.F=a}this.A-=this.B.Aj}else this.Ma=this.ka,this.S(a),this.A-=this.B.zj;return b}function Fd(a,b,c){gd(this,a)&&(L(this,Vc(this)),this.Ba&=this.Kc.uh,L(this,this.wa.sa),L(this,this.ua),null!=b&&L(this,b),Sc(this,this.Kc.Dj,this.Kc.sa),this.A-=this.B.fl+c)} +function Ye(a){a|=this.Bc&1;this.Bc=this.Bc&65520|a&-65521;this.Bc&1&&Uc(this,!0)}function Ae(){K(this,this.Fh-this.wa.Xa);Fd.call(this,0,null,2)}function hc(a,b,c){this.ca&&(E(this.ca,Id)&&this.ca.message("Fault 0x"+t(a)+(null!=b?" (0x"+v(b)+")":"")+" on opcode 0x"+t(mb(this.qa,this.Fa))+" at "+da(this.ua,this.wa.sa)),c&&this.wb());80186<=this.Ia&&(K(this,this.Fh-this.wa.Xa),Fd.call(this,a,b,0))}function sc(){hc.call(this,6);this.wb()} +function N(){K(this,this.Fh-this.wa.Xa);bb(this,"Undefined opcode 0x"+t(mb(this.qa,this.Fa))+" at "+da(this.ua,this.wa.sa));this.wb()}function Ze(a){a=a.call(this,this.H&255,this.H&255);this.H=this.H&-256|a}function $e(a){a=a.call(this,this.H&255,this.J&255);this.H=this.H&-256|a}function af(a){a=a.call(this,this.H&255,this.K&255);this.H=this.H&-256|a}function bf(a){a=a.call(this,this.H&255,this.C&255);this.H=this.H&-256|a}function cf(a){a=a.call(this,this.H&255,this.H>>8);this.H=this.H&-256|a} function df(a){a=a.call(this,this.H&255,this.J>>8);this.H=this.H&-256|a}function ef(a){a=a.call(this,this.H&255,this.K>>8);this.H=this.H&-256|a}function ff(a){a=a.call(this,this.H&255,this.C>>8);this.H=this.H&-256|a}function gf(a){a=a.call(this,this.J&255,this.H&255);this.J=this.J&-256|a}function hf(a){a=a.call(this,this.J&255,this.J&255);this.J=this.J&-256|a}function jf(a){a=a.call(this,this.J&255,this.K&255);this.J=this.J&-256|a} function kf(a){a=a.call(this,this.J&255,this.C&255);this.J=this.J&-256|a}function lf(a){a=a.call(this,this.J&255,this.H>>8);this.J=this.J&-256|a}function mf(a){a=a.call(this,this.J&255,this.J>>8);this.J=this.J&-256|a}function nf(a){a=a.call(this,this.J&255,this.K>>8);this.J=this.J&-256|a}function of(a){a=a.call(this,this.J&255,this.C>>8);this.J=this.J&-256|a}function pf(a){a=a.call(this,this.K&255,this.H&255);this.K=this.K&-256|a} function qf(a){a=a.call(this,this.K&255,this.J&255);this.K=this.K&-256|a}function rf(a){a=a.call(this,this.K&255,this.K&255);this.K=this.K&-256|a}function sf(a){a=a.call(this,this.K&255,this.C&255);this.K=this.K&-256|a}function tf(a){a=a.call(this,this.K&255,this.H>>8);this.K=this.K&-256|a}function uf(a){a=a.call(this,this.K&255,this.J>>8);this.K=this.K&-256|a}function vf(a){a=a.call(this,this.K&255,this.K>>8);this.K=this.K&-256|a} @@ -116,18 +116,18 @@ function Qg(a){this.Y=a.call(this,this.Y,this.H)}function Rg(a){this.Y=a.call(th function $g(a){this.I=a.call(this,this.I,this.K)}function ah(a){this.I=a.call(this,this.I,this.C)}function bh(a){this.I=a.call(this,this.I,this.Y)}function ch(a){this.I=a.call(this,this.I,this.I)}function dh(a){this.I=a.call(this,this.I,this.G)}function eh(a){this.I=a.call(this,this.I,this.F)}function fh(a){this.G=a.call(this,this.G,this.H)}function gh(a){this.G=a.call(this,this.G,this.J)}function hh(a){this.G=a.call(this,this.G,this.K)}function ih(a){this.G=a.call(this,this.G,this.C)} function jh(a){this.G=a.call(this,this.G,this.Y)}function kh(a){this.G=a.call(this,this.G,this.I)}function lh(a){this.G=a.call(this,this.G,this.G)}function mh(a){this.G=a.call(this,this.G,this.F)}function nh(a){this.F=a.call(this,this.F,this.H)}function oh(a){this.F=a.call(this,this.F,this.J)}function ph(a){this.F=a.call(this,this.F,this.K)}function qh(a){this.F=a.call(this,this.F,this.C)}function rh(a){this.F=a.call(this,this.F,this.Y)}function sh(a){this.F=a.call(this,this.F,this.I)} function th(a){this.F=a.call(this,this.F,this.G)}function uh(a){this.F=a.call(this,this.F,this.F)} -var vh=[function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.H&255);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.H&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.H&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.H&255);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.G),this.H&255);this.R(a);this.A-=this.B.aa}, -function(a){a=a.call(this,this.O(this.D,this.F),this.H&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.H&255);this.R(a);this.A-=this.B.xa},function(a){a=a.call(this,this.O(this.D,this.C),this.H&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.J&255);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.J&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N, -this.I+this.G&65535),this.J&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.J&255);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.G),this.J&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.J&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.J&255);this.R(a);this.A-=this.B.xa},function(a){a=a.call(this,this.O(this.D,this.C),this.J&255);this.R(a); -this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.K&255);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.K&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.K&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.K&255);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.G),this.K&255);this.R(a);this.A-= -this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.K&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.K&255);this.R(a);this.A-=this.B.xa},function(a){a=a.call(this,this.O(this.D,this.C),this.K&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.C&255);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.C&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this, -this.O(this.N,this.I+this.G&65535),this.C&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.C&255);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.G),this.C&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.C&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.C&255);this.R(a);this.A-=this.B.xa},function(a){a=a.call(this,this.O(this.D,this.C),this.C& -255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.H>>8);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.H>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.H>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.H>>8);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.G),this.H>>8);this.R(a); -this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.H>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.H>>8);this.R(a);this.A-=this.B.xa},function(a){a=a.call(this,this.O(this.D,this.C),this.H>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.J>>8);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.J>>8);this.R(a);this.A-=this.B.ia},function(a){a= -a.call(this,this.O(this.N,this.I+this.G&65535),this.J>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.J>>8);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.G),this.J>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.J>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.J>>8);this.R(a);this.A-=this.B.xa},function(a){a=a.call(this,this.O(this.D,this.C), -this.J>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.K>>8);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.K>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.K>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.K>>8);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.G),this.K>>8); -this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.K>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.K>>8);this.R(a);this.A-=this.B.xa},function(a){a=a.call(this,this.O(this.D,this.C),this.K>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.C>>8);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.C>>8);this.R(a);this.A-=this.B.ia},function(a){a= -a.call(this,this.O(this.N,this.I+this.G&65535),this.C>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.C>>8);this.R(a);this.A-=this.B.ha},function(a){a=a.call(this,this.O(this.D,this.G),this.C>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.C>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.C>>8);this.R(a);this.A-=this.B.xa},function(a){a=a.call(this,this.O(this.D,this.C), +var vh=[function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.H&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.H&255);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.H&255);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.H&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.G),this.H&255);this.R(a);this.A-=this.B.aa}, +function(a){a=a.call(this,this.O(this.D,this.F),this.H&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.H&255);this.R(a);this.A-=this.B.za},function(a){a=a.call(this,this.O(this.D,this.C),this.H&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.J&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.J&255);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N, +this.I+this.G&65535),this.J&255);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.J&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.G),this.J&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.J&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.J&255);this.R(a);this.A-=this.B.za},function(a){a=a.call(this,this.O(this.D,this.C),this.J&255);this.R(a); +this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.K&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.K&255);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.K&255);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.K&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.G),this.K&255);this.R(a);this.A-= +this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.K&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.K&255);this.R(a);this.A-=this.B.za},function(a){a=a.call(this,this.O(this.D,this.C),this.K&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.C&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.C&255);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this, +this.O(this.N,this.I+this.G&65535),this.C&255);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.C&255);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.G),this.C&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.C&255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.C&255);this.R(a);this.A-=this.B.za},function(a){a=a.call(this,this.O(this.D,this.C),this.C& +255);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.H>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.H>>8);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.H>>8);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.H>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.G),this.H>>8);this.R(a); +this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.H>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.H>>8);this.R(a);this.A-=this.B.za},function(a){a=a.call(this,this.O(this.D,this.C),this.H>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.J>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.J>>8);this.R(a);this.A-=this.B.ja},function(a){a= +a.call(this,this.O(this.N,this.I+this.G&65535),this.J>>8);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.J>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.G),this.J>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.J>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.J>>8);this.R(a);this.A-=this.B.za},function(a){a=a.call(this,this.O(this.D,this.C), +this.J>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.K>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.K>>8);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.K>>8);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.K>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.G),this.K>>8); +this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.K>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.K>>8);this.R(a);this.A-=this.B.za},function(a){a=a.call(this,this.O(this.D,this.C),this.K>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.C>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.C>>8);this.R(a);this.A-=this.B.ja},function(a){a= +a.call(this,this.O(this.N,this.I+this.G&65535),this.C>>8);this.R(a);this.A-=this.B.ja},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.C>>8);this.R(a);this.A-=this.B.ia},function(a){a=a.call(this,this.O(this.D,this.G),this.C>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.F),this.C>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.L()),this.C>>8);this.R(a);this.A-=this.B.za},function(a){a=a.call(this,this.O(this.D,this.C), this.C>>8);this.R(a);this.A-=this.B.aa},function(a){a=a.call(this,this.O(this.D,this.C+this.G+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.D,this.C+this.F+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.X},function(a){a=a.call(this,this.O(this.N,this.I+this.G+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.X},function(a){a=a.call(this,this.O(this.N,this.I+this.F+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.W},function(a){a=a.call(this, this.O(this.D,this.G+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.F+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.N,this.I+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.G+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.W},function(a){a= a.call(this,this.O(this.D,this.C+this.F+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.X},function(a){a=a.call(this,this.O(this.N,this.I+this.G+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.X},function(a){a=a.call(this,this.O(this.N,this.I+this.F+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.D,this.G+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.F+this.M()&65535),this.J&255);this.R(a); @@ -155,18 +155,18 @@ a.call(this,this.O(this.D,this.F+this.L()&65535),this.J>>8);this.R(a);this.A-=th function(a){a=a.call(this,this.O(this.N,this.I+this.G+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.X},function(a){a=a.call(this,this.O(this.N,this.I+this.F+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.D,this.G+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.F+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.N,this.I+this.L()&65535),this.K>>8);this.R(a); this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.G+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.D,this.C+this.F+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.X},function(a){a=a.call(this,this.O(this.N,this.I+this.G+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.X},function(a){a=a.call(this,this.O(this.N,this.I+this.F+ this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.D,this.G+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.F+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.N,this.I+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.Q},Ze,gf,pf,xf,Ff,Nf,Vf,cg,$e,hf,qf,yf,Gf, -Of,Wf,dg,af,jf,rf,zf,Hf,Pf,Xf,eg,bf,kf,sf,Af,If,Qf,Yf,fg,cf,lf,tf,Bf,Jf,Rf,Zf,gg,df,mf,uf,Cf,Kf,Sf,$f,hg,ef,nf,vf,Df,Lf,Tf,ag,ig,ff,of,wf,Ef,Mf,Uf,bg,jg],wh=[function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.H);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.H);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.H);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.F& -65535),this.H);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.G),this.H);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.H);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.H);this.S(a);this.A-=this.B.xa},function(a){a=a.call(this,this.P(this.D,this.C),this.H);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.J);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this, -this.P(this.D,this.C+this.F&65535),this.J);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.J);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.J);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.G),this.J);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.J);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.J);this.S(a); -this.A-=this.B.xa},function(a){a=a.call(this,this.P(this.D,this.C),this.J);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.K);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.K);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.K);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.K);this.S(a);this.A-=this.B.ha},function(a){a= -a.call(this,this.P(this.D,this.G),this.K);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.K);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.K);this.S(a);this.A-=this.B.xa},function(a){a=a.call(this,this.P(this.D,this.C),this.K);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.C);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.C);this.S(a); -this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.C);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.C);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.G),this.C);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.C);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.C);this.S(a);this.A-=this.B.xa},function(a){a=a.call(this,this.P(this.D, -this.C),this.C);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.Y);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.Y);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.Y);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.Y);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.G),this.Y);this.S(a); -this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.Y);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.Y);this.S(a);this.A-=this.B.xa},function(a){a=a.call(this,this.P(this.D,this.C),this.Y);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.I);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.I);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N, -this.I+this.G&65535),this.I);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.I);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.G),this.I);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.I);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.I);this.S(a);this.A-=this.B.xa},function(a){a=a.call(this,this.P(this.D,this.C),this.I);this.S(a);this.A-=this.B.aa},function(a){a= -a.call(this,this.P(this.D,this.C+this.G&65535),this.G);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.G);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.G);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.G);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.G),this.G);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D, -this.F),this.G);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.G);this.S(a);this.A-=this.B.xa},function(a){a=a.call(this,this.P(this.D,this.C),this.G);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.F);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.F);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.F);this.S(a);this.A-=this.B.ia}, -function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.F);this.S(a);this.A-=this.B.ha},function(a){a=a.call(this,this.P(this.D,this.G),this.F);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.F);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.F);this.S(a);this.A-=this.B.xa},function(a){a=a.call(this,this.P(this.D,this.C),this.F);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G+this.M()& +Of,Wf,dg,af,jf,rf,zf,Hf,Pf,Xf,eg,bf,kf,sf,Af,If,Qf,Yf,fg,cf,lf,tf,Bf,Jf,Rf,Zf,gg,df,mf,uf,Cf,Kf,Sf,$f,hg,ef,nf,vf,Df,Lf,Tf,ag,ig,ff,of,wf,Ef,Mf,Uf,bg,jg],wh=[function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.H);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.H);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.H);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.F& +65535),this.H);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.G),this.H);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.H);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.H);this.S(a);this.A-=this.B.za},function(a){a=a.call(this,this.P(this.D,this.C),this.H);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.J);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this, +this.P(this.D,this.C+this.F&65535),this.J);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.J);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.J);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.G),this.J);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.J);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.J);this.S(a); +this.A-=this.B.za},function(a){a=a.call(this,this.P(this.D,this.C),this.J);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.K);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.K);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.K);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.K);this.S(a);this.A-=this.B.ia},function(a){a= +a.call(this,this.P(this.D,this.G),this.K);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.K);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.K);this.S(a);this.A-=this.B.za},function(a){a=a.call(this,this.P(this.D,this.C),this.K);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.C);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.C);this.S(a); +this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.C);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.C);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.G),this.C);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.C);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.C);this.S(a);this.A-=this.B.za},function(a){a=a.call(this,this.P(this.D, +this.C),this.C);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.Y);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.Y);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.Y);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.Y);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.G),this.Y);this.S(a); +this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.Y);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.Y);this.S(a);this.A-=this.B.za},function(a){a=a.call(this,this.P(this.D,this.C),this.Y);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.I);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.I);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N, +this.I+this.G&65535),this.I);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.I);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.G),this.I);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.I);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.I);this.S(a);this.A-=this.B.za},function(a){a=a.call(this,this.P(this.D,this.C),this.I);this.S(a);this.A-=this.B.aa},function(a){a= +a.call(this,this.P(this.D,this.C+this.G&65535),this.G);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.G);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.G);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.G);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.G),this.G);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D, +this.F),this.G);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.G);this.S(a);this.A-=this.B.za},function(a){a=a.call(this,this.P(this.D,this.C),this.G);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.F);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.F);this.S(a);this.A-=this.B.ja},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.F);this.S(a);this.A-=this.B.ja}, +function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.F);this.S(a);this.A-=this.B.ia},function(a){a=a.call(this,this.P(this.D,this.G),this.F);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.F),this.F);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.L()),this.F);this.S(a);this.A-=this.B.za},function(a){a=a.call(this,this.P(this.D,this.C),this.F);this.S(a);this.A-=this.B.aa},function(a){a=a.call(this,this.P(this.D,this.C+this.G+this.M()& 65535),this.H);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.D,this.C+this.F+this.M()&65535),this.H);this.S(a);this.A-=this.B.X},function(a){a=a.call(this,this.P(this.N,this.I+this.G+this.M()&65535),this.H);this.S(a);this.A-=this.B.X},function(a){a=a.call(this,this.P(this.N,this.I+this.F+this.M()&65535),this.H);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.D,this.G+this.M()&65535),this.H);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+ this.M()&65535),this.H);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.N,this.I+this.M()&65535),this.H);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.M()&65535),this.H);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.G+this.M()&65535),this.J);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.D,this.C+this.F+this.M()&65535),this.J);this.S(a);this.A-=this.B.X},function(a){a=a.call(this,this.P(this.N, this.I+this.G+this.M()&65535),this.J);this.S(a);this.A-=this.B.X},function(a){a=a.call(this,this.P(this.N,this.I+this.F+this.M()&65535),this.J);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.D,this.G+this.M()&65535),this.J);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+this.M()&65535),this.J);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.N,this.I+this.M()&65535),this.J);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D, @@ -193,20 +193,20 @@ this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+this.L()&65535) this.A-=this.B.X},function(a){a=a.call(this,this.P(this.N,this.I+this.G+this.L()&65535),this.G);this.S(a);this.A-=this.B.X},function(a){a=a.call(this,this.P(this.N,this.I+this.F+this.L()&65535),this.G);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.D,this.G+this.L()&65535),this.G);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+this.L()&65535),this.G);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.N,this.I+this.L()&65535),this.G);this.S(a); this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.L()&65535),this.G);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.G+this.L()&65535),this.F);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.D,this.C+this.F+this.L()&65535),this.F);this.S(a);this.A-=this.B.X},function(a){a=a.call(this,this.P(this.N,this.I+this.G+this.L()&65535),this.F);this.S(a);this.A-=this.B.X},function(a){a=a.call(this,this.P(this.N,this.I+this.F+this.L()&65535), this.F);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.D,this.G+this.L()&65535),this.F);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+this.L()&65535),this.F);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.N,this.I+this.L()&65535),this.F);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.L()&65535),this.F);this.S(a);this.A-=this.B.Q},kg,sg,Ag,Ig,Qg,Yg,fh,nh,lg,tg,Bg,Jg,Rg,Zg,gh,oh,mg,ug,Cg,Kg,Sg,$g,hh, -ph,ng,vg,Dg,Lg,Tg,ah,ih,qh,og,wg,Eg,Mg,Ug,bh,jh,rh,pg,xg,Fg,Ng,Vg,ch,kh,sh,qg,yg,Gg,Og,Wg,dh,lh,th,rg,zg,Hg,Pg,Xg,eh,mh,uh],xh=[function(a){a=a.call(this,this.H&255,this.U(this.D,this.C+this.G&65535));this.H=this.H&-256|a;this.A-=this.B.ha},function(a){a=a.call(this,this.H&255,this.U(this.D,this.C+this.F&65535));this.H=this.H&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.H&255,this.U(this.N,this.I+this.G&65535));this.H=this.H&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.H&255, -this.U(this.N,this.I+this.F&65535));this.H=this.H&-256|a;this.A-=this.B.ha},function(a){a=a.call(this,this.H&255,this.U(this.D,this.G));this.H=this.H&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.H&255,this.U(this.D,this.F));this.H=this.H&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.H&255,this.U(this.D,this.L()));this.H=this.H&-256|a;this.A-=this.B.xa},function(a){a=a.call(this,this.H&255,this.U(this.D,this.C));this.H=this.H&-256|a;this.A-=this.B.aa},function(a){a=a.call(this, -this.J&255,this.U(this.D,this.C+this.G&65535));this.J=this.J&-256|a;this.A-=this.B.ha},function(a){a=a.call(this,this.J&255,this.U(this.D,this.C+this.F&65535));this.J=this.J&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.J&255,this.U(this.N,this.I+this.G&65535));this.J=this.J&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.J&255,this.U(this.N,this.I+this.F&65535));this.J=this.J&-256|a;this.A-=this.B.ha},function(a){a=a.call(this,this.J&255,this.U(this.D,this.G));this.J=this.J&-256| -a;this.A-=this.B.aa},function(a){a=a.call(this,this.J&255,this.U(this.D,this.F));this.J=this.J&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.J&255,this.U(this.D,this.L()));this.J=this.J&-256|a;this.A-=this.B.xa},function(a){a=a.call(this,this.J&255,this.U(this.D,this.C));this.J=this.J&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.K&255,this.U(this.D,this.C+this.G&65535));this.K=this.K&-256|a;this.A-=this.B.ha},function(a){a=a.call(this,this.K&255,this.U(this.D,this.C+this.F& -65535));this.K=this.K&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.K&255,this.U(this.N,this.I+this.G&65535));this.K=this.K&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.K&255,this.U(this.N,this.I+this.F&65535));this.K=this.K&-256|a;this.A-=this.B.ha},function(a){a=a.call(this,this.K&255,this.U(this.D,this.G));this.K=this.K&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.K&255,this.U(this.D,this.F));this.K=this.K&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.K& -255,this.U(this.D,this.L()));this.K=this.K&-256|a;this.A-=this.B.xa},function(a){a=a.call(this,this.K&255,this.U(this.D,this.C));this.K=this.K&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.C&255,this.U(this.D,this.C+this.G&65535));this.C=this.C&-256|a;this.A-=this.B.ha},function(a){a=a.call(this,this.C&255,this.U(this.D,this.C+this.F&65535));this.C=this.C&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.C&255,this.U(this.N,this.I+this.G&65535));this.C=this.C&-256|a;this.A-=this.B.ia}, -function(a){a=a.call(this,this.C&255,this.U(this.N,this.I+this.F&65535));this.C=this.C&-256|a;this.A-=this.B.ha},function(a){a=a.call(this,this.C&255,this.U(this.D,this.G));this.C=this.C&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.C&255,this.U(this.D,this.F));this.C=this.C&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.C&255,this.U(this.D,this.L()));this.C=this.C&-256|a;this.A-=this.B.xa},function(a){a=a.call(this,this.C&255,this.U(this.D,this.C));this.C=this.C&-256|a;this.A-= -this.B.aa},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.C+this.G&65535));this.H=this.H&255|a<<8;this.A-=this.B.ha},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.C+this.F&65535));this.H=this.H&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.H>>8,this.U(this.N,this.I+this.G&65535));this.H=this.H&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.H>>8,this.U(this.N,this.I+this.F&65535));this.H=this.H&255|a<<8;this.A-=this.B.ha},function(a){a=a.call(this,this.H>> -8,this.U(this.D,this.G));this.H=this.H&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.F));this.H=this.H&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.L()));this.H=this.H&255|a<<8;this.A-=this.B.xa},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.C));this.H=this.H&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.C+this.G&65535));this.J=this.J&255|a<<8;this.A-=this.B.ha},function(a){a=a.call(this, -this.J>>8,this.U(this.D,this.C+this.F&65535));this.J=this.J&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.J>>8,this.U(this.N,this.I+this.G&65535));this.J=this.J&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.J>>8,this.U(this.N,this.I+this.F&65535));this.J=this.J&255|a<<8;this.A-=this.B.ha},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.G));this.J=this.J&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.F));this.J=this.J&255|a<<8;this.A-= -this.B.aa},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.L()));this.J=this.J&255|a<<8;this.A-=this.B.xa},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.C));this.J=this.J&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.C+this.G&65535));this.K=this.K&255|a<<8;this.A-=this.B.ha},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.C+this.F&65535));this.K=this.K&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.K>>8,this.U(this.N,this.I+this.G& -65535));this.K=this.K&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.K>>8,this.U(this.N,this.I+this.F&65535));this.K=this.K&255|a<<8;this.A-=this.B.ha},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.G));this.K=this.K&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.F));this.K=this.K&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.L()));this.K=this.K&255|a<<8;this.A-=this.B.xa},function(a){a=a.call(this,this.K>> -8,this.U(this.D,this.C));this.K=this.K&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.C+this.G&65535));this.C=this.C&255|a<<8;this.A-=this.B.ha},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.C+this.F&65535));this.C=this.C&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.C>>8,this.U(this.N,this.I+this.G&65535));this.C=this.C&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.C>>8,this.U(this.N,this.I+this.F&65535));this.C=this.C&255|a<< -8;this.A-=this.B.ha},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.G));this.C=this.C&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.F));this.C=this.C&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.L()));this.C=this.C&255|a<<8;this.A-=this.B.xa},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.C));this.C=this.C&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.H&255,this.U(this.D,this.C+this.G+this.M()& +ph,ng,vg,Dg,Lg,Tg,ah,ih,qh,og,wg,Eg,Mg,Ug,bh,jh,rh,pg,xg,Fg,Ng,Vg,ch,kh,sh,qg,yg,Gg,Og,Wg,dh,lh,th,rg,zg,Hg,Pg,Xg,eh,mh,uh],xh=[function(a){a=a.call(this,this.H&255,this.U(this.D,this.C+this.G&65535));this.H=this.H&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.H&255,this.U(this.D,this.C+this.F&65535));this.H=this.H&-256|a;this.A-=this.B.ja},function(a){a=a.call(this,this.H&255,this.U(this.N,this.I+this.G&65535));this.H=this.H&-256|a;this.A-=this.B.ja},function(a){a=a.call(this,this.H&255, +this.U(this.N,this.I+this.F&65535));this.H=this.H&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.H&255,this.U(this.D,this.G));this.H=this.H&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.H&255,this.U(this.D,this.F));this.H=this.H&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.H&255,this.U(this.D,this.L()));this.H=this.H&-256|a;this.A-=this.B.za},function(a){a=a.call(this,this.H&255,this.U(this.D,this.C));this.H=this.H&-256|a;this.A-=this.B.aa},function(a){a=a.call(this, +this.J&255,this.U(this.D,this.C+this.G&65535));this.J=this.J&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.J&255,this.U(this.D,this.C+this.F&65535));this.J=this.J&-256|a;this.A-=this.B.ja},function(a){a=a.call(this,this.J&255,this.U(this.N,this.I+this.G&65535));this.J=this.J&-256|a;this.A-=this.B.ja},function(a){a=a.call(this,this.J&255,this.U(this.N,this.I+this.F&65535));this.J=this.J&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.J&255,this.U(this.D,this.G));this.J=this.J&-256| +a;this.A-=this.B.aa},function(a){a=a.call(this,this.J&255,this.U(this.D,this.F));this.J=this.J&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.J&255,this.U(this.D,this.L()));this.J=this.J&-256|a;this.A-=this.B.za},function(a){a=a.call(this,this.J&255,this.U(this.D,this.C));this.J=this.J&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.K&255,this.U(this.D,this.C+this.G&65535));this.K=this.K&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.K&255,this.U(this.D,this.C+this.F& +65535));this.K=this.K&-256|a;this.A-=this.B.ja},function(a){a=a.call(this,this.K&255,this.U(this.N,this.I+this.G&65535));this.K=this.K&-256|a;this.A-=this.B.ja},function(a){a=a.call(this,this.K&255,this.U(this.N,this.I+this.F&65535));this.K=this.K&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.K&255,this.U(this.D,this.G));this.K=this.K&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.K&255,this.U(this.D,this.F));this.K=this.K&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.K& +255,this.U(this.D,this.L()));this.K=this.K&-256|a;this.A-=this.B.za},function(a){a=a.call(this,this.K&255,this.U(this.D,this.C));this.K=this.K&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.C&255,this.U(this.D,this.C+this.G&65535));this.C=this.C&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.C&255,this.U(this.D,this.C+this.F&65535));this.C=this.C&-256|a;this.A-=this.B.ja},function(a){a=a.call(this,this.C&255,this.U(this.N,this.I+this.G&65535));this.C=this.C&-256|a;this.A-=this.B.ja}, +function(a){a=a.call(this,this.C&255,this.U(this.N,this.I+this.F&65535));this.C=this.C&-256|a;this.A-=this.B.ia},function(a){a=a.call(this,this.C&255,this.U(this.D,this.G));this.C=this.C&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.C&255,this.U(this.D,this.F));this.C=this.C&-256|a;this.A-=this.B.aa},function(a){a=a.call(this,this.C&255,this.U(this.D,this.L()));this.C=this.C&-256|a;this.A-=this.B.za},function(a){a=a.call(this,this.C&255,this.U(this.D,this.C));this.C=this.C&-256|a;this.A-= +this.B.aa},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.C+this.G&65535));this.H=this.H&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.C+this.F&65535));this.H=this.H&255|a<<8;this.A-=this.B.ja},function(a){a=a.call(this,this.H>>8,this.U(this.N,this.I+this.G&65535));this.H=this.H&255|a<<8;this.A-=this.B.ja},function(a){a=a.call(this,this.H>>8,this.U(this.N,this.I+this.F&65535));this.H=this.H&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.H>> +8,this.U(this.D,this.G));this.H=this.H&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.F));this.H=this.H&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.L()));this.H=this.H&255|a<<8;this.A-=this.B.za},function(a){a=a.call(this,this.H>>8,this.U(this.D,this.C));this.H=this.H&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.C+this.G&65535));this.J=this.J&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this, +this.J>>8,this.U(this.D,this.C+this.F&65535));this.J=this.J&255|a<<8;this.A-=this.B.ja},function(a){a=a.call(this,this.J>>8,this.U(this.N,this.I+this.G&65535));this.J=this.J&255|a<<8;this.A-=this.B.ja},function(a){a=a.call(this,this.J>>8,this.U(this.N,this.I+this.F&65535));this.J=this.J&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.G));this.J=this.J&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.F));this.J=this.J&255|a<<8;this.A-= +this.B.aa},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.L()));this.J=this.J&255|a<<8;this.A-=this.B.za},function(a){a=a.call(this,this.J>>8,this.U(this.D,this.C));this.J=this.J&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.C+this.G&65535));this.K=this.K&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.C+this.F&65535));this.K=this.K&255|a<<8;this.A-=this.B.ja},function(a){a=a.call(this,this.K>>8,this.U(this.N,this.I+this.G& +65535));this.K=this.K&255|a<<8;this.A-=this.B.ja},function(a){a=a.call(this,this.K>>8,this.U(this.N,this.I+this.F&65535));this.K=this.K&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.G));this.K=this.K&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.F));this.K=this.K&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.L()));this.K=this.K&255|a<<8;this.A-=this.B.za},function(a){a=a.call(this,this.K>> +8,this.U(this.D,this.C));this.K=this.K&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.C+this.G&65535));this.C=this.C&255|a<<8;this.A-=this.B.ia},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.C+this.F&65535));this.C=this.C&255|a<<8;this.A-=this.B.ja},function(a){a=a.call(this,this.C>>8,this.U(this.N,this.I+this.G&65535));this.C=this.C&255|a<<8;this.A-=this.B.ja},function(a){a=a.call(this,this.C>>8,this.U(this.N,this.I+this.F&65535));this.C=this.C&255|a<< +8;this.A-=this.B.ia},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.G));this.C=this.C&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.F));this.C=this.C&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.L()));this.C=this.C&255|a<<8;this.A-=this.B.za},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.C));this.C=this.C&255|a<<8;this.A-=this.B.aa},function(a){a=a.call(this,this.H&255,this.U(this.D,this.C+this.G+this.M()& 65535));this.H=this.H&-256|a;this.A-=this.B.W},function(a){a=a.call(this,this.H&255,this.U(this.D,this.C+this.F+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.X},function(a){a=a.call(this,this.H&255,this.U(this.N,this.I+this.G+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.X},function(a){a=a.call(this,this.H&255,this.U(this.N,this.I+this.F+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.W},function(a){a=a.call(this,this.H&255,this.U(this.D,this.G+this.M()&65535));this.H=this.H&-256| a;this.A-=this.B.Q},function(a){a=a.call(this,this.H&255,this.U(this.D,this.F+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.H&255,this.U(this.N,this.I+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.H&255,this.U(this.D,this.C+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.J&255,this.U(this.D,this.C+this.G+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.W},function(a){a=a.call(this, this.J&255,this.U(this.D,this.C+this.F+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.X},function(a){a=a.call(this,this.J&255,this.U(this.N,this.I+this.G+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.X},function(a){a=a.call(this,this.J&255,this.U(this.N,this.I+this.F+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.W},function(a){a=a.call(this,this.J&255,this.U(this.D,this.G+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.J&255,this.U(this.D, @@ -237,17 +237,17 @@ this.I+this.F+this.L()&65535));this.J=this.J&255|a<<8;this.A-=this.B.W},function this.B.W},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.G+this.L()&65535));this.K=this.K&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.F+this.L()&65535));this.K=this.K&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.K>>8,this.U(this.N,this.I+this.L()&65535));this.K=this.K&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.K>>8,this.U(this.D,this.C+this.L()&65535));this.K=this.K&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.C>> 8,this.U(this.D,this.C+this.G+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.W},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.C+this.F+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.X},function(a){a=a.call(this,this.C>>8,this.U(this.N,this.I+this.G+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.X},function(a){a=a.call(this,this.C>>8,this.U(this.N,this.I+this.F+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.W},function(a){a=a.call(this,this.C>>8,this.U(this.D, this.G+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.F+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.C>>8,this.U(this.N,this.I+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.C>>8,this.U(this.D,this.C+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.Q},Ze,$e,af,bf,cf,df,ef,ff,gf,hf,jf,kf,lf,mf,nf,of,pf,qf,rf,sf,tf,uf,vf,wf,xf,yf,zf,Af,Bf,Cf,Df, -Ef,Ff,Gf,Hf,If,Jf,Kf,Lf,Mf,Nf,Of,Pf,Qf,Rf,Sf,Tf,Uf,Vf,Wf,Xf,Yf,Zf,$f,ag,bg,cg,dg,eg,fg,gg,hg,ig,jg],O=[function(a){this.H=a.call(this,this.H,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ha},function(a){this.H=a.call(this,this.H,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ia},function(a){this.H=a.call(this,this.H,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ia},function(a){this.H=a.call(this,this.H,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ha},function(a){this.H=a.call(this, -this.H,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.H=a.call(this,this.H,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.H=a.call(this,this.H,this.V(this.D,this.L()));this.A-=this.B.xa},function(a){this.H=a.call(this,this.H,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.J=a.call(this,this.J,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ha},function(a){this.J=a.call(this,this.J,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ia},function(a){this.J=a.call(this, -this.J,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ia},function(a){this.J=a.call(this,this.J,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ha},function(a){this.J=a.call(this,this.J,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.J=a.call(this,this.J,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.J=a.call(this,this.J,this.V(this.D,this.L()));this.A-=this.B.xa},function(a){this.J=a.call(this,this.J,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.K=a.call(this, -this.K,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ha},function(a){this.K=a.call(this,this.K,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ia},function(a){this.K=a.call(this,this.K,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ia},function(a){this.K=a.call(this,this.K,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ha},function(a){this.K=a.call(this,this.K,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.K=a.call(this,this.K,this.V(this.D,this.F));this.A-=this.B.aa}, -function(a){this.K=a.call(this,this.K,this.V(this.D,this.L()));this.A-=this.B.xa},function(a){this.K=a.call(this,this.K,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.C=a.call(this,this.C,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ha},function(a){this.C=a.call(this,this.C,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ia},function(a){this.C=a.call(this,this.C,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ia},function(a){this.C=a.call(this,this.C,this.V(this.N,this.I+this.F& -65535));this.A-=this.B.ha},function(a){this.C=a.call(this,this.C,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.C=a.call(this,this.C,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.C=a.call(this,this.C,this.V(this.D,this.L()));this.A-=this.B.xa},function(a){this.C=a.call(this,this.C,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ha},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.C+ -this.F&65535));this.A-=this.B.ia},function(a){this.Y=a.call(this,this.Y,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ia},function(a){this.Y=a.call(this,this.Y,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ha},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.L()));this.A-=this.B.xa},function(a){this.Y=a.call(this,this.Y,this.V(this.D, -this.C));this.A-=this.B.aa},function(a){this.I=a.call(this,this.I,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ha},function(a){this.I=a.call(this,this.I,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ia},function(a){this.I=a.call(this,this.I,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ia},function(a){this.I=a.call(this,this.I,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ha},function(a){this.I=a.call(this,this.I,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.I=a.call(this, -this.I,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.I=a.call(this,this.I,this.V(this.D,this.L()));this.A-=this.B.xa},function(a){this.I=a.call(this,this.I,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.G=a.call(this,this.G,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ha},function(a){this.G=a.call(this,this.G,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ia},function(a){this.G=a.call(this,this.G,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ia},function(a){this.G= -a.call(this,this.G,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ha},function(a){this.G=a.call(this,this.G,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.G=a.call(this,this.G,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.G=a.call(this,this.G,this.V(this.D,this.L()));this.A-=this.B.xa},function(a){this.G=a.call(this,this.G,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.F=a.call(this,this.F,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ha},function(a){this.F= -a.call(this,this.F,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ia},function(a){this.F=a.call(this,this.F,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ia},function(a){this.F=a.call(this,this.F,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ha},function(a){this.F=a.call(this,this.F,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.F=a.call(this,this.F,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.F=a.call(this,this.F,this.V(this.D,this.L()));this.A-=this.B.xa}, +Ef,Ff,Gf,Hf,If,Jf,Kf,Lf,Mf,Nf,Of,Pf,Qf,Rf,Sf,Tf,Uf,Vf,Wf,Xf,Yf,Zf,$f,ag,bg,cg,dg,eg,fg,gg,hg,ig,jg],O=[function(a){this.H=a.call(this,this.H,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ia},function(a){this.H=a.call(this,this.H,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ja},function(a){this.H=a.call(this,this.H,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ja},function(a){this.H=a.call(this,this.H,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ia},function(a){this.H=a.call(this, +this.H,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.H=a.call(this,this.H,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.H=a.call(this,this.H,this.V(this.D,this.L()));this.A-=this.B.za},function(a){this.H=a.call(this,this.H,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.J=a.call(this,this.J,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ia},function(a){this.J=a.call(this,this.J,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ja},function(a){this.J=a.call(this, +this.J,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ja},function(a){this.J=a.call(this,this.J,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ia},function(a){this.J=a.call(this,this.J,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.J=a.call(this,this.J,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.J=a.call(this,this.J,this.V(this.D,this.L()));this.A-=this.B.za},function(a){this.J=a.call(this,this.J,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.K=a.call(this, +this.K,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ia},function(a){this.K=a.call(this,this.K,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ja},function(a){this.K=a.call(this,this.K,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ja},function(a){this.K=a.call(this,this.K,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ia},function(a){this.K=a.call(this,this.K,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.K=a.call(this,this.K,this.V(this.D,this.F));this.A-=this.B.aa}, +function(a){this.K=a.call(this,this.K,this.V(this.D,this.L()));this.A-=this.B.za},function(a){this.K=a.call(this,this.K,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.C=a.call(this,this.C,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ia},function(a){this.C=a.call(this,this.C,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ja},function(a){this.C=a.call(this,this.C,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ja},function(a){this.C=a.call(this,this.C,this.V(this.N,this.I+this.F& +65535));this.A-=this.B.ia},function(a){this.C=a.call(this,this.C,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.C=a.call(this,this.C,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.C=a.call(this,this.C,this.V(this.D,this.L()));this.A-=this.B.za},function(a){this.C=a.call(this,this.C,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ia},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.C+ +this.F&65535));this.A-=this.B.ja},function(a){this.Y=a.call(this,this.Y,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ja},function(a){this.Y=a.call(this,this.Y,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ia},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.Y=a.call(this,this.Y,this.V(this.D,this.L()));this.A-=this.B.za},function(a){this.Y=a.call(this,this.Y,this.V(this.D, +this.C));this.A-=this.B.aa},function(a){this.I=a.call(this,this.I,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ia},function(a){this.I=a.call(this,this.I,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ja},function(a){this.I=a.call(this,this.I,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ja},function(a){this.I=a.call(this,this.I,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ia},function(a){this.I=a.call(this,this.I,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.I=a.call(this, +this.I,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.I=a.call(this,this.I,this.V(this.D,this.L()));this.A-=this.B.za},function(a){this.I=a.call(this,this.I,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.G=a.call(this,this.G,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ia},function(a){this.G=a.call(this,this.G,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ja},function(a){this.G=a.call(this,this.G,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ja},function(a){this.G= +a.call(this,this.G,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ia},function(a){this.G=a.call(this,this.G,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.G=a.call(this,this.G,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.G=a.call(this,this.G,this.V(this.D,this.L()));this.A-=this.B.za},function(a){this.G=a.call(this,this.G,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.F=a.call(this,this.F,this.V(this.D,this.C+this.G&65535));this.A-=this.B.ia},function(a){this.F= +a.call(this,this.F,this.V(this.D,this.C+this.F&65535));this.A-=this.B.ja},function(a){this.F=a.call(this,this.F,this.V(this.N,this.I+this.G&65535));this.A-=this.B.ja},function(a){this.F=a.call(this,this.F,this.V(this.N,this.I+this.F&65535));this.A-=this.B.ia},function(a){this.F=a.call(this,this.F,this.V(this.D,this.G));this.A-=this.B.aa},function(a){this.F=a.call(this,this.F,this.V(this.D,this.F));this.A-=this.B.aa},function(a){this.F=a.call(this,this.F,this.V(this.D,this.L()));this.A-=this.B.za}, function(a){this.F=a.call(this,this.F,this.V(this.D,this.C));this.A-=this.B.aa},function(a){this.H=a.call(this,this.H,this.V(this.D,this.C+this.G+this.M()&65535));this.A-=this.B.W},function(a){this.H=a.call(this,this.H,this.V(this.D,this.C+this.F+this.M()&65535));this.A-=this.B.X},function(a){this.H=a.call(this,this.H,this.V(this.N,this.I+this.G+this.M()&65535));this.A-=this.B.X},function(a){this.H=a.call(this,this.H,this.V(this.N,this.I+this.F+this.M()&65535));this.A-=this.B.W},function(a){this.H= a.call(this,this.H,this.V(this.D,this.G+this.M()&65535));this.A-=this.B.Q},function(a){this.H=a.call(this,this.H,this.V(this.D,this.F+this.M()&65535));this.A-=this.B.Q},function(a){this.H=a.call(this,this.H,this.V(this.N,this.I+this.M()&65535));this.A-=this.B.Q},function(a){this.H=a.call(this,this.H,this.V(this.D,this.C+this.M()&65535));this.A-=this.B.Q},function(a){this.J=a.call(this,this.J,this.V(this.D,this.C+this.G+this.M()&65535));this.A-=this.B.W},function(a){this.J=a.call(this,this.J,this.V(this.D, this.C+this.F+this.M()&65535));this.A-=this.B.X},function(a){this.J=a.call(this,this.J,this.V(this.N,this.I+this.G+this.M()&65535));this.A-=this.B.X},function(a){this.J=a.call(this,this.J,this.V(this.N,this.I+this.F+this.M()&65535));this.A-=this.B.W},function(a){this.J=a.call(this,this.J,this.V(this.D,this.G+this.M()&65535));this.A-=this.B.Q},function(a){this.J=a.call(this,this.J,this.V(this.D,this.F+this.M()&65535));this.A-=this.B.Q},function(a){this.J=a.call(this,this.J,this.V(this.N,this.I+this.M()& @@ -273,20 +273,20 @@ this.G+this.L()&65535));this.A-=this.B.Q},function(a){this.I=a.call(this,this.I, this.A-=this.B.X},function(a){this.G=a.call(this,this.G,this.V(this.N,this.I+this.G+this.L()&65535));this.A-=this.B.X},function(a){this.G=a.call(this,this.G,this.V(this.N,this.I+this.F+this.L()&65535));this.A-=this.B.W},function(a){this.G=a.call(this,this.G,this.V(this.D,this.G+this.L()&65535));this.A-=this.B.Q},function(a){this.G=a.call(this,this.G,this.V(this.D,this.F+this.L()&65535));this.A-=this.B.Q},function(a){this.G=a.call(this,this.G,this.V(this.N,this.I+this.L()&65535));this.A-=this.B.Q}, function(a){this.G=a.call(this,this.G,this.V(this.D,this.C+this.L()&65535));this.A-=this.B.Q},function(a){this.F=a.call(this,this.F,this.V(this.D,this.C+this.G+this.L()&65535));this.A-=this.B.W},function(a){this.F=a.call(this,this.F,this.V(this.D,this.C+this.F+this.L()&65535));this.A-=this.B.X},function(a){this.F=a.call(this,this.F,this.V(this.N,this.I+this.G+this.L()&65535));this.A-=this.B.X},function(a){this.F=a.call(this,this.F,this.V(this.N,this.I+this.F+this.L()&65535));this.A-=this.B.W},function(a){this.F= a.call(this,this.F,this.V(this.D,this.G+this.L()&65535));this.A-=this.B.Q},function(a){this.F=a.call(this,this.F,this.V(this.D,this.F+this.L()&65535));this.A-=this.B.Q},function(a){this.F=a.call(this,this.F,this.V(this.N,this.I+this.L()&65535));this.A-=this.B.Q},function(a){this.F=a.call(this,this.F,this.V(this.D,this.C+this.L()&65535));this.A-=this.B.Q},kg,lg,mg,ng,og,pg,qg,rg,sg,tg,ug,vg,wg,xg,yg,zg,Ag,Bg,Cg,Dg,Eg,Fg,Gg,Hg,Ig,Jg,Kg,Lg,Mg,Ng,Og,Pg,Qg,Rg,Sg,Tg,Ug,Vg,Wg,Xg,Yg,Zg,$g,ah,bh,ch,dh,eh, -fh,gh,hh,ih,jh,kh,lh,mh,nh,oh,ph,qh,rh,sh,th,uh],yh=[function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ha}, -function(a,b){var c=a[0].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.xa},function(a,b){var c=a[0].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-= -this.B.ha},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[1].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.O(this.D,this.F), -b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.xa},function(a,b){var c=a[1].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[2].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[2].call(this, -this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[2].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[2].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.xa},function(a, -b){var c=a[2].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[3].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[3].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[3].call(this,this.O(this.N,this.I+this.F&65535),b.call(this)); -this.R(c);this.A-=this.B.ha},function(a,b){var c=a[3].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.xa},function(a,b){var c=a[3].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.O(this.D,this.C+this.G&65535), -b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[4].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[4].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[4].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[4].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c= -a[4].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.xa},function(a,b){var c=a[4].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[5].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia}, -function(a,b){var c=a[5].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[5].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[5].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.O(this.D,this.L()),b.call(this));this.R(c); -this.A-=this.B.xa},function(a,b){var c=a[5].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[6].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[6].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[6].call(this,this.O(this.N, -this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[6].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.xa},function(a,b){var c=a[6].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this, -this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[7].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[7].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[7].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ha},function(a,b){var c=a[7].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-= -this.B.aa},function(a,b){var c=a[7].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.xa},function(a,b){var c=a[7].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.F+this.M()& +fh,gh,hh,ih,jh,kh,lh,mh,nh,oh,ph,qh,rh,sh,th,uh],yh=[function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia}, +function(a,b){var c=a[0].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.za},function(a,b){var c=a[0].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-= +this.B.ia},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[1].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.O(this.D,this.F), +b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.za},function(a,b){var c=a[1].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[2].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[2].call(this, +this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[2].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[2].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.za},function(a, +b){var c=a[2].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[3].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[3].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[3].call(this,this.O(this.N,this.I+this.F&65535),b.call(this)); +this.R(c);this.A-=this.B.ia},function(a,b){var c=a[3].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.za},function(a,b){var c=a[3].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.O(this.D,this.C+this.G&65535), +b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[4].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[4].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[4].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[4].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c= +a[4].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.za},function(a,b){var c=a[4].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[5].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ja}, +function(a,b){var c=a[5].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[5].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[5].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.O(this.D,this.L()),b.call(this));this.R(c); +this.A-=this.B.za},function(a,b){var c=a[5].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[6].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[6].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[6].call(this,this.O(this.N, +this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[6].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.za},function(a,b){var c=a[6].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this, +this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[7].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[7].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ja},function(a,b){var c=a[7].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ia},function(a,b){var c=a[7].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-= +this.B.aa},function(a,b){var c=a[7].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.za},function(a,b){var c=a[7].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.F+this.M()& 65535),b.call(this));this.R(c);this.A-=this.B.X},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.X},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.O(this.D,this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.O(this.D,this.F+this.M()&65535),b.call(this));this.R(c); this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.X},function(a,b){var c= a[1].call(this,this.O(this.N,this.I+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.X},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[1].call(this,this.O(this.D,this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.O(this.D,this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+ @@ -327,20 +327,20 @@ this.H&-256|c},function(a,b){var c=a[5].call(this,this.J&255,b.call(this));this. c<<8},function(a,b){var c=a[5].call(this,this.C>>8,b.call(this));this.C=this.C&255|c<<8},function(a,b){var c=a[6].call(this,this.H&255,b.call(this));this.H=this.H&-256|c},function(a,b){var c=a[6].call(this,this.J&255,b.call(this));this.J=this.J&-256|c},function(a,b){var c=a[6].call(this,this.K&255,b.call(this));this.K=this.K&-256|c},function(a,b){var c=a[6].call(this,this.C&255,b.call(this));this.C=this.C&-256|c},function(a,b){var c=a[6].call(this,this.H>>8,b.call(this));this.H=this.H&255|c<<8},function(a, b){var c=a[6].call(this,this.J>>8,b.call(this));this.J=this.J&255|c<<8},function(a,b){var c=a[6].call(this,this.K>>8,b.call(this));this.K=this.K&255|c<<8},function(a,b){var c=a[6].call(this,this.C>>8,b.call(this));this.C=this.C&255|c<<8},function(a,b){var c=a[7].call(this,this.H&255,b.call(this));this.H=this.H&-256|c},function(a,b){var c=a[7].call(this,this.J&255,b.call(this));this.J=this.J&-256|c},function(a,b){var c=a[7].call(this,this.K&255,b.call(this));this.K=this.K&-256|c},function(a,b){var c= a[7].call(this,this.C&255,b.call(this));this.C=this.C&-256|c},function(a,b){var c=a[7].call(this,this.H>>8,b.call(this));this.H=this.H&255|c<<8},function(a,b){var c=a[7].call(this,this.J>>8,b.call(this));this.J=this.J&255|c<<8},function(a,b){var c=a[7].call(this,this.K>>8,b.call(this));this.K=this.K&255|c<<8},function(a,b){var c=a[7].call(this,this.C>>8,b.call(this));this.C=this.C&255|c<<8}],zh=[function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-= -this.B.ha},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[0].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.P(this.D,this.F), -b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.xa},function(a,b){var c=a[0].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[1].call(this, -this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[1].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.xa},function(a, -b){var c=a[1].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[2].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[2].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[2].call(this,this.P(this.N,this.I+this.F&65535),b.call(this)); -this.S(c);this.A-=this.B.ha},function(a,b){var c=a[2].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.xa},function(a,b){var c=a[2].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.P(this.D,this.C+this.G&65535), -b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[3].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[3].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[3].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[3].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c= -a[3].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.xa},function(a,b){var c=a[3].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[4].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia}, -function(a,b){var c=a[4].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[4].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[4].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.P(this.D,this.L()),b.call(this));this.S(c); -this.A-=this.B.xa},function(a,b){var c=a[4].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[5].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[5].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[5].call(this,this.P(this.N, -this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[5].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.xa},function(a,b){var c=a[5].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this, -this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[6].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[6].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[6].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[6].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-= -this.B.aa},function(a,b){var c=a[6].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.xa},function(a,b){var c=a[6].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[7].call(this,this.P(this.D,this.C+this.F&65535),b.call(this)); -this.S(c);this.A-=this.B.ia},function(a,b){var c=a[7].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[7].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ha},function(a,b){var c=a[7].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this,this.P(this.D, -this.L()),b.call(this));this.S(c);this.A-=this.B.xa},function(a,b){var c=a[7].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.X},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.G+this.M()&65535),b.call(this));this.S(c);this.A-= +this.B.ia},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[0].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.P(this.D,this.F), +b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.za},function(a,b){var c=a[0].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[1].call(this, +this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[1].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[1].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.za},function(a, +b){var c=a[1].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[2].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[2].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[2].call(this,this.P(this.N,this.I+this.F&65535),b.call(this)); +this.S(c);this.A-=this.B.ia},function(a,b){var c=a[2].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[2].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.za},function(a,b){var c=a[2].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.P(this.D,this.C+this.G&65535), +b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[3].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[3].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[3].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[3].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c= +a[3].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[3].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.za},function(a,b){var c=a[3].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[4].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ja}, +function(a,b){var c=a[4].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[4].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[4].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[4].call(this,this.P(this.D,this.L()),b.call(this));this.S(c); +this.A-=this.B.za},function(a,b){var c=a[4].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[5].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[5].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[5].call(this,this.P(this.N, +this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[5].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[5].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.za},function(a,b){var c=a[5].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this, +this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[6].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[6].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[6].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[6].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-= +this.B.aa},function(a,b){var c=a[6].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[6].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.za},function(a,b){var c=a[6].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[7].call(this,this.P(this.D,this.C+this.F&65535),b.call(this)); +this.S(c);this.A-=this.B.ja},function(a,b){var c=a[7].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ja},function(a,b){var c=a[7].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ia},function(a,b){var c=a[7].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[7].call(this,this.P(this.D, +this.L()),b.call(this));this.S(c);this.A-=this.B.za},function(a,b){var c=a[7].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.aa},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.X},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.G+this.M()&65535),b.call(this));this.S(c);this.A-= this.B.X},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.P(this.D,this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.P(this.D,this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this, this.P(this.D,this.C+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.X},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.X},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.F+ this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[1].call(this,this.P(this.D,this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.P(this.D,this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.M()&65535),b.call(this));this.S(c);this.A-= @@ -377,292 +377,292 @@ b.call(this))},function(a,b){this.K=a[3].call(this,this.K,b.call(this))},functio this.K,b.call(this))},function(a,b){this.C=a[4].call(this,this.C,b.call(this))},function(a,b){this.Y=a[4].call(this,this.Y,b.call(this))},function(a,b){this.I=a[4].call(this,this.I,b.call(this))},function(a,b){this.G=a[4].call(this,this.G,b.call(this))},function(a,b){this.F=a[4].call(this,this.F,b.call(this))},function(a,b){this.H=a[5].call(this,this.H,b.call(this))},function(a,b){this.J=a[5].call(this,this.J,b.call(this))},function(a,b){this.K=a[5].call(this,this.K,b.call(this))},function(a,b){this.C= a[5].call(this,this.C,b.call(this))},function(a,b){this.Y=a[5].call(this,this.Y,b.call(this))},function(a,b){this.I=a[5].call(this,this.I,b.call(this))},function(a,b){this.G=a[5].call(this,this.G,b.call(this))},function(a,b){this.F=a[5].call(this,this.F,b.call(this))},function(a,b){this.H=a[6].call(this,this.H,b.call(this))},function(a,b){this.J=a[6].call(this,this.J,b.call(this))},function(a,b){this.K=a[6].call(this,this.K,b.call(this))},function(a,b){this.C=a[6].call(this,this.C,b.call(this))}, function(a,b){this.$|=512;this.Y=a[6].call(this,this.Y,b.call(this))},function(a,b){this.I=a[6].call(this,this.I,b.call(this))},function(a,b){this.G=a[6].call(this,this.G,b.call(this))},function(a,b){this.F=a[6].call(this,this.F,b.call(this))},function(a,b){this.H=a[7].call(this,this.H,b.call(this))},function(a,b){this.J=a[7].call(this,this.J,b.call(this))},function(a,b){this.K=a[7].call(this,this.K,b.call(this))},function(a,b){this.C=a[7].call(this,this.C,b.call(this))},function(a,b){this.Y=a[7].call(this, -this.Y,b.call(this))},function(a,b){this.I=a[7].call(this,this.I,b.call(this))},function(a,b){this.G=a[7].call(this,this.G,b.call(this))},function(a,b){this.F=a[7].call(this,this.F,b.call(this))}],Bh=[function(){var a=this.fa();16>(a&56)&&(this.$|=1);zh[a].call(this,cd,re)},function(){var a=this.fa();a&16||(this.$|=1);zh[a].call(this,Ah,re)},function(){O[this.fa()].call(this,Qe)},function(){O[this.fa()].call(this,Ue)},N,function(){Xe.call(this,this.ta(2054));this.F=this.ta(2086);this.G=this.ta(2088); -this.I=this.ta(2090);this.Y=this.ta(2092);this.C=this.ta(2094);this.K=this.ta(2096);this.J=this.ta(2098);this.H=this.ta(2100);dc.call(this.Wa,this.ta(2084),2102);dc.call(this.ua,this.ta(2082),2108);dc.call(this.rb,this.ta(2080),2114);dc.call(this.vb,this.ta(2078),2120);this.ag=this.ua.Pb;Tc(this,this.ta(2072));K(this,this.ta(2074));this.xc=this.ta(2126)|this.ta(2128)<<16;this.ue=this.xc+this.ta(2130);this.Yc.En(this.ta(2076),2132);this.Dc=this.ta(2138)|this.ta(2140)<<16;this.Vd=this.Dc+this.ta(2142); -this.Qe.En(this.ta(2070),2144);this.A-=195},N,N,N,N,N,sc,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N, -N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],dd=[function(){this.A-=2+(0>this.ja?0:1);return this.Yc.pa},function(){this.A-=2+(0>this.ja?0:1);return this.Qe.pa},function(a){this.$|=2;this.Yc.load(a);this.A-=17+(0>this.ja?0:2);return a},function(a){this.$|=2;this.Qe.load(a);this.A-=17+(0>this.ja?0:2);return a},function(a){this.$|=2;this.A-=14+(0>this.ja?0:2);if(0<=this.Lb.load(a,!0)&&2048!=(this.Lb.ab&2560)&&(3072==(this.Lb.ab&3072)||this.Lb.Pb>=(this.ua.pa&3)&&this.Lb.Pb>=(a&3)))return zd(this),a; -ud(this);return a},function(a){this.$|=2;this.A-=14+(0>this.ja?0:2);if(0<=this.Lb.load(a,!0)&&512==(this.Lb.ab&2560)&&this.Lb.Pb>=(this.ua.pa&3)&&this.Lb.Pb>=(a&3))return zd(this),a;ud(this);return a},M,M],ed=[Lc,Lc,Lc,Lc,Lc,Lc,M,M],cd=ed,Ah=[function(a){0>this.ja?sc.call(this):(a=this.ue-this.xc,this.Zc(this.ja+2,this.xc),this.Zc(this.ja+4,65280|this.xc>>16),this.A-=11);return a},function(a){0>this.ja?sc.call(this):(a=this.Vd-this.Dc,this.Zc(this.ja+2,this.Dc),this.Zc(this.ja+4,65280|this.Dc>>16), -this.A-=12);return a},function(a){0>this.ja?sc.call(this):(this.xc=this.ta(this.ja+2)|this.tb(this.ja+4)<<16,this.ue=this.xc+a,this.$|=2,this.A-=11);return a},function(a){0>this.ja?sc.call(this):(this.Dc=this.ta(this.ja+2)|this.tb(this.ja+4)<<16,this.Vd=this.Dc+a,this.$|=2,this.A-=12);return a},function(){this.A-=2+(0>this.ja?0:1);return this.Ac},M,function(a){Xe.call(this,a);this.A-=0>this.ja?3:6;this.$|=2;return a},M];function Oc(){Bh[this.fa()].call(this)} -function Qc(){L(this,this.Y);this.A-=this.B.pc}function tc(){var a=this.Y;L(this,this.H);L(this,this.J);L(this,this.K);L(this,this.C);L(this,a);L(this,this.I);L(this,this.G);L(this,this.F);this.A-=this.B.xl}function uc(){this.F=this.Ja();this.G=this.Ja();this.I=this.Ja();this.Y+=2;this.C=this.Ja();this.K=this.Ja();this.J=this.Ja();this.H=this.Ja();this.A-=this.B.vl}function vc(){O[this.fa()].call(this,Oe)}function Pc(){wh[this.fa()].call(this,Pe)}function wc(){L(this,this.L());this.A-=this.B.pc} -function xc(){O[this.fa()].call(this,Je)}function yc(){L(this,this.fa());this.A-=this.B.pc}function zc(){O[this.fa()].call(this,Ie)}function Ac(){var a=1,b=0,c=5;this.ya&192&&(a=this.J,b=1,this.ya&256&&(c=4));if(a--){var d=vb(this.oa,this.K,this.Da-b-1);this.Jd(this.Wa.fc(this.F,0),d);this.F=this.F+(this.za&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(ld(this,-2),this.$|=256)}} -function Bc(){var a=1,b=0,c=5;this.ya&192&&(a=this.J,b=1,this.ya&256&&(c=4));if(a--){var d=this.Da-b-1,d=vb(this.oa,this.K,d)|vb(this.oa,this.K,d)<<8;this.Zc(this.Wa.fc(this.F,1),d);this.F=this.F+(this.za&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(ld(this,-2),this.$|=256)}} -function Cc(){var a=1,b=0,c=5;this.ya&192&&(a=this.J,b=1,this.ya&256&&(c=4));if(a--){var d=this.tb(this.vb.cd(this.G,0));this.G=this.G+(this.za&1024?-1:1)&65535;this.A-=c;this.J-=b;zb(this.oa,this.K,d,this.Da-b-1);a&&(ld(this,-2),this.$|=256)}} -function Dc(){var a=1,b=0,c=5;this.ya&192&&(a=this.J,b=1,this.ya&256&&(c=4));if(a--){var d=this.ta(this.vb.cd(this.G,1));this.G=this.G+(this.za&1024?-2:2)&65535;this.A-=c;this.J-=b;b=this.Da-b-1;zb(this.oa,this.K,d&255,b);zb(this.oa,this.K,d>>8,b);a&&(ld(this,-2),this.$|=256)}}function Ch(){var a=this.M();rd(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Dh(){var a=this.M();rd(this)?this.A-=this.B.Vb:(K(this,this.ra+a),this.A-=this.B.Ub)} -function Eh(){var a=this.M();md(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Fh(){var a=this.M();md(this)?this.A-=this.B.Vb:(K(this,this.ra+a),this.A-=this.B.Ub)}function Gh(){var a=this.M();pd(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Hh(){var a=this.M();pd(this)?this.A-=this.B.Vb:(K(this,this.ra+a),this.A-=this.B.Ub)}function Ih(){var a=this.M();md(this)||pd(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb} -function Jh(){var a=this.M();md(this)||pd(this)?this.A-=this.B.Vb:(K(this,this.ra+a),this.A-=this.B.Ub)}function Kh(){var a=this.M();qd(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Lh(){var a=this.M();qd(this)?this.A-=this.B.Vb:(K(this,this.ra+a),this.A-=this.B.Ub)}function Mh(){var a=this.M();nd(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Nh(){var a=this.M();nd(this)?this.A-=this.B.Vb:(K(this,this.ra+a),this.A-=this.B.Ub)} -function Oh(){var a=this.M();!qd(this)!=!rd(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Ph(){var a=this.M();!qd(this)==!rd(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Qh(){var a=this.M();pd(this)||!qd(this)!=!rd(this)?(K(this,this.ra+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Rh(){var a=this.M();pd(this)||!qd(this)!=!rd(this)?this.A-=this.B.Vb:(K(this,this.ra+a),this.A-=this.B.Ub)} -function Sh(){yh[this.fa()].call(this,te,this.fa);this.A-=0>this.Ka?1:this.B.zh}function Ec(){yh[this.fa()].call(this,Ce,qe)}function Fc(){zh[this.fa()].call(this,De,qe)}function Th(){var a=this.L();K(this,this.Ja());this.Y=this.Y+a&65535;this.A-=this.B.Cl}function Uh(){K(this,this.Ja());this.A-=this.B.zl} -function Gc(){var a=this.L(),b=this.fa()&31;this.A-=11;L(this,this.I);var c=this.Y;if(0>8,c,d=od(this);9<(a&15)||d?(a=a+6&15,b=b+1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.Z=a);this.ea=65536;c&&(this.Z|=this.ea);d?yd(this):td(this);this.A-=this.B.Je},function(){vh[this.fa()].call(this,Rd)},function(){wh[this.fa()].call(this,Zd)},function(){xh[this.fa()].call(this,Rd)},function(){O[this.fa()].call(this,Zd)},function(){this.H=this.H&-256|Rd.call(this,this.H&255,this.fa());this.A--},function(){this.H=Zd.call(this,this.H,this.L());this.A--}, -function(){this.$|=20;this.D=this.N=this.vb;this.A-=this.B.ke},function(){var a=this.H&255,b=this.H>>8,c,d=od(this);9<(a&15)||d?(a=a-6&15,b=b-1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.Z=a);this.ea=65536;c&&(this.Z|=this.ea);d?yd(this):td(this);this.A-=this.B.Je},function(){this.na=this.H;this.H=(this.ka=this.H+1)&65535;this.Z=this.H|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.J;this.J=(this.ka=this.J+1)&65535;this.Z=this.J|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-= -2},function(){this.na=this.K;this.K=(this.ka=this.K+1)&65535;this.Z=this.K|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.C;this.C=(this.ka=this.C+1)&65535;this.Z=this.C|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.Y;this.Y=(this.ka=this.Y+1)&65535;this.Z=this.Y|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.I;this.I=(this.ka=this.I+1)&65535;this.Z=this.I|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na= -this.G;this.G=(this.ka=this.G+1)&65535;this.Z=this.G|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.F;this.F=(this.ka=this.F+1)&65535;this.Z=this.F|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.H;this.H=(this.ka=this.H-1)&65535;this.Z=this.H|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.J;this.J=(this.ka=this.J-1)&65535;this.Z=this.J|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.K;this.K= -(this.ka=this.K-1)&65535;this.Z=this.K|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.C;this.C=(this.ka=this.C-1)&65535;this.Z=this.C|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.Y;this.Y=(this.ka=this.Y-1)&65535;this.Z=this.Y|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.I;this.I=(this.ka=this.I-1)&65535;this.Z=this.I|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.G;this.G=(this.ka=this.G- -1)&65535;this.Z=this.G|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){this.na=this.F;this.F=(this.ka=this.F-1)&65535;this.Z=this.F|(this.Z&this.ea?1:0)<<16;this.ea=65536;this.A-=2},function(){L(this,this.H);this.A-=this.B.pc},function(){L(this,this.J);this.A-=this.B.pc},function(){L(this,this.K);this.A-=this.B.pc},function(){L(this,this.C);this.A-=this.B.pc},function(){L(this,this.Y-2&65535);this.A-=this.B.pc},function(){L(this,this.I);this.A-=this.B.pc},function(){L(this,this.G);this.A-= -this.B.pc},function(){L(this,this.F);this.A-=this.B.pc},function(){this.H=this.Ja();this.A-=this.B.hc},function(){this.J=this.Ja();this.A-=this.B.hc},function(){this.K=this.Ja();this.A-=this.B.hc},function(){this.C=this.Ja();this.A-=this.B.hc},function(){this.Y=this.Ja();this.A-=this.B.hc},function(){this.I=this.Ja();this.A-=this.B.hc},function(){this.G=this.Ja();this.A-=this.B.hc},function(){this.F=this.Ja();this.A-=this.B.hc},Ch,Dh,Eh,Fh,Gh,Hh,Ih,Jh,Kh,Lh,Mh,Nh,Oh,Ph,Qh,Rh,Ch,Dh,Eh,Fh,Gh,Hh,Ih, -Jh,Kh,Lh,Mh,Nh,Oh,Ph,Qh,Rh,Sh,function(){zh[this.fa()].call(this,ue,this.L);this.A-=0>this.Ka?1:this.B.zh},Sh,function(){zh[this.fa()].call(this,ue,this.M);this.A-=0>this.Ka?1:this.B.zh},function(){vh[this.fa()].call(this,Ge)},function(){wh[this.fa()].call(this,He)},function(){xh[this.Og=this.fa()].call(this,Ve)},function(){O[this.Og=this.fa()].call(this,We)},function(){this.$|=1;vh[this.fa()].call(this,Ee)},function(){this.$|=1;wh[this.fa()].call(this,Ee)},function(){xh[this.fa()].call(this,Ee)}, -function(){O[this.fa()].call(this,Ee)},function(){var a=this.fa();switch((a&56)>>3){case 0:this.Cb=this.Wa.pa;break;case 1:this.Cb=this.ua.pa;break;case 2:this.Cb=this.rb.pa;break;case 3:this.Cb=this.vb.pa;break;default:N.call(this);return}this.$|=1;wh[a].call(this,Fe)},function(){this.$|=1;this.D=this.N=this.Ul;O[this.fa()].call(this,Le)},function(){var a,b=this.fa(),c=(b&56)>>3;switch(c){case 0:a=this.H;break;case 2:a=this.K;break;case 3:a=this.C;break;default:if(80286<=this.Ga){sc.call(this);return}switch(c){case 1:a= -this.J;break;case 4:a=this.Y;break;case 5:a=this.I;break;case 6:a=this.G;break;case 7:a=this.F}}O[b].call(this,Ee);switch(c){case 0:kd(this,this.H);this.H=a;break;case 1:hd(this,this.J);this.J=a;break;case 2:jd(this,this.K);this.K=a;break;case 3:id(this,this.C);this.C=a;break;case 4:kd(this,this.Y);this.Y=a;break;case 5:hd(this,this.I);this.I=a;break;case 6:jd(this,this.G);this.G=a;break;case 7:id(this,this.F),this.F=a}},function(){this.$|=1;zh[this.fa()].call(this,ve,this.Ja)},function(){this.A-= +this.Y,b.call(this))},function(a,b){this.I=a[7].call(this,this.I,b.call(this))},function(a,b){this.G=a[7].call(this,this.G,b.call(this))},function(a,b){this.F=a[7].call(this,this.F,b.call(this))}],Bh=[function(){var a=this.ga();16>(a&56)&&(this.$|=1);zh[a].call(this,cd,se)},function(){var a=this.ga();a&16||(this.$|=1);zh[a].call(this,Ah,se)},function(){O[this.ga()].call(this,Re)},function(){O[this.ga()].call(this,Ve)},N,function(){this.wa.Jc?hc.call(this,13,0,!0):(Ye.call(this,this.ta(2054)),this.F= +this.ta(2086),this.G=this.ta(2088),this.I=this.ta(2090),this.Y=this.ta(2092),this.C=this.ta(2094),this.K=this.ta(2096),this.J=this.ta(2098),this.H=this.ta(2100),mc(this.Za,this.ta(2084),2102),mc(this.wa,this.ta(2082),2108),mc(this.tb,this.ta(2080),2114),mc(this.yb,this.ta(2078),2120),Tc(this,this.ta(2072)),K(this,this.ta(2074)),this.xc=this.ta(2126)|this.ta(2128)<<16,this.xe=this.xc+this.ta(2130),mc(this.ad,this.ta(2076),2132),this.Ec=this.ta(2138)|this.ta(2140)<<16,this.Yd=this.Ec+this.ta(2142), +mc(this.Te,this.ta(2070),2144),this.A-=195)},N,N,N,N,N,sc,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N, +N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],dd=[function(){this.A-=2+(0>this.ka?0:1);return this.ad.sa},function(){this.A-=2+(0>this.ka?0:1);return this.Te.sa},function(a){this.$|=2;this.ad.load(a);this.A-=17+(0>this.ka?0:2);return a},function(a){this.$|=2;this.Te.load(a);this.A-=17+(0>this.ka?0:2);return a},function(a){this.$|=2;this.A-=14+(0>this.ka?0:2);if(0<=this.Mb.load(a,!0)&&2048!=(this.Mb.Oa&2560)&&(this.Mb.zc>=this.wa.Jc&&this.Mb.zc>=(a&3)||7168==(this.Mb.Oa&7168)))return zd(this),a;ud(this); +return a},function(a){this.$|=2;this.A-=14+(0>this.ka?0:2);if(0<=this.Mb.load(a,!0)&&512==(this.Mb.Oa&2560)&&this.Mb.zc>=this.wa.Jc&&this.Mb.zc>=(a&3))return zd(this),a;ud(this);return a},M,M],ed=[Lc,Lc,Lc,Lc,Lc,Lc,M,M],cd=ed,Ah=[function(a){0>this.ka?sc.call(this):(a=this.xe-this.xc,this.bd(this.ka+2,this.xc),this.bd(this.ka+4,65280|this.xc>>16),this.A-=11);return a},function(a){0>this.ka?sc.call(this):(a=this.Yd-this.Ec,this.bd(this.ka+2,this.Ec),this.bd(this.ka+4,65280|this.Ec>>16),this.A-=12); +return a},function(a){0>this.ka?sc.call(this):(this.xc=this.ta(this.ka+2)|this.vb(this.ka+4)<<16,this.xe=this.xc+a,this.$|=2,this.A-=11);return a},function(a){0>this.ka?sc.call(this):(this.Ec=this.ta(this.ka+2)|this.vb(this.ka+4)<<16,this.Yd=this.Ec+a,this.$|=2,this.A-=12);return a},function(){this.A-=2+(0>this.ka?0:1);return this.Bc},M,function(a){Ye.call(this,a);this.A-=0>this.ka?3:6;this.$|=2;return a},M];function Oc(){Bh[this.ga()].call(this)}function Qc(){L(this,this.Y);this.A-=this.B.pc} +function tc(){var a=this.Y;L(this,this.H);L(this,this.J);L(this,this.K);L(this,this.C);L(this,a);L(this,this.I);L(this,this.G);L(this,this.F);this.A-=this.B.Bl}function uc(){this.F=this.La();this.G=this.La();this.I=this.La();this.Y+=2;this.C=this.La();this.K=this.La();this.J=this.La();this.H=this.La();this.A-=this.B.zl}function vc(){O[this.ga()].call(this,Pe)}function Pc(){wh[this.ga()].call(this,Qe)}function wc(){L(this,this.L());this.A-=this.B.pc}function xc(){O[this.ga()].call(this,Ke)} +function yc(){L(this,this.ga());this.A-=this.B.pc}function zc(){O[this.ga()].call(this,Je)}function Ac(){var a=1,b=0,c=5;this.Aa&192&&(a=this.J,b=1,this.Aa&256&&(c=4));if(a--){var d=vb(this.qa,this.K,this.Fa-b-1);this.Md(this.Za.fc(this.F,0),d);this.F=this.F+(this.Ba&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(ld(this,-2),this.$|=256)}} +function Bc(){var a=1,b=0,c=5;this.Aa&192&&(a=this.J,b=1,this.Aa&256&&(c=4));if(a--){var d=this.Fa-b-1,d=vb(this.qa,this.K,d)|vb(this.qa,this.K,d)<<8;this.bd(this.Za.fc(this.F,1),d);this.F=this.F+(this.Ba&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(ld(this,-2),this.$|=256)}} +function Cc(){var a=1,b=0,c=5;this.Aa&192&&(a=this.J,b=1,this.Aa&256&&(c=4));if(a--){var d=this.vb(this.yb.gd(this.G,0));this.G=this.G+(this.Ba&1024?-1:1)&65535;this.A-=c;this.J-=b;zb(this.qa,this.K,d,this.Fa-b-1);a&&(ld(this,-2),this.$|=256)}} +function Dc(){var a=1,b=0,c=5;this.Aa&192&&(a=this.J,b=1,this.Aa&256&&(c=4));if(a--){var d=this.ta(this.yb.gd(this.G,1));this.G=this.G+(this.Ba&1024?-2:2)&65535;this.A-=c;this.J-=b;b=this.Fa-b-1;zb(this.qa,this.K,d&255,b);zb(this.qa,this.K,d>>8,b);a&&(ld(this,-2),this.$|=256)}}function Ch(){var a=this.M();rd(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Dh(){var a=this.M();rd(this)?this.A-=this.B.Vb:(K(this,this.ua+a),this.A-=this.B.Ub)} +function Eh(){var a=this.M();md(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Fh(){var a=this.M();md(this)?this.A-=this.B.Vb:(K(this,this.ua+a),this.A-=this.B.Ub)}function Gh(){var a=this.M();pd(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Hh(){var a=this.M();pd(this)?this.A-=this.B.Vb:(K(this,this.ua+a),this.A-=this.B.Ub)}function Ih(){var a=this.M();md(this)||pd(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb} +function Jh(){var a=this.M();md(this)||pd(this)?this.A-=this.B.Vb:(K(this,this.ua+a),this.A-=this.B.Ub)}function Kh(){var a=this.M();qd(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Lh(){var a=this.M();qd(this)?this.A-=this.B.Vb:(K(this,this.ua+a),this.A-=this.B.Ub)}function Mh(){var a=this.M();nd(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Nh(){var a=this.M();nd(this)?this.A-=this.B.Vb:(K(this,this.ua+a),this.A-=this.B.Ub)} +function Oh(){var a=this.M();!qd(this)!=!rd(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Ph(){var a=this.M();!qd(this)==!rd(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Qh(){var a=this.M();pd(this)||!qd(this)!=!rd(this)?(K(this,this.ua+a),this.A-=this.B.Ub):this.A-=this.B.Vb}function Rh(){var a=this.M();pd(this)||!qd(this)!=!rd(this)?this.A-=this.B.Vb:(K(this,this.ua+a),this.A-=this.B.Ub)} +function Sh(){yh[this.ga()].call(this,ue,this.ga);this.A-=0>this.Ma?1:this.B.Ch}function Ec(){yh[this.ga()].call(this,De,re)}function Fc(){zh[this.ga()].call(this,Ee,re)}function Th(){var a=this.L();K(this,this.La());this.Y=this.Y+a&65535;this.A-=this.B.Gl}function Uh(){K(this,this.La());this.A-=this.B.Dl} +function Gc(){var a=this.L(),b=this.ga()&31;this.A-=11;L(this,this.I);var c=this.Y;if(0>8,c,d=od(this);9<(a&15)||d?(a=a+6&15,b=b+1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.Z=a);this.fa=65536;c&&(this.Z|=this.fa);d?yd(this):td(this);this.A-=this.B.Me},function(){vh[this.ga()].call(this,Sd)},function(){wh[this.ga()].call(this,$d)},function(){xh[this.ga()].call(this,Sd)},function(){O[this.ga()].call(this,$d)},function(){this.H=this.H&-256|Sd.call(this,this.H&255,this.ga());this.A--},function(){this.H=$d.call(this,this.H,this.L());this.A--}, +function(){this.$|=20;this.D=this.N=this.yb;this.A-=this.B.ne},function(){var a=this.H&255,b=this.H>>8,c,d=od(this);9<(a&15)||d?(a=a-6&15,b=b-1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.Z=a);this.fa=65536;c&&(this.Z|=this.fa);d?yd(this):td(this);this.A-=this.B.Me},function(){this.oa=this.H;this.H=(this.la=this.H+1)&65535;this.Z=this.H|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.J;this.J=(this.la=this.J+1)&65535;this.Z=this.J|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-= +2},function(){this.oa=this.K;this.K=(this.la=this.K+1)&65535;this.Z=this.K|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.C;this.C=(this.la=this.C+1)&65535;this.Z=this.C|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.Y;this.Y=(this.la=this.Y+1)&65535;this.Z=this.Y|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.I;this.I=(this.la=this.I+1)&65535;this.Z=this.I|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa= +this.G;this.G=(this.la=this.G+1)&65535;this.Z=this.G|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.F;this.F=(this.la=this.F+1)&65535;this.Z=this.F|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.H;this.H=(this.la=this.H-1)&65535;this.Z=this.H|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.J;this.J=(this.la=this.J-1)&65535;this.Z=this.J|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.K;this.K= +(this.la=this.K-1)&65535;this.Z=this.K|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.C;this.C=(this.la=this.C-1)&65535;this.Z=this.C|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.Y;this.Y=(this.la=this.Y-1)&65535;this.Z=this.Y|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.I;this.I=(this.la=this.I-1)&65535;this.Z=this.I|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.G;this.G=(this.la=this.G- +1)&65535;this.Z=this.G|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){this.oa=this.F;this.F=(this.la=this.F-1)&65535;this.Z=this.F|(this.Z&this.fa?1:0)<<16;this.fa=65536;this.A-=2},function(){L(this,this.H);this.A-=this.B.pc},function(){L(this,this.J);this.A-=this.B.pc},function(){L(this,this.K);this.A-=this.B.pc},function(){L(this,this.C);this.A-=this.B.pc},function(){L(this,this.Y-2&65535);this.A-=this.B.pc},function(){L(this,this.I);this.A-=this.B.pc},function(){L(this,this.G);this.A-= +this.B.pc},function(){L(this,this.F);this.A-=this.B.pc},function(){this.H=this.La();this.A-=this.B.hc},function(){this.J=this.La();this.A-=this.B.hc},function(){this.K=this.La();this.A-=this.B.hc},function(){this.C=this.La();this.A-=this.B.hc},function(){this.Y=this.La();this.A-=this.B.hc},function(){this.I=this.La();this.A-=this.B.hc},function(){this.G=this.La();this.A-=this.B.hc},function(){this.F=this.La();this.A-=this.B.hc},Ch,Dh,Eh,Fh,Gh,Hh,Ih,Jh,Kh,Lh,Mh,Nh,Oh,Ph,Qh,Rh,Ch,Dh,Eh,Fh,Gh,Hh,Ih, +Jh,Kh,Lh,Mh,Nh,Oh,Ph,Qh,Rh,Sh,function(){zh[this.ga()].call(this,ve,this.L);this.A-=0>this.Ma?1:this.B.Ch},Sh,function(){zh[this.ga()].call(this,ve,this.M);this.A-=0>this.Ma?1:this.B.Ch},function(){vh[this.ga()].call(this,He)},function(){wh[this.ga()].call(this,Ie)},function(){xh[this.Rg=this.ga()].call(this,We)},function(){O[this.Rg=this.ga()].call(this,Xe)},function(){this.$|=1;vh[this.ga()].call(this,Fe)},function(){this.$|=1;wh[this.ga()].call(this,Fe)},function(){xh[this.ga()].call(this,Fe)}, +function(){O[this.ga()].call(this,Fe)},function(){var a=this.ga();switch((a&56)>>3){case 0:this.Eb=this.Za.sa;break;case 1:this.Eb=this.wa.sa;break;case 2:this.Eb=this.tb.sa;break;case 3:this.Eb=this.yb.sa;break;default:N.call(this);return}this.$|=1;wh[a].call(this,Ge)},function(){this.$|=1;this.D=this.N=this.Yl;O[this.ga()].call(this,Me)},function(){var a,b=this.ga(),c=(b&56)>>3;switch(c){case 0:a=this.H;break;case 2:a=this.K;break;case 3:a=this.C;break;default:if(80286<=this.Ia){sc.call(this);return}switch(c){case 1:a= +this.J;break;case 4:a=this.Y;break;case 5:a=this.I;break;case 6:a=this.G;break;case 7:a=this.F}}O[b].call(this,Fe);switch(c){case 0:kd(this,this.H);this.H=a;break;case 1:hd(this,this.J);this.J=a;break;case 2:jd(this,this.K);this.K=a;break;case 3:id(this,this.C);this.C=a;break;case 4:kd(this,this.Y);this.Y=a;break;case 5:hd(this,this.I);this.I=a;break;case 6:jd(this,this.G);this.G=a;break;case 7:id(this,this.F),this.F=a}},function(){this.$|=1;zh[this.ga()].call(this,we,this.La)},function(){this.A-= 3},function(){var a=this.H;this.H=this.J;this.J=a;this.A-=3},function(){var a=this.H;this.H=this.K;this.K=a;this.A-=3},function(){var a=this.H;this.H=this.C;this.C=a;this.A-=3},function(){var a=this.H;this.H=this.Y;this.Y=a;this.A-=3},function(){var a=this.H;this.H=this.I;this.I=a;this.A-=3},function(){var a=this.H;this.H=this.G;this.G=a;this.A-=3},function(){var a=this.H;this.H=this.F;this.F=a;this.A-=3},function(){this.H=this.H<<24>>24&65535;this.A-=2},function(){this.K=this.H&32768?65535:0;this.A-= -this.B.Jk},function(){var a=this.L(),b=this.L();L(this,this.ua.pa);L(this,this.ra);Sc(this,a,b);this.A-=this.B.Mk},function(){N.call(this)},function(){L(this,Vc(this));this.A-=this.B.pc},function(){Tc(this,this.Ja());this.A-=this.B.hc},function(){var a=this.H>>8;a&1?xd(this):sd(this);a&4?nd(this)||(this.ka^=1):nd(this)&&(this.ka^=1);a&16?yd(this):td(this);a&64?zd(this):ud(this);a&128?Ad(this):vd(this);this.A-=this.B.Bb},function(){this.H=this.H&255|(Vc(this)&213)<<8;this.A-=this.B.Bb},function(){this.H= -this.H&-256|this.U(this.D,this.L());this.A-=this.B.dj},function(){this.H=this.V(this.D,this.L());this.A-=this.B.dj},function(){var a=this.L(),b=this.H;this.Jd(this.D.fc(a,0),b);this.A-=this.B.ej},function(){var a=this.L(),b=this.H;this.Zc(this.D.fc(a,1),b);this.A-=this.B.ej},function(){var a=1,b=0,c=this.B.fj;this.ya&192&&(a=this.J,b=1,c=this.B.hj,this.ya&256||(this.A-=this.B.gj));if(a--){var d=this.za&1024?-1:1,e=this.U(this.D,this.G);this.Jd(this.Wa.fc(this.F,0),e);this.G=this.G+d&65535;this.F= -this.F+d&65535;this.A-=c;this.J-=b;a&&(ld(this,this.ya&16?-3:-2),this.$|=256)}},function(){var a=1,b=0,c=this.B.fj;this.ya&192&&(a=this.J,b=1,c=this.B.hj,this.ya&256||(this.A-=this.B.gj));if(a--){var d=this.za&1024?-2:2,e=this.V(this.D,this.G);this.Zc(this.Wa.fc(this.F,1),e);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c;this.J-=b;a&&(ld(this,this.ya&16?-3:-2),this.$|=256)}},function(){var a=1,b=0,c=this.B.Qi;this.ya&192&&(a=this.J,b=1,c=this.B.Si,this.ya&256||(this.A-=this.B.Ri));if(a--){var d= -this.za&1024?-1:1,e=this.U(this.D,this.G),f=this.O(this.Wa,this.F);Rd.call(this,e,f);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c-this.B.qb;this.J-=b;a&&pd(this)==(this.ya&64)&&(ld(this,this.ya&16?-3:-2),this.$|=256)}},function(){var a=1,b=0,c=this.B.Qi;this.ya&192&&(a=this.J,b=1,c=this.B.Si,this.ya&256||(this.A-=this.B.Ri));if(a--){var d=this.za&1024?-2:2,e=this.V(this.D,this.G),f=this.P(this.Wa,this.F);Zd.call(this,e,f);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c-this.B.qb;this.J-= -b;a&&pd(this)==(this.ya&64)&&(ld(this,this.ya&16?-3:-2),this.$|=256)}},function(){this.Z=this.ka=this.na=this.H&255&this.fa();this.ea=256;this.A-=this.B.Je},function(){this.Z=this.ka=this.na=this.H&this.L();this.ea=65536;this.A-=this.B.Je},function(){var a=1,b=0,c=this.B.qj;this.ya&192&&(a=this.J,b=1,c=this.B.sj,this.ya&256||(this.A-=this.B.rj));if(a--){var d=this.H;this.Jd(this.Wa.fc(this.F,0),d);this.F=this.F+(this.za&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(ld(this,-2),this.$|=256)}},function(){var a= -1,b=0,c=this.B.qj;this.ya&192&&(a=this.J,b=1,c=this.B.sj,this.ya&256||(this.A-=this.B.rj));if(a--){var d=this.H;this.Zc(this.Wa.fc(this.F,1),d);this.F=this.F+(this.za&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(ld(this,-2),this.$|=256)}},function(){var a=1,b=0,c=this.B.Yi;this.ya&192&&(a=this.J,b=1,c=this.B.$i,this.ya&256||(this.A-=this.B.Zi));a--&&(this.H=this.H&-256|this.U(this.D,this.G),this.G=this.G+(this.za&1024?-1:1)&65535,this.A-=c,this.J-=b,a&&(ld(this,this.ya&16?-3:-2),this.$|=256))},function(){var a= -1,b=0,c=this.B.Yi;this.ya&192&&(a=this.J,b=1,c=this.B.$i,this.ya&256||(this.A-=this.B.Zi));a--&&(this.H=this.V(this.D,this.G),this.G=this.G+(this.za&1024?-2:2)&65535,this.A-=c,this.J-=b,a&&(ld(this,this.ya&16?-3:-2),this.$|=256))},function(){var a=1,b=0,c=this.B.kj;this.ya&192&&(a=this.J,b=1,c=this.B.mj,this.ya&256||(this.A-=this.B.lj));a--&&(Rd.call(this,this.H&255,this.O(this.Wa,this.F)),this.F=this.F+(this.za&1024?-1:1)&65535,this.A-=c-this.B.qb,this.J-=b,a&&pd(this)==(this.ya&64)&&(ld(this,-2), -this.$|=256))},function(){var a=1,b=0,c=this.B.kj;this.ya&192&&(a=this.J,b=1,c=this.B.mj,this.ya&256||(this.A-=this.B.lj));a--&&(Zd.call(this,this.H,this.P(this.Wa,this.F)),this.F=this.F+(this.za&1024?-2:2)&65535,this.A-=c-this.B.qb,this.J-=b,a&&pd(this)==(this.ya&64)&&(ld(this,-2),this.$|=256))},function(){this.H=this.H&-256|this.fa();this.A-=this.B.Bb},function(){this.J=this.J&-256|this.fa();this.A-=this.B.Bb},function(){this.K=this.K&-256|this.fa();this.A-=this.B.Bb},function(){this.C=this.C&-256| -this.fa();this.A-=this.B.Bb},function(){this.H=this.H&255|this.fa()<<8;this.A-=this.B.Bb},function(){this.J=this.J&255|this.fa()<<8;this.A-=this.B.Bb},function(){this.K=this.K&255|this.fa()<<8;this.A-=this.B.Bb},function(){this.C=this.C&255|this.fa()<<8;this.A-=this.B.Bb},function(){this.H=this.L();this.A-=this.B.Bb},function(){this.J=this.L();this.A-=this.B.Bb},function(){this.K=this.L();this.A-=this.B.Bb},function(){this.C=this.L();this.A-=this.B.Bb},function(){this.Y=this.L();this.A-=this.B.Bb}, -function(){this.I=this.L();this.A-=this.B.Bb},function(){this.G=this.L();this.A-=this.B.Bb},function(){this.F=this.L();this.A-=this.B.Bb},Th,Uh,Th,Uh,function(){O[this.fa()].call(this,Ne)},function(){O[this.fa()].call(this,Me)},function(){this.$|=1;yh[this.fa()].call(this,we,this.fa)},function(){this.$|=1;zh[this.fa()].call(this,we,this.L)},Vh,Wh,Vh,Wh,function(){Fd.call(this,3,null,this.B.cl)},function(){var a=this.fa();Xc(this,a)?Fd.call(this,a,null,0):this.A--},function(){rd(this)?Fd.call(this, -4,null,this.B.dl):this.A-=this.B.el},function(){Sc(this,this.Ja(),this.Ja());Tc(this,this.Ja());this.Vg&&bd(this,this.Da);this.A-=this.B.al},function(){yh[this.fa()].call(this,xe,oe)},function(){zh[this.fa()].call(this,ye,oe)},function(){yh[this.fa()].call(this,xe,pe)},function(){zh[this.fa()].call(this,ye,pe)},function(){var a=this.fa(),b=this.H&255;this.H=(b/a&255)<<8|b%a;this.ea=256;this.Z=this.ka=b;this.A-=this.B.Gk},function(){var a=this.fa();this.Z=this.ka=this.H=(this.H>>8)*a+this.H&255;this.ea= -256;this.A-=this.B.Fk},function(){this.H=this.H&-256|(md(this)?255:0);this.A-=2},function(){this.H=this.H&-256|this.U(this.D,this.C+(this.H&255)&65535);this.A-=this.B.El},Xh,Xh,Xh,Xh,Xh,Xh,Xh,Xh,function(){var a=this.M();(this.J=this.J-1&65535)&&this.Z&this.ea-1?(K(this,this.ra+a),this.A-=this.B.ll):this.A-=this.B.aj},function(){var a=this.M();!(this.J=this.J-1&65535)||this.Z&this.ea-1?this.A-=this.B.cj:(K(this,this.ra+a),this.A-=this.B.bj)},function(){var a=this.M();(this.J=this.J-1&65535)?(K(this, -this.ra+a),this.A-=this.B.kl):this.A-=this.B.aj},function(){var a=this.M();this.J?this.A-=this.B.cj:(K(this,this.ra+a),this.A-=this.B.bj)},function(){var a=this.fa();this.H=this.H&-256|vb(this.oa,a,this.Da-2);this.A-=this.B.Vi},function(){var a=this.fa();this.H=vb(this.oa,a,this.Da-1)|vb(this.oa,a+1&65535,this.Da-2)<<8;this.A-=this.B.Vi},function(){var a=this.fa();zb(this.oa,a,this.H&255,this.Da-2);this.A-=this.B.jj},function(){var a=this.fa();zb(this.oa,a,this.H&255,this.Da-2);zb(this.oa,a+1&65535, -this.H>>8,this.Da-2);this.A-=this.B.jj},function(){var a=this.L();L(this,this.ra);K(this,this.ra+a);this.A-=this.B.Kk},function(){var a=this.L();K(this,this.ra+a);this.A-=this.B.Wi},function(){Sc(this,this.L(),this.L());this.A-=this.B.gl},function(){var a=this.M();K(this,this.ra+a);this.A-=this.B.Wi},function(){this.H=this.H&-256|vb(this.oa,this.K,this.Da-1);this.A-=this.B.Ui},function(){this.H=vb(this.oa,this.K,this.Da-1)|vb(this.oa,this.K+1&65535,this.Da-1)<<8;this.A-=this.B.Ui},function(){zb(this.oa, -this.K,this.H&255,this.Da-1);this.A-=this.B.ij},function(){zb(this.oa,this.K,this.H&255,this.Da-1);zb(this.oa,this.K+1&65535,this.H>>8,this.Da-1);this.A-=this.B.ij},Yh,Yh,function(){this.$|=132;this.A-=this.B.ke},function(){this.$|=68;this.A-=this.B.ke},function(){this.kb|=4;this.A-=2;this.ba&&Cd(this.ba)?(ld(this,-1),this.zb()):this.za&512||(this.ba&&ld(this,-1),this.zb())},function(){md(this)?sd(this):xd(this);this.A-=2},function(){this.Cb=-1;yh[this.fa()].call(this,Ae,re);0<=this.Cb&&(this.H=this.Cb)}, -function(){this.Cb=-1;zh[this.fa()].call(this,Be,re);0<=this.Cb&&(this.H=this.Cb,this.K=this.ug)},function(){this.Z&=~this.ea;this.A-=2},function(){this.Z|=this.ea;this.A-=2},function(){this.za&=-513;this.A-=this.B.Ik},function(){this.za|=512;this.$|=4;this.A-=2},function(){this.za&=-1025;this.A-=2},function(){this.za|=1024;this.A-=2},function(){yh[this.fa()].call(this,Kc,re)},function(){zh[this.fa()].call(this,Nc,re)}]; -function P(a){y.call(this,"ChipSet",a,P);this.Ga=a.model;this.Ga=void 0!==this.Ga?parseInt(this.Ga,10):Zh;this.Yb=0;var b=a.sw1;if(b)this.Yb=$h(b,ai|bi.cm);else{this.Qd=[360,360];(b=a.floppies)&&void 0!==b.length&&(this.Qd=b);if(b=this.Qd.length)this.Yb|=ci.Ph,b--,this.Yb|=(b&3)<=di&&(this.Mf=this.Nf=2);this.jh=a.scaleTimers||!1; -this.Zo=a.rtcDate;this.qk=!1;a.sound&&window&&"webkitAudioContext"in window&&(this.fi=new webkitAudioContext);this.reset(!0);this.Qa()}A(y,P);var Zh=5150,di=5170,ei={none:0,tv:1,color:2,mono:3,ega:0},ci={Ph:1,ONE:0,Cp:64,Ap:128,kp:192,zf:192,Af:6},ai=12,bi={Bp:16,fp:32,cm:48,zf:48,Af:4};k=P.prototype; -k.wb=function(a,b,c,d){switch(c){case "sw1":return this.va[c]=d,fi(this,c,d,this.Yb,{0:this.Ga==Zh?"Bootable Floppy Drive":"Loop on POST",1:this.Ga==Zh?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Ga==Zh)return this.va[c]=d,fi(this,c,d,this.qe,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.va[c]=d,!0}return!1}; -k.oc=function(a,b,c,d){this.oa=b;this.T=c;this.ba=d;this.Fa=a;this.cb=db(a,"Keyboard");this.Fl=Math.round(c.Ed/1193181);sb(b,this,gi);yb(b,this,hi);this.Gab;b++){var c=13>=b?qi(e,b):e.qa[b];a&&(a+="\n");a+="CMOS[0x"+t(b)+"]: 0x"+t(c)}e.ba.message(a)})}Wc(c,26,this,this.An)};k.Xb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.Wb=function(a){return a&&this.save?this.save():!0}; -k.reset=function(a){var b;this.$c=this.Yb;this.Te=this.qe;ri(this);this.$a=Array(this.Mf);for(b=0;b=di){this.hb=16;this.rd=0;this.Wd=16;this.Lg=0;this.we=160;512<=vi(this)&&(this.we|=16);3==wi(this)&&(this.we|=64);this.Zh=3;this.Jf=0;this.Hg=Array(7);this.xe=0;a&&(this.qa=Array(64)); -xi(this,this.Zo);for(a=21;24>=a;a++)this.qa[a]=0;for(a=14;46>a;a++)void 0===this.qa[a]&&(this.qa[a]=0);this.qa[20]=this.$c&(bi.zf|2|ci.Ph|ci.zf);this.qa[16]=yi(this,0)<<4|yi(this,1);zi(this)}}; -function xi(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.da("CMOS date invalid ("+b+"), using "+c)):b&&a.da("CMOS date: "+c);a.qa[0]=c.getSeconds();a.qa[1]=0;a.qa[2]=c.getMinutes();a.qa[3]=0;a.qa[4]=c.getHours();a.qa[5]=0;a.qa[6]=c.getDay()+1;a.qa[7]=c.getDate();a.qa[8]=c.getMonth()+1;c=c.getFullYear();a.qa[9]=c%100;c/=100;a.qa[50]=c%10|c/10<<4;a.cg=-1;a.qa[10]=38;a.qa[11]=2;a.qa[12]=0;a.qa[13]=128} -function qi(a,b){var c=a.qa[b];if(10>b){var d=!1;4!=b&&5!=b||a.qa[11]&2||(c=12>c?c?c:12:(c-=12)?c+128:140,d=!0);a.qa[11]&4||(d&&128c;c++)b+=a.qa[c];a.qa[47]=b&255;a.qa[46]=b>>8} -k.save=function(){var a=new I(this);a.set(0,[this.Yb,this.qe,this.$c,this.Te]);for(var b=[],c=0;c=di&&(a.set(5,[this.hb,this.rd,this.Wd,this.Lg,this.we,this.Zh]),a.set(6,[this.Jf,this.Hg,this.xe,this.qa,this.cg]));return a.data()}; -k.restore=function(a){var b,c;b=a[0];this.Yb=b[0];this.qe=b[1];this.$c=b[2];this.Te=b[3];b=a[1];this.$a=Array(this.Mf);for(c=0;c>2)+1)*a.Dn+32*((b?a.qe:a.Te)&15)}function Ci(a,b){var c=b?a.Yb:a.$c;return a.Ga!=Zh||c&ci.Ph?((c&ci.zf)>>ci.Af)+1:0} -function yi(a,b){if(b>bi.Af} +this.B.Nk},function(){var a=this.L(),b=this.L();L(this,this.wa.sa);L(this,this.ua);Sc(this,a,b);this.A-=this.B.Qk},function(){N.call(this)},function(){L(this,Vc(this));this.A-=this.B.pc},function(){Tc(this,this.La());this.A-=this.B.hc},function(){var a=this.H>>8;a&1?xd(this):sd(this);a&4?nd(this)||(this.la^=1):nd(this)&&(this.la^=1);a&16?yd(this):td(this);a&64?zd(this):ud(this);a&128?Ad(this):vd(this);this.A-=this.B.Db},function(){this.H=this.H&255|(Vc(this)&213)<<8;this.A-=this.B.Db},function(){this.H= +this.H&-256|this.U(this.D,this.L());this.A-=this.B.gj},function(){this.H=this.V(this.D,this.L());this.A-=this.B.gj},function(){var a=this.L(),b=this.H;this.Md(this.D.fc(a,0),b);this.A-=this.B.hj},function(){var a=this.L(),b=this.H;this.bd(this.D.fc(a,1),b);this.A-=this.B.hj},function(){var a=1,b=0,c=this.B.ij;this.Aa&192&&(a=this.J,b=1,c=this.B.kj,this.Aa&256||(this.A-=this.B.jj));if(a--){var d=this.Ba&1024?-1:1,e=this.U(this.D,this.G);this.Md(this.Za.fc(this.F,0),e);this.G=this.G+d&65535;this.F= +this.F+d&65535;this.A-=c;this.J-=b;a&&(ld(this,this.Aa&16?-3:-2),this.$|=256)}},function(){var a=1,b=0,c=this.B.ij;this.Aa&192&&(a=this.J,b=1,c=this.B.kj,this.Aa&256||(this.A-=this.B.jj));if(a--){var d=this.Ba&1024?-2:2,e=this.V(this.D,this.G);this.bd(this.Za.fc(this.F,1),e);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c;this.J-=b;a&&(ld(this,this.Aa&16?-3:-2),this.$|=256)}},function(){var a=1,b=0,c=this.B.Ti;this.Aa&192&&(a=this.J,b=1,c=this.B.Vi,this.Aa&256||(this.A-=this.B.Ui));if(a--){var d= +this.Ba&1024?-1:1,e=this.U(this.D,this.G),f=this.O(this.Za,this.F);Sd.call(this,e,f);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c-this.B.sb;this.J-=b;a&&pd(this)==(this.Aa&64)&&(ld(this,this.Aa&16?-3:-2),this.$|=256)}},function(){var a=1,b=0,c=this.B.Ti;this.Aa&192&&(a=this.J,b=1,c=this.B.Vi,this.Aa&256||(this.A-=this.B.Ui));if(a--){var d=this.Ba&1024?-2:2,e=this.V(this.D,this.G),f=this.P(this.Za,this.F);$d.call(this,e,f);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c-this.B.sb;this.J-= +b;a&&pd(this)==(this.Aa&64)&&(ld(this,this.Aa&16?-3:-2),this.$|=256)}},function(){this.Z=this.la=this.oa=this.H&255&this.ga();this.fa=256;this.A-=this.B.Me},function(){this.Z=this.la=this.oa=this.H&this.L();this.fa=65536;this.A-=this.B.Me},function(){var a=1,b=0,c=this.B.tj;this.Aa&192&&(a=this.J,b=1,c=this.B.vj,this.Aa&256||(this.A-=this.B.uj));if(a--){var d=this.H;this.Md(this.Za.fc(this.F,0),d);this.F=this.F+(this.Ba&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(ld(this,-2),this.$|=256)}},function(){var a= +1,b=0,c=this.B.tj;this.Aa&192&&(a=this.J,b=1,c=this.B.vj,this.Aa&256||(this.A-=this.B.uj));if(a--){var d=this.H;this.bd(this.Za.fc(this.F,1),d);this.F=this.F+(this.Ba&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(ld(this,-2),this.$|=256)}},function(){var a=1,b=0,c=this.B.aj;this.Aa&192&&(a=this.J,b=1,c=this.B.cj,this.Aa&256||(this.A-=this.B.bj));a--&&(this.H=this.H&-256|this.U(this.D,this.G),this.G=this.G+(this.Ba&1024?-1:1)&65535,this.A-=c,this.J-=b,a&&(ld(this,this.Aa&16?-3:-2),this.$|=256))},function(){var a= +1,b=0,c=this.B.aj;this.Aa&192&&(a=this.J,b=1,c=this.B.cj,this.Aa&256||(this.A-=this.B.bj));a--&&(this.H=this.V(this.D,this.G),this.G=this.G+(this.Ba&1024?-2:2)&65535,this.A-=c,this.J-=b,a&&(ld(this,this.Aa&16?-3:-2),this.$|=256))},function(){var a=1,b=0,c=this.B.nj;this.Aa&192&&(a=this.J,b=1,c=this.B.pj,this.Aa&256||(this.A-=this.B.oj));a--&&(Sd.call(this,this.H&255,this.O(this.Za,this.F)),this.F=this.F+(this.Ba&1024?-1:1)&65535,this.A-=c-this.B.sb,this.J-=b,a&&pd(this)==(this.Aa&64)&&(ld(this,-2), +this.$|=256))},function(){var a=1,b=0,c=this.B.nj;this.Aa&192&&(a=this.J,b=1,c=this.B.pj,this.Aa&256||(this.A-=this.B.oj));a--&&($d.call(this,this.H,this.P(this.Za,this.F)),this.F=this.F+(this.Ba&1024?-2:2)&65535,this.A-=c-this.B.sb,this.J-=b,a&&pd(this)==(this.Aa&64)&&(ld(this,-2),this.$|=256))},function(){this.H=this.H&-256|this.ga();this.A-=this.B.Db},function(){this.J=this.J&-256|this.ga();this.A-=this.B.Db},function(){this.K=this.K&-256|this.ga();this.A-=this.B.Db},function(){this.C=this.C&-256| +this.ga();this.A-=this.B.Db},function(){this.H=this.H&255|this.ga()<<8;this.A-=this.B.Db},function(){this.J=this.J&255|this.ga()<<8;this.A-=this.B.Db},function(){this.K=this.K&255|this.ga()<<8;this.A-=this.B.Db},function(){this.C=this.C&255|this.ga()<<8;this.A-=this.B.Db},function(){this.H=this.L();this.A-=this.B.Db},function(){this.J=this.L();this.A-=this.B.Db},function(){this.K=this.L();this.A-=this.B.Db},function(){this.C=this.L();this.A-=this.B.Db},function(){this.Y=this.L();this.A-=this.B.Db}, +function(){this.I=this.L();this.A-=this.B.Db},function(){this.G=this.L();this.A-=this.B.Db},function(){this.F=this.L();this.A-=this.B.Db},Th,Uh,Th,Uh,function(){O[this.ga()].call(this,Oe)},function(){O[this.ga()].call(this,Ne)},function(){this.$|=1;yh[this.ga()].call(this,xe,this.ga)},function(){this.$|=1;zh[this.ga()].call(this,xe,this.L)},Vh,Wh,Vh,Wh,function(){Fd.call(this,3,null,this.B.gl)},function(){var a=this.ga();Xc(this,a)?Fd.call(this,a,null,0):this.A--},function(){rd(this)?Fd.call(this, +4,null,this.B.hl):this.A-=this.B.il},function(){Sc(this,this.La(),this.La());Tc(this,this.La());this.Yg&&bd(this,this.Fa);this.A-=this.B.el},function(){yh[this.ga()].call(this,ye,pe)},function(){zh[this.ga()].call(this,ze,pe)},function(){yh[this.ga()].call(this,ye,qe)},function(){zh[this.ga()].call(this,ze,qe)},function(){var a=this.ga(),b=this.H&255;this.H=(b/a&255)<<8|b%a;this.fa=256;this.Z=this.la=b;this.A-=this.B.Kk},function(){var a=this.ga();this.Z=this.la=this.H=(this.H>>8)*a+this.H&255;this.fa= +256;this.A-=this.B.Jk},function(){this.H=this.H&-256|(md(this)?255:0);this.A-=2},function(){this.H=this.H&-256|this.U(this.D,this.C+(this.H&255)&65535);this.A-=this.B.Il},Xh,Xh,Xh,Xh,Xh,Xh,Xh,Xh,function(){var a=this.M();(this.J=this.J-1&65535)&&this.Z&this.fa-1?(K(this,this.ua+a),this.A-=this.B.pl):this.A-=this.B.dj},function(){var a=this.M();!(this.J=this.J-1&65535)||this.Z&this.fa-1?this.A-=this.B.fj:(K(this,this.ua+a),this.A-=this.B.ej)},function(){var a=this.M();(this.J=this.J-1&65535)?(K(this, +this.ua+a),this.A-=this.B.ol):this.A-=this.B.dj},function(){var a=this.M();this.J?this.A-=this.B.fj:(K(this,this.ua+a),this.A-=this.B.ej)},function(){var a=this.ga();this.H=this.H&-256|vb(this.qa,a,this.Fa-2);this.A-=this.B.Yi},function(){var a=this.ga();this.H=vb(this.qa,a,this.Fa-1)|vb(this.qa,a+1&65535,this.Fa-2)<<8;this.A-=this.B.Yi},function(){var a=this.ga();zb(this.qa,a,this.H&255,this.Fa-2);this.A-=this.B.mj},function(){var a=this.ga();zb(this.qa,a,this.H&255,this.Fa-2);zb(this.qa,a+1&65535, +this.H>>8,this.Fa-2);this.A-=this.B.mj},function(){var a=this.L();L(this,this.ua);K(this,this.ua+a);this.A-=this.B.Ok},function(){var a=this.L();K(this,this.ua+a);this.A-=this.B.Zi},function(){Sc(this,this.L(),this.L());this.A-=this.B.kl},function(){var a=this.M();K(this,this.ua+a);this.A-=this.B.Zi},function(){this.H=this.H&-256|vb(this.qa,this.K,this.Fa-1);this.A-=this.B.Xi},function(){this.H=vb(this.qa,this.K,this.Fa-1)|vb(this.qa,this.K+1&65535,this.Fa-1)<<8;this.A-=this.B.Xi},function(){zb(this.qa, +this.K,this.H&255,this.Fa-1);this.A-=this.B.lj},function(){zb(this.qa,this.K,this.H&255,this.Fa-1);zb(this.qa,this.K+1&65535,this.H>>8,this.Fa-1);this.A-=this.B.lj},Yh,Yh,function(){this.$|=132;this.A-=this.B.ne},function(){this.$|=68;this.A-=this.B.ne},function(){this.mb|=4;this.A-=2;this.ca&&Cd(this.ca)?(ld(this,-1),this.wb()):this.Ba&512||(this.ca&&ld(this,-1),this.wb())},function(){md(this)?sd(this):xd(this);this.A-=2},function(){this.Eb=-1;yh[this.ga()].call(this,Be,se);0<=this.Eb&&(this.H=this.Eb)}, +function(){this.Eb=-1;zh[this.ga()].call(this,Ce,se);0<=this.Eb&&(this.H=this.Eb,this.K=this.xg)},function(){this.Z&=~this.fa;this.A-=2},function(){this.Z|=this.fa;this.A-=2},function(){this.Ba&=-513;this.A-=this.B.Mk},function(){this.Ba|=512;this.$|=4;this.A-=2},function(){this.Ba&=-1025;this.A-=2},function(){this.Ba|=1024;this.A-=2},function(){yh[this.ga()].call(this,Kc,se)},function(){zh[this.ga()].call(this,Nc,se)}]; +function P(a){y.call(this,"ChipSet",a,P);this.Ia=a.model;this.Ia=void 0!==this.Ia?parseInt(this.Ia,10):Zh;this.Yb=0;var b=a.sw1;if(b)this.Yb=$h(b,ai|bi.gm);else{this.Td=[360,360];(b=a.floppies)&&void 0!==b.length&&(this.Td=b);if(b=this.Td.length)this.Yb|=ci.Sh,b--,this.Yb|=(b&3)<=di&&(this.Qf=this.Rf=2);this.mh=a.scaleTimers||!1; +this.bp=a.rtcDate;this.uk=!1;a.sound&&window&&"webkitAudioContext"in window&&(this.ii=new webkitAudioContext);this.reset(!0);this.Ta()}A(y,P);var Zh=5150,di=5170,ei={none:0,tv:1,color:2,mono:3,ega:0},ci={Sh:1,ONE:0,Fp:64,Dp:128,np:192,Cf:192,Df:6},ai=12,bi={Ep:16,ip:32,gm:48,Cf:48,Df:4};k=P.prototype; +k.zb=function(a,b,c,d){switch(c){case "sw1":return this.xa[c]=d,fi(this,c,d,this.Yb,{0:this.Ia==Zh?"Bootable Floppy Drive":"Loop on POST",1:this.Ia==Zh?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Ia==Zh)return this.xa[c]=d,fi(this,c,d,this.te,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.xa[c]=d,!0}return!1}; +k.oc=function(a,b,c,d){this.qa=b;this.T=c;this.ca=d;this.Ha=a;this.fb=db(a,"Keyboard");this.Jl=Math.round(c.ba.Hd/1193181);sb(b,this,gi);yb(b,this,hi);this.Iab;b++){var c=13>=b?qi(e,b):e.ra[b];a&&(a+="\n");a+="CMOS[0x"+t(b)+"]: 0x"+t(c)}e.ca.message(a)})}Wc(c,26,this,this.En)};k.Xb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.Wb=function(a){return a&&this.save?this.save():!0}; +k.reset=function(a){var b;this.cd=this.Yb;this.We=this.te;ri(this);this.cb=Array(this.Qf);for(b=0;b=di){this.jb=16;this.ud=0;this.Zd=16;this.Og=0;this.ze=160;512<=vi(this)&&(this.ze|=16);3==wi(this)&&(this.ze|=64);this.bi=3;this.Nf=0;this.Kg=Array(7);this.Ae=0;a&&(this.ra=Array(64)); +xi(this,this.bp);for(a=21;24>=a;a++)this.ra[a]=0;for(a=14;46>a;a++)void 0===this.ra[a]&&(this.ra[a]=0);this.ra[20]=this.cd&(bi.Cf|2|ci.Sh|ci.Cf);this.ra[16]=yi(this,0)<<4|yi(this,1);zi(this)}}; +function xi(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.ea("CMOS date invalid ("+b+"), using "+c)):b&&a.ea("CMOS date: "+c);a.ra[0]=c.getSeconds();a.ra[1]=0;a.ra[2]=c.getMinutes();a.ra[3]=0;a.ra[4]=c.getHours();a.ra[5]=0;a.ra[6]=c.getDay()+1;a.ra[7]=c.getDate();a.ra[8]=c.getMonth()+1;c=c.getFullYear();a.ra[9]=c%100;c/=100;a.ra[50]=c%10|c/10<<4;a.fg=-1;a.ra[10]=38;a.ra[11]=2;a.ra[12]=0;a.ra[13]=128} +function qi(a,b){var c=a.ra[b];if(10>b){var d=!1;4!=b&&5!=b||a.ra[11]&2||(c=12>c?c?c:12:(c-=12)?c+128:140,d=!0);a.ra[11]&4||(d&&128c;c++)b+=a.ra[c];a.ra[47]=b&255;a.ra[46]=b>>8} +k.save=function(){var a=new I(this);a.set(0,[this.Yb,this.te,this.cd,this.We]);for(var b=[],c=0;c=di&&(a.set(5,[this.jb,this.ud,this.Zd,this.Og,this.ze,this.bi]),a.set(6,[this.Nf,this.Kg,this.Ae,this.ra,this.fg]));return a.data()}; +k.restore=function(a){var b,c;b=a[0];this.Yb=b[0];this.te=b[1];this.cd=b[2];this.We=b[3];b=a[1];this.cb=Array(this.Qf);for(c=0;c>2)+1)*a.Hn+32*((b?a.te:a.We)&15)}function Ci(a,b){var c=b?a.Yb:a.cd;return a.Ia!=Zh||c&ci.Sh?((c&ci.Cf)>>ci.Df)+1:0} +function yi(a,b){if(b>bi.Df} function fi(a,b,c,d,e){for(var f="",h=1;8>=h;h++){var g="pcjs-bitCell";h||(g+=" pcjs-bitCellLeft");f+='
'+h+"
\n"}c.innerHTML=f;b=D(c,"pcjs-bitCell");c=null;for(h=0;h>2].Db[b&3],c,d,e)} -function Li(a,b,c){b=a.$a[b>>2].Db[b&3];b.Xg&&b.yi&&b.Bh?(c&&(b.Zg=c),b.Cd||Gd(a,b,!0)):c&&c(!0)}function Gd(a,b,c){c&&(b.count=b.Zb[1]<<8|b.Zb[0],b.Yl=b.mode&12,b.rk=b.fd=!1);for(var d=!1;0<=b.count&&(c=b.Rg<<16|b.Nb[1]<<8|b.Nb[0],4==b.Yl?(d=!0,function(c){b.yi.call(b.Xg,b.Bh,-1,function(f,h){0>f&&(b.rk||(b.rk=!0),f=255);b.Cd||ob(a.oa,c,f);(d=h)&&setTimeout(function(){Si(b)||Gd(a,b)},0)})}(c)):8==b.Yl?(c=mb(a.oa,c),0>b.yi.call(b.Xg,b.Bh,c)&&(b.fd=!0)):b.fd=!0),!d&&!Si(b););} -function Si(a){if(!a.fd&&0<=--a.count&&(a.mode&32?(a.Nb[0]--,0>a.Nb[0]&&(a.Nb[0]=255,a.Nb[1]--,0>a.Nb[1]&&(a.Nb[1]=255))):(a.Nb[0]++,255>3,e=a.sb[d];e.Gb|=1<<(b&7);e.hg=c||0;1==d&&(a.sb[0].Gb|=4);Vi(a,d)} -function Zi(a,b){var c=b>>3,d=a.sb[c],e=1<<(b&7);d.Gb&e&&(d.Gb&=~e,1!=c||d.Gb||(a.sb[0].Gb&=-5),Vi(a,c))}function Ed(a,b){void 0===b&&(b=0);var c=-1,d=a.sb[b];if(d.hg)c=-2,d.hg--;else for(var e=d.Gb&((d.Ec|d.sd)^255),f=d.ye+1;;){var f=f&7,h=1<>6;if(3!=a){c=b&1;var d=b&14;if(b&=48){var e=this.Eb[a];e.vg=b;e.mode=d;e.ck=c;e.Hc=[0,0];e.Zb=[0,0];e.Sf=[0,0];e.gd=!1;e.Vf=!1;e.cf=!1;aj(this,a);0==a&&Zi(this,0);2==a&&255==this.sb[0].sd&&77==this.yc&&(a=this.Eb[0],a.Vc[0]=a.Hc[0],a.Vc[1]=a.Hc[1],a.ne=F(this.T,this.jh))}else oi(this,a),b=this.Eb[a],b.Sf[0]=b.Zb[0],b.Sf[1]=b.Zb[1],b.Vf=!0,aj(this,a)}}; -function cj(a,b){var c=a.Eb[b],d=c.Hc[1]<<8|c.Hc[0];d||(d=1==c.dd?256:65536);return d}function aj(a,b){var c=a.Eb[b];c.ce=32==c.vg?1:0;c.dd=48==c.vg?2:1} -function oi(a,b,c){var d=a.Eb[b];if(d.cf&&(2!=b||a.yc&1)){var e=F(a.T,a.jh),f=(e-d.ne)/a.Fl|0;0>f&&(d.ne=e,f=0);var h=cj(a,b),g=a.Eb[b],l=g.Vc[1]<<8|g.Vc[0];l||(l=1==g.dd?256:65536);g=l-f;0==d.mode?(0>=g&&(g=0),g||(d.gd=!0,d.cf=!1,b||Yi(a,0))):4==d.mode?(d.gd=1!=g,0>=g&&(g=h+g,0>=g&&(g=h),d.Vc[0]=g&255,d.Vc[1]=g>>8,d.ne=e,!b&&d.gd&&Yi(a,0))):6==d.mode&&(g-=f,0>=g&&(d.gd=!d.gd,g=h+g,0>=g&&(g=h),d.Vc[0]=g&255,d.Vc[1]=g>>8,d.ne=e,!b&&d.gd&&Yi(a,0)));d.Zb[0]=g&255;d.Zb[1]=g>>8;c&&(a.ne=0)}return d} -function Yb(a,b){for(var c=0;c=di){var c=0,d=a.T.Ed,e=F(a.T,a.jh);if(0<=a.cg&&(c=e-a.cg,Math.floor(c/d)&&60<=++a.qa[0]&&(a.qa[0]=0,60<=++a.qa[2]&&(a.qa[2]=0,24<=++a.qa[4])))){a.qa[4]=0;a.qa[6]=a.qa[6]%7+1;var f=a.qa[9],h=qa[a.qa[8]-1];28==h&&0===f%4&&(f%100||0===f%400)&&h++;++a.qa[7]>h&&(a.qa[7]=1,12<++a.qa[8]&&(a.qa[8]=1,a.qa[9]=(a.qa[9]+1)%100))}a.cg=e-c%d}} -k.mn=function(a,b){var c=this.Qg;this.Lf&16&&(this.yc&128?c=this.$c:this.cb&&(c=dj(this.cb)));this.ca(a,null,b,"PPI_A",ej,c);return c};k.Eo=function(a,b,c){this.ca(a,b,c,"PPI_A",ej);this.Qg=b};k.nn=function(a,b){var c=this.yc;this.ca(a,null,b,"PPI_B",ej,c);return c};k.Fo=function(a,b,c){this.ca(a,b,c,"PPI_B",ej);fj(this,b);this.cb&&gj(this.cb,b&128?!1:!0,b&64?!0:!1)};function fj(a,b){var c=!!(b&2),d=!!(a.yc&2);a.yc=b;c!=d&&Xb(a,c)} -k.on=function(a,b){var c=0,c=this.Ga==Zh?this.yc&4?c|this.Te&15:c|this.Te>>4&1:this.yc&8?c|this.$c>>4:c|this.$c&15;this.yc&1&&oi(this,2).gd&&(c=this.yc&2?c|32:c|16);this.ca(a,null,b,"PPI_C",ej|Cb,c);return c};k.Go=function(a,b,c){this.ca(a,b,c,"PPI_C",ej);this.ai=b};k.pn=function(a,b){var c=this.Lf;this.ca(a,null,b,"PPI_CTRL",ej,c);return c};k.Ho=function(a,b,c){this.ca(a,b,c,"PPI_CTRL",ej);this.Lf=b}; -k.Cm=function(a,b){var c=this.Lg;this.ca(a,null,b,"8042_OUTBUFF",hj,c);this.hb&=-258;var d=this.cb&&dj(this.cb,!0);d&&ij(this,d);return c};k.Wn=function(a,b,c){this.ca(a,b,c,"8042_INBUF.DATA",hj);if(this.hb&8)switch(this.rd){case 96:jj(this,b);break;case 209:kj(this,b);break;default:if(jj(this,this.Wd&-17),this.cb){a=-1;switch(b){case 255:a=250,lj(this.cb)}ij(this,a)}}this.rd=b;this.hb&=-9};k.Dm=function(a,b){var c=this.yc&-209|(F(this.T)&64?16:0);this.ca(a,null,b,"8042_RWREG",hj|mj,c);return c}; -k.Xn=function(a,b,c){this.ca(a,b,c,"8042_RWREG",hj);fj(this,b)};k.Em=function(a,b){this.ca(a,null,b,"8042_STATUS",hj,this.hb);var c=this.hb&255;this.hb&256&&(this.hb|=1,this.hb&=-257);return c}; -k.Vn=function(a,b,c){this.ca(a,b,c,"8042_INBUFF.CMD",hj);this.rd=b;this.hb|=8;a=0;240<=this.rd&&(a=this.rd^15,this.rd=240);switch(this.rd){case 192:ij(this,this.we);break;case 173:jj(this,this.Wd|16);break;case 174:jj(this,this.Wd&-17);break;case 170:this.cb&&nj(this.cb,!0);jj(this,this.Wd|16);ij(this,85);kj(this,3);break;case 224:ij(this,this.Wd&16?0:1);break;case 240:a&1&&Rc(this.T)}};function jj(a,b){a.Wd=b;a.hb=a.hb&-5|b&4;a.cb&&gj(a.cb,!!(b&8),!(b&16))&&ij(a,dj(a.cb,!0))} -function ij(a,b){0<=b&&(a.Lg=b,a.hb&=-2,a.hb|=256)}function kj(a,b){a.Zh=b;ib(a.oa,!!(b&2));b&1||Rc(a.T)}k.Sm=function(a,b){this.ca(a,null,b,"CMOS_ADDR",pi,this.xe);return this.xe};k.mo=function(a,b,c){this.ca(a,b,c,"CMOS_ADDR",pi);this.xe=b;this.Pg=b&128?0:128};k.Tm=function(a,b){var c=this.xe&63,d=13>=c?qi(this,c):this.qa[c];this.ca(a,null,b,"CMOS_DATA["+t(c)+"]",pi,d);return d}; -k.no=function(a,b,c){var d=this.xe&63;this.ca(a,b,c,"CMOS_DATA["+t(d)+"]",pi);a=this.qa;13>=d&&10>d&&(c=!1,this.qa[11]&4||(b=10*(b>>4)+(b&15),c=!0),4==d||5==d)&&(c&&12=b?b=12==b?0:b:(b-=116,b=24==b?12:b)));a[d]=b};k.kn=function(a,b){this.ca(a,null,b,"MFG_DATA",ej,this.Jf);return this.Jf};k.Bo=function(a,b,c){this.ca(a,b,c,"MFG_DATA",ej);this.Jf=b};k.Do=function(a,b,c){this.ca(a,b,c,"NMI",ej);this.Pg=b}; -k.An=function(a){var b=this.T.H>>8;this.ba&&E(this.ba,oj)&&(Zc(this.ba,26,a),$c(this.T,a,function(a,d){return function(e){d=F(a.T)-d;var f,h=a.T.K&255,g=a.T.K>>8,l=a.T.K&255,n=a.T.K>>8;if(2==b||3==b)f=" CH(hour)="+v(g)+" CL(min)="+t(h)+" DH(sec)="+t(n);else if(4==b||5==b)f=" CX(year)="+v(a.T.J)+" DH(month)="+t(n)+" DL(day)="+t(l);ad(a.ba,26,e,d,f)}}(this,F(this.T))));return!0};function $h(a,b){if(void 0===a)return b;for(var c=0,d=1,e=0;ec||2E4>2].Fb[b&3],c,d,e)} +function Li(a,b,c){b=a.cb[b>>2].Fb[b&3];b.$g&&b.Ai&&b.Eh?(c&&(b.bh=c),b.Fd||Gd(a,b,!0)):c&&c(!0)}function Gd(a,b,c){c&&(b.count=b.Zb[1]<<8|b.Zb[0],b.bm=b.mode&12,b.vk=b.Yc=!1);for(var d=!1;0<=b.count&&(c=b.Ug<<16|b.Ob[1]<<8|b.Ob[0],4==b.bm?(d=!0,function(c){b.Ai.call(b.$g,b.Eh,-1,function(f,h){0>f&&(b.vk||(b.vk=!0),f=255);b.Fd||ob(a.qa,c,f);(d=h)&&setTimeout(function(){Si(b)||Gd(a,b)},0)})}(c)):8==b.bm?(c=mb(a.qa,c),0>b.Ai.call(b.$g,b.Eh,c)&&(b.Yc=!0)):b.Yc=!0),!d&&!Si(b););} +function Si(a){if(!a.Yc&&0<=--a.count&&(a.mode&32?(a.Ob[0]--,0>a.Ob[0]&&(a.Ob[0]=255,a.Ob[1]--,0>a.Ob[1]&&(a.Ob[1]=255))):(a.Ob[0]++,255>3,e=a.ub[d];e.Hb|=1<<(b&7);e.kg=c||0;1==d&&(a.ub[0].Hb|=4);Vi(a,d)} +function Zi(a,b){var c=b>>3,d=a.ub[c],e=1<<(b&7);d.Hb&e&&(d.Hb&=~e,1!=c||d.Hb||(a.ub[0].Hb&=-5),Vi(a,c))}function Ed(a,b){void 0===b&&(b=0);var c=-1,d=a.ub[b];if(d.kg)c=-2,d.kg--;else for(var e=d.Hb&((d.Fc|d.vd)^255),f=d.Be+1;;){var f=f&7,h=1<>6;if(3!=a){c=b&1;var d=b&14;if(b&=48){var e=this.Gb[a];e.yg=b;e.mode=d;e.ek=c;e.Ic=[0,0];e.Zb=[0,0];e.Wf=[0,0];e.kd=!1;e.Zf=!1;e.ff=!1;aj(this,a);0==a&&Zi(this,0);2==a&&255==this.ub[0].vd&&77==this.yc&&(a=this.Gb[0],a.Xc[0]=a.Ic[0],a.Xc[1]=a.Ic[1],a.qe=F(this.T,this.mh))}else oi(this,a),b=this.Gb[a],b.Wf[0]=b.Zb[0],b.Wf[1]=b.Zb[1],b.Zf=!0,aj(this,a)}}; +function cj(a,b){var c=a.Gb[b],d=c.Ic[1]<<8|c.Ic[0];d||(d=1==c.hd?256:65536);return d}function aj(a,b){var c=a.Gb[b];c.fe=32==c.yg?1:0;c.hd=48==c.yg?2:1} +function oi(a,b,c){var d=a.Gb[b];if(d.ff&&(2!=b||a.yc&1)){var e=F(a.T,a.mh),f=(e-d.qe)/a.Jl|0;0>f&&(d.qe=e,f=0);var h=cj(a,b),g=a.Gb[b],l=g.Xc[1]<<8|g.Xc[0];l||(l=1==g.hd?256:65536);g=l-f;0==d.mode?(0>=g&&(g=0),g||(d.kd=!0,d.ff=!1,b||Yi(a,0))):4==d.mode?(d.kd=1!=g,0>=g&&(g=h+g,0>=g&&(g=h),d.Xc[0]=g&255,d.Xc[1]=g>>8,d.qe=e,!b&&d.kd&&Yi(a,0))):6==d.mode&&(g-=f,0>=g&&(d.kd=!d.kd,g=h+g,0>=g&&(g=h),d.Xc[0]=g&255,d.Xc[1]=g>>8,d.qe=e,!b&&d.kd&&Yi(a,0)));d.Zb[0]=g&255;d.Zb[1]=g>>8;c&&(a.qe=0)}return d} +function Yb(a,b){for(var c=0;c=di){var c=0,d=a.T.ba.Hd,e=F(a.T,a.mh);if(0<=a.fg&&(c=e-a.fg,Math.floor(c/d)&&60<=++a.ra[0]&&(a.ra[0]=0,60<=++a.ra[2]&&(a.ra[2]=0,24<=++a.ra[4])))){a.ra[4]=0;a.ra[6]=a.ra[6]%7+1;var f=a.ra[9],h=qa[a.ra[8]-1];28==h&&0===f%4&&(f%100||0===f%400)&&h++;++a.ra[7]>h&&(a.ra[7]=1,12<++a.ra[8]&&(a.ra[8]=1,a.ra[9]=(a.ra[9]+1)%100))}a.fg=e-c%d}} +k.qn=function(a,b){var c=this.Tg;this.Pf&16&&(this.yc&128?c=this.cd:this.fb&&(c=dj(this.fb)));this.da(a,null,b,"PPI_A",ej,c);return c};k.Ho=function(a,b,c){this.da(a,b,c,"PPI_A",ej);this.Tg=b};k.rn=function(a,b){var c=this.yc;this.da(a,null,b,"PPI_B",ej,c);return c};k.Io=function(a,b,c){this.da(a,b,c,"PPI_B",ej);fj(this,b);this.fb&&gj(this.fb,b&128?!1:!0,b&64?!0:!1)};function fj(a,b){var c=!!(b&2),d=!!(a.yc&2);a.yc=b;c!=d&&Xb(a,c)} +k.sn=function(a,b){var c=0,c=this.Ia==Zh?this.yc&4?c|this.We&15:c|this.We>>4&1:this.yc&8?c|this.cd>>4:c|this.cd&15;this.yc&1&&oi(this,2).kd&&(c=this.yc&2?c|32:c|16);this.da(a,null,b,"PPI_C",ej|Cb,c);return c};k.Jo=function(a,b,c){this.da(a,b,c,"PPI_C",ej);this.di=b};k.tn=function(a,b){var c=this.Pf;this.da(a,null,b,"PPI_CTRL",ej,c);return c};k.Ko=function(a,b,c){this.da(a,b,c,"PPI_CTRL",ej);this.Pf=b}; +k.Gm=function(a,b){var c=this.Og;this.da(a,null,b,"8042_OUTBUFF",hj,c);this.jb&=-258;var d=this.fb&&dj(this.fb,!0);d&&ij(this,d);return c};k.Zn=function(a,b,c){this.da(a,b,c,"8042_INBUF.DATA",hj);if(this.jb&8)switch(this.ud){case 96:jj(this,b);break;case 209:kj(this,b);break;default:if(jj(this,this.Zd&-17),this.fb){a=-1;switch(b){case 255:a=250,lj(this.fb)}ij(this,a)}}this.ud=b;this.jb&=-9};k.Hm=function(a,b){var c=this.yc&-209|(F(this.T)&64?16:0);this.da(a,null,b,"8042_RWREG",hj|mj,c);return c}; +k.$n=function(a,b,c){this.da(a,b,c,"8042_RWREG",hj);fj(this,b)};k.Im=function(a,b){this.da(a,null,b,"8042_STATUS",hj,this.jb);var c=this.jb&255;this.jb&256&&(this.jb|=1,this.jb&=-257);return c}; +k.Yn=function(a,b,c){this.da(a,b,c,"8042_INBUFF.CMD",hj);this.ud=b;this.jb|=8;a=0;240<=this.ud&&(a=this.ud^15,this.ud=240);switch(this.ud){case 192:ij(this,this.ze);break;case 173:jj(this,this.Zd|16);break;case 174:jj(this,this.Zd&-17);break;case 170:this.fb&&nj(this.fb,!0);jj(this,this.Zd|16);ij(this,85);kj(this,3);break;case 224:ij(this,this.Zd&16?0:1);break;case 240:a&1&&Rc(this.T)}};function jj(a,b){a.Zd=b;a.jb=a.jb&-5|b&4;a.fb&&gj(a.fb,!!(b&8),!(b&16))&&ij(a,dj(a.fb,!0))} +function ij(a,b){0<=b&&(a.Og=b,a.jb&=-2,a.jb|=256)}function kj(a,b){a.bi=b;ib(a.qa,!!(b&2));b&1||Rc(a.T)}k.Wm=function(a,b){this.da(a,null,b,"CMOS_ADDR",pi,this.Ae);return this.Ae};k.po=function(a,b,c){this.da(a,b,c,"CMOS_ADDR",pi);this.Ae=b;this.Sg=b&128?0:128};k.Xm=function(a,b){var c=this.Ae&63,d=13>=c?qi(this,c):this.ra[c];this.da(a,null,b,"CMOS_DATA["+t(c)+"]",pi,d);return d}; +k.qo=function(a,b,c){var d=this.Ae&63;this.da(a,b,c,"CMOS_DATA["+t(d)+"]",pi);a=this.ra;13>=d&&10>d&&(c=!1,this.ra[11]&4||(b=10*(b>>4)+(b&15),c=!0),4==d||5==d)&&(c&&12=b?b=12==b?0:b:(b-=116,b=24==b?12:b)));a[d]=b};k.on=function(a,b){this.da(a,null,b,"MFG_DATA",ej,this.Nf);return this.Nf};k.Eo=function(a,b,c){this.da(a,b,c,"MFG_DATA",ej);this.Nf=b};k.Go=function(a,b,c){this.da(a,b,c,"NMI",ej);this.Sg=b}; +k.En=function(a){var b=this.T.H>>8;this.ca&&E(this.ca,oj)&&(Zc(this.ca,26,a),$c(this.T,a,function(a,d){return function(e){d=F(a.T)-d;var f,h=a.T.K&255,g=a.T.K>>8,l=a.T.K&255,n=a.T.K>>8;if(2==b||3==b)f=" CH(hour)="+v(g)+" CL(min)="+t(h)+" DH(sec)="+t(n);else if(4==b||5==b)f=" CX(year)="+v(a.T.J)+" DH(month)="+t(n)+" DL(day)="+t(l);ad(a.ca,26,e,d,f)}}(this,F(this.T))));return!0};function $h(a,b){if(void 0===a)return b;for(var c=0,d=1,e=0;ec||2E4>8&255,this.xb[c++]=f[b]>>16&255,this.xb[c++]=f[b]>>24&255;else this.xb=d;this.Uh=d.symbols;if(!this.xb.length){x("Empty ROM: "+a);return}if(1==this.xb.length){x(this.xb[0]);return}}catch(h){this.Ia("ROM data error: "+ -h.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.xb=Array(a.length),d=0;d>8&255,this.Ab[c++]=f[b]>>16&255,this.Ab[c++]=f[b]>>24&255;else this.Ab=d;this.Xh=d.symbols;if(!this.Ab.length){x("Empty ROM: "+a);return}if(1==this.Ab.length){x(this.Ab[0]);return}}catch(h){this.Ka("ROM data error: "+ +h.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.Ab=Array(a.length),d=0;dthis.Jg?21:23,c=a.qa[b]|a.qa[b+1]<<8,c=c+(this.Ld>>10);a.qa[b]=c&255;a.qa[b+1]=c>>8;zi(a)}}else x("No RAM allocated")}; -Fa(function(){for(var a=D(window.document,"pcjs","ram"),b=0;bthis.Mg?21:23,c=a.ra[b]|a.ra[b+1]<<8,c=c+(this.Od>>10);a.ra[b]=c&255;a.ra[b+1]=c>>8;zi(a)}}else x("No RAM allocated")}; +Fa(function(){for(var a=D(window.document,"pcjs","ram"),b=0;ba.wc.length){if(!(!d&&!a.Th[c]||d&&a.Th[c])){a.Th[c]=d;a.Oa("scan code "+t(b)+" buffered");a.wc.push(b);1==a.wc.length&&a.ma&&Yi(a.ma,1);for(var e in zj)if(zj[e]==c){(c=a.va["key-"+e])&&void 0!==d&&(c.style.color=d?"#ffffff":"#000000",c.style.backgroundColor=d?"#000000":"#ffffff");break}}}else 20==a.wc.length&&a.wc.push(255),a.Oa("scan code buffer overflow")}function Ej(a,b){var c=b?a.In:a.Hn;a.T&&a.T.hd&&(c/=a.T.hd);return c} -function Fj(a,b){!a.Ne||void 0!==b&&b==a.Ne||(clearTimeout(a.nd[a.Ne]),Gj(a,a.Ne,!1))} -function Bj(a,b,c){var d,e=!c,f=b.keyCode;c&&(a.Jl=f);240==f+224?(a.Ha&=-2,c&&(a.Ha|=1),f+=224,e=!1):241==f+224?(a.Ha&=-5,c&&(a.Ha|=4),f+=224,e=!1):242==f+224?(a.Ha&=-9,c&&(a.Ha|=8),f+=224,e=!1):244==f+224?(a.Ha&=-17,c&&(a.Ha|=16),f+=224,d=Cj(a,f)):91==f?(a.Ha&=-33,c&&(a.Ha|=32),e=!1,d=!0):9==f||27==f||8==f?(8==f&&4==(a.Ha&12)&&(f=254),d=c?!Cj(a,f):!1):void 0!==S[f+224]?f+=224:b.altKey||b.ctrlKey?65<=f&&90>=f&&(f+=32):d=!0;e&&(a.Ha&=-33,a.ok||f!=a.Jl||Fj(a));void 0===d&&(d=!Gj(a,f,c));return d} -function Cj(a,b,c){var d=!1;Fj(a,b);Gj(a,b,!0)&&(c?Gj(a,b,!1):(c=!1,a.nd[b]&&(clearTimeout(a.nd[b]),c=!0),c=Ej(a,c),a.nd[a.Ne=b]=setTimeout(function(a){return function(){Gj(a,b,!1)}}(a),c)),d=!0);return d} -function Gj(a,b,c){var d=!1;c||(a.nd[b]=null,a.Ne==b&&(a.Ne=0));var e=S[b];void 0===e&&1<=b&&26>=b&&(e=S[b+64]&255|61696);if(void 0!==e){14==e&&12==(a.Ha&12)&&(e=83);b=[];for(b.push(e&255|(c?0:128));e>>=8;){var d=0,f=e&255;240==f?a.Ha&17||(d=42):224==f?a.Ha&18||(d=54):241==f?a.Ha&4||(d=29):242==f&&(a.Ha&8||(d=56));d&&(c?b.unshift(d):b.push(d|128))}for(c=0;ca.wc.length){if(!(!d&&!a.Wh[c]||d&&a.Wh[c])){a.Wh[c]=d;a.Ra("scan code "+t(b)+" buffered");a.wc.push(b);1==a.wc.length&&a.na&&Yi(a.na,1);for(var e in zj)if(zj[e]==c){(c=a.xa["key-"+e])&&void 0!==d&&(c.style.color=d?"#ffffff":"#000000",c.style.backgroundColor=d?"#000000":"#ffffff");break}}}else 20==a.wc.length&&a.wc.push(255),a.Ra("scan code buffer overflow")}function Ej(a,b){var c=b?a.Ln:a.Kn;a.T&&a.T.ba.ld&&(c/=a.T.ba.ld);return c} +function Fj(a,b){!a.Qe||void 0!==b&&b==a.Qe||(clearTimeout(a.qd[a.Qe]),Gj(a,a.Qe,!1))} +function Bj(a,b,c){var d,e=!c,f=b.keyCode;c&&(a.Nl=f);240==f+224?(a.Ja&=-2,c&&(a.Ja|=1),f+=224,e=!1):241==f+224?(a.Ja&=-5,c&&(a.Ja|=4),f+=224,e=!1):242==f+224?(a.Ja&=-9,c&&(a.Ja|=8),f+=224,e=!1):244==f+224?(a.Ja&=-17,c&&(a.Ja|=16),f+=224,d=Cj(a,f)):91==f?(a.Ja&=-33,c&&(a.Ja|=32),e=!1,d=!0):9==f||27==f||8==f?(8==f&&4==(a.Ja&12)&&(f=254),d=c?!Cj(a,f):!1):void 0!==S[f+224]?f+=224:b.altKey||b.ctrlKey?65<=f&&90>=f&&(f+=32):d=!0;e&&(a.Ja&=-33,a.sk||f!=a.Nl||Fj(a));void 0===d&&(d=!Gj(a,f,c));return d} +function Cj(a,b,c){var d=!1;Fj(a,b);Gj(a,b,!0)&&(c?Gj(a,b,!1):(c=!1,a.qd[b]&&(clearTimeout(a.qd[b]),c=!0),c=Ej(a,c),a.qd[a.Qe=b]=setTimeout(function(a){return function(){Gj(a,b,!1)}}(a),c)),d=!0);return d} +function Gj(a,b,c){var d=!1;c||(a.qd[b]=null,a.Qe==b&&(a.Qe=0));var e=S[b];void 0===e&&1<=b&&26>=b&&(e=S[b+64]&255|61696);if(void 0!==e){14==e&&12==(a.Ja&12)&&(e=83);b=[];for(b.push(e&255|(c?0:128));e>>=8;){var d=0,f=e&255;240==f?a.Ja&17||(d=42):224==f?a.Ja&18||(d=54):241==f?a.Ja&4||(d=29):242==f&&(a.Ja&8||(d=56));d&&(c?b.unshift(d):b.push(d|128))}for(c=0;cc.length)c=[!1,0,null,null,0,Array(Vj)];this.ba=a.ba;this.type=e[0];this.port=e[1];this.ge=b;this.Ra=e[2];this.Mb=e[3];this.Tc=d||e[4];65536<=this.Tc&&720896<=this.Ra&&(this.Mb=Math.min(this.Tc>>2,32768));this.lc=c[0];this.zc=c[1];this.Ze=c[2];this.tf=c[3];this.nc=c[4]&255;this.nh=c[4]>>8&255;this.cc=c[5];this.Fi=Vj;this.Kg=Wj;if(5==b){this.Fi=Xj;this.Kg=Yj;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5), -0,0,0,Array(9),0,[this.Ra,this.Mb,this.Tc],Array(this.Tc>>2),771,0,4294967295,0,4294967295,0,4294967295,0,0,0]);this.ed=b[0];this.yd=b[1];this.Od=b[2];this.Wh=Zj;this.Oh=b[3];this.Zf=b[4];this.lh=b[5];this.Ad=b[6];this.Cf=b[7];this.Yh=ak;this.zi=b[8];this.Ai=b[9];this.zd=b[10];this.te=b[11];this.Xh=bk;this.ub=b[12];d=b[13];"number"==typeof d&&(d=[this.Ra,this.Mb,d]);this.Ra=d[0];this.Mb=d[1];d=this.Tc>>2;if((this.ad=b[14])&&this.ad.lengthc.length)c=[!1,0,null,null,0,Array(Vj)];this.ca=a.ca;this.type=e[0];this.port=e[1];this.je=b;this.Ua=e[2];this.Nb=e[3];this.Vc=d||e[4];65536<=this.Vc&&720896<=this.Ua&&(this.Nb=Math.min(this.Vc>>2,32768));this.lc=c[0];this.Ac=c[1];this.bf=c[2];this.wf=c[3];this.nc=c[4]&255;this.qh=c[4]>>8&255;this.cc=c[5];this.Hi=Vj;this.Ng=Wj;if(5==b){this.Hi=Xj;this.Ng=Yj;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5), +0,0,0,Array(9),0,[this.Ua,this.Nb,this.Vc],Array(this.Vc>>2),771,0,4294967295,0,4294967295,0,4294967295,0,0,0]);this.jd=b[0];this.Bd=b[1];this.Rd=b[2];this.Zh=Zj;this.Rh=b[3];this.cg=b[4];this.oh=b[5];this.Dd=b[6];this.Ff=b[7];this.ai=ak;this.Bi=b[8];this.Ci=b[9];this.Cd=b[10];this.we=b[11];this.$h=bk;this.xb=b[12];d=b[13];"number"==typeof d&&(d=[this.Ua,this.Nb,d]);this.Ua=d[0];this.Nb=d[1];d=this.Vc>>2;if((this.ed=b[14])&&this.ed.length>8&255)} -var ek=[,,function(a){a+=this.offset;return(this.ga.ub=this.sa[a])>>this.ga.yj&255},function(a){a+=this.offset;var b=a&-2;return(a&1?this.sa[b]>>8:this.sa[b])&255}];ek[16]=function(a){a+=this.offset;a=this.sa[a];for(var b=this.ga.Hi&this.ga.Ii,c=0,d=128;d;)(a&b)==b&&(c|=d),b>>>=1,d>>=1;return c};ek[512]=function(a,b){var c=a+this.offset,d;d=this.sa[c]&~this.ga.fb|(b|b<<8|b<<16|b<<24)&this.ga.fb;d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)}; -ek[1024]=function(a,b){var c=a+this.offset;b=b>>this.ga.jd|b<<8-this.ga.jd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ga.me|this.ga.Ke;d=d&this.ga.fb|this.sa[c]&~this.ga.fb;d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)}; -ek[1536]=function(a,b){var c=a+this.offset;b=b>>this.ga.jd|b<<8-this.ga.jd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ga.me|this.ga.Ke;d&=this.ga.ub;d=d&this.ga.fb|this.sa[c]&~this.ga.fb;d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)}; -ek[2560]=function(a,b){var c=a+this.offset;b=b>>this.ga.jd|b<<8-this.ga.jd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ga.me|this.ga.Ke;d|=this.ga.ub;d=d&this.ga.fb|this.sa[c]&~this.ga.fb;d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)}; -ek[3584]=function(a,b){var c=a+this.offset;b=b>>this.ga.jd|b<<8-this.ga.jd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ga.me|this.ga.Ke;d^=this.ga.ub;d=d&this.ga.fb|this.sa[c]&~this.ga.fb;d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)};ek[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.ga.fb&(d==a?16711935:4278255360);c=(b|b<<8|b<<16|b<<24)&c|this.sa[d]&~c;c=c&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[d]!=c&&(this.sa[d]=c,this.jb=!0)}; -ek[4096]=function(a){a+=this.offset;var b=this.sa[a]&~this.ga.fb|this.ga.ub&this.ga.fb;this.sa[a]!=b&&(this.sa[a]=b,this.jb=!0)};ek[8192]=function(a,b){var c=a+this.offset,d=Rj[b&15],d=d&this.ga.fb|this.sa[c]&~this.ga.fb,d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)};ek[24576]=function(a,b){var c=a+this.offset,d=Rj[b&15],d=d&this.ga.ub,d=d&this.ga.fb|this.sa[c]&~this.ga.fb,d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)}; -ek[40960]=function(a,b){var c=a+this.offset,d=Rj[b&15],d=d|this.ga.ub,d=d&this.ga.fb|this.sa[c]&~this.ga.fb,d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)};ek[57344]=function(a,b){var c=a+this.offset,d=Rj[b&15],d=d^this.ga.ub,d=d&this.ga.fb|this.sa[c]&~this.ga.fb,d=d&this.ga.lb|this.ga.ub&~this.ga.lb;this.sa[c]!=d&&(this.sa[c]=d,this.jb=!0)}; -function lk(a){var b=[];if(void 0!==a.ge){b[0]=a.lc;b[1]=a.zc;b[2]=a.Ze;b[3]=a.tf;b[4]=a.nc|a.nh<<8;b[5]=a.cc;if(5==a.ge){var c=[];c[0]=a.ed;c[1]=a.yd;c[2]=a.Od;c[3]=a.Oh;c[4]=a.Zf;c[5]=a.lh;c[6]=a.Ad;c[7]=a.Cf;c[8]=a.zi;c[9]=a.Ai;c[10]=a.zd;c[11]=a.te;c[12]=a.ub;c[13]=[a.Ra,a.Mb,a.Tc];var d;a:if(d=a.ad){var e=0,f=[];if(void 0!==d[0])for(var h=0;2>h;h++)for(var g=h;g>1;f[e++]=l;g=n}if(f.lengtha&&(a=0);for(var c="",d=0;8>d;d++){for(var n=q(b.Ra+a)+":",p=0;8>p&&a>8&255)} +var ek=[,,function(a){a+=this.offset;return(this.ha.xb=this.va[a])>>this.ha.Bj&255},function(a){a+=this.offset;var b=a&-2;return(a&1?this.va[b]>>8:this.va[b])&255}];ek[16]=function(a){a+=this.offset;a=this.va[a];for(var b=this.ha.Ji&this.ha.Ki,c=0,d=128;d;)(a&b)==b&&(c|=d),b>>>=1,d>>=1;return c};ek[512]=function(a,b){var c=a+this.offset,d;d=this.va[c]&~this.ha.hb|(b|b<<8|b<<16|b<<24)&this.ha.hb;d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)}; +ek[1024]=function(a,b){var c=a+this.offset;b=b>>this.ha.md|b<<8-this.ha.md&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ha.pe|this.ha.Ne;d=d&this.ha.hb|this.va[c]&~this.ha.hb;d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)}; +ek[1536]=function(a,b){var c=a+this.offset;b=b>>this.ha.md|b<<8-this.ha.md&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ha.pe|this.ha.Ne;d&=this.ha.xb;d=d&this.ha.hb|this.va[c]&~this.ha.hb;d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)}; +ek[2560]=function(a,b){var c=a+this.offset;b=b>>this.ha.md|b<<8-this.ha.md&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ha.pe|this.ha.Ne;d|=this.ha.xb;d=d&this.ha.hb|this.va[c]&~this.ha.hb;d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)}; +ek[3584]=function(a,b){var c=a+this.offset;b=b>>this.ha.md|b<<8-this.ha.md&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ha.pe|this.ha.Ne;d^=this.ha.xb;d=d&this.ha.hb|this.va[c]&~this.ha.hb;d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)};ek[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.ha.hb&(d==a?16711935:4278255360);c=(b|b<<8|b<<16|b<<24)&c|this.va[d]&~c;c=c&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[d]!=c&&(this.va[d]=c,this.lb=!0)}; +ek[4096]=function(a){a+=this.offset;var b=this.va[a]&~this.ha.hb|this.ha.xb&this.ha.hb;this.va[a]!=b&&(this.va[a]=b,this.lb=!0)};ek[8192]=function(a,b){var c=a+this.offset,d=Rj[b&15],d=d&this.ha.hb|this.va[c]&~this.ha.hb,d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)};ek[24576]=function(a,b){var c=a+this.offset,d=Rj[b&15],d=d&this.ha.xb,d=d&this.ha.hb|this.va[c]&~this.ha.hb,d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)}; +ek[40960]=function(a,b){var c=a+this.offset,d=Rj[b&15],d=d|this.ha.xb,d=d&this.ha.hb|this.va[c]&~this.ha.hb,d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)};ek[57344]=function(a,b){var c=a+this.offset,d=Rj[b&15],d=d^this.ha.xb,d=d&this.ha.hb|this.va[c]&~this.ha.hb,d=d&this.ha.nb|this.ha.xb&~this.ha.nb;this.va[c]!=d&&(this.va[c]=d,this.lb=!0)}; +function lk(a){var b=[];if(void 0!==a.je){b[0]=a.lc;b[1]=a.Ac;b[2]=a.bf;b[3]=a.wf;b[4]=a.nc|a.qh<<8;b[5]=a.cc;if(5==a.je){var c=[];c[0]=a.jd;c[1]=a.Bd;c[2]=a.Rd;c[3]=a.Rh;c[4]=a.cg;c[5]=a.oh;c[6]=a.Dd;c[7]=a.Ff;c[8]=a.Bi;c[9]=a.Ci;c[10]=a.Cd;c[11]=a.we;c[12]=a.xb;c[13]=[a.Ua,a.Nb,a.Vc];var d;a:if(d=a.ed){var e=0,f=[];if(void 0!==d[0])for(var h=0;2>h;h++)for(var g=h;g>1;f[e++]=l;g=n}if(f.lengtha&&(a=0);for(var c="",d=0;8>d;d++){for(var n=q(b.Ua+a)+":",p=0;8>p&&a>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8),pb(this.oa,b,c|d<<8);Lb(this,!0)}};function uk(a){a.la.Zf&1?(a.Sc=a.di,a.yb=a.la):(a.Sc=a.la,a.yb=a.Wg)}k.save=function(){var a=new I(this);a.set(0,lk(this.di));a.set(1,lk(this.Wg));a.set(2,[this.je,this.kd,this.Gd]);a.set(3,lk(this.la));return a.data()}; -k.restore=function(a){var b=a[2];this.je=b[0];this.kd=b[1];this.Gd=b[2];this.Ea=null;this.Sc=this.di=new Tj(this,1,a[0]);this.yb=this.Wg=new Tj(this,3,a[1]);this.la=new Tj(this,5,a[3],this.Tc);this.la.lc&&uk(this);vk(this);if(!xk(this))return!1;yk(this);return!0}; -k.Rn=function(a,b,c){if(c)this.Ia("Unable to load font ROM image (error "+c+")");else{try{var d=eval("("+b+")");if(!d.length){x("Empty font ROM image: "+a);return}if(1==d.length){x(d[0]);return}if(8192==d.length)wj(this,d,[0,6144]);else{this.Ia("Unrecognized font data length ("+d.length+")");return}}catch(e){this.Ia("Font ROM data error: "+e.message);return}this.Qa()}}; -function zk(a,b){if(1==b)return a.qd[0]=X[0],a.qd[1]=X[7],a.qd;if(2==b){var c=a.Ea.Ze;if(a.Ea===a.la){var d=a.la.Od[0],c=d&7;d&16&&(c|=8);18!=a.la.Od[1]&&(c|=32)}a.qd[0]=X[c&15];c=c&32?Pj:Oj;for(d=0;dHa||!U?Ha:8,ub=V.createImageData(n.jc,n.kc),J=0;256>J;J++){for(R=0;R=Ha-2,ea=tb[R>(8<=w&&176<=J&&223>=J?7:w)?s:ic;Ck(ub,Ua,Jc,jc);z&&Ck(ub,Ua+1,Jc,jc)}V.putImageData(ub,(J&15)*n.jc,(J>>4)*n.kc)}n.Ve[u]="#"+t(s[0])+t(s[1])+t(s[2]);n.Vj[u]=s;n.Qh[u]=Nb;n=!0}}a.Rd[b]=r;return n}function Dk(a){0a.Ce&&(a.Ce=0):a.Ce=-1} -function yk(a){if(a.Rb){for(var b=10;15>=b;b++)if(null==a.Ea.cc[b])return;var c=a.Ea.cc[10],b=c&31,d=a.Ea.cc[11]&31,e=a.Ea.cc[9]&31,f=!1;a.Ea===a.la&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Ek(a);else{c=a.Ea.cc[15]+((a.Ea.cc[14]&63)<<8);a.Kc!=c&&(Ek(a),a.Kc=c);d=d-b+1;if(a.Zl!=b||a.jk!=d)a.Zl=b,a.jk=d;a.de=e+1;Dk(a)}}} -function Ek(a){if(0<=a.Kc){if(void 0!==a.dc){var b=a.dc[a.Kc];if(b&131072){var b=b&-131073,c=a.Kc%a.Ab,d=Math.floor(a.Kc/a.Ab);a.Rb&&a.Rd[a.Rb]&&(a.$e&&Fk(a,c,d,b,a.$e),Fk(a,c,d,b));a.dc[a.Kc]=b}}a.Kc=-1}} -function Gk(a){var b;a=a.Ea;var c=a.te[5];if(null!=c){b=2;var d=512,e=a.te[3]&31;switch(c&3){case 0:if(e){d=1024;switch(e&24){case 8:d=1536;break;case 16:d=2560;break;case 24:d=3584}a.jd=e&7}break;case 1:d=4096;break;case 2:switch(e&24){default:d=8192;break;case 8:d=24576;break;case 16:d=40960;break;case 24:d=57344}}c&8&&(b=16);c&16&&(b|=1,d|=256);b|=d}return b}k.Re=function(a){var b=this.Ea;null!=a&&b&&a!=b.uh&&(b.Lh(a),this.oa.Lh(b.Ra,b.Mb,b.Gf))}; -function xk(a,b){var c,d=a.Gd,e=a.Ea;if(e)if(1==e.ge)d=Jj;else if(5==e.ge){var d=null,f=e.Tc>>2,h=32768f&&(d=c?13:14):c&&(d-=2));c=Gk(a)}}else e.zc&8&&(e.zc&2?(d=e.zc&16?6:5,e.zc&4||(d-=1)):(d=e.zc&1?3:1,e.zc&4&&(d-= -1)));else a.Gd=null,null==d&&(d=a.kd);if(!wk(a,d,b))return!1;a.Re(c);return!0} -function wk(a,b,c){if(null!=b&&(b!=a.Gd||c)){a.gm=0;a.Gd=b;b=a.Ea||(b==Jj?a.Sc:a.yb);if(b!=a.Ea||b.Ra!=a.Ra||b.Mb!=a.Mb){Ek(a);if(a.Ra){if(!lb(a.oa,a.Ra,a.Mb))return!1;a.Ea&&(a.Ea.lc=!1)}a.Ea=b;b.lc=!0;a.Ra=b.Ra;a.Mb=b.Mb;if(!jb(a.oa,b.Ra,b.Mb,!1,b===a.la?b:null))return!1}a.Rb=0;a.Ab=a.xh;a.qc=a.Li;a.Gi=Ij[Jj][2];b=0;var d=Ij[a.Gd];d&&(a.Ab=d[0],a.qc=d[1],a.Gi=d[2],b=d[3]||0,a.Rb=d[4],4==a.je&&a.Ea===a.la&&3==a.Rb&&(7==a.la.cc[9]?a.qc=43:a.Rb=5));a.Bk=a.Ab*a.qc;a.wh=a.Bk/a.Gi;a.ei=(a.wh<<1)+b;a.gk= -b?a.ei+b>>1:0;13<=a.Gd&&(a.wh<<=1);a.Rd.length&&(a.vd=Math.floor(a.ud/a.Ab),a.wd=Math.floor(a.ee/a.qc),a.Rb?(b=a.Rd[a.Rb],d=a.Rd[a.Rb<<1],a.sm&&80==a.Ab?d&&a.vd>=3*d.jc>>2&&(a.Rb<<=1,b=d):(d&&a.vd>=d.jc&&(a.Rb<<=1,b=d),b&&(a.vd=b.jc,a.wd=b.kc)),a.Tf=a.Uf=0,b&&(a.Tf=a.Ab*b.jc,a.Uf=a.qc*b.kc)):(a.vd=a.wd=1,a.Tf=a.Ab,a.Uf=a.qc),a.qh=a.Uc.createImageData(a.Tf,a.Uf),a.Ye=window.document.createElement("canvas"),a.Ye.width=a.Tf,a.Ye.height=a.Uf,a.$e=a.Ye.getContext("2d"),a.Qj=a.Rj=0,a.gi=a.ud,a.hi=a.ee, -b=a.ud-a.Ab*a.vd,d=a.ee-a.qc*a.wd,0>1,a.gi-=b),0>1,a.hi-=d),b||d)&&(a.Uc.fillStyle=a.Hb.style.backgroundColor,a.Uc.fillRect(0,0,a.ud,a.ee));!1!==c?Lb(a,!0):Hk(a,!0)}return!0}function Ck(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b+0]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Hk(a,b){var c;if(b){if(c=a.wh,void 0===a.dc||a.dc.length!=c)a.dc=Array(c)}else{if(void 0===a.dc)return;c=a.dc.length}for(var d=0;d>8;d=h&15;var g=a.Rd[a.Rb];g.Bf&&(d=g.Bf[d]);var l=h>>4&15;g.Bf&&(l=g.Bf[l]);e?(b*=g.jc,c*=g.kc,e.fillStyle=g.Ve[l],e.fillRect(b,c,g.jc,g.kc)):(b=b*a.vd+a.Qj,c=c*a.wd+a.Rj,a.Uc.fillStyle=g.Ve[l],a.Uc.fillRect(b,c,a.vd,a.wd));h&256&&(l=(f&15)*g.jc,f=(f>>4)*g.kc,e?e.drawImage(g.Qh[d],l,f,g.jc,g.kc,b,c,g.jc,g.kc):a.Uc.drawImage(g.Qh[d],l,f,g.jc,g.kc,b,c,a.vd,a.wd));h&512&&(f=a.Zl,h=a.jk,e?(a.de&&a.de!==g.kc&&(f=Math.floor(f*g.kc/a.de),h=Math.floor(h*g.kc/a.de)), -e.fillStyle=g.Ve[d],e.fillRect(b,c+f,g.jc,h)):(a.de&&a.de!==a.wd&&(f=Math.floor(f*a.wd/a.de),h=Math.floor(h*a.wd/a.de)),a.Uc.fillStyle=g.Ve[d],a.Uc.fillRect(b,c+f,a.vd,h)))} -function Lb(a,b){if(a.Jb){var c=!1;a.Ea&&(a.Ea===a.la?a.la.yd&32&&(c=!0):a.Ea.zc&8&&(c=!0));if(c||b){if(b)Hk(a,!0);else if(void 0===a.dc)return;var d=!1;!(b||++a.gm&15)&&0<=a.Ce&&(a.Ce++,d=!0);var e=0,f=a.Bk,c=a.Ea.Ra,h=c+a.Ea.Mb,g=(a.Ea.cc[12]<<8)+a.Ea.cc[13];a.Rb&&(g<<=1);var c=c+g,l=a.ei;c+l>h&&(l=h-c,0>l&&(l=0));h=c+l;if(g=!b){for(var g=a.oa,n=!0,p=c>>g.pb;0a.Kc)return;e=a.Kc;f=e+1}}if(a.Rb){if(a.Rd[a.Rb]){d= -0;g=a.Be=0;l=1048575;a.Ea.zc&32&&(g=32768,l&=~g,a.Ce&2||(l&=-65537));for(c+=e<<1;c>8|(r& -255)<<8;s=g;var Ha=16;p>=l))>>(Ha-=l);Ck(a.qh,p++,u,n[ic])}p>B&&(B=p);u=ha&&(ha=u+1)}e+=2;h++;if(p>=a.Ab){p=0;u+=2;if(u>a.qc)break;u==a.qc&&(u=1,e=c+a.gk)}}zU;U++)ha=B&2155905152,0>ha&&(ha+=4294967296), -ha=Sj[ha]||0,Ck(a.qh,g++,l,h[ha]),B<<=1;g>p&&(p=g);l=z&&(z=l+1)}e++;if(g>=a.Ab&&(g=0,++l>a.qc))break}n>2),c=this.la.Oh&-17|(this.Mg&1<f&&(f=0);f%b.Ji>b.Ln&&(d|=1);f%=b.Ek;f>b.On&&(d|=8);b.Pi=e-f;b===a.la?(d|=b.tf&48^48,b.ed=!1):d=(b.tf^=9)|240;b.tf=d;a.ca(b.port+6,null,c,b===a.la?"STATUS1":"STATUS",d);return d}k.Oa=function(a,b){this.ba&&(b||E(this.ba,rk))&&this.ba.message(a)};k.ca=function(a,b,c,d,e){this.ba&&this.ba.ca(this,a,b,c,d,rk,e)}; -var nk={948:T.prototype.gn,949:T.prototype.fn,952:T.prototype.hn,954:T.prototype.jn,980:T.prototype.Pm,981:T.prototype.Om,984:T.prototype.Qm,985:T.prototype.Nm,986:T.prototype.Rm},ok={948:T.prototype.zo,949:T.prototype.yo,952:T.prototype.Ao,980:T.prototype.ko,981:T.prototype.jo,984:T.prototype.lo,985:T.prototype.io},pk={960:T.prototype.xk,961:T.prototype.xk,962:T.prototype.tn,964:T.prototype.sn,965:T.prototype.rn,970:T.prototype.$m,972:T.prototype.Zm,974:T.prototype.Ym,975:T.prototype.Xm},qk={954:T.prototype.Il, -960:T.prototype.Hl,961:T.prototype.Hl,962:T.prototype.Co,964:T.prototype.Jo,965:T.prototype.Io,970:T.prototype.uo,972:T.prototype.to,974:T.prototype.so,975:T.prototype.ro,986:T.prototype.Il}; +k.reset=function(){var a=!0,b=0;this.na&&(b=wi(this.na));var c=!1;if(this.Ia)switch(this.Ia){case "ega":var c=!0,d=Lj[this.Pg];d&&(b=d[0]);b||(b=4);break;case "mda":b=3;break;default:b=2}this.me!==b&&(this.me=b,a=!0);this.Ga=null;this.Uc=this.gi=new Tj(this,1);this.Bb=this.Zg=new Tj(this,3);c?(this.ma=new Tj(this,5,null,this.Vc),uk(this)):this.ma=new Tj;vk(this);this.Jd=null;this.nd=3==b?Jj:3;this.Fe=this.Mc=-1;this.Ee=0;wk(this,this.nd);if(this.Ga.Ua&&a){a=this.Ga.Ua+this.hi;for(b=this.Ga.Ua;b>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8),pb(this.qa,b,c|d<<8);Lb(this,!0)}};function uk(a){a.ma.cg&1?(a.Uc=a.gi,a.Bb=a.ma):(a.Uc=a.ma,a.Bb=a.Zg)}k.save=function(){var a=new I(this);a.set(0,lk(this.gi));a.set(1,lk(this.Zg));a.set(2,[this.me,this.nd,this.Jd]);a.set(3,lk(this.ma));return a.data()}; +k.restore=function(a){var b=a[2];this.me=b[0];this.nd=b[1];this.Jd=b[2];this.Ga=null;this.Uc=this.gi=new Tj(this,1,a[0]);this.Bb=this.Zg=new Tj(this,3,a[1]);this.ma=new Tj(this,5,a[3],this.Vc);this.ma.lc&&uk(this);vk(this);if(!xk(this))return!1;yk(this);return!0}; +k.Un=function(a,b,c){if(c)this.Ka("Unable to load font ROM image (error "+c+")");else{try{var d=eval("("+b+")");if(!d.length){x("Empty font ROM image: "+a);return}if(1==d.length){x(d[0]);return}if(8192==d.length)wj(this,d,[0,6144]);else{this.Ka("Unrecognized font data length ("+d.length+")");return}}catch(e){this.Ka("Font ROM data error: "+e.message);return}this.Ta()}}; +function zk(a,b){if(1==b)return a.td[0]=X[0],a.td[1]=X[7],a.td;if(2==b){var c=a.Ga.bf;if(a.Ga===a.ma){var d=a.ma.Rd[0],c=d&7;d&16&&(c|=8);18!=a.ma.Rd[1]&&(c|=32)}a.td[0]=X[c&15];c=c&32?Pj:Oj;for(d=0;dHa||!U?Ha:8,ub=V.createImageData(n.jc,n.kc),J=0;256>J;J++){for(R=0;R=Ha-2,ea=tb[R>(8<=w&&176<=J&&223>=J?7:w)?s:jc;Ck(ub,Ua,Jc,kc);z&&Ck(ub,Ua+1,Jc,kc)}V.putImageData(ub,(J&15)*n.jc,(J>>4)*n.kc)}n.Ye[u]="#"+t(s[0])+t(s[1])+t(s[2]);n.Xj[u]=s;n.Th[u]=Ob;n=!0}}a.Ud[b]=r;return n}function Dk(a){0a.Fe&&(a.Fe=0):a.Fe=-1} +function yk(a){if(a.Rb){for(var b=10;15>=b;b++)if(null==a.Ga.cc[b])return;var c=a.Ga.cc[10],b=c&31,d=a.Ga.cc[11]&31,e=a.Ga.cc[9]&31,f=!1;a.Ga===a.ma&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Ek(a);else{c=a.Ga.cc[15]+((a.Ga.cc[14]&63)<<8);a.Mc!=c&&(Ek(a),a.Mc=c);d=d-b+1;if(a.cm!=b||a.lk!=d)a.cm=b,a.lk=d;a.ge=e+1;Dk(a)}}} +function Ek(a){if(0<=a.Mc){if(void 0!==a.dc){var b=a.dc[a.Mc];if(b&131072){var b=b&-131073,c=a.Mc%a.Cb,d=Math.floor(a.Mc/a.Cb);a.Rb&&a.Ud[a.Rb]&&(a.cf&&Fk(a,c,d,b,a.cf),Fk(a,c,d,b));a.dc[a.Mc]=b}}a.Mc=-1}} +function Gk(a){var b;a=a.Ga;var c=a.we[5];if(null!=c){b=2;var d=512,e=a.we[3]&31;switch(c&3){case 0:if(e){d=1024;switch(e&24){case 8:d=1536;break;case 16:d=2560;break;case 24:d=3584}a.md=e&7}break;case 1:d=4096;break;case 2:switch(e&24){default:d=8192;break;case 8:d=24576;break;case 16:d=40960;break;case 24:d=57344}}c&8&&(b=16);c&16&&(b|=1,d|=256);b|=d}return b}k.Ue=function(a){var b=this.Ga;null!=a&&b&&a!=b.xh&&(b.Oh(a),this.qa.Oh(b.Ua,b.Nb,b.Kf))}; +function xk(a,b){var c,d=a.Jd,e=a.Ga;if(e)if(1==e.je)d=Jj;else if(5==e.je){var d=null,f=e.Vc>>2,h=32768f&&(d=c?13:14):c&&(d-=2));c=Gk(a)}}else e.Ac&8&&(e.Ac&2?(d=e.Ac&16?6:5,e.Ac&4||(d-=1)):(d=e.Ac&1?3:1,e.Ac&4&&(d-= +1)));else a.Jd=null,null==d&&(d=a.nd);if(!wk(a,d,b))return!1;a.Ue(c);return!0} +function wk(a,b,c){if(null!=b&&(b!=a.Jd||c)){a.km=0;a.Jd=b;b=a.Ga||(b==Jj?a.Uc:a.Bb);if(b!=a.Ga||b.Ua!=a.Ua||b.Nb!=a.Nb){Ek(a);if(a.Ua){if(!lb(a.qa,a.Ua,a.Nb))return!1;a.Ga&&(a.Ga.lc=!1)}a.Ga=b;b.lc=!0;a.Ua=b.Ua;a.Nb=b.Nb;if(!jb(a.qa,b.Ua,b.Nb,!1,b===a.ma?b:null))return!1}a.Rb=0;a.Cb=a.Ah;a.qc=a.Oi;a.Ii=Ij[Jj][2];b=0;var d=Ij[a.Jd];d&&(a.Cb=d[0],a.qc=d[1],a.Ii=d[2],b=d[3]||0,a.Rb=d[4],4==a.me&&a.Ga===a.ma&&3==a.Rb&&(7==a.ma.cc[9]?a.qc=43:a.Rb=5));a.Fk=a.Cb*a.qc;a.zh=a.Fk/a.Ii;a.hi=(a.zh<<1)+b;a.ik= +b?a.hi+b>>1:0;13<=a.Jd&&(a.zh<<=1);a.Ud.length&&(a.yd=Math.floor(a.xd/a.Cb),a.zd=Math.floor(a.he/a.qc),a.Rb?(b=a.Ud[a.Rb],d=a.Ud[a.Rb<<1],a.wm&&80==a.Cb?d&&a.yd>=3*d.jc>>2&&(a.Rb<<=1,b=d):(d&&a.yd>=d.jc&&(a.Rb<<=1,b=d),b&&(a.yd=b.jc,a.zd=b.kc)),a.Xf=a.Yf=0,b&&(a.Xf=a.Cb*b.jc,a.Yf=a.qc*b.kc)):(a.yd=a.zd=1,a.Xf=a.Cb,a.Yf=a.qc),a.th=a.Wc.createImageData(a.Xf,a.Yf),a.af=window.document.createElement("canvas"),a.af.width=a.Xf,a.af.height=a.Yf,a.cf=a.af.getContext("2d"),a.Sj=a.Tj=0,a.ji=a.xd,a.ki=a.he, +b=a.xd-a.Cb*a.yd,d=a.he-a.qc*a.zd,0>1,a.ji-=b),0>1,a.ki-=d),b||d)&&(a.Wc.fillStyle=a.Ib.style.backgroundColor,a.Wc.fillRect(0,0,a.xd,a.he));!1!==c?Lb(a,!0):Hk(a,!0)}return!0}function Ck(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b+0]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Hk(a,b){var c;if(b){if(c=a.zh,void 0===a.dc||a.dc.length!=c)a.dc=Array(c)}else{if(void 0===a.dc)return;c=a.dc.length}for(var d=0;d>8;d=h&15;var g=a.Ud[a.Rb];g.Ef&&(d=g.Ef[d]);var l=h>>4&15;g.Ef&&(l=g.Ef[l]);e?(b*=g.jc,c*=g.kc,e.fillStyle=g.Ye[l],e.fillRect(b,c,g.jc,g.kc)):(b=b*a.yd+a.Sj,c=c*a.zd+a.Tj,a.Wc.fillStyle=g.Ye[l],a.Wc.fillRect(b,c,a.yd,a.zd));h&256&&(l=(f&15)*g.jc,f=(f>>4)*g.kc,e?e.drawImage(g.Th[d],l,f,g.jc,g.kc,b,c,g.jc,g.kc):a.Wc.drawImage(g.Th[d],l,f,g.jc,g.kc,b,c,a.yd,a.zd));h&512&&(f=a.cm,h=a.lk,e?(a.ge&&a.ge!==g.kc&&(f=Math.floor(f*g.kc/a.ge),h=Math.floor(h*g.kc/a.ge)), +e.fillStyle=g.Ye[d],e.fillRect(b,c+f,g.jc,h)):(a.ge&&a.ge!==a.zd&&(f=Math.floor(f*a.zd/a.ge),h=Math.floor(h*a.zd/a.ge)),a.Wc.fillStyle=g.Ye[d],a.Wc.fillRect(b,c+f,a.yd,h)))} +function Lb(a,b){if(a.pa.Kb){var c=!1;a.Ga&&(a.Ga===a.ma?a.ma.Bd&32&&(c=!0):a.Ga.Ac&8&&(c=!0));if(c||b){if(b)Hk(a,!0);else if(void 0===a.dc)return;var d=!1;!(b||++a.km&15)&&0<=a.Fe&&(a.Fe++,d=!0);var e=0,f=a.Fk,c=a.Ga.Ua,h=c+a.Ga.Nb,g=(a.Ga.cc[12]<<8)+a.Ga.cc[13];a.Rb&&(g<<=1);var c=c+g,l=a.hi;c+l>h&&(l=h-c,0>l&&(l=0));h=c+l;if(g=!b){for(var g=a.qa,n=!0,p=c>>g.rb;0a.Mc)return;e=a.Mc;f= +e+1}}if(a.Rb){if(a.Ud[a.Rb]){d=0;g=a.Ee=0;l=1048575;a.Ga.Ac&32&&(g=32768,l&=~g,a.Fe&2||(l&=-65537));for(c+=e<<1;c>8|(r&255)<<8;s=g;var Ha=16;p>=l))>>(Ha-=l);Ck(a.th,p++,u,n[jc])}p>B&&(B=p);u=ha&&(ha=u+1)}e+=2;h++;if(p>=a.Cb){p=0;u+=2;if(u>a.qc)break;u==a.qc&&(u=1,e=c+a.ik)}}zU;U++)ha= +B&2155905152,0>ha&&(ha+=4294967296),ha=Sj[ha]||0,Ck(a.th,g++,l,h[ha]),B<<=1;g>p&&(p=g);l=z&&(z=l+1)}e++;if(g>=a.Cb&&(g=0,++l>a.qc))break}n>2),c=this.ma.Rh&-17|(this.Pg&1<f&&(f=0);f%b.Li>b.On&&(d|=1);f%=b.Ik;f>b.Rn&&(d|=8);b.Si=e-f;b===a.ma?(d|=b.wf&48^48,b.jd=!1):d=(b.wf^=9)|240;b.wf=d;a.da(b.port+6,null,c,b===a.ma?"STATUS1":"STATUS",d);return d}k.Ra=function(a,b){this.ca&&(b||E(this.ca,rk))&&this.ca.message(a)};k.da=function(a,b,c,d,e){this.ca&&this.ca.da(this,a,b,c,d,rk,e)}; +var nk={948:T.prototype.ln,949:T.prototype.kn,952:T.prototype.mn,954:T.prototype.nn,980:T.prototype.Tm,981:T.prototype.Sm,984:T.prototype.Um,985:T.prototype.Rm,986:T.prototype.Vm},ok={948:T.prototype.Co,949:T.prototype.Bo,952:T.prototype.Do,980:T.prototype.no,981:T.prototype.mo,984:T.prototype.oo,985:T.prototype.lo},pk={960:T.prototype.Bk,961:T.prototype.Bk,962:T.prototype.xn,964:T.prototype.wn,965:T.prototype.vn,970:T.prototype.dn,972:T.prototype.cn,974:T.prototype.bn,975:T.prototype.an},qk={954:T.prototype.Ml, +960:T.prototype.Ll,961:T.prototype.Ll,962:T.prototype.Fo,964:T.prototype.Mo,965:T.prototype.Lo,970:T.prototype.xo,972:T.prototype.wo,974:T.prototype.vo,975:T.prototype.uo,986:T.prototype.Ml}; Fa(function(){for(var a=D(window.document,"pcjs","video"),b=0;bMissing <canvas> support; try a new web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor; e.style.height=c.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight));c.appendChild(e);var f=e.getContext("2d"),d=new T(d,e,f);Ya(d,c)}}); -function Nk(a){this.uk=a.adapter;switch(this.uk){case 1:this.Fj=1016;this.kg=4;break;case 2:this.Fj=760;this.kg=3;break;default:x("Unrecognized serial adapter #"+this.uk);return}this.be=null;y.call(this,"SerialPort",a,Nk);var b=a.binding,c;a=Ok;b&&(void 0===c&&(c="Panel"),(c=Xa(c,this.id))&&(b=c.va[b])&&this.wb(null,null,a,b))}A(y,Nk);var Ok="buffer";k=Nk.prototype;k.Yj=function(a,b){return a==this.oh?(this.yk=b,this):null}; -k.wb=function(a,b,c,d){var e=this;switch(c){case Ok:return this.va[c]=this.be=d,d.onkeydown=function(a){a=a||window.event;var b=a.charCode||a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),Pk(e,[b]))},d.onkeypress=function(a){a=a||window.event;Pk(e,[a.which||a.keyCode])},!0}return!1};k.oc=function(a,b,c,d){this.oa=b;this.T=c;this.ba=d;this.ma=db(a,"ChipSet");sb(b,this,Qk,this.Fj);yb(b,this,Rk,this.Fj);this.Qa()}; -k.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Wb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.he()};k.save=function(){var a=new I(this),b=0,c=[];c[b++]=this.bi;c[b++]=this.bk;c[b++]=this.Ue;c[b++]=this.Ng;c[b++]=this.Yd;c[b++]=this.Rc;c[b++]=this.bd;c[b++]=this.Fc;c[b++]=this.$j;c[b]=this.Ef;a.set(0,c);return a.data()};k.restore=function(a){return this.he(a[0])}; -k.he=function(a){var b=0;void 0===a&&(a=[0,0,384,0,1,0,0,96,48,[]]);this.bi=a[b++];this.bk=a[b++];this.Ue=a[b++];this.Ng=a[b++];this.Yd=a[b++];this.Rc=a[b++];this.bd=a[b++];this.Fc=a[b++];this.$j=a[b++];this.Ef=a[b];return!0};function Pk(a,b){a.Ef=a.Ef.concat(b);Sk(a)}function Sk(a){0>8:this.Ng;this.ca(a,null,b,this.Rc&128?"DLM":"IER",c);return c};k.bn=function(a,b){var c=this.Yd;this.ca(a,null,b,"IIR",c);return c};k.cn=function(a,b){var c=this.Rc;this.ca(a,null,b,"LCR",c);return c};k.en=function(a,b){var c=this.bd;this.ca(a,null,b,"MCR",c);return c}; -k.dn=function(a,b){var c=this.Fc;this.ca(a,null,b,"LSR",c);return c};k.ln=function(a,b){var c=this.$j;this.ca(a,null,b,"MSR",c);return c};k.Ko=function(a,b,c){this.ca(a,b,c,this.Rc&128?"DLL":"THR");this.Rc&128?this.Ue=this.Ue&-256|b:(this.bk=b,this.Fc&=-97,this.be?(13!=b&&(8==b?this.be.value=this.be.value.slice(0,-1):(this.be.value+=String.fromCharCode(b),this.be.scrollTop=this.be.scrollHeight)),a=!0):a=!1,a&&(this.Fc|=96))}; -k.vo=function(a,b,c){this.ca(a,b,c,this.Rc&128?"DLM":"IER");this.Rc&128?this.Ue=this.Ue&255|b<<8:this.Ng=b};k.wo=function(a,b,c){this.ca(a,b,c,"LCR");this.Rc=b}; -k.xo=function(a,b,c){var d=this.bd;this.ca(a,b,c,"MCR");this.bd=b;this.yk&&(d^b)&3&&(a=this.yk,b=this.bd,(c=3==(b&3))?a.lc||(d=!1,a.bd&2||(a.reset(),a.Oa("serial mouse reset"),d=!0),a.bd&1||(a.Oa("serial mouse ID requested"),d=!0),d&&(Pk(a.Pf,[77]),a.Oa("serial mouse ID sent")),Tk(a,a.Hb),a.lc=c):a.lc&&(a.Oa("serial mouse inactive"),Uk(a.Hb),a.lc=c),a.bd=b)};k.Oa=function(a){this.ba&&E(this.ba,Vk)&&this.ba.message(a)};k.ca=function(a,b,c,d,e){this.ba&&this.ba.ca(this,a,b,c,d,Vk,e)}; -var Qk={0:Nk.prototype.qn,1:Nk.prototype.an,2:Nk.prototype.bn,3:Nk.prototype.cn,4:Nk.prototype.en,5:Nk.prototype.dn,6:Nk.prototype.ln},Rk={0:Nk.prototype.Ko,1:Nk.prototype.vo,3:Nk.prototype.wo,4:Nk.prototype.xo};Fa(function(){for(var a=D(window.document,"pcjs","serial"),b=0;ba.Bg||0>a.Cg)a.Bg=b.clientX,a.Cg=b.clientY;a.wf=b.clientX-a.Bg;a.xf=b.clientY-a.Cg;(a.wf||a.xf)&&Xk(a,null,b.clientX,b.clientY);a.Bg=b.clientX;a.Cg=b.clientY}},!1),b.addEventListener("mousedown",function(b){Yk(a,b.button,!0)},!1),b.addEventListener("mouseup",function(b){Yk(a,b.button,!1)},!1),a.pi=!0),b.style.cursor="none")}function Uk(a){a&&(a.style.cursor="auto")} -function Yk(a,b,c){if(a.lc&&a.T&&a.T.Kb)switch(b){case 0:a.bh!=c&&(a.bh=c,Xk(a,"mouse button1 "+(c?"dn":"up")));break;case 2:a.dh!=c&&(a.dh=c,Xk(a,"mouse button2 "+(c?"dn":"up")))}}function Xk(a,b,c,d){var e=64|(a.bh?32:0)|(a.dh?16:0)|(a.xf&192)>>4|(a.wf&192)>>6,f=a.wf&63,h=a.xf&63;a.Oa((b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+t(e)+","+t(f)+","+t(h)+"]");Pk(a.Pf,[e,f,h]);a.wf=a.xf=0}k.Oa=function(a){this.ba&&E(this.ba,Zk)&&this.ba.message(a)}; -Fa(function(){for(var a=D(window.document,"pcjs","mouse"),b=0;bb.indexOf("/api/v1/dump")&&(a=ga(b),"json"==a?e=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(a="action=open&volume="+b+("&mode="+this.mode),a+="&chs="+this.Qb+":"+this.Sb+":"+this.$b+":"+this.Ib,a+="&machine="+this.ga.ff(),a+="&user="+this.ga.fe(),e=ta()+"/api/v1/disk?"+a,this.gh=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)? -(c="disk",d="&mbhd=0"):-1!==b.indexOf("/",b.length-1)&&(c="dir"),e=ta()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.df?"":d)+"&format=json")),sa(e,!0,null,this,this.mm,b))}; -k.mm=function(a,b,c,d){var e=null;this.ef=!1;var f=0>c&&this.Fa&&!this.Fa.Jb;if(this.gh)c?this.ga.Ia('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.xd=!0,e=this);else if(c)this.ga.Ia('Unable to load disk "'+this.Id+'" (error '+c+")",f);else try{if(0h&&0b.indexOf("0x")&& +function Nk(a){this.yk=a.adapter;switch(this.yk){case 1:this.Hj=1016;this.ng=4;break;case 2:this.Hj=760;this.ng=3;break;default:x("Unrecognized serial adapter #"+this.yk);return}this.ee=null;y.call(this,"SerialPort",a,Nk);var b=a.binding,c;a=Ok;b&&(void 0===c&&(c="Panel"),(c=Xa(c,this.id))&&(b=c.xa[b])&&this.zb(null,null,a,b))}A(y,Nk);var Ok="buffer";k=Nk.prototype;k.$j=function(a,b){return a==this.rh?(this.Ck=b,this):null}; +k.zb=function(a,b,c,d){var e=this;switch(c){case Ok:return this.xa[c]=this.ee=d,d.onkeydown=function(a){a=a||window.event;var b=a.charCode||a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),Pk(e,[b]))},d.onkeypress=function(a){a=a||window.event;Pk(e,[a.which||a.keyCode])},!0}return!1};k.oc=function(a,b,c,d){this.qa=b;this.T=c;this.ca=d;this.na=db(a,"ChipSet");sb(b,this,Qk,this.Hj);yb(b,this,Rk,this.Hj);this.Ta()}; +k.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Wb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.ke()};k.save=function(){var a=new I(this),b=0,c=[];c[b++]=this.ei;c[b++]=this.dk;c[b++]=this.Xe;c[b++]=this.Qg;c[b++]=this.ae;c[b++]=this.Tc;c[b++]=this.fd;c[b++]=this.Gc;c[b++]=this.bk;c[b]=this.Hf;a.set(0,c);return a.data()};k.restore=function(a){return this.ke(a[0])}; +k.ke=function(a){var b=0;void 0===a&&(a=[0,0,384,0,1,0,0,96,48,[]]);this.ei=a[b++];this.dk=a[b++];this.Xe=a[b++];this.Qg=a[b++];this.ae=a[b++];this.Tc=a[b++];this.fd=a[b++];this.Gc=a[b++];this.bk=a[b++];this.Hf=a[b];return!0};function Pk(a,b){a.Hf=a.Hf.concat(b);Sk(a)}function Sk(a){0>8:this.Qg;this.da(a,null,b,this.Tc&128?"DLM":"IER",c);return c};k.fn=function(a,b){var c=this.ae;this.da(a,null,b,"IIR",c);return c};k.gn=function(a,b){var c=this.Tc;this.da(a,null,b,"LCR",c);return c};k.jn=function(a,b){var c=this.fd;this.da(a,null,b,"MCR",c);return c}; +k.hn=function(a,b){var c=this.Gc;this.da(a,null,b,"LSR",c);return c};k.pn=function(a,b){var c=this.bk;this.da(a,null,b,"MSR",c);return c};k.No=function(a,b,c){this.da(a,b,c,this.Tc&128?"DLL":"THR");this.Tc&128?this.Xe=this.Xe&-256|b:(this.dk=b,this.Gc&=-97,this.ee?(13!=b&&(8==b?this.ee.value=this.ee.value.slice(0,-1):(this.ee.value+=String.fromCharCode(b),this.ee.scrollTop=this.ee.scrollHeight)),a=!0):a=!1,a&&(this.Gc|=96))}; +k.yo=function(a,b,c){this.da(a,b,c,this.Tc&128?"DLM":"IER");this.Tc&128?this.Xe=this.Xe&255|b<<8:this.Qg=b};k.zo=function(a,b,c){this.da(a,b,c,"LCR");this.Tc=b}; +k.Ao=function(a,b,c){var d=this.fd;this.da(a,b,c,"MCR");this.fd=b;this.Ck&&(d^b)&3&&(a=this.Ck,b=this.fd,(c=3==(b&3))?a.lc||(d=!1,a.fd&2||(a.reset(),a.Ra("serial mouse reset"),d=!0),a.fd&1||(a.Ra("serial mouse ID requested"),d=!0),d&&(Pk(a.Tf,[77]),a.Ra("serial mouse ID sent")),Tk(a,a.Ib),a.lc=c):a.lc&&(a.Ra("serial mouse inactive"),Uk(a.Ib),a.lc=c),a.fd=b)};k.Ra=function(a){this.ca&&E(this.ca,Vk)&&this.ca.message(a)};k.da=function(a,b,c,d,e){this.ca&&this.ca.da(this,a,b,c,d,Vk,e)}; +var Qk={0:Nk.prototype.un,1:Nk.prototype.en,2:Nk.prototype.fn,3:Nk.prototype.gn,4:Nk.prototype.jn,5:Nk.prototype.hn,6:Nk.prototype.pn},Rk={0:Nk.prototype.No,1:Nk.prototype.yo,3:Nk.prototype.zo,4:Nk.prototype.Ao};Fa(function(){for(var a=D(window.document,"pcjs","serial"),b=0;ba.Eg||0>a.Fg)a.Eg=b.clientX,a.Fg=b.clientY;a.zf=b.clientX-a.Eg;a.Af=b.clientY-a.Fg;(a.zf||a.Af)&&Xk(a,null,b.clientX,b.clientY);a.Eg=b.clientX;a.Fg=b.clientY}},!1),b.addEventListener("mousedown",function(b){Yk(a,b.button,!0)},!1),b.addEventListener("mouseup",function(b){Yk(a,b.button,!1)},!1),a.si=!0),b.style.cursor="none")}function Uk(a){a&&(a.style.cursor="auto")} +function Yk(a,b,c){if(a.lc&&a.T&&a.T.pa.Lb)switch(b){case 0:a.fh!=c&&(a.fh=c,Xk(a,"mouse button1 "+(c?"dn":"up")));break;case 2:a.gh!=c&&(a.gh=c,Xk(a,"mouse button2 "+(c?"dn":"up")))}}function Xk(a,b,c,d){var e=64|(a.fh?32:0)|(a.gh?16:0)|(a.Af&192)>>4|(a.zf&192)>>6,f=a.zf&63,h=a.Af&63;a.Ra((b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+t(e)+","+t(f)+","+t(h)+"]");Pk(a.Tf,[e,f,h]);a.zf=a.Af=0}k.Ra=function(a){this.ca&&E(this.ca,Zk)&&this.ca.message(a)}; +Fa(function(){for(var a=D(window.document,"pcjs","mouse"),b=0;bb.indexOf("/api/v1/dump")&&(a=ga(b),"json"==a?e=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(a="action=open&volume="+b+("&mode="+this.mode),a+="&chs="+this.Qb+":"+this.Sb+":"+this.$b+":"+this.Jb,a+="&machine="+this.ha.jf(),a+="&user="+this.ha.ie(),e=ta()+"/api/v1/disk?"+a,this.jh=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)? +(c="disk",d="&mbhd=0"):-1!==b.indexOf("/",b.length-1)&&(c="dir"),e=ta()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.gf?"":d)+"&format=json")),sa(e,!0,null,this,this.qm,b))}; +k.qm=function(a,b,c,d){var e=null;this.hf=!1;var f=0>c&&this.Ha&&!this.Ha.pa.Kb;if(this.jh)c?this.ha.Ka('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.Ad=!0,e=this);else if(c)this.ha.Ka('Unable to load disk "'+this.Ld+'" (error '+c+")",f);else try{if(0h&&0b.indexOf("0x")&& '["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(g.length)if(1==g.length)x(g[0]);else{for(b=a=0;b>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var r=l.data;if(void 0===r){var s=l.bytes;if(void 0!==s&&s.length){for(var f=n<<2,u=s.length;ub&&(b=0);2E3b&&(b=0);2E3>2,e=Array(d),f=0;f>2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=h>>16&255;c[d++]=h>>24&255}return c}function il(a,b){var c=-1;if(b>2,c=(d>((b&3)<<3)&255;return c} -k.write=function(a,b,c){if(this.ef)return!1;if(b>2;b=(b&3)<<3;for(var h=d.length;h<=f;h++)d[h]=e;a.Gc?f=a.Wc+a.Gc&&(a.Gc+=f-(a.Wc+a.Gc)+1):(a.Wc=f,a.Gc=1);d[f]=d[f]&~(255<=this.nb.length||l>=this.nb[g].length||n>=this.nb[g][l].length){c="sector "+g+":"+l+":"+n+" out of range ("+b+" changes applied)";b=-1;break}if(this.ef){c="unable to modify write-protected disk";b=-1;break}e= -h[f++];f=h[f++];h=e+f.length;if(g=this.nb[g][l][n]){for(l=g.data.length;lb&&this.ga.Ia("unable to restore disk '"+this.Id+": "+c);return b};k.Oa=function(a){this.ba&&E(this.ba,jl)&&this.ba.message(a)}; -function kl(a){y.call(this,"FDC",a,kl);this.dmaRead=this.ji;this.dmaWrite=this.ki;this.dmaFormat=this.jm;this.Me=null;if(a.autoMount&&(this.Me=a.autoMount,"string"==typeof this.Me))try{this.Me=eval("("+a.autoMount+")")}catch(b){x("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.Me=null}this.tc=[]}A(y,kl);m={};aa={}; -var ll={3:{td:3,ae:0,name:aa.vp},4:{td:2,ae:1,name:aa.tp},5:{td:9,ae:7,name:aa.Dp},6:{td:9,ae:7,name:aa.op},7:{td:2,ae:0,name:aa.qp},8:{td:1,ae:2,name:aa.up},10:{td:2,ae:7,name:aa.pp},13:{td:6,ae:7,name:aa.jp},15:{td:3,ae:0,name:aa.sp}};k=kl.prototype; -k.wb=function(a,b,c,d){switch(c){case "listDisks":return this.va[c]=d,a=window.document.createElement("option"),a.value="?",a.innerHTML="User-defined URL...",d.appendChild(a),d.onchange=function(a,b){return function(){var c=a.va.descDisk;if(c){var d=b.options[b.selectedIndex];if(d){var l={};if(d=d.getAttribute("data-value"))try{l=eval("({"+d+"})")}catch(n){x("FDC option error: "+(n.message||n))}d=l.desc;void 0===d&&(d="");l=l.href;void 0!==l&&(d=''+d+"");c.innerHTML= -d}}}}(this,d),!0;case "descDisk":case "listDrives":return this.va[c]=d,d.onchange=function(a,b){return function(){var c=parseInt(b.value,10);isNaN(c)||ml(a,c)}}(this,d),!0;case "loadDrive":return this.va[c]=d,d.onclick=function(a){return function(){var b,c=a.va.listDisks,d=a.va.listDrives;if(c&&d&&!isNaN(b=parseInt(d.value,10))&&0<=b&&ba.wa.restore(f)&&(e=!1);e&&a.wa&&void 0!==a.Xa&&(a.Pa=a.wa.seek(a.ib,a.La,a.Ta));return e};k.Mj=function(){for(var a=0,b=[],c=0;ca.Qb||e[1]>a.Sb)&&(this.Ia('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.bb)),b=null);b&&(a.wa=b,a.Ql=c,a.Pe=d,tl(this,c,d,b),this.oe|=128,this.Ia('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.bb),a.Ge),a.yh=e[0],a.ig=e[1],a.jg=e[2]);a.Ge&&(a.Ge=!1,--this.Ae||this.Qa());ml(this,a.bb)}; -function ml(a,b){if(0<=b&&b=this.Za&&(this.Aa&=-81,this.mb=this.Za=0);return c}; -k.po=function(a,b,c){this.ca(a,b,c,"DATA["+this.Za+"]");this.Za=ll[a].td){c=!1;this.mb=0;a=this.Ma();var d,e,f,h,g;b=a&31;switch(b){case 3:this.Ma(m.wp);this.Ma(m.lp);this.Ob();break;case 4:e=this.Ma(m.yf);this.bb=e&3;d=this.Ba[this.bb];this.Ob();this.ac((d.Va&4278190080)>>>24,m.zp);break;case 5:case 6:e=this.Ma(m.yf);c=e>>2&1;this.bb=e&3;d=this.Ba[this.bb];d.La=c;e=d.ib=this.Ma(m.$l);f=this.Ma(m.bm);h=d.Ta=this.Ma(m.dm); -g=this.Ma(m.Sj);d.Ya=128<>2&1;this.bb=e&3;d=this.Ba[this.bb];e=d.ib;f=d.La=c;h=d.Ta=1;g=0;d.Va=0;d.wa&&(d.Pa=d.wa.seek(d.ib,d.La,d.Ta))? -g=d.Pa.length:d.Va=1088;ul(this,d,a,c,e,f,h,g);c=!0;break;case 13:e=this.Ma(m.yf);c=e>>2&1;this.bb=e&3;d=this.Ba[this.bb];e=d.ib;f=d.La=c;h=1;g=this.Ma(m.Sj);d.Ya=128<>2&1,e=this.Ma(m.mp),d.ib+=e-d.Xd,0>d.ib&&(d.ib=0),d.ib>=d.Qb&&(d.ib=d.Qb-1),d.Xd=e,d.Va=32,0==d.ib&&(d.Va|=268435456),this.Ob(),c=!0}0>>8,m.xp);a.ac((b.Va&16711680)>>>16,m.yp);var l=0;if(e!=b.ib||f!=b.La)l=h=1;c&128&&(f^=l,d||(l=0));a.ac(e+l,m.$l);a.ac(f,m.bm);a.ac(h,m.dm);a.ac(g,m.Sj)}k.Ma=function(){var a=this.bc[this.mb];this.mb++;return a}; -k.Ob=function(){this.mb=this.Za=0};k.ac=function(a){this.bc[this.Za++]=a};k.ji=function(a,b,c){void 0===b||0>b?this.rc(a,c):c(-1,!1)};k.ki=function(a,b){return void 0!==b&&0<=b?this.Bc(a,b):-1};k.jm=function(a,b){return void 0!==b&&0<=b?this.Oj(a,b):-1};k.li=function(a){a.Va=72;a.wa&&(a.Pa=null,a.Va=0,this.ma&&(Ri(this.ma,2,this,"dmaRead",a),Li(this.ma,2)))};k.mi=function(a){a.Va=72;a.wa&&(a.wa.ef?a.Va=576:(a.Pa=null,a.Va=0,this.ma&&(Ri(this.ma,2,this,"dmaWrite",a),Li(this.ma,2))))}; -k.kk=function(a){a.Va=72;a.wa&&(a.Pa=null,a.Va=0,this.ma&&(a.De=0,a.vc=Array(4),a.If=!0,a.Of=0,Ri(this.ma,2,this,"dmaFormat",a),Li(this.ma,2),a.If=!1))};k.rc=function(a,b){var c=-1;if(!a.Va&&a.wa){do{if(a.Pa&&0<=(c=il(a.Pa,a.Xa++)))break;a.Pa=a.wa.seek(a.ib,a.La,a.Ta);if(!a.Pa){a.Va=1088;break}a.Xa=0;this.Ff(a)}while(1)}b(c,!1)}; -k.Bc=function(a,b){if(a.Va||!a.wa)return-1;do{if(a.Pa&&a.wa.write(a.Pa,a.Xa++,b))break;a.Pa=a.wa.seek(a.ib,a.La,a.Ta);if(!a.Pa){a.Va=8256;b=-1;break}a.Xa=0;this.Ff(a)}while(1);return b};k.Ff=function(a){a.Ta++;a.Ta>=a.jg+1&&(a.Ta=1,a.La++,a.La>=a.ig&&(a.La=0,a.ib++))};k.Oj=function(a,b){if(a.Va)return-1;a.vc[a.De++]=b;if(a.De==a.vc.length){a.ib=a.vc[0];a.La=a.vc[1];a.Ta=a.vc[2];a.Ya=128<this.Bc(a,a.Zj))return-1;a.Of++}a.Of>=a.Zd&&(b=-1);return b}; -k.Ei=function(a){var b=this.T.K&255;this.ba&&E(this.ba,rj|Yc)&&128>b&&(Zc(this.ba,19,a),$c(this.T,a,function(a,b){return function(e){ad(a.ba,19,e,F(a.T)-b)}}(this,F(this.T))));return!0};k.Oa=function(a,b){this.ba&&(null==b&&(b=rj),E(this.ba,b)&&this.ba.message(a))};k.ca=function(a,b,c,d,e){this.ba&&this.ba.ca(this,a,b,c,d,rj,e)};var pl={1012:kl.prototype.Wm,1013:kl.prototype.Um,1015:kl.prototype.Vm},ql={1010:kl.prototype.qo,1013:kl.prototype.po,1015:kl.prototype.oo}; -Fa(function(){for(var a=D(window.document,"pcjs","fdc"),b=0;b=e&&(this.pf|=(f.type&3)<<(1-e<<1))}return d}; -k.Kj=function(){var a=0,b=[];this.Fe?(b[a++]=this.Hd,b[a++]=this.Pl,b[a++]=this.pe,b[a++]=this.Jh,b[a++]=this.Hh,b[a++]=this.Gh,b[a++]=this.qf,b[a++]=this.Aa,b[a++]=this.Hj,b[a++]=this.Ih):(b[a++]=this.pf,b[a++]=this.Aa,b[a++]=this.bc,b[a++]=this.mb,b[a++]=this.Za,b[a++]=this.Ol,b[a++]=this.Nl,b[a++]=this.Ml,b[a++]=this.gf);b[a]=this.Mj();return b}; -k.Ci=function(a,b,c,d,e){var f=0,h=!0;void 0===d&&(d=[0,0,!1,Array(8)]);b.bb=a;b.errorCode=d[f++];b.Vl=d[f++];b.df=d[f++];b.We=d[f++];b.Xe=d[f++];b.La=d[f++];b.Sb=d[f++];b.Nd=d[f++];b.Ta=d[f++];b.Zd=d[f++];b.Ya=d[f++];b.Sg=this.Fe?0:1;b.name=c.name;void 0===b.name&&(b.name="Hard Drive");b.path=c.path;b.mode=c.mode||(b.path?"preload":"local");"demandro"!=b.mode&&"demandrw"!=b.mode||this.fe()||(b.mode="local");b.type=c.type;if(void 0===b.type||void 0===vl[this.Yf][b.type])b.type=this.zm;c=vl[this.Yf][b.type]; -b.$b=c[2]||17;b.Ib=c[3]||512;if(e&&this.ma&&(e=this.ma,c=b.type,e.qa)){var g=e.qa[18],g=a?g&240|c:g&15|c<<4;e.qa&&(e.qa[18]=g,zi(e))}void 0===b.wa&&(b.wa=null,this.Ia("Type "+b.type+' "'+b.name+'" is fixed disk '+a,!0));Al(this,b);b.Xa=d[f++];b.Pa=null;b.wa&&(a=d[f],void 0!==a&&0>b.wa.restore(a)&&(h=!1),h&&void 0!==b.Xa&&(b.Pa=b.wa.seek(b.Nd,b.La,b.Ta+b.Sg)));return h};k.Mj=function(){for(var a=0,b=[],c=0;c=this.Za&&(this.mb=this.Za=0,this.Aa&=-15);return c}; -k.Mo=function(a,b,c){this.ca(a,b,c,"DATA["+this.Za+"]");this.Za=a&&(this.Aa|=2,this.Aa&=-2,Bl(this))};k.xn=function(a,b){var c=this.Aa;this.ca(a,null,b,"STATUS",c);this.mb=this.Na.Ib){var e=this;this.rc(this.Na,function(a){0<=a?Cl(e):(e.Aa=1,e.Hd=16)},!1)}else this.Aa=80;d||this.ca(a,null,b,"DATA",c);return c}; -k.ao=function(a,b,c){this.Na&&0!=this.Na.Xa||this.ca(a,b,c,"DATA");this.Na&&this.Na.Ya>=this.Na.Ib&&(0>this.Bc(this.Na,b)?(this.Aa=1,this.Hd=16):this.Na.Xa==this.Na.Ib&&(this.Na.Ya-=this.Na.Ib,this.pe=this.pe-1&255,Cl(this),this.Na.Ya>=this.Na.Ib||(this.Aa=80)))};k.Jm=function(a,b){var c=this.Hd;this.ca(a,null,b,"ERROR",c);return c};k.ho=function(a,b,c){this.ca(a,b,c,"WPREC");this.Pl=b};k.Km=function(a,b){var c=this.pe;this.ca(a,null,b,"SECCNT",c);return c}; -k.eo=function(a,b,c){this.ca(a,b,c,"SECCNT");this.pe=b};k.Lm=function(a,b){var c=this.Jh;this.ca(a,null,b,"SECNUM",c);return c};k.fo=function(a,b,c){this.ca(a,b,c,"SECNUM");this.Jh=b};k.Gm=function(a,b){var c=this.Hh;this.ca(a,null,b,"CYLLO",c);return c};k.$n=function(a,b,c){this.ca(a,b,c,"CYLLO");this.Hh=b};k.Fm=function(a,b){var c=this.Gh;this.ca(a,null,b,"CYLHI",c);return c};k.Zn=function(a,b,c){this.ca(a,b,c,"CYLHI");this.Gh=b};k.Im=function(a,b){var c=this.qf;this.ca(a,null,b,"DRVHD",c);return c}; -k.bo=function(a,b,c){this.ca(a,b,c,"DRVHD");this.qf=b;this.Aa=this.Ba[this.qf&16?1:0]?this.Aa|64:this.Aa&-65};k.Mm=function(a,b){var c=this.Aa;this.ca(a,null,b,"STATUS",c);return c};k.Yn=function(a,b,c){this.ca(a,b,c,"COMMAND");this.Hj=b;this.ma&&Zi(this.ma,14);Dl(this)};k.co=function(a,b,c){this.ca(a,b,c,"FDR");this.Ih&4&&!(b&4)&&(this.Hd=1);this.Ih=b}; -function Dl(a){var b=!1,c=a.Hj,d=a.qf&16?1:0,e=a.qf&15,f=a.Hh|(a.Gh&3)<<8,h=a.Jh,g=a.pe||256;a.Na=null;a.Hd=0;a.Aa=80;(d=a.Ba[d])?(d.Nd=f,d.La=e,d.Ta=h,d.Ya=g*d.Ib,c=144<=c?c:c&240,d.Pa=null,d.errorCode=0,a.Na=d):c=-1;switch(c&240){case 32:a.rc(d,function(b){0<=b&&a.ma?(Cl(a),a.Aa=136):(a.Aa=1,a.Hd=16)},!1);break;case 48:a.ma?(Cl(a),a.Aa=136):(a.Aa=1,a.Hd=4);break;case 16:b=!0;break;case 64:b=!0;break;case 144:a.Hd=1;b=!0;break;case 145:d.Sb=e+1,d.$b=g,b=!0}b&&Cl(a)} -function Cl(a){!a.ma||a.Ih&2||Yi(a.ma,14)} -function Bl(a){a.mb=0;var b=a.Ma(),c=a.Ma(),d=c&32,e=d>>5,f=c&31,h=a.Ma(),g=a.Ma(),l=h<<2&768|g,n=h&63,p=a.Ma(),r=a.Ma(),s=a.Ba[e];s&&(s.Nd=l,s.La=f,s.Ta=n,s.Ya=p*s.Ib);switch(b){case 3:a.Ob(s?s.errorCode:4);a.ac(c);a.ac(h);a.ac(g);a.ac(0|d);b=-1;break;case 12:for(c=0;0<=(b=a.Ma());)s&&cb?this.rc(a,c):c(-1,!1)}; -k.ki=function(a,b){return void 0!==b&&0<=b?this.Bc(a,b):-1};k.km=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Xa=a.$b+b&&(a.Ta=b,a.La++,a.La>=a.Sb&&(a.La=0,a.Nd++))}; -k.Oj=function(a,b){if(a.errorCode)return-1;a.vc[a.De++]=b;if(a.De==a.vc.length){a.Nd=a.vc[0];a.La=a.vc[1];a.Ta=a.vc[2];a.Ya=128<this.Bc(a,a.Zj))return-1;a.Of++}a.Of>=a.Zd&&(b=-1);return b};k.zn=function(a){var b=this.T.K&255;!(this.T.H>>8)&&128>8)||(a=!this.ma)||(a=!(this.ma.sb[0].sd&64));return a?!0:!1};k.Oa=function(a,b){this.ba&&(null==b&&(b=Fl),E(this.ba,b)&&this.ba.message(a))};k.ca=function(a,b,c,d,e){this.ba&&this.ba.ca(this,a,b,c,d,Fl,e)}; -var xl={800:Y.prototype.wn,801:Y.prototype.xn,802:Y.prototype.vn},wl={496:Y.prototype.Hm,497:Y.prototype.Jm,498:Y.prototype.Km,499:Y.prototype.Lm,500:Y.prototype.Gm,501:Y.prototype.Fm,502:Y.prototype.Im,503:Y.prototype.Mm},zl={800:Y.prototype.Mo,801:Y.prototype.Po,802:Y.prototype.Oo,803:Y.prototype.No,807:Y.prototype.Cj,811:Y.prototype.Cj,815:Y.prototype.Cj},yl={496:Y.prototype.ao,497:Y.prototype.ho,498:Y.prototype.eo,499:Y.prototype.fo,500:Y.prototype.$n,501:Y.prototype.Zn,502:Y.prototype.bo,503:Y.prototype.Yn, -1014:Y.prototype.co};Fa(function(){for(var a=D(window.document,"pcjs","hdc"),b=0;b>2;b=(b&3)<<3;for(var h=d.length;h<=f;h++)d[h]=e;a.Hc?f=a.Zc+a.Hc&&(a.Hc+=f-(a.Zc+a.Hc)+1):(a.Zc=f,a.Hc=1);d[f]=d[f]&~(255<=this.pb.length||l>=this.pb[g].length||n>=this.pb[g][l].length){c="sector "+g+":"+l+":"+n+" out of range ("+b+" changes applied)";b=-1;break}if(this.hf){c="unable to modify write-protected disk";b=-1;break}e= +h[f++];f=h[f++];h=e+f.length;if(g=this.pb[g][l][n]){for(l=g.data.length;lb&&this.ha.Ka("unable to restore disk '"+this.Ld+": "+c);return b};k.Ra=function(a){this.ca&&E(this.ca,jl)&&this.ca.message(a)}; +function kl(a){y.call(this,"FDC",a,kl);this.dmaRead=this.mi;this.dmaWrite=this.ni;this.dmaFormat=this.nm;this.Pe=null;if(a.autoMount&&(this.Pe=a.autoMount,"string"==typeof this.Pe))try{this.Pe=eval("("+a.autoMount+")")}catch(b){x("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.Pe=null}this.tc=[]}A(y,kl);m={};aa={}; +var ll={3:{wd:3,de:0,name:aa.yp},4:{wd:2,de:1,name:aa.wp},5:{wd:9,de:7,name:aa.Gp},6:{wd:9,de:7,name:aa.rp},7:{wd:2,de:0,name:aa.tp},8:{wd:1,de:2,name:aa.xp},10:{wd:2,de:7,name:aa.sp},13:{wd:6,de:7,name:aa.mp},15:{wd:3,de:0,name:aa.vp}};k=kl.prototype; +k.zb=function(a,b,c,d){switch(c){case "listDisks":return this.xa[c]=d,a=window.document.createElement("option"),a.value="?",a.innerHTML="User-defined URL...",d.appendChild(a),d.onchange=function(a,b){return function(){var c=a.xa.descDisk;if(c){var d=b.options[b.selectedIndex];if(d){var l={};if(d=d.getAttribute("data-value"))try{l=eval("({"+d+"})")}catch(n){x("FDC option error: "+(n.message||n))}d=l.desc;void 0===d&&(d="");l=l.href;void 0!==l&&(d=''+d+"");c.innerHTML= +d}}}}(this,d),!0;case "descDisk":case "listDrives":return this.xa[c]=d,d.onchange=function(a,b){return function(){var c=parseInt(b.value,10);isNaN(c)||ml(a,c)}}(this,d),!0;case "loadDrive":return this.xa[c]=d,d.onclick=function(a){return function(){var b,c=a.xa.listDisks,d=a.xa.listDrives;if(c&&d&&!isNaN(b=parseInt(d.value,10))&&0<=b&&ba.ya.restore(f)&&(e=!1);e&&a.ya&&void 0!==a.$a&&(a.Sa=a.ya.seek(a.kb,a.Na,a.Wa));return e};k.Oj=function(){for(var a=0,b=[],c=0;ca.Qb||e[1]>a.Sb)&&(this.Ka('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.eb)),b=null);b&&(a.ya=b,a.Ul=c,a.Se=d,tl(this,c,d,b),this.re|=128,this.Ka('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.eb),a.Je),a.Bh=e[0],a.lg=e[1],a.mg=e[2]);a.Je&&(a.Je=!1,--this.De||this.Ta());ml(this,a.eb)}; +function ml(a,b){if(0<=b&&b=this.bb&&(this.Ca&=-81,this.ob=this.bb=0);return c}; +k.so=function(a,b,c){this.da(a,b,c,"DATA["+this.bb+"]");this.bb=ll[a].wd){c=!1;this.ob=0;a=this.Pa();var d,e,f,h,g;b=a&31;switch(b){case 3:this.Pa(m.zp);this.Pa(m.op);this.Pb();break;case 4:e=this.Pa(m.Bf);this.eb=e&3;d=this.Da[this.eb];this.Pb();this.ac((d.Ya&4278190080)>>>24,m.Cp);break;case 5:case 6:e=this.Pa(m.Bf);c=e>>2&1;this.eb=e&3;d=this.Da[this.eb];d.Na=c;e=d.kb=this.Pa(m.dm);f=this.Pa(m.fm);h=d.Wa=this.Pa(m.hm); +g=this.Pa(m.Uj);d.ab=128<>2&1;this.eb=e&3;d=this.Da[this.eb];e=d.kb;f=d.Na=c;h=d.Wa=1;g=0;d.Ya=0;d.ya&&(d.Sa=d.ya.seek(d.kb,d.Na,d.Wa))? +g=d.Sa.length:d.Ya=1088;ul(this,d,a,c,e,f,h,g);c=!0;break;case 13:e=this.Pa(m.Bf);c=e>>2&1;this.eb=e&3;d=this.Da[this.eb];e=d.kb;f=d.Na=c;h=1;g=this.Pa(m.Uj);d.ab=128<>2&1,e=this.Pa(m.pp),d.kb+=e-d.$d,0>d.kb&&(d.kb=0),d.kb>=d.Qb&&(d.kb=d.Qb-1),d.$d=e,d.Ya=32,0==d.kb&&(d.Ya|=268435456),this.Pb(),c=!0}0>>8,m.Ap);a.ac((b.Ya&16711680)>>>16,m.Bp);var l=0;if(e!=b.kb||f!=b.Na)l=h=1;c&128&&(f^=l,d||(l=0));a.ac(e+l,m.dm);a.ac(f,m.fm);a.ac(h,m.hm);a.ac(g,m.Uj)}k.Pa=function(){var a=this.bc[this.ob];this.ob++;return a}; +k.Pb=function(){this.ob=this.bb=0};k.ac=function(a){this.bc[this.bb++]=a};k.mi=function(a,b,c){void 0===b||0>b?this.rc(a,c):c(-1,!1)};k.ni=function(a,b){return void 0!==b&&0<=b?this.Cc(a,b):-1};k.nm=function(a,b){return void 0!==b&&0<=b?this.Qj(a,b):-1};k.oi=function(a){a.Ya=72;a.ya&&(a.Sa=null,a.Ya=0,this.na&&(Ri(this.na,2,this,"dmaRead",a),Li(this.na,2)))};k.pi=function(a){a.Ya=72;a.ya&&(a.ya.hf?a.Ya=576:(a.Sa=null,a.Ya=0,this.na&&(Ri(this.na,2,this,"dmaWrite",a),Li(this.na,2))))}; +k.mk=function(a){a.Ya=72;a.ya&&(a.Sa=null,a.Ya=0,this.na&&(a.Ge=0,a.vc=Array(4),a.Mf=!0,a.Sf=0,Ri(this.na,2,this,"dmaFormat",a),Li(this.na,2),a.Mf=!1))};k.rc=function(a,b){var c=-1;if(!a.Ya&&a.ya){do{if(a.Sa&&0<=(c=il(a.Sa,a.$a++)))break;a.Sa=a.ya.seek(a.kb,a.Na,a.Wa);if(!a.Sa){a.Ya=1088;break}a.$a=0;this.Jf(a)}while(1)}b(c,!1)}; +k.Cc=function(a,b){if(a.Ya||!a.ya)return-1;do{if(a.Sa&&a.ya.write(a.Sa,a.$a++,b))break;a.Sa=a.ya.seek(a.kb,a.Na,a.Wa);if(!a.Sa){a.Ya=8256;b=-1;break}a.$a=0;this.Jf(a)}while(1);return b};k.Jf=function(a){a.Wa++;a.Wa>=a.mg+1&&(a.Wa=1,a.Na++,a.Na>=a.lg&&(a.Na=0,a.kb++))};k.Qj=function(a,b){if(a.Ya)return-1;a.vc[a.Ge++]=b;if(a.Ge==a.vc.length){a.kb=a.vc[0];a.Na=a.vc[1];a.Wa=a.vc[2];a.ab=128<this.Cc(a,a.ak))return-1;a.Sf++}a.Sf>=a.be&&(b=-1);return b}; +k.Gi=function(a){var b=this.T.K&255;this.ca&&E(this.ca,rj|Yc)&&128>b&&(Zc(this.ca,19,a),$c(this.T,a,function(a,b){return function(e){ad(a.ca,19,e,F(a.T)-b)}}(this,F(this.T))));return!0};k.Ra=function(a,b){this.ca&&(null==b&&(b=rj),E(this.ca,b)&&this.ca.message(a))};k.da=function(a,b,c,d,e){this.ca&&this.ca.da(this,a,b,c,d,rj,e)};var pl={1012:kl.prototype.$m,1013:kl.prototype.Ym,1015:kl.prototype.Zm},ql={1010:kl.prototype.to,1013:kl.prototype.so,1015:kl.prototype.ro}; +Fa(function(){for(var a=D(window.document,"pcjs","fdc"),b=0;b=e&&(this.sf|=(f.type&3)<<(1-e<<1))}return d}; +k.Mj=function(){var a=0,b=[];this.Ie?(b[a++]=this.Kd,b[a++]=this.Tl,b[a++]=this.se,b[a++]=this.Mh,b[a++]=this.Kh,b[a++]=this.Jh,b[a++]=this.tf,b[a++]=this.Ca,b[a++]=this.Jj,b[a++]=this.Lh):(b[a++]=this.sf,b[a++]=this.Ca,b[a++]=this.bc,b[a++]=this.ob,b[a++]=this.bb,b[a++]=this.Sl,b[a++]=this.Rl,b[a++]=this.Ql,b[a++]=this.kf);b[a]=this.Oj();return b}; +k.Ei=function(a,b,c,d,e){var f=0,h=!0;void 0===d&&(d=[0,0,!1,Array(8)]);b.eb=a;b.errorCode=d[f++];b.Zl=d[f++];b.gf=d[f++];b.Ze=d[f++];b.$e=d[f++];b.Na=d[f++];b.Sb=d[f++];b.Qd=d[f++];b.Wa=d[f++];b.be=d[f++];b.ab=d[f++];b.Vg=this.Ie?0:1;b.name=c.name;void 0===b.name&&(b.name="Hard Drive");b.path=c.path;b.mode=c.mode||(b.path?"preload":"local");"demandro"!=b.mode&&"demandrw"!=b.mode||this.ie()||(b.mode="local");b.type=c.type;if(void 0===b.type||void 0===vl[this.bg][b.type])b.type=this.Dm;c=vl[this.bg][b.type]; +b.$b=c[2]||17;b.Jb=c[3]||512;if(e&&this.na&&(e=this.na,c=b.type,e.ra)){var g=e.ra[18],g=a?g&240|c:g&15|c<<4;e.ra&&(e.ra[18]=g,zi(e))}void 0===b.ya&&(b.ya=null,this.Ka("Type "+b.type+' "'+b.name+'" is fixed disk '+a,!0));Al(this,b);b.$a=d[f++];b.Sa=null;b.ya&&(a=d[f],void 0!==a&&0>b.ya.restore(a)&&(h=!1),h&&void 0!==b.$a&&(b.Sa=b.ya.seek(b.Qd,b.Na,b.Wa+b.Vg)));return h};k.Oj=function(){for(var a=0,b=[],c=0;c=this.bb&&(this.ob=this.bb=0,this.Ca&=-15);return c}; +k.Po=function(a,b,c){this.da(a,b,c,"DATA["+this.bb+"]");this.bb=a&&(this.Ca|=2,this.Ca&=-2,Bl(this))};k.Bn=function(a,b){var c=this.Ca;this.da(a,null,b,"STATUS",c);this.ob=this.Qa.Jb){var e=this;this.rc(this.Qa,function(a){0<=a?Cl(e):(e.Ca=1,e.Kd=16)},!1)}else this.Ca=80;d||this.da(a,null,b,"DATA",c);return c}; +k.eo=function(a,b,c){this.Qa&&0!=this.Qa.$a||this.da(a,b,c,"DATA");this.Qa&&this.Qa.ab>=this.Qa.Jb&&(0>this.Cc(this.Qa,b)?(this.Ca=1,this.Kd=16):this.Qa.$a==this.Qa.Jb&&(this.Qa.ab-=this.Qa.Jb,this.se=this.se-1&255,Cl(this),this.Qa.ab>=this.Qa.Jb||(this.Ca=80)))};k.Nm=function(a,b){var c=this.Kd;this.da(a,null,b,"ERROR",c);return c};k.ko=function(a,b,c){this.da(a,b,c,"WPREC");this.Tl=b};k.Om=function(a,b){var c=this.se;this.da(a,null,b,"SECCNT",c);return c}; +k.io=function(a,b,c){this.da(a,b,c,"SECCNT");this.se=b};k.Pm=function(a,b){var c=this.Mh;this.da(a,null,b,"SECNUM",c);return c};k.jo=function(a,b,c){this.da(a,b,c,"SECNUM");this.Mh=b};k.Km=function(a,b){var c=this.Kh;this.da(a,null,b,"CYLLO",c);return c};k.co=function(a,b,c){this.da(a,b,c,"CYLLO");this.Kh=b};k.Jm=function(a,b){var c=this.Jh;this.da(a,null,b,"CYLHI",c);return c};k.bo=function(a,b,c){this.da(a,b,c,"CYLHI");this.Jh=b};k.Mm=function(a,b){var c=this.tf;this.da(a,null,b,"DRVHD",c);return c}; +k.fo=function(a,b,c){this.da(a,b,c,"DRVHD");this.tf=b;this.Ca=this.Da[this.tf&16?1:0]?this.Ca|64:this.Ca&-65};k.Qm=function(a,b){var c=this.Ca;this.da(a,null,b,"STATUS",c);return c};k.ao=function(a,b,c){this.da(a,b,c,"COMMAND");this.Jj=b;this.na&&Zi(this.na,14);Dl(this)};k.ho=function(a,b,c){this.da(a,b,c,"FDR");this.Lh&4&&!(b&4)&&(this.Kd=1);this.Lh=b}; +function Dl(a){var b=!1,c=a.Jj,d=a.tf&16?1:0,e=a.tf&15,f=a.Kh|(a.Jh&3)<<8,h=a.Mh,g=a.se||256;a.Qa=null;a.Kd=0;a.Ca=80;(d=a.Da[d])?(d.Qd=f,d.Na=e,d.Wa=h,d.ab=g*d.Jb,c=144<=c?c:c&240,d.Sa=null,d.errorCode=0,a.Qa=d):c=-1;switch(c&240){case 32:a.rc(d,function(b){0<=b&&a.na?(Cl(a),a.Ca=136):(a.Ca=1,a.Kd=16)},!1);break;case 48:a.na?(Cl(a),a.Ca=136):(a.Ca=1,a.Kd=4);break;case 16:b=!0;break;case 64:b=!0;break;case 144:a.Kd=1;b=!0;break;case 145:d.Sb=e+1,d.$b=g,b=!0}b&&Cl(a)} +function Cl(a){!a.na||a.Lh&2||Yi(a.na,14)} +function Bl(a){a.ob=0;var b=a.Pa(),c=a.Pa(),d=c&32,e=d>>5,f=c&31,h=a.Pa(),g=a.Pa(),l=h<<2&768|g,n=h&63,p=a.Pa(),r=a.Pa(),s=a.Da[e];s&&(s.Qd=l,s.Na=f,s.Wa=n,s.ab=p*s.Jb);switch(b){case 3:a.Pb(s?s.errorCode:4);a.ac(c);a.ac(h);a.ac(g);a.ac(0|d);b=-1;break;case 12:for(c=0;0<=(b=a.Pa());)s&&cb?this.rc(a,c):c(-1,!1)}; +k.ni=function(a,b){return void 0!==b&&0<=b?this.Cc(a,b):-1};k.om=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.$a=a.$b+b&&(a.Wa=b,a.Na++,a.Na>=a.Sb&&(a.Na=0,a.Qd++))}; +k.Qj=function(a,b){if(a.errorCode)return-1;a.vc[a.Ge++]=b;if(a.Ge==a.vc.length){a.Qd=a.vc[0];a.Na=a.vc[1];a.Wa=a.vc[2];a.ab=128<this.Cc(a,a.ak))return-1;a.Sf++}a.Sf>=a.be&&(b=-1);return b};k.Dn=function(a){var b=this.T.K&255;!(this.T.H>>8)&&128>8)||(a=!this.na)||(a=!(this.na.ub[0].vd&64));return a?!0:!1};k.Ra=function(a,b){this.ca&&(null==b&&(b=Fl),E(this.ca,b)&&this.ca.message(a))};k.da=function(a,b,c,d,e){this.ca&&this.ca.da(this,a,b,c,d,Fl,e)}; +var xl={800:Y.prototype.An,801:Y.prototype.Bn,802:Y.prototype.zn},wl={496:Y.prototype.Lm,497:Y.prototype.Nm,498:Y.prototype.Om,499:Y.prototype.Pm,500:Y.prototype.Km,501:Y.prototype.Jm,502:Y.prototype.Mm,503:Y.prototype.Qm},zl={800:Y.prototype.Po,801:Y.prototype.So,802:Y.prototype.Ro,803:Y.prototype.Qo,807:Y.prototype.Ej,811:Y.prototype.Ej,815:Y.prototype.Ej},yl={496:Y.prototype.eo,497:Y.prototype.ko,498:Y.prototype.io,499:Y.prototype.jo,500:Y.prototype.co,501:Y.prototype.bo,502:Y.prototype.fo,503:Y.prototype.ao, +1014:Y.prototype.ho};Fa(function(){for(var a=D(window.document,"pcjs","hdc"),b=0;b>8,e=Sl[b];if(e=e&&e[d]||""){var f=a.T;a.gb[Z[0]]=t(f.H&255);a.gb[Z[1]]=t(f.J&255);a.gb[Z[2]]=t(f.K&255);a.gb[Z[3]]=t(f.C&255);a.gb[Z[4]]=t(f.H>>8);a.gb[Z[5]]=t(f.J>>8);a.gb[Z[6]]=t(f.K>>8);a.gb[Z[7]]=t(f.C>>8);a.gb[Z[8]]=v(f.H);a.gb[Z[9]]=v(f.J);a.gb[Z[10]]=v(f.K);a.gb[Z[11]]=v(f.C);a.gb[Z[12]]=v(f.Y);a.gb[Z[13]]=v(f.I);a.gb[Z[14]]=v(f.G);a.gb[Z[15]]=v(f.F);a.gb[Z[16]]=v(f.Wa.pa);a.gb[Z[17]]=v(f.ua.pa);a.gb[Z[18]]=v(f.rb.pa);a.gb[Z[19]]= -v(f.vb.pa);a.gb[Z[20]]=v(f.ra);e=" "+ka(a.gb,e)}a.message("INT 0x"+t(b)+": AH="+t(d)+" at "+da(c-a.T.ua.Ua,a.T.ua.pa)+e)}}function ad(a,b,c,d,e){32>b&&16!=b&&21!=b&&22!=b&&26!=b&&28!=b&&a.message("INT 0x"+t(b)+"("+c+"): C="+(md(a.T)?1:0)+(e||"")+" (cycles="+d+")")} -k.ca=function(a,b,c,d,e,f,h){f||(f=0);f|=Hj;if(null==d||(this.ic&f)==f)f=null,null!=d&&(f=this.T.ua.pa,d-=this.T.ua.Ua),this.message(a.oh+"."+(null!=c?"outPort":"inPort")+"(0x"+v(b)+","+(e?e:"unknown")+(null!=c?",0x"+t(c):"")+")"+(null!=h?": 0x"+t(h):"")+(null!=d?" at "+da(d,f):""))};k.message=function(a){this.da(a);this.T&&(this.ic&268435456&&this.T.zb(),a=this.T,a.nf=0,a.Mc-=a.A,a.A=0,a.Yg())};k.Cn=function(a){E(this,1048576|Yc)&&Zc(this,33,a);return!0};k.yn=function(){this.da("Type ? for list of debugger commands")}; -function Il(a){var b;if(Cd(a)){if(!a.Sd||!a.Sd.length){a.Sd=Array(1E4);for(b=0;b>c.pb],!1)}a.Pd=["read"];if(void 0!==a.Pc)for(b=1;b>c.pb],!0);a.Pc=["write"]}k.Td=function(a,b,c){if(!cm(this,a,b)){b[2]=$l(this,b);b[3]=c;a.push(b);if(a!=this.sc){var d=this.oa,e=$l(this,b);d.Ca[e>>d.pb].Td(e&d.eb,a==this.Pc)}c||this.da("breakpoint enabled: "+bm(b)+" ("+a[0]+")");Il(this);return!0}return!1}; -function cm(a,b,c,d){var e=!1;c=$l(a,c);for(var f=1;f>d.pb],b==a.Pc));h[3]||a.da("breakpoint cleared: "+bm(h)+" ("+b[0]+")");Il(a);break}a.da("breakpoint exists: "+bm(h)+" ("+b[0]+")");break}}return e}function dm(a,b){for(var c=1;c=b&&f>h.pb].Td(f&h.eb,d==a.Pc)}}}function Xl(a,b){if(void 0!==b)Yl(a,b,a.sc,!0),a.mc=0;else for(var c=1;c=Ml.length&&(l=a.tb(b,1),h=Rl[g-Ml.length][l>>3&7]);var n=2,g="";if(164<=f&&167>=f||170<=f&&175>=f)n=0;for(f=1;f<=n;f++){var p="",r=h[f];if(void 0!==r){var s=r&15;if(0!=s&&15!=s){var u=r&240;if(128<=u)if(0>l&&(l=a.tb(b,1)),160<=u)p=l>>3&7,176==(r&240)?p+=16:3<=(r&15)&&(p+=8),p=Z[p];else{if(128<=u){var p=a,z=r,s=b,B="",u=l>>6,B=l&7;3>u?(z=void 0,u||6!=B?(B=Nl[B],1==u?(z=p.tb(s, -1),z&128?(z=z<<24>>24,B+="-"+t(-z)):B+="+"+t(z)):2==u&&(z=p.ta(s,2),B+="+"+v(z))):(z=p.ta(s,2),B=v(z)),B="["+B+"]"):B=Z[B+(1==(z&15)?0:8)];p=B}}else if(16==u)p="1";else if(0==u){p=a;u=r;s=b;z=" ";switch(u&15){case 1:u&12288&&(z=t(p.tb(s,1)));break;case 2:z=v(p.tb(s,1)<<24>>24);break;case 3:case 4:z=v(p.ta(s,2));break;case 6:u=p.ta(s,2);p=p.ta(s,2);z=bm([u,p,void 0]);break;default:z="imm("+v(u)+")"}p=z}else 32==u?p="["+v(a.ta(b,2))+"]":48==u?(1==s?(p=a.tb(b,1),p=p<<24>>24):p=a.ta(b,2),p=b[0]+p&65535, -p=fm(a,[p,b[1],void 0])[0]||v(p)):96==u?p=Z[(r&3840)>>8]:112==u?p=Z[((r&3840)>>8)+16]:64==u?p="DS:[SI]":80==u&&(p="ES:[DI]");p.length||(p="type("+v(r)+")");0>>4),d[0]=h,d[1]=g,void 0!==l.p&&(d[2]=l.p));break}}if(d&&d.length)return d;d=b.indexOf(":");0>d?null!=e?(c=km(a,b),d=null):d=km(a,b):(e=km(a,b.substring(0,d)),c=km(a,b.substring(d+1)),d= +k.oc=function(a,b,c){this.qa=b;this.T=c;this.Ha=a;this.zm=db(a,"FDC");this.xk=db(a,"HDC");this.Gf=Pl;80186<=this.T.Ia&&(this.Gf=Pl.slice(),this.Gf[15]=$,80286<=this.T.Ia&&(this.Gf[15]=Ol));Wc(this.T,33,this,this.Gn);this.Ta();if(this.Lj){a=Jl(this,this.Lj);delete this.Lj;for(var d in a)Tl(this,a[d])}}; +k.zb=function(a,b,c,d){var e=this;switch(c){case "debugInput":return this.Uf=this.xa[c]=d,d.onkeypress=function(a){if(13==a.keyCode){var b=d.value;d.value="";var c=Jl(e,b,!0);for(b in c)Tl(e,c[b]);a.preventDefault&&a.preventDefault()}},!0;case "debugEnter":return this.xa[c]=d,Aa(d,function(){if(e.Uf){var a=e.Uf.value;e.Uf.value="";var b=Jl(e,a,!0);for(a in b)Tl(e,b[a]);return!0}return!1}),!0;case "step":return this.xa[c]=d,Aa(d,function(a){var b=!1;$a(e,!0)||(Za(e,!0),b=e.xf(a?1:0),Za(e,!1));return b}), +!0}return!1};k.Nd=function(){this.Uf&&this.Uf.focus()};function mi(a,b,c){for(var d in Kl)if(b==Kl[d]){a.Yh[d]=c;break}}function E(a,b){return(a.ic&b)===b} +function Zc(a,b,c){if(16!=b&&21!=b&&22!=b&&26!=b&&28!=b){var d=a.T.H>>8,e=Sl[b];if(e=e&&e[d]||""){var f=a.T;a.ib[Z[0]]=t(f.H&255);a.ib[Z[1]]=t(f.J&255);a.ib[Z[2]]=t(f.K&255);a.ib[Z[3]]=t(f.C&255);a.ib[Z[4]]=t(f.H>>8);a.ib[Z[5]]=t(f.J>>8);a.ib[Z[6]]=t(f.K>>8);a.ib[Z[7]]=t(f.C>>8);a.ib[Z[8]]=v(f.H);a.ib[Z[9]]=v(f.J);a.ib[Z[10]]=v(f.K);a.ib[Z[11]]=v(f.C);a.ib[Z[12]]=v(f.Y);a.ib[Z[13]]=v(f.I);a.ib[Z[14]]=v(f.G);a.ib[Z[15]]=v(f.F);a.ib[Z[16]]=v(f.Za.sa);a.ib[Z[17]]=v(f.wa.sa);a.ib[Z[18]]=v(f.tb.sa);a.ib[Z[19]]= +v(f.yb.sa);a.ib[Z[20]]=v(f.ua);e=" "+ka(a.ib,e)}a.message("INT 0x"+t(b)+": AH="+t(d)+" at "+da(c-a.T.wa.Xa,a.T.wa.sa)+e)}}function ad(a,b,c,d,e){32>b&&16!=b&&21!=b&&22!=b&&26!=b&&28!=b&&a.message("INT 0x"+t(b)+"("+c+"): C="+(md(a.T)?1:0)+(e||"")+" (cycles="+d+")")} +k.da=function(a,b,c,d,e,f,h){f||(f=0);f|=Hj;if(null==d||(this.ic&f)==f)f=null,null!=d&&(f=this.T.wa.sa,d-=this.T.wa.Xa),this.message(a.rh+"."+(null!=c?"outPort":"inPort")+"(0x"+v(b)+","+(e?e:"unknown")+(null!=c?",0x"+t(c):"")+")"+(null!=h?": 0x"+t(h):"")+(null!=d?" at "+da(d,f):""))};k.message=function(a){this.ea(a);this.T&&(this.ic&268435456&&this.T.wb(),a=this.T,a.ba.qf=0,a.Oc-=a.A,a.A=0,a.ah())};k.Gn=function(a){E(this,1048576|Yc)&&Zc(this,33,a);return!0};k.Cn=function(){this.ea("Type ? for list of debugger commands")}; +function Il(a){var b;if(Cd(a)){if(!a.Vd||!a.Vd.length){a.Vd=Array(1E4);for(b=0;b>c.rb],!1)}a.Sd=["read"];if(void 0!==a.Rc)for(b=1;b>c.rb],!0);a.Rc=["write"]}k.Wd=function(a,b,c){if(!cm(this,a,b)){b[2]=$l(this,b);b[3]=c;a.push(b);if(a!=this.sc){var d=this.qa,e=$l(this,b);d.Ea[e>>d.rb].Wd(e&d.gb,a==this.Rc)}c||this.ea("breakpoint enabled: "+bm(b)+" ("+a[0]+")");Il(this);return!0}return!1}; +function cm(a,b,c,d){var e=!1;c=$l(a,c);for(var f=1;f>d.rb],b==a.Rc));h[3]||a.ea("breakpoint cleared: "+bm(h)+" ("+b[0]+")");Il(a);break}a.ea("breakpoint exists: "+bm(h)+" ("+b[0]+")");break}}return e}function dm(a,b){for(var c=1;c=b&&f>h.rb].Wd(f&h.gb,d==a.Rc)}}}function Xl(a,b){if(void 0!==b)Yl(a,b,a.sc,!0),a.mc=0;else for(var c=1;c=Ml.length&&(l=a.vb(b,1),h=Rl[g-Ml.length][l>>3&7]);var n=2,g="";if(164<=f&&167>=f||170<=f&&175>=f)n=0;for(f=1;f<=n;f++){var p="",r=h[f];if(void 0!==r){var s=r&15;if(0!=s&&15!=s){var u=r&240;if(128<=u)if(0>l&&(l=a.vb(b,1)),160<=u)p=l>>3&7,176==(r&240)?p+=16:3<=(r&15)&&(p+=8),p=Z[p];else{if(128<=u){var p=a,z=r,s=b,B="",u=l>>6,B=l&7;3>u?(z=void 0,u||6!=B?(B=Nl[B],1==u?(z=p.vb(s, +1),z&128?(z=z<<24>>24,B+="-"+t(-z)):B+="+"+t(z)):2==u&&(z=p.ta(s,2),B+="+"+v(z))):(z=p.ta(s,2),B=v(z)),B="["+B+"]"):B=Z[B+(1==(z&15)?0:8)];p=B}}else if(16==u)p="1";else if(0==u){p=a;u=r;s=b;z=" ";switch(u&15){case 1:u&12288&&(z=t(p.vb(s,1)));break;case 2:z=v(p.vb(s,1)<<24>>24);break;case 3:case 4:z=v(p.ta(s,2));break;case 6:u=p.ta(s,2);p=p.ta(s,2);z=bm([u,p,void 0]);break;default:z="imm("+v(u)+")"}p=z}else 32==u?p="["+v(a.ta(b,2))+"]":48==u?(1==s?(p=a.vb(b,1),p=p<<24>>24):p=a.ta(b,2),p=b[0]+p&65535, +p=fm(a,[p,b[1],void 0])[0]||v(p)):96==u?p=Z[(r&3840)>>8]:112==u?p=Z[((r&3840)>>8)+16]:64==u?p="DS:[SI]":80==u&&(p="ES:[DI]");p.length||(p="type("+v(r)+")");0>>4),d[0]=h,d[1]=g,void 0!==l.p&&(d[2]=l.p));break}}if(d&&d.length)return d;d=b.indexOf(":");0>d?null!=e?(c=km(a,b),d=null):d=km(a,b):(e=km(a,b.substring(0,d)),c=km(a,b.substring(d+1)),d= null)}return[c,e,d]} -function km(a,b,c){var d;if(void 0!==b)switch(b=b.toUpperCase(),b){case "AX":d=a.T.H;break;case "BX":d=a.T.C;break;case "CX":d=a.T.J;break;case "DX":d=a.T.K;break;case "SI":d=a.T.G;break;case "DI":d=a.T.F;break;case "BP":d=a.T.I;break;case "SP":d=a.T.Y;break;case "CS":d=a.T.ua.pa;break;case "DS":d=a.T.vb.pa;break;case "ES":d=a.T.Wa.pa;break;case "SS":d=a.T.rb.pa;break;case "IP":d=a.T.ra;break;default:d=ca(b),void 0===d&&a.da("invalid "+(c?c:"value")+": "+b)}else a.da("missing "+(c?c:"value"));return d} +function km(a,b,c){var d;if(void 0!==b)switch(b=b.toUpperCase(),b){case "AX":d=a.T.H;break;case "BX":d=a.T.C;break;case "CX":d=a.T.J;break;case "DX":d=a.T.K;break;case "SI":d=a.T.G;break;case "DI":d=a.T.F;break;case "BP":d=a.T.I;break;case "SP":d=a.T.Y;break;case "CS":d=a.T.wa.sa;break;case "DS":d=a.T.yb.sa;break;case "ES":d=a.T.Za.sa;break;case "SS":d=a.T.tb.sa;break;case "IP":d=a.T.ua;break;default:d=ca(b),void 0===d&&a.ea("invalid "+(c?c:"value")+": "+b)}else a.ea("missing "+(c?c:"value"));return d} function uj(a,b,c,d){function e(a,b){return a[0]>b[0]?1:a[0]=h&&eb[0]?1:a[0]c?(a.da("out of data at address "+bm(b)),p=!0):(a.Jd(b,c,1),n++)})})(a,c);a.da(n+" bytes read at "+e)}else a.da("sector "+e+" request out of range");else a.da("drive "+d+" not loaded");else a.da("invalid drive: "+d)}else a.da("disk controller not present")}}} -function Vl(a,b,c){if(b&&"?"==b[1])a.da("\nregister commands:"),a.da("\tr\t\tdisplay all registers"),a.da("\tr [target=#]\tmodify target register"),a.da("supported targets:"),a.da("\tall registers and flags V,D,I,S,Z,A,P,C");else{var d=!0,e;if(null!=b&&1c?(a.ea("out of data at address "+bm(b)),p=!0):(a.Md(b,c,1),n++)})})(a,c);a.ea(n+" bytes read at "+e)}else a.ea("sector "+e+" request out of range");else a.ea("drive "+d+" not loaded");else a.ea("invalid drive: "+d)}else a.ea("disk controller not present")}}} +function Vl(a,b,c){if(b&&"?"==b[1])a.ea("\nregister commands:"),a.ea("\tr\t\tdisplay all registers"),a.ea("\tr [target=#]\tmodify target register"),a.ea("supported targets:"),a.ea("\tall registers and flags V,D,I,S,Z,A,P,C");else{var d=!0,e;if(null!=b&&1c||"z">>4);var ic=B[U].l;ic&&(U=ic);a.da(da(Ha,tb)+" "+U)}}}else{for(u in Kl)if(r==u){var Nb=a.Vh[u];Nb?Nb(s):a.da("no dump registered for "+r);break a}var V=jm(a,r,2);if(null!=V[0])if("ds"== -l){var J=Zl(a,V[0]);if(null!=J.pa){var w="selector="+v(V[0])+" limit="+v(J.Lc)+" base="+q(J.Ua);if(J.ab){w+=" access="+v(J.ab);if(J.ab&4096)J.ab&2048?(w+="code:",w+=J.ab&512?"readable,":"execonly,",w+=J.ab&1024?"conforming,":"nonconforming,"):(w+="data:",w+=J.ab&512?"writeable,":"readonly,",w+=J.ab&1024?"expand down,":"expand up,"),w+=J.ab&256?"accessed":"not accessed";else switch(w+="type:",J.ab&7936){case 256:w+="tss";break;case 512:w+="ldt";break;case 768:w+="tss(busy)";break;case 1024:w+="call"; -break;case 1280:w+="task";break;case 1536:w+="int";break;case 1792:w+="trap";break;default:w+="unknown"}w+=",dpl"+(J.ab>>13&24576);w+=J.ab&32768?",present":",not present"}a.da(w)}else a.da("invalid selector: "+v(V[0]))}else{var R=0;void 0!==s&&("l"==s.charAt(0)&&(s=s.substr(1)),R=parseInt(s,10));var H="";R||(R=8);for(var ub=0;ubW;W++){var Ua=a.tb(V,1);"dw"==l?W&1&&(f+=v(ea|Ua<<8)+(7==W?" - ":" ")):f+=t(Ua)+(7==W?"-":" ");Ia+=32<=Ua&&128>Ua?String.fromCharCode(Ua): -".";ea=Ua}H&&(H+="\n");H+=r+" "+f+" "+Ia}H&&a.da(H);a.Uj=V}}}break;case "e":var Jc=f[1];if(void 0===Jc)a.da("missing address");else{var jc=jm(a,Jc,2);if(null!=jc[0])for(l=2;lW.length&&(a.da("note: only "+W.length+" available"),Ma=W.length);ea-=Ma;0>ea&&(null!=W[W.length-1][1]?ea+=W.length:(Ma=ea+Ma,ea=0));for(void 0!==Ia&&a.da(Ma+" instructions earlier:");r&&ea!=a.hf;){var mc=W[ea];if(null==mc[1])break;mc=[mc[0],mc[1],mc[2]];a.da(em(a,mc,"history",-Ma));++ea==W.length&&(ea=0);a.Gl=--Ma;r--}}10==r&&(a.da("no "+l+"history available"),a.Gl=void 0)}break;case "i":var Re= -f[1];if(Re&&"?"!=Re){var Se=km(a,Re);if(void 0!==Se){var Fm=vb(a.oa,Se);a.da(v(Se)+": "+t(Fm))}}else a.da("\ninput commands:"),a.da("\ti [p]\tread port [p]"),a.da("warning: port accesses can affect hardware state");break;case "l":nm(a,f);break;case "m":a:{l=null;H=f[1];"?"==H&&(H=void 0);if(void 0!==H){r=0;if("all"==H)r=4294967295,H=null;else if("on"==H)l=!0,H=null;else if("off"==H)l=!1,H=null;else{for(R in Kl)if(H==R){r=Kl[R];l=!!(a.ic&r);break}if(!r){a.da("unknown message category: "+H);break a}}r&& -("on"==f[2]?(a.ic|=r,l=!0):"off"==f[2]&&(a.ic&=~r,l=!1))}r=0;V="";for(R in Kl)if(!H||H==R)if(ub=!!(a.ic&Kl[R]),null===l||l==ub)V&&(V+=","),++r%10||(V+="\n\t"),V+=R;void 0===H&&a.da("\nmessage commands:\n\tm [category] [on|off]\tturn categories on/off");a.da((null!==l?l?"messages on: ":"messages off: ":"message categories:\n\t")+(V||"none"))}break;case "o":var Te=f[1],Gm=f[2];if(Te&&"?"!=Te){var ik=km(a,Te,"port #"),jk=km(a,Gm);void 0!==ik&&void 0!==jk&&zb(a.oa,ik,jk)}else a.da("\noutput commands:"), -a.da("\to [p] [d]\twrite data [d] to port [p]"),a.da("warning: port accesses can affect hardware state");break;case "p":case "pr":var kk="pr"==f[0]?1:0,l=1+kk;if(a.mc)a.da("step in progress");else{var Jd,r=!1,Na=[a.T.ra,a.T.ua.pa,void 0];do switch(Jd=!1,a.tb(Na)){case 38:case 46:case 54:case 62:case 240:am(Na,1);Jd=!0;break;case 204:case 206:a.mc=l;am(Na,1);break;case 205:case 224:case 225:case 226:a.mc=l;am(Na,2);break;case 232:a.mc=l;am(Na,3);break;case 154:a.mc=l;am(Na,5);break;case 255:a.mc=0<= -em(a,Na).indexOf("CALL")?l:0;break;case 243:case 242:am(Na,1);r=Jd=!0;break;case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:r&&(a.mc=l,am(Na,1))}while(Jd);a.mc?(a.Td(a.sc,Na,!0),a.Oe()||(a.T.Kd(),a.mc=0)):om(a,kk?"tr":"t")}break;case "r":Vl(a,f);break;case "t":case "tr":om(a,f[0],f[1]);break;case "u":Wl(a,f[1],f[2],8);break;case "x":a:if(void 0===f[1]||"?"==f[1])a.da("\nexecution options:"),a.da("\tcs int #\tset checksum cycle interval to #"),a.da("\tcs start #\tset checksum cycle start count to #"), -a.da("\tcs stop #\tset checksum cycle stop count to #"),a.da("\tsp #\t\tset speed multiplier to #");else switch(f[1]){case "cs":var Mc;void 0!==f[3]&&(Mc=parseInt(f[3],10));switch(f[2]){case "int":a.T.kf=Mc;break;case "start":a.T.dg=Mc;break;case "stop":a.T.mf=Mc;break;default:a.da("unknown cs option");break a}void 0!==Mc&&Ob(a.T);a.da("checksums "+(a.T.bf?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&Ub(a.T,parseInt(f[2],10));a.da("target speed: "+(a.T.He.toFixed(2)+"Mhz")+" ("+a.T.Dd+"x)"); -break;default:a.da("unknown option: "+f[1])}break;case "?":var l="commands:",Kd;for(Kd in Ll)l+="\n"+Kd+" ".substr(0,7-Kd.length)+Ll[Kd];Cd(a)||(l+="\nnote: frequency/history disabled if no exec breakpoints");a.da(l);break;default:a.da("unknown command: "+b)}}}catch(Hm){a.da("debugger sad: "+Hm.message)}}Fa(function(){for(var a=D(window.document,"pcjs","debugger"),b=0;bc||"z">>4);var jc=B[U].l;jc&&(U=jc);a.ea(da(Ha,tb)+" "+U)}}}else{for(u in Kl)if(r==u){var Ob=a.Yh[u];Ob?Ob(s):a.ea("no dump registered for "+r);break a}var V=jm(a,r,2);if(null!=V[0])if("ds"== +l){var J=Zl(a,V[0]);if(null!=J.sa){var w="selector="+v(V[0])+" limit="+v(J.Nc)+" base="+q(J.Xa);if(J.Oa){w+=" access="+v(J.Oa);if(J.Oa&4096)J.Oa&2048?(w+="code:",w+=J.Oa&512?"readable,":"execonly,",w+=J.Oa&1024?"conforming,":"nonconforming,"):(w+="data:",w+=J.Oa&512?"writeable,":"readonly,",w+=J.Oa&1024?"expand down,":"expand up,"),w+=J.Oa&256?"accessed":"not accessed";else switch(w+="type:",J.Oa&7936){case 256:w+="tss";break;case 512:w+="ldt";break;case 768:w+="tss(busy)";break;case 1024:w+="call"; +break;case 1280:w+="task";break;case 1536:w+="int";break;case 1792:w+="trap";break;default:w+="unknown"}w+=",dpl"+(J.Oa>>13&24576);w+=J.Oa&32768?",present":",not present"}a.ea(w)}else a.ea("invalid selector: "+v(V[0]))}else{var R=0;void 0!==s&&("l"==s.charAt(0)&&(s=s.substr(1)),R=parseInt(s,10));var H="";R||(R=8);for(var ub=0;ubW;W++){var Ua=a.vb(V,1);"dw"==l?W&1&&(f+=v(ea|Ua<<8)+(7==W?" - ":" ")):f+=t(Ua)+(7==W?"-":" ");Ia+=32<=Ua&&128>Ua?String.fromCharCode(Ua): +".";ea=Ua}H&&(H+="\n");H+=r+" "+f+" "+Ia}H&&a.ea(H);a.Wj=V}}}break;case "e":var Jc=f[1];if(void 0===Jc)a.ea("missing address");else{var kc=jm(a,Jc,2);if(null!=kc[0])for(l=2;lW.length&&(a.ea("note: only "+W.length+" available"),Ma=W.length);ea-=Ma;0>ea&&(null!=W[W.length-1][1]?ea+=W.length:(Ma=ea+Ma,ea=0));for(void 0!==Ia&&a.ea(Ma+" instructions earlier:");r&&ea!=a.lf;){var nc=W[ea];if(null==nc[1])break;nc=[nc[0],nc[1],nc[2]];a.ea(em(a,nc,"history",-Ma));++ea==W.length&&(ea=0);a.Kl=--Ma;r--}}10==r&&(a.ea("no "+l+"history available"),a.Kl=void 0)}break;case "i":var Se= +f[1];if(Se&&"?"!=Se){var Te=km(a,Se);if(void 0!==Te){var Fm=vb(a.qa,Te);a.ea(v(Te)+": "+t(Fm))}}else a.ea("\ninput commands:"),a.ea("\ti [p]\tread port [p]"),a.ea("warning: port accesses can affect hardware state");break;case "l":nm(a,f);break;case "m":a:{l=null;H=f[1];"?"==H&&(H=void 0);if(void 0!==H){r=0;if("all"==H)r=4294967295,H=null;else if("on"==H)l=!0,H=null;else if("off"==H)l=!1,H=null;else{for(R in Kl)if(H==R){r=Kl[R];l=!!(a.ic&r);break}if(!r){a.ea("unknown message category: "+H);break a}}r&& +("on"==f[2]?(a.ic|=r,l=!0):"off"==f[2]&&(a.ic&=~r,l=!1))}r=0;V="";for(R in Kl)if(!H||H==R)if(ub=!!(a.ic&Kl[R]),null===l||l==ub)V&&(V+=","),++r%10||(V+="\n\t"),V+=R;void 0===H&&a.ea("\nmessage commands:\n\tm [category] [on|off]\tturn categories on/off");a.ea((null!==l?l?"messages on: ":"messages off: ":"message categories:\n\t")+(V||"none"))}break;case "o":var Ue=f[1],Gm=f[2];if(Ue&&"?"!=Ue){var ik=km(a,Ue,"port #"),jk=km(a,Gm);void 0!==ik&&void 0!==jk&&zb(a.qa,ik,jk)}else a.ea("\noutput commands:"), +a.ea("\to [p] [d]\twrite data [d] to port [p]"),a.ea("warning: port accesses can affect hardware state");break;case "p":case "pr":var kk="pr"==f[0]?1:0,l=1+kk;if(a.mc)a.ea("step in progress");else{var Jd,r=!1,Na=[a.T.ua,a.T.wa.sa,void 0];do switch(Jd=!1,a.vb(Na)){case 38:case 46:case 54:case 62:case 240:am(Na,1);Jd=!0;break;case 204:case 206:a.mc=l;am(Na,1);break;case 205:case 224:case 225:case 226:a.mc=l;am(Na,2);break;case 232:a.mc=l;am(Na,3);break;case 154:a.mc=l;am(Na,5);break;case 255:a.mc=0<= +em(a,Na).indexOf("CALL")?l:0;break;case 243:case 242:am(Na,1);r=Jd=!0;break;case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:r&&(a.mc=l,am(Na,1))}while(Jd);a.mc?(a.Wd(a.sc,Na,!0),a.Re()||(a.T.Nd(),a.mc=0)):om(a,kk?"tr":"t")}break;case "r":Vl(a,f);break;case "t":case "tr":om(a,f[0],f[1]);break;case "u":Wl(a,f[1],f[2],8);break;case "x":a:if(void 0===f[1]||"?"==f[1])a.ea("\nexecution options:"),a.ea("\tcs int #\tset checksum cycle interval to #"),a.ea("\tcs start #\tset checksum cycle start count to #"), +a.ea("\tcs stop #\tset checksum cycle stop count to #"),a.ea("\tsp #\t\tset speed multiplier to #");else switch(f[1]){case "cs":var Mc;void 0!==f[3]&&(Mc=parseInt(f[3],10));switch(f[2]){case "int":a.T.ba.nf=Mc;break;case "start":a.T.ba.gg=Mc;break;case "stop":a.T.ba.pf=Mc;break;default:a.ea("unknown cs option");break a}void 0!==Mc&&Nb(a.T);a.ea("checksums "+(a.T.pa.ef?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&Ub(a.T,parseInt(f[2],10));a.ea("target speed: "+(a.T.ba.Ke.toFixed(2)+"Mhz")+ +" ("+a.T.ba.Gd+"x)");break;default:a.ea("unknown option: "+f[1])}break;case "?":var l="commands:",Kd;for(Kd in Ll)l+="\n"+Kd+" ".substr(0,7-Kd.length)+Ll[Kd];Cd(a)||(l+="\nnote: frequency/history disabled if no exec breakpoints");a.ea(l);break;default:a.ea("unknown command: "+b)}}}catch(Hm){a.ea("debugger sad: "+Hm.message)}}Fa(function(){for(var a=D(window.document,"pcjs","debugger"),b=0;bum){if(d.load(this.yg)){this.Se=new I(this,"1.15.8","failsafe");this.Se.load()&&(ym(this,d),a=2,rm(this.Se));this.Se.set("timestamp",pa());sm(this.Se);var e=this.Nc&&!this.kh;if(1==a||ua("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),h=d.get("data");f&&("ok"==f?d.load(h):("error"== -f&&"no machine state"!=h?(this.Ia("Error: "+h),"unable to verify user"==h&&(xa("user",""),this.Oc=null)):this.da(f+": "+h),rm(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&xm(this,c?d:null)}else 2==a&&d.clear()}else xm(this);delete this.yg;delete this.Nh}e=Va(this.id);for(f=0;fa[1];a=a[2];this.Jb=!0;this.nk||(this.da("PCjs v1.15.8\nCopyright \u00a9 2012-2014 Jeff Parsons \nLicense: GPL version 3 or later "),this.nk=!0);this.T&&zm(this,this.T,b,c,a);this.pk&&(ym(this,b),b.clear());!c&&this.Se&&(this.Se.clear(),delete this.Se)}; -function ym(a,b){if(ua("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.fe(),d=b.toString(),e={app:"PCjs",ver:"1.15.8"};e.url=a.url;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",!0,e)}} -function pm(a,b,c){var d,e="none",f=new I(a,"1.15.8"),h=new I(a,"1.15.8","validate"),g=pa();h.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.8");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.T&&a.T.Wb&&(c&&a.T.zb(),d=a.T.Wb(b,c),"object"===typeof d&&f.set(a.T.id,d),c&&(a.T.Jb=!1,!1===d&&(e=null)));for(var g=Va(a.id),l=0;lum){if(d.load(this.Bg)){this.Ve=new I(this,"1.15.8","failsafe");this.Ve.load()&&(ym(this,d),a=2,rm(this.Ve));this.Ve.set("timestamp",pa());sm(this.Ve);var e=this.Pc&&!this.nh;if(1==a||ua("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),h=d.get("data");f&&("ok"==f?d.load(h):("error"== +f&&"no machine state"!=h?(this.Ka("Error: "+h),"unable to verify user"==h&&(xa("user",""),this.Qc=null)):this.ea(f+": "+h),rm(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&xm(this,c?d:null)}else 2==a&&d.clear()}else xm(this);delete this.Bg;delete this.Qh}e=Va(this.id);for(f=0;fa[1];a=a[2];this.pa.Kb=!0;this.rk||(this.ea("PCjs v1.15.8\nCopyright \u00a9 2012-2014 Jeff Parsons \nLicense: GPL version 3 or later "),this.rk=!0);this.T&&zm(this,this.T,b,c,a);this.tk&&(ym(this,b),b.clear());!c&&this.Ve&&(this.Ve.clear(),delete this.Ve)}; +function ym(a,b){if(ua("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.ie(),d=b.toString(),e={app:"PCjs",ver:"1.15.8"};e.url=a.url;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",!0,e)}} +function pm(a,b,c){var d,e="none",f=new I(a,"1.15.8"),h=new I(a,"1.15.8","validate"),g=pa();h.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.8");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.T&&a.T.Wb&&(c&&a.T.wb(),d=a.T.Wb(b,c),"object"===typeof d&&f.set(a.T.id,d),c&&(a.T.pa.Kb=!1,!1===d&&(e=null)));for(var g=Va(a.id),l=0;lg.indexOf("/")&&(g=window.location.pathname+g);a=a.replace(/(]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(g?" url=$2"+g+"$2":""))}g=null;if("<"==a.charAt(0))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){g= null,a=r.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,!0,null,null,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, diff --git a/versions/pcjs/1.15.8/pc.js b/versions/pcjs/1.15.8/pc.js index 72f71e2c1..67167a349 100644 --- a/versions/pcjs/1.15.8/pc.js +++ b/versions/pcjs/1.15.8/pc.js @@ -5,87 +5,88 @@ b);n.setRequestHeader("Content-type","application/x-www-form-urlencoded");n.send function ma(){if(void 0===ja){var a;try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"===window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ja=a}return ja}function na(a){var b;try{b=window.localStorage.getItem(a)}catch(c){}return b}function oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1} function pa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var qa={init:[],show:[],exit:[]},ra=!1,sa=!0;function ua(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){qa.init.push(a)} function va(a){if(sa)try{for(var b=0;b=this.lf?12:14;this.nc=1<>2;this.cb=this.nc-1;this.fg=(this.Re+this.nc)/this.nc|0;this.Td=this.fg-1;this.Sf=[];this.Tf=[];this.Mh();this.Ka()}y(w,Ma);Ma.prototype.Mh=function(){this.za=Array(this.fg);for(var a=0;a>a.Lb;0>this.Lb;0>a.Lb;0>a.Lb].Pi(b&a.cb)}function Ua(a,b){var c=b&a.cb,d=(b&a.wb)>>a.Lb;return c!=a.cb?a.za[d].Nn(c):a.za[d++].Pi(c)|a.za[d&a.Td].Pi(0)<<8} -function Va(a,b,c){a.za[(b&a.wb)>>a.Lb].Xi(b&a.cb,c&255)}function Wa(a,b,c){var d=b&a.cb;b=(b&a.wb)>>a.Lb;d!=a.cb?a.za[b].Xn(d,c&65535):(a.za[b++].Xi(d,c&255),a.za[b&a.Td].Xi(0,c>>8&255))}function Xa(a){for(var b=0,c=[],d=0;d>2);for(d=0;d>2]>>>((a&3)<<3)&255},On:function(a){var b=a>>2;a=(a&3)<<3;var c=this.ma[b]>>>a;return 24>a?c&65535:c&255|(this.ma[b+1]&255)<<8},Vn:function(a,b){var c=a>>2,d=(a&3)<<3;this.ma[c]=this.ma[c]&~(255<>2,d=(a&3)<<3;24>d?this.ma[c]=this.ma[c]&~(65535<>8);this.Xa=!0},save:function(){return this.ca? -null:this.ma},restore:function(a){return this.ca?null==a:a&&this.kl==a.length<<2?(this.ma=a,this.Xa=!0):!1},ke:function(a,b){a||(a=[]);void 0===b&&(b=!0);var c=a;this.uc=c[0]?c[0]:this.Og;this.Mn=c[1]?c[1]:this.Og;b&&(this.Pi=c[0]?c[0]:this.Og,this.Nn=c[1]?c[1]:this.Og);c=a;this.xc=c[2]&&!this.uj?c[2]:this.Yg;this.Wn=c[3]&&!this.uj?c[3]:this.Yg;b&&(this.Xi=c[2]?c[2]:this.Yg,this.Xn=c[3]?c[3]:this.Yg)}};var bb=[Na.prototype.Ln,Na.prototype.On,Na.prototype.Vn,Na.prototype.Yn]; -function cb(a,b){w.call(this,"CPU",a,cb);var c=a.multiplier||1;this.cd=a.cycles||b;this.zd=c;this.Ag=Math.round(this.cd/1E4)/100;this.Ce=this.Ag*this.zd;this.rc=this.Ab=!1;this.vh=a.autoStart;c=za.autostart;void 0!==c&&(this.vh="true"==c?!0:"false"==c?!1:null);this.ng=!1;this.Fg=this.Ee=0;this.Gg=a.csStart;this.of=a.csInterval;this.pf=a.csStop;var d=this;this.Om=function(){db(d)};this.Ka()}y(w,cb);h=cb.prototype; -h.jc=function(a,b,c,d){this.na=b;this.Na=d;this.Ga=a;var e=D(a,"Video");e&&(this.gf=function(){eb(e)},this.Je=function(){e.Je()});this.ha=D(a,"ChipSet");this.Ka()};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};h.Ob=function(a,b){if(!b){if(a&&this.restore){fb(this);if(!this.restore(a))return!1;hb(this)}else this.reset();this.ec("No debugger detected")}this.Ab=!0;!ib(this)&&this.Na&&this.Na.Do();this.gf();this.ff();return!0}; -h.Nb=function(a){this.Ab=!1;return a&&this.save?this.save():!0};function ib(a){return!0===a.vh||null===a.vh&&void 0===a.pa.run?(db(a),!0):!1}h.Je=function(){};h.yj=function(){return 0};function hb(a){void 0===a.Gg&&(a.Gg=0);void 0===a.of&&(a.of=-1);void 0===a.pf&&(a.pf=-1);a.ng=0<=a.Gg&&0c&&(c=60);2>c&&(c=2);var d=1;b&&1a.Ag&&(c=Math.round(c/a.zd));return c}function fb(a){a.Lc=0;a.Dg=1;a.fe=a.Ed=a.Mc=a.A=0;hb(a);lb(a,1)} -function lb(a,b,c){void 0!==b&&(0.8>a.Lc/a.Ce&&(b=1),a.zd=b,b=a.Ag*a.zd,a.Ce!=b&&(a.Ce=b,b=a.Ce.toFixed(2)+"Mhz",a.pa.setSpeed&&(a.pa.setSpeed.innerHTML=b),a.ec("target speed: "+b)),c&&a.Je());mb(a,a.Ed);a.Ed=0;a.De=ga();a.ce=0;nb(a)} -function db(a,b){if(Ha(a,!0)){a.rc||(lb(a),a.Ga&&a.Ga.start(a.De,ob(a)),a.rc=!0,a.ha&&pb(a.ha),a.pa.run&&(a.pa.run.innerHTML="Halt"),b&&a.Je());a.Ii>=a.cd&&nb(a,!0);a.tf=0;a.Cg=ga();if(a.ce){var c=a.Cg-a.ce;c>a.Ej&&(a.De+=c,a.De>a.Cg&&(a.De=a.Cg))}try{do{a.Yk(a.ng?1:Math.round(a.Im/a.Dg));var d=a.Mc-a.A;a.Ed+=d;a.tf+=d;mb(a,0,!0);var c=a,e=d;if(c.ng){var f=!1;c.Fg=c.Fg+c.yj()|0;c.Ee-=e;0>=c.Ee&&(c.Ee+=c.of,f=!0);0<=c.pf&&c.pf<=ob(c)&&(c.of=c.pf=-1,hb(c),jb(c),f=!0);f&&c.ec(ob(c)+" cycles: checksum="+ -p(c.Fg))}a.rf-=d;0>=a.rf&&(a.rf+=a.Ij,a.gf());a.qf-=d;0>=a.qf&&(a.qf+=a.Hj,a.ff());a.sf-=d;if(0>=a.sf){a.sf+=a.Th;break}}while(a.rc)}catch(l){jb(a);a.gf();a.ff();a.Ga&&a.Ga.stop(ga(),ob(a));Ha(a,!1);Ja(a,l.message);return}d=setTimeout;c=a.Om;a.ce=ga();e=a.Ej;a.tf&&(e=Math.round(e*a.tf/a.Th));e-=a.ce-a.Cg;if(f=a.ce-a.De)a.Lc=Math.round(a.Ed/(10*f))/100,864E5<=f&&(a.fe=0,a.ha&&qb(a.ha,!0),lb(a));if(0>e||a.Lc=this.of?12:14;this.oc=1<>2;this.fb=this.oc-1;this.hg=(this.hh+this.oc)/this.oc|0;this.Xd=this.hg-1;this.Uf=[];this.Vf=[];this.Ph();this.Ma()}y(w,Ma);Ma.prototype.Ph=function(){this.Ba=Array(this.hg);for(var a=0;a>a.Mb;0>this.Mb;0>a.Mb;0>a.Mb].Si(b&a.fb)}function Ua(a,b){var c=b&a.fb,d=(b&a.Vc)>>a.Mb;return c!=a.fb?a.Ba[d].Rn(c):a.Ba[d++].Si(c)|a.Ba[d&a.Xd].Si(0)<<8} +function Va(a,b,c){a.Ba[(b&a.Vc)>>a.Mb].$i(b&a.fb,c&255)}function Wa(a,b,c){var d=b&a.fb;b=(b&a.Vc)>>a.Mb;d!=a.fb?a.Ba[b].ao(d,c&65535):(a.Ba[b++].$i(d,c&255),a.Ba[b&a.Xd].$i(0,c>>8&255))}function Xa(a){for(var b=0,c=[],d=0;d>2);for(d=0;d>2]>>>((a&3)<<3)&255},Sn:function(a){var b=a>>2;a=(a&3)<<3;var c=this.oa[b]>>>a;return 24>a?c&65535:c&255|(this.oa[b+1]&255)<<8},Zn:function(a,b){var c=a>>2,d=(a&3)<<3;this.oa[c]=this.oa[c]&~(255<>2,d=(a&3)<<3;24>d?this.oa[c]=this.oa[c]&~(65535<>8);this.Za=!0},save:function(){return this.da? +null:this.oa},restore:function(a){return this.da?null==a:a&&this.ol==a.length<<2?(this.oa=a,this.Za=!0):!1},oe:function(a,b){a||(a=[]);void 0===b&&(b=!0);var c=a;this.wc=c[0]?c[0]:this.Qg;this.Qn=c[1]?c[1]:this.Qg;b&&(this.Si=c[0]?c[0]:this.Qg,this.Rn=c[1]?c[1]:this.Qg);c=a;this.zc=c[2]&&!this.yj?c[2]:this.$g;this.$n=c[3]&&!this.yj?c[3]:this.$g;b&&(this.$i=c[2]?c[2]:this.$g,this.ao=c[3]?c[3]:this.$g)}};var bb=[Na.prototype.Pn,Na.prototype.Sn,Na.prototype.Zn,Na.prototype.bo]; +function cb(a,b){w.call(this,"CPU",a,cb);var c=a.cycles||b,d=a.multiplier||1;this.aa={};this.aa.fd=c;this.aa.Cd=d;this.aa.Cg=Math.round(this.aa.fd/1E4)/100;this.aa.Ge=this.aa.Cg*this.aa.Cd;this.ma.Cb=!1;this.ma.tc=!1;this.ma.yh=a.autoStart;c=za.autostart;void 0!==c&&(this.ma.yh="true"==c?!0:"false"==c?!1:null);this.ma.pg=!1;this.aa.Hg=this.aa.Ie=0;this.aa.Ig=a.csStart;this.aa.qf=a.csInterval;this.aa.rf=a.csStop;var e=this;this.Sm=function(){db(e)};this.Ma()}y(w,cb);h=cb.prototype; +h.lc=function(a,b,c,d){this.pa=b;this.Pa=d;this.Ia=a;var e=D(a,"Video");e&&(this.kf=function(){eb(e)},this.Ne=function(){e.Ne()});this.ia=D(a,"ChipSet");this.Ma()};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};h.Pb=function(a,b){if(!b){if(a&&this.restore){fb(this);if(!this.restore(a))return!1;gb(this)}else this.reset();this.fc("No debugger detected")}this.ma.Cb=!0;!ib(this)&&this.Pa&&this.Pa.Ho();this.kf();this.jf();return!0}; +h.Ob=function(a){this.ma.Cb=!1;return a&&this.save?this.save():!0};function ib(a){return!0===a.ma.yh||null===a.ma.yh&&void 0===a.ra.run?(db(a),!0):!1}h.Ne=function(){};h.Cj=function(){return 0};function gb(a){void 0===a.aa.Ig&&(a.aa.Ig=0);void 0===a.aa.qf&&(a.aa.qf=-1);void 0===a.aa.rf&&(a.aa.rf=-1);a.ma.pg=0<=a.aa.Ig&&0c&&(c=60);2>c&&(c=2);var d=1;b&&1a.aa.Cg&&(c=Math.round(c/a.aa.Cd));return c}function fb(a){a.aa.Oc=0;a.Fg=1;a.je=a.Hd=a.Pc=a.A=0;gb(a);lb(a,1)} +function lb(a,b,c){void 0!==b&&(0.8>a.aa.Oc/a.aa.Ge&&(b=1),a.aa.Cd=b,b=a.aa.Cg*a.aa.Cd,a.aa.Ge!=b&&(a.aa.Ge=b,b=a.aa.Ge.toFixed(2)+"Mhz",a.ra.setSpeed&&(a.ra.setSpeed.innerHTML=b),a.fc("target speed: "+b)),c&&a.Ne());mb(a,a.Hd);a.Hd=0;a.aa.He=ga();a.aa.ge=0;nb(a)} +function db(a,b){if(Ha(a,!0)){a.ma.tc||(lb(a),a.Ia&&a.Ia.start(a.aa.He,ob(a)),a.ma.tc=!0,a.ia&&pb(a.ia),a.ra.run&&(a.ra.run.innerHTML="Halt"),b&&a.Ne());a.aa.Xh>=a.aa.fd&&nb(a,!0);a.aa.vf=0;a.aa.Eg=ga();if(a.aa.ge){var c=a.aa.Eg-a.aa.ge;c>a.aa.Ij&&(a.aa.He+=c,a.aa.He>a.aa.Eg&&(a.aa.He=a.aa.Eg))}try{do{a.bl(a.ma.pg?1:Math.round(a.aa.Mm/a.Fg));var d=a.Pc-a.A;a.Hd+=d;a.aa.vf+=d;mb(a,0,!0);var c=a,e=d;if(c.ma.pg){var f=!1;c.aa.Hg=c.aa.Hg+c.Cj()|0;c.aa.Ie-=e;0>=c.aa.Ie&&(c.aa.Ie+=c.aa.qf,f=!0);0<=c.aa.rf&& +c.aa.rf<=ob(c)&&(c.aa.qf=c.aa.rf=-1,gb(c),jb(c),f=!0);f&&c.fc(ob(c)+" cycles: checksum="+p(c.aa.Hg))}a.aa.tf-=d;0>=a.aa.tf&&(a.aa.tf+=a.aa.Mj,a.kf());a.aa.sf-=d;0>=a.aa.sf&&(a.aa.sf+=a.aa.Lj,a.jf());a.aa.uf-=d;if(0>=a.aa.uf){a.aa.uf+=a.aa.Wh;break}}while(a.ma.tc)}catch(l){jb(a);a.kf();a.jf();a.Ia&&a.Ia.stop(ga(),ob(a));Ha(a,!1);Ja(a,l.message);return}d=setTimeout;c=a.Sm;a.aa.ge=ga();e=a.aa.Ij;a.aa.vf&&(e=Math.round(e*a.aa.vf/a.aa.Wh));e-=a.aa.ge-a.aa.Eg;if(f=a.aa.ge-a.aa.He)a.aa.Oc=Math.round(a.Hd/ +(10*f))/100,864E5<=f&&(a.je=0,a.ia&&qb(a.ia,!0),lb(a));if(0>e||a.aa.Oc>13,this.hb=f):b&&768>=b?(this.va=a,this.ad=d,this.lc=e,this.Bb=(e&24576)>>13,this.hb=f):-1}function Ab(a){return this.hb+a}function Bb(a){return this.hb+a}function Cb(a,b,c){return a+b<=this.ad?this.hb+a:yb.call(this,0,0,c)} -function yb(a,b,c){c||Db.call(this.ja,13,0);return-1}function Eb(a,b,c){return a+b<=this.ad?this.hb+a:zb.call(this,0,0,c)}function zb(a,b,c){c||Db.call(this.ja,13,0);return-1}sb.prototype.save=function(){return[this.va,this.hb,this.ad,this.lc,this.Bb,this.Tg]};sb.prototype.restore=function(a){"number"==typeof a?this.load(a):(this.va=a[0],this.hb=a[1],this.ad=a[2],this.lc=a[3],this.Bb=a[4],this.Tg=a[5])}; -function ub(a,b){void 0===b&&(b=!!(a.ja.Hc&1));b?(a.load=wb,a.Uc=Cb,a.Zb=Eb):(a.load=vb,a.Uc=Ab,a.Zb=Bb);return b} -function Fb(a){this.Ea=a.model||8088;var b=0;switch(this.Ea){default:case 8088:b=4772727;break;case 80286:b=6E6}cb.call(this,a,b);this.bj=61442;this.Qf=4;this.Fe=255;this.B=80286<=this.Ea?Gb:Hb;this.La=Ib.slice();80186<=this.Ea&&(this.Fe=31,this.La[15]=G,this.La[96]=Jb,this.La[97]=Kb,this.La[98]=Lb,this.La[99]=G,this.La[100]=G,this.La[101]=G,this.La[102]=G,this.La[103]=G,this.La[104]=Mb,this.La[105]=Nb,this.La[106]=Ob,this.La[107]=Pb,this.La[108]=Qb,this.La[109]=Rb,this.La[110]=Sb,this.La[111]=Tb, -this.La[192]=Ub,this.La[193]=Vb,this.La[200]=Wb,this.La[201]=Xb,this.La[241]=Yb,Zb[7]=$b,ac[7]=$b,80286<=this.Ea&&(this.bj=2,this.Qf=0,this.La[15]=bc,this.La[99]=cc,this.La[84]=dc));this.hl=[];this.cj=[];this.Mc=this.kh=0;this.og=!1;this.za=[];this.Re=this.wb=this.Lb=this.cb=this.Td=0;this.T=this.zl;this.U=this.Al;this.O=this.Cm;this.P=this.Dm;this.R=this.Tn;this.S=this.Un;ec(this)}y(cb,Fb); -var Hb={Ji:4,$:5,oa:6,da:7,ea:8,Q:9,V:11,W:12,de:4,Kj:60,Lj:83,Fb:3,eb:9,Vb:16,Jg:1,Pj:19,Rj:28,Tj:16,Sj:21,Qj:37,Nj:2,bi:9,Oj:5,Mj:33,di:10,ci:8,zf:3,yf:15,gk:51,hk:1,ik:2,jk:4,fk:32,ei:15,lk:15,Gb:16,Hb:4,nk:11,mk:18,kk:24,mb:4,ok:2,fi:16,pk:17,ki:18,qk:19,ji:5,li:6,vk:2,uk:8,sk:9,tk:10,rk:10,mi:10,ni:10,Vj:80,Xj:144,Uj:86,Wj:154,Zj:101,ak:165,Yj:107,$j:171,xk:70,zk:113,wk:76,yk:124,ck:80,ek:128,bk:86,dk:134,Bf:3,Af:16,si:10,ri:8,Ak:51,Wb:8,Bk:17,Ck:36,cc:11,Dk:16,Cf:10,Dd:2,Zh:18,$h:7,ai:15,gi:12, -hi:7,ii:11,oi:18,pi:7,qi:15,ti:15,ui:7,vi:13,zi:11,Ai:7,Bi:8,Ek:8,Hk:12,Fk:18,Gk:17,Ik:15,xi:8,wi:20,yi:2,Ei:3,Df:9,Di:5,Ci:11,Gi:4,Fi:17,Jk:11},Gb={Ji:0,$:0,oa:0,da:0,ea:0,Q:0,V:1,W:1,de:3,Kj:14,Lj:16,Fb:2,eb:7,Vb:7,Jg:0,Pj:7,Rj:13,Tj:7,Sj:11,Qj:16,Nj:3,bi:6,Oj:2,Mj:13,di:5,ci:5,zf:2,yf:7,gk:23,hk:0,ik:1,jk:3,fk:17,ei:7,lk:11,Gb:7,Hb:3,nk:7,mk:11,kk:15,mb:2,ok:3,fi:7,pk:8,ki:8,qk:8,ji:4,li:4,vk:2,uk:3,sk:5,tk:2,rk:3,mi:5,ni:3,Vj:14,Xj:22,Uj:17,Wj:25,Zj:17,ak:25,Yj:20,$j:28,xk:13,zk:21,wk:16,yk:24, -ck:13,ek:21,bk:16,dk:24,Bf:2,Af:7,si:5,ri:5,Ak:19,Wb:5,Bk:5,Ck:17,cc:3,Dk:5,Cf:3,Dd:0,Zh:8,$h:5,ai:9,gi:5,hi:5,ii:4,oi:5,pi:5,qi:4,ti:7,ui:5,vi:8,zi:3,Ai:4,Bi:3,Ek:11,Hk:11,Fk:15,Gk:15,Ik:7,xi:5,wi:8,yi:0,Ei:2,Df:6,Di:3,Ci:6,Gi:3,Fi:5,Jk:5};h=Fb.prototype;h.Mh=function(a,b,c,d,e){this.za=a;this.Re=this.wb=b;this.Lb=c;this.cb=d;this.Td=e};h.reset=function(){this.rc&&jb(this);ec(this);fb(this);this.Yc=!1}; -function ec(a){a.H=0;a.C=0;a.J=0;a.K=0;a.Y=0;a.I=0;a.G=0;a.F=0;a.Hc=65520;a.zc=0;a.Od=1023;a.qc={Ki:0,va:0,lc:0,zg:-1};a.Ad=0;a.wa=new sb(a,"CS");a.Xb=new sb(a,"DS");a.Rb=new sb(a,"SS");a.fb=new sb(a,"ES");a.Wk=new sb(a,"ZERO");fc(a,0,65535);80286<=a.Ea&&(a.yc=0,a.se=65535,a.je=new sb(a,"LDT",!0),a.Mf=new sb(a,"TSS",!0),a.sb=new sb(a,"VER",!0),fc(a,65520,61440),a.wa.hb=16711680);gc(a,0);hc(a);a.Ya=0;a.nb=a.Hf=-1;a.ag=0;a.fa=a.Ca=-1;a.D=a.Xb;a.N=a.Rb;a.Z=a.ra=0} -h.yj=function(){var a=this.H+this.C+this.J+this.K+this.Y+this.I+this.G+this.F|0;return a=a+this.sa+this.wa.va+this.Xb.va+this.Rb.va+this.fb.va+ic(this)|0};function jc(a,b){var c=a.cj[b];null!=c&&(c(--a.kh),delete a.cj[b])}function hc(a,b){void 0===b&&(b=!!(a.Hc&1));kc=b?lc:mc;ub(a.wa,b);ub(a.Xb,b);ub(a.Rb,b);ub(a.fb,b)} -h.save=function(){var a=new H(this);a.set(0,[this.H,this.C,this.J,this.K,this.Y,this.I,this.G,this.F,this.Ad]);a.set(1,[this.sa,this.wa.save(),this.Xb.save(),this.Rb.save(),this.fb.save(),null!=this.yc?[this.Hc,this.yc,this.se,this.zc,this.Od,this.je.save(),this.Mf.save(),this.Ad]:null,ic(this)]);a.set(2,[this.D.Tg,this.N.Tg,this.Z,this.ra,this.Ya,this.fa,this.Ca]);a.set(3,[this.Dg,this.fe,this.zd]);a.set(4,Xa(this.na));return a.data()}; -h.restore=function(a){var b;b=a[0];this.H=b[0];this.C=b[1];this.J=b[2];this.K=b[3];this.Y=b[4];this.I=b[5];this.G=b[6];this.F=b[7];this.Ad=b[8]||0;b=a[1];this.wa.restore(b[1]);this.Xb.restore(b[2]);this.Rb.restore(b[3]);this.fb.restore(b[4]);var c=b[5];c&&c.length&&(this.Hc=c[0],this.yc=c[1],this.se=c[2],this.zc=c[3],this.Od=c[4],this.je.restore(c[5]),this.Mf.restore(c[6]),this.Ad=c[7],this.mf=this.wa.Bb,hc(this));gc(this,b[6]);I(this,b[0]);b=a[2];this.D=nc(this,b[0]);this.N=nc(this,b[1]);this.Z= -b[2];this.ra=b[3];this.Ya=b[4];this.fa=b[5];this.Ca=b[6];b=a[3];this.Dg=b[0];this.fe=b[1];lb(this,b[2]);a:{b=this.na;a=a[4];for(c=0;c>1?128:0}function Bc(a){return(a.ga^a.ia^a.ga>>1)&a.aa>>1?2048:0}function Cc(a){a.X&=~a.aa}function Dc(a){a.ia=a.ga&16|a.ia&-17}function Ec(a){a.X|=a.aa-1}function Fc(a){a.ga&=~a.aa;a.ia=a.ga&32896|a.ia&-32897}function Gc(a){a.X|=a.aa}function Hc(a){a.ia=~(a.ga&16)&16|a.ia&-17}function Ic(a){a.X&=~(a.aa-1)}function Jc(a){Ac(a)||(a.ga^=a.aa>>1|a.aa>>2,a.ia^=32896)}function Kc(a){a.ga|=a.aa;a.ia=a.ga&32896|a.ia&-32897} -function ic(a){return a.Da&-2262|wc(a)|xc(a)|yc(a)|zc(a)|Ac(a)|Bc(a)}function gc(a,b){a.aa=256;a.X=a.ga=a.ia=0;b&1&&Gc(a);b&4||(a.ga|=1);b&16&&(a.ia|=16);b&64||Ec(a);b&128&&Jc(a);b&2048&&Kc(a);a.mf?b=b&-12289|a.Da&12288:(a.Ad=(b&12288)>>12,!a.Ad||a.Hc&1||(a.Ad=0));a.mf>a.Ad&&(b=b&-513|a.Da&512);a.Da=a.Da&-1793|b&1792|a.bj;a.Da&256&&(a.Ya|=2,a.Z|=4)} -h.tb=function(a,b,c,d){var e=!1;switch(c){case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "CS":case "DS":case "SS":case "ES":case "IP":case "PC":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "O":this.pa[c]=d;e=!0;break;default:e=cb.prototype.tb.call(this,a,b,c,d)}return e};function Lc(a,b){return a.za[(b&a.wb)>>a.Lb].uc(b&a.cb)} -function F(a,b){var c=b&a.cb,d=(b&a.wb)>>a.Lb;a.A-=a.B.Ji;return c!=a.cb?a.za[d].Mn(c):a.za[d++].uc(c)|a.za[d&a.Td].uc(0)<<8}function Mc(a,b,c){a.za[(b&a.wb)>>a.Lb].xc(b&a.cb,c&255)}function Nc(a,b,c){var d=b&a.cb;b=(b&a.wb)>>a.Lb;a.A-=a.B.Ji;d!=a.cb?a.za[b].Wn(d,c&65535):(a.za[b++].xc(d,c&255),a.za[b&a.Td].xc(0,c>>8&255))}h.zl=function(a,b){this.Lf=a;this.fa=a.Uc(this.Ef=b,0);return this.Z&1?0:Lc(this,this.fa)};h.Al=function(a,b){this.Lf=a;this.fa=a.Uc(this.Ef=b,1);return this.Z&1?0:F(this,this.fa)}; -h.Cm=function(a,b){this.Lf=a;this.Ca=this.fa=a.Uc(this.Ef=b,0);return this.Z&1?0:Lc(this,this.fa)};h.Dm=function(a,b){this.Lf=a;this.Ca=this.fa=a.Uc(this.Ef=b,1);return this.Z&1?0:F(this,this.fa)};h.Tn=function(a){this.Z&2||Mc(this,this.Lf.Zb(this.Ef,1),a)};h.Un=function(a){this.Z&2||Nc(this,this.Lf.Zb(this.Ef,2),a)};h.ba=function(){var a=Lc(this,this.Fa);this.Fa=this.wa.hb+(this.sa=this.sa+1&65535);return a}; -h.M=function(){var a=Lc(this,this.Fa)<<24>>24;this.Fa=this.wa.hb+(this.sa=this.sa+1&65535);return a&65535};h.L=function(){var a=F(this,this.Fa);this.Fa=this.wa.hb+(this.sa=this.sa+2&65535);return a};h.Ba=function(){var a=this.Y;this.Y=this.Y+2&65535;return F(this,this.Rb.Uc(a,1))};function K(a,b){var c=a.Y=a.Y-2&65535;Nc(a,a.Rb.Zb(c,1),b)} -h.ff=function(){E(this,"AX",this.H);E(this,"BX",this.C);E(this,"CX",this.J);E(this,"DX",this.K);E(this,"SP",this.Y);E(this,"BP",this.I);E(this,"SI",this.G);E(this,"DI",this.F);E(this,"CS",this.wa.va);E(this,"DS",this.Xb.va);E(this,"SS",this.Rb.va);E(this,"ES",this.fb.va);E(this,"IP",this.sa);var a=ic(this);E(this,"PS",a);E(this,"C",a&1?1:0,1);E(this,"P",a&4?1:0,1);E(this,"A",a&16?1:0,1);E(this,"Z",a&64?1:0,1);E(this,"S",a&128?1:0,1);E(this,"T",a&256?1:0,1);E(this,"I",a&512?1:0,1);E(this,"D",a&1024? -1:0,1);E(this,"O",a&2048?1:0,1);this.pa.speed&&(this.pa.speed.innerHTML=this.rc&&this.Lc?this.Lc.toFixed(2)+"Mhz":"Stopped")}; -h.Yk=function(a){this.og=!0;this.Mc=this.A=a;this.ha&&qb(this.ha);a||!this.Na||this.Na.Bo(Oc)||(this.Z|=4);do{if(a=this.Z&240)this.ra|=a;else if(this.Mg=this.Fa,this.fa=this.Ca=-1,this.D=this.Xb,this.N=this.Rb,this.ra=this.Z&256,this.Ya){a:{if(!(this.Z&4))if(this.Ya&1&&this.Da&512){if(a=Pc(this.ha),-1<=a&&(this.Ya&=-2,0<=a)){this.Ya&=-5;Qc.call(this,a,null,11);break a}}else if(this.Ya&2){this.Ya&=-3;Qc.call(this,1,null,11);break a}if(a=this.Ya&8){a=this.ha;for(var b=!1,c=0;cthis.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=a+b)&255} -function Tc(a,b){this.aa=256;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=this.ia=a|b)&255}function Uc(a,b){this.ia=a^b;this.X=this.ga=a+b+(this.X&this.aa?1:0);this.aa=256;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return this.X&255}function Vc(a,b){this.ia=a^b;this.X=this.ga=a-b-(this.X&this.aa?1:0);this.aa=256;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return this.X&255} -function Wc(a,b){this.aa=256;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=this.ia=a&b)&255}function Xc(a,b){this.ia=a^b;this.aa=256;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=a-b)&255}function Yc(a,b){this.aa=256;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=this.ia=a^b)&255} -function Zc(a,b){this.ia=a^b;this.aa=256;this.X=this.ga=a-b;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.bi:this.B.eb;this.Z|=2;return a}function $c(a,b){this.ia=a^b;this.aa=65536;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=a+b)&65535}function ad(a,b){this.aa=65536;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=this.ia=a|b)&65535} -function bd(a,b){this.ia=a^b;this.X=this.ga=a+b+(this.X&this.aa?1:0);this.aa=65536;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return this.X&65535}function cd(a,b){this.ia=a^b;this.X=this.ga=a-b-(this.X&this.aa?1:0);this.aa=65536;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return this.X&65535}function dd(a,b){this.aa=65536;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=this.ia=a&b)&65535} -function ed(a,b){this.ia=a^b;this.aa=65536;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=a-b)&65535}function fd(a,b){this.aa=65536;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.eb:this.B.Vb;return(this.X=this.ga=this.ia=a^b)&65535}function gd(a,b){this.ia=a^b;this.aa=65536;this.X=this.ga=a-b;this.A-=0>this.Ca?0>this.fa?this.B.Fb:this.B.bi:this.B.eb;this.Z|=2;return a}function hd(a,b){this.X=this.X&this.aa-1|(a&b?this.aa:0);(a^a>>1)&b>>1?Kc(this):Fc(this)} +0,0,1,1,0,1,0,0,1];function sb(a,b,c){this.ka=a;this.jb=this.Aa=0;this.dd=65535;this.xb=0;this.vj="CS"==b;this.Vg=b;this.kc=this.rc=0;tb(this,c)}function vb(a){this.Aa=a;this.dd=65535;this.rc=this.kc=0;return this.jb=a<<4} +function wb(a){var b,c;a&4?(b=this.ka.ne.jb,c=this.ka.ne.dd):(b=this.ka.Ac,c=this.ka.we);b+=a&65528;if(b+7<=c){this.ka.A-=15;c=F(this.ka,b+0);var d=F(this.ka,b+4);b=F(this.ka,b+2)|(d&255)<<16;var e;d&4096||(e=d&7936)&&768>=e?(this.Aa=a,this.jb=b,this.dd=c,this.xb=d&65280,this.type=d&7936,tb(this)):b=-1;return b}return-1}function xb(a){return this.jb+a}function yb(a){return this.jb+a}function zb(a,b,c){return a+b<=this.dd?this.jb+a:Ab.call(this,0,0,c)} +function Ab(a,b,c){c||Bb.call(this.ka,13,0);return-1}function Cb(a,b,c){return a+b<=this.dd?this.jb+a:Db.call(this,0,0,c)}function Db(a,b,c){c||Bb.call(this.ka,13,0);return-1}function Eb(a,b,c){var d=F(a.ka,c+2),e=F(a.ka,c+0)|(d&255)<<16;c=F(a.ka,c+4);a.Aa=b;a.jb=e;a.dd=c;a.xb=d&65280;tb(a)}sb.prototype.save=function(){return[this.Aa,this.jb,this.dd,this.xb,this.vj,this.Vg,this.rc,this.kc]}; +sb.prototype.restore=function(a){"number"==typeof a?this.load(a):(this.Aa=a[0],this.jb=a[1],this.dd=a[2],this.xb=a[3],this.vj=a[4],this.Vg=a[5],this.rc=a[6],this.kc=a[7])};function tb(a,b){void 0===b&&(b=!!(a.ka.Jc&1));b?(a.load=wb,a.Yc=zb,a.$b=Cb,a.xb&4096&&(6144==(a.xb&6656)&&(a.$b=Ab),a.xb&2048||!(a.xb&512))&&(a.$b=Db),a.rc=a.Aa&3,a.kc=(a.xb&24576)>>13):(a.load=vb,a.Yc=xb,a.$b=yb,a.rc=a.kc=0)} +function Fb(a){this.Ga=a.model||8088;var b=0;switch(this.Ga){default:case 8088:b=4772727;break;case 80286:b=6E6}cb.call(this,a,b);this.ej=61442;this.Sf=4;this.Je=255;this.B=80286<=this.Ga?Gb:Hb;this.Na=Ib.slice();80186<=this.Ga&&(this.Je=31,this.Na[15]=G,this.Na[96]=Jb,this.Na[97]=Kb,this.Na[98]=Lb,this.Na[99]=G,this.Na[100]=G,this.Na[101]=G,this.Na[102]=G,this.Na[103]=G,this.Na[104]=Mb,this.Na[105]=Nb,this.Na[106]=Ob,this.Na[107]=Pb,this.Na[108]=Qb,this.Na[109]=Rb,this.Na[110]=Sb,this.Na[111]=Tb, +this.Na[192]=Ub,this.Na[193]=Vb,this.Na[200]=Wb,this.Na[201]=Xb,this.Na[241]=Yb,Zb[7]=$b,ac[7]=$b,80286<=this.Ga&&(this.ej=2,this.Sf=0,this.Na[15]=bc,this.Na[99]=cc,this.Na[84]=dc));this.ll=[];this.fj=[];this.Pc=this.nh=0;this.ma.qg=this.ma.xl=!1;this.Ba=[];this.Sd=this.Mb=this.fb=this.Xd=0;this.T=this.El;this.U=this.Fl;this.O=this.Gm;this.P=this.Hm;this.R=this.Xn;this.S=this.Yn;ec(this)}y(cb,Fb); +var Hb={Mi:4,$:5,qa:6,ea:7,fa:8,Q:9,V:11,W:12,he:4,Oj:60,Pj:83,Gb:3,gb:9,Wb:16,Lg:1,Tj:19,Vj:28,Xj:16,Wj:21,Uj:37,Rj:2,fi:9,Sj:5,Qj:33,hi:10,gi:8,Bf:3,Af:15,kk:51,lk:1,mk:2,nk:4,jk:32,ii:15,pk:15,Hb:16,Ib:4,rk:11,qk:18,ok:24,ob:4,sk:2,ji:16,tk:17,oi:18,uk:19,ni:5,pi:6,zk:2,yk:8,wk:9,xk:10,vk:10,qi:10,ri:10,Zj:80,ak:144,Yj:86,$j:154,ck:101,ek:165,bk:107,dk:171,Bk:70,Dk:113,Ak:76,Ck:124,gk:80,ik:128,fk:86,hk:134,Df:3,Cf:16,wi:10,vi:8,Ek:51,Xb:8,Fk:17,Gk:36,dc:11,Hk:16,Ef:10,Gd:2,ci:18,di:7,ei:15,ki:12, +li:7,mi:11,si:18,ti:7,ui:15,xi:15,yi:7,zi:13,Di:11,Ei:7,Fi:8,Ik:8,Lk:12,Jk:18,Kk:17,Mk:15,Bi:8,Ai:20,Ci:2,Ii:3,Ff:9,Hi:5,Gi:11,Ki:4,Ji:17,Nk:11},Gb={Mi:0,$:0,qa:0,ea:0,fa:0,Q:0,V:1,W:1,he:3,Oj:14,Pj:16,Gb:2,gb:7,Wb:7,Lg:0,Tj:7,Vj:13,Xj:7,Wj:11,Uj:16,Rj:3,fi:6,Sj:2,Qj:13,hi:5,gi:5,Bf:2,Af:7,kk:23,lk:0,mk:1,nk:3,jk:17,ii:7,pk:11,Hb:7,Ib:3,rk:7,qk:11,ok:15,ob:2,sk:3,ji:7,tk:8,oi:8,uk:8,ni:4,pi:4,zk:2,yk:3,wk:5,xk:2,vk:3,qi:5,ri:3,Zj:14,ak:22,Yj:17,$j:25,ck:17,ek:25,bk:20,dk:28,Bk:13,Dk:21,Ak:16,Ck:24, +gk:13,ik:21,fk:16,hk:24,Df:2,Cf:7,wi:5,vi:5,Ek:19,Xb:5,Fk:5,Gk:17,dc:3,Hk:5,Ef:3,Gd:0,ci:8,di:5,ei:9,ki:5,li:5,mi:4,si:5,ti:5,ui:4,xi:7,yi:5,zi:8,Di:3,Ei:4,Fi:3,Ik:11,Lk:11,Jk:15,Kk:15,Mk:7,Bi:5,Ai:8,Ci:0,Ii:2,Ff:6,Hi:3,Gi:6,Ki:3,Ji:5,Nk:5};h=Fb.prototype;h.Ph=function(a,b,c,d,e){this.Ba=a;this.Sd=b;this.Mb=c;this.fb=d;this.Xd=e};h.reset=function(){this.ma.tc&&jb(this);ec(this);fb(this);this.ma.Mc=!1}; +function ec(a){a.H=0;a.C=0;a.J=0;a.K=0;a.Y=0;a.I=0;a.G=0;a.F=0;a.Jc=65520;a.Bc=0;a.Rd=1023;a.sc={Ni:0,Aa:0,xb:0,Bg:-1};a.Dd=0;a.xa=new sb(a,"CS");a.Yb=new sb(a,"DS");a.Sb=new sb(a,"SS");a.hb=new sb(a,"ES");a.$k=new sb(a,"ZERO");fc(a,0,65535);80286<=a.Ga&&(a.Ac=0,a.we=65535,a.ne=new sb(a,"LDT",!0),a.Of=new sb(a,"TSS",!0),a.ub=new sb(a,"VER",!0),fc(a,65520,61440),a.xa.jb=16711680);gc(a,0);hc(a);a.$a=0;a.pb=a.Jf=-1;a.cg=0;a.ga=a.Ea=-1;a.D=a.Yb;a.N=a.Sb;a.Z=a.ta=0} +h.Cj=function(){var a=this.H+this.C+this.J+this.K+this.Y+this.I+this.G+this.F|0;return a=a+this.ua+this.xa.Aa+this.Yb.Aa+this.Sb.Aa+this.hb.Aa+ic(this)|0};function jc(a,b){var c=a.fj[b];null!=c&&(c(--a.nh),delete a.fj[b])}function hc(a,b){void 0===b&&(b=!!(a.Jc&1));kc=b?lc:mc;tb(a.xa,b);tb(a.Yb,b);tb(a.Sb,b);tb(a.hb,b)} +h.save=function(){var a=new H(this);a.set(0,[this.H,this.C,this.J,this.K,this.Y,this.I,this.G,this.F,this.Dd]);a.set(1,[this.ua,this.xa.save(),this.Yb.save(),this.Sb.save(),this.hb.save(),null!=this.Ac?[this.Jc,this.Ac,this.we,this.Bc,this.Rd,this.ne.save(),this.Of.save(),this.Dd]:null,ic(this)]);a.set(2,[this.D.Vg,this.N.Vg,this.Z,this.ta,this.$a,this.ga,this.Ea]);a.set(3,[this.Fg,this.je,this.aa.Cd]);a.set(4,Xa(this.pa));return a.data()}; +h.restore=function(a){var b;b=a[0];this.H=b[0];this.C=b[1];this.J=b[2];this.K=b[3];this.Y=b[4];this.I=b[5];this.G=b[6];this.F=b[7];this.Dd=b[8]||0;b=a[1];this.xa.restore(b[1]);this.Yb.restore(b[2]);this.Sb.restore(b[3]);this.hb.restore(b[4]);var c=b[5];c&&c.length&&(this.Jc=c[0],this.Ac=c[1],this.we=c[2],this.Bc=c[3],this.Rd=c[4],this.ne.restore(c[5]),this.Of.restore(c[6]),this.Dd=c[7],hc(this));gc(this,b[6]);I(this,b[0]);b=a[2];this.D=nc(this,b[0]);this.N=nc(this,b[1]);this.Z=b[2];this.ta=b[3];this.$a= +b[4];this.ga=b[5];this.Ea=b[6];b=a[3];this.Fg=b[0];this.je=b[1];lb(this,b[2]);a:{b=this.pa;a=a[4];for(c=0;c>1?128:0} +function Bc(a){return(a.ha^a.ja^a.ha>>1)&a.ba>>1?2048:0}function Cc(a){a.X&=~a.ba}function Dc(a){a.ja=a.ha&16|a.ja&-17}function Ec(a){a.X|=a.ba-1}function Fc(a){a.ha&=~a.ba;a.ja=a.ha&32896|a.ja&-32897}function Gc(a){a.X|=a.ba}function Hc(a){a.ja=~(a.ha&16)&16|a.ja&-17}function Ic(a){a.X&=~(a.ba-1)}function Jc(a){Ac(a)||(a.ha^=a.ba>>1|a.ba>>2,a.ja^=32896)}function Kc(a){a.ha|=a.ba;a.ja=a.ha&32896|a.ja&-32897}function ic(a){return a.Fa&-2262|wc(a)|xc(a)|yc(a)|zc(a)|Ac(a)|Bc(a)} +function gc(a,b){a.ba=256;a.X=a.ha=a.ja=0;b&1&&Gc(a);b&4||(a.ha|=1);b&16&&(a.ja|=16);b&64||Ec(a);b&128&&Jc(a);b&2048&&Kc(a);a.xa.rc?b=b&-12289|a.Fa&12288:(a.Dd=(b&12288)>>12,!a.Dd||a.Jc&1||(a.Dd=0));a.xa.rc>a.Dd&&(b=b&-513|a.Fa&512);a.Fa=a.Fa&-1793|b&1792|a.ej;a.Fa&256&&(a.$a|=2,a.Z|=4)} +h.vb=function(a,b,c,d){var e=!1;switch(c){case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "CS":case "DS":case "SS":case "ES":case "IP":case "PC":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "O":this.ra[c]=d;e=!0;break;default:e=cb.prototype.vb.call(this,a,b,c,d)}return e};function Lc(a,b){return a.Ba[(b&a.Sd)>>a.Mb].wc(b&a.fb)} +function F(a,b){var c=b&a.fb,d=(b&a.Sd)>>a.Mb;a.A-=a.B.Mi;return c!=a.fb?a.Ba[d].Qn(c):a.Ba[d++].wc(c)|a.Ba[d&a.Xd].wc(0)<<8}function Mc(a,b,c){a.Ba[(b&a.Sd)>>a.Mb].zc(b&a.fb,c&255)}function Nc(a,b,c){var d=b&a.fb;b=(b&a.Sd)>>a.Mb;a.A-=a.B.Mi;d!=a.fb?a.Ba[b].$n(d,c&65535):(a.Ba[b++].zc(d,c&255),a.Ba[b&a.Xd].zc(0,c>>8&255))}h.El=function(a,b){this.Nf=a;this.ga=a.Yc(this.Gf=b,0);return this.Z&1?0:Lc(this,this.ga)};h.Fl=function(a,b){this.Nf=a;this.ga=a.Yc(this.Gf=b,1);return this.Z&1?0:F(this,this.ga)}; +h.Gm=function(a,b){this.Nf=a;this.Ea=this.ga=a.Yc(this.Gf=b,0);return this.Z&1?0:Lc(this,this.ga)};h.Hm=function(a,b){this.Nf=a;this.Ea=this.ga=a.Yc(this.Gf=b,1);return this.Z&1?0:F(this,this.ga)};h.Xn=function(a){this.Z&2||Mc(this,this.Nf.$b(this.Gf,1),a)};h.Yn=function(a){this.Z&2||Nc(this,this.Nf.$b(this.Gf,2),a)};h.ca=function(){var a=Lc(this,this.Ha);this.Ha=this.xa.jb+(this.ua=this.ua+1&65535);return a}; +h.M=function(){var a=Lc(this,this.Ha)<<24>>24;this.Ha=this.xa.jb+(this.ua=this.ua+1&65535);return a&65535};h.L=function(){var a=F(this,this.Ha);this.Ha=this.xa.jb+(this.ua=this.ua+2&65535);return a};h.Da=function(){var a=this.Y;this.Y=this.Y+2&65535;return F(this,this.Sb.Yc(a,1))};function K(a,b){var c=a.Y=a.Y-2&65535;Nc(a,a.Sb.$b(c,1),b)} +h.jf=function(){E(this,"AX",this.H);E(this,"BX",this.C);E(this,"CX",this.J);E(this,"DX",this.K);E(this,"SP",this.Y);E(this,"BP",this.I);E(this,"SI",this.G);E(this,"DI",this.F);E(this,"CS",this.xa.Aa);E(this,"DS",this.Yb.Aa);E(this,"SS",this.Sb.Aa);E(this,"ES",this.hb.Aa);E(this,"IP",this.ua);var a=ic(this);E(this,"PS",a);E(this,"C",a&1?1:0,1);E(this,"P",a&4?1:0,1);E(this,"A",a&16?1:0,1);E(this,"Z",a&64?1:0,1);E(this,"S",a&128?1:0,1);E(this,"T",a&256?1:0,1);E(this,"I",a&512?1:0,1);E(this,"D",a&1024? +1:0,1);E(this,"O",a&2048?1:0,1);this.ra.speed&&(this.ra.speed.innerHTML=this.ma.tc&&this.aa.Oc?this.aa.Oc.toFixed(2)+"Mhz":"Stopped")}; +h.bl=function(a){this.ma.qg=!0;this.ma.xl=!1;this.Pc=this.A=a;this.ia&&qb(this.ia);a||!this.Pa||this.Pa.Fo(Oc)||(this.Z|=4);do{if(a=this.Z&240)this.ta|=a;else if(this.Og=this.Ha,this.ga=this.Ea=-1,this.D=this.Yb,this.N=this.Sb,this.ta=this.Z&256,this.$a){a:{if(!(this.Z&4))if(this.$a&1&&this.Fa&512){if(a=Pc(this.ia),-1<=a&&(this.$a&=-2,0<=a)){this.$a&=-5;Qc.call(this,a,null,11);break a}}else if(this.$a&2){this.$a&=-3;Qc.call(this,1,null,11);break a}if(a=this.$a&8){a=this.ia;for(var b=!1,c=0;cthis.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=a+b)&255} +function Tc(a,b){this.ba=256;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=this.ja=a|b)&255}function Uc(a,b){this.ja=a^b;this.X=this.ha=a+b+(this.X&this.ba?1:0);this.ba=256;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return this.X&255}function Vc(a,b){this.ja=a^b;this.X=this.ha=a-b-(this.X&this.ba?1:0);this.ba=256;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return this.X&255} +function Wc(a,b){this.ba=256;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=this.ja=a&b)&255}function Xc(a,b){this.ja=a^b;this.ba=256;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=a-b)&255}function Yc(a,b){this.ba=256;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=this.ja=a^b)&255} +function Zc(a,b){this.ja=a^b;this.ba=256;this.X=this.ha=a-b;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.fi:this.B.gb;this.Z|=2;return a}function $c(a,b){this.ja=a^b;this.ba=65536;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=a+b)&65535}function ad(a,b){this.ba=65536;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=this.ja=a|b)&65535} +function bd(a,b){this.ja=a^b;this.X=this.ha=a+b+(this.X&this.ba?1:0);this.ba=65536;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return this.X&65535}function cd(a,b){this.ja=a^b;this.X=this.ha=a-b-(this.X&this.ba?1:0);this.ba=65536;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return this.X&65535}function dd(a,b){this.ba=65536;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=this.ja=a&b)&65535} +function ed(a,b){this.ja=a^b;this.ba=65536;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=a-b)&65535}function fd(a,b){this.ba=65536;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.gb:this.B.Wb;return(this.X=this.ha=this.ja=a^b)&65535}function gd(a,b){this.ja=a^b;this.ba=65536;this.X=this.ha=a-b;this.A-=0>this.Ea?0>this.ga?this.B.Gb:this.B.fi:this.B.gb;this.Z|=2;return a}function hd(a,b){this.X=this.X&this.ba-1|(a&b?this.ba:0);(a^a>>1)&b>>1?Kc(this):Fc(this)} function id(a,b){var c=a;if(b){var d,e=b&7;e?c=(d=a<>8-e)&255:d=a<<8;hd.call(this,d,256)}return c}function jd(a,b){var c=a;if(b){var d,e=b&15;e?c=(d=a<>16-e)&65535:d=a<<16;hd.call(this,d,65536)}return c}function kd(a,b){var c=a;if(b){var d,c=b&7,c=d=(a>>c|a<<8-c)&255;d&128&&(d|=256);hd.call(this,d,256)}return c}function ld(a,b){var c=a;if(b){var d,c=b&15,c=d=(a>>c|a<<16-c)&65535;d&32768&&(d|=65536);hd.call(this,d,65536)}return c} -function md(a,b){var c=a;if(b){var d;(d=(b&this.Fe)%9)?(d=a<>9-d,c=d&255):d=a|(this.X&this.aa?1:0)<<8;hd.call(this,d,256)}return c}function qd(a,b){var c=a;if(b){var d;(d=(b&this.Fe)%17)?(d=a<>17-d,c=d&65535):d=a|(this.X&this.aa?1:0)<<16;hd.call(this,d,65536)}return c}function rd(a,b){var c=a;b&&(c=(b&this.Fe)%9,c=a>>c|(this.X&this.aa?1:0)<<8-c|a<<9-c,hd.call(this,c,256),c&=255);return c} -function sd(a,b){var c=a;b&&(c=(b&this.Fe)%17,c=a>>c|(this.X&this.aa?1:0)<<16-c|a<<17-c,hd.call(this,c,65536),c&=65535);return c}function td(a,b){var c=a;b&&(c=8>b-1;this.X=this.ga=c>>1;this.X=c&1?this.X|256:this.X&-257;this.ia=a^this.X;this.aa=256;a=this.X}return a&255}function wd(a,b){if(b){var c=16>b-1;this.X=this.ga=c>>1;this.X=c&1?this.X|65536:this.X&-65537;this.ia=a^this.X;this.aa=65536;a=this.X}return a&65535}function xd(a,b){if(b){8>24>>b-1;this.X=this.ga=c>>1;this.X=c&1?this.X|256:this.X&-257;this.ia=a^this.X;this.aa=256;a=this.X}return a&255} -function yd(a,b){if(b){16>16>>b-1;this.X=this.ga=c>>1;this.X=c&1?this.X|65536:this.X&-65537;this.ia=a^this.X;this.aa=65536;a=this.X}return a&65535}function zd(){this.A-=0>this.fa?2:this.B.Ik;return 1}function Ad(){var a=this.J&this.Fe;this.A-=(0>this.fa?this.B.xi:this.B.wi)+(a<this.fa?this.B.xi:this.B.wi)+(a<>9-d,c=d&255):d=a|(this.X&this.ba?1:0)<<8;hd.call(this,d,256)}return c}function qd(a,b){var c=a;if(b){var d;(d=(b&this.Je)%17)?(d=a<>17-d,c=d&65535):d=a|(this.X&this.ba?1:0)<<16;hd.call(this,d,65536)}return c}function rd(a,b){var c=a;b&&(c=(b&this.Je)%9,c=a>>c|(this.X&this.ba?1:0)<<8-c|a<<9-c,hd.call(this,c,256),c&=255);return c} +function sd(a,b){var c=a;b&&(c=(b&this.Je)%17,c=a>>c|(this.X&this.ba?1:0)<<16-c|a<<17-c,hd.call(this,c,65536),c&=65535);return c}function td(a,b){var c=a;b&&(c=8>b-1;this.X=this.ha=c>>1;this.X=c&1?this.X|256:this.X&-257;this.ja=a^this.X;this.ba=256;a=this.X}return a&255}function wd(a,b){if(b){var c=16>b-1;this.X=this.ha=c>>1;this.X=c&1?this.X|65536:this.X&-65537;this.ja=a^this.X;this.ba=65536;a=this.X}return a&65535}function xd(a,b){if(b){8>24>>b-1;this.X=this.ha=c>>1;this.X=c&1?this.X|256:this.X&-257;this.ja=a^this.X;this.ba=256;a=this.X}return a&255} +function yd(a,b){if(b){16>16>>b-1;this.X=this.ha=c>>1;this.X=c&1?this.X|65536:this.X&-65537;this.ja=a^this.X;this.ba=65536;a=this.X}return a&65535}function zd(){this.A-=0>this.ga?2:this.B.Mk;return 1}function Ad(){var a=this.J&this.Je;this.A-=(0>this.ga?this.B.Bi:this.B.Ai)+(a<this.ga?this.B.Bi:this.B.Ai)+(a<this.Ca?this.B.Wb:this.B.Bk;return b},Dd,Dd,Dd,Dd,Dd,Dd,Dd],Hd=[function(a,b){this.A-=0>this.Ca?this.B.tk:this.B.rk;return b},L,L,L,L,L,L,L],Id=[id,kd,md,rd,td,vd,L,xd],Jd=[jd,ld,qd,sd,ud,wd,L,yd],Ld=[function(a,b){b=this.ba();this.X=this.ga=this.ia=a&b;this.aa=256;this.A-=0>this.fa?this.B.Di:this.B.Ci;this.Z|=2;return a},L,function(a){this.A-=0>this.fa?this.B.Bf:this.B.Af;return a^255},function(a,b){b=0;this.ia= -a^b;this.aa=256;this.A-=0>this.fa?this.B.Bf:this.B.Af;return(this.X=this.ga=b-a)&255},function(a){this.H=this.nb=(this.X=(this.H&255)*a)&65535;this.ia=this.ga=this.X;this.aa=256;this.H&65280?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.fa?this.B.xk:this.B.wk;this.Z|=2;return a},function(a){var b=(this.H<<24>>24)*(a<<24>>24);this.H=this.nb=b&65535;this.X=this.ia=this.ga=b;this.aa=256;127b?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.fa?this.B.ck:this.B.bk;this.Z|=2;return a}, -function(a){if(!a)return Kd.call(this),a;var b=this.H/a;if(255this.fa?this.B.Vj:this.B.Uj;this.Z|=2;return a},function(a){if(!a)return Kd.call(this),a;var b=(this.H<<16>>16)/(a<<24>>24);if(b>b<<24>>24&65535)return Kd.call(this),a;this.nb=this.H=b&255|((this.H<<16>>16)%(a<<24>>24)&255)<<8;this.ga=this.ia=this.X=b|256;this.aa=256;this.A-=0>this.fa?this.B.Zj:this.B.Yj;this.Z|=2;return a}], -Md=[function(a,b){b=this.L();this.X=this.ga=this.ia=a&b;this.aa=65536;this.A-=0>this.fa?this.B.Di:this.B.Ci;this.Z|=2;return a},L,function(a){this.A-=0>this.fa?this.B.Bf:this.B.Af;return a^65535},function(a,b){b=0;this.ia=a^b;this.aa=65536;this.A-=0>this.fa?this.B.Bf:this.B.Af;return(this.X=this.ga=b-a)&65535},function(a){this.nb=this.H=(this.X=this.H*a)&65535;this.Hf=this.K=this.X>>16&65535;this.ia=this.ga=this.X;this.aa=65536;this.K?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.fa?this.B.zk: -this.B.yk;this.Z|=2;return a},function(a){var b=(this.H<<16>>16)*(a<<16>>16);this.H=this.nb=b&65535;this.K=this.Hf=b>>16&65535;this.X=this.ia=this.ga=b;this.aa=65536;32767b?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.fa?this.B.ek:this.B.dk;this.Z|=2;return a},function(a,b){if(!a)return Kd.call(this),a;b=this.H+65536*this.K;var c=Math.floor(b/a);if(65536<=c)return Kd.call(this),a;this.nb=this.H=c&65535;this.Hf=this.K=b%a&65535;this.ga=this.ia=this.X=c|65536;this.aa=65536;this.A-= -0>this.fa?this.B.Xj:this.B.Wj;this.Z|=2;return a},function(a,b){if(!a)return Kd.call(this),a;var c=a<<16>>16;b=this.K<<16|this.H;var d=Math.floor(b/c);if(d!=(d&65535)<<16>>16)return Kd.call(this),a;this.nb=this.H=d&65535;this.Hf=this.K=b%c&65535;this.ga=this.ia=this.X=d|65536;this.aa=65536;this.A-=0>this.fa?this.B.ak:this.B.$j;this.Z|=2;return a}],Zb=[function(a){this.ia=a;a=(this.ga=a+1)&255;this.X=a|(this.X&this.aa?1:0)<<8;this.aa=256;this.A-=0>this.fa?this.B.zf:this.B.yf;return a},function(a){this.ia= -a;a=(this.ga=a-1)&255;this.X=a|(this.X&this.aa?1:0)<<8;this.aa=256;this.A-=0>this.fa?this.B.zf:this.B.yf;return a},L,L,L,L,L,L],ac=[function(a){this.ia=a;a=(this.ga=a+1)&65535;this.X=a|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=0>this.fa?this.B.zf:this.B.yf;return a},function(a){this.ia=a;a=(this.ga=a-1)&65535;this.X=a|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=0>this.fa?this.B.zf:this.B.yf;return a},function(a){K(this,this.sa);I(this,a);this.A-=0>this.fa?this.B.Tj:this.B.Sj;this.Z|=2;return a}, -function(a){if(0>this.fa)return L.call(this,a);K(this,this.wa.va);K(this,this.sa);fc(this,a,F(this,this.fa+2));this.A-=this.B.Qj;this.Z|=2;return a},function(a){I(this,a);this.A-=0>this.fa?this.B.nk:this.B.mk;this.Z|=2;return a},function(a){if(0>this.fa)return L.call(this,a);fc(this,a,F(this,this.fa+2));this.A-=this.B.kk;this.Z|=2;return a},function(a){var b=a;this.Z&512&&(a=a-2&65535,80286>this.Ea&&(b=a));K(this,b);this.A-=0>this.fa?this.B.cc:this.B.Dk;this.Z|=2;return a},Dd],Nd=[id,kd,md,rd,td, -vd,L,xd],Od=[jd,ld,qd,sd,ud,wd,L,yd];function Pd(a,b){this.A-=0>this.Ca?0>this.fa?this.B.vk:this.B.uk:this.B.sk;return b}function Qd(){return Pd.call(this,0,this.nb)}function Rd(a,b){this.X=this.ga=this.ia=a&b;this.aa=256;this.A-=0>this.Ca?0>this.fa?this.B.Ei:this.B.Df:this.B.Df;this.Z|=2;return a}function Sd(a,b){this.X=this.ga=this.ia=a&b;this.aa=65536;this.A-=0>this.Ca?0>this.fa?this.B.Ei:this.B.Df:this.B.Df;this.Z|=2;return a} -function Td(a,b){var c=(b<<16>>16)*(this.ba()<<24>>24);this.X=this.ia=this.ga=c;this.aa=256;32767c?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.fa?21:24;return c&65535}function Ud(a,b){var c=(b<<16>>16)*(this.L()<<16>>16);this.X=this.ia=this.ga=c;this.aa=65536;32767c?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.fa?21:24;return c&65535}function Vd(a){return a}function Wd(a){if(0>this.fa)return N.call(this),a;this.A-=this.B.ok;return this.fa} -function Xd(a,b){if(0>this.fa)return N.call(this),a;qc(this,F(this,this.fa+2));this.A-=this.B.fi;return b}function Yd(a,b){if(0>this.fa)return N.call(this),a;vc(this,F(this,this.fa+2));this.A-=this.B.fi;return b}function Zd(a){if(0>this.fa)return G.call(this),a;var b=a<<16>>16,c=F(this,this.fa)<<16>>16,d=F(this,this.fa+2)<<16>>16;this.A-=this.B.Mj;if(bd)I(this,this.Mg-this.wa.hb),Qc.call(this,5,null,0);this.Z|=2;return a} -function $d(a,b){this.A-=10+(0>this.fa?0:1);if((a&3)<(b&3))return a=a&-4|b&3,Ic(this),a;Ec(this);return a}function ae(a,b){this.A-=14+(0>this.fa?0:2);if(0<=this.sb.load(b,!0)&&this.sb.Bb>=(this.wa.va&3)&&this.sb.Bb>=(b&3))return Ic(this),this.sb.lc&65280;Ec(this);return a}function be(a,b){this.A-=14+(0>this.fa?0:2);if(b&65528&&0<=this.sb.load(b,!0)&&(3072==(this.sb.lc&3072)||this.sb.Bb>=(this.wa.va&3))&&this.sb.Bb>=(b&3))return Ic(this),this.sb.ad;Ec(this);return a} -function ce(a,b){if(0>this.fa){switch(this.ag&7){case 0:this.H=this.H&-256|a;break;case 1:this.J=this.J&-256|a;break;case 2:this.K=this.K&-256|a;break;case 3:this.C=this.C&-256|a;break;case 4:this.H=this.H&255|a<<8;break;case 5:this.J=this.J&255|a<<8;break;case 6:this.K=this.K&255|a<<8;break;case 7:this.C=this.C&255|a<<8}this.A-=this.B.Gi}else this.Ca=this.fa,this.R(a),this.A-=this.B.Fi;return b} -function de(a,b){if(0>this.fa){switch(this.ag&7){case 0:this.H=a;break;case 1:this.J=a;break;case 2:this.K=a;break;case 3:this.C=a;break;case 4:this.Y=a;break;case 5:this.I=a;break;case 6:this.G=a;break;case 7:this.F=a}this.A-=this.B.Gi}else this.Ca=this.fa,this.S(a),this.A-=this.B.Fi;return b}function Qc(a,b,c){oc(this,a)&&(K(this,ic(this)),this.Da&=this.qc.zg,K(this,this.wa.va),K(this,this.sa),null!=b&&K(this,b),fc(this,this.qc.Ki,this.qc.va),this.A-=this.B.gk+c)} -function ee(a){a|=this.Hc&1;this.Hc=this.Hc&65520|a&-65521;this.Hc&1&&hc(this,!0)}function Kd(){I(this,this.Mg-this.wa.hb);Qc.call(this,0,null,2)}function Db(a,b){80186<=this.Ea&&(I(this,this.Mg-this.wa.hb),Qc.call(this,a,b,0))}function G(){Db.call(this,6);jb(this)}function N(){I(this,this.Mg-this.wa.hb);var a=Ta(this.na,this.Fa),b=this.sa,c=this.wa.va;Ja(this,"Undefined opcode 0x"+p(a,2)+" at "+(void 0!==c?p(c,4)+":"+p(b,4):p(b)));jb(this)} +var Ed=[Sc,Tc,Uc,Vc,Wc,Xc,Yc,Zc],Fd=[$c,ad,bd,cd,dd,ed,fd,gd],Gd=[function(a,b){this.A-=0>this.Ea?this.B.Xb:this.B.Fk;return b},Dd,Dd,Dd,Dd,Dd,Dd,Dd],Hd=[function(a,b){this.A-=0>this.Ea?this.B.xk:this.B.vk;return b},L,L,L,L,L,L,L],Id=[id,kd,md,rd,td,vd,L,xd],Jd=[jd,ld,qd,sd,ud,wd,L,yd],Ld=[function(a,b){b=this.ca();this.X=this.ha=this.ja=a&b;this.ba=256;this.A-=0>this.ga?this.B.Hi:this.B.Gi;this.Z|=2;return a},L,function(a){this.A-=0>this.ga?this.B.Df:this.B.Cf;return a^255},function(a,b){b=0;this.ja= +a^b;this.ba=256;this.A-=0>this.ga?this.B.Df:this.B.Cf;return(this.X=this.ha=b-a)&255},function(a){this.H=this.pb=(this.X=(this.H&255)*a)&65535;this.ja=this.ha=this.X;this.ba=256;this.H&65280?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.ga?this.B.Bk:this.B.Ak;this.Z|=2;return a},function(a){var b=(this.H<<24>>24)*(a<<24>>24);this.H=this.pb=b&65535;this.X=this.ja=this.ha=b;this.ba=256;127b?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.ga?this.B.gk:this.B.fk;this.Z|=2;return a}, +function(a){if(!a)return Kd.call(this),a;var b=this.H/a;if(255this.ga?this.B.Zj:this.B.Yj;this.Z|=2;return a},function(a){if(!a)return Kd.call(this),a;var b=(this.H<<16>>16)/(a<<24>>24);if(b>b<<24>>24&65535)return Kd.call(this),a;this.pb=this.H=b&255|((this.H<<16>>16)%(a<<24>>24)&255)<<8;this.ha=this.ja=this.X=b|256;this.ba=256;this.A-=0>this.ga?this.B.ck:this.B.bk;this.Z|=2;return a}], +Md=[function(a,b){b=this.L();this.X=this.ha=this.ja=a&b;this.ba=65536;this.A-=0>this.ga?this.B.Hi:this.B.Gi;this.Z|=2;return a},L,function(a){this.A-=0>this.ga?this.B.Df:this.B.Cf;return a^65535},function(a,b){b=0;this.ja=a^b;this.ba=65536;this.A-=0>this.ga?this.B.Df:this.B.Cf;return(this.X=this.ha=b-a)&65535},function(a){this.pb=this.H=(this.X=this.H*a)&65535;this.Jf=this.K=this.X>>16&65535;this.ja=this.ha=this.X;this.ba=65536;this.K?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.ga?this.B.Dk: +this.B.Ck;this.Z|=2;return a},function(a){var b=(this.H<<16>>16)*(a<<16>>16);this.H=this.pb=b&65535;this.K=this.Jf=b>>16&65535;this.X=this.ja=this.ha=b;this.ba=65536;32767b?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.ga?this.B.ik:this.B.hk;this.Z|=2;return a},function(a,b){if(!a)return Kd.call(this),a;b=this.H+65536*this.K;var c=Math.floor(b/a);if(65536<=c)return Kd.call(this),a;this.pb=this.H=c&65535;this.Jf=this.K=b%a&65535;this.ha=this.ja=this.X=c|65536;this.ba=65536;this.A-= +0>this.ga?this.B.ak:this.B.$j;this.Z|=2;return a},function(a,b){if(!a)return Kd.call(this),a;var c=a<<16>>16;b=this.K<<16|this.H;var d=Math.floor(b/c);if(d!=(d&65535)<<16>>16)return Kd.call(this),a;this.pb=this.H=d&65535;this.Jf=this.K=b%c&65535;this.ha=this.ja=this.X=d|65536;this.ba=65536;this.A-=0>this.ga?this.B.ek:this.B.dk;this.Z|=2;return a}],Zb=[function(a){this.ja=a;a=(this.ha=a+1)&255;this.X=a|(this.X&this.ba?1:0)<<8;this.ba=256;this.A-=0>this.ga?this.B.Bf:this.B.Af;return a},function(a){this.ja= +a;a=(this.ha=a-1)&255;this.X=a|(this.X&this.ba?1:0)<<8;this.ba=256;this.A-=0>this.ga?this.B.Bf:this.B.Af;return a},L,L,L,L,L,L],ac=[function(a){this.ja=a;a=(this.ha=a+1)&65535;this.X=a|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=0>this.ga?this.B.Bf:this.B.Af;return a},function(a){this.ja=a;a=(this.ha=a-1)&65535;this.X=a|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=0>this.ga?this.B.Bf:this.B.Af;return a},function(a){K(this,this.ua);I(this,a);this.A-=0>this.ga?this.B.Xj:this.B.Wj;this.Z|=2;return a}, +function(a){if(0>this.ga)return L.call(this,a);K(this,this.xa.Aa);K(this,this.ua);fc(this,a,F(this,this.ga+2));this.A-=this.B.Uj;this.Z|=2;return a},function(a){I(this,a);this.A-=0>this.ga?this.B.rk:this.B.qk;this.Z|=2;return a},function(a){if(0>this.ga)return L.call(this,a);fc(this,a,F(this,this.ga+2));this.A-=this.B.ok;this.Z|=2;return a},function(a){var b=a;this.Z&512&&(a=a-2&65535,80286>this.Ga&&(b=a));K(this,b);this.A-=0>this.ga?this.B.dc:this.B.Hk;this.Z|=2;return a},Dd],Nd=[id,kd,md,rd,td, +vd,L,xd],Od=[jd,ld,qd,sd,ud,wd,L,yd];function Pd(a,b){this.A-=0>this.Ea?0>this.ga?this.B.zk:this.B.yk:this.B.wk;return b}function Qd(){return Pd.call(this,0,this.pb)}function Rd(a,b){this.X=this.ha=this.ja=a&b;this.ba=256;this.A-=0>this.Ea?0>this.ga?this.B.Ii:this.B.Ff:this.B.Ff;this.Z|=2;return a}function Sd(a,b){this.X=this.ha=this.ja=a&b;this.ba=65536;this.A-=0>this.Ea?0>this.ga?this.B.Ii:this.B.Ff:this.B.Ff;this.Z|=2;return a} +function Td(a,b){var c=(b<<16>>16)*(this.ca()<<24>>24);this.X=this.ja=this.ha=c;this.ba=256;32767c?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.ga?21:24;return c&65535}function Ud(a,b){var c=(b<<16>>16)*(this.L()<<16>>16);this.X=this.ja=this.ha=c;this.ba=65536;32767c?(Gc(this),Kc(this)):(Cc(this),Fc(this));this.A-=0>this.ga?21:24;return c&65535}function Vd(a){return a}function Wd(a){if(0>this.ga)return N.call(this),a;this.A-=this.B.sk;return this.ga} +function Xd(a,b){if(0>this.ga)return N.call(this),a;qc(this,F(this,this.ga+2));this.A-=this.B.ji;return b}function Yd(a,b){if(0>this.ga)return N.call(this),a;vc(this,F(this,this.ga+2));this.A-=this.B.ji;return b}function Zd(a){if(0>this.ga)return G.call(this),a;var b=a<<16>>16,c=F(this,this.ga)<<16>>16,d=F(this,this.ga+2)<<16>>16;this.A-=this.B.Qj;if(bd)I(this,this.Og-this.xa.jb),Qc.call(this,5,null,0);this.Z|=2;return a} +function $d(a,b){this.A-=10+(0>this.ga?0:1);if((a&3)<(b&3))return a=a&-4|b&3,Ic(this),a;Ec(this);return a}function ae(a,b){this.A-=14+(0>this.ga?0:2);if(0<=this.ub.load(b,!0)&&this.ub.kc>=this.xa.rc&&this.ub.kc>=(b&3))return Ic(this),this.ub.xb&65280;Ec(this);return a}function be(a,b){this.A-=14+(0>this.ga?0:2);if(b&65528&&0<=this.ub.load(b,!0)&&(7168==(this.ub.xb&7168)||this.ub.kc>=this.xa.rc)&&this.ub.kc>=(b&3))return Ic(this),this.ub.dd;Ec(this);return a} +function ce(a,b){if(0>this.ga){switch(this.cg&7){case 0:this.H=this.H&-256|a;break;case 1:this.J=this.J&-256|a;break;case 2:this.K=this.K&-256|a;break;case 3:this.C=this.C&-256|a;break;case 4:this.H=this.H&255|a<<8;break;case 5:this.J=this.J&255|a<<8;break;case 6:this.K=this.K&255|a<<8;break;case 7:this.C=this.C&255|a<<8}this.A-=this.B.Ki}else this.Ea=this.ga,this.R(a),this.A-=this.B.Ji;return b} +function de(a,b){if(0>this.ga){switch(this.cg&7){case 0:this.H=a;break;case 1:this.J=a;break;case 2:this.K=a;break;case 3:this.C=a;break;case 4:this.Y=a;break;case 5:this.I=a;break;case 6:this.G=a;break;case 7:this.F=a}this.A-=this.B.Ki}else this.Ea=this.ga,this.S(a),this.A-=this.B.Ji;return b}function Qc(a,b,c){oc(this,a)&&(K(this,ic(this)),this.Fa&=this.sc.Bg,K(this,this.xa.Aa),K(this,this.ua),null!=b&&K(this,b),fc(this,this.sc.Ni,this.sc.Aa),this.A-=this.B.kk+c)} +function ee(a){a|=this.Jc&1;this.Jc=this.Jc&65520|a&-65521;this.Jc&1&&hc(this,!0)}function Kd(){I(this,this.Og-this.xa.jb);Qc.call(this,0,null,2)}function Bb(a,b){80186<=this.Ga&&(I(this,this.Og-this.xa.jb),Qc.call(this,a,b,0))}function G(){Bb.call(this,6);jb(this)}function N(){I(this,this.Og-this.xa.jb);var a=Ta(this.pa,this.Ha),b=this.ua,c=this.xa.Aa;Ja(this,"Undefined opcode 0x"+p(a,2)+" at "+(void 0!==c?p(c,4)+":"+p(b,4):p(b)));jb(this)} function fe(a){a=a.call(this,this.H&255,this.H&255);this.H=this.H&-256|a}function ge(a){a=a.call(this,this.H&255,this.J&255);this.H=this.H&-256|a}function he(a){a=a.call(this,this.H&255,this.K&255);this.H=this.H&-256|a}function ie(a){a=a.call(this,this.H&255,this.C&255);this.H=this.H&-256|a}function je(a){a=a.call(this,this.H&255,this.H>>8);this.H=this.H&-256|a}function ke(a){a=a.call(this,this.H&255,this.J>>8);this.H=this.H&-256|a} function le(a){a=a.call(this,this.H&255,this.K>>8);this.H=this.H&-256|a}function me(a){a=a.call(this,this.H&255,this.C>>8);this.H=this.H&-256|a}function ne(a){a=a.call(this,this.J&255,this.H&255);this.J=this.J&-256|a}function oe(a){a=a.call(this,this.J&255,this.J&255);this.J=this.J&-256|a}function pe(a){a=a.call(this,this.J&255,this.K&255);this.J=this.J&-256|a}function qe(a){a=a.call(this,this.J&255,this.C&255);this.J=this.J&-256|a} function re(a){a=a.call(this,this.J&255,this.H>>8);this.J=this.J&-256|a}function se(a){a=a.call(this,this.J&255,this.J>>8);this.J=this.J&-256|a}function te(a){a=a.call(this,this.J&255,this.K>>8);this.J=this.J&-256|a}function ue(a){a=a.call(this,this.J&255,this.C>>8);this.J=this.J&-256|a}function ve(a){a=a.call(this,this.K&255,this.H&255);this.K=this.K&-256|a}function we(a){a=a.call(this,this.K&255,this.J&255);this.K=this.K&-256|a} @@ -103,18 +104,18 @@ function Pf(a){this.C=a.call(this,this.C,this.H)}function Qf(a){this.C=a.call(th function Zf(a){this.Y=a.call(this,this.Y,this.K)}function $f(a){this.Y=a.call(this,this.Y,this.C)}function ag(a){this.Y=a.call(this,this.Y,this.Y)}function bg(a){this.Y=a.call(this,this.Y,this.I)}function cg(a){this.Y=a.call(this,this.Y,this.G)}function dg(a){this.Y=a.call(this,this.Y,this.F)}function eg(a){this.I=a.call(this,this.I,this.H)}function fg(a){this.I=a.call(this,this.I,this.J)}function gg(a){this.I=a.call(this,this.I,this.K)}function hg(a){this.I=a.call(this,this.I,this.C)} function ig(a){this.I=a.call(this,this.I,this.Y)}function jg(a){this.I=a.call(this,this.I,this.I)}function kg(a){this.I=a.call(this,this.I,this.G)}function lg(a){this.I=a.call(this,this.I,this.F)}function mg(a){this.G=a.call(this,this.G,this.H)}function ng(a){this.G=a.call(this,this.G,this.J)}function og(a){this.G=a.call(this,this.G,this.K)}function pg(a){this.G=a.call(this,this.G,this.C)}function qg(a){this.G=a.call(this,this.G,this.Y)}function rg(a){this.G=a.call(this,this.G,this.I)} function sg(a){this.G=a.call(this,this.G,this.G)}function tg(a){this.G=a.call(this,this.G,this.F)}function ug(a){this.F=a.call(this,this.F,this.H)}function vg(a){this.F=a.call(this,this.F,this.J)}function wg(a){this.F=a.call(this,this.F,this.K)}function xg(a){this.F=a.call(this,this.F,this.C)}function yg(a){this.F=a.call(this,this.F,this.Y)}function zg(a){this.F=a.call(this,this.F,this.I)}function Ag(a){this.F=a.call(this,this.F,this.G)}function Bg(a){this.F=a.call(this,this.F,this.F)} -var Cg=[function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.H&255);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.H&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.H&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.H&255);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.G),this.H&255);this.R(a);this.A-=this.B.$}, -function(a){a=a.call(this,this.O(this.D,this.F),this.H&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.H&255);this.R(a);this.A-=this.B.oa},function(a){a=a.call(this,this.O(this.D,this.C),this.H&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.J&255);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.J&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N, -this.I+this.G&65535),this.J&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.J&255);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.G),this.J&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.J&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.J&255);this.R(a);this.A-=this.B.oa},function(a){a=a.call(this,this.O(this.D,this.C),this.J&255);this.R(a); -this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.K&255);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.K&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.K&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.K&255);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.G),this.K&255);this.R(a);this.A-= -this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.K&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.K&255);this.R(a);this.A-=this.B.oa},function(a){a=a.call(this,this.O(this.D,this.C),this.K&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.C&255);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.C&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this, -this.O(this.N,this.I+this.G&65535),this.C&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.C&255);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.G),this.C&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.C&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.C&255);this.R(a);this.A-=this.B.oa},function(a){a=a.call(this,this.O(this.D,this.C),this.C&255); -this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.H>>8);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.H>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.H>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.H>>8);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.G),this.H>>8);this.R(a); -this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.H>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.H>>8);this.R(a);this.A-=this.B.oa},function(a){a=a.call(this,this.O(this.D,this.C),this.H>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.J>>8);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.J>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this, -this.O(this.N,this.I+this.G&65535),this.J>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.J>>8);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.G),this.J>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.J>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.J>>8);this.R(a);this.A-=this.B.oa},function(a){a=a.call(this,this.O(this.D,this.C),this.J>>8);this.R(a); -this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.K>>8);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.K>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.K>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.K>>8);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.G),this.K>>8);this.R(a);this.A-=this.B.$}, -function(a){a=a.call(this,this.O(this.D,this.F),this.K>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.K>>8);this.R(a);this.A-=this.B.oa},function(a){a=a.call(this,this.O(this.D,this.C),this.K>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.C>>8);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.C>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N, -this.I+this.G&65535),this.C>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.C>>8);this.R(a);this.A-=this.B.da},function(a){a=a.call(this,this.O(this.D,this.G),this.C>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.C>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.C>>8);this.R(a);this.A-=this.B.oa},function(a){a=a.call(this,this.O(this.D,this.C),this.C>>8);this.R(a);this.A-= +var Cg=[function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.H&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.H&255);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.H&255);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.H&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.G),this.H&255);this.R(a);this.A-=this.B.$}, +function(a){a=a.call(this,this.O(this.D,this.F),this.H&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.H&255);this.R(a);this.A-=this.B.qa},function(a){a=a.call(this,this.O(this.D,this.C),this.H&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.J&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.J&255);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N, +this.I+this.G&65535),this.J&255);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.J&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.G),this.J&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.J&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.J&255);this.R(a);this.A-=this.B.qa},function(a){a=a.call(this,this.O(this.D,this.C),this.J&255);this.R(a); +this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.K&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.K&255);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.K&255);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.K&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.G),this.K&255);this.R(a);this.A-= +this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.K&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.K&255);this.R(a);this.A-=this.B.qa},function(a){a=a.call(this,this.O(this.D,this.C),this.K&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.C&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.C&255);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this, +this.O(this.N,this.I+this.G&65535),this.C&255);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.C&255);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.G),this.C&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.C&255);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.C&255);this.R(a);this.A-=this.B.qa},function(a){a=a.call(this,this.O(this.D,this.C),this.C&255); +this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.H>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.H>>8);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.H>>8);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.H>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.G),this.H>>8);this.R(a); +this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.H>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.H>>8);this.R(a);this.A-=this.B.qa},function(a){a=a.call(this,this.O(this.D,this.C),this.H>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.J>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.J>>8);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this, +this.O(this.N,this.I+this.G&65535),this.J>>8);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.J>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.G),this.J>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.J>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.J>>8);this.R(a);this.A-=this.B.qa},function(a){a=a.call(this,this.O(this.D,this.C),this.J>>8);this.R(a); +this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.K>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.K>>8);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.G&65535),this.K>>8);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.K>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.G),this.K>>8);this.R(a);this.A-=this.B.$}, +function(a){a=a.call(this,this.O(this.D,this.F),this.K>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.K>>8);this.R(a);this.A-=this.B.qa},function(a){a=a.call(this,this.O(this.D,this.C),this.K>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G&65535),this.C>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.C+this.F&65535),this.C>>8);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N, +this.I+this.G&65535),this.C>>8);this.R(a);this.A-=this.B.fa},function(a){a=a.call(this,this.O(this.N,this.I+this.F&65535),this.C>>8);this.R(a);this.A-=this.B.ea},function(a){a=a.call(this,this.O(this.D,this.G),this.C>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.F),this.C>>8);this.R(a);this.A-=this.B.$},function(a){a=a.call(this,this.O(this.D,this.L()),this.C>>8);this.R(a);this.A-=this.B.qa},function(a){a=a.call(this,this.O(this.D,this.C),this.C>>8);this.R(a);this.A-= this.B.$},function(a){a=a.call(this,this.O(this.D,this.C+this.G+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.V},function(a){a=a.call(this,this.O(this.D,this.C+this.F+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.N,this.I+this.G+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.N,this.I+this.F+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.V},function(a){a=a.call(this,this.O(this.D,this.G+this.M()& 65535),this.H&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.F+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.N,this.I+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.M()&65535),this.H&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.G+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.V},function(a){a=a.call(this,this.O(this.D, this.C+this.F+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.N,this.I+this.G+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.N,this.I+this.F+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.V},function(a){a=a.call(this,this.O(this.D,this.G+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.F+this.M()&65535),this.J&255);this.R(a);this.A-=this.B.Q},function(a){a= @@ -142,18 +143,18 @@ this.A-=this.B.V},function(a){a=a.call(this,this.O(this.D,this.C+this.F+this.L() this.I+this.G+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.N,this.I+this.F+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.V},function(a){a=a.call(this,this.O(this.D,this.G+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.F+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.N,this.I+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this, this.O(this.D,this.C+this.L()&65535),this.K>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.G+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.V},function(a){a=a.call(this,this.O(this.D,this.C+this.F+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.N,this.I+this.G+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.W},function(a){a=a.call(this,this.O(this.N,this.I+this.F+this.L()&65535),this.C>>8);this.R(a);this.A-= this.B.V},function(a){a=a.call(this,this.O(this.D,this.G+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.F+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.N,this.I+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.Q},function(a){a=a.call(this,this.O(this.D,this.C+this.L()&65535),this.C>>8);this.R(a);this.A-=this.B.Q},fe,ne,ve,De,Le,Te,af,jf,ge,oe,we,Ee,Me,Ue,bf,kf,he,pe,xe,Fe,Ne,Ve,cf,lf,ie,qe,ye,Ge, -Oe,We,df,mf,je,re,ze,He,Pe,Xe,ef,nf,ke,se,Ae,Ie,Qe,Ye,ff,of,le,te,Be,Je,Re,Ze,gf,pf,me,ue,Ce,Ke,Se,$e,hf,qf],O=[function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.H);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.H);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.H);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.H);this.S(a);this.A-=this.B.da}, -function(a){a=a.call(this,this.P(this.D,this.G),this.H);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.H);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.H);this.S(a);this.A-=this.B.oa},function(a){a=a.call(this,this.P(this.D,this.C),this.H);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.J);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.J); -this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.J);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.J);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.G),this.J);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.J);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.J);this.S(a);this.A-=this.B.oa},function(a){a=a.call(this, -this.P(this.D,this.C),this.J);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.K);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.K);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.K);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.K);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.G),this.K); -this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.K);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.K);this.S(a);this.A-=this.B.oa},function(a){a=a.call(this,this.P(this.D,this.C),this.K);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.C);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.C);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this, -this.P(this.N,this.I+this.G&65535),this.C);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.C);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.G),this.C);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.C);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.C);this.S(a);this.A-=this.B.oa},function(a){a=a.call(this,this.P(this.D,this.C),this.C);this.S(a);this.A-=this.B.$}, -function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.Y);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.Y);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.Y);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.Y);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.G),this.Y);this.S(a);this.A-=this.B.$},function(a){a=a.call(this, -this.P(this.D,this.F),this.Y);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.Y);this.S(a);this.A-=this.B.oa},function(a){a=a.call(this,this.P(this.D,this.C),this.Y);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.I);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.I);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.I);this.S(a); -this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.I);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.G),this.I);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.I);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.I);this.S(a);this.A-=this.B.oa},function(a){a=a.call(this,this.P(this.D,this.C),this.I);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+ -this.G&65535),this.G);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.G);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.G);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.G);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.G),this.G);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.G);this.S(a);this.A-= -this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.G);this.S(a);this.A-=this.B.oa},function(a){a=a.call(this,this.P(this.D,this.C),this.G);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.F);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.F);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.F);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this, -this.P(this.N,this.I+this.F&65535),this.F);this.S(a);this.A-=this.B.da},function(a){a=a.call(this,this.P(this.D,this.G),this.F);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.F);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.F);this.S(a);this.A-=this.B.oa},function(a){a=a.call(this,this.P(this.D,this.C),this.F);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G+this.M()&65535),this.H);this.S(a);this.A-= +Oe,We,df,mf,je,re,ze,He,Pe,Xe,ef,nf,ke,se,Ae,Ie,Qe,Ye,ff,of,le,te,Be,Je,Re,Ze,gf,pf,me,ue,Ce,Ke,Se,$e,hf,qf],O=[function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.H);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.H);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.H);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.H);this.S(a);this.A-=this.B.ea}, +function(a){a=a.call(this,this.P(this.D,this.G),this.H);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.H);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.H);this.S(a);this.A-=this.B.qa},function(a){a=a.call(this,this.P(this.D,this.C),this.H);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.J);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.J); +this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.J);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.J);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.G),this.J);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.J);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.J);this.S(a);this.A-=this.B.qa},function(a){a=a.call(this, +this.P(this.D,this.C),this.J);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.K);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.K);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.K);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.K);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.G),this.K); +this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.K);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.K);this.S(a);this.A-=this.B.qa},function(a){a=a.call(this,this.P(this.D,this.C),this.K);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.C);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.C);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this, +this.P(this.N,this.I+this.G&65535),this.C);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.C);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.G),this.C);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.C);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.C);this.S(a);this.A-=this.B.qa},function(a){a=a.call(this,this.P(this.D,this.C),this.C);this.S(a);this.A-=this.B.$}, +function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.Y);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.Y);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.Y);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.Y);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.G),this.Y);this.S(a);this.A-=this.B.$},function(a){a=a.call(this, +this.P(this.D,this.F),this.Y);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.Y);this.S(a);this.A-=this.B.qa},function(a){a=a.call(this,this.P(this.D,this.C),this.Y);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.I);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.I);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.I);this.S(a); +this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.I);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.G),this.I);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.I);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.I);this.S(a);this.A-=this.B.qa},function(a){a=a.call(this,this.P(this.D,this.C),this.I);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+ +this.G&65535),this.G);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.G);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.G);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.F&65535),this.G);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.G),this.G);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.G);this.S(a);this.A-= +this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.G);this.S(a);this.A-=this.B.qa},function(a){a=a.call(this,this.P(this.D,this.C),this.G);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G&65535),this.F);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.C+this.F&65535),this.F);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this,this.P(this.N,this.I+this.G&65535),this.F);this.S(a);this.A-=this.B.fa},function(a){a=a.call(this, +this.P(this.N,this.I+this.F&65535),this.F);this.S(a);this.A-=this.B.ea},function(a){a=a.call(this,this.P(this.D,this.G),this.F);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.F),this.F);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.L()),this.F);this.S(a);this.A-=this.B.qa},function(a){a=a.call(this,this.P(this.D,this.C),this.F);this.S(a);this.A-=this.B.$},function(a){a=a.call(this,this.P(this.D,this.C+this.G+this.M()&65535),this.H);this.S(a);this.A-= this.B.V},function(a){a=a.call(this,this.P(this.D,this.C+this.F+this.M()&65535),this.H);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.N,this.I+this.G+this.M()&65535),this.H);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.N,this.I+this.F+this.M()&65535),this.H);this.S(a);this.A-=this.B.V},function(a){a=a.call(this,this.P(this.D,this.G+this.M()&65535),this.H);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+this.M()&65535),this.H);this.S(a); this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.N,this.I+this.M()&65535),this.H);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.M()&65535),this.H);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.G+this.M()&65535),this.J);this.S(a);this.A-=this.B.V},function(a){a=a.call(this,this.P(this.D,this.C+this.F+this.M()&65535),this.J);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.N,this.I+this.G+this.M()&65535),this.J); this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.N,this.I+this.F+this.M()&65535),this.J);this.S(a);this.A-=this.B.V},function(a){a=a.call(this,this.P(this.D,this.G+this.M()&65535),this.J);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+this.M()&65535),this.J);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.N,this.I+this.M()&65535),this.J);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.M()&65535),this.J); @@ -180,20 +181,20 @@ this.P(this.D,this.F+this.L()&65535),this.I);this.S(a);this.A-=this.B.Q},functio this.P(this.N,this.I+this.G+this.L()&65535),this.G);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.N,this.I+this.F+this.L()&65535),this.G);this.S(a);this.A-=this.B.V},function(a){a=a.call(this,this.P(this.D,this.G+this.L()&65535),this.G);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+this.L()&65535),this.G);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.N,this.I+this.L()&65535),this.G);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this, this.P(this.D,this.C+this.L()&65535),this.G);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.G+this.L()&65535),this.F);this.S(a);this.A-=this.B.V},function(a){a=a.call(this,this.P(this.D,this.C+this.F+this.L()&65535),this.F);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.N,this.I+this.G+this.L()&65535),this.F);this.S(a);this.A-=this.B.W},function(a){a=a.call(this,this.P(this.N,this.I+this.F+this.L()&65535),this.F);this.S(a);this.A-=this.B.V},function(a){a= a.call(this,this.P(this.D,this.G+this.L()&65535),this.F);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.F+this.L()&65535),this.F);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.N,this.I+this.L()&65535),this.F);this.S(a);this.A-=this.B.Q},function(a){a=a.call(this,this.P(this.D,this.C+this.L()&65535),this.F);this.S(a);this.A-=this.B.Q},rf,zf,Hf,Pf,Xf,eg,mg,ug,sf,Af,If,Qf,Yf,fg,ng,vg,tf,Bf,Jf,Rf,Zf,gg,og,wg,uf,Cf,Kf,Sf,$f,hg,pg,xg,vf,Df,Lf,Tf,ag,ig,qg,yg, -wf,Ef,Mf,Uf,bg,jg,rg,zg,xf,Ff,Nf,Vf,cg,kg,sg,Ag,yf,Gf,Of,Wf,dg,lg,tg,Bg],Dg=[function(a){a=a.call(this,this.H&255,this.T(this.D,this.C+this.G&65535));this.H=this.H&-256|a;this.A-=this.B.da},function(a){a=a.call(this,this.H&255,this.T(this.D,this.C+this.F&65535));this.H=this.H&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.H&255,this.T(this.N,this.I+this.G&65535));this.H=this.H&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.H&255,this.T(this.N,this.I+this.F&65535));this.H=this.H& --256|a;this.A-=this.B.da},function(a){a=a.call(this,this.H&255,this.T(this.D,this.G));this.H=this.H&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.H&255,this.T(this.D,this.F));this.H=this.H&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.H&255,this.T(this.D,this.L()));this.H=this.H&-256|a;this.A-=this.B.oa},function(a){a=a.call(this,this.H&255,this.T(this.D,this.C));this.H=this.H&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.J&255,this.T(this.D,this.C+this.G&65535));this.J= -this.J&-256|a;this.A-=this.B.da},function(a){a=a.call(this,this.J&255,this.T(this.D,this.C+this.F&65535));this.J=this.J&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.J&255,this.T(this.N,this.I+this.G&65535));this.J=this.J&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.J&255,this.T(this.N,this.I+this.F&65535));this.J=this.J&-256|a;this.A-=this.B.da},function(a){a=a.call(this,this.J&255,this.T(this.D,this.G));this.J=this.J&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.J& -255,this.T(this.D,this.F));this.J=this.J&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.J&255,this.T(this.D,this.L()));this.J=this.J&-256|a;this.A-=this.B.oa},function(a){a=a.call(this,this.J&255,this.T(this.D,this.C));this.J=this.J&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.K&255,this.T(this.D,this.C+this.G&65535));this.K=this.K&-256|a;this.A-=this.B.da},function(a){a=a.call(this,this.K&255,this.T(this.D,this.C+this.F&65535));this.K=this.K&-256|a;this.A-=this.B.ea},function(a){a= -a.call(this,this.K&255,this.T(this.N,this.I+this.G&65535));this.K=this.K&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.K&255,this.T(this.N,this.I+this.F&65535));this.K=this.K&-256|a;this.A-=this.B.da},function(a){a=a.call(this,this.K&255,this.T(this.D,this.G));this.K=this.K&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.K&255,this.T(this.D,this.F));this.K=this.K&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.K&255,this.T(this.D,this.L()));this.K=this.K&-256|a;this.A-= -this.B.oa},function(a){a=a.call(this,this.K&255,this.T(this.D,this.C));this.K=this.K&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.C&255,this.T(this.D,this.C+this.G&65535));this.C=this.C&-256|a;this.A-=this.B.da},function(a){a=a.call(this,this.C&255,this.T(this.D,this.C+this.F&65535));this.C=this.C&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.C&255,this.T(this.N,this.I+this.G&65535));this.C=this.C&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.C&255,this.T(this.N,this.I+ -this.F&65535));this.C=this.C&-256|a;this.A-=this.B.da},function(a){a=a.call(this,this.C&255,this.T(this.D,this.G));this.C=this.C&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.C&255,this.T(this.D,this.F));this.C=this.C&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.C&255,this.T(this.D,this.L()));this.C=this.C&-256|a;this.A-=this.B.oa},function(a){a=a.call(this,this.C&255,this.T(this.D,this.C));this.C=this.C&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.H>>8,this.T(this.D, -this.C+this.G&65535));this.H=this.H&255|a<<8;this.A-=this.B.da},function(a){a=a.call(this,this.H>>8,this.T(this.D,this.C+this.F&65535));this.H=this.H&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.H>>8,this.T(this.N,this.I+this.G&65535));this.H=this.H&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.H>>8,this.T(this.N,this.I+this.F&65535));this.H=this.H&255|a<<8;this.A-=this.B.da},function(a){a=a.call(this,this.H>>8,this.T(this.D,this.G));this.H=this.H&255|a<<8;this.A-=this.B.$}, -function(a){a=a.call(this,this.H>>8,this.T(this.D,this.F));this.H=this.H&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.H>>8,this.T(this.D,this.L()));this.H=this.H&255|a<<8;this.A-=this.B.oa},function(a){a=a.call(this,this.H>>8,this.T(this.D,this.C));this.H=this.H&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.C+this.G&65535));this.J=this.J&255|a<<8;this.A-=this.B.da},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.C+this.F&65535));this.J=this.J& -255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.J>>8,this.T(this.N,this.I+this.G&65535));this.J=this.J&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.J>>8,this.T(this.N,this.I+this.F&65535));this.J=this.J&255|a<<8;this.A-=this.B.da},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.G));this.J=this.J&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.F));this.J=this.J&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.J>>8,this.T(this.D, -this.L()));this.J=this.J&255|a<<8;this.A-=this.B.oa},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.C));this.J=this.J&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.C+this.G&65535));this.K=this.K&255|a<<8;this.A-=this.B.da},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.C+this.F&65535));this.K=this.K&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.K>>8,this.T(this.N,this.I+this.G&65535));this.K=this.K&255|a<<8;this.A-=this.B.ea},function(a){a= -a.call(this,this.K>>8,this.T(this.N,this.I+this.F&65535));this.K=this.K&255|a<<8;this.A-=this.B.da},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.G));this.K=this.K&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.F));this.K=this.K&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.L()));this.K=this.K&255|a<<8;this.A-=this.B.oa},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.C));this.K=this.K&255|a<<8;this.A-=this.B.$}, -function(a){a=a.call(this,this.C>>8,this.T(this.D,this.C+this.G&65535));this.C=this.C&255|a<<8;this.A-=this.B.da},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.C+this.F&65535));this.C=this.C&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.C>>8,this.T(this.N,this.I+this.G&65535));this.C=this.C&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.C>>8,this.T(this.N,this.I+this.F&65535));this.C=this.C&255|a<<8;this.A-=this.B.da},function(a){a=a.call(this,this.C>>8,this.T(this.D, -this.G));this.C=this.C&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.F));this.C=this.C&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.L()));this.C=this.C&255|a<<8;this.A-=this.B.oa},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.C));this.C=this.C&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.H&255,this.T(this.D,this.C+this.G+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.V},function(a){a=a.call(this,this.H& +wf,Ef,Mf,Uf,bg,jg,rg,zg,xf,Ff,Nf,Vf,cg,kg,sg,Ag,yf,Gf,Of,Wf,dg,lg,tg,Bg],Dg=[function(a){a=a.call(this,this.H&255,this.T(this.D,this.C+this.G&65535));this.H=this.H&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.H&255,this.T(this.D,this.C+this.F&65535));this.H=this.H&-256|a;this.A-=this.B.fa},function(a){a=a.call(this,this.H&255,this.T(this.N,this.I+this.G&65535));this.H=this.H&-256|a;this.A-=this.B.fa},function(a){a=a.call(this,this.H&255,this.T(this.N,this.I+this.F&65535));this.H=this.H& +-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.H&255,this.T(this.D,this.G));this.H=this.H&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.H&255,this.T(this.D,this.F));this.H=this.H&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.H&255,this.T(this.D,this.L()));this.H=this.H&-256|a;this.A-=this.B.qa},function(a){a=a.call(this,this.H&255,this.T(this.D,this.C));this.H=this.H&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.J&255,this.T(this.D,this.C+this.G&65535));this.J= +this.J&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.J&255,this.T(this.D,this.C+this.F&65535));this.J=this.J&-256|a;this.A-=this.B.fa},function(a){a=a.call(this,this.J&255,this.T(this.N,this.I+this.G&65535));this.J=this.J&-256|a;this.A-=this.B.fa},function(a){a=a.call(this,this.J&255,this.T(this.N,this.I+this.F&65535));this.J=this.J&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.J&255,this.T(this.D,this.G));this.J=this.J&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.J& +255,this.T(this.D,this.F));this.J=this.J&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.J&255,this.T(this.D,this.L()));this.J=this.J&-256|a;this.A-=this.B.qa},function(a){a=a.call(this,this.J&255,this.T(this.D,this.C));this.J=this.J&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.K&255,this.T(this.D,this.C+this.G&65535));this.K=this.K&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.K&255,this.T(this.D,this.C+this.F&65535));this.K=this.K&-256|a;this.A-=this.B.fa},function(a){a= +a.call(this,this.K&255,this.T(this.N,this.I+this.G&65535));this.K=this.K&-256|a;this.A-=this.B.fa},function(a){a=a.call(this,this.K&255,this.T(this.N,this.I+this.F&65535));this.K=this.K&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.K&255,this.T(this.D,this.G));this.K=this.K&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.K&255,this.T(this.D,this.F));this.K=this.K&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.K&255,this.T(this.D,this.L()));this.K=this.K&-256|a;this.A-= +this.B.qa},function(a){a=a.call(this,this.K&255,this.T(this.D,this.C));this.K=this.K&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.C&255,this.T(this.D,this.C+this.G&65535));this.C=this.C&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.C&255,this.T(this.D,this.C+this.F&65535));this.C=this.C&-256|a;this.A-=this.B.fa},function(a){a=a.call(this,this.C&255,this.T(this.N,this.I+this.G&65535));this.C=this.C&-256|a;this.A-=this.B.fa},function(a){a=a.call(this,this.C&255,this.T(this.N,this.I+ +this.F&65535));this.C=this.C&-256|a;this.A-=this.B.ea},function(a){a=a.call(this,this.C&255,this.T(this.D,this.G));this.C=this.C&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.C&255,this.T(this.D,this.F));this.C=this.C&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.C&255,this.T(this.D,this.L()));this.C=this.C&-256|a;this.A-=this.B.qa},function(a){a=a.call(this,this.C&255,this.T(this.D,this.C));this.C=this.C&-256|a;this.A-=this.B.$},function(a){a=a.call(this,this.H>>8,this.T(this.D, +this.C+this.G&65535));this.H=this.H&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.H>>8,this.T(this.D,this.C+this.F&65535));this.H=this.H&255|a<<8;this.A-=this.B.fa},function(a){a=a.call(this,this.H>>8,this.T(this.N,this.I+this.G&65535));this.H=this.H&255|a<<8;this.A-=this.B.fa},function(a){a=a.call(this,this.H>>8,this.T(this.N,this.I+this.F&65535));this.H=this.H&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.H>>8,this.T(this.D,this.G));this.H=this.H&255|a<<8;this.A-=this.B.$}, +function(a){a=a.call(this,this.H>>8,this.T(this.D,this.F));this.H=this.H&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.H>>8,this.T(this.D,this.L()));this.H=this.H&255|a<<8;this.A-=this.B.qa},function(a){a=a.call(this,this.H>>8,this.T(this.D,this.C));this.H=this.H&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.C+this.G&65535));this.J=this.J&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.C+this.F&65535));this.J=this.J& +255|a<<8;this.A-=this.B.fa},function(a){a=a.call(this,this.J>>8,this.T(this.N,this.I+this.G&65535));this.J=this.J&255|a<<8;this.A-=this.B.fa},function(a){a=a.call(this,this.J>>8,this.T(this.N,this.I+this.F&65535));this.J=this.J&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.G));this.J=this.J&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.F));this.J=this.J&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.J>>8,this.T(this.D, +this.L()));this.J=this.J&255|a<<8;this.A-=this.B.qa},function(a){a=a.call(this,this.J>>8,this.T(this.D,this.C));this.J=this.J&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.C+this.G&65535));this.K=this.K&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.C+this.F&65535));this.K=this.K&255|a<<8;this.A-=this.B.fa},function(a){a=a.call(this,this.K>>8,this.T(this.N,this.I+this.G&65535));this.K=this.K&255|a<<8;this.A-=this.B.fa},function(a){a= +a.call(this,this.K>>8,this.T(this.N,this.I+this.F&65535));this.K=this.K&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.G));this.K=this.K&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.F));this.K=this.K&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.L()));this.K=this.K&255|a<<8;this.A-=this.B.qa},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.C));this.K=this.K&255|a<<8;this.A-=this.B.$}, +function(a){a=a.call(this,this.C>>8,this.T(this.D,this.C+this.G&65535));this.C=this.C&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.C+this.F&65535));this.C=this.C&255|a<<8;this.A-=this.B.fa},function(a){a=a.call(this,this.C>>8,this.T(this.N,this.I+this.G&65535));this.C=this.C&255|a<<8;this.A-=this.B.fa},function(a){a=a.call(this,this.C>>8,this.T(this.N,this.I+this.F&65535));this.C=this.C&255|a<<8;this.A-=this.B.ea},function(a){a=a.call(this,this.C>>8,this.T(this.D, +this.G));this.C=this.C&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.F));this.C=this.C&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.L()));this.C=this.C&255|a<<8;this.A-=this.B.qa},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.C));this.C=this.C&255|a<<8;this.A-=this.B.$},function(a){a=a.call(this,this.H&255,this.T(this.D,this.C+this.G+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.V},function(a){a=a.call(this,this.H& 255,this.T(this.D,this.C+this.F+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.W},function(a){a=a.call(this,this.H&255,this.T(this.N,this.I+this.G+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.W},function(a){a=a.call(this,this.H&255,this.T(this.N,this.I+this.F+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.V},function(a){a=a.call(this,this.H&255,this.T(this.D,this.G+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.H&255,this.T(this.D,this.F+ this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.H&255,this.T(this.N,this.I+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.H&255,this.T(this.D,this.C+this.M()&65535));this.H=this.H&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.J&255,this.T(this.D,this.C+this.G+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.V},function(a){a=a.call(this,this.J&255,this.T(this.D,this.C+this.F+this.M()&65535));this.J=this.J& -256|a;this.A-=this.B.W},function(a){a=a.call(this,this.J&255,this.T(this.N,this.I+this.G+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.W},function(a){a=a.call(this,this.J&255,this.T(this.N,this.I+this.F+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.V},function(a){a=a.call(this,this.J&255,this.T(this.D,this.G+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.Q},function(a){a=a.call(this,this.J&255,this.T(this.D,this.F+this.M()&65535));this.J=this.J&-256|a;this.A-=this.B.Q},function(a){a= @@ -224,17 +225,17 @@ this.K=this.K&255|a<<8;this.A-=this.B.V},function(a){a=a.call(this,this.K>>8,thi 8;this.A-=this.B.Q},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.F+this.L()&65535));this.K=this.K&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.K>>8,this.T(this.N,this.I+this.L()&65535));this.K=this.K&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.K>>8,this.T(this.D,this.C+this.L()&65535));this.K=this.K&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.C+this.G+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.V},function(a){a= a.call(this,this.C>>8,this.T(this.D,this.C+this.F+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.W},function(a){a=a.call(this,this.C>>8,this.T(this.N,this.I+this.G+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.W},function(a){a=a.call(this,this.C>>8,this.T(this.N,this.I+this.F+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.V},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.G+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.C>> 8,this.T(this.D,this.F+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.C>>8,this.T(this.N,this.I+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.Q},function(a){a=a.call(this,this.C>>8,this.T(this.D,this.C+this.L()&65535));this.C=this.C&255|a<<8;this.A-=this.B.Q},fe,ge,he,ie,je,ke,le,me,ne,oe,pe,qe,re,se,te,ue,ve,we,xe,ye,ze,Ae,Be,Ce,De,Ee,Fe,Ge,He,Ie,Je,Ke,Le,Me,Ne,Oe,Pe,Qe,Re,Se,Te,Ue,Ve,We,Xe,Ye,Ze,$e,af,bf,cf,df,ef,ff,gf,hf,jf,kf,lf,mf,nf,of,pf,qf], -P=[function(a){this.H=a.call(this,this.H,this.U(this.D,this.C+this.G&65535));this.A-=this.B.da},function(a){this.H=a.call(this,this.H,this.U(this.D,this.C+this.F&65535));this.A-=this.B.ea},function(a){this.H=a.call(this,this.H,this.U(this.N,this.I+this.G&65535));this.A-=this.B.ea},function(a){this.H=a.call(this,this.H,this.U(this.N,this.I+this.F&65535));this.A-=this.B.da},function(a){this.H=a.call(this,this.H,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.H=a.call(this,this.H,this.U(this.D, -this.F));this.A-=this.B.$},function(a){this.H=a.call(this,this.H,this.U(this.D,this.L()));this.A-=this.B.oa},function(a){this.H=a.call(this,this.H,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C+this.G&65535));this.A-=this.B.da},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C+this.F&65535));this.A-=this.B.ea},function(a){this.J=a.call(this,this.J,this.U(this.N,this.I+this.G&65535));this.A-=this.B.ea},function(a){this.J=a.call(this,this.J, -this.U(this.N,this.I+this.F&65535));this.A-=this.B.da},function(a){this.J=a.call(this,this.J,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.J=a.call(this,this.J,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.J=a.call(this,this.J,this.U(this.D,this.L()));this.A-=this.B.oa},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.K=a.call(this,this.K,this.U(this.D,this.C+this.G&65535));this.A-=this.B.da},function(a){this.K=a.call(this,this.K, -this.U(this.D,this.C+this.F&65535));this.A-=this.B.ea},function(a){this.K=a.call(this,this.K,this.U(this.N,this.I+this.G&65535));this.A-=this.B.ea},function(a){this.K=a.call(this,this.K,this.U(this.N,this.I+this.F&65535));this.A-=this.B.da},function(a){this.K=a.call(this,this.K,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.K=a.call(this,this.K,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.K=a.call(this,this.K,this.U(this.D,this.L()));this.A-=this.B.oa},function(a){this.K=a.call(this, -this.K,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.C=a.call(this,this.C,this.U(this.D,this.C+this.G&65535));this.A-=this.B.da},function(a){this.C=a.call(this,this.C,this.U(this.D,this.C+this.F&65535));this.A-=this.B.ea},function(a){this.C=a.call(this,this.C,this.U(this.N,this.I+this.G&65535));this.A-=this.B.ea},function(a){this.C=a.call(this,this.C,this.U(this.N,this.I+this.F&65535));this.A-=this.B.da},function(a){this.C=a.call(this,this.C,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.C= -a.call(this,this.C,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.C=a.call(this,this.C,this.U(this.D,this.L()));this.A-=this.B.oa},function(a){this.C=a.call(this,this.C,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.C+this.G&65535));this.A-=this.B.da},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.C+this.F&65535));this.A-=this.B.ea},function(a){this.Y=a.call(this,this.Y,this.U(this.N,this.I+this.G&65535));this.A-=this.B.ea},function(a){this.Y= -a.call(this,this.Y,this.U(this.N,this.I+this.F&65535));this.A-=this.B.da},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.L()));this.A-=this.B.oa},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.I=a.call(this,this.I,this.U(this.D,this.C+this.G&65535));this.A-=this.B.da},function(a){this.I= -a.call(this,this.I,this.U(this.D,this.C+this.F&65535));this.A-=this.B.ea},function(a){this.I=a.call(this,this.I,this.U(this.N,this.I+this.G&65535));this.A-=this.B.ea},function(a){this.I=a.call(this,this.I,this.U(this.N,this.I+this.F&65535));this.A-=this.B.da},function(a){this.I=a.call(this,this.I,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.I=a.call(this,this.I,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.I=a.call(this,this.I,this.U(this.D,this.L()));this.A-=this.B.oa},function(a){this.I= -a.call(this,this.I,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.G=a.call(this,this.G,this.U(this.D,this.C+this.G&65535));this.A-=this.B.da},function(a){this.G=a.call(this,this.G,this.U(this.D,this.C+this.F&65535));this.A-=this.B.ea},function(a){this.G=a.call(this,this.G,this.U(this.N,this.I+this.G&65535));this.A-=this.B.ea},function(a){this.G=a.call(this,this.G,this.U(this.N,this.I+this.F&65535));this.A-=this.B.da},function(a){this.G=a.call(this,this.G,this.U(this.D,this.G));this.A-= -this.B.$},function(a){this.G=a.call(this,this.G,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.G=a.call(this,this.G,this.U(this.D,this.L()));this.A-=this.B.oa},function(a){this.G=a.call(this,this.G,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.F=a.call(this,this.F,this.U(this.D,this.C+this.G&65535));this.A-=this.B.da},function(a){this.F=a.call(this,this.F,this.U(this.D,this.C+this.F&65535));this.A-=this.B.ea},function(a){this.F=a.call(this,this.F,this.U(this.N,this.I+this.G& -65535));this.A-=this.B.ea},function(a){this.F=a.call(this,this.F,this.U(this.N,this.I+this.F&65535));this.A-=this.B.da},function(a){this.F=a.call(this,this.F,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.F=a.call(this,this.F,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.F=a.call(this,this.F,this.U(this.D,this.L()));this.A-=this.B.oa},function(a){this.F=a.call(this,this.F,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.H=a.call(this,this.H,this.U(this.D,this.C+this.G+ +P=[function(a){this.H=a.call(this,this.H,this.U(this.D,this.C+this.G&65535));this.A-=this.B.ea},function(a){this.H=a.call(this,this.H,this.U(this.D,this.C+this.F&65535));this.A-=this.B.fa},function(a){this.H=a.call(this,this.H,this.U(this.N,this.I+this.G&65535));this.A-=this.B.fa},function(a){this.H=a.call(this,this.H,this.U(this.N,this.I+this.F&65535));this.A-=this.B.ea},function(a){this.H=a.call(this,this.H,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.H=a.call(this,this.H,this.U(this.D, +this.F));this.A-=this.B.$},function(a){this.H=a.call(this,this.H,this.U(this.D,this.L()));this.A-=this.B.qa},function(a){this.H=a.call(this,this.H,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C+this.G&65535));this.A-=this.B.ea},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C+this.F&65535));this.A-=this.B.fa},function(a){this.J=a.call(this,this.J,this.U(this.N,this.I+this.G&65535));this.A-=this.B.fa},function(a){this.J=a.call(this,this.J, +this.U(this.N,this.I+this.F&65535));this.A-=this.B.ea},function(a){this.J=a.call(this,this.J,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.J=a.call(this,this.J,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.J=a.call(this,this.J,this.U(this.D,this.L()));this.A-=this.B.qa},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.K=a.call(this,this.K,this.U(this.D,this.C+this.G&65535));this.A-=this.B.ea},function(a){this.K=a.call(this,this.K, +this.U(this.D,this.C+this.F&65535));this.A-=this.B.fa},function(a){this.K=a.call(this,this.K,this.U(this.N,this.I+this.G&65535));this.A-=this.B.fa},function(a){this.K=a.call(this,this.K,this.U(this.N,this.I+this.F&65535));this.A-=this.B.ea},function(a){this.K=a.call(this,this.K,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.K=a.call(this,this.K,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.K=a.call(this,this.K,this.U(this.D,this.L()));this.A-=this.B.qa},function(a){this.K=a.call(this, +this.K,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.C=a.call(this,this.C,this.U(this.D,this.C+this.G&65535));this.A-=this.B.ea},function(a){this.C=a.call(this,this.C,this.U(this.D,this.C+this.F&65535));this.A-=this.B.fa},function(a){this.C=a.call(this,this.C,this.U(this.N,this.I+this.G&65535));this.A-=this.B.fa},function(a){this.C=a.call(this,this.C,this.U(this.N,this.I+this.F&65535));this.A-=this.B.ea},function(a){this.C=a.call(this,this.C,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.C= +a.call(this,this.C,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.C=a.call(this,this.C,this.U(this.D,this.L()));this.A-=this.B.qa},function(a){this.C=a.call(this,this.C,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.C+this.G&65535));this.A-=this.B.ea},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.C+this.F&65535));this.A-=this.B.fa},function(a){this.Y=a.call(this,this.Y,this.U(this.N,this.I+this.G&65535));this.A-=this.B.fa},function(a){this.Y= +a.call(this,this.Y,this.U(this.N,this.I+this.F&65535));this.A-=this.B.ea},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.L()));this.A-=this.B.qa},function(a){this.Y=a.call(this,this.Y,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.I=a.call(this,this.I,this.U(this.D,this.C+this.G&65535));this.A-=this.B.ea},function(a){this.I= +a.call(this,this.I,this.U(this.D,this.C+this.F&65535));this.A-=this.B.fa},function(a){this.I=a.call(this,this.I,this.U(this.N,this.I+this.G&65535));this.A-=this.B.fa},function(a){this.I=a.call(this,this.I,this.U(this.N,this.I+this.F&65535));this.A-=this.B.ea},function(a){this.I=a.call(this,this.I,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.I=a.call(this,this.I,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.I=a.call(this,this.I,this.U(this.D,this.L()));this.A-=this.B.qa},function(a){this.I= +a.call(this,this.I,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.G=a.call(this,this.G,this.U(this.D,this.C+this.G&65535));this.A-=this.B.ea},function(a){this.G=a.call(this,this.G,this.U(this.D,this.C+this.F&65535));this.A-=this.B.fa},function(a){this.G=a.call(this,this.G,this.U(this.N,this.I+this.G&65535));this.A-=this.B.fa},function(a){this.G=a.call(this,this.G,this.U(this.N,this.I+this.F&65535));this.A-=this.B.ea},function(a){this.G=a.call(this,this.G,this.U(this.D,this.G));this.A-= +this.B.$},function(a){this.G=a.call(this,this.G,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.G=a.call(this,this.G,this.U(this.D,this.L()));this.A-=this.B.qa},function(a){this.G=a.call(this,this.G,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.F=a.call(this,this.F,this.U(this.D,this.C+this.G&65535));this.A-=this.B.ea},function(a){this.F=a.call(this,this.F,this.U(this.D,this.C+this.F&65535));this.A-=this.B.fa},function(a){this.F=a.call(this,this.F,this.U(this.N,this.I+this.G& +65535));this.A-=this.B.fa},function(a){this.F=a.call(this,this.F,this.U(this.N,this.I+this.F&65535));this.A-=this.B.ea},function(a){this.F=a.call(this,this.F,this.U(this.D,this.G));this.A-=this.B.$},function(a){this.F=a.call(this,this.F,this.U(this.D,this.F));this.A-=this.B.$},function(a){this.F=a.call(this,this.F,this.U(this.D,this.L()));this.A-=this.B.qa},function(a){this.F=a.call(this,this.F,this.U(this.D,this.C));this.A-=this.B.$},function(a){this.H=a.call(this,this.H,this.U(this.D,this.C+this.G+ this.M()&65535));this.A-=this.B.V},function(a){this.H=a.call(this,this.H,this.U(this.D,this.C+this.F+this.M()&65535));this.A-=this.B.W},function(a){this.H=a.call(this,this.H,this.U(this.N,this.I+this.G+this.M()&65535));this.A-=this.B.W},function(a){this.H=a.call(this,this.H,this.U(this.N,this.I+this.F+this.M()&65535));this.A-=this.B.V},function(a){this.H=a.call(this,this.H,this.U(this.D,this.G+this.M()&65535));this.A-=this.B.Q},function(a){this.H=a.call(this,this.H,this.U(this.D,this.F+this.M()&65535)); this.A-=this.B.Q},function(a){this.H=a.call(this,this.H,this.U(this.N,this.I+this.M()&65535));this.A-=this.B.Q},function(a){this.H=a.call(this,this.H,this.U(this.D,this.C+this.M()&65535));this.A-=this.B.Q},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C+this.G+this.M()&65535));this.A-=this.B.V},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C+this.F+this.M()&65535));this.A-=this.B.W},function(a){this.J=a.call(this,this.J,this.U(this.N,this.I+this.G+this.M()&65535));this.A-=this.B.W}, function(a){this.J=a.call(this,this.J,this.U(this.N,this.I+this.F+this.M()&65535));this.A-=this.B.V},function(a){this.J=a.call(this,this.J,this.U(this.D,this.G+this.M()&65535));this.A-=this.B.Q},function(a){this.J=a.call(this,this.J,this.U(this.D,this.F+this.M()&65535));this.A-=this.B.Q},function(a){this.J=a.call(this,this.J,this.U(this.N,this.I+this.M()&65535));this.A-=this.B.Q},function(a){this.J=a.call(this,this.J,this.U(this.D,this.C+this.M()&65535));this.A-=this.B.Q},function(a){this.K=a.call(this, @@ -260,20 +261,20 @@ function(a){this.I=a.call(this,this.I,this.U(this.N,this.I+this.L()&65535));this a.call(this,this.G,this.U(this.N,this.I+this.F+this.L()&65535));this.A-=this.B.V},function(a){this.G=a.call(this,this.G,this.U(this.D,this.G+this.L()&65535));this.A-=this.B.Q},function(a){this.G=a.call(this,this.G,this.U(this.D,this.F+this.L()&65535));this.A-=this.B.Q},function(a){this.G=a.call(this,this.G,this.U(this.N,this.I+this.L()&65535));this.A-=this.B.Q},function(a){this.G=a.call(this,this.G,this.U(this.D,this.C+this.L()&65535));this.A-=this.B.Q},function(a){this.F=a.call(this,this.F,this.U(this.D, this.C+this.G+this.L()&65535));this.A-=this.B.V},function(a){this.F=a.call(this,this.F,this.U(this.D,this.C+this.F+this.L()&65535));this.A-=this.B.W},function(a){this.F=a.call(this,this.F,this.U(this.N,this.I+this.G+this.L()&65535));this.A-=this.B.W},function(a){this.F=a.call(this,this.F,this.U(this.N,this.I+this.F+this.L()&65535));this.A-=this.B.V},function(a){this.F=a.call(this,this.F,this.U(this.D,this.G+this.L()&65535));this.A-=this.B.Q},function(a){this.F=a.call(this,this.F,this.U(this.D,this.F+ this.L()&65535));this.A-=this.B.Q},function(a){this.F=a.call(this,this.F,this.U(this.N,this.I+this.L()&65535));this.A-=this.B.Q},function(a){this.F=a.call(this,this.F,this.U(this.D,this.C+this.L()&65535));this.A-=this.B.Q},rf,sf,tf,uf,vf,wf,xf,yf,zf,Af,Bf,Cf,Df,Ef,Ff,Gf,Hf,If,Jf,Kf,Lf,Mf,Nf,Of,Pf,Qf,Rf,Sf,Tf,Uf,Vf,Wf,Xf,Yf,Zf,$f,ag,bg,cg,dg,eg,fg,gg,hg,ig,jg,kg,lg,mg,ng,og,pg,qg,rg,sg,tg,ug,vg,wg,xg,yg,zg,Ag,Bg],Eg=[function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.G&65535),b.call(this)); -this.R(c);this.A-=this.B.da},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[0].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this, -this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.oa},function(a,b){var c=a[0].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a, -b){var c=a[1].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[1].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-= -this.B.oa},function(a,b){var c=a[1].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[2].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[2].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[2].call(this,this.O(this.N,this.I+ -this.F&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[2].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.oa},function(a,b){var c=a[2].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.O(this.D, -this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[3].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[3].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[3].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[3].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$}, -function(a,b){var c=a[3].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.oa},function(a,b){var c=a[3].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[4].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c); -this.A-=this.B.ea},function(a,b){var c=a[4].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[4].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[4].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.O(this.D,this.L()), -b.call(this));this.R(c);this.A-=this.B.oa},function(a,b){var c=a[4].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[5].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[5].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c= -a[5].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[5].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.oa},function(a,b){var c=a[5].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a, -b){var c=a[6].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[6].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[6].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[6].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[6].call(this,this.O(this.D,this.G),b.call(this)); -this.R(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.oa},function(a,b){var c=a[6].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[7].call(this,this.O(this.D,this.C+this.F& -65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[7].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[7].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.da},function(a,b){var c=a[7].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this, -this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.oa},function(a,b){var c=a[7].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.V},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.G+this.M()&65535),b.call(this)); +this.R(c);this.A-=this.B.ea},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[0].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this, +this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.qa},function(a,b){var c=a[0].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a, +b){var c=a[1].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[1].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-= +this.B.qa},function(a,b){var c=a[1].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[2].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[2].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[2].call(this,this.O(this.N,this.I+ +this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[2].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.qa},function(a,b){var c=a[2].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.O(this.D, +this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[3].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[3].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[3].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[3].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$}, +function(a,b){var c=a[3].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.qa},function(a,b){var c=a[3].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[4].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c); +this.A-=this.B.fa},function(a,b){var c=a[4].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[4].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[4].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.O(this.D,this.L()), +b.call(this));this.R(c);this.A-=this.B.qa},function(a,b){var c=a[4].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[5].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[5].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c= +a[5].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[5].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.qa},function(a,b){var c=a[5].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a, +b){var c=a[6].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[6].call(this,this.O(this.D,this.C+this.F&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[6].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[6].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[6].call(this,this.O(this.D,this.G),b.call(this)); +this.R(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.qa},function(a,b){var c=a[6].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.O(this.D,this.C+this.G&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[7].call(this,this.O(this.D,this.C+this.F& +65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[7].call(this,this.O(this.N,this.I+this.G&65535),b.call(this));this.R(c);this.A-=this.B.fa},function(a,b){var c=a[7].call(this,this.O(this.N,this.I+this.F&65535),b.call(this));this.R(c);this.A-=this.B.ea},function(a,b){var c=a[7].call(this,this.O(this.D,this.G),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.O(this.D,this.F),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this, +this.O(this.D,this.L()),b.call(this));this.R(c);this.A-=this.B.qa},function(a,b){var c=a[7].call(this,this.O(this.D,this.C),b.call(this));this.R(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.V},function(a,b){var c=a[0].call(this,this.O(this.D,this.C+this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.G+this.M()&65535),b.call(this)); this.R(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.V},function(a,b){var c=a[0].call(this,this.O(this.D,this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.O(this.D,this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.O(this.N,this.I+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a, b){var c=a[0].call(this,this.O(this.D,this.C+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.V},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.W},function(a,b){var c=a[1].call(this, this.O(this.N,this.I+this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.V},function(a,b){var c=a[1].call(this,this.O(this.D,this.G+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.O(this.D,this.F+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.O(this.N,this.I+this.M()&65535),b.call(this));this.R(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.O(this.D,this.C+this.M()&65535),b.call(this)); @@ -313,20 +314,20 @@ this.H>>8,b.call(this));this.H=this.H&255|c<<8},function(a,b){var c=a[4].call(th 255,b.call(this));this.K=this.K&-256|c},function(a,b){var c=a[5].call(this,this.C&255,b.call(this));this.C=this.C&-256|c},function(a,b){var c=a[5].call(this,this.H>>8,b.call(this));this.H=this.H&255|c<<8},function(a,b){var c=a[5].call(this,this.J>>8,b.call(this));this.J=this.J&255|c<<8},function(a,b){var c=a[5].call(this,this.K>>8,b.call(this));this.K=this.K&255|c<<8},function(a,b){var c=a[5].call(this,this.C>>8,b.call(this));this.C=this.C&255|c<<8},function(a,b){var c=a[6].call(this,this.H&255,b.call(this)); this.H=this.H&-256|c},function(a,b){var c=a[6].call(this,this.J&255,b.call(this));this.J=this.J&-256|c},function(a,b){var c=a[6].call(this,this.K&255,b.call(this));this.K=this.K&-256|c},function(a,b){var c=a[6].call(this,this.C&255,b.call(this));this.C=this.C&-256|c},function(a,b){var c=a[6].call(this,this.H>>8,b.call(this));this.H=this.H&255|c<<8},function(a,b){var c=a[6].call(this,this.J>>8,b.call(this));this.J=this.J&255|c<<8},function(a,b){var c=a[6].call(this,this.K>>8,b.call(this));this.K=this.K& 255|c<<8},function(a,b){var c=a[6].call(this,this.C>>8,b.call(this));this.C=this.C&255|c<<8},function(a,b){var c=a[7].call(this,this.H&255,b.call(this));this.H=this.H&-256|c},function(a,b){var c=a[7].call(this,this.J&255,b.call(this));this.J=this.J&-256|c},function(a,b){var c=a[7].call(this,this.K&255,b.call(this));this.K=this.K&-256|c},function(a,b){var c=a[7].call(this,this.C&255,b.call(this));this.C=this.C&-256|c},function(a,b){var c=a[7].call(this,this.H>>8,b.call(this));this.H=this.H&255|c<< -8},function(a,b){var c=a[7].call(this,this.J>>8,b.call(this));this.J=this.J&255|c<<8},function(a,b){var c=a[7].call(this,this.K>>8,b.call(this));this.K=this.K&255|c<<8},function(a,b){var c=a[7].call(this,this.C>>8,b.call(this));this.C=this.C&255|c<<8}],Fg=[function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c= -a[0].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[0].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.oa}, -function(a,b){var c=a[0].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.F& -65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[1].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.oa},function(a,b){var c=a[1].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.P(this.D,this.C+ -this.G&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[2].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[2].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[2].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[2].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a, -b){var c=a[2].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.oa},function(a,b){var c=a[2].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[3].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-= -this.B.ea},function(a,b){var c=a[3].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[3].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[3].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.P(this.D,this.L()),b.call(this)); -this.S(c);this.A-=this.B.oa},function(a,b){var c=a[3].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[4].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[4].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[4].call(this, -this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[4].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.oa},function(a,b){var c=a[4].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this, -this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[5].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[5].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[5].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[5].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-= -this.B.$},function(a,b){var c=a[5].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.oa},function(a,b){var c=a[5].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[6].call(this,this.P(this.D,this.C+this.F&65535),b.call(this)); -this.S(c);this.A-=this.B.ea},function(a,b){var c=a[6].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[6].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[6].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.P(this.D, -this.L()),b.call(this));this.S(c);this.A-=this.B.oa},function(a,b){var c=a[6].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[7].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[7].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a, -b){var c=a[7].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.da},function(a,b){var c=a[7].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.oa},function(a,b){var c=a[7].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$}, +8},function(a,b){var c=a[7].call(this,this.J>>8,b.call(this));this.J=this.J&255|c<<8},function(a,b){var c=a[7].call(this,this.K>>8,b.call(this));this.K=this.K&255|c<<8},function(a,b){var c=a[7].call(this,this.C>>8,b.call(this));this.C=this.C&255|c<<8}],Fg=[function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c= +a[0].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[0].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[0].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.qa}, +function(a,b){var c=a[0].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.F& +65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[1].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[1].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.qa},function(a,b){var c=a[1].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.P(this.D,this.C+ +this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[2].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[2].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[2].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[2].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a, +b){var c=a[2].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[2].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.qa},function(a,b){var c=a[2].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[3].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-= +this.B.fa},function(a,b){var c=a[3].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[3].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[3].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[3].call(this,this.P(this.D,this.L()),b.call(this)); +this.S(c);this.A-=this.B.qa},function(a,b){var c=a[3].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[4].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[4].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[4].call(this, +this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[4].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[4].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.qa},function(a,b){var c=a[4].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this, +this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[5].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[5].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[5].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[5].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-= +this.B.$},function(a,b){var c=a[5].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[5].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.qa},function(a,b){var c=a[5].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[6].call(this,this.P(this.D,this.C+this.F&65535),b.call(this)); +this.S(c);this.A-=this.B.fa},function(a,b){var c=a[6].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[6].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[6].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[6].call(this,this.P(this.D, +this.L()),b.call(this));this.S(c);this.A-=this.B.qa},function(a,b){var c=a[6].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.P(this.D,this.C+this.G&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[7].call(this,this.P(this.D,this.C+this.F&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a,b){var c=a[7].call(this,this.P(this.N,this.I+this.G&65535),b.call(this));this.S(c);this.A-=this.B.fa},function(a, +b){var c=a[7].call(this,this.P(this.N,this.I+this.F&65535),b.call(this));this.S(c);this.A-=this.B.ea},function(a,b){var c=a[7].call(this,this.P(this.D,this.G),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.P(this.D,this.F),b.call(this));this.S(c);this.A-=this.B.$},function(a,b){var c=a[7].call(this,this.P(this.D,this.L()),b.call(this));this.S(c);this.A-=this.B.qa},function(a,b){var c=a[7].call(this,this.P(this.D,this.C),b.call(this));this.S(c);this.A-=this.B.$}, function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.V},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.V},function(a,b){var c= a[0].call(this,this.P(this.D,this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.P(this.D,this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.P(this.N,this.I+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[0].call(this,this.P(this.D,this.C+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.Q},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.G+this.M()& 65535),b.call(this));this.S(c);this.A-=this.B.V},function(a,b){var c=a[1].call(this,this.P(this.D,this.C+this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.G+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.W},function(a,b){var c=a[1].call(this,this.P(this.N,this.I+this.F+this.M()&65535),b.call(this));this.S(c);this.A-=this.B.V},function(a,b){var c=a[1].call(this,this.P(this.D,this.G+this.M()&65535),b.call(this));this.S(c); @@ -364,272 +365,273 @@ a[3].call(this,this.I,b.call(this))},function(a,b){this.G=a[3].call(this,this.G, function(a,b){this.G=a[4].call(this,this.G,b.call(this))},function(a,b){this.F=a[4].call(this,this.F,b.call(this))},function(a,b){this.H=a[5].call(this,this.H,b.call(this))},function(a,b){this.J=a[5].call(this,this.J,b.call(this))},function(a,b){this.K=a[5].call(this,this.K,b.call(this))},function(a,b){this.C=a[5].call(this,this.C,b.call(this))},function(a,b){this.Y=a[5].call(this,this.Y,b.call(this))},function(a,b){this.I=a[5].call(this,this.I,b.call(this))},function(a,b){this.G=a[5].call(this,this.G, b.call(this))},function(a,b){this.F=a[5].call(this,this.F,b.call(this))},function(a,b){this.H=a[6].call(this,this.H,b.call(this))},function(a,b){this.J=a[6].call(this,this.J,b.call(this))},function(a,b){this.K=a[6].call(this,this.K,b.call(this))},function(a,b){this.C=a[6].call(this,this.C,b.call(this))},function(a,b){this.Z|=512;this.Y=a[6].call(this,this.Y,b.call(this))},function(a,b){this.I=a[6].call(this,this.I,b.call(this))},function(a,b){this.G=a[6].call(this,this.G,b.call(this))},function(a, b){this.F=a[6].call(this,this.F,b.call(this))},function(a,b){this.H=a[7].call(this,this.H,b.call(this))},function(a,b){this.J=a[7].call(this,this.J,b.call(this))},function(a,b){this.K=a[7].call(this,this.K,b.call(this))},function(a,b){this.C=a[7].call(this,this.C,b.call(this))},function(a,b){this.Y=a[7].call(this,this.Y,b.call(this))},function(a,b){this.I=a[7].call(this,this.I,b.call(this))},function(a,b){this.G=a[7].call(this,this.G,b.call(this))},function(a,b){this.F=a[7].call(this,this.F,b.call(this))}], -Hg=[function(){var a=this.ba();16>(a&56)&&(this.Z|=1);Fg[a].call(this,kc,Cd)},function(){var a=this.ba();a&16||(this.Z|=1);Fg[a].call(this,Gg,Cd)},function(){P[this.ba()].call(this,ae)},function(){P[this.ba()].call(this,be)},N,function(){ee.call(this,F(this,2054));this.F=F(this,2086);this.G=F(this,2088);this.I=F(this,2090);this.Y=F(this,2092);this.C=F(this,2094);this.K=F(this,2096);this.J=F(this,2098);this.H=F(this,2100);xb.call(this.fb,F(this,2084),2102);xb.call(this.wa,F(this,2082),2108);xb.call(this.Rb, -F(this,2080),2114);xb.call(this.Xb,F(this,2078),2120);this.mf=this.wa.Bb;gc(this,F(this,2072));I(this,F(this,2074));this.yc=F(this,2126)|F(this,2128)<<16;this.se=this.yc+F(this,2130);this.je.Bm(F(this,2076),2132);this.zc=F(this,2138)|F(this,2140)<<16;this.Od=this.zc+F(this,2142);this.Mf.Bm(F(this,2070),2144);this.A-=195},N,N,N,N,N,G,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N, -N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],lc=[function(){this.A-=2+(0>this.fa?0:1);return this.je.va},function(){this.A-=2+(0>this.fa?0:1);return this.Mf.va},function(a){this.Z|=2;this.je.load(a);this.A-=17+(0>this.fa?0: -2);return a},function(a){this.Z|=2;this.Mf.load(a);this.A-=17+(0>this.fa?0:2);return a},function(a){this.Z|=2;this.A-=14+(0>this.fa?0:2);if(0<=this.sb.load(a,!0)&&2048!=(this.sb.lc&2560)&&(3072==(this.sb.lc&3072)||this.sb.Bb>=(this.wa.va&3)&&this.sb.Bb>=(a&3)))return Ic(this),a;Ec(this);return a},function(a){this.Z|=2;this.A-=14+(0>this.fa?0:2);if(0<=this.sb.load(a,!0)&&512==(this.sb.lc&2560)&&this.sb.Bb>=(this.wa.va&3)&&this.sb.Bb>=(a&3))return Ic(this),a;Ec(this);return a},L,L],mc=[$b,$b,$b,$b, -$b,$b,L,L],kc=mc,Gg=[function(a){0>this.fa?G.call(this):(a=this.se-this.yc,Nc(this,this.fa+2,this.yc),Nc(this,this.fa+4,65280|this.yc>>16),this.A-=11);return a},function(a){0>this.fa?G.call(this):(a=this.Od-this.zc,Nc(this,this.fa+2,this.zc),Nc(this,this.fa+4,65280|this.zc>>16),this.A-=12);return a},function(a){0>this.fa?G.call(this):(this.yc=F(this,this.fa+2)|Lc(this,this.fa+4)<<16,this.se=this.yc+a,this.Z|=2,this.A-=11);return a},function(a){0>this.fa?G.call(this):(this.zc=F(this,this.fa+2)|Lc(this, -this.fa+4)<<16,this.Od=this.zc+a,this.Z|=2,this.A-=12);return a},function(){this.A-=2+(0>this.fa?0:1);return this.Hc},L,function(a){ee.call(this,a);this.A-=0>this.fa?3:6;this.Z|=2;return a},L];function bc(){Hg[this.ba()].call(this)}function dc(){K(this,this.Y);this.A-=this.B.cc}function Jb(){var a=this.Y;K(this,this.H);K(this,this.J);K(this,this.K);K(this,this.C);K(this,a);K(this,this.I);K(this,this.G);K(this,this.F);this.A-=this.B.Ck} -function Kb(){this.F=this.Ba();this.G=this.Ba();this.I=this.Ba();this.Y+=2;this.C=this.Ba();this.K=this.Ba();this.J=this.Ba();this.H=this.Ba();this.A-=this.B.Ak}function Lb(){P[this.ba()].call(this,Zd)}function cc(){O[this.ba()].call(this,$d)}function Mb(){K(this,this.L());this.A-=this.B.cc}function Nb(){P[this.ba()].call(this,Ud)}function Ob(){K(this,this.ba());this.A-=this.B.cc}function Pb(){P[this.ba()].call(this,Td)} -function Qb(){var a=1,b=0,c=5;this.ra&192&&(a=this.J,b=1,this.ra&256&&(c=4));if(a--){var d=Za(this.na,this.K,this.Fa-b-1);Mc(this,this.fb.Zb(this.F,0),d);this.F=this.F+(this.Da&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(J(this,-2),this.Z|=256)}} -function Rb(){var a=1,b=0,c=5;this.ra&192&&(a=this.J,b=1,this.ra&256&&(c=4));if(a--){var d=this.Fa-b-1,d=Za(this.na,this.K,d)|Za(this.na,this.K,d)<<8;Nc(this,this.fb.Zb(this.F,1),d);this.F=this.F+(this.Da&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(J(this,-2),this.Z|=256)}} -function Sb(){var a=1,b=0,c=5;this.ra&192&&(a=this.J,b=1,this.ra&256&&(c=4));if(a--){var d=Lc(this,this.Xb.Uc(this.G,0));this.G=this.G+(this.Da&1024?-1:1)&65535;this.A-=c;this.J-=b;ab(this.na,this.K,d,this.Fa-b-1);a&&(J(this,-2),this.Z|=256)}} -function Tb(){var a=1,b=0,c=5;this.ra&192&&(a=this.J,b=1,this.ra&256&&(c=4));if(a--){var d=F(this,this.Xb.Uc(this.G,1));this.G=this.G+(this.Da&1024?-2:2)&65535;this.A-=c;this.J-=b;b=this.Fa-b-1;ab(this.na,this.K,d&255,b);ab(this.na,this.K,d>>8,b);a&&(J(this,-2),this.Z|=256)}}function Ig(){var a=this.M();Bc(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb}function Jg(){var a=this.M();Bc(this)?this.A-=this.B.Hb:(I(this,this.sa+a),this.A-=this.B.Gb)} -function Kg(){var a=this.M();wc(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb}function Lg(){var a=this.M();wc(this)?this.A-=this.B.Hb:(I(this,this.sa+a),this.A-=this.B.Gb)}function Mg(){var a=this.M();zc(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb}function Ng(){var a=this.M();zc(this)?this.A-=this.B.Hb:(I(this,this.sa+a),this.A-=this.B.Gb)}function Og(){var a=this.M();wc(this)||zc(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb} -function Pg(){var a=this.M();wc(this)||zc(this)?this.A-=this.B.Hb:(I(this,this.sa+a),this.A-=this.B.Gb)}function Qg(){var a=this.M();Ac(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb}function Rg(){var a=this.M();Ac(this)?this.A-=this.B.Hb:(I(this,this.sa+a),this.A-=this.B.Gb)}function Sg(){var a=this.M();xc(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb}function Tg(){var a=this.M();xc(this)?this.A-=this.B.Hb:(I(this,this.sa+a),this.A-=this.B.Gb)} -function Ug(){var a=this.M();!Ac(this)!=!Bc(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb}function Vg(){var a=this.M();!Ac(this)==!Bc(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb}function Wg(){var a=this.M();zc(this)||!Ac(this)!=!Bc(this)?(I(this,this.sa+a),this.A-=this.B.Gb):this.A-=this.B.Hb}function Xg(){var a=this.M();zc(this)||!Ac(this)!=!Bc(this)?this.A-=this.B.Hb:(I(this,this.sa+a),this.A-=this.B.Gb)} -function Yg(){Eg[this.ba()].call(this,Ed,this.ba);this.A-=0>this.Ca?1:this.B.Jg}function Ub(){Eg[this.ba()].call(this,Nd,Bd)}function Vb(){Fg[this.ba()].call(this,Od,Bd)}function Zg(){var a=this.L();I(this,this.Ba());this.Y=this.Y+a&65535;this.A-=this.B.Hk}function $g(){I(this,this.Ba());this.A-=this.B.Ek} -function Wb(){var a=this.L(),b=this.ba()&31;this.A-=11;K(this,this.I);var c=this.Y;if(0>8,c,d=yc(this);9<(a&15)||d?(a=a+6&15,b=b+1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.X=a);this.aa=65536;c&&(this.X|=this.aa);d?Hc(this):Dc(this);this.A-=this.B.de},function(){Cg[this.ba()].call(this,Zc)},function(){O[this.ba()].call(this,gd)},function(){Dg[this.ba()].call(this,Zc)},function(){P[this.ba()].call(this,gd)},function(){this.H=this.H&-256|Zc.call(this,this.H&255,this.ba());this.A--},function(){this.H=gd.call(this,this.H,this.L());this.A--}, -function(){this.Z|=20;this.D=this.N=this.Xb;this.A-=this.B.Dd},function(){var a=this.H&255,b=this.H>>8,c,d=yc(this);9<(a&15)||d?(a=a-6&15,b=b-1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.X=a);this.aa=65536;c&&(this.X|=this.aa);d?Hc(this):Dc(this);this.A-=this.B.de},function(){this.ia=this.H;this.H=(this.ga=this.H+1)&65535;this.X=this.H|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.J;this.J=(this.ga=this.J+1)&65535;this.X=this.J|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-= -2},function(){this.ia=this.K;this.K=(this.ga=this.K+1)&65535;this.X=this.K|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.C;this.C=(this.ga=this.C+1)&65535;this.X=this.C|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.Y;this.Y=(this.ga=this.Y+1)&65535;this.X=this.Y|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.I;this.I=(this.ga=this.I+1)&65535;this.X=this.I|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia= -this.G;this.G=(this.ga=this.G+1)&65535;this.X=this.G|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.F;this.F=(this.ga=this.F+1)&65535;this.X=this.F|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.H;this.H=(this.ga=this.H-1)&65535;this.X=this.H|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.J;this.J=(this.ga=this.J-1)&65535;this.X=this.J|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.K;this.K= -(this.ga=this.K-1)&65535;this.X=this.K|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.C;this.C=(this.ga=this.C-1)&65535;this.X=this.C|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.Y;this.Y=(this.ga=this.Y-1)&65535;this.X=this.Y|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.I;this.I=(this.ga=this.I-1)&65535;this.X=this.I|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.G;this.G=(this.ga=this.G- -1)&65535;this.X=this.G|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){this.ia=this.F;this.F=(this.ga=this.F-1)&65535;this.X=this.F|(this.X&this.aa?1:0)<<16;this.aa=65536;this.A-=2},function(){K(this,this.H);this.A-=this.B.cc},function(){K(this,this.J);this.A-=this.B.cc},function(){K(this,this.K);this.A-=this.B.cc},function(){K(this,this.C);this.A-=this.B.cc},function(){K(this,this.Y-2&65535);this.A-=this.B.cc},function(){K(this,this.I);this.A-=this.B.cc},function(){K(this,this.G);this.A-= -this.B.cc},function(){K(this,this.F);this.A-=this.B.cc},function(){this.H=this.Ba();this.A-=this.B.Wb},function(){this.J=this.Ba();this.A-=this.B.Wb},function(){this.K=this.Ba();this.A-=this.B.Wb},function(){this.C=this.Ba();this.A-=this.B.Wb},function(){this.Y=this.Ba();this.A-=this.B.Wb},function(){this.I=this.Ba();this.A-=this.B.Wb},function(){this.G=this.Ba();this.A-=this.B.Wb},function(){this.F=this.Ba();this.A-=this.B.Wb},Ig,Jg,Kg,Lg,Mg,Ng,Og,Pg,Qg,Rg,Sg,Tg,Ug,Vg,Wg,Xg,Ig,Jg,Kg,Lg,Mg,Ng,Og, -Pg,Qg,Rg,Sg,Tg,Ug,Vg,Wg,Xg,Yg,function(){Fg[this.ba()].call(this,Fd,this.L);this.A-=0>this.Ca?1:this.B.Jg},Yg,function(){Fg[this.ba()].call(this,Fd,this.M);this.A-=0>this.Ca?1:this.B.Jg},function(){Cg[this.ba()].call(this,Rd)},function(){O[this.ba()].call(this,Sd)},function(){Dg[this.ag=this.ba()].call(this,ce)},function(){P[this.ag=this.ba()].call(this,de)},function(){this.Z|=1;Cg[this.ba()].call(this,Pd)},function(){this.Z|=1;O[this.ba()].call(this,Pd)},function(){Dg[this.ba()].call(this,Pd)},function(){P[this.ba()].call(this, -Pd)},function(){var a=this.ba();switch((a&56)>>3){case 0:this.nb=this.fb.va;break;case 1:this.nb=this.wa.va;break;case 2:this.nb=this.Rb.va;break;case 3:this.nb=this.Xb.va;break;default:N.call(this);return}this.Z|=1;O[a].call(this,Qd)},function(){this.Z|=1;this.D=this.N=this.Wk;P[this.ba()].call(this,Wd)},function(){var a,b=this.ba(),c=(b&56)>>3;switch(c){case 0:a=this.H;break;case 2:a=this.K;break;case 3:a=this.C;break;default:if(80286<=this.Ea){G.call(this);return}switch(c){case 1:a=this.J;break; -case 4:a=this.Y;break;case 5:a=this.I;break;case 6:a=this.G;break;case 7:a=this.F}}P[b].call(this,Pd);switch(c){case 0:vc(this,this.H);this.H=a;break;case 1:pc(this,this.J);this.J=a;break;case 2:uc(this,this.K);this.K=a;break;case 3:qc(this,this.C);this.C=a;break;case 4:vc(this,this.Y);this.Y=a;break;case 5:pc(this,this.I);this.I=a;break;case 6:uc(this,this.G);this.G=a;break;case 7:qc(this,this.F),this.F=a}},function(){this.Z|=1;Fg[this.ba()].call(this,Gd,this.Ba)},function(){this.A-=3},function(){var a= -this.H;this.H=this.J;this.J=a;this.A-=3},function(){var a=this.H;this.H=this.K;this.K=a;this.A-=3},function(){var a=this.H;this.H=this.C;this.C=a;this.A-=3},function(){var a=this.H;this.H=this.Y;this.Y=a;this.A-=3},function(){var a=this.H;this.H=this.I;this.I=a;this.A-=3},function(){var a=this.H;this.H=this.G;this.G=a;this.A-=3},function(){var a=this.H;this.H=this.F;this.F=a;this.A-=3},function(){this.H=this.H<<24>>24&65535;this.A-=2},function(){this.K=this.H&32768?65535:0;this.A-=this.B.Oj},function(){var a= -this.L(),b=this.L();K(this,this.wa.va);K(this,this.sa);fc(this,a,b);this.A-=this.B.Rj},function(){N.call(this)},function(){K(this,ic(this));this.A-=this.B.cc},function(){gc(this,this.Ba());this.A-=this.B.Wb},function(){var a=this.H>>8;a&1?Gc(this):Cc(this);a&4?xc(this)||(this.ga^=1):xc(this)&&(this.ga^=1);a&16?Hc(this):Dc(this);a&64?Ic(this):Ec(this);a&128?Jc(this):Ac(this)&&(this.ga^=this.aa>>1|this.aa>>2,this.ia^=32896);this.A-=this.B.mb},function(){this.H=this.H&255|(ic(this)&213)<<8;this.A-=this.B.mb}, -function(){this.H=this.H&-256|this.T(this.D,this.L());this.A-=this.B.mi},function(){this.H=this.U(this.D,this.L());this.A-=this.B.mi},function(){var a=this.L(),b=this.H;Mc(this,this.D.Zb(a,0),b);this.A-=this.B.ni},function(){var a=this.L(),b=this.H;Nc(this,this.D.Zb(a,1),b);this.A-=this.B.ni},function(){var a=1,b=0,c=this.B.oi;this.ra&192&&(a=this.J,b=1,c=this.B.qi,this.ra&256||(this.A-=this.B.pi));if(a--){var d=this.Da&1024?-1:1,e=this.T(this.D,this.G);Mc(this,this.fb.Zb(this.F,0),e);this.G=this.G+ -d&65535;this.F=this.F+d&65535;this.A-=c;this.J-=b;a&&(J(this,this.ra&16?-3:-2),this.Z|=256)}},function(){var a=1,b=0,c=this.B.oi;this.ra&192&&(a=this.J,b=1,c=this.B.qi,this.ra&256||(this.A-=this.B.pi));if(a--){var d=this.Da&1024?-2:2,e=this.U(this.D,this.G);Nc(this,this.fb.Zb(this.F,1),e);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c;this.J-=b;a&&(J(this,this.ra&16?-3:-2),this.Z|=256)}},function(){var a=1,b=0,c=this.B.Zh;this.ra&192&&(a=this.J,b=1,c=this.B.ai,this.ra&256||(this.A-=this.B.$h)); -if(a--){var d=this.Da&1024?-1:1,e=this.T(this.D,this.G),f=this.O(this.fb,this.F);Zc.call(this,e,f);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c-this.B.eb;this.J-=b;a&&zc(this)==(this.ra&64)&&(J(this,this.ra&16?-3:-2),this.Z|=256)}},function(){var a=1,b=0,c=this.B.Zh;this.ra&192&&(a=this.J,b=1,c=this.B.ai,this.ra&256||(this.A-=this.B.$h));if(a--){var d=this.Da&1024?-2:2,e=this.U(this.D,this.G),f=this.P(this.fb,this.F);gd.call(this,e,f);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c- -this.B.eb;this.J-=b;a&&zc(this)==(this.ra&64)&&(J(this,this.ra&16?-3:-2),this.Z|=256)}},function(){this.X=this.ga=this.ia=this.H&255&this.ba();this.aa=256;this.A-=this.B.de},function(){this.X=this.ga=this.ia=this.H&this.L();this.aa=65536;this.A-=this.B.de},function(){var a=1,b=0,c=this.B.zi;this.ra&192&&(a=this.J,b=1,c=this.B.Bi,this.ra&256||(this.A-=this.B.Ai));if(a--){var d=this.H;Mc(this,this.fb.Zb(this.F,0),d);this.F=this.F+(this.Da&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(J(this,-2),this.Z|= -256)}},function(){var a=1,b=0,c=this.B.zi;this.ra&192&&(a=this.J,b=1,c=this.B.Bi,this.ra&256||(this.A-=this.B.Ai));if(a--){var d=this.H;Nc(this,this.fb.Zb(this.F,1),d);this.F=this.F+(this.Da&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(J(this,-2),this.Z|=256)}},function(){var a=1,b=0,c=this.B.gi;this.ra&192&&(a=this.J,b=1,c=this.B.ii,this.ra&256||(this.A-=this.B.hi));a--&&(this.H=this.H&-256|this.T(this.D,this.G),this.G=this.G+(this.Da&1024?-1:1)&65535,this.A-=c,this.J-=b,a&&(J(this,this.ra&16?-3:-2), -this.Z|=256))},function(){var a=1,b=0,c=this.B.gi;this.ra&192&&(a=this.J,b=1,c=this.B.ii,this.ra&256||(this.A-=this.B.hi));a--&&(this.H=this.U(this.D,this.G),this.G=this.G+(this.Da&1024?-2:2)&65535,this.A-=c,this.J-=b,a&&(J(this,this.ra&16?-3:-2),this.Z|=256))},function(){var a=1,b=0,c=this.B.ti;this.ra&192&&(a=this.J,b=1,c=this.B.vi,this.ra&256||(this.A-=this.B.ui));a--&&(Zc.call(this,this.H&255,this.O(this.fb,this.F)),this.F=this.F+(this.Da&1024?-1:1)&65535,this.A-=c-this.B.eb,this.J-=b,a&&zc(this)== -(this.ra&64)&&(J(this,-2),this.Z|=256))},function(){var a=1,b=0,c=this.B.ti;this.ra&192&&(a=this.J,b=1,c=this.B.vi,this.ra&256||(this.A-=this.B.ui));a--&&(gd.call(this,this.H,this.P(this.fb,this.F)),this.F=this.F+(this.Da&1024?-2:2)&65535,this.A-=c-this.B.eb,this.J-=b,a&&zc(this)==(this.ra&64)&&(J(this,-2),this.Z|=256))},function(){this.H=this.H&-256|this.ba();this.A-=this.B.mb},function(){this.J=this.J&-256|this.ba();this.A-=this.B.mb},function(){this.K=this.K&-256|this.ba();this.A-=this.B.mb},function(){this.C= -this.C&-256|this.ba();this.A-=this.B.mb},function(){this.H=this.H&255|this.ba()<<8;this.A-=this.B.mb},function(){this.J=this.J&255|this.ba()<<8;this.A-=this.B.mb},function(){this.K=this.K&255|this.ba()<<8;this.A-=this.B.mb},function(){this.C=this.C&255|this.ba()<<8;this.A-=this.B.mb},function(){this.H=this.L();this.A-=this.B.mb},function(){this.J=this.L();this.A-=this.B.mb},function(){this.K=this.L();this.A-=this.B.mb},function(){this.C=this.L();this.A-=this.B.mb},function(){this.Y=this.L();this.A-= -this.B.mb},function(){this.I=this.L();this.A-=this.B.mb},function(){this.G=this.L();this.A-=this.B.mb},function(){this.F=this.L();this.A-=this.B.mb},Zg,$g,Zg,$g,function(){P[this.ba()].call(this,Yd)},function(){P[this.ba()].call(this,Xd)},function(){this.Z|=1;Eg[this.ba()].call(this,Hd,this.ba)},function(){this.Z|=1;Fg[this.ba()].call(this,Hd,this.L)},ah,bh,ah,bh,function(){Qc.call(this,3,null,this.B.hk)},function(){var a=this.ba(),b;a:{b=this.hl[a];if(void 0!==b)for(var c=0;c>8)*a+this.H&255;this.aa=256;this.A-=this.B.Kj},function(){this.H=this.H&-256|(wc(this)?255:0);this.A-=2},function(){this.H=this.H&-256|this.T(this.D,this.C+(this.H&255)&65535);this.A-=this.B.Jk},ch,ch,ch,ch,ch,ch,ch,ch,function(){var a=this.M();(this.J=this.J-1&65535)&&this.X&this.aa-1?(I(this,this.sa+a),this.A-=this.B.qk):this.A-=this.B.ji},function(){var a=this.M();!(this.J=this.J-1&65535)||this.X&this.aa-1?this.A-=this.B.li: -(I(this,this.sa+a),this.A-=this.B.ki)},function(){var a=this.M();(this.J=this.J-1&65535)?(I(this,this.sa+a),this.A-=this.B.pk):this.A-=this.B.ji},function(){var a=this.M();this.J?this.A-=this.B.li:(I(this,this.sa+a),this.A-=this.B.ki)},function(){var a=this.ba();this.H=this.H&-256|Za(this.na,a,this.Fa-2);this.A-=this.B.di},function(){var a=this.ba();this.H=Za(this.na,a,this.Fa-1)|Za(this.na,a+1&65535,this.Fa-2)<<8;this.A-=this.B.di},function(){var a=this.ba();ab(this.na,a,this.H&255,this.Fa-2);this.A-= -this.B.si},function(){var a=this.ba();ab(this.na,a,this.H&255,this.Fa-2);ab(this.na,a+1&65535,this.H>>8,this.Fa-2);this.A-=this.B.si},function(){var a=this.L();K(this,this.sa);I(this,this.sa+a);this.A-=this.B.Pj},function(){var a=this.L();I(this,this.sa+a);this.A-=this.B.ei},function(){fc(this,this.L(),this.L());this.A-=this.B.lk},function(){var a=this.M();I(this,this.sa+a);this.A-=this.B.ei},function(){this.H=this.H&-256|Za(this.na,this.K,this.Fa-1);this.A-=this.B.ci},function(){this.H=Za(this.na, -this.K,this.Fa-1)|Za(this.na,this.K+1&65535,this.Fa-1)<<8;this.A-=this.B.ci},function(){ab(this.na,this.K,this.H&255,this.Fa-1);this.A-=this.B.ri},function(){ab(this.na,this.K,this.H&255,this.Fa-1);ab(this.na,this.K+1&65535,this.H>>8,this.Fa-1);this.A-=this.B.ri},dh,dh,function(){this.Z|=132;this.A-=this.B.Dd},function(){this.Z|=68;this.A-=this.B.Dd},function(){this.Ya|=4;this.A-=2;this.Da&512||jb(this)},function(){wc(this)?Cc(this):Gc(this);this.A-=2},function(){this.nb=-1;Eg[this.ba()].call(this, -Ld,Cd);0<=this.nb&&(this.H=this.nb)},function(){this.nb=-1;Fg[this.ba()].call(this,Md,Cd);0<=this.nb&&(this.H=this.nb,this.K=this.Hf)},function(){this.X&=~this.aa;this.A-=2},function(){this.X|=this.aa;this.A-=2},function(){this.Da&=-513;this.A-=this.B.Nj},function(){this.Da|=512;this.Z|=4;this.A-=2},function(){this.Da&=-1025;this.A-=2},function(){this.Da|=1024;this.A-=2},function(){Eg[this.ba()].call(this,Zb,Cd)},function(){Fg[this.ba()].call(this,ac,Cd)}]; -function Q(a){w.call(this,"ChipSet",a,Q);this.Ea=a.model;this.Ea=void 0!==this.Ea?parseInt(this.Ea,10):eh;this.Ib=0;var b=a.sw1;if(b)this.Ib=fh(b,gh|hh.el);else{this.jd=[360,360];(b=a.floppies)&&void 0!==b.length&&(this.jd=b);if(b=this.jd.length)this.Ib|=ih.Zg,b--,this.Ib|=(b&3)<=jh&&(this.Ye=this.Ze=2);this.sg=a.scaleTimers||!1; -this.Sn=a.rtcDate;this.wj=!1;a.sound&&window&&"webkitAudioContext"in window&&(this.nh=new webkitAudioContext);this.reset(!0);this.Ka()}y(w,Q);var eh=5150,jh=5170,kh={none:0,tv:1,color:2,mono:3,ega:0},ih={Zg:1,ONE:0,xo:64,vo:128,eo:192,Ne:192,Oe:6},gh=12,hh={wo:16,Zn:32,el:48,Ne:48,Oe:4};h=Q.prototype; -h.tb=function(a,b,c,d){switch(c){case "sw1":return this.pa[c]=d,lh(this,c,d,this.Ib,{0:this.Ea==eh?"Bootable Floppy Drive":"Loop on POST",1:this.Ea==eh?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Ea==eh)return this.pa[c]=d,lh(this,c,d,this.Jd,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.pa[c]=d,!0}return!1}; -h.jc=function(a,b,c,d){this.na=b;this.ja=c;this.Na=d;this.Ga=a;this.Ta=D(a,"Keyboard");this.Kk=Math.round(c.cd/1193181);Ya(b,this,mh);$a(b,this,nh);this.Ea=jh){this.ab=16;this.Sc=0;this.ld=16;this.Xf=0;this.Qd=160;512<=wh(this)&&(this.Qd|=16);3==xh(this)&&(this.Qd|=64);this.fh=3;this.$f=0;this.Kb=Array(7);this.te=0;a&&(this.la=Array(64)); -yh(this,this.Sn);for(a=21;24>=a;a++)this.la[a]=0;for(a=14;46>a;a++)void 0===this.la[a]&&(this.la[a]=0);this.la[20]=this.Ic&(hh.Ne|2|ih.Zg|ih.Ne);this.la[16]=zh(this,0)<<4|zh(this,1);Ah(this)}}; -function yh(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.ec("CMOS date invalid ("+b+"), using "+c)):b&&a.ec("CMOS date: "+c);a.la[0]=c.getSeconds();a.la[1]=0;a.la[2]=c.getMinutes();a.la[3]=0;a.la[4]=c.getHours();a.la[5]=0;a.la[6]=c.getDay()+1;a.la[7]=c.getDate();a.la[8]=c.getMonth()+1;c=c.getFullYear();a.la[9]=c%100;c/=100;a.la[50]=c%10|c/10<<4;a.nf=-1;a.la[10]=38;a.la[11]=2;a.la[12]=0;a.la[13]=128} -function Ah(a){for(var b=0,c=16;46>c;c++)b+=a.la[c];a.la[47]=b&255;a.la[46]=b>>8} -h.save=function(){var a=new H(this);a.set(0,[this.Ib,this.Jd,this.Ic,this.me]);for(var b=[],c=0;c=jh&&(a.set(5,[this.ab,this.Sc,this.ld,this.Xf,this.Qd,this.fh]),a.set(6,[this.$f,this.Kb,this.te,this.la,this.nf]));return a.data()}; -h.restore=function(a){var b,c;b=a[0];this.Ib=b[0];this.Jd=b[1];this.Ic=b[2];this.me=b[3];b=a[1];this.Qa=Array(this.Ye);for(c=0;c>2)+1)*a.Am+32*((b?a.Jd:a.me)&15)}function Dh(a,b){var c=b?a.Ib:a.Ic;return a.Ea!=eh||c&ih.Zg?((c&ih.Ne)>>ih.Oe)+1:0} -function zh(a,b){if(b>hh.Oe} -function lh(a,b,c,d,e){for(var f="",l=1;8>=l;l++){var g="pcjs-bitCell";l||(g+=" pcjs-bitCellLeft");f+='
'+l+"
\n"}c.innerHTML=f;b=C(c,"pcjs-bitCell");c=null;for(l=0;l>2].ob[b&3],c,d,e)}function Mh(a,b,c){b=a.Qa[b>>2].ob[b&3];b.hg&&b.Gh&&b.Lg?(c&&(b.ig=c),b.bd||Rc(a,b,!0)):c&&c(!0)} -function Rc(a,b,c){c&&(b.count=b.Ub[1]<<8|b.Ub[0],b.$k=b.mode&12,b.xj=b.Yc=!1);for(var d=!1;0<=b.count&&(c=b.dg<<16|b.vb[1]<<8|b.vb[0],4==b.$k?(d=!0,function(c){b.Gh.call(b.hg,b.Lg,-1,function(f,l){0>f&&(b.xj||(b.xj=!0),f=255);b.bd||Va(a.na,c,f);(d=l)&&setTimeout(function(){Rh(b)||Rc(a,b)},0)})}(c)):8==b.$k?(c=Ta(a.na,c),0>b.Gh.call(b.hg,b.Lg,c)&&(b.Yc=!0)):b.Yc=!0),!d&&!Rh(b););} -function Rh(a){if(!a.Yc&&0<=--a.count&&(a.mode&32?(a.vb[0]--,0>a.vb[0]&&(a.vb[0]=255,a.vb[1]--,0>a.vb[1]&&(a.vb[1]=255))):(a.vb[0]++,255>3,e=a.pb[d];e.xb|=1<<(b&7);e.uf=c||0;1==d&&(a.pb[0].xb|=4);Uh(a,d)}function ai(a,b){var c=b>>3,d=a.pb[c],e=1<<(b&7);d.xb&e&&(d.xb&=~e,1!=c||d.xb||(a.pb[0].xb&=-5),Uh(a,c))} -function Pc(a,b){void 0===b&&(b=0);var c=-1,d=a.pb[b];if(d.uf)c=-2,d.uf--;else for(var e=d.xb&((d.Ac|d.od)^255),f=d.Rd+1;;){var f=f&7,l=1<>6;if(3!=c){var d=b&1,e=b&14,f=b&48;if(f){var l=this.Jb[c];l.If=f;l.mode=e;l.lj=d;l.pc=[0,0];l.Ub=[0,0];l.cf=[0,0];l.Kc=!1;l.hf=!1;l.we=!1;ci(this,c);0==c&&ai(this,0);2==c&&255==this.pb[0].od&&77==this.ic&&(c=this.Jb[0],c.Ec[0]=c.pc[0],c.Ec[1]=c.pc[1],c.Gd=ob(this.ja,this.sg))}else di(this,c),d=this.Jb[c],d.cf[0]=d.Ub[0],d.cf[1]=d.Ub[1],d.hf=!0,ci(this,c)}};function fi(a,b){var c=a.Jb[b],d=c.pc[1]<<8|c.pc[0];d||(d=1==c.Yd?256:65536);return d} -function ci(a,b){var c=a.Jb[b];c.td=32==c.If?1:0;c.Yd=48==c.If?2:1} -function di(a,b,c){var d=a.Jb[b];if(d.we&&(2!=b||a.ic&1)){var e=ob(a.ja,a.sg),f=(e-d.Gd)/a.Kk|0;0>f&&(d.Gd=e,f=0);var l=fi(a,b),g=a.Jb[b],m=g.Ec[1]<<8|g.Ec[0];m||(m=1==g.Yd?256:65536);g=m-f;0==d.mode?(0>=g&&(g=0),g||(d.Kc=!0,d.we=!1,b||$h(a,0))):4==d.mode?(d.Kc=1!=g,0>=g&&(g=l+g,0>=g&&(g=l),d.Ec[0]=g&255,d.Ec[1]=g>>8,d.Gd=e,!b&&d.Kc&&$h(a,0))):6==d.mode&&(g-=f,0>=g&&(d.Kc=!d.Kc,g=l+g,0>=g&&(g=l),d.Ec[0]=g&255,d.Ec[1]=g>>8,d.Gd=e,!b&&d.Kc&&$h(a,0)));d.Ub[0]=g&255;d.Ub[1]=g>>8;c&&(a.Gd=0)}return d} -function qb(a,b){for(var c=0;c=jh){var c=0,d=a.ja.cd,e=ob(a.ja,a.sg);if(0<=a.nf&&(c=e-a.nf,Math.floor(c/d)&&60<=++a.la[0]&&(a.la[0]=0,60<=++a.la[2]&&(a.la[2]=0,24<=++a.la[4])))){a.la[4]=0;a.la[6]=a.la[6]%7+1;var f=a.la[9],l=ia[a.la[8]-1];28==l&&0===f%4&&(f%100||0===f%400)&&l++;++a.la[7]>l&&(a.la[7]=1,12<++a.la[8]&&(a.la[8]=1,a.la[9]=(a.la[9]+1)%100))}a.nf=e-c%d}}h.om=function(){var a=this.cg;this.Xe&16&&(this.ic&128?a=this.Ic:this.Ta&&(a=gi(this.Ta)));return a}; -h.yn=function(a,b){this.cg=b};h.pm=function(){return this.ic};h.zn=function(a,b){hi(this,b);this.Ta&&ii(this.Ta,b&128?!1:!0,b&64?!0:!1)};function hi(a,b){var c=!!(b&2),d=!!(a.ic&2);a.ic=b;c!=d&&pb(a,c)}h.qm=function(){var a=0,a=this.Ea==eh?this.ic&4?a|this.me&15:a|this.me>>4&1:this.ic&8?a|this.Ic>>4:a|this.Ic&15;this.ic&1&&di(this,2).Kc&&(a=this.ic&2?a|32:a|16);return a};h.An=function(a,b){this.hh=b};h.rm=function(){return this.Xe};h.Bn=function(a,b){this.Xe=b}; -h.Fl=function(){var a=this.Xf;this.ab&=-258;var b=this.Ta&&gi(this.Ta,!0);b&&ji(this,b);return a};h.Rm=function(a,b){if(this.ab&8)switch(this.Sc){case 96:ki(this,b);break;case 209:li(this,b);break;default:if(ki(this,this.ld&-17),this.Ta){var c=-1;switch(b){case 255:c=250,mi(this.Ta)}ji(this,c)}}this.Sc=b;this.ab&=-9};h.Gl=function(){return this.ic&-209|(ob(this.ja)&64?16:0)};h.Sm=function(a,b){hi(this,b)};h.Hl=function(){var a=this.ab&255;this.ab&256&&(this.ab|=1,this.ab&=-257);return a}; -h.Qm=function(a,b){this.Sc=b;this.ab|=8;var c=0;240<=this.Sc&&(c=this.Sc^15,this.Sc=240);switch(this.Sc){case 192:ji(this,this.Qd);break;case 173:ki(this,this.ld|16);break;case 174:ki(this,this.ld&-17);break;case 170:this.Ta&&ni(this.Ta,!0);ki(this,this.ld|16);ji(this,85);li(this,3);break;case 224:ji(this,this.ld&16?0:1);break;case 240:c&1&&ec(this.ja)}};function ki(a,b){a.ld=b;a.ab=a.ab&-5|b&4;a.Ta&&ii(a.Ta,!!(b&8),!(b&16))&&ji(a,gi(a.Ta,!0))}function ji(a,b){0<=b&&(a.Xf=b,a.ab&=-2,a.ab|=256)} -function li(a,b){a.fh=b;Oa(a.na,!!(b&2));b&1||ec(a.ja)}h.Vl=function(){return this.te};h.fn=function(a,b){this.te=b;this.bg=b&128?0:128};h.Wl=function(){var a=this.te&63;if(13>=a){var b=this.la[a];if(10>a){var c=!1;4!=a&&5!=a||this.la[11]&2||(b=12>b?b?b:12:(b-=12)?b+128:140,c=!0);this.la[11]&4||(c&&128=c){if(e=b,10>c){var f=!1;this.la[11]&4||(e=10*(e>>4)+(e&15),f=!0);if(4==c||5==c)f&&12=e?e=12==e?0:e:(e-=116,e=24==e?12:e))}}else e=b;d[c]=e};h.mm=function(){return this.$f};h.vn=function(a,b){this.$f=b};h.xn=function(a,b){this.bg=b};function fh(a,b){if(void 0===a)return b;for(var c=0,d=1,e=0;ec||2E4>8&255,this.jb[c++]=f[b]>>16&255,this.jb[c++]=f[b]>>24&255;else this.jb=d;this.eh=d.symbols;if(!this.jb.length){t("Empty ROM: "+a);return}if(1==this.jb.length){t(this.jb[0]);return}}catch(l){this.ya("ROM data error: "+ -l.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.jb=Array(a.length),d=0;dthis.Wf?21:23,c=a.la[b]|a.la[b+1]<<8,c=c+(this.gd>>10);a.la[b]=c&255;a.la[b+1]=c>>8;Ah(a)}}else t("No RAM allocated")}; -u(function(){for(var a=C(window.document,"pcjs","ram"),b=0;b(a&56)&&(this.Z|=1);Fg[a].call(this,kc,Cd)},function(){var a=this.ca();a&16||(this.Z|=1);Fg[a].call(this,Gg,Cd)},function(){P[this.ca()].call(this,ae)},function(){P[this.ca()].call(this,be)},N,function(){this.xa.rc?Bb.call(this,13,0):(ee.call(this,F(this,2054)),this.F=F(this,2086),this.G=F(this,2088),this.I=F(this,2090),this.Y=F(this,2092),this.C=F(this,2094),this.K=F(this,2096),this.J=F(this,2098),this.H=F(this,2100),Eb(this.hb,F(this,2084),2102),Eb(this.xa,F(this, +2082),2108),Eb(this.Sb,F(this,2080),2114),Eb(this.Yb,F(this,2078),2120),gc(this,F(this,2072)),I(this,F(this,2074)),this.Ac=F(this,2126)|F(this,2128)<<16,this.we=this.Ac+F(this,2130),Eb(this.ne,F(this,2076),2132),this.Bc=F(this,2138)|F(this,2140)<<16,this.Rd=this.Bc+F(this,2142),Eb(this.Of,F(this,2070),2144),this.A-=195)},N,N,N,N,N,G,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N, +N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N],lc=[function(){this.A-=2+(0>this.ga?0:1);return this.ne.Aa},function(){this.A-=2+(0>this.ga?0:1);return this.Of.Aa},function(a){this.Z|=2;this.ne.load(a);this.A-=17+(0>this.ga?0: +2);return a},function(a){this.Z|=2;this.Of.load(a);this.A-=17+(0>this.ga?0:2);return a},function(a){this.Z|=2;this.A-=14+(0>this.ga?0:2);if(0<=this.ub.load(a,!0)&&2048!=(this.ub.xb&2560)&&(this.ub.kc>=this.xa.rc&&this.ub.kc>=(a&3)||7168==(this.ub.xb&7168)))return Ic(this),a;Ec(this);return a},function(a){this.Z|=2;this.A-=14+(0>this.ga?0:2);if(0<=this.ub.load(a,!0)&&512==(this.ub.xb&2560)&&this.ub.kc>=this.xa.rc&&this.ub.kc>=(a&3))return Ic(this),a;Ec(this);return a},L,L],mc=[$b,$b,$b,$b,$b,$b,L, +L],kc=mc,Gg=[function(a){0>this.ga?G.call(this):(a=this.we-this.Ac,Nc(this,this.ga+2,this.Ac),Nc(this,this.ga+4,65280|this.Ac>>16),this.A-=11);return a},function(a){0>this.ga?G.call(this):(a=this.Rd-this.Bc,Nc(this,this.ga+2,this.Bc),Nc(this,this.ga+4,65280|this.Bc>>16),this.A-=12);return a},function(a){0>this.ga?G.call(this):(this.Ac=F(this,this.ga+2)|Lc(this,this.ga+4)<<16,this.we=this.Ac+a,this.Z|=2,this.A-=11);return a},function(a){0>this.ga?G.call(this):(this.Bc=F(this,this.ga+2)|Lc(this,this.ga+ +4)<<16,this.Rd=this.Bc+a,this.Z|=2,this.A-=12);return a},function(){this.A-=2+(0>this.ga?0:1);return this.Jc},L,function(a){ee.call(this,a);this.A-=0>this.ga?3:6;this.Z|=2;return a},L];function bc(){Hg[this.ca()].call(this)}function dc(){K(this,this.Y);this.A-=this.B.dc}function Jb(){var a=this.Y;K(this,this.H);K(this,this.J);K(this,this.K);K(this,this.C);K(this,a);K(this,this.I);K(this,this.G);K(this,this.F);this.A-=this.B.Gk} +function Kb(){this.F=this.Da();this.G=this.Da();this.I=this.Da();this.Y+=2;this.C=this.Da();this.K=this.Da();this.J=this.Da();this.H=this.Da();this.A-=this.B.Ek}function Lb(){P[this.ca()].call(this,Zd)}function cc(){O[this.ca()].call(this,$d)}function Mb(){K(this,this.L());this.A-=this.B.dc}function Nb(){P[this.ca()].call(this,Ud)}function Ob(){K(this,this.ca());this.A-=this.B.dc}function Pb(){P[this.ca()].call(this,Td)} +function Qb(){var a=1,b=0,c=5;this.ta&192&&(a=this.J,b=1,this.ta&256&&(c=4));if(a--){var d=Za(this.pa,this.K,this.Ha-b-1);Mc(this,this.hb.$b(this.F,0),d);this.F=this.F+(this.Fa&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(J(this,-2),this.Z|=256)}} +function Rb(){var a=1,b=0,c=5;this.ta&192&&(a=this.J,b=1,this.ta&256&&(c=4));if(a--){var d=this.Ha-b-1,d=Za(this.pa,this.K,d)|Za(this.pa,this.K,d)<<8;Nc(this,this.hb.$b(this.F,1),d);this.F=this.F+(this.Fa&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(J(this,-2),this.Z|=256)}} +function Sb(){var a=1,b=0,c=5;this.ta&192&&(a=this.J,b=1,this.ta&256&&(c=4));if(a--){var d=Lc(this,this.Yb.Yc(this.G,0));this.G=this.G+(this.Fa&1024?-1:1)&65535;this.A-=c;this.J-=b;ab(this.pa,this.K,d,this.Ha-b-1);a&&(J(this,-2),this.Z|=256)}} +function Tb(){var a=1,b=0,c=5;this.ta&192&&(a=this.J,b=1,this.ta&256&&(c=4));if(a--){var d=F(this,this.Yb.Yc(this.G,1));this.G=this.G+(this.Fa&1024?-2:2)&65535;this.A-=c;this.J-=b;b=this.Ha-b-1;ab(this.pa,this.K,d&255,b);ab(this.pa,this.K,d>>8,b);a&&(J(this,-2),this.Z|=256)}}function Ig(){var a=this.M();Bc(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib}function Jg(){var a=this.M();Bc(this)?this.A-=this.B.Ib:(I(this,this.ua+a),this.A-=this.B.Hb)} +function Kg(){var a=this.M();wc(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib}function Lg(){var a=this.M();wc(this)?this.A-=this.B.Ib:(I(this,this.ua+a),this.A-=this.B.Hb)}function Mg(){var a=this.M();zc(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib}function Ng(){var a=this.M();zc(this)?this.A-=this.B.Ib:(I(this,this.ua+a),this.A-=this.B.Hb)}function Og(){var a=this.M();wc(this)||zc(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib} +function Pg(){var a=this.M();wc(this)||zc(this)?this.A-=this.B.Ib:(I(this,this.ua+a),this.A-=this.B.Hb)}function Qg(){var a=this.M();Ac(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib}function Rg(){var a=this.M();Ac(this)?this.A-=this.B.Ib:(I(this,this.ua+a),this.A-=this.B.Hb)}function Sg(){var a=this.M();xc(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib}function Tg(){var a=this.M();xc(this)?this.A-=this.B.Ib:(I(this,this.ua+a),this.A-=this.B.Hb)} +function Ug(){var a=this.M();!Ac(this)!=!Bc(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib}function Vg(){var a=this.M();!Ac(this)==!Bc(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib}function Wg(){var a=this.M();zc(this)||!Ac(this)!=!Bc(this)?(I(this,this.ua+a),this.A-=this.B.Hb):this.A-=this.B.Ib}function Xg(){var a=this.M();zc(this)||!Ac(this)!=!Bc(this)?this.A-=this.B.Ib:(I(this,this.ua+a),this.A-=this.B.Hb)} +function Yg(){Eg[this.ca()].call(this,Ed,this.ca);this.A-=0>this.Ea?1:this.B.Lg}function Ub(){Eg[this.ca()].call(this,Nd,Bd)}function Vb(){Fg[this.ca()].call(this,Od,Bd)}function Zg(){var a=this.L();I(this,this.Da());this.Y=this.Y+a&65535;this.A-=this.B.Lk}function $g(){I(this,this.Da());this.A-=this.B.Ik} +function Wb(){var a=this.L(),b=this.ca()&31;this.A-=11;K(this,this.I);var c=this.Y;if(0>8,c,d=yc(this);9<(a&15)||d?(a=a+6&15,b=b+1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.X=a);this.ba=65536;c&&(this.X|=this.ba);d?Hc(this):Dc(this);this.A-=this.B.he},function(){Cg[this.ca()].call(this,Zc)},function(){O[this.ca()].call(this,gd)},function(){Dg[this.ca()].call(this,Zc)},function(){P[this.ca()].call(this,gd)},function(){this.H=this.H&-256|Zc.call(this,this.H&255,this.ca());this.A--},function(){this.H=gd.call(this,this.H,this.L());this.A--}, +function(){this.Z|=20;this.D=this.N=this.Yb;this.A-=this.B.Gd},function(){var a=this.H&255,b=this.H>>8,c,d=yc(this);9<(a&15)||d?(a=a-6&15,b=b-1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.X=a);this.ba=65536;c&&(this.X|=this.ba);d?Hc(this):Dc(this);this.A-=this.B.he},function(){this.ja=this.H;this.H=(this.ha=this.H+1)&65535;this.X=this.H|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.J;this.J=(this.ha=this.J+1)&65535;this.X=this.J|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-= +2},function(){this.ja=this.K;this.K=(this.ha=this.K+1)&65535;this.X=this.K|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.C;this.C=(this.ha=this.C+1)&65535;this.X=this.C|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.Y;this.Y=(this.ha=this.Y+1)&65535;this.X=this.Y|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.I;this.I=(this.ha=this.I+1)&65535;this.X=this.I|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja= +this.G;this.G=(this.ha=this.G+1)&65535;this.X=this.G|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.F;this.F=(this.ha=this.F+1)&65535;this.X=this.F|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.H;this.H=(this.ha=this.H-1)&65535;this.X=this.H|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.J;this.J=(this.ha=this.J-1)&65535;this.X=this.J|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.K;this.K= +(this.ha=this.K-1)&65535;this.X=this.K|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.C;this.C=(this.ha=this.C-1)&65535;this.X=this.C|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.Y;this.Y=(this.ha=this.Y-1)&65535;this.X=this.Y|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.I;this.I=(this.ha=this.I-1)&65535;this.X=this.I|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.G;this.G=(this.ha=this.G- +1)&65535;this.X=this.G|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){this.ja=this.F;this.F=(this.ha=this.F-1)&65535;this.X=this.F|(this.X&this.ba?1:0)<<16;this.ba=65536;this.A-=2},function(){K(this,this.H);this.A-=this.B.dc},function(){K(this,this.J);this.A-=this.B.dc},function(){K(this,this.K);this.A-=this.B.dc},function(){K(this,this.C);this.A-=this.B.dc},function(){K(this,this.Y-2&65535);this.A-=this.B.dc},function(){K(this,this.I);this.A-=this.B.dc},function(){K(this,this.G);this.A-= +this.B.dc},function(){K(this,this.F);this.A-=this.B.dc},function(){this.H=this.Da();this.A-=this.B.Xb},function(){this.J=this.Da();this.A-=this.B.Xb},function(){this.K=this.Da();this.A-=this.B.Xb},function(){this.C=this.Da();this.A-=this.B.Xb},function(){this.Y=this.Da();this.A-=this.B.Xb},function(){this.I=this.Da();this.A-=this.B.Xb},function(){this.G=this.Da();this.A-=this.B.Xb},function(){this.F=this.Da();this.A-=this.B.Xb},Ig,Jg,Kg,Lg,Mg,Ng,Og,Pg,Qg,Rg,Sg,Tg,Ug,Vg,Wg,Xg,Ig,Jg,Kg,Lg,Mg,Ng,Og, +Pg,Qg,Rg,Sg,Tg,Ug,Vg,Wg,Xg,Yg,function(){Fg[this.ca()].call(this,Fd,this.L);this.A-=0>this.Ea?1:this.B.Lg},Yg,function(){Fg[this.ca()].call(this,Fd,this.M);this.A-=0>this.Ea?1:this.B.Lg},function(){Cg[this.ca()].call(this,Rd)},function(){O[this.ca()].call(this,Sd)},function(){Dg[this.cg=this.ca()].call(this,ce)},function(){P[this.cg=this.ca()].call(this,de)},function(){this.Z|=1;Cg[this.ca()].call(this,Pd)},function(){this.Z|=1;O[this.ca()].call(this,Pd)},function(){Dg[this.ca()].call(this,Pd)},function(){P[this.ca()].call(this, +Pd)},function(){var a=this.ca();switch((a&56)>>3){case 0:this.pb=this.hb.Aa;break;case 1:this.pb=this.xa.Aa;break;case 2:this.pb=this.Sb.Aa;break;case 3:this.pb=this.Yb.Aa;break;default:N.call(this);return}this.Z|=1;O[a].call(this,Qd)},function(){this.Z|=1;this.D=this.N=this.$k;P[this.ca()].call(this,Wd)},function(){var a,b=this.ca(),c=(b&56)>>3;switch(c){case 0:a=this.H;break;case 2:a=this.K;break;case 3:a=this.C;break;default:if(80286<=this.Ga){G.call(this);return}switch(c){case 1:a=this.J;break; +case 4:a=this.Y;break;case 5:a=this.I;break;case 6:a=this.G;break;case 7:a=this.F}}P[b].call(this,Pd);switch(c){case 0:vc(this,this.H);this.H=a;break;case 1:pc(this,this.J);this.J=a;break;case 2:uc(this,this.K);this.K=a;break;case 3:qc(this,this.C);this.C=a;break;case 4:vc(this,this.Y);this.Y=a;break;case 5:pc(this,this.I);this.I=a;break;case 6:uc(this,this.G);this.G=a;break;case 7:qc(this,this.F),this.F=a}},function(){this.Z|=1;Fg[this.ca()].call(this,Gd,this.Da)},function(){this.A-=3},function(){var a= +this.H;this.H=this.J;this.J=a;this.A-=3},function(){var a=this.H;this.H=this.K;this.K=a;this.A-=3},function(){var a=this.H;this.H=this.C;this.C=a;this.A-=3},function(){var a=this.H;this.H=this.Y;this.Y=a;this.A-=3},function(){var a=this.H;this.H=this.I;this.I=a;this.A-=3},function(){var a=this.H;this.H=this.G;this.G=a;this.A-=3},function(){var a=this.H;this.H=this.F;this.F=a;this.A-=3},function(){this.H=this.H<<24>>24&65535;this.A-=2},function(){this.K=this.H&32768?65535:0;this.A-=this.B.Sj},function(){var a= +this.L(),b=this.L();K(this,this.xa.Aa);K(this,this.ua);fc(this,a,b);this.A-=this.B.Vj},function(){N.call(this)},function(){K(this,ic(this));this.A-=this.B.dc},function(){gc(this,this.Da());this.A-=this.B.Xb},function(){var a=this.H>>8;a&1?Gc(this):Cc(this);a&4?xc(this)||(this.ha^=1):xc(this)&&(this.ha^=1);a&16?Hc(this):Dc(this);a&64?Ic(this):Ec(this);a&128?Jc(this):Ac(this)&&(this.ha^=this.ba>>1|this.ba>>2,this.ja^=32896);this.A-=this.B.ob},function(){this.H=this.H&255|(ic(this)&213)<<8;this.A-=this.B.ob}, +function(){this.H=this.H&-256|this.T(this.D,this.L());this.A-=this.B.qi},function(){this.H=this.U(this.D,this.L());this.A-=this.B.qi},function(){var a=this.L(),b=this.H;Mc(this,this.D.$b(a,0),b);this.A-=this.B.ri},function(){var a=this.L(),b=this.H;Nc(this,this.D.$b(a,1),b);this.A-=this.B.ri},function(){var a=1,b=0,c=this.B.si;this.ta&192&&(a=this.J,b=1,c=this.B.ui,this.ta&256||(this.A-=this.B.ti));if(a--){var d=this.Fa&1024?-1:1,e=this.T(this.D,this.G);Mc(this,this.hb.$b(this.F,0),e);this.G=this.G+ +d&65535;this.F=this.F+d&65535;this.A-=c;this.J-=b;a&&(J(this,this.ta&16?-3:-2),this.Z|=256)}},function(){var a=1,b=0,c=this.B.si;this.ta&192&&(a=this.J,b=1,c=this.B.ui,this.ta&256||(this.A-=this.B.ti));if(a--){var d=this.Fa&1024?-2:2,e=this.U(this.D,this.G);Nc(this,this.hb.$b(this.F,1),e);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c;this.J-=b;a&&(J(this,this.ta&16?-3:-2),this.Z|=256)}},function(){var a=1,b=0,c=this.B.ci;this.ta&192&&(a=this.J,b=1,c=this.B.ei,this.ta&256||(this.A-=this.B.di)); +if(a--){var d=this.Fa&1024?-1:1,e=this.T(this.D,this.G),f=this.O(this.hb,this.F);Zc.call(this,e,f);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c-this.B.gb;this.J-=b;a&&zc(this)==(this.ta&64)&&(J(this,this.ta&16?-3:-2),this.Z|=256)}},function(){var a=1,b=0,c=this.B.ci;this.ta&192&&(a=this.J,b=1,c=this.B.ei,this.ta&256||(this.A-=this.B.di));if(a--){var d=this.Fa&1024?-2:2,e=this.U(this.D,this.G),f=this.P(this.hb,this.F);gd.call(this,e,f);this.G=this.G+d&65535;this.F=this.F+d&65535;this.A-=c- +this.B.gb;this.J-=b;a&&zc(this)==(this.ta&64)&&(J(this,this.ta&16?-3:-2),this.Z|=256)}},function(){this.X=this.ha=this.ja=this.H&255&this.ca();this.ba=256;this.A-=this.B.he},function(){this.X=this.ha=this.ja=this.H&this.L();this.ba=65536;this.A-=this.B.he},function(){var a=1,b=0,c=this.B.Di;this.ta&192&&(a=this.J,b=1,c=this.B.Fi,this.ta&256||(this.A-=this.B.Ei));if(a--){var d=this.H;Mc(this,this.hb.$b(this.F,0),d);this.F=this.F+(this.Fa&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(J(this,-2),this.Z|= +256)}},function(){var a=1,b=0,c=this.B.Di;this.ta&192&&(a=this.J,b=1,c=this.B.Fi,this.ta&256||(this.A-=this.B.Ei));if(a--){var d=this.H;Nc(this,this.hb.$b(this.F,1),d);this.F=this.F+(this.Fa&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(J(this,-2),this.Z|=256)}},function(){var a=1,b=0,c=this.B.ki;this.ta&192&&(a=this.J,b=1,c=this.B.mi,this.ta&256||(this.A-=this.B.li));a--&&(this.H=this.H&-256|this.T(this.D,this.G),this.G=this.G+(this.Fa&1024?-1:1)&65535,this.A-=c,this.J-=b,a&&(J(this,this.ta&16?-3:-2), +this.Z|=256))},function(){var a=1,b=0,c=this.B.ki;this.ta&192&&(a=this.J,b=1,c=this.B.mi,this.ta&256||(this.A-=this.B.li));a--&&(this.H=this.U(this.D,this.G),this.G=this.G+(this.Fa&1024?-2:2)&65535,this.A-=c,this.J-=b,a&&(J(this,this.ta&16?-3:-2),this.Z|=256))},function(){var a=1,b=0,c=this.B.xi;this.ta&192&&(a=this.J,b=1,c=this.B.zi,this.ta&256||(this.A-=this.B.yi));a--&&(Zc.call(this,this.H&255,this.O(this.hb,this.F)),this.F=this.F+(this.Fa&1024?-1:1)&65535,this.A-=c-this.B.gb,this.J-=b,a&&zc(this)== +(this.ta&64)&&(J(this,-2),this.Z|=256))},function(){var a=1,b=0,c=this.B.xi;this.ta&192&&(a=this.J,b=1,c=this.B.zi,this.ta&256||(this.A-=this.B.yi));a--&&(gd.call(this,this.H,this.P(this.hb,this.F)),this.F=this.F+(this.Fa&1024?-2:2)&65535,this.A-=c-this.B.gb,this.J-=b,a&&zc(this)==(this.ta&64)&&(J(this,-2),this.Z|=256))},function(){this.H=this.H&-256|this.ca();this.A-=this.B.ob},function(){this.J=this.J&-256|this.ca();this.A-=this.B.ob},function(){this.K=this.K&-256|this.ca();this.A-=this.B.ob},function(){this.C= +this.C&-256|this.ca();this.A-=this.B.ob},function(){this.H=this.H&255|this.ca()<<8;this.A-=this.B.ob},function(){this.J=this.J&255|this.ca()<<8;this.A-=this.B.ob},function(){this.K=this.K&255|this.ca()<<8;this.A-=this.B.ob},function(){this.C=this.C&255|this.ca()<<8;this.A-=this.B.ob},function(){this.H=this.L();this.A-=this.B.ob},function(){this.J=this.L();this.A-=this.B.ob},function(){this.K=this.L();this.A-=this.B.ob},function(){this.C=this.L();this.A-=this.B.ob},function(){this.Y=this.L();this.A-= +this.B.ob},function(){this.I=this.L();this.A-=this.B.ob},function(){this.G=this.L();this.A-=this.B.ob},function(){this.F=this.L();this.A-=this.B.ob},Zg,$g,Zg,$g,function(){P[this.ca()].call(this,Yd)},function(){P[this.ca()].call(this,Xd)},function(){this.Z|=1;Eg[this.ca()].call(this,Hd,this.ca)},function(){this.Z|=1;Fg[this.ca()].call(this,Hd,this.L)},ah,bh,ah,bh,function(){Qc.call(this,3,null,this.B.lk)},function(){var a=this.ca(),b;a:{b=this.ll[a];if(void 0!==b)for(var c=0;c>8)*a+this.H&255;this.ba=256;this.A-=this.B.Oj},function(){this.H=this.H&-256|(wc(this)?255:0);this.A-=2},function(){this.H=this.H&-256|this.T(this.D,this.C+(this.H&255)&65535);this.A-=this.B.Nk},ch,ch,ch,ch,ch,ch,ch,ch,function(){var a=this.M();(this.J=this.J-1&65535)&&this.X&this.ba-1?(I(this,this.ua+a),this.A-=this.B.uk):this.A-=this.B.ni},function(){var a=this.M();!(this.J=this.J-1&65535)||this.X&this.ba-1?this.A-=this.B.pi: +(I(this,this.ua+a),this.A-=this.B.oi)},function(){var a=this.M();(this.J=this.J-1&65535)?(I(this,this.ua+a),this.A-=this.B.tk):this.A-=this.B.ni},function(){var a=this.M();this.J?this.A-=this.B.pi:(I(this,this.ua+a),this.A-=this.B.oi)},function(){var a=this.ca();this.H=this.H&-256|Za(this.pa,a,this.Ha-2);this.A-=this.B.hi},function(){var a=this.ca();this.H=Za(this.pa,a,this.Ha-1)|Za(this.pa,a+1&65535,this.Ha-2)<<8;this.A-=this.B.hi},function(){var a=this.ca();ab(this.pa,a,this.H&255,this.Ha-2);this.A-= +this.B.wi},function(){var a=this.ca();ab(this.pa,a,this.H&255,this.Ha-2);ab(this.pa,a+1&65535,this.H>>8,this.Ha-2);this.A-=this.B.wi},function(){var a=this.L();K(this,this.ua);I(this,this.ua+a);this.A-=this.B.Tj},function(){var a=this.L();I(this,this.ua+a);this.A-=this.B.ii},function(){fc(this,this.L(),this.L());this.A-=this.B.pk},function(){var a=this.M();I(this,this.ua+a);this.A-=this.B.ii},function(){this.H=this.H&-256|Za(this.pa,this.K,this.Ha-1);this.A-=this.B.gi},function(){this.H=Za(this.pa, +this.K,this.Ha-1)|Za(this.pa,this.K+1&65535,this.Ha-1)<<8;this.A-=this.B.gi},function(){ab(this.pa,this.K,this.H&255,this.Ha-1);this.A-=this.B.vi},function(){ab(this.pa,this.K,this.H&255,this.Ha-1);ab(this.pa,this.K+1&65535,this.H>>8,this.Ha-1);this.A-=this.B.vi},dh,dh,function(){this.Z|=132;this.A-=this.B.Gd},function(){this.Z|=68;this.A-=this.B.Gd},function(){this.$a|=4;this.A-=2;this.Fa&512||jb(this)},function(){wc(this)?Cc(this):Gc(this);this.A-=2},function(){this.pb=-1;Eg[this.ca()].call(this, +Ld,Cd);0<=this.pb&&(this.H=this.pb)},function(){this.pb=-1;Fg[this.ca()].call(this,Md,Cd);0<=this.pb&&(this.H=this.pb,this.K=this.Jf)},function(){this.X&=~this.ba;this.A-=2},function(){this.X|=this.ba;this.A-=2},function(){this.Fa&=-513;this.A-=this.B.Rj},function(){this.Fa|=512;this.Z|=4;this.A-=2},function(){this.Fa&=-1025;this.A-=2},function(){this.Fa|=1024;this.A-=2},function(){Eg[this.ca()].call(this,Zb,Cd)},function(){Fg[this.ca()].call(this,ac,Cd)}]; +function Q(a){w.call(this,"ChipSet",a,Q);this.Ga=a.model;this.Ga=void 0!==this.Ga?parseInt(this.Ga,10):eh;this.Jb=0;var b=a.sw1;if(b)this.Jb=fh(b,gh|hh.il);else{this.md=[360,360];(b=a.floppies)&&void 0!==b.length&&(this.md=b);if(b=this.md.length)this.Jb|=ih.ah,b--,this.Jb|=(b&3)<=jh&&(this.af=this.bf=2);this.ug=a.scaleTimers||!1; +this.Wn=a.rtcDate;this.Aj=!1;a.sound&&window&&"webkitAudioContext"in window&&(this.qh=new webkitAudioContext);this.reset(!0);this.Ma()}y(w,Q);var eh=5150,jh=5170,kh={none:0,tv:1,color:2,mono:3,ega:0},ih={ah:1,ONE:0,Bo:64,zo:128,jo:192,Re:192,Se:6},gh=12,hh={Ao:16,co:32,il:48,Re:48,Se:4};h=Q.prototype; +h.vb=function(a,b,c,d){switch(c){case "sw1":return this.ra[c]=d,lh(this,c,d,this.Jb,{0:this.Ga==eh?"Bootable Floppy Drive":"Loop on POST",1:this.Ga==eh?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Ga==eh)return this.ra[c]=d,lh(this,c,d,this.Md,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.ra[c]=d,!0}return!1}; +h.lc=function(a,b,c,d){this.pa=b;this.ka=c;this.Pa=d;this.Ia=a;this.Va=D(a,"Keyboard");this.Ok=Math.round(c.aa.fd/1193181);Ya(b,this,mh);$a(b,this,nh);this.Ga=jh){this.cb=16;this.Wc=0;this.od=16;this.Zf=0;this.Ud=160;512<=wh(this)&&(this.Ud|=16);3==xh(this)&&(this.Ud|=64);this.ih=3;this.bg=0;this.Lb=Array(7);this.xe=0;a&&(this.na=Array(64)); +yh(this,this.Wn);for(a=21;24>=a;a++)this.na[a]=0;for(a=14;46>a;a++)void 0===this.na[a]&&(this.na[a]=0);this.na[20]=this.Kc&(hh.Re|2|ih.ah|ih.Re);this.na[16]=zh(this,0)<<4|zh(this,1);Ah(this)}}; +function yh(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.fc("CMOS date invalid ("+b+"), using "+c)):b&&a.fc("CMOS date: "+c);a.na[0]=c.getSeconds();a.na[1]=0;a.na[2]=c.getMinutes();a.na[3]=0;a.na[4]=c.getHours();a.na[5]=0;a.na[6]=c.getDay()+1;a.na[7]=c.getDate();a.na[8]=c.getMonth()+1;c=c.getFullYear();a.na[9]=c%100;c/=100;a.na[50]=c%10|c/10<<4;a.pf=-1;a.na[10]=38;a.na[11]=2;a.na[12]=0;a.na[13]=128} +function Ah(a){for(var b=0,c=16;46>c;c++)b+=a.na[c];a.na[47]=b&255;a.na[46]=b>>8} +h.save=function(){var a=new H(this);a.set(0,[this.Jb,this.Md,this.Kc,this.qe]);for(var b=[],c=0;c=jh&&(a.set(5,[this.cb,this.Wc,this.od,this.Zf,this.Ud,this.ih]),a.set(6,[this.bg,this.Lb,this.xe,this.na,this.pf]));return a.data()}; +h.restore=function(a){var b,c;b=a[0];this.Jb=b[0];this.Md=b[1];this.Kc=b[2];this.qe=b[3];b=a[1];this.Sa=Array(this.af);for(c=0;c>2)+1)*a.Fm+32*((b?a.Md:a.qe)&15)}function Dh(a,b){var c=b?a.Jb:a.Kc;return a.Ga!=eh||c&ih.ah?((c&ih.Re)>>ih.Se)+1:0} +function zh(a,b){if(b>hh.Se} +function lh(a,b,c,d,e){for(var f="",l=1;8>=l;l++){var g="pcjs-bitCell";l||(g+=" pcjs-bitCellLeft");f+='
'+l+"
\n"}c.innerHTML=f;b=C(c,"pcjs-bitCell");c=null;for(l=0;l>2].qb[b&3],c,d,e)}function Mh(a,b,c){b=a.Sa[b>>2].qb[b&3];b.jg&&b.Jh&&b.Ng?(c&&(b.kg=c),b.ed||Rc(a,b,!0)):c&&c(!0)} +function Rc(a,b,c){c&&(b.count=b.Vb[1]<<8|b.Vb[0],b.dl=b.mode&12,b.Bj=b.Mc=!1);for(var d=!1;0<=b.count&&(c=b.fg<<16|b.yb[1]<<8|b.yb[0],4==b.dl?(d=!0,function(c){b.Jh.call(b.jg,b.Ng,-1,function(f,l){0>f&&(b.Bj||(b.Bj=!0),f=255);b.ed||Va(a.pa,c,f);(d=l)&&setTimeout(function(){Rh(b)||Rc(a,b)},0)})}(c)):8==b.dl?(c=Ta(a.pa,c),0>b.Jh.call(b.jg,b.Ng,c)&&(b.Mc=!0)):b.Mc=!0),!d&&!Rh(b););} +function Rh(a){if(!a.Mc&&0<=--a.count&&(a.mode&32?(a.yb[0]--,0>a.yb[0]&&(a.yb[0]=255,a.yb[1]--,0>a.yb[1]&&(a.yb[1]=255))):(a.yb[0]++,255>3,e=a.rb[d];e.zb|=1<<(b&7);e.wf=c||0;1==d&&(a.rb[0].zb|=4);Uh(a,d)}function ai(a,b){var c=b>>3,d=a.rb[c],e=1<<(b&7);d.zb&e&&(d.zb&=~e,1!=c||d.zb||(a.rb[0].zb&=-5),Uh(a,c))} +function Pc(a,b){void 0===b&&(b=0);var c=-1,d=a.rb[b];if(d.wf)c=-2,d.wf--;else for(var e=d.zb&((d.Cc|d.rd)^255),f=d.Vd+1;;){var f=f&7,l=1<>6;if(3!=c){var d=b&1,e=b&14,f=b&48;if(f){var l=this.Kb[c];l.Kf=f;l.mode=e;l.oj=d;l.qc=[0,0];l.Vb=[0,0];l.ff=[0,0];l.Nc=!1;l.lf=!1;l.Ae=!1;ci(this,c);0==c&&ai(this,0);2==c&&255==this.rb[0].rd&&77==this.jc&&(c=this.Kb[0],c.Gc[0]=c.qc[0],c.Gc[1]=c.qc[1],c.Jd=ob(this.ka,this.ug))}else di(this,c),d=this.Kb[c],d.ff[0]=d.Vb[0],d.ff[1]=d.Vb[1],d.lf=!0,ci(this,c)}};function fi(a,b){var c=a.Kb[b],d=c.qc[1]<<8|c.qc[0];d||(d=1==c.be?256:65536);return d} +function ci(a,b){var c=a.Kb[b];c.wd=32==c.Kf?1:0;c.be=48==c.Kf?2:1} +function di(a,b,c){var d=a.Kb[b];if(d.Ae&&(2!=b||a.jc&1)){var e=ob(a.ka,a.ug),f=(e-d.Jd)/a.Ok|0;0>f&&(d.Jd=e,f=0);var l=fi(a,b),g=a.Kb[b],m=g.Gc[1]<<8|g.Gc[0];m||(m=1==g.be?256:65536);g=m-f;0==d.mode?(0>=g&&(g=0),g||(d.Nc=!0,d.Ae=!1,b||$h(a,0))):4==d.mode?(d.Nc=1!=g,0>=g&&(g=l+g,0>=g&&(g=l),d.Gc[0]=g&255,d.Gc[1]=g>>8,d.Jd=e,!b&&d.Nc&&$h(a,0))):6==d.mode&&(g-=f,0>=g&&(d.Nc=!d.Nc,g=l+g,0>=g&&(g=l),d.Gc[0]=g&255,d.Gc[1]=g>>8,d.Jd=e,!b&&d.Nc&&$h(a,0)));d.Vb[0]=g&255;d.Vb[1]=g>>8;c&&(a.Jd=0)}return d} +function qb(a,b){for(var c=0;c=jh){var c=0,d=a.ka.aa.fd,e=ob(a.ka,a.ug);if(0<=a.pf&&(c=e-a.pf,Math.floor(c/d)&&60<=++a.na[0]&&(a.na[0]=0,60<=++a.na[2]&&(a.na[2]=0,24<=++a.na[4])))){a.na[4]=0;a.na[6]=a.na[6]%7+1;var f=a.na[9],l=ia[a.na[8]-1];28==l&&0===f%4&&(f%100||0===f%400)&&l++;++a.na[7]>l&&(a.na[7]=1,12<++a.na[8]&&(a.na[8]=1,a.na[9]=(a.na[9]+1)%100))}a.pf=e-c%d}}h.tm=function(){var a=this.eg;this.$e&16&&(this.jc&128?a=this.Kc:this.Va&&(a=gi(this.Va)));return a}; +h.Cn=function(a,b){this.eg=b};h.um=function(){return this.jc};h.Dn=function(a,b){hi(this,b);this.Va&&ii(this.Va,b&128?!1:!0,b&64?!0:!1)};function hi(a,b){var c=!!(b&2),d=!!(a.jc&2);a.jc=b;c!=d&&pb(a,c)}h.vm=function(){var a=0,a=this.Ga==eh?this.jc&4?a|this.qe&15:a|this.qe>>4&1:this.jc&8?a|this.Kc>>4:a|this.Kc&15;this.jc&1&&di(this,2).Nc&&(a=this.jc&2?a|32:a|16);return a};h.En=function(a,b){this.kh=b};h.wm=function(){return this.$e};h.Fn=function(a,b){this.$e=b}; +h.Kl=function(){var a=this.Zf;this.cb&=-258;var b=this.Va&&gi(this.Va,!0);b&&ji(this,b);return a};h.Vm=function(a,b){if(this.cb&8)switch(this.Wc){case 96:ki(this,b);break;case 209:li(this,b);break;default:if(ki(this,this.od&-17),this.Va){var c=-1;switch(b){case 255:c=250,mi(this.Va)}ji(this,c)}}this.Wc=b;this.cb&=-9};h.Ll=function(){return this.jc&-209|(ob(this.ka)&64?16:0)};h.Wm=function(a,b){hi(this,b)};h.Ml=function(){var a=this.cb&255;this.cb&256&&(this.cb|=1,this.cb&=-257);return a}; +h.Um=function(a,b){this.Wc=b;this.cb|=8;var c=0;240<=this.Wc&&(c=this.Wc^15,this.Wc=240);switch(this.Wc){case 192:ji(this,this.Ud);break;case 173:ki(this,this.od|16);break;case 174:ki(this,this.od&-17);break;case 170:this.Va&&ni(this.Va,!0);ki(this,this.od|16);ji(this,85);li(this,3);break;case 224:ji(this,this.od&16?0:1);break;case 240:c&1&&ec(this.ka)}};function ki(a,b){a.od=b;a.cb=a.cb&-5|b&4;a.Va&&ii(a.Va,!!(b&8),!(b&16))&&ji(a,gi(a.Va,!0))}function ji(a,b){0<=b&&(a.Zf=b,a.cb&=-2,a.cb|=256)} +function li(a,b){a.ih=b;Oa(a.pa,!!(b&2));b&1||ec(a.ka)}h.$l=function(){return this.xe};h.kn=function(a,b){this.xe=b;this.dg=b&128?0:128};h.am=function(){var a=this.xe&63;if(13>=a){var b=this.na[a];if(10>a){var c=!1;4!=a&&5!=a||this.na[11]&2||(b=12>b?b?b:12:(b-=12)?b+128:140,c=!0);this.na[11]&4||(c&&128=c){if(e=b,10>c){var f=!1;this.na[11]&4||(e=10*(e>>4)+(e&15),f=!0);if(4==c||5==c)f&&12=e?e=12==e?0:e:(e-=116,e=24==e?12:e))}}else e=b;d[c]=e};h.rm=function(){return this.bg};h.zn=function(a,b){this.bg=b};h.Bn=function(a,b){this.dg=b};function fh(a,b){if(void 0===a)return b;for(var c=0,d=1,e=0;ec||2E4>8&255,this.lb[c++]=f[b]>>16&255,this.lb[c++]=f[b]>>24&255;else this.lb=d;this.gh=d.symbols;if(!this.lb.length){t("Empty ROM: "+a);return}if(1==this.lb.length){t(this.lb[0]);return}}catch(l){this.za("ROM data error: "+ +l.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.lb=Array(a.length),d=0;dthis.Yf?21:23,c=a.na[b]|a.na[b+1]<<8,c=c+(this.kd>>10);a.na[b]=c&255;a.na[b+1]=c>>8;Ah(a)}}else t("No RAM allocated")}; +u(function(){for(var a=C(window.document,"pcjs","ram"),b=0;ba.hc.length){if(!(!d&&!a.dh[c]||d&&a.dh[c])){a.dh[c]=d;a.hc.push(b);1==a.hc.length&&a.ha&&$h(a.ha,1);for(var e in ui)if(ui[e]==c){(c=a.pa["key-"+e])&&void 0!==d&&(c.style.color=d?"#ffffff":"#000000",c.style.backgroundColor=d?"#000000":"#ffffff");break}}}else 20==a.hc.length&&a.hc.push(255)}function zi(a,b){var c=b?a.Fm:a.Em;a.ja&&a.ja.Lc&&(c/=a.ja.Lc);return c}function Ai(a,b){!a.he||void 0!==b&&b==a.he||(clearTimeout(a.Qc[a.he]),Bi(a,a.he,!1))} -function wi(a,b,c){var d,e=!c,f=b.keyCode;c&&(a.Nk=f);240==f+224?(a.xa&=-2,c&&(a.xa|=1),f+=224,e=!1):241==f+224?(a.xa&=-5,c&&(a.xa|=4),f+=224,e=!1):242==f+224?(a.xa&=-9,c&&(a.xa|=8),f+=224,e=!1):244==f+224?(a.xa&=-17,c&&(a.xa|=16),f+=224,d=xi(a,f)):91==f?(a.xa&=-33,c&&(a.xa|=32),e=!1,d=!0):9==f||27==f||8==f?(8==f&&4==(a.xa&12)&&(f=254),d=c?!xi(a,f):!1):void 0!==R[f+224]?f+=224:b.altKey||b.ctrlKey?65<=f&&90>=f&&(f+=32):d=!0;e&&(a.xa&=-33,a.vl||f!=a.Nk||Ai(a));void 0===d&&(d=!Bi(a,f,c));return d} -function xi(a,b,c){var d=!1;Ai(a,b);Bi(a,b,!0)&&(c?Bi(a,b,!1):(c=!1,a.Qc[b]&&(clearTimeout(a.Qc[b]),c=!0),c=zi(a,c),a.Qc[a.he=b]=setTimeout(function(a){return function(){Bi(a,b,!1)}}(a),c)),d=!0);return d} -function Bi(a,b,c){var d=!1;c||(a.Qc[b]=null,a.he==b&&(a.he=0));var e=R[b];void 0===e&&1<=b&&26>=b&&(e=R[b+64]&255|61696);if(void 0!==e){14==e&&12==(a.xa&12)&&(e=83);b=[];for(b.push(e&255|(c?0:128));e>>=8;){var d=0,f=e&255;240==f?a.xa&17||(d=42):224==f?a.xa&18||(d=54):241==f?a.xa&4||(d=29):242==f&&(a.xa&8||(d=56));d&&(c?b.unshift(d):b.push(d|128))}for(c=0;ca.ic.length){if(!(!d&&!a.fh[c]||d&&a.fh[c])){a.fh[c]=d;a.ic.push(b);1==a.ic.length&&a.ia&&$h(a.ia,1);for(var e in ui)if(ui[e]==c){(c=a.ra["key-"+e])&&void 0!==d&&(c.style.color=d?"#ffffff":"#000000",c.style.backgroundColor=d?"#000000":"#ffffff");break}}}else 20==a.ic.length&&a.ic.push(255)}function zi(a,b){var c=b?a.Jm:a.Im;a.ka&&a.ka.aa.Oc&&(c/=a.ka.aa.Oc);return c} +function Ai(a,b){!a.le||void 0!==b&&b==a.le||(clearTimeout(a.Tc[a.le]),Bi(a,a.le,!1))} +function wi(a,b,c){var d,e=!c,f=b.keyCode;c&&(a.Rk=f);240==f+224?(a.ya&=-2,c&&(a.ya|=1),f+=224,e=!1):241==f+224?(a.ya&=-5,c&&(a.ya|=4),f+=224,e=!1):242==f+224?(a.ya&=-9,c&&(a.ya|=8),f+=224,e=!1):244==f+224?(a.ya&=-17,c&&(a.ya|=16),f+=224,d=xi(a,f)):91==f?(a.ya&=-33,c&&(a.ya|=32),e=!1,d=!0):9==f||27==f||8==f?(8==f&&4==(a.ya&12)&&(f=254),d=c?!xi(a,f):!1):void 0!==R[f+224]?f+=224:b.altKey||b.ctrlKey?65<=f&&90>=f&&(f+=32):d=!0;e&&(a.ya&=-33,a.Al||f!=a.Rk||Ai(a));void 0===d&&(d=!Bi(a,f,c));return d} +function xi(a,b,c){var d=!1;Ai(a,b);Bi(a,b,!0)&&(c?Bi(a,b,!1):(c=!1,a.Tc[b]&&(clearTimeout(a.Tc[b]),c=!0),c=zi(a,c),a.Tc[a.le=b]=setTimeout(function(a){return function(){Bi(a,b,!1)}}(a),c)),d=!0);return d} +function Bi(a,b,c){var d=!1;c||(a.Tc[b]=null,a.le==b&&(a.le=0));var e=R[b];void 0===e&&1<=b&&26>=b&&(e=R[b+64]&255|61696);if(void 0!==e){14==e&&12==(a.ya&12)&&(e=83);b=[];for(b.push(e&255|(c?0:128));e>>=8;){var d=0,f=e&255;240==f?a.ya&17||(d=42):224==f?a.ya&18||(d=54):241==f?a.ya&4||(d=29):242==f&&(a.ya&8||(d=56));d&&(c?b.unshift(d):b.push(d|128))}for(c=0;cc.length)c=[!1,0,null,null,0,Array(Ni)];this.wg=b;this.Ma=e[2];this.ub=e[3];this.Cc=d||e[4];65536<=this.Cc&&720896<=this.Ma&&(this.ub=Math.min(this.Cc>>2,32768));this.bc=c[0];this.kc=c[1];this.af=c[2];this.Nf=c[3];this.sc=c[4]&255;this.vg=c[4]>>8&255;this.Yb=c[5];this.Oh=Ni;if(5==b){this.Oh=Oi;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5),0,0,0,Array(9),0,[this.Ma,this.ub,this.Cc],Array(this.Cc>> -2),771,0,4294967295,0,4294967295,0,4294967295,0,0,0]);this.wd=b[0];this.be=b[1];this.Ld=b[2];this.Wi=b[3];this.Bg=b[4];this.Eh=b[5];this.Be=b[6];this.Uf=b[7];this.Hh=b[8];this.Ih=b[9];this.Ae=b[10];this.pe=b[11];this.kb=b[12];d=b[13];"number"==typeof d&&(d=[this.Ma,this.ub,d]);this.Ma=d[0];this.ub=d[1];d=this.Cc>>2;if((this.Pd=b[14])&&this.Pd.length>8&255)} -var X=[,,function(a){a+=this.offset;return(this.ca.kb=this.ma[a])>>this.ca.Hi&255},function(a){a+=this.offset;var b=a&-2;return(a&1?this.ma[b]>>8:this.ma[b])&255}];X[16]=function(a){a+=this.offset;a=this.ma[a];for(var b=this.ca.Qh&this.ca.Rh,c=0,d=128;d;)(a&b)==b&&(c|=d),b>>>=1,d>>=1;return c};X[512]=function(a,b){var c=a+this.offset,d;d=this.ma[c]&~this.ca.Va|(b|b<<8|b<<16|b<<24)&this.ca.Va;d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)}; -X[1024]=function(a,b){var c=a+this.offset;b=b>>this.ca.Nc|b<<8-this.ca.Nc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ca.Fd|this.ca.ee;d=d&this.ca.Va|this.ma[c]&~this.ca.Va;d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)}; -X[1536]=function(a,b){var c=a+this.offset;b=b>>this.ca.Nc|b<<8-this.ca.Nc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ca.Fd|this.ca.ee;d&=this.ca.kb;d=d&this.ca.Va|this.ma[c]&~this.ca.Va;d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)}; -X[2560]=function(a,b){var c=a+this.offset;b=b>>this.ca.Nc|b<<8-this.ca.Nc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ca.Fd|this.ca.ee;d|=this.ca.kb;d=d&this.ca.Va|this.ma[c]&~this.ca.Va;d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)}; -X[3584]=function(a,b){var c=a+this.offset;b=b>>this.ca.Nc|b<<8-this.ca.Nc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ca.Fd|this.ca.ee;d^=this.ca.kb;d=d&this.ca.Va|this.ma[c]&~this.ca.Va;d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)};X[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.ca.Va&(d==a?16711935:4278255360);c=(b|b<<8|b<<16|b<<24)&c|this.ma[d]&~c;c=c&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[d]!=c&&(this.ma[d]=c,this.Xa=!0)}; -X[4096]=function(a){a+=this.offset;var b=this.ma[a]&~this.ca.Va|this.ca.kb&this.ca.Va;this.ma[a]!=b&&(this.ma[a]=b,this.Xa=!0)};X[8192]=function(a,b){var c=a+this.offset,d=Ki[b&15],d=d&this.ca.Va|this.ma[c]&~this.ca.Va,d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)};X[24576]=function(a,b){var c=a+this.offset,d=Ki[b&15],d=d&this.ca.kb,d=d&this.ca.Va|this.ma[c]&~this.ca.Va,d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)}; -X[40960]=function(a,b){var c=a+this.offset,d=Ki[b&15],d=d|this.ca.kb,d=d&this.ca.Va|this.ma[c]&~this.ca.Va,d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)};X[57344]=function(a,b){var c=a+this.offset,d=Ki[b&15],d=d^this.ca.kb,d=d&this.ca.Va|this.ma[c]&~this.ca.Va,d=d&this.ca.Za|this.ca.kb&~this.ca.Za;this.ma[c]!=d&&(this.ma[c]=d,this.Xa=!0)}; -function Ri(a){var b=[];if(void 0!==a.wg){b[0]=a.bc;b[1]=a.kc;b[2]=a.af;b[3]=a.Nf;b[4]=a.sc|a.vg<<8;b[5]=a.Yb;if(5==a.wg){var c=[];c[0]=a.wd;c[1]=a.be;c[2]=a.Ld;c[3]=a.Wi;c[4]=a.Bg;c[5]=a.Eh;c[6]=a.Be;c[7]=a.Uf;c[8]=a.Hh;c[9]=a.Ih;c[10]=a.Ae;c[11]=a.pe;c[12]=a.kb;c[13]=[a.Ma,a.ub,a.Cc];var d;a:if(d=a.Pd){var e=0,f=[];if(void 0!==d[0])for(var l=0;2>l;l++)for(var g=l;g>1;f[e++]=m;g=n}if(f.length>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8),Wa(this.na,b,c|d<<8);eb(this,!0)}};function Yi(a){a.ka.Bg&1?(a.Bc=a.lh,a.Tb=a.ka):(a.Bc=a.ka,a.Tb=a.gg)}h.save=function(){var a=new H(this);a.set(0,Ri(this.lh));a.set(1,Ri(this.gg));a.set(2,[this.Cd,this.Oc,this.Bd]);a.set(3,Ri(this.ka));return a.data()}; -h.restore=function(a){var b=a[2];this.Cd=b[0];this.Oc=b[1];this.Bd=b[2];this.Aa=null;this.Bc=this.lh=new Li(this,1,a[0]);this.Tb=this.gg=new Li(this,3,a[1]);this.ka=new Li(this,5,a[3],this.Cc);this.ka.bc&&Yi(this);Zi(this);if(!aj(this))return!1;bj(this);return!0}; -h.Mm=function(a,b,c){if(c)this.ya("Unable to load font ROM image (error "+c+")");else{try{var d=eval("("+b+")");if(!d.length){t("Empty font ROM image: "+a);return}if(1==d.length){t(d[0]);return}if(8192==d.length)ri(this,d,[0,6144]);else{this.ya("Unrecognized font data length ("+d.length+")");return}}catch(e){this.ya("Font ROM data error: "+e.message);return}this.Ka()}}; -function cj(a,b){if(1==b)return a.Rc[0]=V[0],a.Rc[1]=V[7],a.Rc;if(2==b){var c=a.Aa.af;if(a.Aa===a.ka){var d=a.ka.Ld[0],c=d&7;d&16&&(c|=8);18!=a.ka.Ld[1]&&(c|=32)}a.Rc[0]=V[c&15];c=c&32?Ii:Hi;for(d=0;dgb||!$?gb:8,od=Wh.createImageData(n.$b,n.ac),ta=0;256>ta;ta++){for(Sa= -0;Sa=gb-2,fk=rc[Sa>(8<=tb&&176<=ta&&223>=ta?7:tb)?s:nd;fj(od,Xh,Yh,Zh);M&&fj(od,Xh+1,Yh,Zh)}Wh.putImageData(od,(ta&15)*n.$b,(ta>>4)*n.ac)}n.oe[A]="#"+p(s[0],2)+p(s[1],2)+p(s[2],2);n.dj[A]=s;n.$g[A]=sc;n=!0}}a.kd[b]=v;return n}function gj(a){0a.Wd&&(a.Wd=0):a.Wd=-1} -function bj(a){if(a.Db){for(var b=10;15>=b;b++)if(null==a.Aa.Yb[b])return;var c=a.Aa.Yb[10],b=c&31,d=a.Aa.Yb[11]&31,e=a.Aa.Yb[9]&31,f=!1;a.Aa===a.ka&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)hj(a);else{c=a.Aa.Yb[15]+((a.Aa.Yb[14]&63)<<8);a.tc!=c&&(hj(a),a.tc=c);d=d-b+1;if(a.al!=b||a.pj!=d)a.al=b,a.pj=d;a.ud=e+1;gj(a)}}} -function hj(a){if(0<=a.tc){if(void 0!==a.Sb){var b=a.Sb[a.tc];if(b&131072){var b=b&-131073,c=a.tc%a.lb,d=Math.floor(a.tc/a.lb);a.Db&&a.kd[a.Db]&&(a.ve&&ij(a,c,d,b,a.ve),ij(a,c,d,b));a.Sb[a.tc]=b}}a.tc=-1}} -function jj(a){var b;a=a.Aa;var c=a.pe[5];if(null!=c){b=2;var d=512,e=a.pe[3]&31;switch(c&3){case 0:if(e){d=1024;switch(e&24){case 8:d=1536;break;case 16:d=2560;break;case 24:d=3584}a.Nc=e&7}break;case 1:d=4096;break;case 2:switch(e&24){default:d=8192;break;case 8:d=24576;break;case 16:d=40960;break;case 24:d=57344}}c&8&&(b=16);c&16&&(b|=1,d|=256);b|=d}return b}h.ke=function(a){var b=this.Aa;null!=a&&b&&a!=b.Nh&&(b.Vg(a),this.na.Vg(b.Ma,b.ub,b.Te))}; -function aj(a,b){var c,d=a.Bd,e=a.Aa;if(e)if(1==e.wg)d=Ci;else if(5==e.wg){var d=null,f=e.Cc>>2,l=32768f&&(d=c?13:14):c&&(d-=2));c=jj(a)}}else e.kc&8&&(e.kc&2?(d=e.kc&16?6:5,e.kc&4||(d-=1)):(d=e.kc&1?3:1,e.kc&4&&(d-= -1)));else a.Bd=null,null==d&&(d=a.Oc);if(!$i(a,d,b))return!1;a.ke(c);return!0} -function $i(a,b,c){if(null!=b&&(b!=a.Bd||c)){a.jl=0;a.Bd=b;b=a.Aa||(b==Ci?a.Bc:a.Tb);if(b!=a.Aa||b.Ma!=a.Ma||b.ub!=a.ub){hj(a);if(a.Ma){if(!Ra(a.na,a.Ma,a.ub))return!1;a.Aa&&(a.Aa.bc=!1)}a.Aa=b;b.bc=!0;a.Ma=b.Ma;a.ub=b.ub;if(!Pa(a.na,b.Ma,b.ub,!1,b===a.ka?b:null))return!1}a.Db=0;a.lb=a.Hg;a.dc=a.Uh;a.Ph=T[Ci][2];b=0;var d=T[a.Bd];d&&(a.lb=d[0],a.dc=d[1],a.Ph=d[2],b=d[3]||0,a.Db=d[4],4==a.Cd&&a.Aa===a.ka&&3==a.Db&&(7==a.ka.Yb[9]?a.dc=43:a.Db=5));a.Gj=a.lb*a.dc;a.Eg=a.Gj/a.Ph;a.mh=(a.Eg<<1)+b;a.nj= -b?a.mh+b>>1:0;13<=a.Bd&&(a.Eg<<=1);a.kd.length&&(a.Wc=Math.floor(a.Vc/a.lb),a.Xc=Math.floor(a.vd/a.dc),a.Db?(b=a.kd[a.Db],d=a.kd[a.Db<<1],a.wl&&80==a.lb?d&&a.Wc>=3*d.$b>>2&&(a.Db<<=1,b=d):(d&&a.Wc>=d.$b&&(a.Db<<=1,b=d),b&&(a.Wc=b.$b,a.Xc=b.ac)),a.df=a.ef=0,b&&(a.df=a.lb*b.$b,a.ef=a.dc*b.ac)):(a.Wc=a.Xc=1,a.df=a.lb,a.ef=a.dc),a.yg=a.Dc.createImageData(a.df,a.ef),a.ue=window.document.createElement("canvas"),a.ue.width=a.df,a.ue.height=a.ef,a.ve=a.ue.getContext("2d"),a.Zi=a.$i=0,a.ph=a.Vc,a.qh=a.vd, -b=a.Vc-a.lb*a.Wc,d=a.vd-a.dc*a.Xc,0>1,a.ph-=b),0>1,a.qh-=d),b||d)&&(a.Dc.fillStyle=a.qb.style.backgroundColor,a.Dc.fillRect(0,0,a.Vc,a.vd));!1!==c?eb(a,!0):kj(a,!0)}return!0}function fj(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b+0]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function kj(a,b){var c;if(b){if(c=a.Eg,void 0===a.Sb||a.Sb.length!=c)a.Sb=Array(c)}else{if(void 0===a.Sb)return;c=a.Sb.length}for(var d=0;d>8;d=l&15;var g=a.kd[a.Db];g.Pe&&(d=g.Pe[d]);var m=l>>4&15;g.Pe&&(m=g.Pe[m]);e?(b*=g.$b,c*=g.ac,e.fillStyle=g.oe[m],e.fillRect(b,c,g.$b,g.ac)):(b=b*a.Wc+a.Zi,c=c*a.Xc+a.$i,a.Dc.fillStyle=g.oe[m],a.Dc.fillRect(b,c,a.Wc,a.Xc));l&256&&(m=(f&15)*g.$b,f=(f>>4)*g.ac,e?e.drawImage(g.$g[d],m,f,g.$b,g.ac,b,c,g.$b,g.ac):a.Dc.drawImage(g.$g[d],m,f,g.$b,g.ac,b,c,a.Wc,a.Xc));l&512&&(f=a.al,l=a.pj,e?(a.ud&&a.ud!==g.ac&&(f=Math.floor(f*g.ac/a.ud),l=Math.floor(l*g.ac/a.ud)), -e.fillStyle=g.oe[d],e.fillRect(b,c+f,g.$b,l)):(a.ud&&a.ud!==a.Xc&&(f=Math.floor(f*a.Xc/a.ud),l=Math.floor(l*a.Xc/a.ud)),a.Dc.fillStyle=g.oe[d],a.Dc.fillRect(b,c+f,a.Wc,l)))} -function eb(a,b){if(a.Ab){var c=!1;a.Aa&&(a.Aa===a.ka?a.ka.be&32&&(c=!0):a.Aa.kc&8&&(c=!0));if(c||b){if(b)kj(a,!0);else if(void 0===a.Sb)return;var d=!1;!(b||++a.jl&15)&&0<=a.Wd&&(a.Wd++,d=!0);var e=0,f=a.Gj,c=a.Aa.Ma,l=c+a.Aa.ub,g=(a.Aa.Yb[12]<<8)+a.Aa.Yb[13];a.Db&&(g<<=1);var c=c+g,m=a.mh;c+m>l&&(m=l-c,0>m&&(m=0));l=c+m;if(g=!b){for(var g=a.na,n=!0,q=c>>g.Lb;0a.tc)return;e=a.tc;f=e+1}}if(a.Db){if(a.kd[a.Db]){d= -0;g=a.Vd=0;m=1048575;a.Aa.kc&32&&(g=32768,m&=~g,a.Wd&2||(m&=-65537));for(c+=e<<1;c>8|(v& -255)<<8;s=g;var gb=16;q>=m))>>(gb-=m);fj(a.yg,q++,A,n[nd])}q>U&&(U=q);A<$&&($=A);A>=aa&&(aa=A+1)}e+=2;l++;if(q>=a.lb){q=0;A+=2;if(A>a.dc)break;A==a.dc&&(A=1,e=c+a.nj)}}M$;$++)aa=U&2155905152,0>aa&&(aa+=4294967296), -aa=W[aa]||0,fj(a.yg,g++,m,l[aa]),U<<=1;g>q&&(q=g);m=M&&(M=m+1)}e++;if(g>=a.lb&&(g=0,++m>a.dc))break}n>2),a=this.ka.Wi&-17|(this.Yf&1<e&&(e=0);e%b.Sh>b.Hm&&(c|=1);e%=b.Jj;e>b.Jm&&(c|=8);b.Yh=d-e;b===a.ka?(c|=b.Nf&48^48,b.wd=!1):c=(b.Nf^=9)|240;return b.Nf=c} -var Si={948:S.prototype.jm,949:S.prototype.im,952:S.prototype.km,954:S.prototype.lm,980:S.prototype.Sl,981:S.prototype.Rl,984:S.prototype.Tl,985:S.prototype.Ql,986:S.prototype.Ul},Ti={948:S.prototype.tn,949:S.prototype.sn,952:S.prototype.un,980:S.prototype.dn,981:S.prototype.cn,984:S.prototype.en,985:S.prototype.bn},Ui={960:S.prototype.Cj,961:S.prototype.Cj,962:S.prototype.vm,964:S.prototype.um,965:S.prototype.tm,970:S.prototype.cm,972:S.prototype.bm,974:S.prototype.am,975:S.prototype.$l},Vi={954:S.prototype.Mk, -960:S.prototype.Lk,961:S.prototype.Lk,962:S.prototype.wn,964:S.prototype.Dn,965:S.prototype.Cn,970:S.prototype.on,972:S.prototype.nn,974:S.prototype.mn,975:S.prototype.ln,986:S.prototype.Mk}; +function Li(a,b,c,d){if(void 0!==b&&(!c||c.length)){var e=Mi[b],f=a.Fd||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(Ni)];this.yg=b;this.Oa=e[2];this.wb=e[3];this.Ec=d||e[4];65536<=this.Ec&&720896<=this.Oa&&(this.wb=Math.min(this.Ec>>2,32768));this.cc=c[0];this.mc=c[1];this.df=c[2];this.Pf=c[3];this.uc=c[4]&255;this.xg=c[4]>>8&255;this.Zb=c[5];this.Rh=Ni;if(5==b){this.Rh=Oi;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5),0,0,0,Array(9),0,[this.Oa,this.wb,this.Ec],Array(this.Ec>> +2),771,0,4294967295,0,4294967295,0,4294967295,0,0,0]);this.zd=b[0];this.fe=b[1];this.Od=b[2];this.Zi=b[3];this.Dg=b[4];this.Hh=b[5];this.Fe=b[6];this.Wf=b[7];this.Kh=b[8];this.Lh=b[9];this.Ee=b[10];this.te=b[11];this.mb=b[12];d=b[13];"number"==typeof d&&(d=[this.Oa,this.wb,d]);this.Oa=d[0];this.wb=d[1];d=this.Ec>>2;if((this.Td=b[14])&&this.Td.length>8&255)} +var X=[,,function(a){a+=this.offset;return(this.da.mb=this.oa[a])>>this.da.Li&255},function(a){a+=this.offset;var b=a&-2;return(a&1?this.oa[b]>>8:this.oa[b])&255}];X[16]=function(a){a+=this.offset;a=this.oa[a];for(var b=this.da.Th&this.da.Uh,c=0,d=128;d;)(a&b)==b&&(c|=d),b>>>=1,d>>=1;return c};X[512]=function(a,b){var c=a+this.offset,d;d=this.oa[c]&~this.da.Xa|(b|b<<8|b<<16|b<<24)&this.da.Xa;d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)}; +X[1024]=function(a,b){var c=a+this.offset;b=b>>this.da.Qc|b<<8-this.da.Qc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.da.Id|this.da.ie;d=d&this.da.Xa|this.oa[c]&~this.da.Xa;d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)}; +X[1536]=function(a,b){var c=a+this.offset;b=b>>this.da.Qc|b<<8-this.da.Qc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.da.Id|this.da.ie;d&=this.da.mb;d=d&this.da.Xa|this.oa[c]&~this.da.Xa;d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)}; +X[2560]=function(a,b){var c=a+this.offset;b=b>>this.da.Qc|b<<8-this.da.Qc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.da.Id|this.da.ie;d|=this.da.mb;d=d&this.da.Xa|this.oa[c]&~this.da.Xa;d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)}; +X[3584]=function(a,b){var c=a+this.offset;b=b>>this.da.Qc|b<<8-this.da.Qc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.da.Id|this.da.ie;d^=this.da.mb;d=d&this.da.Xa|this.oa[c]&~this.da.Xa;d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)};X[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.da.Xa&(d==a?16711935:4278255360);c=(b|b<<8|b<<16|b<<24)&c|this.oa[d]&~c;c=c&this.da.ab|this.da.mb&~this.da.ab;this.oa[d]!=c&&(this.oa[d]=c,this.Za=!0)}; +X[4096]=function(a){a+=this.offset;var b=this.oa[a]&~this.da.Xa|this.da.mb&this.da.Xa;this.oa[a]!=b&&(this.oa[a]=b,this.Za=!0)};X[8192]=function(a,b){var c=a+this.offset,d=Ki[b&15],d=d&this.da.Xa|this.oa[c]&~this.da.Xa,d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)};X[24576]=function(a,b){var c=a+this.offset,d=Ki[b&15],d=d&this.da.mb,d=d&this.da.Xa|this.oa[c]&~this.da.Xa,d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)}; +X[40960]=function(a,b){var c=a+this.offset,d=Ki[b&15],d=d|this.da.mb,d=d&this.da.Xa|this.oa[c]&~this.da.Xa,d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)};X[57344]=function(a,b){var c=a+this.offset,d=Ki[b&15],d=d^this.da.mb,d=d&this.da.Xa|this.oa[c]&~this.da.Xa,d=d&this.da.ab|this.da.mb&~this.da.ab;this.oa[c]!=d&&(this.oa[c]=d,this.Za=!0)}; +function Ri(a){var b=[];if(void 0!==a.yg){b[0]=a.cc;b[1]=a.mc;b[2]=a.df;b[3]=a.Pf;b[4]=a.uc|a.xg<<8;b[5]=a.Zb;if(5==a.yg){var c=[];c[0]=a.zd;c[1]=a.fe;c[2]=a.Od;c[3]=a.Zi;c[4]=a.Dg;c[5]=a.Hh;c[6]=a.Fe;c[7]=a.Wf;c[8]=a.Kh;c[9]=a.Lh;c[10]=a.Ee;c[11]=a.te;c[12]=a.mb;c[13]=[a.Oa,a.wb,a.Ec];var d;a:if(d=a.Td){var e=0,f=[];if(void 0!==d[0])for(var l=0;2>l;l++)for(var g=l;g>1;f[e++]=m;g=n}if(f.length>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8),Wa(this.pa,b,c|d<<8);eb(this,!0)}};function Yi(a){a.la.Dg&1?(a.Dc=a.oh,a.Ub=a.la):(a.Dc=a.la,a.Ub=a.ig)}h.save=function(){var a=new H(this);a.set(0,Ri(this.oh));a.set(1,Ri(this.ig));a.set(2,[this.Fd,this.Rc,this.Ed]);a.set(3,Ri(this.la));return a.data()}; +h.restore=function(a){var b=a[2];this.Fd=b[0];this.Rc=b[1];this.Ed=b[2];this.Ca=null;this.Dc=this.oh=new Li(this,1,a[0]);this.Ub=this.ig=new Li(this,3,a[1]);this.la=new Li(this,5,a[3],this.Ec);this.la.cc&&Yi(this);Zi(this);if(!aj(this))return!1;bj(this);return!0}; +h.Qm=function(a,b,c){if(c)this.za("Unable to load font ROM image (error "+c+")");else{try{var d=eval("("+b+")");if(!d.length){t("Empty font ROM image: "+a);return}if(1==d.length){t(d[0]);return}if(8192==d.length)ri(this,d,[0,6144]);else{this.za("Unrecognized font data length ("+d.length+")");return}}catch(e){this.za("Font ROM data error: "+e.message);return}this.Ma()}}; +function cj(a,b){if(1==b)return a.Uc[0]=V[0],a.Uc[1]=V[7],a.Uc;if(2==b){var c=a.Ca.df;if(a.Ca===a.la){var d=a.la.Od[0],c=d&7;d&16&&(c|=8);18!=a.la.Od[1]&&(c|=32)}a.Uc[0]=V[c&15];c=c&32?Ii:Hi;for(d=0;dhb||!$?hb:8,od=Wh.createImageData(n.ac,n.bc),ta=0;256>ta;ta++){for(Sa= +0;Sa=hb-2,fk=rc[Sa>(8<=ub&&176<=ta&&223>=ta?7:ub)?s:nd;fj(od,Xh,Yh,Zh);M&&fj(od,Xh+1,Yh,Zh)}Wh.putImageData(od,(ta&15)*n.ac,(ta>>4)*n.bc)}n.se[A]="#"+p(s[0],2)+p(s[1],2)+p(s[2],2);n.gj[A]=s;n.bh[A]=sc;n=!0}}a.nd[b]=v;return n}function gj(a){0a.$d&&(a.$d=0):a.$d=-1} +function bj(a){if(a.Eb){for(var b=10;15>=b;b++)if(null==a.Ca.Zb[b])return;var c=a.Ca.Zb[10],b=c&31,d=a.Ca.Zb[11]&31,e=a.Ca.Zb[9]&31,f=!1;a.Ca===a.la&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)hj(a);else{c=a.Ca.Zb[15]+((a.Ca.Zb[14]&63)<<8);a.vc!=c&&(hj(a),a.vc=c);d=d-b+1;if(a.el!=b||a.sj!=d)a.el=b,a.sj=d;a.xd=e+1;gj(a)}}} +function hj(a){if(0<=a.vc){if(void 0!==a.Tb){var b=a.Tb[a.vc];if(b&131072){var b=b&-131073,c=a.vc%a.nb,d=Math.floor(a.vc/a.nb);a.Eb&&a.nd[a.Eb]&&(a.ze&&ij(a,c,d,b,a.ze),ij(a,c,d,b));a.Tb[a.vc]=b}}a.vc=-1}} +function jj(a){var b;a=a.Ca;var c=a.te[5];if(null!=c){b=2;var d=512,e=a.te[3]&31;switch(c&3){case 0:if(e){d=1024;switch(e&24){case 8:d=1536;break;case 16:d=2560;break;case 24:d=3584}a.Qc=e&7}break;case 1:d=4096;break;case 2:switch(e&24){default:d=8192;break;case 8:d=24576;break;case 16:d=40960;break;case 24:d=57344}}c&8&&(b=16);c&16&&(b|=1,d|=256);b|=d}return b}h.oe=function(a){var b=this.Ca;null!=a&&b&&a!=b.Qh&&(b.Xg(a),this.pa.Xg(b.Oa,b.wb,b.We))}; +function aj(a,b){var c,d=a.Ed,e=a.Ca;if(e)if(1==e.yg)d=Ci;else if(5==e.yg){var d=null,f=e.Ec>>2,l=32768f&&(d=c?13:14):c&&(d-=2));c=jj(a)}}else e.mc&8&&(e.mc&2?(d=e.mc&16?6:5,e.mc&4||(d-=1)):(d=e.mc&1?3:1,e.mc&4&&(d-= +1)));else a.Ed=null,null==d&&(d=a.Rc);if(!$i(a,d,b))return!1;a.oe(c);return!0} +function $i(a,b,c){if(null!=b&&(b!=a.Ed||c)){a.nl=0;a.Ed=b;b=a.Ca||(b==Ci?a.Dc:a.Ub);if(b!=a.Ca||b.Oa!=a.Oa||b.wb!=a.wb){hj(a);if(a.Oa){if(!Ra(a.pa,a.Oa,a.wb))return!1;a.Ca&&(a.Ca.cc=!1)}a.Ca=b;b.cc=!0;a.Oa=b.Oa;a.wb=b.wb;if(!Pa(a.pa,b.Oa,b.wb,!1,b===a.la?b:null))return!1}a.Eb=0;a.nb=a.Jg;a.ec=a.Yh;a.Sh=T[Ci][2];b=0;var d=T[a.Ed];d&&(a.nb=d[0],a.ec=d[1],a.Sh=d[2],b=d[3]||0,a.Eb=d[4],4==a.Fd&&a.Ca===a.la&&3==a.Eb&&(7==a.la.Zb[9]?a.ec=43:a.Eb=5));a.Kj=a.nb*a.ec;a.Gg=a.Kj/a.Sh;a.ph=(a.Gg<<1)+b;a.qj= +b?a.ph+b>>1:0;13<=a.Ed&&(a.Gg<<=1);a.nd.length&&(a.$c=Math.floor(a.Zc/a.nb),a.ad=Math.floor(a.yd/a.ec),a.Eb?(b=a.nd[a.Eb],d=a.nd[a.Eb<<1],a.Bl&&80==a.nb?d&&a.$c>=3*d.ac>>2&&(a.Eb<<=1,b=d):(d&&a.$c>=d.ac&&(a.Eb<<=1,b=d),b&&(a.$c=b.ac,a.ad=b.bc)),a.gf=a.hf=0,b&&(a.gf=a.nb*b.ac,a.hf=a.ec*b.bc)):(a.$c=a.ad=1,a.gf=a.nb,a.hf=a.ec),a.Ag=a.Fc.createImageData(a.gf,a.hf),a.ye=window.document.createElement("canvas"),a.ye.width=a.gf,a.ye.height=a.hf,a.ze=a.ye.getContext("2d"),a.bj=a.cj=0,a.sh=a.Zc,a.th=a.yd, +b=a.Zc-a.nb*a.$c,d=a.yd-a.ec*a.ad,0>1,a.sh-=b),0>1,a.th-=d),b||d)&&(a.Fc.fillStyle=a.sb.style.backgroundColor,a.Fc.fillRect(0,0,a.Zc,a.yd));!1!==c?eb(a,!0):kj(a,!0)}return!0}function fj(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b+0]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function kj(a,b){var c;if(b){if(c=a.Gg,void 0===a.Tb||a.Tb.length!=c)a.Tb=Array(c)}else{if(void 0===a.Tb)return;c=a.Tb.length}for(var d=0;d>8;d=l&15;var g=a.nd[a.Eb];g.Te&&(d=g.Te[d]);var m=l>>4&15;g.Te&&(m=g.Te[m]);e?(b*=g.ac,c*=g.bc,e.fillStyle=g.se[m],e.fillRect(b,c,g.ac,g.bc)):(b=b*a.$c+a.bj,c=c*a.ad+a.cj,a.Fc.fillStyle=g.se[m],a.Fc.fillRect(b,c,a.$c,a.ad));l&256&&(m=(f&15)*g.ac,f=(f>>4)*g.bc,e?e.drawImage(g.bh[d],m,f,g.ac,g.bc,b,c,g.ac,g.bc):a.Fc.drawImage(g.bh[d],m,f,g.ac,g.bc,b,c,a.$c,a.ad));l&512&&(f=a.el,l=a.sj,e?(a.xd&&a.xd!==g.bc&&(f=Math.floor(f*g.bc/a.xd),l=Math.floor(l*g.bc/a.xd)), +e.fillStyle=g.se[d],e.fillRect(b,c+f,g.ac,l)):(a.xd&&a.xd!==a.ad&&(f=Math.floor(f*a.ad/a.xd),l=Math.floor(l*a.ad/a.xd)),a.Fc.fillStyle=g.se[d],a.Fc.fillRect(b,c+f,a.$c,l)))} +function eb(a,b){if(a.ma.Cb){var c=!1;a.Ca&&(a.Ca===a.la?a.la.fe&32&&(c=!0):a.Ca.mc&8&&(c=!0));if(c||b){if(b)kj(a,!0);else if(void 0===a.Tb)return;var d=!1;!(b||++a.nl&15)&&0<=a.$d&&(a.$d++,d=!0);var e=0,f=a.Kj,c=a.Ca.Oa,l=c+a.Ca.wb,g=(a.Ca.Zb[12]<<8)+a.Ca.Zb[13];a.Eb&&(g<<=1);var c=c+g,m=a.ph;c+m>l&&(m=l-c,0>m&&(m=0));l=c+m;if(g=!b){for(var g=a.pa,n=!0,q=c>>g.Mb;0a.vc)return;e=a.vc;f= +e+1}}if(a.Eb){if(a.nd[a.Eb]){d=0;g=a.Zd=0;m=1048575;a.Ca.mc&32&&(g=32768,m&=~g,a.$d&2||(m&=-65537));for(c+=e<<1;c>8|(v&255)<<8;s=g;var hb=16;q>=m))>>(hb-=m);fj(a.Ag,q++,A,n[nd])}q>U&&(U=q);A<$&&($=A);A>=aa&&(aa=A+1)}e+=2;l++;if(q>=a.nb){q=0;A+=2;if(A>a.ec)break;A==a.ec&&(A=1,e=c+a.qj)}}M$;$++)aa= +U&2155905152,0>aa&&(aa+=4294967296),aa=W[aa]||0,fj(a.Ag,g++,m,l[aa]),U<<=1;g>q&&(q=g);m=M&&(M=m+1)}e++;if(g>=a.nb&&(g=0,++m>a.ec))break}n>2),a=this.la.Zi&-17|(this.$f&1<e&&(e=0);e%b.Vh>b.Lm&&(c|=1);e%=b.Nj;e>b.Nm&&(c|=8);b.bi=d-e;b===a.la?(c|=b.Pf&48^48,b.zd=!1):c=(b.Pf^=9)|240;return b.Pf=c} +var Si={948:S.prototype.om,949:S.prototype.nm,952:S.prototype.pm,954:S.prototype.qm,980:S.prototype.Xl,981:S.prototype.Wl,984:S.prototype.Yl,985:S.prototype.Vl,986:S.prototype.Zl},Ti={948:S.prototype.xn,949:S.prototype.wn,952:S.prototype.yn,980:S.prototype.hn,981:S.prototype.gn,984:S.prototype.jn,985:S.prototype.fn},Ui={960:S.prototype.Gj,961:S.prototype.Gj,962:S.prototype.Am,964:S.prototype.zm,965:S.prototype.ym,970:S.prototype.hm,972:S.prototype.gm,974:S.prototype.fm,975:S.prototype.em},Vi={954:S.prototype.Qk, +960:S.prototype.Pk,961:S.prototype.Pk,962:S.prototype.An,964:S.prototype.Hn,965:S.prototype.Gn,970:S.prototype.sn,972:S.prototype.rn,974:S.prototype.qn,975:S.prototype.pn,986:S.prototype.Qk}; u(function(){for(var a=C(window.document,"pcjs","video"),b=0;bMissing <canvas> support; try a new web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor; e.style.height=c.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight));c.appendChild(e);var f=e.getContext("2d"),d=new S(d,e,f);B(d,c)}}); -function Y(a){this.zj=a.adapter;switch(this.zj){case 1:this.Oi=1016;this.xf=4;break;case 2:this.Oi=760;this.xf=3;break;default:t("Unrecognized serial adapter #"+this.zj);return}this.sd=null;w.call(this,"SerialPort",a,Y);var b=a.binding,c;a=oj;b&&(void 0===c&&(c="Panel"),(c=Ga(c,this.id))&&(b=c.pa[b])&&this.tb(null,null,a,b))}y(w,Y);var oj="buffer";h=Y.prototype;h.gj=function(a,b){return a==this.Kh?(this.Dj=b,this):null}; -h.tb=function(a,b,c,d){var e=this;switch(c){case oj:return this.pa[c]=this.sd=d,d.onkeydown=function(a){a=a||window.event;var b=a.charCode||a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),pj(e,[b]))},d.onkeypress=function(a){a=a||window.event;pj(e,[a.which||a.keyCode])},!0}return!1};h.jc=function(a,b,c,d){this.na=b;this.ja=c;this.Na=d;this.ha=D(a,"ChipSet");Ya(b,this,qj,this.Oi);$a(b,this,rj,this.Oi);this.Ka()}; -h.Ob=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.Nb=function(a){return a&&this.save?this.save():!0};h.reset=function(){this.yd()};h.save=function(){var a=new H(this),b=0,c=[];c[b++]=this.ih;c[b++]=this.kj;c[b++]=this.ne;c[b++]=this.Zf;c[b++]=this.nd;c[b++]=this.Sd;c[b++]=this.Jc;c[b++]=this.mc;c[b++]=this.ij;c[b]=this.Qe;a.set(0,c);return a.data()};h.restore=function(a){return this.yd(a[0])}; -h.yd=function(a){var b=0;void 0===a&&(a=[0,0,384,0,1,0,0,96,48,[]]);this.ih=a[b++];this.kj=a[b++];this.ne=a[b++];this.Zf=a[b++];this.nd=a[b++];this.Sd=a[b++];this.Jc=a[b++];this.mc=a[b++];this.ij=a[b++];this.Qe=a[b];return!0};function pj(a,b){a.Qe=a.Qe.concat(b);sj(a)}function sj(a){0>8:this.Zf};h.em=function(){return this.nd};h.fm=function(){return this.Sd};h.hm=function(){return this.Jc};h.gm=function(){return this.mc};h.nm=function(){return this.ij}; -h.En=function(a,b){if(this.Sd&128)this.ne=this.ne&-256|b;else{this.kj=b;this.mc&=-97;var c;this.sd?(13!=b&&(8==b?this.sd.value=this.sd.value.slice(0,-1):(this.sd.value+=String.fromCharCode(b),this.sd.scrollTop=this.sd.scrollHeight)),c=!0):c=!1;c&&(this.mc|=96)}};h.pn=function(a,b){this.Sd&128?this.ne=this.ne&255|b<<8:this.Zf=b};h.qn=function(a,b){this.Sd=b}; -h.rn=function(a,b){var c=this.Jc;this.Jc=b;if(this.Dj&&(c^b)&3){var c=this.Dj,d=this.Jc,e=3==(d&3);if(e){if(!c.bc){var f=!1;c.Jc&2||(c.reset(),f=!0);c.Jc&1||(f=!0);f&&pj(c.bf,[77]);tj(c,c.qb);c.bc=e}}else c.bc&&(uj(c.qb),c.bc=e);c.Jc=d}};var qj={0:Y.prototype.sm,1:Y.prototype.dm,2:Y.prototype.em,3:Y.prototype.fm,4:Y.prototype.hm,5:Y.prototype.gm,6:Y.prototype.nm},rj={0:Y.prototype.En,1:Y.prototype.pn,3:Y.prototype.qn,4:Y.prototype.rn}; -u(function(){for(var a=C(window.document,"pcjs","serial"),b=0;ba.Of||0>a.Pf)a.Of=b.clientX,a.Pf=b.clientY;a.Ke=b.clientX-a.Of;a.Le=b.clientY-a.Pf;(a.Ke||a.Le)&&wj(a);a.Of=b.clientX;a.Pf=b.clientY}},!1),b.addEventListener("mousedown",function(b){xj(a,b.button,!0)},!1),b.addEventListener("mouseup",function(b){xj(a,b.button,!1)},!1),a.xh=!0),b.style.cursor="none")}function uj(a){a&&(a.style.cursor="auto")} -function xj(a,b,c){if(a.bc&&a.ja&&a.ja.rc)switch(b){case 0:a.lg!=c&&(a.lg=c,wj(a));break;case 2:a.mg!=c&&(a.mg=c,wj(a))}}function wj(a){pj(a.bf,[64|(a.lg?32:0)|(a.mg?16:0)|(a.Le&192)>>4|(a.Ke&192)>>6,a.Ke&63,a.Le&63]);a.Ke=a.Le=0}u(function(){for(var a=C(window.document,"pcjs","mouse"),b=0;bb.indexOf("/api/v1/dump")&&(a=da(b),"json"==a?e=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(a="action=open&volume="+b+("&mode="+this.mode),a+="&chs="+this.Cb+":"+this.Eb+":"+this.Mb+":"+this.rb,a+="&machine="+this.ca.ze(),a+="&user="+this.ca.xd(),e=ka()+"/api/v1/disk?"+a,this.qg=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)? -(c="disk",d="&mbhd=0"):-1!==b.indexOf("/",b.length-1)&&(c="dir"),e=ka()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.xe?"":d)+"&format=json")),r(e,!0,null,this,this.pl,b))}; -h.pl=function(a,b,c,d){var e=null;this.ye=!1;var f=0>c&&this.Ga&&!this.Ga.Ab;if(this.qg)c?this.ca.ya('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.Zc=!0,e=this);else if(c)this.ca.ya('Unable to load disk "'+this.fd+'" (error '+c+")",f);else try{if(0l&&0b.indexOf("0x")&& +function Y(a){this.Dj=a.adapter;switch(this.Dj){case 1:this.Ri=1016;this.zf=4;break;case 2:this.Ri=760;this.zf=3;break;default:t("Unrecognized serial adapter #"+this.Dj);return}this.vd=null;w.call(this,"SerialPort",a,Y);var b=a.binding,c;a=oj;b&&(void 0===c&&(c="Panel"),(c=Ga(c,this.id))&&(b=c.ra[b])&&this.vb(null,null,a,b))}y(w,Y);var oj="buffer";h=Y.prototype;h.jj=function(a,b){return a==this.Nh?(this.Hj=b,this):null}; +h.vb=function(a,b,c,d){var e=this;switch(c){case oj:return this.ra[c]=this.vd=d,d.onkeydown=function(a){a=a||window.event;var b=a.charCode||a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),pj(e,[b]))},d.onkeypress=function(a){a=a||window.event;pj(e,[a.which||a.keyCode])},!0}return!1};h.lc=function(a,b,c,d){this.pa=b;this.ka=c;this.Pa=d;this.ia=D(a,"ChipSet");Ya(b,this,qj,this.Ri);$a(b,this,rj,this.Ri);this.Ma()}; +h.Pb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.Ob=function(a){return a&&this.save?this.save():!0};h.reset=function(){this.Bd()};h.save=function(){var a=new H(this),b=0,c=[];c[b++]=this.lh;c[b++]=this.nj;c[b++]=this.re;c[b++]=this.ag;c[b++]=this.qd;c[b++]=this.Wd;c[b++]=this.Lc;c[b++]=this.nc;c[b++]=this.lj;c[b]=this.Ue;a.set(0,c);return a.data()};h.restore=function(a){return this.Bd(a[0])}; +h.Bd=function(a){var b=0;void 0===a&&(a=[0,0,384,0,1,0,0,96,48,[]]);this.lh=a[b++];this.nj=a[b++];this.re=a[b++];this.ag=a[b++];this.qd=a[b++];this.Wd=a[b++];this.Lc=a[b++];this.nc=a[b++];this.lj=a[b++];this.Ue=a[b];return!0};function pj(a,b){a.Ue=a.Ue.concat(b);sj(a)}function sj(a){0>8:this.ag};h.jm=function(){return this.qd};h.km=function(){return this.Wd};h.mm=function(){return this.Lc};h.lm=function(){return this.nc};h.sm=function(){return this.lj}; +h.In=function(a,b){if(this.Wd&128)this.re=this.re&-256|b;else{this.nj=b;this.nc&=-97;var c;this.vd?(13!=b&&(8==b?this.vd.value=this.vd.value.slice(0,-1):(this.vd.value+=String.fromCharCode(b),this.vd.scrollTop=this.vd.scrollHeight)),c=!0):c=!1;c&&(this.nc|=96)}};h.tn=function(a,b){this.Wd&128?this.re=this.re&255|b<<8:this.ag=b};h.un=function(a,b){this.Wd=b}; +h.vn=function(a,b){var c=this.Lc;this.Lc=b;if(this.Hj&&(c^b)&3){var c=this.Hj,d=this.Lc,e=3==(d&3);if(e){if(!c.cc){var f=!1;c.Lc&2||(c.reset(),f=!0);c.Lc&1||(f=!0);f&&pj(c.ef,[77]);tj(c,c.sb);c.cc=e}}else c.cc&&(uj(c.sb),c.cc=e);c.Lc=d}};var qj={0:Y.prototype.xm,1:Y.prototype.im,2:Y.prototype.jm,3:Y.prototype.km,4:Y.prototype.mm,5:Y.prototype.lm,6:Y.prototype.sm},rj={0:Y.prototype.In,1:Y.prototype.tn,3:Y.prototype.un,4:Y.prototype.vn}; +u(function(){for(var a=C(window.document,"pcjs","serial"),b=0;ba.Qf||0>a.Rf)a.Qf=b.clientX,a.Rf=b.clientY;a.Oe=b.clientX-a.Qf;a.Pe=b.clientY-a.Rf;(a.Oe||a.Pe)&&wj(a);a.Qf=b.clientX;a.Rf=b.clientY}},!1),b.addEventListener("mousedown",function(b){xj(a,b.button,!0)},!1),b.addEventListener("mouseup",function(b){xj(a,b.button,!1)},!1),a.Ah=!0),b.style.cursor="none")}function uj(a){a&&(a.style.cursor="auto")} +function xj(a,b,c){if(a.cc&&a.ka&&a.ka.ma.tc)switch(b){case 0:a.ng!=c&&(a.ng=c,wj(a));break;case 2:a.og!=c&&(a.og=c,wj(a))}}function wj(a){pj(a.ef,[64|(a.ng?32:0)|(a.og?16:0)|(a.Pe&192)>>4|(a.Oe&192)>>6,a.Oe&63,a.Pe&63]);a.Oe=a.Pe=0}u(function(){for(var a=C(window.document,"pcjs","mouse"),b=0;bb.indexOf("/api/v1/dump")&&(a=da(b),"json"==a?e=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(a="action=open&volume="+b+("&mode="+this.mode),a+="&chs="+this.Db+":"+this.Fb+":"+this.Nb+":"+this.tb,a+="&machine="+this.da.De(),a+="&user="+this.da.Ad(),e=ka()+"/api/v1/disk?"+a,this.sg=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)? +(c="disk",d="&mbhd=0"):-1!==b.indexOf("/",b.length-1)&&(c="dir"),e=ka()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.Be?"":d)+"&format=json")),r(e,!0,null,this,this.tl,b))}; +h.tl=function(a,b,c,d){var e=null;this.Ce=!1;var f=0>c&&this.Ia&&!this.Ia.ma.Cb;if(this.sg)c?this.da.za('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.bd=!0,e=this);else if(c)this.da.za('Unable to load disk "'+this.jd+'" (error '+c+")",f);else try{if(0l&&0b.indexOf("0x")&& '["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(g.length)if(1==g.length)t(g[0]);else{for(b=a=0;b>2,q=m.pattern;void 0===q&&(q=m.pattern=0);var v=m.data;if(void 0===v){var s=m.bytes;if(void 0!==s&&s.length){for(var f=n<<2,A=s.length;Ab&&(b=0);2E3b&&(b=0);2E3>2,e=Array(d),f=0;f>2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=l>>16&255;c[d++]=l>>24&255}return c}function Gj(a,b){var c=-1;if(b>2,c=(d>((b&3)<<3)&255;return c} -h.write=function(a,b,c){if(this.ye)return!1;if(b>2;b=(b&3)<<3;for(var l=d.length;l<=f;l++)d[l]=e;a.oc?f=a.Gc+a.oc&&(a.oc+=f-(a.Gc+a.oc)+1):(a.Gc=f,a.oc=1);d[f]=d[f]&~(255<=this.gb.length||m>=this.gb[g].length||n>=this.gb[g][m].length){c="sector "+g+":"+m+":"+n+" out of range ("+b+" changes applied)";b=-1;break}if(this.ye){c="unable to modify write-protected disk";b=-1;break}e= -l[f++];f=l[f++];l=e+f.length;if(g=this.gb[g][m][n]){for(m=g.data.length;mb&&this.ca.ya("unable to restore disk '"+this.fd+": "+c);return b}; -function Hj(a){w.call(this,"FDC",a,Hj);this.dmaRead=this.rh;this.dmaWrite=this.sh;this.dmaFormat=this.ml;this.ge=null;if(a.autoMount&&(this.ge=a.autoMount,"string"==typeof this.ge))try{this.ge=eval("("+a.autoMount+")")}catch(b){t("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.ge=null}this.fc=[]}y(w,Hj);k={};ba={}; -var Ij={3:{Tc:3,rd:0,name:ba.qo},4:{Tc:2,rd:1,name:ba.oo},5:{Tc:9,rd:7,name:ba.yo},6:{Tc:9,rd:7,name:ba.jo},7:{Tc:2,rd:0,name:ba.lo},8:{Tc:1,rd:2,name:ba.po},10:{Tc:2,rd:7,name:ba.ko},13:{Tc:6,rd:7,name:ba.co},15:{Tc:3,rd:0,name:ba.no}};h=Hj.prototype; -h.tb=function(a,b,c,d){switch(c){case "listDisks":return this.pa[c]=d,a=window.document.createElement("option"),a.value="?",a.innerHTML="User-defined URL...",d.appendChild(a),d.onchange=function(a,b){return function(){var c=a.pa.descDisk;if(c){var d=b.options[b.selectedIndex];if(d){var m={};if(d=d.getAttribute("data-value"))try{m=eval("({"+d+"})")}catch(n){t("FDC option error: "+(n.message||n))}d=m.desc;void 0===d&&(d="");m=m.href;void 0!==m&&(d=''+d+"");c.innerHTML= -d}}}}(this,d),!0;case "descDisk":case "listDrives":return this.pa[c]=d,d.onchange=function(a,b){return function(){var c=parseInt(b.value,10);isNaN(c)||Jj(a,c)}}(this,d),!0;case "loadDrive":return this.pa[c]=d,d.onclick=function(a){return function(){var b,c=a.pa.listDisks,d=a.pa.listDrives;if(c&&d&&!isNaN(b=parseInt(d.value,10))&&0<=b&&ba.qa.restore(f)&&(e=!1);e&&a.qa&&void 0!==a.Ua&&(a.Ja=a.qa.seek(a.bb,a.Ia,a.Ra));return e};h.Ui=function(){for(var a=0,b=[],c=0;ca.Cb||e[1]>a.Eb)&&(this.ya('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Sa)),b=null);b&&(a.qa=b,a.Tk=c,a.ie=d,Qj(this,c,d,b),this.Hd|=128,this.ya('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Sa),a.ae),a.Ig=e[0],a.vf=e[1],a.wf=e[2]);a.ae&&(a.ae=!1,--this.Ud||this.Ka());Jj(this,a.Sa)}; -function Jj(a,b){if(0<=b&&b=this.Wa&&(this.ta&=-81,this.ib=this.Wa=0);return a}; -h.jn=function(a,b){this.Wa=Ij[c].Tc){var d=!1;this.ib=0;var c=this.Ha(),e,f,l,g,m,n=c&31;switch(n){case 3:this.Ha(k.ro);this.Ha(k.fo);this.zb();break;case 4:f=this.Ha(k.Me);this.Sa=f&3;e=this.ua[this.Sa];this.zb();this.Pb((e.Pa&4278190080)>>>24,k.uo);break;case 5:case 6:f=this.Ha(k.Me);d=f>>2&1;this.Sa=f&3;e=this.ua[this.Sa];e.Ia=d;f=e.bb=this.Ha(k.bl);l=this.Ha(k.dl);g=e.Ra=this.Ha(k.fl);m=this.Ha(k.aj);e.$a=128<< -m;e.pd=this.Ha(k.bo);this.Ha(k.cl);this.Ha(k.ao);6==n?this.th(e):this.uh(e);Rj(this,e,c,d,f,l,g,m);d=!0;break;case 7:f=this.Ha(k.Me);this.Sa=f&3;e=this.ua[this.Sa];e.bb=e.md=0;e.Pa=268435488;this.zb();d=!0;break;case 8:e=this.ua[this.Sa];e.Ia=0;this.zb();this.Pb(e.Sa|e.Ia<<2|e.Pa&255,k.gl);this.Pb(e.bb,k.io);this.Sa=this.Sa+1&3;break;case 10:f=this.Ha(k.Me);d=f>>2&1;this.Sa=f&3;e=this.ua[this.Sa];f=e.bb;l=e.Ia=d;g=e.Ra=1;m=0;e.Pa=0;e.qa&&(e.Ja=e.qa.seek(e.bb,e.Ia,e.Ra))?m=e.Ja.length:e.Pa=1088;Rj(this, -e,c,d,f,l,g,m);d=!0;break;case 13:f=this.Ha(k.Me);d=f>>2&1;this.Sa=f&3;e=this.ua[this.Sa];f=e.bb;l=e.Ia=d;g=1;m=this.Ha(k.aj);e.$a=128<>2&1,f=this.Ha(k.ho),e.bb+=f-e.md,0>e.bb&&(e.bb=0),e.bb>=e.Cb&&(e.bb=e.Cb-1),e.md=f,e.Pa=32,0==e.bb&&(e.Pa|=268435456),this.zb(),d=!0}0>>8,k.so);a.Pb((b.Pa&16711680)>>>16,k.to);var m=0;if(e!=b.bb||f!=b.Ia)m=l=1;c&128&&(f^=m,d||(m=0));a.Pb(e+m,k.bl);a.Pb(f,k.dl);a.Pb(l,k.fl);a.Pb(g,k.aj)}h.Ha=function(){var a=this.Qb[this.ib];this.ib++;return a};h.zb=function(){this.ib=this.Wa=0};h.Pb=function(a){this.Qb[this.Wa++]=a}; -h.rh=function(a,b,c){void 0===b||0>b?this.uc(a,c):c(-1,!1)};h.sh=function(a,b){return void 0!==b&&0<=b?this.xc(a,b):-1};h.ml=function(a,b){return void 0!==b&&0<=b?this.Yi(a,b):-1};h.th=function(a){a.Pa=72;a.qa&&(a.Ja=null,a.Pa=0,this.ha&&(Qh(this.ha,2,this,"dmaRead",a),Mh(this.ha,2)))};h.uh=function(a){a.Pa=72;a.qa&&(a.qa.ye?a.Pa=576:(a.Ja=null,a.Pa=0,this.ha&&(Qh(this.ha,2,this,"dmaWrite",a),Mh(this.ha,2))))}; -h.qj=function(a){a.Pa=72;a.qa&&(a.Ja=null,a.Pa=0,this.ha&&(a.Xd=0,a.gc=Array(4),a.Ve=!0,a.$e=0,Qh(this.ha,2,this,"dmaFormat",a),Mh(this.ha,2),a.Ve=!1))};h.uc=function(a,b){var c=-1;if(!a.Pa&&a.qa){do{if(a.Ja&&0<=(c=Gj(a.Ja,a.Ua++)))break;a.Ja=a.qa.seek(a.bb,a.Ia,a.Ra);if(!a.Ja){a.Pa=1088;break}a.Ua=0;this.Se(a)}while(1)}b(c,!1)}; -h.xc=function(a,b){if(a.Pa||!a.qa)return-1;do{if(a.Ja&&a.qa.write(a.Ja,a.Ua++,b))break;a.Ja=a.qa.seek(a.bb,a.Ia,a.Ra);if(!a.Ja){a.Pa=8256;b=-1;break}a.Ua=0;this.Se(a)}while(1);return b};h.Se=function(a){a.Ra++;a.Ra>=a.wf+1&&(a.Ra=1,a.Ia++,a.Ia>=a.vf&&(a.Ia=0,a.bb++))};h.Yi=function(a,b){if(a.Pa)return-1;a.gc[a.Xd++]=b;if(a.Xd==a.gc.length){a.bb=a.gc[0];a.Ia=a.gc[1];a.Ra=a.gc[2];a.$a=128<this.xc(a,a.hj))return-1;a.$e++}a.$e>=a.pd&&(b=-1);return b}; -var Mj={1012:Hj.prototype.Zl,1013:Hj.prototype.Xl,1015:Hj.prototype.Yl},Nj={1010:Hj.prototype.kn,1013:Hj.prototype.jn,1015:Hj.prototype.hn};u(function(){for(var a=C(window.document,"pcjs","fdc"),b=0;b=e&&(this.Gf|=(f.type&3)<<(1-e<<1))}return d}; -h.Si=function(){var a=0,b=[];this.$d?(b[a++]=this.ed,b[a++]=this.Sk,b[a++]=this.Id,b[a++]=this.Sg,b[a++]=this.Qg,b[a++]=this.Pg,b[a++]=this.Ge,b[a++]=this.ta,b[a++]=this.Qi,b[a++]=this.Rg):(b[a++]=this.Gf,b[a++]=this.ta,b[a++]=this.Qb,b[a++]=this.ib,b[a++]=this.Wa,b[a++]=this.Rk,b[a++]=this.Qk,b[a++]=this.Pk,b[a++]=this.jf);b[a]=this.Ui();return b}; -h.Lh=function(a,b,c,d,e){var f=0,l=!0;void 0===d&&(d=[0,0,!1,Array(8)]);b.Sa=a;b.errorCode=d[f++];b.Xk=d[f++];b.xe=d[f++];b.qe=d[f++];b.re=d[f++];b.Ia=d[f++];b.Eb=d[f++];b.Kd=d[f++];b.Ra=d[f++];b.pd=d[f++];b.$a=d[f++];b.eg=this.$d?0:1;b.name=c.name;void 0===b.name&&(b.name="Hard Drive");b.path=c.path;b.mode=c.mode||(b.path?"preload":"local");"demandro"!=b.mode&&"demandrw"!=b.mode||this.xd()||(b.mode="local");b.type=c.type;if(void 0===b.type||void 0===Sj[this.kf][b.type])b.type=this.Cl;c=Sj[this.kf][b.type]; -b.Mb=c[2]||17;b.rb=c[3]||512;if(e&&this.ha&&(e=this.ha,c=b.type,e.la)){var g=e.la[18],g=a?g&240|c:g&15|c<<4;e.la&&(e.la[18]=g,Ah(e))}void 0===b.qa&&(b.qa=null,this.ya("Type "+b.type+' "'+b.name+'" is fixed disk '+a,!0));Xj(this,b);b.Ua=d[f++];b.Ja=null;b.qa&&(a=d[f],void 0!==a&&0>b.qa.restore(a)&&(l=!1),l&&void 0!==b.Ua&&(b.Ja=b.qa.seek(b.Kd,b.Ia,b.Ra+b.eg)));return l};h.Ui=function(){for(var a=0,b=[],c=0;c=this.Wa&&(this.ib=this.Wa=0,this.ta&=-15);return a};h.Gn=function(a,b){this.Wa=c&&(this.ta|=2,this.ta&=-2,Yj(this))}; -h.zm=function(){var a=this.ta;this.ib=this.Oa.rb){var b=this;this.uc(this.Oa,function(a){0<=a?Zj(b):(b.ta=1,b.ed=16)},!1)}else this.ta=80;return a}; -h.Wm=function(a,b){this.Oa&&this.Oa.$a>=this.Oa.rb&&(0>this.xc(this.Oa,b)?(this.ta=1,this.ed=16):this.Oa.Ua==this.Oa.rb&&(this.Oa.$a-=this.Oa.rb,this.Id=this.Id-1&255,Zj(this),this.Oa.$a>=this.Oa.rb||(this.ta=80)))};h.Ml=function(){return this.ed};h.an=function(a,b){this.Sk=b};h.Nl=function(){return this.Id};h.Zm=function(a,b){this.Id=b};h.Ol=function(){return this.Sg};h.$m=function(a,b){this.Sg=b};h.Jl=function(){return this.Qg};h.Vm=function(a,b){this.Qg=b};h.Il=function(){return this.Pg}; -h.Um=function(a,b){this.Pg=b};h.Ll=function(){return this.Ge};h.Xm=function(a,b){this.Ge=b;this.ta=this.ua[this.Ge&16?1:0]?this.ta|64:this.ta&-65};h.Pl=function(){return this.ta};h.Tm=function(a,b){this.Qi=b;this.ha&&ai(this.ha,14);ak(this)};h.Ym=function(a,b){this.Rg&4&&!(b&4)&&(this.ed=1);this.Rg=b}; -function ak(a){var b=!1,c=a.Qi,d=a.Ge&16?1:0,e=a.Ge&15,f=a.Qg|(a.Pg&3)<<8,l=a.Sg,g=a.Id||256;a.Oa=null;a.ed=0;a.ta=80;(d=a.ua[d])?(d.Kd=f,d.Ia=e,d.Ra=l,d.$a=g*d.rb,c=144<=c?c:c&240,d.Ja=null,d.errorCode=0,a.Oa=d):c=-1;switch(c&240){case 32:a.uc(d,function(b){0<=b&&a.ha?(Zj(a),a.ta=136):(a.ta=1,a.ed=16)},!1);break;case 48:a.ha?(Zj(a),a.ta=136):(a.ta=1,a.ed=4);break;case 16:b=!0;break;case 64:b=!0;break;case 144:a.ed=1;b=!0;break;case 145:d.Eb=e+1,d.Mb=g,b=!0}b&&Zj(a)} -function Zj(a){!a.ha||a.Rg&2||$h(a.ha,14)} -function Yj(a){a.ib=0;var b=a.Ha(),c=a.Ha(),d=c&32,e=d>>5,f=c&31,l=a.Ha(),g=a.Ha(),m=l<<2&768|g,n=l&63,q=a.Ha(),v=a.Ha(),s=a.ua[e];s&&(s.Kd=m,s.Ia=f,s.Ra=n,s.$a=q*s.rb);switch(b){case 3:a.zb(s?s.errorCode:4);a.Pb(c);a.Pb(l);a.Pb(g);a.Pb(0|d);b=-1;break;case 12:for(c=0;0<=(b=a.Ha());)s&&cb?this.uc(a,c):c(-1,!1)}; -h.sh=function(a,b){return void 0!==b&&0<=b?this.xc(a,b):-1};h.nl=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Ua=a.Mb+b&&(a.Ra=b,a.Ia++,a.Ia>=a.Eb&&(a.Ia=0,a.Kd++))}; -h.Yi=function(a,b){if(a.errorCode)return-1;a.gc[a.Xd++]=b;if(a.Xd==a.gc.length){a.Kd=a.gc[0];a.Ia=a.gc[1];a.Ra=a.gc[2];a.$a=128<this.xc(a,a.hj))return-1;a.$e++}a.$e>=a.pd&&(b=-1);return b}; -var Uj={800:Z.prototype.ym,801:Z.prototype.zm,802:Z.prototype.xm},Tj={496:Z.prototype.Kl,497:Z.prototype.Ml,498:Z.prototype.Nl,499:Z.prototype.Ol,500:Z.prototype.Jl,501:Z.prototype.Il,502:Z.prototype.Ll,503:Z.prototype.Pl},Wj={800:Z.prototype.Gn,801:Z.prototype.Jn,802:Z.prototype.In,803:Z.prototype.Hn,807:Z.prototype.Li,811:Z.prototype.Li,815:Z.prototype.Li},Vj={496:Z.prototype.Wm,497:Z.prototype.an,498:Z.prototype.Zm,499:Z.prototype.$m,500:Z.prototype.Vm,501:Z.prototype.Um,502:Z.prototype.Xm,503:Z.prototype.Tm, -1014:Z.prototype.Ym};u(function(){for(var a=C(window.document,"pcjs","hdc"),b=0;bik){if(d.load(this.Kf)){this.le=new H(this,"1.15.8","failsafe");this.le.load()&&(mk(this,d),a=2,dk(this.le));this.le.set("timestamp",ha());gk(this.le);var e=this.vc&&!this.tg;if(1==a||la("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),l=d.get("data");f&&("ok"==f?d.load(l):("error"== -f&&"no machine state"!=l?(this.ya("Error: "+l),"unable to verify user"==l&&(oa("user",""),this.wc=null)):this.ec(f+": "+l),dk(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&lk(this,c?d:null)}else 2==a&&d.clear()}else lk(this);delete this.Kf;delete this.Xg}e=Ea(this.id);for(f=0;fa[1];a=a[2];this.Ab=!0;this.tj||(this.ec("PCjs v1.15.8\nCopyright \u00a9 2012-2014 Jeff Parsons \nLicense: GPL version 3 or later "),this.tj=!0);this.ja&&nk(this,this.ja,b,c,a);this.vj&&(mk(this,b),b.clear());!c&&this.le&&(this.le.clear(),delete this.le)}; -function mk(a,b){if(la("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.xd(),d=b.toString(),e={app:"PCjs",ver:"1.15.8"};e.url=a.url;e.user=c;e.type="bug";e.data=d;r("http://www.pcjs.org/api/v1/report",!0,e)}} -function ok(a,b,c){var d,e="none",f=new H(a,"1.15.8"),l=new H(a,"1.15.8","validate"),g=ha();l.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.8");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.ja&&a.ja.Nb&&(c&&jb(a.ja),d=a.ja.Nb(b,c),"object"===typeof d&&f.set(a.ja.id,d),c&&(a.ja.Ab=!1,!1===d&&(e=null)));for(var g=Ea(a.id),m=0;m>2;b=(b&3)<<3;for(var l=d.length;l<=f;l++)d[l]=e;a.pc?f=a.Ic+a.pc&&(a.pc+=f-(a.Ic+a.pc)+1):(a.Ic=f,a.pc=1);d[f]=d[f]&~(255<=this.ib.length||m>=this.ib[g].length||n>=this.ib[g][m].length){c="sector "+g+":"+m+":"+n+" out of range ("+b+" changes applied)";b=-1;break}if(this.Ce){c="unable to modify write-protected disk";b=-1;break}e= +l[f++];f=l[f++];l=e+f.length;if(g=this.ib[g][m][n]){for(m=g.data.length;mb&&this.da.za("unable to restore disk '"+this.jd+": "+c);return b}; +function Hj(a){w.call(this,"FDC",a,Hj);this.dmaRead=this.uh;this.dmaWrite=this.vh;this.dmaFormat=this.ql;this.ke=null;if(a.autoMount&&(this.ke=a.autoMount,"string"==typeof this.ke))try{this.ke=eval("("+a.autoMount+")")}catch(b){t("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.ke=null}this.gc=[]}y(w,Hj);k={};ba={}; +var Ij={3:{Xc:3,ud:0,name:ba.uo},4:{Xc:2,ud:1,name:ba.so},5:{Xc:9,ud:7,name:ba.Co},6:{Xc:9,ud:7,name:ba.no},7:{Xc:2,ud:0,name:ba.po},8:{Xc:1,ud:2,name:ba.to},10:{Xc:2,ud:7,name:ba.oo},13:{Xc:6,ud:7,name:ba.io},15:{Xc:3,ud:0,name:ba.ro}};h=Hj.prototype; +h.vb=function(a,b,c,d){switch(c){case "listDisks":return this.ra[c]=d,a=window.document.createElement("option"),a.value="?",a.innerHTML="User-defined URL...",d.appendChild(a),d.onchange=function(a,b){return function(){var c=a.ra.descDisk;if(c){var d=b.options[b.selectedIndex];if(d){var m={};if(d=d.getAttribute("data-value"))try{m=eval("({"+d+"})")}catch(n){t("FDC option error: "+(n.message||n))}d=m.desc;void 0===d&&(d="");m=m.href;void 0!==m&&(d=''+d+"");c.innerHTML= +d}}}}(this,d),!0;case "descDisk":case "listDrives":return this.ra[c]=d,d.onchange=function(a,b){return function(){var c=parseInt(b.value,10);isNaN(c)||Jj(a,c)}}(this,d),!0;case "loadDrive":return this.ra[c]=d,d.onclick=function(a){return function(){var b,c=a.ra.listDisks,d=a.ra.listDrives;if(c&&d&&!isNaN(b=parseInt(d.value,10))&&0<=b&&ba.sa.restore(f)&&(e=!1);e&&a.sa&&void 0!==a.Wa&&(a.La=a.sa.seek(a.eb,a.Ka,a.Ta));return e};h.Xi=function(){for(var a=0,b=[],c=0;ca.Db||e[1]>a.Fb)&&(this.za('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Ua)),b=null);b&&(a.sa=b,a.Xk=c,a.me=d,Qj(this,c,d,b),this.Kd|=128,this.za('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Ua),a.ee),a.Kg=e[0],a.xf=e[1],a.yf=e[2]);a.ee&&(a.ee=!1,--this.Yd||this.Ma());Jj(this,a.Ua)}; +function Jj(a,b){if(0<=b&&b=this.Ya&&(this.va&=-81,this.kb=this.Ya=0);return a}; +h.nn=function(a,b){this.Ya=Ij[c].Xc){var d=!1;this.kb=0;var c=this.Ja(),e,f,l,g,m,n=c&31;switch(n){case 3:this.Ja(k.vo);this.Ja(k.ko);this.Bb();break;case 4:f=this.Ja(k.Qe);this.Ua=f&3;e=this.wa[this.Ua];this.Bb();this.Qb((e.Ra&4278190080)>>>24,k.yo);break;case 5:case 6:f=this.Ja(k.Qe);d=f>>2&1;this.Ua=f&3;e=this.wa[this.Ua];e.Ka=d;f=e.eb=this.Ja(k.fl);l=this.Ja(k.hl);g=e.Ta=this.Ja(k.jl);m=this.Ja(k.dj);e.bb=128<< +m;e.sd=this.Ja(k.ho);this.Ja(k.gl);this.Ja(k.fo);6==n?this.wh(e):this.xh(e);Rj(this,e,c,d,f,l,g,m);d=!0;break;case 7:f=this.Ja(k.Qe);this.Ua=f&3;e=this.wa[this.Ua];e.eb=e.pd=0;e.Ra=268435488;this.Bb();d=!0;break;case 8:e=this.wa[this.Ua];e.Ka=0;this.Bb();this.Qb(e.Ua|e.Ka<<2|e.Ra&255,k.kl);this.Qb(e.eb,k.mo);this.Ua=this.Ua+1&3;break;case 10:f=this.Ja(k.Qe);d=f>>2&1;this.Ua=f&3;e=this.wa[this.Ua];f=e.eb;l=e.Ka=d;g=e.Ta=1;m=0;e.Ra=0;e.sa&&(e.La=e.sa.seek(e.eb,e.Ka,e.Ta))?m=e.La.length:e.Ra=1088;Rj(this, +e,c,d,f,l,g,m);d=!0;break;case 13:f=this.Ja(k.Qe);d=f>>2&1;this.Ua=f&3;e=this.wa[this.Ua];f=e.eb;l=e.Ka=d;g=1;m=this.Ja(k.dj);e.bb=128<>2&1,f=this.Ja(k.lo),e.eb+=f-e.pd,0>e.eb&&(e.eb=0),e.eb>=e.Db&&(e.eb=e.Db-1),e.pd=f,e.Ra=32,0==e.eb&&(e.Ra|=268435456),this.Bb(),d=!0}0>>8,k.wo);a.Qb((b.Ra&16711680)>>>16,k.xo);var m=0;if(e!=b.eb||f!=b.Ka)m=l=1;c&128&&(f^=m,d||(m=0));a.Qb(e+m,k.fl);a.Qb(f,k.hl);a.Qb(l,k.jl);a.Qb(g,k.dj)}h.Ja=function(){var a=this.Rb[this.kb];this.kb++;return a};h.Bb=function(){this.kb=this.Ya=0};h.Qb=function(a){this.Rb[this.Ya++]=a}; +h.uh=function(a,b,c){void 0===b||0>b?this.wc(a,c):c(-1,!1)};h.vh=function(a,b){return void 0!==b&&0<=b?this.zc(a,b):-1};h.ql=function(a,b){return void 0!==b&&0<=b?this.aj(a,b):-1};h.wh=function(a){a.Ra=72;a.sa&&(a.La=null,a.Ra=0,this.ia&&(Qh(this.ia,2,this,"dmaRead",a),Mh(this.ia,2)))};h.xh=function(a){a.Ra=72;a.sa&&(a.sa.Ce?a.Ra=576:(a.La=null,a.Ra=0,this.ia&&(Qh(this.ia,2,this,"dmaWrite",a),Mh(this.ia,2))))}; +h.tj=function(a){a.Ra=72;a.sa&&(a.La=null,a.Ra=0,this.ia&&(a.ae=0,a.hc=Array(4),a.Ye=!0,a.cf=0,Qh(this.ia,2,this,"dmaFormat",a),Mh(this.ia,2),a.Ye=!1))};h.wc=function(a,b){var c=-1;if(!a.Ra&&a.sa){do{if(a.La&&0<=(c=Gj(a.La,a.Wa++)))break;a.La=a.sa.seek(a.eb,a.Ka,a.Ta);if(!a.La){a.Ra=1088;break}a.Wa=0;this.Ve(a)}while(1)}b(c,!1)}; +h.zc=function(a,b){if(a.Ra||!a.sa)return-1;do{if(a.La&&a.sa.write(a.La,a.Wa++,b))break;a.La=a.sa.seek(a.eb,a.Ka,a.Ta);if(!a.La){a.Ra=8256;b=-1;break}a.Wa=0;this.Ve(a)}while(1);return b};h.Ve=function(a){a.Ta++;a.Ta>=a.yf+1&&(a.Ta=1,a.Ka++,a.Ka>=a.xf&&(a.Ka=0,a.eb++))};h.aj=function(a,b){if(a.Ra)return-1;a.hc[a.ae++]=b;if(a.ae==a.hc.length){a.eb=a.hc[0];a.Ka=a.hc[1];a.Ta=a.hc[2];a.bb=128<this.zc(a,a.kj))return-1;a.cf++}a.cf>=a.sd&&(b=-1);return b}; +var Mj={1012:Hj.prototype.dm,1013:Hj.prototype.bm,1015:Hj.prototype.cm},Nj={1010:Hj.prototype.on,1013:Hj.prototype.nn,1015:Hj.prototype.mn};u(function(){for(var a=C(window.document,"pcjs","fdc"),b=0;b=e&&(this.If|=(f.type&3)<<(1-e<<1))}return d}; +h.Vi=function(){var a=0,b=[];this.de?(b[a++]=this.hd,b[a++]=this.Wk,b[a++]=this.Ld,b[a++]=this.Ug,b[a++]=this.Sg,b[a++]=this.Rg,b[a++]=this.Ke,b[a++]=this.va,b[a++]=this.Ti,b[a++]=this.Tg):(b[a++]=this.If,b[a++]=this.va,b[a++]=this.Rb,b[a++]=this.kb,b[a++]=this.Ya,b[a++]=this.Vk,b[a++]=this.Uk,b[a++]=this.Tk,b[a++]=this.mf);b[a]=this.Xi();return b}; +h.Oh=function(a,b,c,d,e){var f=0,l=!0;void 0===d&&(d=[0,0,!1,Array(8)]);b.Ua=a;b.errorCode=d[f++];b.al=d[f++];b.Be=d[f++];b.ue=d[f++];b.ve=d[f++];b.Ka=d[f++];b.Fb=d[f++];b.Nd=d[f++];b.Ta=d[f++];b.sd=d[f++];b.bb=d[f++];b.gg=this.de?0:1;b.name=c.name;void 0===b.name&&(b.name="Hard Drive");b.path=c.path;b.mode=c.mode||(b.path?"preload":"local");"demandro"!=b.mode&&"demandrw"!=b.mode||this.Ad()||(b.mode="local");b.type=c.type;if(void 0===b.type||void 0===Sj[this.nf][b.type])b.type=this.Hl;c=Sj[this.nf][b.type]; +b.Nb=c[2]||17;b.tb=c[3]||512;if(e&&this.ia&&(e=this.ia,c=b.type,e.na)){var g=e.na[18],g=a?g&240|c:g&15|c<<4;e.na&&(e.na[18]=g,Ah(e))}void 0===b.sa&&(b.sa=null,this.za("Type "+b.type+' "'+b.name+'" is fixed disk '+a,!0));Xj(this,b);b.Wa=d[f++];b.La=null;b.sa&&(a=d[f],void 0!==a&&0>b.sa.restore(a)&&(l=!1),l&&void 0!==b.Wa&&(b.La=b.sa.seek(b.Nd,b.Ka,b.Ta+b.gg)));return l};h.Xi=function(){for(var a=0,b=[],c=0;c=this.Ya&&(this.kb=this.Ya=0,this.va&=-15);return a};h.Kn=function(a,b){this.Ya=c&&(this.va|=2,this.va&=-2,Yj(this))}; +h.Em=function(){var a=this.va;this.kb=this.Qa.tb){var b=this;this.wc(this.Qa,function(a){0<=a?Zj(b):(b.va=1,b.hd=16)},!1)}else this.va=80;return a}; +h.$m=function(a,b){this.Qa&&this.Qa.bb>=this.Qa.tb&&(0>this.zc(this.Qa,b)?(this.va=1,this.hd=16):this.Qa.Wa==this.Qa.tb&&(this.Qa.bb-=this.Qa.tb,this.Ld=this.Ld-1&255,Zj(this),this.Qa.bb>=this.Qa.tb||(this.va=80)))};h.Rl=function(){return this.hd};h.en=function(a,b){this.Wk=b};h.Sl=function(){return this.Ld};h.cn=function(a,b){this.Ld=b};h.Tl=function(){return this.Ug};h.dn=function(a,b){this.Ug=b};h.Ol=function(){return this.Sg};h.Zm=function(a,b){this.Sg=b};h.Nl=function(){return this.Rg}; +h.Ym=function(a,b){this.Rg=b};h.Ql=function(){return this.Ke};h.an=function(a,b){this.Ke=b;this.va=this.wa[this.Ke&16?1:0]?this.va|64:this.va&-65};h.Ul=function(){return this.va};h.Xm=function(a,b){this.Ti=b;this.ia&&ai(this.ia,14);ak(this)};h.bn=function(a,b){this.Tg&4&&!(b&4)&&(this.hd=1);this.Tg=b}; +function ak(a){var b=!1,c=a.Ti,d=a.Ke&16?1:0,e=a.Ke&15,f=a.Sg|(a.Rg&3)<<8,l=a.Ug,g=a.Ld||256;a.Qa=null;a.hd=0;a.va=80;(d=a.wa[d])?(d.Nd=f,d.Ka=e,d.Ta=l,d.bb=g*d.tb,c=144<=c?c:c&240,d.La=null,d.errorCode=0,a.Qa=d):c=-1;switch(c&240){case 32:a.wc(d,function(b){0<=b&&a.ia?(Zj(a),a.va=136):(a.va=1,a.hd=16)},!1);break;case 48:a.ia?(Zj(a),a.va=136):(a.va=1,a.hd=4);break;case 16:b=!0;break;case 64:b=!0;break;case 144:a.hd=1;b=!0;break;case 145:d.Fb=e+1,d.Nb=g,b=!0}b&&Zj(a)} +function Zj(a){!a.ia||a.Tg&2||$h(a.ia,14)} +function Yj(a){a.kb=0;var b=a.Ja(),c=a.Ja(),d=c&32,e=d>>5,f=c&31,l=a.Ja(),g=a.Ja(),m=l<<2&768|g,n=l&63,q=a.Ja(),v=a.Ja(),s=a.wa[e];s&&(s.Nd=m,s.Ka=f,s.Ta=n,s.bb=q*s.tb);switch(b){case 3:a.Bb(s?s.errorCode:4);a.Qb(c);a.Qb(l);a.Qb(g);a.Qb(0|d);b=-1;break;case 12:for(c=0;0<=(b=a.Ja());)s&&cb?this.wc(a,c):c(-1,!1)}; +h.vh=function(a,b){return void 0!==b&&0<=b?this.zc(a,b):-1};h.rl=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Wa=a.Nb+b&&(a.Ta=b,a.Ka++,a.Ka>=a.Fb&&(a.Ka=0,a.Nd++))}; +h.aj=function(a,b){if(a.errorCode)return-1;a.hc[a.ae++]=b;if(a.ae==a.hc.length){a.Nd=a.hc[0];a.Ka=a.hc[1];a.Ta=a.hc[2];a.bb=128<this.zc(a,a.kj))return-1;a.cf++}a.cf>=a.sd&&(b=-1);return b}; +var Uj={800:Z.prototype.Dm,801:Z.prototype.Em,802:Z.prototype.Cm},Tj={496:Z.prototype.Pl,497:Z.prototype.Rl,498:Z.prototype.Sl,499:Z.prototype.Tl,500:Z.prototype.Ol,501:Z.prototype.Nl,502:Z.prototype.Ql,503:Z.prototype.Ul},Wj={800:Z.prototype.Kn,801:Z.prototype.Nn,802:Z.prototype.Mn,803:Z.prototype.Ln,807:Z.prototype.Oi,811:Z.prototype.Oi,815:Z.prototype.Oi},Vj={496:Z.prototype.$m,497:Z.prototype.en,498:Z.prototype.cn,499:Z.prototype.dn,500:Z.prototype.Zm,501:Z.prototype.Ym,502:Z.prototype.an,503:Z.prototype.Xm, +1014:Z.prototype.bn};u(function(){for(var a=C(window.document,"pcjs","hdc"),b=0;bik){if(d.load(this.Mf)){this.pe=new H(this,"1.15.8","failsafe");this.pe.load()&&(mk(this,d),a=2,dk(this.pe));this.pe.set("timestamp",ha());gk(this.pe);var e=this.xc&&!this.vg;if(1==a||la("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),l=d.get("data");f&&("ok"==f?d.load(l):("error"== +f&&"no machine state"!=l?(this.za("Error: "+l),"unable to verify user"==l&&(oa("user",""),this.yc=null)):this.fc(f+": "+l),dk(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&lk(this,c?d:null)}else 2==a&&d.clear()}else lk(this);delete this.Mf;delete this.Zg}e=Ea(this.id);for(f=0;fa[1];a=a[2];this.ma.Cb=!0;this.xj||(this.fc("PCjs v1.15.8\nCopyright \u00a9 2012-2014 Jeff Parsons \nLicense: GPL version 3 or later "),this.xj=!0);this.ka&&nk(this,this.ka,b,c,a);this.zj&&(mk(this,b),b.clear());!c&&this.pe&&(this.pe.clear(),delete this.pe)}; +function mk(a,b){if(la("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.Ad(),d=b.toString(),e={app:"PCjs",ver:"1.15.8"};e.url=a.url;e.user=c;e.type="bug";e.data=d;r("http://www.pcjs.org/api/v1/report",!0,e)}} +function ok(a,b,c){var d,e="none",f=new H(a,"1.15.8"),l=new H(a,"1.15.8","validate"),g=ha();l.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.8");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.ka&&a.ka.Ob&&(c&&jb(a.ka),d=a.ka.Ob(b,c),"object"===typeof d&&f.set(a.ka.id,d),c&&(a.ka.ma.Cb=!1,!1===d&&(e=null)));for(var g=Ea(a.id),m=0;mg.indexOf("/")&&(g=window.location.pathname+g);a=a.replace(/(]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(g?" url=$2"+g+"$2":""))}g=null;if("<"==a.charAt(0))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(v){g= null,a=v.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,!0,null,null,function(f,l,g){if(g||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=g[0],n,q=/( [a-z]+=)(['"])(.*?)\2/g;n=q.exec(f);)m=0>m.indexOf(n[1])?m.replace(">",n[0]+">"):m.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=m&&(l=l.replace(g[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/, From 63b0d5829e55f14efb81b0d717107a2ee71fe993 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 2 Nov 2014 01:22:39 -0700 Subject: [PATCH 03/21] Fixed command-line interface --- my_modules/pcjs-client/bin/pcjs | 6 -- my_modules/pcjs-client/lib/chipset.js | 1 + my_modules/pcjs-client/lib/computer.js | 1 + my_modules/pcjs-client/lib/cpu.js | 1 + my_modules/pcjs-client/lib/disk.js | 1 + my_modules/pcjs-client/lib/fdc.js | 1 + my_modules/pcjs-client/lib/hdc.js | 45 +++++++------ my_modules/pcjs-client/lib/keyboard.js | 1 + my_modules/pcjs-client/lib/mem.js | 1 + my_modules/pcjs-client/lib/mouse.js | 1 + my_modules/pcjs-client/lib/serial.js | 1 + my_modules/pcjs-client/lib/video.js | 1 + my_modules/pcjs-client/lib/x86cpu.js | 1 + my_modules/pcjs-client/lib/x86seg.js | 8 +-- my_modules/shared/lib/weblib.js | 89 +++++++++++++++++--------- 15 files changed, 99 insertions(+), 60 deletions(-) diff --git a/my_modules/pcjs-client/bin/pcjs b/my_modules/pcjs-client/bin/pcjs index c82d198f5..410f6d817 100644 --- a/my_modules/pcjs-client/bin/pcjs +++ b/my_modules/pcjs-client/bin/pcjs @@ -245,12 +245,6 @@ function loadMachine(sFile) } console.log(obj['id'] + " object created"); - if (fDebug) { - /* - * TODO: Determine why a simple "console.log(obj)" call fails on the Video object - */ - console.log(JSON.stringify(obj)); - } aComponents[i].objects.push(obj); if (obj.type == "Debugger") { diff --git a/my_modules/pcjs-client/lib/chipset.js b/my_modules/pcjs-client/lib/chipset.js index 8a4d1bf16..0fe9bb932 100644 --- a/my_modules/pcjs-client/lib/chipset.js +++ b/my_modules/pcjs-client/lib/chipset.js @@ -38,6 +38,7 @@ if (typeof module !== 'undefined') { var web = require("../../shared/lib/weblib"); var Component = require("../../shared/lib/component"); var State = require("./state"); + var Debugger = require("./debugger"); } /** diff --git a/my_modules/pcjs-client/lib/computer.js b/my_modules/pcjs-client/lib/computer.js index bea44bb70..634cef180 100644 --- a/my_modules/pcjs-client/lib/computer.js +++ b/my_modules/pcjs-client/lib/computer.js @@ -74,6 +74,7 @@ if (typeof module !== 'undefined') { var Component = require("../../shared/lib/component"); var Bus = require("./bus"); var State = require("./state"); + var Debugger = require("./debugger"); } /** diff --git a/my_modules/pcjs-client/lib/cpu.js b/my_modules/pcjs-client/lib/cpu.js index b7349a94a..e7587f7d1 100644 --- a/my_modules/pcjs-client/lib/cpu.js +++ b/my_modules/pcjs-client/lib/cpu.js @@ -36,6 +36,7 @@ if (typeof module !== 'undefined') { var str = require("../../shared/lib/strlib"); var usr = require("../../shared/lib/usrlib"); var Component = require("../../shared/lib/component"); + var Debugger = require("./debugger"); } /** diff --git a/my_modules/pcjs-client/lib/disk.js b/my_modules/pcjs-client/lib/disk.js index 2f54b078d..52b424ed6 100644 --- a/my_modules/pcjs-client/lib/disk.js +++ b/my_modules/pcjs-client/lib/disk.js @@ -164,6 +164,7 @@ if (typeof module !== 'undefined') { var DiskAPI = require("../../shared/lib/diskapi"); var DumpAPI = require("../../shared/lib/dumpapi"); var Component = require("../../shared/lib/component"); + var Debugger = require("./debugger"); } /** diff --git a/my_modules/pcjs-client/lib/fdc.js b/my_modules/pcjs-client/lib/fdc.js index 73b2ccca0..d1d3e8628 100644 --- a/my_modules/pcjs-client/lib/fdc.js +++ b/my_modules/pcjs-client/lib/fdc.js @@ -41,6 +41,7 @@ if (typeof module !== 'undefined') { var Disk = require("./disk"); var Computer = require("./computer"); var State = require("./state"); + var Debugger = require("./debugger"); } /* diff --git a/my_modules/pcjs-client/lib/hdc.js b/my_modules/pcjs-client/lib/hdc.js index bb3bb8d2f..d7c2bc937 100644 --- a/my_modules/pcjs-client/lib/hdc.js +++ b/my_modules/pcjs-client/lib/hdc.js @@ -40,6 +40,7 @@ if (typeof module !== 'undefined') { var ChipSet = require("./chipset"); var Disk = require("./disk"); var State = require("./state"); + var Debugger = require("./debugger"); } /** @@ -2430,22 +2431,26 @@ HDC.prototype.readByte = function(drive, done, fAutoInc) */ if (done) { var hdc = this; - drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, false, function(sector, fAsync) { - var b = -1; - if ((drive.sector = sector)) { - drive.ibSector = 0; - /* - * We "pre-advance" bSector et al now, instead of waiting to advance it right before the seek(). - * This allows the initial call to readByte() to perform a seek without triggering an unwanted advance. - */ - hdc.advanceSector(drive); - b = drive.disk.read(drive.sector, drive.ibSector); - drive.ibSector += inc; - } else { - drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR; - } - done(b, fAsync); - }); + if (drive.disk) { + drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, false, function(sector, fAsync) { + if ((drive.sector = sector)) { + drive.ibSector = 0; + /* + * We "pre-advance" bSector et al now, instead of waiting to advance it right before the seek(). + * This allows the initial call to readByte() to perform a seek without triggering an unwanted advance. + */ + hdc.advanceSector(drive); + b = drive.disk.read(drive.sector, drive.ibSector); + drive.ibSector += inc; + } else { + drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR; + } + done(b, fAsync); + }); + return b; + } + drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR; + done(b, false); } return b; }; @@ -2487,9 +2492,11 @@ HDC.prototype.writeByte = function(drive, b) * hence the bSectorBias below. I could change how sector numbers are stored in the image, * but it seems preferable to keep the image format consistent and controller-independent. */ - drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, true, function(sector, fAsync) { - drive.sector = sector; - }); + if (drive.disk) { + drive.disk.seek(drive.wCylinder, drive.bHead, drive.bSector + drive.bSectorBias, true, function(sector, fAsync) { + drive.sector = sector; + }); + } if (!drive.sector) { drive.errorCode = HDC.XTC.DATA.ERR.NO_SECTOR; b = -1; diff --git a/my_modules/pcjs-client/lib/keyboard.js b/my_modules/pcjs-client/lib/keyboard.js index 3d5c23932..091dff3f5 100644 --- a/my_modules/pcjs-client/lib/keyboard.js +++ b/my_modules/pcjs-client/lib/keyboard.js @@ -39,6 +39,7 @@ if (typeof module !== 'undefined') { var ChipSet = require("./chipset"); var State = require("./state"); var CPU = require("./cpu"); + var Debugger = require("./debugger"); } /** diff --git a/my_modules/pcjs-client/lib/mem.js b/my_modules/pcjs-client/lib/mem.js index 7c867ca67..791695c3b 100644 --- a/my_modules/pcjs-client/lib/mem.js +++ b/my_modules/pcjs-client/lib/mem.js @@ -51,6 +51,7 @@ if (typeof module !== 'undefined') { var str = require("../../shared/lib/strlib"); var Component = require("../../shared/lib/component"); + var Debugger = require("./debugger"); } /** * @class DataView diff --git a/my_modules/pcjs-client/lib/mouse.js b/my_modules/pcjs-client/lib/mouse.js index 14c5dd258..68a5249d0 100644 --- a/my_modules/pcjs-client/lib/mouse.js +++ b/my_modules/pcjs-client/lib/mouse.js @@ -38,6 +38,7 @@ if (typeof module !== 'undefined') { var Component = require("../../shared/lib/component"); var SerialPort = require("./serial"); var State = require("./state"); + var Debugger = require("./debugger"); } /** diff --git a/my_modules/pcjs-client/lib/serial.js b/my_modules/pcjs-client/lib/serial.js index 5f0dad244..2324b9b37 100644 --- a/my_modules/pcjs-client/lib/serial.js +++ b/my_modules/pcjs-client/lib/serial.js @@ -36,6 +36,7 @@ if (typeof module !== 'undefined') { var web = require("../../shared/lib/weblib"); var Component = require("../../shared/lib/component"); var ChipSet = require("./chipset"); + var Debugger = require("./debugger"); var State = require("./state"); } diff --git a/my_modules/pcjs-client/lib/video.js b/my_modules/pcjs-client/lib/video.js index d4f507f1f..429be0957 100644 --- a/my_modules/pcjs-client/lib/video.js +++ b/my_modules/pcjs-client/lib/video.js @@ -102,6 +102,7 @@ if (typeof module !== 'undefined') { var ChipSet = require("./chipset"); var Keyboard = require("./keyboard"); var State = require("./state"); + var Debugger = require("./debugger"); } /** diff --git a/my_modules/pcjs-client/lib/x86cpu.js b/my_modules/pcjs-client/lib/x86cpu.js index 6dc7e31ff..e97abe0b4 100644 --- a/my_modules/pcjs-client/lib/x86cpu.js +++ b/my_modules/pcjs-client/lib/x86cpu.js @@ -46,6 +46,7 @@ if (typeof module !== 'undefined') { var X86Mods = require("./x86mods"); var X86OpXX = require("./x86opxx"); var X86Op0F = require("./x86op0f"); + var Debugger = require("./debugger"); } /** diff --git a/my_modules/pcjs-client/lib/x86seg.js b/my_modules/pcjs-client/lib/x86seg.js index 222919d9e..892b3c355 100644 --- a/my_modules/pcjs-client/lib/x86seg.js +++ b/my_modules/pcjs-client/lib/x86seg.js @@ -67,7 +67,7 @@ function X86Seg(cpu, sName, fProt) /** * loadReal(sel, fSuppress) * - * This is the default real-mode load() function. + * The default segment load() function for real-mode. * * @this {X86Seg} * @param {number} sel @@ -77,7 +77,7 @@ function X86Seg(cpu, sName, fProt) X86Seg.loadReal = function loadReal(sel, fSuppress) { this.sel = sel; - this.limit = 0xffff; // TODO: Consider NOT setting the limit field in real-mode (unless it's required for, say, LOADALL support?) + this.limit = 0xffff; this.cpl = this.dpl = 0; return this.base = sel << 4; }; @@ -85,8 +85,8 @@ X86Seg.loadReal = function loadReal(sel, fSuppress) /** * loadProt(sel, fSuppress) * - * This replaces the segment's default load() function whenever the segment is notified (eg, by the CPU's setProtMode() - * function) the processor is now in protected-mode. + * This replaces the segment's default load() function whenever the segment is notified via updateAccess() by the + * CPU's setProtMode() that the processor is now in protected-mode. * * Segments in protected-mode are referenced by selectors, which are indexes into descriptor tables (GDT, LDT, IDT) whose * descriptors are 4-word (8-byte) entries: diff --git a/my_modules/shared/lib/weblib.js b/my_modules/shared/lib/weblib.js index cf7790c70..99b1e1f5d 100644 --- a/my_modules/shared/lib/weblib.js +++ b/my_modules/shared/lib/weblib.js @@ -118,14 +118,6 @@ /* global window: true, setTimeout: false, clearTimeout: false, SITEHOST: false */ -/* - * We must defer loading the Component module until the function(s) requiring it are - * called; otherwise, we create an initialization cycle in which Component requires weblib - * and weblib requires Component. - * - * In an ideal world, weblib would not be dependent on Component, but we really want to use - * its logging functions. - */ if (typeof module !== 'undefined') { var Component; require("./defines"); @@ -135,6 +127,49 @@ if (typeof module !== 'undefined') { var web = {}; +/* + * We must defer loading the Component module until the function(s) requiring it are + * called; otherwise, we create an initialization cycle in which Component requires weblib + * and weblib requires Component. + * + * In an ideal world, weblib would not be dependent on Component, but we really want to use + * its I/O functions. The simplest solution is to create wrapper functions. + */ + +/** + * log(s, type) + * + * For diagnostic output only. DEBUG must be true (or "--debug" specified via the command-line) + * for Component.log() to display anything. + * + * @param {string} [s] is the message text + * @param {string} [type] is the message type + */ +web.log = function(s, type) +{ + if (typeof module !== 'undefined') { + if (!Component) Component = require("./component"); + } + Component.log(s, type); +}; + +/** + * notice(s, fPrintOnly, id) + * + * If Component.notice() calls web.alertUser(), it will fall back to web.log() if all else fails. + * + * @param {string} s is the message text + * @param {boolean} [fPrintOnly] + * @param {string} [id] is the caller's ID, if any + */ +web.notice = function(s, fPrintOnly, id) +{ + if (typeof module !== 'undefined') { + if (!Component) Component = require("./component"); + } + Component.notice(s, fPrintOnly, id); +}; + /** * loadResource(sURL, fAsync, data, componentNotify, fnNotify, pNotify) * @@ -188,11 +223,11 @@ web.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNoti * from the local file system (ie, when using the "file:" protocol), we have to be a bit more "flexible". */ if (xmlHTTP.status == 200 || !xmlHTTP.status && sURLData.length && web.getHostProtocol() == "file:") { - Component.log("xmlHTTP.onreadystatechange(" + sURL + "): returned " + sURLData.length + " bytes"); + web.log("xmlHTTP.onreadystatechange(" + sURL + "): returned " + sURLData.length + " bytes"); } else { nErrorCode = xmlHTTP.status || -1; - Component.log("xmlHTTP.onreadystatechange(" + sURL + "): error code " + nErrorCode); + web.log("xmlHTTP.onreadystatechange(" + sURL + "): error code " + nErrorCode); } if (fnNotify) { if (!componentNotify) { @@ -212,12 +247,12 @@ web.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNoti sData += p + '=' + encodeURIComponent(data[p]); } sData = sData.replace(/%20/g, '+'); - Component.log("web.loadResource(POST " + sURL + "): " + sData.length + " bytes"); + web.log("web.loadResource(POST " + sURL + "): " + sData.length + " bytes"); xmlHTTP.open("POST", sURL, fAsync); xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHTTP.send(sData); } else { - Component.log("web.loadResource(GET " + sURL + ")"); + web.log("web.loadResource(GET " + sURL + ")"); xmlHTTP.open("GET", sURL, fAsync); xmlHTTP.send(); } @@ -225,10 +260,10 @@ web.loadResource = function(sURL, fAsync, data, componentNotify, fnNotify, pNoti if (!fAsync) { sURLData = xmlHTTP.responseText; if (xmlHTTP.status == 200) { - Component.log("web.loadResource(" + sURL + "): returned " + sURLData.length + " bytes"); + web.log("web.loadResource(" + sURL + "): returned " + sURLData.length + " bytes"); } else { nErrorCode = xmlHTTP.status || -1; - Component.log("web.loadResource(" + sURL + "): error code " + nErrorCode); + web.log("web.loadResource(" + sURL + "): error code " + nErrorCode); } if (fnNotify) { if (!componentNotify) { @@ -315,11 +350,7 @@ web.getUserAgent = function() */ web.alertUser = function(sMessage) { - if (window) { - window.alert(sMessage); - } else { - console.log(sMessage); - } + if (window) window.alert(sMessage); else web.log(sMessage); }; /** @@ -393,7 +424,7 @@ web.hasLocalStorage = function() { */ web.logLocalStorageError = function(e) { - Component.log(e.message, "localStorage error"); + web.log(e.message, "localStorage error"); }; /** @@ -504,13 +535,9 @@ web.isUserAgent = function(s) { if (window) { var userAgent = web.getUserAgent(); + web.log("agent: " + userAgent); /* - * Here's one case where we have to be careful with Component, because when isUserAgent() is called by - * the init code below, component.js hasn't been loaded yet. The simplest solution is to remove the call. - * - * if (Component) Component.log("agent: " + userAgent); - * - * And yes, it would be pointless to use the conditional (?) operator below, if not for the Google Closure + * Yes, it would be pointless to use the conditional (?) operator below, if not for the Google Closure * Compiler (v20130823) failing to detect the entire expression as a boolean. */ return (s == "iOS" && userAgent.match(/(iPod|iPhone|iPad)/) && userAgent.match(/AppleWebKit/) || s == "MSIE" && userAgent.match(/(MSIE|Trident)/) || (userAgent.indexOf(s) >= 0))? true : false; @@ -596,7 +623,7 @@ web.onClickRepeat = function(e, msDelay, msRepeat, fn) } }; e.onmousedown = function() { - // Component.println("onMouseDown()"); + // web.log("onMouseDown()"); if (!fIgnoreMouseEvents) { if (!timer) { ms = msDelay; @@ -605,21 +632,21 @@ web.onClickRepeat = function(e, msDelay, msRepeat, fn) } }; e.ontouchstart = function() { - // Component.println("onTouchStart()"); + // web.log("onTouchStart()"); if (!timer) { ms = msDelay; fnRepeat(); } }; e.onmouseup = e.onmouseout = function() { - // Component.println("onMouseUp()/onMouseOut()"); + // web.log("onMouseUp()/onMouseOut()"); if (timer) { clearTimeout(timer); timer = null; } }; e.ontouchend = e.ontouchcancel = function() { - // Component.println("onTouchEnd()/onTouchCancel()"); + // web.log("onTouchEnd()/onTouchCancel()"); if (timer) { clearTimeout(timer); timer = null; @@ -722,7 +749,7 @@ web.doPageEvent = function(afn) afn[i](); } } catch(e) { - Component.notice("An unexpected exception occurred:\n\n" + e.message + "\n\nPlease send this information to Jeff@pcjs.org. Thanks."); + web.notice("An unexpected exception occurred:\n\n" + e.message + "\n\nPlease send this information to Jeff@pcjs.org. Thanks."); } } }; From aedbc26e103a279dea019b3cdda854adf8fa48d4 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 2 Nov 2014 01:34:36 -0700 Subject: [PATCH 04/21] weblib dependency work-around --- my_modules/shared/lib/weblib.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/my_modules/shared/lib/weblib.js b/my_modules/shared/lib/weblib.js index 99b1e1f5d..a0b42dc82 100644 --- a/my_modules/shared/lib/weblib.js +++ b/my_modules/shared/lib/weblib.js @@ -535,9 +535,13 @@ web.isUserAgent = function(s) { if (window) { var userAgent = web.getUserAgent(); - web.log("agent: " + userAgent); /* - * Yes, it would be pointless to use the conditional (?) operator below, if not for the Google Closure + * Here's one case where we have to be careful with Component, because when isUserAgent() is called by + * the init code below, component.js hasn't been loaded yet. The simple solution for now is to remove the call. + * + * web.log("agent: " + userAgent); + * + * And yes, it would be pointless to use the conditional (?) operator below, if not for the Google Closure * Compiler (v20130823) failing to detect the entire expression as a boolean. */ return (s == "iOS" && userAgent.match(/(iPod|iPhone|iPad)/) && userAgent.match(/AppleWebKit/) || s == "MSIE" && userAgent.match(/(MSIE|Trident)/) || (userAgent.indexOf(s) >= 0))? true : false; From f807c124af843e2d54afe88c2e2530ad48c9184a Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 2 Nov 2014 16:21:26 -0800 Subject: [PATCH 05/21] server.js now supports "--port=number" as yet another way of starting the Node server with a specific port number --- README.md | 6 +++--- docs/about/README.md | 6 +++--- server.js | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4c8ba9fa4..42642108d 100644 --- a/README.md +++ b/README.md @@ -333,12 +333,12 @@ All published portions are free for redistribution and/or modification under the [GNU General Public License](/LICENSE) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -You are required to include a current copyright notice, with a link to [http://pcjs.org](), such as: +You are required to include the following copyright notice, with a link to [http://pcjs.org](): > [PCjs](http://pcjs.org) © 2012-2014 by [Jeff Parsons](mailto:Jeff@pcjs.org) ([@jeffpar](http://twitter.com/jeffpar)) -in every source code file of every copy or modified version of this work, and to display that notice on every screen -that loads or runs any version of this software. +in every source code file of every copy or modified version of this work, and to display that notice on every web page +or computer that runs any version of this software. See [LICENSE](/LICENSE) for details. diff --git a/docs/about/README.md b/docs/about/README.md index 7e3c4f8ec..368fe2117 100644 --- a/docs/about/README.md +++ b/docs/about/README.md @@ -69,12 +69,12 @@ All published portions are free for redistribution and/or modification under the [GNU General Public License](/LICENSE) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -You are required to include a current copyright notice, with a link to [http://pcjs.org](), such as: +You are required to include the following copyright notice, with a link to [http://pcjs.org](): > [PCjs](http://pcjs.org) © 2012-2014 by [Jeff Parsons](mailto:Jeff@pcjs.org) ([@jeffpar](http://twitter.com/jeffpar)) -in every source code file of every copy or modified version of this work, and to display that notice on every screen -that loads or runs any version of this software. +in every source code file of every copy or modified version of this work, and to display that notice on every web page +or computer that runs any version of this software. See [LICENSE](/LICENSE) for details. diff --git a/server.js b/server.js index 48c80e54b..eeabd312c 100644 --- a/server.js +++ b/server.js @@ -75,7 +75,7 @@ HTMLOut.setOptions({'cache': fCache, 'console': fConsole, 'debug': fDebug, 'rebu var app = express(); app.enable("strict routing"); -app.set('port', process.env.PORT || 8088); +app.set('port', process.env.PORT || args.argv['port'] || 8088); /* * I already include the following in the tag of my HTML documents: From 0e8e11d2d87daf9e08a4405b45f5030d14d487e6 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 3 Nov 2014 00:11:40 -0800 Subject: [PATCH 06/21] Collapsed /configs into /devices (or in some cases, /apps or /disks), simplifying the structure a bit --- Gruntfile.js | 2 +- README.md | 26 +- apps/README.md | 10 +- {configs/c1p/serial => apps/c1p}/README.md | 0 {configs/c1p/serial => apps/c1p}/all.xml | 0 {configs/c1p/serial => apps/c1p}/samples.xml | 0 apps/pc/1981/visicalc/manifest.xml | 2 +- apps/pc/1982/esuite/manifest.xml | 2 +- apps/pc/1985/rogue/cache.manifest | 6 +- apps/pc/1985/rogue/manifest.xml | 2 +- apps/pc/1987/thinktank/manifest.xml | 2 +- apps/pc/1992/moria/manifest.xml | 2 +- blog/2013/11/README.md | 4 +- blog/2014/03/30/README.md | 4 +- blog/2014/04/14/README.md | 2 +- blog/2014/07/30/README.md | 4 +- blog/2014/09/13/README.md | 4 +- blog/2014/10/13/README.md | 4 +- blog/2014/10/17/README.md | 2 +- blog/2014/10/23/README.md | 2 +- configs/README.md | 4 - configs/c1p/README.md | 5 - configs/c1p/machines/8kb/array/README.md | 12 - configs/c1p/machines/8kb/array/machine.xml | 14 - configs/pc/README.md | 6 - configs/pc/disks/README.md | 59 - .../machines/5160/ega/640kb/win101/state.json | 1 - configs/pc/machines/README.md | 48 - devices/README.md | 5 +- devices/c1p/README.md | 7 + .../c1p/machine}/32kb/machine.xml | 10 +- .../c1p/machine}/8kb/all/debugger/machine.xml | 8 +- devices/c1p/machine/8kb/array/README.md | 12 + devices/c1p/machine/8kb/array/machine.xml | 14 + .../c1p/machine}/8kb/embed/machine.xml | 4 +- .../machine}/8kb/large/debugger/local.html | 26 +- .../c1p/machine}/8kb/large/debugger/local.xml | 12 +- .../machine}/8kb/large/debugger/machine.xml | 8 +- .../c1p/machine}/8kb/large/machine.xml | 4 +- .../c1p/machine}/8kb/small/machine.xml | 4 +- .../c1p/machine}/README.md | 0 .../panels => devices/c1p/panel}/default.xml | 0 devices/c1p/{roms => rom}/README.md | 0 devices/c1p/{roms => rom}/basic-gcpatch.asm | 0 devices/c1p/{roms => rom}/basic-gcpatch.hex | 0 devices/c1p/{roms => rom}/basic-gcpatch.json | 0 devices/c1p/{roms => rom}/basic.hex | 0 devices/c1p/{roms => rom}/basic.json | 0 devices/c1p/{roms => rom}/system.hex | 0 devices/c1p/{roms => rom}/system.json | 0 devices/pc/README.md | 5 + .../pc/keyboard}/minimal-arrows.xml | 0 .../pc/keyboard}/minimal-f1-f10.xml | 0 .../pc/keyboard}/minimal-functions.xml | 0 .../pc/keyboard}/minimal.xml | 0 .../pc/keyboard}/us83.xml | 0 .../pc/machine}/5150/README.md | 0 .../5150/cga/384kb/softkbd/machine.xml | 6 +- .../pc/machine}/5150/cga/64kb/README.md | 0 .../machine}/5150/cga/64kb/donkey/README.md | 0 .../5150/cga/64kb/donkey/debugger/machine.xml | 8 +- .../machine}/5150/cga/64kb/donkey/machine.xml | 6 +- .../5150/cga/64kb/donkey/screenshot.png | Bin .../machine}/5150/cga/64kb/donkey/state.json | 0 .../5150/cga/64kb/donkey/thumbnail.jpg | Bin .../5150/cga/64kb/softkbd/machine.xml | 6 +- .../pc/machine}/5150/cga/README.md | 0 .../5150/mda/64kb/debugger/machine.xml | 6 +- .../pc/machine}/5150/mda/64kb/machine.xml | 4 +- .../5150/mda/64kb/softkbd/machine.xml | 6 +- .../pc/machine}/5150/mda/README.md | 4 +- .../pc/machine}/5160/README.md | 0 .../machine}/5160/cga/256kb/array/README.md | 0 .../machine}/5160/cga/256kb/array/machine.xml | 2 +- .../pc/machine}/5160/cga/256kb/demo/README.md | 0 .../5160/cga/256kb/demo/debugger/machine.xml | 6 +- .../machine}/5160/cga/256kb/demo/machine.xml | 4 +- .../5160/cga/256kb/demo/screenshot.png | Bin .../5160/cga/256kb/demo/thumbnail.jpg | Bin .../5160/cga/256kb/softkbd/machine.xml | 6 +- .../machine}/5160/cga/256kb/win101/README.md | 0 .../cga/256kb/win101/debugger/machine.xml | 10 +- .../5160/cga/256kb/win101/machine.xml | 8 +- .../5160/cga/256kb/win101/screenshot.png | Bin .../5160/cga/256kb/win101/softkbd/machine.xml | 8 +- .../machine}/5160/cga/256kb/win101/state.json | 0 .../5160/cga/256kb/win101/thumbnail.jpg | Bin .../5160/cga/512kb/win101/softkbd/machine.xml | 8 +- .../5160/cga/640kb/debugger/machine.xml | 6 +- .../machine}/5160/cga/640kb/dos400m/README.md | 0 .../5160/cga/640kb/dos400m/machine.xml | 6 +- .../pc/machine}/5160/cga/640kb/machine.xml | 4 +- .../5160/ega/256kb/debugger/machine.xml | 6 +- .../machine}/5160/ega/640kb/array/README.md | 0 .../machine}/5160/ega/640kb/array/machine.xml | 8 +- .../5160/ega/640kb/debugger/machine.xml | 8 +- .../pc/machine}/5160/ega/640kb/machine.xml | 6 +- .../5160/ega/640kb/win101/machine.xml | 8 +- .../machine/5160/ega/640kb/win101/state.json | 1 + .../5160/ega/640kb/win101/thumbnail.jpg | Bin .../mda/256kb/fake188/debugger/machine.xml | 4 +- .../5160/mda/256kb/fake188/machine.xml | 2 +- .../pc/machine}/5160/mda/256kb/machine.xml | 4 +- .../5160/mda/64kb/softkbd/machine.xml | 6 +- .../machine}/5170/ega/1152kb/rev1/machine.xml | 6 +- .../machine}/5170/ega/1152kb/rev3/machine.xml | 6 +- .../machine}/5170/ega/640kb/rev1/machine.xml | 6 +- .../machine}/5170/ega/640kb/rev1/manifest.xml | 0 devices/pc/machine/README.md | 48 + .../pc/panels => devices/pc/panel}/README.md | 0 .../panels => devices/pc/panel}/default.xml | 0 .../pc/panels => devices/pc/panel}/wide.xml | 0 {configs/c1p/disks => disks/c1p}/README.md | 2 +- {configs/c1p/disks => disks/c1p}/samples.xml | 0 disks/pc/README.md | 61 + disks/pc/cpm/machine.xml | 2 +- disks/pc/diags/ibm/2.20/machine.xml | 2 +- .../COMPAQ-DESKPRO386-SUPP-1986-08-08.json | 1 + disks/pc/dos/compaq/supp/manifest.xml | 8 + disks/pc/dos/microsoft/4.0M/README.md | 4 +- disks/pc/dos/microsoft/4.0M/manifest.xml | 2 +- .../disks => disks/pc}/fixed/win101-ega.xml | 0 .../pc/disks => disks/pc}/fixed/win101.xml | 0 disks/pc/fixed/win101/README.md | 4 +- disks/pc/games/infocom/machine-debug.xml | 2 +- disks/pc/games/infocom/machine.xml | 2 +- .../games/infocom/zork1/debugger/machine.xml | 2 +- .../pc/games/microsoft/adventure/machine.xml | 4 +- {configs/pc/disks => disks/pc}/library.xml | 1 + {configs/pc/disks => disks/pc}/samples.xml | 0 {configs/pc/disks => disks/pc/win}/win10x.xml | 0 docs/about/pcjs/README.md | 4 +- docs/c1pjs/README.md | 6 +- docs/c1pjs/embed/README.md | 28 +- docs/pcjs/README.md | 4 +- docs/pcjs/demos/components.xsl | 2 +- docs/pcjs/demos/pc-dbg.js | 1167 +++++++++-------- docs/pcjs/demos/pc.js | 897 ++++++------- docs/pcjs/demos/samples.zip | Bin 459397 -> 460301 bytes docs/pcjs/keyboard/README.md | 4 +- docs/pcjs/panel/README.md | 4 +- my_modules/c1pjs-client/lib/outline.xml | 12 +- my_modules/htmlout/lib/htmlout.js | 6 +- my_modules/htmlout/lib/httpapi.js | 32 +- my_modules/markout/lib/markout.js | 4 +- my_modules/pcjs-client/bin/machine.json | 2 +- my_modules/pcjs-client/lib/disk.js | 4 +- .../pcjs-client/templates/components.xsl | 2 +- my_modules/shared/lib/embed.js | 2 +- my_modules/shared/lib/weblib.js | 2 +- my_modules/shared/templates/common.html | 2 +- my_modules/shared/templates/common.xsl | 2 +- versions/c1pjs/1.15.8/c1p-dbg.js | 2 +- versions/c1pjs/1.15.8/c1p.js | 2 +- versions/c1pjs/1.15.8/common.xsl | 2 +- versions/pcjs/1.15.8/common.xsl | 2 +- versions/pcjs/1.15.8/components.xsl | 2 +- versions/pcjs/1.15.8/pc-dbg.js | 90 +- versions/pcjs/1.15.8/pc.js | 6 +- 159 files changed, 1498 insertions(+), 1472 deletions(-) rename {configs/c1p/serial => apps/c1p}/README.md (100%) rename {configs/c1p/serial => apps/c1p}/all.xml (100%) rename {configs/c1p/serial => apps/c1p}/samples.xml (100%) delete mode 100644 configs/README.md delete mode 100644 configs/c1p/README.md delete mode 100644 configs/c1p/machines/8kb/array/README.md delete mode 100644 configs/c1p/machines/8kb/array/machine.xml delete mode 100644 configs/pc/README.md delete mode 100644 configs/pc/disks/README.md delete mode 100644 configs/pc/machines/5160/ega/640kb/win101/state.json delete mode 100644 configs/pc/machines/README.md create mode 100644 devices/c1p/README.md rename {configs/c1p/machines => devices/c1p/machine}/32kb/machine.xml (83%) rename {configs/c1p/machines => devices/c1p/machine}/8kb/all/debugger/machine.xml (85%) create mode 100644 devices/c1p/machine/8kb/array/README.md create mode 100644 devices/c1p/machine/8kb/array/machine.xml rename {configs/c1p/machines => devices/c1p/machine}/8kb/embed/machine.xml (89%) rename {configs/c1p/machines => devices/c1p/machine}/8kb/large/debugger/local.html (80%) rename {configs/c1p/machines => devices/c1p/machine}/8kb/large/debugger/local.xml (76%) rename {configs/c1p/machines => devices/c1p/machine}/8kb/large/debugger/machine.xml (85%) rename {configs/c1p/machines => devices/c1p/machine}/8kb/large/machine.xml (91%) rename {configs/c1p/machines => devices/c1p/machine}/8kb/small/machine.xml (90%) rename {configs/c1p/machines => devices/c1p/machine}/README.md (100%) rename {configs/c1p/panels => devices/c1p/panel}/default.xml (100%) rename devices/c1p/{roms => rom}/README.md (100%) rename devices/c1p/{roms => rom}/basic-gcpatch.asm (100%) rename devices/c1p/{roms => rom}/basic-gcpatch.hex (100%) rename devices/c1p/{roms => rom}/basic-gcpatch.json (100%) rename devices/c1p/{roms => rom}/basic.hex (100%) rename devices/c1p/{roms => rom}/basic.json (100%) rename devices/c1p/{roms => rom}/system.hex (100%) rename devices/c1p/{roms => rom}/system.json (100%) create mode 100644 devices/pc/README.md rename {configs/pc/keyboards => devices/pc/keyboard}/minimal-arrows.xml (100%) rename {configs/pc/keyboards => devices/pc/keyboard}/minimal-f1-f10.xml (100%) rename {configs/pc/keyboards => devices/pc/keyboard}/minimal-functions.xml (100%) rename {configs/pc/keyboards => devices/pc/keyboard}/minimal.xml (100%) rename {configs/pc/keyboards => devices/pc/keyboard}/us83.xml (100%) rename {configs/pc/machines => devices/pc/machine}/5150/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/384kb/softkbd/machine.xml (88%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/64kb/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/64kb/donkey/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/64kb/donkey/debugger/machine.xml (81%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/64kb/donkey/machine.xml (82%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/64kb/donkey/screenshot.png (100%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/64kb/donkey/state.json (100%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/64kb/donkey/thumbnail.jpg (100%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/64kb/softkbd/machine.xml (88%) rename {configs/pc/machines => devices/pc/machine}/5150/cga/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5150/mda/64kb/debugger/machine.xml (87%) rename {configs/pc/machines => devices/pc/machine}/5150/mda/64kb/machine.xml (90%) rename {configs/pc/machines => devices/pc/machine}/5150/mda/64kb/softkbd/machine.xml (88%) rename {configs/pc/machines => devices/pc/machine}/5150/mda/README.md (56%) rename {configs/pc/machines => devices/pc/machine}/5160/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/array/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/array/machine.xml (96%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/demo/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/demo/debugger/machine.xml (89%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/demo/machine.xml (91%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/demo/screenshot.png (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/demo/thumbnail.jpg (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/softkbd/machine.xml (88%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/win101/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/win101/debugger/machine.xml (78%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/win101/machine.xml (80%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/win101/screenshot.png (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/win101/softkbd/machine.xml (86%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/win101/state.json (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/256kb/win101/thumbnail.jpg (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/512kb/win101/softkbd/machine.xml (87%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/640kb/debugger/machine.xml (89%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/640kb/dos400m/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/640kb/dos400m/machine.xml (81%) rename {configs/pc/machines => devices/pc/machine}/5160/cga/640kb/machine.xml (91%) rename {configs/pc/machines => devices/pc/machine}/5160/ega/256kb/debugger/machine.xml (89%) rename {configs/pc/machines => devices/pc/machine}/5160/ega/640kb/array/README.md (100%) rename {configs/pc/machines => devices/pc/machine}/5160/ega/640kb/array/machine.xml (82%) rename {configs/pc/machines => devices/pc/machine}/5160/ega/640kb/debugger/machine.xml (87%) rename {configs/pc/machines => devices/pc/machine}/5160/ega/640kb/machine.xml (87%) rename {configs/pc/machines => devices/pc/machine}/5160/ega/640kb/win101/machine.xml (82%) create mode 100644 devices/pc/machine/5160/ega/640kb/win101/state.json rename {configs/pc/machines => devices/pc/machine}/5160/ega/640kb/win101/thumbnail.jpg (100%) rename {configs/pc/machines => devices/pc/machine}/5160/mda/256kb/fake188/debugger/machine.xml (95%) rename {configs/pc/machines => devices/pc/machine}/5160/mda/256kb/fake188/machine.xml (97%) rename {configs/pc/machines => devices/pc/machine}/5160/mda/256kb/machine.xml (91%) rename {configs/pc/machines => devices/pc/machine}/5160/mda/64kb/softkbd/machine.xml (88%) rename {configs/pc/machines => devices/pc/machine}/5170/ega/1152kb/rev1/machine.xml (78%) rename {configs/pc/machines => devices/pc/machine}/5170/ega/1152kb/rev3/machine.xml (78%) rename {configs/pc/machines => devices/pc/machine}/5170/ega/640kb/rev1/machine.xml (74%) rename {configs/pc/machines => devices/pc/machine}/5170/ega/640kb/rev1/manifest.xml (100%) create mode 100644 devices/pc/machine/README.md rename {configs/pc/panels => devices/pc/panel}/README.md (100%) rename {configs/pc/panels => devices/pc/panel}/default.xml (100%) rename {configs/pc/panels => devices/pc/panel}/wide.xml (100%) rename {configs/c1p/disks => disks/c1p}/README.md (68%) rename {configs/c1p/disks => disks/c1p}/samples.xml (100%) create mode 100644 disks/pc/dos/compaq/supp/COMPAQ-DESKPRO386-SUPP-1986-08-08.json create mode 100644 disks/pc/dos/compaq/supp/manifest.xml rename {configs/pc/disks => disks/pc}/fixed/win101-ega.xml (100%) rename {configs/pc/disks => disks/pc}/fixed/win101.xml (100%) rename {configs/pc/disks => disks/pc}/library.xml (97%) rename {configs/pc/disks => disks/pc}/samples.xml (100%) rename {configs/pc/disks => disks/pc/win}/win10x.xml (100%) diff --git a/Gruntfile.js b/Gruntfile.js index ff2d7b7ab..4b3e8b0ff 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -415,7 +415,7 @@ module.exports = function(grunt) { ] }, "promote_to_version": { - src: ["apps/**/*.xml", "configs/**/*.xml", "disks/**/*.xml", "pubs/**/*.xml"], + src: ["apps/**/*.xml", "devices/**/*.xml", "disks/**/*.xml", "pubs/**/*.xml"], overwrite: true, replacements: [ { diff --git a/README.md b/README.md index 42642108d..e168bcac7 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ All the simulations are written entirely in JavaScript. No Flash, Java or other Supported browsers include recent versions of Internet Explorer (v9.0 or later), Safari, Chrome, Firefox and various mobile browsers. -[Embedded IBM PC](/configs/pc/machines/5150/mda/64kb/ "PCjs:ibm5150") +[Embedded IBM PC](/devices/pc/machine/5150/mda/64kb/ "PCjs:ibm5150") -The [simulation](/configs/pc/machines/5150/mda/64kb/) above features an Intel 8088 running at 4.77Mhz, +The [simulation](/devices/pc/machine/5150/mda/64kb/) above features an Intel 8088 running at 4.77Mhz, with 64Kb of RAM and an IBM Monochrome Display Adapter. For more control, there are also -[Control Panel](/configs/pc/machines/5150/mda/64kb/debugger/) and [Soft Keyboard](/configs/pc/machines/5150/mda/64kb/softkbd/) +[Control Panel](/devices/pc/machine/5150/mda/64kb/debugger/) and [Soft Keyboard](/devices/pc/machine/5150/mda/64kb/softkbd/) configurations, featuring the built-in PCjs Debugger. For even greater control, build your own PC. The [PCjs Documentation](/docs/pcjs/) will help you get started. @@ -28,17 +28,17 @@ Demos --- Some pre-configured machines are shown below, ready to run BASIC, DOS, Windows 1.01, and assorted non-DOS software. -![IBM PC running DONKEY.BAS](/configs/pc/machines/5150/cga/64kb/donkey/thumbnail.jpg "link:/configs/pc/machines/5150/cga/64kb/donkey/:200:100") -![IBM PC XT w/CGA, 10Mb Hard Drive](/configs/pc/machines/5160/cga/256kb/demo/thumbnail.jpg "link:/configs/pc/machines/5160/cga/256kb/demo/:200:100") -![IBM PC XT w/CGA, Windows 1.01](/configs/pc/machines/5160/cga/256kb/win101/thumbnail.jpg "link:/configs/pc/machines/5160/cga/256kb/win101/:200:100") -![IBM PC XT w/EGA, Windows 1.01](/configs/pc/machines/5160/ega/640kb/win101/thumbnail.jpg "link:/configs/pc/machines/5160/ega/640kb/win101/:200:100") +![IBM PC running DONKEY.BAS](/devices/pc/machine/5150/cga/64kb/donkey/thumbnail.jpg "link:/devices/pc/machine/5150/cga/64kb/donkey/:200:100") +![IBM PC XT w/CGA, 10Mb Hard Drive](/devices/pc/machine/5160/cga/256kb/demo/thumbnail.jpg "link:/devices/pc/machine/5160/cga/256kb/demo/:200:100") +![IBM PC XT w/CGA, Windows 1.01](/devices/pc/machine/5160/cga/256kb/win101/thumbnail.jpg "link:/devices/pc/machine/5160/cga/256kb/win101/:200:100") +![IBM PC XT w/EGA, Windows 1.01](/devices/pc/machine/5160/ega/640kb/win101/thumbnail.jpg "link:/devices/pc/machine/5160/ega/640kb/win101/:200:100") ![IBM PC w/MDA, CP/M-86](/disks/pc/cpm/thumbnail.jpg "link:/disks/pc/cpm/:200:100") ![IBM PC w/MDA, Microsoft Adventure](/disks/pc/games/microsoft/adventure/thumbnail.jpg "link:/disks/pc/games/microsoft/adventure/:200:100") ![IBM PC w/CGA, Zork I](/disks/pc/games/infocom/zork1/thumbnail.jpg "link:/disks/pc/games/infocom/zork1/:200:100") -Check out the rest of the PCjs [Application](/apps/pc/), [Boot Disk](/disks/pc/) and [Machine](/configs/pc/machines/) -demos, including the [IBM PC XT "Server Array"](/configs/pc/machines/5160/cga/256kb/array/) and -[Windows 1.01 "Server Array"](/configs/pc/machines/5160/ega/640kb/array/) demos of multiple PCs running side-by-side. +Check out the rest of the PCjs [Application](/apps/pc/), [Boot Disk](/disks/pc/) and [Machine](/devices/pc/machine/) +demos, including the [IBM PC XT "Server Array"](/devices/pc/machine/5160/cga/256kb/array/) and +[Windows 1.01 "Server Array"](/devices/pc/machine/5160/ega/640kb/array/) demos of multiple PCs running side-by-side. C1Pjs --- @@ -46,7 +46,7 @@ Below is the [OSI Challenger C1P](/docs/c1pjs/), another simulation in the JavaS It simulates Ohio Scientific's 6502-based microcomputer, released in 1978. More details about this simulation and the original machine are available in the [C1Pjs Documentation](/docs/c1pjs/). -[Embedded OSI Challenger C1P](/configs/c1p/machines/8kb/large/ "C1Pjs:demoC1P") +[Embedded OSI Challenger C1P](/devices/c1p/machine/8kb/large/ "C1Pjs:demoC1P") @@ -64,7 +64,7 @@ The project includes: + A simple Node-based web server ([server.js](server.js)) + Custom Node modules used by the web server ([HTMLOut](my_modules/htmlout/), [MarkOut](my_modules/markout/), [DiskDump](my_modules/diskdump/), [FileDump](my_modules/filedump/)) -+ An assortment of IBM PC and C1P machine XML files (see [/apps](apps/), [/configs](configs/) and [/disks](disks/)) ++ An assortment of IBM PC and C1P machine XML files (see [/apps](apps/), [/devices](devices/) and [/disks](disks/)) + The [PCjs](my_modules/pcjs-client/lib/) and [C1Pjs](my_modules/c1pjs-client/lib/) client applications, both "compiled" and uncompiled + A smattering of [PCjs](docs/pcjs/) and [C1Pjs](docs/c1pjs/) documentation, along with [blog posts](blog/), related [publications](pubs/) and more @@ -206,7 +206,7 @@ If no Debugger component has been created yet, or if the Debugger didn't recogni like a good little REPL. Use the "load" command to load a JSON machine configuration file. A sample [machine.json](my_modules/pcjs-client/bin/machine.json) -is provided in the *bin* directory, which is a "JSON-ified" version of the [machine.xml](configs/pc/machines/5150/mda/64kb/machine.xml) +is provided in the *bin* directory, which is a "JSON-ified" version of the [machine.xml](devices/pc/machine/5150/mda/64kb/machine.xml) displayed on the [pcjs.org](/) home page. The command-line loader creates all the JSON-defined machine components in the same order that the browser creates diff --git a/apps/README.md b/apps/README.md index d41e2cc41..3545693d7 100644 --- a/apps/README.md +++ b/apps/README.md @@ -41,7 +41,7 @@ described by <file> entries in its [manifest](/apps/pc/1981/visicalc/manif Productivity Software Arts December 16, 1981 - + VC.COM README.md @@ -51,13 +51,13 @@ described by <file> entries in its [manifest](/apps/pc/1981/visicalc/manif Since this [manifest](/apps/pc/1981/visicalc/manifest.xml) also contains a <machine> entry, the default manifest stylesheet will automatically load and launch the associated -[PCjs machine](/configs/pc/machines/5150/mda/64kb/machine.xml). The machine will boot or resume according +[PCjs machine](/devices/pc/machine/5150/mda/64kb/machine.xml). The machine will boot or resume according to its own <[computer](/docs/pcjs/computer/)> settings, unless the manifest overrides the machine's default state with its own *state* setting; eg: - + -The machine.xml file, in turn, refers to a [sample set](/configs/pc/disks/samples.xml) of disk images, one of which is: +The machine.xml file, in turn, refers to a [sample set](/disks/pc/samples.xml) of disk images, one of which is: @@ -121,4 +121,4 @@ and if it wanted to use all the disks listed in the manifest, it would specify: -which is what our [CP/M Machine Configuration](/disks/pc/cpm/machine.xml) does. \ No newline at end of file +which is what our [CP/M Machine Configuration](/disks/pc/cpm/machine.xml) does. diff --git a/configs/c1p/serial/README.md b/apps/c1p/README.md similarity index 100% rename from configs/c1p/serial/README.md rename to apps/c1p/README.md diff --git a/configs/c1p/serial/all.xml b/apps/c1p/all.xml similarity index 100% rename from configs/c1p/serial/all.xml rename to apps/c1p/all.xml diff --git a/configs/c1p/serial/samples.xml b/apps/c1p/samples.xml similarity index 100% rename from configs/c1p/serial/samples.xml rename to apps/c1p/samples.xml diff --git a/apps/pc/1981/visicalc/manifest.xml b/apps/pc/1981/visicalc/manifest.xml index 265597508..6c71b4fae 100644 --- a/apps/pc/1981/visicalc/manifest.xml +++ b/apps/pc/1981/visicalc/manifest.xml @@ -11,7 +11,7 @@ Bob Frankston December 16, 1981 Lotus Development - + VC.COM README.md diff --git a/apps/pc/1982/esuite/manifest.xml b/apps/pc/1982/esuite/manifest.xml index c56f317ee..da9efd8a4 100644 --- a/apps/pc/1982/esuite/manifest.xml +++ b/apps/pc/1982/esuite/manifest.xml @@ -7,7 +7,7 @@ Text Simulation Armonk Corporation 1982 - + Executive Suite (1982) ESUITE.COM diff --git a/apps/pc/1985/rogue/cache.manifest b/apps/pc/1985/rogue/cache.manifest index 231d9dd95..77c13b35f 100644 --- a/apps/pc/1985/rogue/cache.manifest +++ b/apps/pc/1985/rogue/cache.manifest @@ -3,9 +3,9 @@ CACHE MANIFEST /versions/pcjs/1.13.6/manifest.xsl /versions/pcjs/1.13.6/common.xsl /versions/pcjs/1.13.6/components.xsl -/configs/pc/machines/5160/cga/640kb/machine.xml -/configs/pc/keyboards/minimal-f1-f10.xml -/configs/pc/disks/library.xml +/devices/pc/machine/5160/cga/640kb/machine.xml +/devices/pc/keyboard/minimal-f1-f10.xml +/disks/pc/library.xml /disks/pc/dos/microsoft/3.20/manifest.xml /disks/pc/dos/microsoft/4.0M/manifest.xml /disks/pc/tools/microsoft/BASIC/manifest.xml diff --git a/apps/pc/1985/rogue/manifest.xml b/apps/pc/1985/rogue/manifest.xml index b8d3ccfd6..64d466de5 100644 --- a/apps/pc/1985/rogue/manifest.xml +++ b/apps/pc/1985/rogue/manifest.xml @@ -21,5 +21,5 @@ ROGUE.PIC ROGUE.SCR - + \ No newline at end of file diff --git a/apps/pc/1987/thinktank/manifest.xml b/apps/pc/1987/thinktank/manifest.xml index 2c69523e1..515d19f43 100644 --- a/apps/pc/1987/thinktank/manifest.xml +++ b/apps/pc/1987/thinktank/manifest.xml @@ -49,5 +49,5 @@ UPGRADE.TXT WTMEASUR.TXT - + \ No newline at end of file diff --git a/apps/pc/1992/moria/manifest.xml b/apps/pc/1992/moria/manifest.xml index b81f868b2..ea4c9201d 100644 --- a/apps/pc/1992/moria/manifest.xml +++ b/apps/pc/1992/moria/manifest.xml @@ -108,5 +108,5 @@ VERSION.HLP WELCOME.HLP - + \ No newline at end of file diff --git a/blog/2013/11/README.md b/blog/2013/11/README.md index 632a3e0d8..1ed6914d2 100644 --- a/blog/2013/11/README.md +++ b/blog/2013/11/README.md @@ -20,7 +20,7 @@ syntax, which is more than sufficient to handle all the site's **README.md** fil have used a third-party Markdown library, but this was more educational, and it was easy to add extra features, like the ability to embed JavaScript machines with a single Markdown-style link; eg: - [IBM PC](/configs/pc/machines/5150/mda/64kb/ "PCjs:ibm5150") + [IBM PC](/devices/pc/machine/5150/mda/64kb/ "PCjs:ibm5150") The script takes care of the rest, adding the appropriate stylesheets and PCjs scripts automatically. @@ -28,7 +28,7 @@ I had more grandiose plans, including a command-line prompt written in JavaScrip navigate the site exactly as you would an IBM PC hard drive from a "DOS prompt", and I may try something like that later, but don't hold your breath. -I've tried to improve the organization of all the [Machine Configuration Files](/configs/pc/machines/) as well. +I've tried to improve the organization of all the [Machine Configuration Files](/devices/pc/machine/) as well. The variety of configurations was getting out of hand. It's a bit tidier now, but there's still room for improvement. diff --git a/blog/2014/03/30/README.md b/blog/2014/03/30/README.md index 8043aabb6..4508bc038 100644 --- a/blog/2014/03/30/README.md +++ b/blog/2014/03/30/README.md @@ -15,7 +15,7 @@ while I can understand some whitespace inconsistencies across web servers, I wou on the server to modify file contents. I finally confirmed that the files were indeed modified on the server, by using Azure's FTP browser. For example, -[minimal.xml](/configs/pc/keyboards/minimal.xml) is currently 622 bytes locally, but on the Azure server, the +[minimal.xml](/devices/pc/keyboard/minimal.xml) is currently 622 bytes locally, but on the Azure server, the reported size is 632 bytes -- one extra CR for each of the file's 10 lines. After a little more digging, I [learned something new](http://git-scm.com/book/ch7-1.html#Formatting-and-Whitespace) about **Git**: it has a setting called `core.autocrlf` which, for me on OS X, defaults to `input` (meaning "convert CR/LF to LF on commit @@ -47,4 +47,4 @@ but it would NEVER display anything but deployment information. Instead, I had Sigh. But at least the site is up and fully operational now. *[@jeffpar](http://twitter.com/jeffpar)* -*March 30, 2014* \ No newline at end of file +*March 30, 2014* diff --git a/blog/2014/04/14/README.md b/blog/2014/04/14/README.md index b7fb3bb27..012cb75c2 100644 --- a/blog/2014/04/14/README.md +++ b/blog/2014/04/14/README.md @@ -7,7 +7,7 @@ Don't believe me? Just ask [Google](https://www.google.com/#q=node+express+safa stylesheets. And occasionally Safari -- and ONLY Safari -- will render those XML files as blank pages. For example, here's the -[machine.xml](/configs/pc/machines/5150/mda/64kb/machine.xml) file that's also embedded on the +[machine.xml](/devices/pc/machine/5150/mda/64kb/machine.xml) file that's also embedded on the [pcjs.org](http://www.pcjs.org/) home page. When Safari fetched that XML file from an Apache web server (what I used before switching to Node), diff --git a/blog/2014/07/30/README.md b/blog/2014/07/30/README.md index 11357a9ed..131a9ab27 100644 --- a/blog/2014/07/30/README.md +++ b/blog/2014/07/30/README.md @@ -1,8 +1,8 @@ EGA Support --- PCjs v1.14.0 now includes basic EGA support. It emulates the EGA hardware well enough to pass the IBM EGA BIOS -diagnostics and run [Windows 1.01](/configs/pc/machines/5160/ega/640kb/win101/) in color. Check out our -[Windows 1.01 "Server Array"](/configs/pc/machines/5160/ega/640kb/array/) demo. +diagnostics and run [Windows 1.01](/devices/pc/machine/5160/ega/640kb/win101/) in color. Check out our +[Windows 1.01 "Server Array"](/devices/pc/machine/5160/ega/640kb/array/) demo. ![Windows 1.01 "Server Array" Demo](/blog/2014/07/30/win101-array-demo-small.jpg "link:/blog/2014/07/30/win101-array-demo.jpg") diff --git a/blog/2014/09/13/README.md b/blog/2014/09/13/README.md index d15dca0eb..344a550ef 100644 --- a/blog/2014/09/13/README.md +++ b/blog/2014/09/13/README.md @@ -1,7 +1,7 @@ The IBM PC AT: Alive and Booting --- -My first IBM PC AT (Model 5170) [Test Configuration](/configs/pc/machines/5170/ega/640kb/debugger/) finally +My first IBM PC AT (Model 5170) [Test Configuration](/devices/pc/machine/5170/ega/640kb/rev1/) finally boots to a PC-DOS prompt. The configuration uses the original [IBM Model 5170 ROM BIOS](/devices/pc/bios/5170/), dated January 10, 1984. @@ -63,4 +63,4 @@ unnecessarily. And even though the test machine is configured with 640Kb of RAM Hmmmm. *[@jeffpar](http://twitter.com/jeffpar)* -*September 13, 2014* \ No newline at end of file +*September 13, 2014* diff --git a/blog/2014/10/13/README.md b/blog/2014/10/13/README.md index 5e23bcaba..763e7221e 100644 --- a/blog/2014/10/13/README.md +++ b/blog/2014/10/13/README.md @@ -1,7 +1,7 @@ The 8Mhz IBM PC AT 5170 --- -I just added my first [IBM PC AT "Rev 3"](/configs/pc/machines/5170/ega/1152kb/rev3/) machine configuration -to the list of [IBM PC Machine Configurations](/configs/pc/machines/), and not surprisingly, the new machine +I just added my first [IBM PC AT "Rev 3"](/devices/pc/machine/5170/ega/1152kb/rev3/) machine configuration +to the list of [IBM PC Machine Configurations](/devices/pc/machine/), and not surprisingly, the new machine fails to boot. I call it "Rev 3" because it uses the 3rd [ROM BIOS](/devices/pc/bios/5170/) that IBM released for the PC AT, diff --git a/blog/2014/10/17/README.md b/blog/2014/10/17/README.md index 3d46e0e8e..9c320c604 100644 --- a/blog/2014/10/17/README.md +++ b/blog/2014/10/17/README.md @@ -1,7 +1,7 @@ Release of PCjs v1.15.5 --- -The [IBM PC AT "Rev 3"](/configs/pc/machines/5170/ega/1152kb/rev3/) machine configuration boots in +The [IBM PC AT "Rev 3"](/devices/pc/machine/5170/ega/1152kb/rev3/) machine configuration boots in v1.15.5 of PCjs now, which includes the following fixes: + The BIOS expects memory refresh to occur roughly every 16us, which I've resolved by tying the state diff --git a/blog/2014/10/23/README.md b/blog/2014/10/23/README.md index a2f8bd8f7..c74412d3a 100644 --- a/blog/2014/10/23/README.md +++ b/blog/2014/10/23/README.md @@ -11,7 +11,7 @@ PC-DOS 7.00 still can't be setup from its specially-formatted 1.84Mb [XDF](http: distribution disk images, "PC-DOS 7.00 (SETUP Disk 2)" through "PC-DOS 7.00 (SETUP Disk 5)", so your best bet is to boot from the 1.44Mb "PC-DOS 7.00 (Boot Disk)". -Note that you must also use a fairly new 80286 machine configuration, like this [8Mhz IBM PC AT](/configs/pc/machines/5170/ega/1152kb/rev3/), +Note that you must also use a fairly new 80286 machine configuration, like this [8Mhz IBM PC AT](/devices/pc/machine/5170/ega/1152kb/rev3/), in order to use 1.44Mb diskette images; previous models did not support 3.5-inch diskette drives, unless they had been retrofitted with a newer [BIOS](/devices/pc/bios/5170/). diff --git a/configs/README.md b/configs/README.md deleted file mode 100644 index 65c74df55..000000000 --- a/configs/README.md +++ /dev/null @@ -1,4 +0,0 @@ -Machine Configurations ---- - -Browse [IBM PC](/configs/pc/machines/) and [Challenger 1P](/configs/c1p/machines/) machine configurations. diff --git a/configs/c1p/README.md b/configs/c1p/README.md deleted file mode 100644 index 3caad352a..000000000 --- a/configs/c1p/README.md +++ /dev/null @@ -1,5 +0,0 @@ -Challenger 1P Configurations ---- - -This folder contains Challenger 1P [Machine Configurations](machines/), along with a variety of component configurations, -such as [Control Panels](panels/), [Disk Sets](disks/) and [Serial Program Sets](serial/). \ No newline at end of file diff --git a/configs/c1p/machines/8kb/array/README.md b/configs/c1p/machines/8kb/array/README.md deleted file mode 100644 index 21c3d9ec1..000000000 --- a/configs/c1p/machines/8kb/array/README.md +++ /dev/null @@ -1,12 +0,0 @@ -Challenger 1P (8Kb) "Server Array" ---- - -[Machine #1](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI1") -[Machine #2](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI2") -[Machine #3](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI3") -[Machine #4](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI4") -[Machine #5](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI5") -[Machine #6](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI6") -[Machine #7](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI7") -[Machine #8](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI8") -[Machine #9](/configs/c1p/machines/8kb/small/ "C1Pjs:OSI9") diff --git a/configs/c1p/machines/8kb/array/machine.xml b/configs/c1p/machines/8kb/array/machine.xml deleted file mode 100644 index d0bf2d39f..000000000 --- a/configs/c1p/machines/8kb/array/machine.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - Challenger 1P (8Kb) "Server Array" - - - - - - - - - - diff --git a/configs/pc/README.md b/configs/pc/README.md deleted file mode 100644 index 3d73237ee..000000000 --- a/configs/pc/README.md +++ /dev/null @@ -1,6 +0,0 @@ -IBM PC Configurations ---- - -Here you'll find [Machine Configurations](/configs/pc/machines/), along with a variety of other component configurations -that are used by the machines, such as [Control Panels](/configs/pc/panels/), [Disk Sets](/configs/pc/disks/) and -[Keyboard Layouts](/configs/pc/keyboards/). \ No newline at end of file diff --git a/configs/pc/disks/README.md b/configs/pc/disks/README.md deleted file mode 100644 index c15a235f7..000000000 --- a/configs/pc/disks/README.md +++ /dev/null @@ -1,59 +0,0 @@ -IBM PC Disk Sets ---- - -An assortment of IBM PC Disk Sets, for use by [IBM PC Machine Configurations](../machines/). - -### Example - -An FDC (Floppy Disk Controller) XML file, such as [samples.xml](samples.xml), typically contains <disk> entries like: - - PC-DOS 1.0 - PC-DOS 1.1 - PC-DOS 2.0 (Disk 1) - PC-DOS 2.0 (Disk 2) - Microsoft Adventure - VisiCalc - -However, if you wanted to load VisiCalc directly from the /apps folder, rather than using a pre-generated disk image, -you could do that with an <manifest> entry that references the application's manifest.xml: - - - -The application must have a **manifest.xml** with <disk> section containing an *id* value that matches the *disk* value -specified above: - - - VC.COM - README.md - VisiCalc License - - -If multiple disks are defined in the manifest, and you want to include them all, you can set the *disk* value to '*', as in: - - - -As an added bonus, PCjs will automatically display the descriptive <link> whenever this item is selected, and it will -dynamically generate a disk image containing all the specified <file> entries when the selected item is loaded. - -Pre-generated images are still preferred, and you can now include those in the application **manifest.xml** as well, by adding -an *href* value to the <disk> section that was used to create the image: - - - VC.COM - README.md - VisiCalc License - - -The PCjs DiskDump module is used to create all our pre-generated JSON-encoded disk images. In the above example, a -pre-generated disk image could be created from the command-line with either the "--dir" option (which will traverse all -subdirectories as well): - - node diskdump --dir=./apps/pc/1981/visicalc/bin/ --format=json --output=./apps/pc/1981/visicalc/disk.json - -or with the "--path" option, which specifies either a single file or a set files separated by semi-colons: - - node diskdump "--path=./apps/pc/1981/visicalc/bin/vc.com;../readme.md" --format=json --output=./apps/pc/1981/visicalc/disk.json - -or via the PCjs server's DiskDump API: - - http://www.pcjs.org/api/v1/dump?path=/apps/pc/1981/visicalc/bin/vc.com&format=json diff --git a/configs/pc/machines/5160/ega/640kb/win101/state.json b/configs/pc/machines/5160/ega/640kb/win101/state.json deleted file mode 100644 index 91aba6cb2..000000000 --- a/configs/pc/machines/5160/ega/640kb/win101/state.json +++ /dev/null @@ -1 +0,0 @@ -{"parms":{"id":"ibm5160.xt-ega-640k","name":"IBM PC XT","resume":"0","state":"/configs/pc/machines/5160/ega/640kb/array/state.json"},"timestamp":"2014-07-30 16:17:34","version":"1.0.0","url":"http://pcjs:8088/configs/pc/machines/5160/ega/640kb/debugger/","browser":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36","ibm5160.cpu8088":{"0":[2817,0,4,1550,2182,0,0,4],"1":[504,1687,1687,1550,0,61954],"2":[26992,24800,0,0,0,-1,-1],"3":[1,334012186],"4":[0,[14889283,7340351,4026595423,7340351,7340351,4026597204,4026597155,4026597155,4026597029,4026591623,4026597155,4026597155,4026597155,3355445088,4026593111,7340351,3221228759,4026595405,4026595393,3355443798,4026591033,4026595417,4026591278,4026593234,4127195136,3355443590,4026596974,7340344,4026597195,4026593444,1314,3221239136,14879739,88211840,88212108,88212121,88212706,14882004,14882081,14886887,14879751,7340326,0,0,0,0,88212333,0,3809216746,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4026592345,3355444199,4026593381,3221238112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50528256,101125458,3221228809,4276423167,4294963200,4294963037,3999858752,4068667392,6,4194305,60527,8452521,0,2080374785,3355443805,29096067,4064724992,3866034179,4060540928,49808376,0,0,0,2147484781,514,3407872,392757300,543437166,293017711,470622067,392761719,470626670,778247181,958406756,70007,50856067,67584,5244418,16384,0,0,0,0,3556769792,54468099,13107200,1615,305397760,256,336860180,16843009,4063262,536872984,9,0,0,0,0,0,0,0,3221225740,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1651310592,538968064,661483363,0,0,1610612736,132712,4608,48194153,705233445,16142591,2,0,1610612736,722536,17152,1296912195,541347393,541937475,0,0,1610612736,2950760,17664,1230196289,538976288,542333267,0,0,1610612736,5244520,1664,1297239878,538989633,541937475,0,0,1610612736,5506664,6016,1145784387,538987347,541937475,0,0,1610612736,6293096,6400,542333267,538976288,541937475,0,0,1610612736,7145064,1408,1263749444,1498435395,541937475,0,0,1610612736,7341672,2444,1263749444,1347243843,541937475,0,0,1610612736,7669352,2074,1347243843,538976288,541937475,0,0,1610612736,7997032,2523,1229734981,538976334,541937475,0,0,1610612736,8324712,4608,1162104653,538976288,541937475,0,0,1610612736,8914536,3139,1397310534,538976331,541937475,0,0,1610612736,9373288,6177,1262698818,538988629,541937475,0,0,134742016,4294963037,4294963037,3999858752,4068667392,6,4195585,60527,75889065,7340037,905970945,3355443805,97777795,112,4276485747,4060606464,14877097,8978963,4064714629,460571,0,0,0,0,1560281088,235133702,2550201348,302053380,2768310785,302292228,302060033,1392573441,302087937,3305220609,302105857,302060033,4211145729,302129665,1661098753,1157784322,302060034,4227928577,4160973056,302060032,201526273,302060035,4227928577,4160817408,302060032,2869078785,302173186,3808512769,2301542656,771784990,8586892,733894347,1445915392,3955241552,2958054916,4177409,1347821803,183222322,28332118,1347814635,1774060208,1443621632,3942667710,398349828,1381060608,102651223,2241998419,516238848,1200226433,224889345,2333233035,2325156951,3828482631,4026789891,209128252,243254423,620699406,418055092,516228016,1328087169,3951146002,2166277387,2311074560,28578375,2166277422,55019776,1562314587,1482250847,1358678878,3019900859,1477496078,2232847055,3287691776,1376175662,3482321665,7340501,8814611,1329791121,538976334,3808436256,115888392,3802814720,867429368,1376159424,1975519745,186043669,1039168704,41251328,3221885104,646448245,2697134418,3221881170,28579701,460592845,108380171,382533812,4057579,2952951154,2166277392,222791680,3925830633,48824142,3338005248,86534,2397909790,436651741,113647108,522060828,652075971,1363608970,1596575063,3958694489,1879213775,2256535552,1090557696,538990677,2552242208,28674,2533394048,1297040128,538976305,3808428064,8185873,126271539,58048522,2852128488,32111330,3892491519,3304456255,1476817934,3723037616,1474872318,168266240,3893654976,3304456229,2819585025,3893064736,1072234455,3909584896,3018456923,780542,4134805672,1948304630,3032214513,4275693571,3905098957,130416670,3819694848,92939945,3892425799,3304521703,2953147520,4270254346,2464934882,2348724968,4190339546,49857281,2147483760,10879110,542003792,538976288,7341683,8814592,1347158182,538980692,3808436256,92939804,2852570695,3828482050,1946165480,2855698442,4067754242,3808311273,4266060260,1962937064,2160391923,535425909,3892491518,399375955,3304456880,2953868545,147125770,3304458612,2952950816,3284142601,7340989,8814600,1279459515,608912207,8224,2735049510,3224568586,2334530253,2334523981,1018168405,11920886,1891221763,4158294807,2965933025,65533540,13796296,3405971639,2449527427,3909860241,3515343863,65271698,13796289,375698,3364549622,3297378485,4093088408,28627083,2850626253,3451925501,168165658,2344717059,3521303002,3521302993,332596177,196711105,2347890665,4156568536,3117648881,4059496648,1919220352,1693089795,3520760565,3506483920,3979730,4203409911,3297178102,51028304,2343262379,1441377219,1879173117,2248146944,50381056,413186,512,33554432,134349696,3205165568,3304456193,857830404,63487743,410321978,449642676,453071915,3372942156,3523938933,4202890868,1191278376,8462021,3910041481,2317810948,1108005,8462021,2299357064,1334579839,4243515668,1397903696,3783314570,4177101048,4273209972,973544639,1946407686,3204805187,1022035759,146473392,21018944,3204514234,3304457349,4261901570,2210660032,3304466625,50885633,4268799945,2294480582,2106065525,139299078,2282382728,1569196869,257263629,1482250843,16908483,1073872897,4227950592,589826,1,3942652904,3439773457,3942712067,3439773446,3892314883,57868301,3925625833,113704028,4160881613,3366067171,3643181315,3906963203,4069261146,1426321667,141900561,145753206,104514553,158467027,1946622880,3955293710,3476979722,57999619,2718021352,243860436,865207249,225834962,378061566,1300956118,4157747983,3575023857,64463619,2349060513,3521565126,3521565158,2180187110,1912733638,3504244507,713077999,987662311,2315417312,3297399008,1476416232,443860010,3897755216,3347054626,6547458,3898083163,3372089366,3892496256,11796531,378084045,243860425,3287811019,2337297239,46629115,3120362379,2334523648,76228125,2870774054,4074915398,63977088,1599821825,1958742723,224758523,640337150,3761898454,3767140982,3905194576,710410251,48550084,2967399420,376321,63776394,3608578896,3523653891,3593865958,2261420803,3558247401,1913900291,2169526336,50580798,3020322049,1913900292,3783284784,702820927,33804550,3591276744,223164931,113646198,2315322326,4261664054,259340998,4130473586,64423679,64304776,11817155,1314395085,4236249204,1476621440,1048614635,1946158032,123427590,251607528,2730789383,129566293,105889536,1166716658,3507391238,3643181827,2160326915,67637312,100794371,525316,3341191692,107462403,2247994857,470058244,470232839,2231840519,28678,2885715584,1414548480,538976306,1879480096,2256535552,1275113984,540234832,4280295456,28927,2634057344,1297040128,538976306,4130545184,3767197326,84158086,1959016991,2722169876,3653109493,199774982,4209502208,382592050,3284152923,1954489516,3945385466,1225395703,1919251310,1768169588,1952803699,1713399156,1679848047,1702259058,540688672,543452769,1769108595,168650091,544829025,544826731,1852139639,1634038304,168655204,2147549194,17302016,33554944,150491395,67113216,256,222301417,1986610186,543515753,1919252079,2003790950,52693517,5653828,84219904,131584,1481982208,538976288,538976288,65536,0,720929,1879168448,0,0,132608,1313817344,538976288,538976288,65538,0,720929,1879130323,0,66307,66048,1314017280,538976288,538976288,65536,0,720929,1879213760,0,0,536870912,1313429251,538976288,1297040160,65574,4867,759237487,16794946,2115072,1245955,0,0,0,0,0,0,0,0,0,0,16777216,512,2147549184,396800,83832736,603979776,771763200,0,0,1109329175,1769699,49807587,20971632,196720,536870914,1879130117,3380610048,1309725712,538987605,18882592,1,134349312,4278190080,251658496,369156928,16778242,0,0,3812630520,1375731968,1879097602,83889664,781,0,3003121664,16835330,234881024,1280,0,0,3808604928,256,3366373376,3366308005,522002341,522067742,505355807,396831,1769409727,1852378478,1937207140,13,0,0,2684362957,4293958144,16838669,201786647],1,[1,201785571,1,227,1,4278190080,4,4294967295,9,0,1,13312461,39,0,1,1579776,1,1,1,1313429248,1,538976288,1,1297040160,1,5632,1,0,1,184549376,1,8448,1,0,1,637603840,1,18089612,1,3841982602,1,2351361330,1,19274308,1,50266369,1,14893787,1,264,1,117440512,1,3187802112,1,1879213570,1,3808467968,1,1245952,1,4278190080,1,1174405631,1,33566976,1,637534208,1,199,1,50331648,1,151061249,1,4294967040,1,2769289215,1,262350337,1,58176,1,1207959975,1,7340352,1,21025747,1,112,1,65536,1,723910656,1,4144035590,1,61032664,1,3210223360,1,61866017,1,17743786,1,203,417,0,1,2415919104,35,0,1,4026597093,1,2367615623,1,88224512,1,14879839,1,14938627,3,0,1,4015851528,1,125896704,1,134217728,1,1921,1,126224257,1,37750667,1,4194368,1,134218372,1,134219548,1,1921,1,126224257,1,37750667,1,4194368,1,134218372,1,329500,1,7340259,1,134284160,1,97730591,1,112,1,7405171,1,7341410,1,77328966,1,14877003,1,1121648752,1,38944783,1,38928611,1,722468864,1,1075773441,1,76560,1,16415,1,16974418,1,1121665039,1,262371,1,965410818,1,290804999,1,88211499,1,213847608,14,0,1,538968064,1,14937102,1,2097216,1,14937102,1,4276420672,1,4276482048,1,4068732928,1,293933381,1,291115380,1,1835438,1,458759,1,5376,1,227,1,3221232992,1,235795014,1,4981166,1,458759,1,14877567,1,227,1,7340335,1,913922,1,14880923,1,51048962,1,722154710,1,909024432,1,213845314,1,653083788,1,2628791375,1,1107303680,1,2566914821,1,33612544,1,188479488,1,4278191366,1,255,2,0,1,3019899392,1,2149640960,1,1989171196,1,3472928794,1,2402179160,1,2617435398,1,4281225466,1,2147673398,1,2005935353,1,3907095272,1,2351825116,1,771967006,1,54926985,1,3683568524,1,21038846,1,2734876065,1,3886091218,1,198222594,1,646533208,1,378274533,1,512623335,1,646513061,1,378273838,1,3414949936,1,2428294030,1,521075466,1,1049165618,1,113639748,1,3321954629,1,59654,1,3822181514,1,1961102076,1,217874459,1,4236249718,1,2147841105,1,209015036,1,21118592,1,3156112640,1,434834384,1,21104326,1,1124517376,1,817692417,1,1174861323,1,91553537,1,593750096,1,2822176600,1,3086953985,1,512429332,1,512623430,1,4207084360,1,1091501614,1,646655489,1,2385380069,1,2332223254,1,4622572,1,198353198,1,48603950,1,198222126,1,48735022,1,3472884712,1,2402159847,1,1477240838,1,1582979419,1,119496031,1,3895918382,1,2402206476,1,101509126,1,1448563998,1,1347637586,1,3308186347,1,3271746870,1,883363502,1,893596848,1,895890784,1,275320893,1,898184570,1,928724373,1,268187493,1,779948079,1,249048803,1,762515257,1,755707139,1,770781013,1,271191492,1,231149524,1,230952393,1,266276292,1,756747716,1,258944291,1,285151149,1,757797147,1,283389235,1,747318382,1,750529707,1,264244785,1,666766841,1,238555105,1,284102231,1,338890351,1,301796882,1,313332618,1,970734387,1,1003371193,1,989674491,1,1018117217,1,1009007870,1,1038302283,1,372118962,1,666441283,1,665528308,1,1070153497,1,298848714,1,342167139,1,286592556,1,1043218023,1,2999173170,1,2317293056,1,308144322,1,359858096,1,639154920,1,1242388107,1,71731750,1,2334572798,1,3313697358,1,4280477718,1,2298760329,1,1820919380,1,239373314,1,2334070467,1,2332817182,1,2701915406,1,99093497,1,39619071,1,2298760329,1,3221930756,1,28312948,1,503565289,1,375345671,1,16498207,1,4090006445,1,3284153253,1,15704118,1,906044611,1,3271618466,1,192266250,1,922669032,1,2281784992,1,4274193988,1,2148103624,1,2285240802,1,3271640598,1,3905159088,1,1153957556,1,2348892418,1,3905097812,1,1153957544,1,2348879362,1,381882452,1,3905063455,1,4290253239,1,3894702847,1,3526563859,1,637534907,1,1225608843,1,386132049,1,1128399221,1,643561442,1,4261693066,1,652489408,1,3892465291,1,1284111980,1,106727684,1,2298631305,1,3224552196,1,1309066806,1,2318794755,1,906186278,1,3892530339,1,1552875084,1,2394960660,1,704192,1,2768275647,1,2779096485,1,592570789,1,2987009000,1,173175296,1,2701490404,1,3271426367,1,272992550,1,637726881,1,2702329225,1,2300969714,1,396432453,1,1166616067,1,3304295190,1,3087070014,1,104464639,1,158663393,1,2881552043,1,46506155,1,49258666,1,178962686,1,2382656722,1,3103995166,1,2784165904,1,516145202,1,4294948871,1,272992550,1,612034755,1,4017289867,1,3289400715,1,3221951085,1,1569449336,1,1344164374,1,4029581622,1,109852162,1,501744370,1,113727499,1,4294902571,1,3892991464,1,1594296820,1,3909053673,1,4289726860,1,3347300978,1,1300964897,1,1976110061,1,8435971,1,1179046451,1,53812878,1,4144120971,1,4155330801,1,1523715057,1,1967129716,1,2343256577,1,11578050,1,1933638019,1,629679619,1,435218627,1,2283881865,1,2105746261,1,57884686,1,3273946504,1,4078865206,1,244004352,1,1105723637,1,39619069,1,3272625289,1,4078340406,1,512505344,1,2999124213,1,2317293056,1,273017026,1,2766671730,1,4246661142,1,2348969097,1,3224505924,1,3288314051,1,4289732374,1,3340498152,1,4278274310,1,1191626751,1,3909091073,1,1170610797,1,2105540871,1,141885188,1,4278470087,1,444917760,1,1964667368,1,2687943657,1,918749502,1,973151904,1,906326992,1,20846216,1,1019382467,1,909800959,1,48578244,1,3454589747,1,3035460111,1,101705729,1,719850357,1,1300244000,1,3224518678,1,1702897347,1,451460886,1,3906679584,1,4034006956,1,4008182196,1,854553605,1,99084516,1,29053891,1,261548032,1,1156979570,1,292847640,1,1959089694,1,71628313,1,1948212752,1,3945385220,1,583683,1,3905117176,1,4201779060,1,3892570960,1,62136277,1,1946530024,1,45373686,1,4161120488,1,1017917123,1,3908662308,1,4125828076,1,512306883,1,2351825720,1,3405986310,1,3291370246,1,637745182,1,216961,1,3406256897,1,1445050344,1,2415666152,1,3905095748,1,3290824728,1,4229359647,1,2348965001,1,3905097796,1,2300968968,1,1603020311,1,3677602562,1,3632972686,1,3822183377,1,113653443,1,2399076775,1,116797122,1,1962869159,1,512634375,1,116064677,1,2398871528,1,4130542684,1,2159672971,1,782627584,1,27723510,1,238449919,1,3118150431,1,3892707348,1,343025788,1,854087430,1,637760040,1,123667966,1,117803558,1,126494214,1,3806479111,1,27604735,1,2401653595,1,2348815878,1,2382472454,1,113651419,1,2701132199,1,3375562754,1,3264141710,1,3204483262,1,112787466,1,648409856,1,721420963,1,268385730,1,4290249590,1,834319,1,78764075,1,3666796755,1,2298480291,1,3338668062,1,3439329286,1,84330016,1,113744384,1,567083088,1,5375686,1,2301543371,1,3271664926],2,[788216808,27604735,3271705743,4294651880,4171044468,3828484843,4294648808,4187821684,2409366665,3921876548,2884174000,651225088,4069258610,118918190,113716739,174588677,3341684912,188934,143190245,3614573488,1053153397,4146791219,141950806,922689302,3224568599,3892516771,1366427186,3288825320,637743934,17122758,3088107395,2343247918,3892516630,783812229,3898256174,784598653,844759792,418244800,51844747,53690053,2314666846,2312254228,1418265172,88458756,639571457,3892332170,1340676461,3294255871,839053358,415099072,53690053,2214003550,80091886,4292208869,971572656,639691007,1377720946,2380853899,1968140808,51880269,2267469963,3221953630,3195281246,3347316107,785877790,49626752,1174565888,785288006,49692288,1174696960,187427649,858354907,1031808731,1191474176,2968972099,104476207,41222393,1135238320,1482169067,3588817840,4219683838,3677602624,1958742700,1949187174,3008541,1916861315,1166681839,558426367,844038517,3341200064,4294908998,179097323,1010791616,3906041134,179044387,3946017984,3903477703,326369211,1946172544,401124364,2867819809,1946135272,1606637570,994791363,1358525690,4282747430,1478557160,1263529588,2857364971,3925759465,1139277989,2348315173,129165554,561377650,51854987,427097867,474909478,1979709827,109635605,2348376040,1552811604,1490283278,3909464152,4181458472,279970933,1053160939,3744138035,141950803,118890262,2952968639,768319,3224546035,152692906,2382746344,2332243230,775794163,2210690336,1034755782,3145018926,113712918,131391,3322262248,369280262,1929714920,4029596838,387877634,373483523,3904909914,1053103923,56296243,3842492127,2969456361,378661635,1975519775,4179003910,4263504640,2282059208,3271620886,108382462,16389770,3372092651,378013045,2965569786,2917712895,106203640,2214431683,2880242375,4272738443,3237915336,27845682,3304982133,4142655696,2326447242,2863441368,2880305290,3939698097,2344747848,4157748170,1204325361,648848711,2903918216,652736170,2869315075,2301018371,723913542,3640069446,3906194314,1183393344,1187456525,3271557148,67896834,1082130440,50595842,378285818,2301493991,235070758,187743255,1090977334,503773953,166207254,443686659,1946927592,118359573,112845874,348700416,74821362,90540582,4194826503,1091501622,646657537,2385904357,4211271446,2351889099,771942166,48572041,817633038,117323275,117113153,3894351390,1914634940,194570445,2704716267,619184396,3271652096,507059974,108331009,67271,1048576000,1952055296,190698,3633112043,198147,650153536,16000,638219341,16000,4177687642,2160326851,1509949502,3655923828,653488895,81539,652965120,200331,51249473,243934720,243793920,3622502400,3224567808,211891792,4290111489,520492402,81539,2149413888,1509949502,2582121332,1491825663,233375664,4147308796,39618907,4075489456,1929355496,51284970,3392887296,3515548278,2010725202,2351264974,1086522328,512344206,3408592899,243869257,1303576579,7814,2000934,113714688,1,27631926,2348810659,3915071704,3230464942,4282247240,3341158770,262,2968316672,2359290633,686311616,3942806527,3906506375,4151508789,200331,1993947985,4286179740,922126312,24450700,1929824054,906146561,24577735,2738225153,1156973235,58032152,3892347113,371127928,857675271,1746831835,1914603521,23444225,168040121,3105387748,3439199502,381227380,1959591432,168671570,1265945854,3020361657,1695451270,1731102721,533498369,906022120,23608971,2147534839,3783921524,1008368104,914715649,23668352,2149521149,108332541,2718003872,646578867,3572892009,3892503680,2704733680,3032679091,179760007,4263933156,4261770444,3272701132,4280382719,350757748,591695616,3273737359,3892323304,384305151,5302294,1501379,1359395816,1494616296,1072220427,3013621248,2968089858,2402730778,3892403462,4281791920,906031926,16070399,2334070302,2298574094,2332095758,2298573582,2332095246,520189710,17712327,3906374400,317395106,1560710966,110048769,2402681077,3892376326,4281791836,3305200934,1149966708,1638086150,512505345,4281729379,2332123422,2738227268,4281729377,3271647518,4132525910,134399238,633217141,71628545,259293184,180781910,3103963583,2817720324,3306058846,4294869812,385475445,1583307039,512505539,2089419523,3234824196,920643456,50411145,784655851,1059324174,18744890,638350069,1946175034,1858348550,2314529560,2349002798,3271750150,2974830935,370585604,21741319,1353341098,866828682,3347295168,3766900744,1355056810,2360066955,1482271704,2443940523,3143618951,1472397643,145838161,4010672694,2714168064,4282188585,2205578751,202558,3287876213,51846795,57989899,3104963560,1139277825,2347528721,184751894,3893065170,113705456,4294902079,1048646635,267911955,512296050,3549102867,3941129010,1317676560,851574276,4289745389,638755560,100814475,53690052,281510743,3922837555,24357875,3237896106,88442918,3795998983,20947416,3116628032,548929540,2863395616,50673291,2208960688,1149962951,1150003990,3263933204,2881500075,3135816619,1392144922,583710,3905117959,4201781933,2682789654,3892605694,3905100409,1048576991,1963459269,19589123,503353064,53812878,3825870730,976630644,1946346278,189265452,906327048,53937918,118944651,3103963583,2800943115,2149986164,1950351229,784605173,2196243184,3955520256,243998541,238747967,74646313,53022345,48440890,243916916,3958965035,523012657,46474890,1946732022,147125769,3828533364,4236252395,2210362376,1827147718,4127683587,4278379014,784642164,2317746928,118882406,20947395,2969649059,870372100,3521171922,1586177746,3773005826,3666605047,107604051,857115483,281182979,52877827,2713911894,104530239,628359979,549684032,527620667,48963210,507167742,410125044,53288587,267975553,4219668339,3942806018,2747529639,3287810367,48963208,503398307,53690053,1107842443,105572383,2783697715,475958054,376757003,267975553,520501362,3894310541,645071346,474400550,521535488,396607539,48996867,51618632,189172518,274107174,4104307243,353798402,396477187,1183393283,3674981148,521589876,51846793,71731750,4104306942,184543234,51592841,3677541259,48963208,2299457768,3271759126,10414160,911856010,46468744,259246219,3523871861,78644341,3224552441,1950018553,906211372,46466806,169375000,1360558317,891194934,191859203,1963050486,36562947,2953081945,852617989,3942887616,906080268,46466806,4173427728,521556163,3107881116,91565570,3942756509,3288767760,503514430,3247113815,521431784,1488980487,45089908,3288777721,1191380286,512644638,4085973813,4076866489,119496356,74907964,3287859210,3224617977,49652534,3305555510,3903591938,1131682082,1017962634,1315271738,374742606,1048589831,1946157306,10807301,417876083,3919590912,3325448192,59654,1493086696,15311414,3035176798,3904909824,2977039515,4175961878,516159498,4293781590,4264959838,2147677702,1081344060,3892729374,1929838656,3911147013,1482162306,3538421526,3284205079,4110876214,214206978,509619232,118902870,1476410856,3001606259,1914658559,2481499362,1320907800,2313901598,855532520,118932416,855644351,243939017,2800943127,3897429108,975575081,4067753797,3903636473,4168423526,3103963583,317194249,1949187096,408217614,3221882740,3802793332,2210658797,548405953,521579251,3288037864,4262651934,3897951775,3364493071,1602275712,1979136775,9103619,76174878,1048583958,1946157306,118883863,133909992,3221884530,1583248501,518522646,3284205079,3897624151,123337885,3312480863,4127404862,1947208519,1048589909,1946157289,2362936081,2149539800,1349779517,4203435806,344709262,4146847531,1364611155,2332587519,4257409242,3904909914,1582894743,1049320280,4144169779,526376707,3221882250,2336693876,396421367,1692992373,3375517439,526369785,3221882250,4153082996,3237921785,1589845782,2332330527,4190112503,4029596867,2747282178,933364031,698566659,53191427,2687914179,3505783493,371508514,1460061016,29053782,476047360,2315503491,3305324830,637747766,639202697,639327628,370695560,3906679583,3347258433,1075743235,1010222339,1971922435,1569465881,1569203739,3323926040,82950,21300934,1600019201,1460060935,113660758,3321954628,83206,115923763,63406876,408783398,54533768,427148582,1010207030,512505347,3308651326,2315453750,1959073884,1569203737,1971922456,1569465881,3139376667,3471310849,63406875,408783398,54599304,427148582,1110870326,512505347,3308651332,2315453750,1959073884,1569203737,1971922456,1569465881,3911128603,451477371,2027620867,70248452,4080977091,1086584320,3287680884,842626052,11200960,3750436614,3224621619,922355176,50673349,2348381416,914797783,21905035,2147534839,535300468,1023052563,2346152961,1040398074,1995112797,1965081590,29619911,2682848116,2394983424,870288344,1371704274,3892314553,911866302,50673349,3893982405,703074725,2259965945,1312721718,13104897,3893589120,912200402,22873799,20709377,3224558964,912200427,22888067,505378049,1528729142,520456705,1493630774,113718785,334,1947876423,3758963716,535515058,222079660,80085877,3758767114,856126963,367454454,521535756,2315144168,369160246,155093279,3288954115,637732158,3206047104,3271834344,2348711912,184610870,2160162294,2147625534,113706612,4286579242,3126265425,2296906282,1493655318,2147626174,2692028988,1336548016,2447903408,3958780693,31713449,1702419210,639132648,638862729,3893777801,516097112,770187030,4085981182,440183889,1709704564,1492574741,3894395179,703331784,4075339827,918894328,786957061,3034024952,1049310855,3354853710,158629888,2333202920,1946238170,1570840539,87999489,651309827,2332980727,66185416,1087078595,3924017203,3317926430,2332095262,2832348155,2830202144,2828039426,2338813188,440369346,3109116532,2464677889,3308673528,3305309494,1189615988,4157270032,914863191,21905035,2147534839,1944588660,3342229265,16866566,1946237952,1594485725,1564377910,477364225,117388866,507969881,1528729142,440238081,906589215,21890759,3068264448,3911172747,3515613035,521598699,1726502662,2332520985,63341559,123674374,104347331,4168220958,75090174,20881462,49259062,4094593731,2297558530,2315447078,2347578056,33756438,14057684,51584651,53288585,719853795,2178909957,1930426619,2314461698,2332241182,3906767575,3224504597,3571978164,4186686218,139364902,256281126,3968525362,2337296722,2156751,443832664,4058173443,3905915738,2557739026,3993421366,3051880450,1946237968,3277505518,1720329809,1183458838,3892728577,585889622,1108112,3325487476,16969222,1007718376,3287184385,1720329809,1183458838,3892728577,3649894245,3309182495,2716340854,131698422,244004443,727646557,920254415,2835435169,1354989568,3372090762,49259062,2333623690,4127919733,2159937141,242583808,119442486,2300515843,167970110,839023040,4139968704,856257368,3959867081,3277521922,1916862083,2314613250,2734886670,378077963,512426765,512295155,113640201,3321889516,191750,3875003019,1375936419,3874997131,2210595675,1584726226,2332238243,52404688,39750438,1316213563,430175223,488016131,651201283,2718189090,3247112939,89033254,378137299,3874947859,100911243,3531800819,2702865408,3640066291,860356981,2750871506,3874947855,49022662,3821570818],3,[87999504,1569334787,113689368,855704300,87999689,2713934595,3649766173,242532363,38152998,3626752247,3271754867,597941043,868453123,1995908818,52929282,52762249,52631051,20828277,650867968,2734835339,378077989,650314535,638600587,722623883,453189382,1912807710,185234718,991458496,2332193729,4029596872,4288407554,51580555,184933096,3909711049,2968060337,12970240,51451529,51584649,52641411,3892540416,1048774177,1946157863,109832417,113696626,2315322093,2332224278,2332239630,3892515614,1347880613,4112420435,3897643520,1515978245,2317801987,3605528646,122013191,71645697,1429815669,960262664,930285661,359808,1347956340,1428902487,2346383112,2348321783,1317742274,65140482,281445368,906422737,16057998,24356339,1599735716,4622886,3892819432,2977236898,1499012886,2165236571,1930426619,4278235680,3942846726,52797826,292864011,3892519843,158467565,52233927,1860698112,87475205,50962691,103544971,3526557939,239897382,104591863,578028303,49022662,1959922433,3959866905,3391816450,4110847494,3224605440,24373713,2477519786,3364569095,4129750667,2029983813,51618068,493191462,153546752,295771461,1166616067,51093787,51189387,55117795,13796289,3816866625,1569203775,4029596696,4266125314,2332237729,3808633110,2210464632,4146462930,3632988790,24498699,1317676616,1357435653,1053034066,2334524165,2334527557,637997653,2332194551,1959922632,463683585,2747282179,832766767,3643496451,947150706,647219851,721577719,14320577,3531850499,2334911232,72214728,3085441251,856912645,3959867081,195100930,219581187,87999491,1575731971,17557904,561431083,799265331,823560451,624853763,292814851,52903555,4278875136,3338872582,206086,244013056,3706192659,320768259,286689539,1958882051,1369498400,1541982347,2742179845,378259595,1229062929,3706192756,320768259,286689539,591299331,125042691,51584651,2701409000,3221947175,100754804,1860698905,3976644100,378142978,512426731,243991315,2330460967,1380996868,1183458899,64588544,96725210,17253830,1963214138,139802898,1564020082,3339219720,16712773,3892695528,3765765566,2385926747,3892376862,1532623843,199434006,117375154,3068855057,2717848809,3221947173,597888884,67364867,52233927,3102212096,87999491,53453059,53546635,74825739,141871371,272957734,307040550,51318411,2348693481,1959398344,77115,637590147,637695735,3540340362,3905457128,484639459,1912893928,87999651,52404483,272992550,637739425,856835465,4263111113,3893362618,3790275826,3288783667,637732158,639327625,639196551,1926529,3674933232,3521693556,650308356,1997364795,8579093,124992907,3540300113,2180602351,370147303,3025191711,268418944,1477178600,6482115,208876939,3540300113,3867236834,82509839,4026590849,898232843,859227446,88393219,1048589825,369099511,1355904031,4188098899,891194882,281445123,521544840,4212558672,114178,1458094130,859751685,88458755,281510657,2114135631,92821506,1532567318,113689432,1342178039,2337427795,65589699,651310019,4144123531,1174611697,1380993286,852527953,114368,3305444584,2365797174,1482231932,1006109530,2317972929,4263450117,2718103302,378077945,843186939,114368,3305434344,2365797174,92934268,4204928790,49921794,2338019674,1491653059,4293362115,2684531712,451412719,49258507,2968609768,1720329743,21734145,21825222,1309067009,637534209,2719368842,503710040,637619131,118650565,384882664,1049298719,3354853710,3111485440,2250695730,4020246374,1495665154,1947564033,3305030401,18955973,1946436923,2201863668,4101373951,3322121448,973145925,141886533,4278470087,61138944,1963168232,2126849770,71694098,242556928,45817622,4269008896,53690053,1426459883,557761846,84338689,3347253085,512505360,521535835,22625929,2317751984,1268973926,1292289537,113705473,334,373721638,100751522,1996432926,1996432916,21740306,3892780894,369618988,1312721695,13104897,640775552,3306571402,973167926,326371908,921493224,22625989,138840614,258378278,385500553,4294948895,474383654,650314101,3273410185,922671849,855854241,378091218,602473292,3909202154,911272488,55445190,109983235,4202889637,3120788230,3666542598,1793590867,1918574574,64523271,172995,3089427288,3263377664,3540300047,3825986026,2251744306,167832102,113653476,1946157902,113653254,3892380494,4281787648,2399249718,2649297988,113126,1031862923,2198042111,1166739399,592808737,1053034179,2334524165,3816889693,2334527487,3674938197,3391823476,3389196403,2334577203,3808893277,4248561678,267976577,3750167923,3287474754,3276423431,51582603,48963210,3892388072,113640163,2332099309,2332231990,588155902,2314797827,3288533310,2198025022,1040388295,113443613,3892445368,3280797642,16057998,4270316430,24373713,128316324,859751734,274566403,4259902251,1983587841,3892539906,521536079,52011459,52011840,52102715,41353648,3892756530,512688010,3922788597,4087611763,3308652453,3322098462,2365654343,4264235127,4220254091,637647848,1912763963,34465795,4139982614,4278381830,3953141108,650182146,1979991610,320768791,4177232131,3893523215,1049230441,117375763,11535121,4160940962,1388575171,1183458899,2327903748,2344757984,47569,50087144,13992136,762563131,994296970,1273853179,51584649,2337460523,1727473345,154569474,2747663107,1515717385,503437867,3898278673,3733651473,717892547,2295135969,2332224294,1372449738,89033254,3805497930,52876042,3277392726,1031862923,2198042111,28903367,541428224,3490469259,3505050080,2330102488,3271603926,3906679635,1049230281,1381696255,3280687953,641979275,2114805307,81195,3126537087,2078806015,3240843264,6482010,650249026,3053737610,3807855104,237750411,41353995,3287927091,1962641640,3330164748,4219463827,3952280436,2346354621,4221167810,2967656587,3893362618,1499200399,4217628762,2264932328,1979648991,1053034190,3816882949,2300973055,2166757725,4026539365,492636454,1381221127,2346398551,3892510486,1516239707,3526607707,1962618088,3905391608,4164811595,1926793999,451462125,4177494523,2348184335,921955295,18955973,2294297424,1036322629,1979711363,1053112054,3277324577,1962934147,125665530,3321132289,3287411517,3895837702,520486920,3272081035,1172854763,2198717666,1299513337,119457164,557237558,8054785,2302020725,906043662,19082889,1444812011,1709716677,1476686848,1593043800,2299300127,1444807276,4270011589,1476687103,1593043800,2352777503,3341156932,654311173,4278339015,3789220095,3790268611,3308652318,906043702,18955913,587631670,898180609,39685158,885347870,1946162152,3948435460,3340721907,3355442948,4294902340,4147890155,1381090933,3264010636,1499122235,2750821315,2317746941,1053098054,4286775623,990672127,125110357,1963214138,913304322,18955973,1963480379,71645703,1240138357,4286791109,921531903,18955973,106254934,117480424,912153181,50136822,2367190527,28905565,1381455360,91551243,3958689768,4109101059,2304663386,1837697109,239438860,2317804594,1166606406,112644,141882891,138840614,258378278,3892987273,2352414420,906179870,21569164,1049173782,1049166643,3317891399,3019972926,73742591,3761907316,1161430388,2149414148,1946158461,1979666455,1763332,920924760,21169722,4289725045,1476674953,4286791109,382629375,4290298655,71665408,4118085436,4050969610,1124481590,3303699457,1569524845,139823888,2315931019,2330800837,1347508197,1392509369,4100319314,1498962778,4007841795,521585503,2701870312,512426297,2447900983,106727904,2298985477,2687894596,2965569853,3169419775,2199351815,309819385,242546186,175428106,1997340288,3894351365,381881240,185067551,2313182184,1284048468,3284152836,4253089712,2163766040,4084415737,1933377152,1694138606,1381099891,2914721558,440578,3263943219,3946375251,372688158,3937069057,1592285983,2969997291,2936442626,372688130,3935758337,3905142834,3857251482,3892767728,350813330,88400882,3531800577,3896306432,3454597883,3894733808,4243127027,3894209521,3186162414,3892767728,3974691558,3755141361,3808709769,66822,637588099,639714697,170087816,637826294,2334422408,645866696,2149598600,3788603617,3314209489,2301026954,2687896645,3905094380,4289726021,48538166,2687956082,522453701,309665596,2952793017,45727551,108375795,3808871990,1944584194,1929359595,2028210897,4029596877,3810953730,1053105666,4130734899,16958726,1207306613,57934091,907864863,48498374,88458752,2334623745,3674939164,992348532,58133854,3908861928,2045307863,3904795627,3835691354,2313798402,96987136,3330537586,46579461,1913001704,3943491821,3825920114,3116295288,47431426,4076867001,45727652,3103966910,1017905163,503870783,53812878,2854160266,1206903363,3893757382,1064561022,922730547,3672637759,863197418,49295044,2347463144,889622267,45727235,4076866489,859736996,1170613763,118882565,3204633534,230228665,3903124224,2708728556,3892366825,4289724618,3934185667,1347876978,3825909810,4020242552,891194882,866795523,197624768,2877337771,2781907885,4165241765,4131687339,2321438891,2856324292,3263899512,3224588459,2326419627,646592196,2974876439,182768132,2704714436,78709527,2321146067,3224611524,17221059,2351344387,2348018461,4282220794,3347252085,407238151,3898373568,1517421760,4069203538,2971557003,1407963908,2296913686,1843944439,3926649067,1047682823,53681861,552684672,424512294,2334526601,1418268757,1435182594,72648978,341150502,654201993,2299942283,1204223060,521535749,49295044,4622886,855419112,4289774528,73656515,3116312946,768258,2935111600,3325435252,4278379014,2682789458,4029596905,3893785346,91416801,3957997032,3948551993,1493654221,3943059794,183662052,511080676,53690053,1972046987,451092232,223230758,3744142455,3649787475,1526378472,2699608114,503536635,116785971,1946682053,926842887,3111452675,53806734,3116301195,375042,2695230372,2980709061,4089459461,128903339,2878516114,2874654771,915123115,3324379955,3288401220,637726766,1342195338,4227065939,2321438811,1594357984,922644969,21053056,3271652353,508757585,235343446,3335074591,83983622,24839878,2114881806,24886017,18495173,921132008,25036535,779420160,25731126,678757180,2097595958,3325428737,369195782,2282653750,243873281,910229886,26021513,1592208360,1493654303,3224528875,123412318,272417625,54281588,2630041972,1161723958,175374337,1111392310,41222145,3281856717,3906679635,1918627708,3892425974,3681871293,3463779132,3001607218,906619877,15603446,4291291331,2733113780,1408660709,1374214963,3413269487,2464736306,1947221221,1963146462,3892555999,1676149840,2149520901,83006,837288820,646707948,378405605,4058514151,113651419,771752257,21104326,646524416,600638282,48735022,992893084,1963149862,3886099975,3672107266,1244562222,992870915,1946372646,1275115531,3926312494,3857448704,2402196816,1929570054,1458236376,245328,1491038952,3475230046,3070659638,780744194,2169897653,2348875751,5761245,2174206814,2197880807,175440127,1183458896,1134704128,3240843265,642961411,1510106871,3828537347,106314534,3304985202,274086694,3304983154,190200614,3304981106,171369680,637726246,905987722,45549196,3039725878,1992566274,918916114,21118592,911045888,48834185,922355478,21104382],4,[1091501622,378418689,2334524135,3439519014,646522404,2351301349,2349000470,919899844,48834187,1090977334,113653249,4211081538,3039740982,1946303490,113653259,3288269123,3974873138,1048583958,1946157380,3942574083,55445190,2770243074,581967361,920568040,45549196,3038677302,512439810,3683516837,1493178017,578077499,511039803,1048589904,1946354510,3807307792,2332038329,3897250265,3797485655,110049014,521011621,2263416752,113703673,3321889089,4278272774,27598478,3151502,3024523,1490706408,45635672,4281225458,771929910,45430527,3325480955,60166,44618290,3324380277,3108438021,78118920,1948299411,871957252,2980770761,147060227,4177724532,2868103475,2209065873,3287683311,3892933633,1961361523,1174697217,3892341480,376832329,1966750848,1076643345,976619382,1979784710,2868883970,1196314438,3892316345,1015021587,1174893870,3892315065,3263823885,1324942275,18081987,3897489270,594673933,4130737269,4278250246,540809588,3957527925,1965702217,4081037316,1060940458,3397442933,2967005953,1319826208,552119491,1325036545,113653443,369164523,45727495,3105927255,2868051979,3498754098,1015046058,2760733998,16836780,3221886324,775688564,2896825461,1946218984,1958742534,1313754626,3099836466,3250528288,866822914,702912,3903499251,3485402092,2460717570,3116077995,855083778,29344704,855829248,113719039,3841983202,917303947,839049634,1979661540,130188042,2315699843,3903651684,3581078607,1347834398,3204912727,686293689,393371392,326500107,3152551702,3893130211,3325489811,369280262,1491480040,3307636790,526016002,3116304150,540835842,3113907449,250085387,1963684352,4179639301,3802827637,2898524401,1631354660,2050754162,539755127,4000591420,3933479484,1946169832,1952136421,1952267489,1949973725,1950104793,1954299093,1950235857,1948990669,1950170313,1950039237,1949056193,1946762429,3273669817,4218695484,12803132,1396395328,1027423804,1095912255,3526742081,1731677750,1412905526,204921142,37150519,3828802615,3895940662,3897557200,3277324292,540852874,2134655858,4264953204,503376902,117323350,2151022834,50393638,3897558389,3898145734,526310311,3993433654,3480551168,3142983251,837287937,4128010987,1954551876,310022,3955457515,1947024509,1946696736,1963539494,3969922746,4143451136,3364508120,132317365,2582126768,1509548799,113653443,3942645996,915139482,15470334,540840427,154989427,2958094196,4285982814,3896511576,3905159024,62651218,3939428352,65795186,3036360936,3775653889,3828545140,3286303976,244563,3142780139,3263823876,4213762128,3897957976,526310189,1444856667,1962613224,3907269371,526311645,2901576643,4168361020,3959365608,2396032246,854756288,3221925357,3700090484,3275423114,947914102,2315416589,1255181021,15507510,15573558,27967318,4163799094,2331871746,4289652981,58001980,1023387624,922317830,880739898,2134653044,138161012,222046068,171720820,456941684,4063912564,4272560499,4281526470,4164845622,3430219778,3363044154,3955752518,2958617539,4271826951,1642642155,1460515327,4063527103,3788595118,2801789323,3903468685,2287992452,3338600309,3683435916,3717120910,2315365054,3282367438,1776815536,3909791998,4092132964,4286376447,1508400304,3890765566,3986700031,4272547840,184503785,3893458166,2317746258,1931492357,1946762247,4712469,4164845622,125108226,57999114,3914256382,1331167042,2966326013,129192736,1991118563,2105550345,158599425,4074949630,3978177078,48114176,132219083,1952406524,518339,3169582050,2958020350,4260030472,3857195184,3909660925,2687958496,434713727,717982463,3892833231,48955444,3325428145,194566,259322426,192215866,904440492,4274519806,3924288198,4214947534,3355375988,4274317638,50333672,3925410545,1642659514,717982462,1226273999,503714932,4270544647,1605300807,4127683847,717947601,3915236303,1085341334,1610445800,3894281815,119537390,3923675742,4130799372,3909285910,447807098,3908999145,11598138,4279030644,861032643,3903776987,78906738,1524560104,1021348440,1007907841,1007645702,1007383559,1007121416,2953016330,3925525248,106026184,117448936,3788562896,3788628433,4006666705,3515600394,2969647265,3521171972,101341664,1455620407,44940115,855639737,3905063890,3307135062,3892385334,1528815560,44933470,45026955,45160075,20645435,909984372,2738713515,1364590907,3117560658,4059497909,3771850961,3364610257,3892416958,3922788387,3263235187,619184328,3187781888,283640217,940476416,378028545,2464678199,1582914048,2885727427,359845947,3946958891,957253878,63043073,41229488,2594357502,4041786113,3150351103,987169176,1929359554,4292733044,20387465,3922848209,2332407224,2330064858,2147563790,2445149153,3520105217,5433569,2579419018,1239959809,1238075904,2744307971,1398145339,44940112,855639737,1405258706,517965288,18233029,534706152,3752585307,44893839,372688158,3739674625,2707315487,3526558011,1073743801,2297558848,838941974,11846592,61668323,3288064720,2337689936,16759282,3221881995,4236257652,2147906874,1946157692,3221924894,1060910708,708582004,2145916532,3824055803,3221924874,1944587892,1105425915,485214475,3656108339,4270060075,2198696962,3950314750,2088825483,3816110593,24496395,1482252025,4288735427,4069199218,1944195048,167948531,2952951241,1355020547,922726481,27592334,3103791295,2935095316,1325561337,3277347320,306103376,4294935297,723918452,92013637,3946693670,1157834480,683365124,1541666304,50333189,32241912,1354979577,1912618984,92940023,4034199356,3286819890,1407904767,516175441,4130537746,1962933123,442136,72321830,3768358,3347254900,4108469800,3944727590,65796579,1509489411,4219716443,2383115028,2332140806,415728635,3287925752,3825649206,37486603,212862326,920124393,198581900,378085142,3634498516,4282902539,78644339,109897451,1049168859,2397572057,2314171135,2299256118,2349588286,504094982,198448837,536808168,3639280243,53806734,199435912,1971373302,1200236068,1947248651,3943018500,1963501797,1946265848,3829301266,192217099,198721152,3957748992,3104249346,2337669131,3745418227,2382765579,520872198,638281610,2197972360,2767389895,1053056543,3347254239,3810953731,4093175819,1053040406,4263906271,198746117,21334054,2301018163,2300978245,641738309,3289466249,2701908286,2284194781,418349829,602523531,3894351575,91488012,568919728,92939991,4101308220,4278568486,2280186930,115962622,2366504479,1173750613,393592859,3892475391,911997132,46472840,1022625256,2953082367,3955747586,4264421561,4125819507,3308653428,4127404862,1946225479,3943018500,3842492141,17122758,2178452397,370147299,3892540447,2317807412,3337093190,3905481712,74710426,3622503344,521543250,48367303,378332671,113705735,174588677,3247108747,2281824640,520872974,3745835038,3221903903,54265972,95421556,45141227,922644457,199689868,3911092534,110048779,3291876325,100725534,922695251,719850469,378091008,2352349427,906032414,199689870,3911093046,2402730763,906749190,15926927,4110847798,922695168,1371737061,3540300114,64589034,1524207306,1041025,2733163353,3926271,2149976434,1963000189,3892686855,2297167812,3908125928,1150013732,244004356,1284049899,4289652740,3906331113,250150773,651981312,97664,652792692,383314929,3943598367,4251969547,243992240,1435306987,3273590275,451419926,102265597,4250396759,326246238,2315648550,76027975,2333666947,2964712390,2963008260,2281368326,3897643993,521600615,1911053145,1943635965,3943084238,1912814824,3942756356,3894351606,520551705,1173810034,108298267,3526606899,3372095211,3372093308,2274500220,323290065,3944043795,3515322883,2300855689,1911039573,106203600,2649425033,64063378,1427317829,1021700902,2953082369,1924197121,2178517774,1962924259,3943018502,1375529968,4234274896,4117911898,859751478,169809411,638940370,3624626048,189728806,88458790,3909070849,3001806601,2317797683,367528783,72124880,3733778667,54271766,3897708151,1935342717,3943084036,1929526452,637549618,1947944330,1962281490,3943542788,1954588906,1434986067,852355867,1954588900,2110006792,1703552540,3486443525,1418317963,652667654,2149271030,3290836596,1240145021,3372140798,678822716,69992884,62129780,343263486,3803113552,3893457496,3767195889,41287600,3387670782,2750087600,4209706416,1448104529,2699608970,3892867810,3290884351,1593315966,1918458456,1173825251,1950351364,4274585303,3322377416,201418502,113640939,3087204711,1705181206,2747282177,1923219816,1997441281,1930856705,1966508289,2334066177,3137804023,3118989669,2007054041,513272577,4175976019,1979661521,1482184711,2397769648,38047583,240945499,478053158,1393391103,113653335,3893756613,1533008934,520549771,2089010062,74776604,1983686,3105801859,2863398976,4209033226,37532651,28312690,521583851,1945849064,3943084036,1975519987,1300964883,1435182617,3468617751,2298760329,3572172372,424511782,391481638,459636774,921693119,200087177,4011756598,1049179659,2352352241,3893097222,41155247,712293867,891194934,410517251,4279924735,2013208183,376962844,906721279,49231615,4046898486,3701401611,2198303320,95423684,976670443,1946349318,214205191,4041937328,4046898486,911235083,48367303,2352408063,906168086,50661063,3353873000,919368411,53688005,189237336,2400601999,1200561223,440897310,3323479951,906036548,200095429,920404968,53688005,3336898502,369165636,3909070879,3286887649,4189382866,74712691,2599092912,911340171,15271678,3792095030,3907321858,911858704,46468744,313525363,2385961195,2315466014,3303541615,906851549,20920063,387877686,10545411,4080976950,3315611136,2687937026,3114926831,3193110539,371065529,530903839,20947254,4037097131,2704714498,917177074,2869106593,2852865930,2870364043,2870495115,2870757259,2870888331,571742,540846764,24509152,2163278671,259268668,3114938032,2863398915,4208992316,844038517,334080704,918894290,3599433971,3790100034,91447027,166269616,222596050,185560260,2347858112,344593244,3306588214,2302038018,906162222,49415820,1490713576,53151431,3018391551,3646089433,4294913513,50331647,1375797248,3674210562,3271615298,4278239487,50393343,62980095,49407,1057029375,61695,3238002432,4294967040,65535,15794175,3238002435,15793920,0,1057816335,16531203,15793920,4291034883,4278386880,4294967295,4278386928,1056964800,4278386940,4294967295,64767,4294967055,50331888,4294967295,61695,61695,251658240,3274706175,64575,50380863,3237987327,4278386688,15794175,3237937920,4231987200,4279173120,4294967295,0,16777023,50331648,4043309055,4278190080,240,4279173120,3194880,0,0,0,0,0,0,0,4278190080,61695,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],5,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131072,33554688,589888,84017504,1879293184,2097216512,58178,0,0,0,0,0,0,0,0,0,3909091328,1861,0,0,0,0,106758144,66011,16777218,4194816,23068681,3170895106,4227887107,3812809727,16777216,29688234,17957317,17957138,33227004,17957410,40043099,38077027,17957138,16515346,16253801,17957138,51118860,17957138,16515346,16253193,34734354,117571586,33554691,3211776,285739547,1879293184,4278253568,50331647,1852405504,1937207140,28332032,3942662078,844125728,1443556288,3942756432,2958054916,6929922,3193310187,82509909,1556054,1465012560,1392909909,8757806,2166277422,3305220608,302105857,698316109,4211145728,302129665,1661098753,2684420095,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14893071,16777218,66121,14893787,114409,53,1936607488,544502373,609439556,1702063689,1092646002,1768714352,1769234787,1227124335,1919251310,1767317620,2003788910,1951604851,1970565729,1679828080,543912809,1679847017,1702259058,221935648,1701990410,1629516659,1797290350,1998616933,544105832,1684104562,220471417,604638474,1735357008,544039282,544173940,543648098,1713401716,1763734633,1701650542,2037542765,1953451520,1869505824,543713141,1802725732,1634759456,1713399139,1931506287,1701147235,2019893358,1851877475,1124099431,1869508193,1768300660,1461740654,1868852841,1931506551,1953653108,1713401973,1936026729,1547321600,1296912195,776228417,5066563,1397575491,1027818832,1413566464,1459633480,808537673,1229073968,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1751349340,606350951,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143703040,3892610024,113706009,41550080,567095476,3892470434,1488454604,40084311,42010310,20113408,1491619996,1939691524,1765703721,292880386,91555900,3439386600,3171238477,0,0,0,2684362957,4293958144,60747789,43582786,201786690,88211683,65793,4294967042,4294967295,4294967295,4294967295,21626880,1346,0,0,0,0,0,0,0,13312461,0,0,538976256,538976288,538976288,0,538976256,538976288,538976288,0,0,1769409792,2003788910,852083,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,753129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,855641319,16711680,23594496,256,216465408,2678523211,101642310,80157184,88212005,186403584,743376194,16777472,2628780032,42730818,4064675138,1951136896,788475397,503712683,1381390165,777016145,196417164,3005647150,375066123,1958951768,3167981061,4290445696,3444094207,1509654817,3027268096,1914817864,920126314,157752969,5892993,2971568438,3032518155,237096265,7727135,196548155,968506484,1023457289,1064444365,3233470603,1891795216,3100193582,567099904,2416266937,196157070,567099316,3443438672,4186003745,393545038,905984744,196548155,3325431157,602630,2938044214,907209483,196294341,525511,2635494655,1150262521,378418710,2335050677,1477161766,1582979419,119496031,2385387215,3104551198,865076558,73853430,1024007610,410255362,1946158397,144685587,1946159165,144030219,1946159933,143178243,3035111182,2350115587,3167850185,567083392,1303694962,2737709517,99158380,3364682497,229955726,116859341,4294904115,3979552117,158795462,1996932608,1048772618,1946159475,1929824006,2164260617,617278,166265717,3905681665,1908015604,56485896,3440116152,1012868129,1008170062,2397795673,3020501766,3340881225,602886,1845937664,4075290889,3131828994,521013487,2147692264,619070,1048776564,1962936691,150321672,3942849256,151763710,2147685096,619070,382015093,565709739,773967141,772353185,3087013539,567102464,113712910,2419,196937358,567101876,153755275,567103668,2148101281,617278,3224568437,158009030,640614145,110046729,2402158886,1476995078,2160002830,4241664,1370793459,2301501901,3020499486,3452669008,113716769,8456563,1795606062,2150498569,617278,4290457716,3444094207,1895530785,3909317379,1219821385,4151452109,1795606062,2737700873,3624078269,1730054446,1357611273,512306691,3364620643,2159857806,3906506241,3979542707,2281701304,1024029958,74776575,567094964,158547587,3909318143,3454598949,4266256386,196548155,2867333493,1763064578,3323950089,17379846,3892465128,373030447,158665655,990023912,1946773782,41936901,12118507,2283916599,2148253462,91566074,197134022,839304796,3116236809,748601099,157484686,571900,1738647027,172809,157363967,3405775336,1975519824,3441013766,1405156897,298702986,3234906320,41222948,3237921022,1985730618,3955231236,1488990978,125123,2346398667,2332651278,973084694,3020453066,2283916606,1124079630,141880890,567099060,1650312,3104097155,1051983887,3796050381,1394525177,3444683856,2715520545,2737700888,446695728,2749401600,1532493848,519815967,1347507974,1150016910,646458884,118360079,3104290751,3330473992,1487205130,3892797273,521076672,19327058,2722169946,3304458156,4127880320,2148011782,3102278517,127122944,1946273014,127385091,127837101,127968173,16770945,1980563331,835331,154025609,3180062673,4203153127,3120621288,3773302683,252114432,158629896,3020402618,3944860937,128301586,2147535592,602686,2062026100,3128093440,3102214137,201439232,2917671373,3021999104,1953053696,1019543107,4265440370,1969306820,2261922782,168458006,2198697170,619326,113706612,4294904179,154025603,2198303744,34156094,113644149,2197817719,619326,113706612,4294904179,3616261258,520100072,135314127,3120584424,1357383589,3942821888,1894635,519956457,1370771539,815866317,2749074953,1532493848,3166356255,4244302088,2684890554,1474824549,3908007422,1035599903,1698594824,57999369,3892856250,1387921423,649224,3440117688,2914698017,1381191687,2901576534,1014965328,1008038448,739342137,3771832368,50790843,3893857240,116129759,45404298,2824348109,1591243904,3277347674,154778181,3443327160,1024488225,108331012,3909672890,2280193156,2347101183,281066200,12110131,1914817858,868137232,1662946846,16824841,567099316,1052023839,1922900429,3204022534,3132650547,1458047008,514976767,157490830,3103850686,3522963974,2916234217,4225945603,2663039775,623032323,2579112397,623097858,3803849165,623163396,365109709,705110535,1057436423,1376207623,1644647943,2047308295,2399634695,3255282951,3389469447,3691501063,3892830471,4077382919,1769101063,1881171316,1702129522,1631777891,1853169764,1867445353,1701978228,1123640417,1663067233,1634561391,1151362158,1122071649,1663067233,543976545,1836216166,1700000865,1867443045,1329868142,1768169555,1699998579,1919906915,1953459744,1970234912,1867441262,1885433888,1918366309,543519849,1819631974,1634030324,1634082916,1156869237,1928033129,2003067237,544500082,1920415077,1852404841,1919164647,543520361,545918273,1769366884,2123107,0,218103808,1126179850,1095585103,1629537358,1668246636,1869182049,1713414254,2691001449,1919906418,1851868064,2691985262,1919905125,1633820921,1239966580,1919251310,1868710388,539784306,1920230738,1226845305,1919905383,10501989,1818838576,1635005285,543517794,2892259682,1986939184,1684630625,1329802801,825831501,1297040174,1936286752,1852383339,1769104544,1092642166,1717920928,1953264993,1769104416,1630594422,1931502702,1802072692,1851859045,1701519481,1752637561,1914728037,2036621669,1700016304,1852403058,946173025,1651468832,794372128,2688493902,1128618053,1767990816,1701999980,1765098928,1480925294,1353724997,1919381362,1948282209,1646292847,1948280681,1768300655,1852383348,2956422432,1684095536,544370464,1936943469,543649385,1835888451,543452769,1702129225,1701998706,821192052,1713401678,879060338,1684955496,821257580,1697855309,1815490741,828662127,2037588012,1835365491,1818322976,820274548,1635021622,741438578,1769497888,1735289204,1919890096,1835101748,45157,0,1346,0,0,1547321600,1296912195,776228417,5066563,0,0,0,0,0,0,2952866816,412,25947808,16842752,65537,16776960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16711680,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,623852127,1162889552,606350897,979304484,1229989167,775046480,2368548,185207548,8390144,6030658,7079234,1346,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4278190080,58123,1755293440,503661057,1107595661,788925189,1107460956,1107584005,5,0,168116813,0,0,0],6,[1213481296,1329791037,1162892109,977354051,1297040220,1145979213,1297040174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33951309,13108480,2701901219,512491522,1213481296,1329791037,1162892109,977354051,1297040220,1145979213,1297040174,4294901760,4060483162,2364068761,2747401178,12061468,2684362957,4293958144,42790925,43582786,81921346,88212802,65793,4294967042,4294967295,4294967295,4294967295,21366283,1346,0,0,0,0,0,0,0,13312461,0,0,538976256,538976288,538976288,0,538976256,538976288,538976288,0,0,1769409792,2003788910,852083,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114409,53,1936607488,544502373,609439556,1702063689,1092646002,1768714352,1769234787,1227124335,1919251310,1767317620,2003788910,1951604851,1970565729,1679828080,543912809,1679847017,1702259058,221935648,1701990410,1629516659,1797290350,1998616933,544105832,1684104562,220471417,604638474,1735357008,544039282,544173940,543648098,1713401716,1763734633,1701650542,2037542765,1953451520,1869505824,543713141,1802725732,1634759456,1713399139,1931506287,1701147235,2019893358,1851877475,1124099431,1869508193,1768300660,1461740654,1868852841,1931506551,1953653108,1713401973,1936026729,1547321600,1296912195,776228417,5066563,1397575491,1027818832,1413566464,1459633480,808537673,1229073968,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1751349340,606350951,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143703040,3892610024,113706009,41550080,567095476,3892470434,1488454604,40084311,42010310,20113408,1491619996,1939691524,1765703721,292880386,91555900,3439386600,29081120,3439385320,1963473952,54847493,3320366571,14870529,113688043,2147549801,164158,2531853173,41281536,184712865,3188683968,2364014592,43640834,3892315070,2176451203,19851266,37560947,3121313024,2176712980,10872834,138275051,2148300032,50487870,3957851507,4191677186,8390343,2208042240,163390,113116788,38135808,3892736925,1374224472,45869311,2332035518,855827398,2147940032,58003458,3892455144,1369178734,3892466664,2639856539,1203242610,4280936791,2445149923,2484225,3137281001,1102316120,3820888525,17950726,1001707147,1303650765,1286873549,138158541,1891500917,3221924865,3498707060,567083700,229831659,2986345192,3439506442,666551073,2718206721,162791757,1052385741,3439965185,201898017,1807360461,3439965185,385663777,40083719,3187736227,230228475,1765703680,242483202,2332165822,4294949374,2935144499,2160054775,2327851776,96535045,2116878339,671251968,2327851781,4160964357,2343177648,1048619713,1962934889,3441013772,3024159777,3917720378,3131372290,3633054214,113754254,8389228,40771212,40896199,512491612,113705586,7078516,41295500,3204481470,28835932,3206663465,28835948,3139554601,119407210,2298490017,106044935,2877523,1763523,3221924950,1555168117,1963735118,313083,3443242074,2332854305,113165298,2148829698,246694378,1438851533,3968068747,3321634388,118884470,2343468685,792505567,1547438196,977011828,3750429557,3221924419,1586097013,139904428,3892600516,1601372264,74711612,1450509116,1963023336,142525521,973175936,431229300,1090789837,2896902836,1950039210,1975519749,1555058422,4265949222,642711925,520045960,2334070358,2863443062,4202020874,3288880837,434635870,1931435520,1946303502,1963146244,3964933,536457077,3260933515,519569416,378285653,2301493509,3087075110,567102208,85364270,646655489,526188807,2334000835,2332195870,3444094155,2277543457,2382526982,871773144,3521237503,4242657761,119514611,914955971,512623224,4281729658,520255518,252006595,3540300032,3034090472,1914817864,868257300,2747282431,109838949,2880111207,2345808728,244040698,65208935,2332034792,3808590350,3032583686,3273772361,3808441576,3253214761,39369470,1018480947,376578509,382064779,4203414117,2197966219,1085539521,1051992525,2971607501,1488634625,3443635202,3301177633,2348967230,637854657,3271708043,3103911103,736624648,235238400,31309343,76275596,21865006,3599490958,3443720376,1931415073,17414664,3959260136,4122985451,375041,2384856854,855649310,4082586102,1952014246,3221924876,1015085941,200176896,519881673,33996551,567089588,3098165508,2343263290,3033674743,3189886279,3820945926,178957318,2969204160,4265883740,2286813557,4270587716,2885811134,1975519914,96729338,78710943,3633047763,1253312278,4290453965,3444094207,507194913,158531843,3892331240,3068787928,1048653564,555745409,724447861,771818270,8521414,784347936,738231200,1997093936,113651223,2971664515,199283468,3087234496,3275424768,3626698355,567101620,507843,79629803,2151579648,57933824,516145203,2679688844,3540300040,2398094312,868234206,1279033846,2165273935,1330053756,3087927413,508561278,3273640791,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4026597093,62083,3337,498736579,288493893,4,262144,110560782,0,110559736,13365762,101582718,46597646,1330073420,855687401,2696974016,2720399385,413139984,3406875904,5270787,94373280,1073741824,236959744,1919117645,1718580079,1767317620,2003788910,253821043,1936876886,544108393,825241137,1125582848,1920561263,1952999273,694364192,1667845408,1869836146,1126200422,1869640303,1769234802,539782767,892877105,1092624430,1377856620,1952999273,1699881075,1987208563,3040357,1766660109,1936683619,544499311,1629516649,1734701600,1702130537,543450482,1684107892,1918987621,1718558827,1667845408,1869836146,1126200422,779121263,4227858432,2382432488,3892323334,3404202169,437684992,1139441664,2102827,2102827,1049350659,1122500636,473860864,507380480,2269440,4161005777,6154319,4242765130,2315265726,3932484,115869044,3103058688,4241162266,869305261,3036656603,2886782210,108314634,281874100,4240700907,3201446482,4006674468,1707659,2334583249,3519317509,2328416712,3236331764,171959424,2262207202,3873614788,1524462926,844299715,2408146,244051665,3922788378,2248510246,3519074756,2163247808,4230218726,3599417866,3802907782,3732229863,3200515162,313524743,1713910,1040447627,314245152,2954947328,438760978,438209280,1139507200,512475907,3956342818,4169908995,2113067,2701136571,1127022618,4438272,4076880825,1274545060,3032740725,2719010063,3224567832,2686894222,430048272,2832266752,4127749424,653206736,3087274146,281870342,3071279288,3088108801,28774401,12783821,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4282318848,192,3288284928,49407,4244573952,50331648,4043309055,0,4294917888,49407,4279173120,240,4279173120,252,4294967040,4294963455,4294967295,4043259888,0,4291035135,4278190272,4294967295,4278386880,4244635647,0,0,0,4294967043,192,4294967295,49407,4294967295,4294967280,4043309055,16580415,4278386688,3237987327,4294917888,4294967295,4294902528,3238002687,4294905600,4282319040,1057014015,4244635647,4282318848,4294967295,4278190335,4043309055,4294967295,1072758783,65535,4294905600,62980035,64767,4043247360,12648195,15793935,0,0,4294901760,16777215,16580355,4279173120,4043243760,0,16715520,4282318848,49407,3288334143,4282368255,0,67059456,49407,4278451455,192,4231987200,16580352,1057029903,255,4282318848,15793920,0,65295,4294917888,4278190320,4291035135,15794112,0,4291034883,1056964800,252,0,0,65535,4043243520,0,3237937920,61695,251658240,255,4244635455,4294902528,3288318975,49407,0,3237987327,4244570112,64575,0,1069612803,64767,12648192,0,4290838272,240,4279173120,1056964608,16777212,4294180623,4291035075,192,0,12648195,15793935,0,0,4279173120,50397183,49407,0,4294963455,15794175,16715520,4231987200,1069612863,3288318975,3237987327,0,50331648,4294967295,4294951167,49407,4294917888,4294902000,4278448383,192,4278190080,4294967280,61695,65295,268189440,4294963455,4291034883,12648387,0,4278386688,4244635647,0,0,0,4294901760,3237938175,0,4043243520,4294967295,251658480,255,4278451263,66912255,3237987327,49407,0,4294902528,16777215,64575,0,12648195,4282318848,12648384,0,4290838272,240,4279173120,1056964608,4294902012,4278448383,4290838467,240,4278386688,12648387,12648255,0,0,3237937920,3237937920,61695,50331648,4043292927,0,16715520,4232036415,4294917888,3288269760,4282368255,0,67059456,50381055,4278448383,192,4231987200,15793923,1069612815,255,4282318848,15793920,0,261903,16531212,16776975,4291034883,4244571072,251658240,4278448383,4278190272,252,0,50331648,4294967295,4278436095,252,15793935,61695,251658240,3274706175,50396223,50396415,3237987327,4294917888,4294967295,3237937920,4231987200,4294905600,4282319040,1056964863,4244635647,4282318848,4294967295,4278190335,240,4279173120,1057174284,4278190332,4278386928,12648387,4294967040,12648447,12648195,16531200,0,0,4278386688,12648447,4294901760,3238002687,4043243520,0,67047168,4231990272,3225354240,3288269568,49407,4244573952,50331648],7,[49407,64575,4294917888,49407,4279173120,240,4279173120,252,15793920,0,1057029903,192,0,0,0,0,0,0,0,4043308800,0,0,0,0,0,0,0,0,12648255,1056964608,3237987327,4278386688,15794175,4294902528,65535,4279173120,4294967295,0,16777215,50331648,4043309055,4278190080,4043309055,4294967295,1072758783,61695,4294901760,12648387,4294967043,15794175,4294967043,64767,4294967043,4244635647,4279173120,15794175,4294902528,4043309055,4294901760,4293984255,4294967295,4282380543,252,3288334083,4278239487,50393343,62980095,4294967295,1057014015,61695,3238002432,4294917888,65535,15794175,3238002435,4294967040,4294963455,4294967295,4294918128,251658240,4291035135,4043247552,50331648,4278451455,4278190272,4294902768,4294967295,16580607,4290838527,4279222527,240,16580355,61695,251658240,255,3238002495,4282318848,3237987327,64575,251658240,3237938175,4231987200,65295,0,4278255375,4279173372,16531200,0,4278255375,240,4279173120,1056964608,15794175,4294967040,4290838467,240,4278386688,12648387,1073495808,16777215,4294905600,4282368255,192,61695,50331648,4043292927,0,16715520,4231987200,50396415,3288331263,3237987327,0,50331648,49407,4030722303,0,4278190080,4294918080,4278386928,192,4278190080,4294967280,61695,65295,1073495808,4279173375,4291035075,12648387,0,4278386688,4294967295,15794112,0,4043243520,4294967043,3237938112,0,4043243520,4294967295,251658480,255,4279237695,67059648,3288318975,49407,0,4294902528,16777215,61695,0,15793920,4244635407,12648195,0,4293984000,4043309055,4279173120,1056964608,4043244540,4278451455,4291035075,192,0,4294967043,1057029375,240,0,49407,67108611,49407,0,4294963455,15794175,16715520,4231987200,4294967040,3288269808,4043292927,0,50331648,4278239487,4282319103,65535,4294967055,192,4290838287,240,4278386688,15794112,0,65295,16531200,3238002495,4291034883,16531392,0,4278451983,4279173312,16715712,0,67047168,50393343,4232036607,0,16715520,61695,251658240,817889535,251722815,50397183,3237987327,15793935,4278386688,3237938172,4043243520,4294967043,4294967295,4278451455,4282319100,4043247552,50331648,4278254847,240,4279173120,1057177356,4278386940,4278386940,12648387,15794175,3238002435,12648195,16580352,15793983,4294901760,4294901952,16777215,4043308800,4294902528,4043243712,0,218042112,4231988031,4043243520,3288269568,50381055,4294967295,50393343,49407,50396223,4294967295,16580607,4294905600,61695,4294967043,15794175,15793920,0,806158095,16531395,12599040,4291034883,50331840,4043309055,4278386688,1056964800,251658492,4294967295,255,4294917888,0,4294967043,240,61695,251658240,817889535,0,0,0,0,0,0,0,0,15794175,0,0,0,0,0,0,0,0,3897062494,3924295899,3895913216,1014235364,2891373363,259263804,4151655740,1015071742,4277171469,1592585159,108317694,3911764666,3897816790,4267376700,3893392591,2699559106,222080000,3823633780,3287739136,748691086,186392206,1015084595,2347791360,309455062,2902152936,4218798090,2092887275,3187927848,508962945,1912612328,3908537104,4152819867,721479912,4078896846,3277725604,3945299134,679591427,1912604136,2423974707,3008764,748684942,470191654,1375679243,3903608662,642187375,1979663674,1609818626,208951646,5630033,1031808601,4192236800,2332499651,1088968702,1459940096,1493188328,4186437931,222068931,3903589236,1072169015,1966947328,2159985648,3221924864,2900886900,3272424700,748684942,470191654,3909038859,2149974027,4151640125,3946688707,3116380674,2935095552,1918975171,2004499462,3273665538,988304209,2212072192,4214948587,1364207730,4101957715,46367579,3956475057,3444225091,2382797857,3895238662,2634544243,108222553,3911583418,648738214,1479,113465691,1220578384,2703671438,78708739,3364610259,3032680280,69324057,139389249,3892316648,3334732331,23558,6035082,1074053770,108347452,749733378,3192963326,1202990424,91431373,2162761486,760594418,3025721227,2778770234,216640044,109970961,2703633568,2737178924,2149974038,619070,3307604597,3087772438,567092513,109983239,1236544674,12067277,3894529356,45677850,1914817853,3101199120,567100416,1971372790,3443438605,682080801,3943741928,4130508841,3087256192,567100417,244051,1052039987,3796050381,1169447929,1169433037,1169433037,1051992525,2385912269,506241054,2734692513,3602385263,3150663683,12058625,4129410372,880050370,1947255542,891926575,3230409165,1996525629,856405027,3021000155,2316356879,3066756820,2344629017,3020404680,856739078,3019945938,3272658178,2888417470,3979528330,2326529716,3793866192,3013723129,3104181036,653048364,2176726389,4210419712,125046076,977120582,3909317901,1273560774,3070686972,108331565,567098292,2196330355,1304825,968099445,1232282061,3911710394,2210067490,3203984169,3102212225,1947024634,749969905,750323211,1965485242,4228704482,766969590,3739796226,3020322303,1931595066,672381460,3136548329,2649237197,201439247,2431132109,213894136,79858220,1967144000,2953183750,2864774700,749020810,111884976,3036121887,1914817863,3273592322,2885683385,24387644,2901992106,309600316,783343754,2865006250,1017905841,2852353056,3224565986,113689514,2164263287,619326,3339089407,4278809350,3983862271,167657088,3125769471,236858709,3441079327,4290387745,2148709385,654910,297011060,167642822,169987328,515864000,3189706247,2042572117,1049175561,78383612,1950366784,1048585739,1946159480,2872751107,654276072,234833350,118365958,167517835,1946173312,2901642121,4218752316,2713638539,730578697,1017956659,2316858661,973732646,1175483684,2901642070,74714428,4159416897,2867063646,1963801665,2285259229,2301331982,4127849494,4278808070,326377230,4282762790,730577444,638488040,234833350,3924753897,2384391933,3123486750,1048651993,4278192499,113706613,4294904179,4070893855,855671230,2684784329,158973740,2720448562,2250639736,168392454,650868160,167526025,4261856806,485031689,624733689,2284219765,3892968230,222099727,1034757236,91508297,1970170173,4177389654,1965571244,4176865358,125118780,748691086,2902374377,1114901820,510929212,1948925098,1967078404,113649158,3892382206,3816159447,4282762790,4173719565,230218219,2105550336,41225727,3903569971,1034811571,91508548,1970234429,4171622469,1047792956,2886312383,1963801770,117319418,2200308087,4278809406,3341158261,619270,1048585983,1963002366,3206481431,2042497535,24936457,4261705018,3087628294,567093504,3401210051,4055689512,749668038,8502784,1022907112,2347463693,703447022,4119527605,3813084554,1963125555,2317790224,3292153637,3430942068,3804510752,4177764334,1195842955,2900063646,3128167740,1979196136,4162185425,385278975,3102420143,2898867030,2708737340,1962412776,4092281091,125058364,2440301884,2901797804,2306161980,1022880488,1602384909,343189235,234847360,1017953396,3904336909,4134926299,418119600,4157728940,3224563061,1438584555,687978541,263463373,567138187,749668086,4127356159,1958742736,3942443267,2348262120,2179563982,2148411392,2148436480,2316208128,730578731,229680371,3978553770,3677489847,1947024556,4152486052,808193140,3891708806,3280388866,2384390891,2318180382,520711206,3812278322,3372131955,512664299,866200736,4294945033,3230544756,3375618190,4186685835,2343498313,3108390647,2784165897,1962884483,3342175000,922746629,748691086,1963801772,3965179,2300969844,512672565,116862112,4294904115,3526620020,154474121,154605193,3204480744,196673629,4062228480,1090614702,4144753027,243873497,2481466709,1949973750,4136429601,125110844,1022789096,4145247290,4278792966,3907679743,521011261,3911760058,1572859934,244004352,3897634133,207222370,87696928,132842101,975577132,1204843781,1273555170,1998601462,1947024582,4131448839,4185197884,787888616,785456779,567099060,512630467,3526560051,3443327160,521499169,785490742,378263691,243992885,12060983,3273772354,126540427,4179574828,9496771,512627314,108342432,158205638,113689345,3271559534,1006665888,3121181186,1323827330,4097698059,748691086,158211722,1589255950,3911772969,1474883450,855750656,91556978,567083442,3453104835,243974945,3372875904,3224559989,3666485709,3895019962,1153043222,1977289257,691976707,3893037545,28835874,1963618862,3273772291,567134462,2148436675,1976109568,3444880558,3134753313,3421186387,2885705150,1866211340,229448565,1849434144,4236248693,3272504608,1969645117,540847112,3237872501,675986115,503759865,3230582924,113760398,852097,730400454,2315700096,3893166379,2582118406,3406241536,3892347326,222098799,767244660,17492015,110117867,3204910679,716451014,2342003149,65458672,13009392,3118041895,2767388675,2343182512,2999618499,2264069732,766743236,3120635625,1340614436,4291291146,3139909050,2968006445,1916171264,3275402293,3342468212,3588762741,3106370048,1015023468,2953540621,2347038308,12773576,3297383538,3355639988,1963801772,3442193417,1975519777,364561153,168093735,2176759531,4107921408,309595452,3896130235,518717556,3442259088,3912938273,1471807656,165734439,872410856,661174985,3896130235,1718878271,3398120306,1017958963,975336461,3005642179,6219822,4102692722,1947024556,1975728656,5171220,3565817714,1963801772,3442324488,1958742561,659077681,3943273960,159574198,2310671028,3894529323,2344546931,222068779,501748852,2316268032,3275402484,4219473524,1308915002,985858226,4202035655,2315256808,283689940,2330948096,649440,181732466,17621130,738495171,1022980656,4101174538,106414918,3334407950,3083176492,2746384,2326446986,2222273,2326446986,1697990,1966799744,2855186435,216580746,2864722688,3895248570,1594296591,2248856771,808455620,41234492,12044074,1351795627,1476970216,1377747858,777081680,748691086,175586944,3892737280,719847433,1482381568,2160271194,665150,649729908,1023457290,3686408653,2332783141,2264903896,413276231,521061120,2163010025,675646,1048589940,1946159694,172997143,3443327416,856519201,2345219026,1107474648,283845069,856313786,3443307721,639744545,3633039474,1200029616,1679896,272531651,225771310,784545419,772880009,772802246,2347578367,3006186294,779075371,4127758056,594837703,1963050998,32303344,3220353000,12070105,3139554601,3669896601,356420396,109766702,3892481001,3224568760,2737617826,3164744895,288787244,3275131182,46196782,2347303796,38856961,3114516531,749904428,2720976034,3416403656,751084334,2720975266,279063729,779068206,2737682595,2560831000,760587053,1210914211,2720842146,3013750287,8502829,3979553715,3895357375,1198655495,1954596854,3422995973,3354788142],8,[151680001,153925422,3945576750,2160588509,117310581,2706779314,1874734803,3217435438,3338874296,2284696995,1093514254,1049142515,113716663,11447,2695883614,2980196044,3504394284,784704224,2687075258,3221892274,37487732,2481521526,766754283,544538940,70037664,3325736001,3204579654,3349884344,2930438,71747072,4638210,110159872,33652352,1048581493,1966747065,72253454,767213314,18118,2332456424,1031799422,3121902848,2105550818,2859809534,33572550,100945536,3120978408,3114346220,2147499308,279549044,3021239296,505531732,748691086,1973675058,28843785,857853230,8503021,1874799539,118614062,1963050998,3073247733,147191596,2148300032,2928958,113640820,1443114699,3190739873,3324718703,53352639,773170119,773066376,2292511553,1580078910,552125835,3888113668,3892583144,2615738461,34793472,751056523,1978203955,646298351,3909512680,1048634526,1962945713,773372507,3892732648,3686461250,61860133,785621334,724463550,773373894,363054851,336496686,2767405358,773275272,3905260382,1726481351,63039719,749813376,856388864,750494400,2720841635,914959548,213855939,773045548,2332335848,3274577206,785137280,3942806784,2347578240,3006186294,779075371,4127603432,3950280903,1963050998,4287686896,3087031487,567093504,2150504609,41171708,1076641968,3019922594,8972305,4030130332,3909317789,3224567636,750847622,192200714,3204451513,1438526872,849670957,784835264,773144203,3895285438,1048639006,1962945713,386332167,158597678,3895335098,1894253963,5368046,749813376,3892999424,91357452,750454470,2973663232,225706028,4127311592,4281208838,3974693748,846076,113641333,3942657212,4282706342,116789940,1963077143,3286501891,3122312272,567094613,6077016,3221889485,2936456899,414842924,1023457326,4034011597,512350347,12070508,2300693847,2301545750,3090075406,567100416,2290147968,1949199894,3359539213,108265518,3911784378,512426573,244002412,378219709,3391827135,1088949877,3393093633,1702166574,750587531,2719911454,3443504172,1433542433,1373882507,778976896,2147972352,3066686,3515554676,750730891,2382764720,4063011334,91555758,749668094,2345741121,3205366730,3205400876,3171826476,3893129772,1048576235,1962946250,2156915472,3042878,1048577908,1946168495,1813941121,3443438638,1048625953,1962945724,750231800,1946284776,3206449974,3172875052,3892933932,41156770,3677602809,2719911454,436717356,117382912,113650879,2684366535,3828494025,750716419,20776306,3898831872,3564437622,784940672,2337764352,2335050782,2335100686,2150550806,3065150,750006644,3788513741,3788628432,3788628433,3456822992,3442127953,3169419553,3521742343,3504787681,3504787686,2162610406,3590979797,3092903306,567105281,567099060,751044351,750520062,512476152,3873975820,767081215,567099828,751044295,3907715072,1345106336,1476396776,749798970,3389441731,1048576046,1946168507,8448259,3892395240,376767238,778976896,2148496640,2928958,1948661690,3339109979,28836142,3342762045,74776622,3375578292,3442325690,639744545,212024946,3137783342,3632988460,3443785912,236357665,2160260654,3080729204,1963729964,785096713,784860682,544872564,477366440,843317688,550142198,772675208,216736205,113669611,2147757771,70173966,784809600,3894244608,410321538,778976896,3121706240,4159186523,3204892418,4261412908,3274623494,772546187,243779891,4091751615,784926462,784809600,861238528,512630482,1085549730,3122602445,527574508,3547645995,772671222,4128535680,539889158,1048578677,1962946245,1014253887,3895042746,117310114,1048587452,1946168507,203328276,3443438638,767080993,567099828,750454470,4227983616,3515339315,3443655096,2940108833,74711084,567099572,2047616195,136597520,1479461026,3416392740,3305506862,785096750,2160312330,4281185086,213847157,766754092,3892368104,3224562864,772736646,58048522,2332065769,3207443766,12070165,2703346985,4236258744,2952950842,3406727744,2722114606,3080727829,388401709,33695022,326418442,259376186,785137280,4261966848,841879558,872868800,3502514690,3422948072,749838894,3771785424,2150548898,3065918,3416401013,1976109614,1958742557,3205401369,2954093356,4281533978,748816014,1963437810,1049186053,1455107263,2973663277,57933868,3190659515,1049308438,146353589,1060940800,126485109,24387644,4058137514,1015022513,2953999392,1017948718,2315416895,1948269575,3796085249,2864722673,71759555,2334291202,96633813,3443327160,2333504033,1140898008,1051992525,3270910413,4131485056,1946420294,89557819,1950023296,2151723522,2565357802,2211810289,2122974658,115834884,1963392896,41323286,989756544,1187382901,99287552,16795334,2153704270,91554559,18118,3443242179,3894833697,4203472206,3364601907,1336865353,3324814752,973209670,91553605,4638378,72253441,3991558,4638403,75401728,1946470390,4638451,41323266,1946172544,775716896,2088770420,91503358,16795334,2262512206,3443242012,1914471969,3841255428,3928746435,2147647113,3087794502,146353727,2259350272,3297159876,2868052913,3282747442,415125585,767082286,749735562,2088823178,91568641,2319527085,25002184,2315810106,742868741,988318273,3894441449,460587040,2348762251,575733581,259348673,74788412,132899850,1966012800,1491929602,1973863257,4286349486,3953685504,1364336373,521031763,2284635835,3151203095,3414884353,567099572,1515805528,1397801759,45819056,1343351552,149622192,3945050192,3224588291,113491,4203435857,117440441,2935097118,1239021319,3443569737,990474785,1594193345,3277347673,109977358,3971624096,1048585765,1946159735,113649161,3120564855,4092143857,2747282403,3600953043,785883694,1469905034,3903637811,326494855,4134805564,4067690812,785843846,3933519882,3892374249,3275419103,3481273717,1021045632,3909317901,104464592,58010788,2147537385,326449724,2885746408,2298542824,3324957502,3069190,2298512873,3324957502,3069190,1978000104,2963296280,3896575020,984613079,1476449000,785596041,785712838,1965964288,3590782473,3573990958,1060962094,3481273205,1965702146,47153189,1048577972,1946169046,2952967170,3576048191,2253550126,2248795105,9562337,4158841222,2296963462,2149217765,3354789071,2302440706,4281258814,3324957446,4281259270,785778374,6940672,3978684588,1961472744,1947024424,2751871524,975074348,1008366787,3330700602,3944808260,694663696,3923962345,4281526325,4187840334,787173059,2164379520,3900702925,1011280243,3907482637,3773300771,1364657900,884934414,375044,125153010,3539993016,1508379616,11536223,4171063210,4265716419,3274626310,1364678150,12079952,650153712,4294852224,4161303805,1599690843,3099789150,3230580736,2166816563,1957319997,8389898,1928331325,652274669,839015818,3521368575,2143519715,4286636929,637535935,843517322,1976110061,3955426052,1190300631,125085427,3347314947,2162486019,91504444,1965046912,109850351,2301504945,4180520766,4290484971,3444094207,3444093985,3092271905,773727522,748691086,3439496890,2396687393,3025805250,2384579925,8436442,567089844,186425638,1526738083,3540245132,136841,2387270284,378094298,3666739201,268499841,3677553266,3822257329,3532577420,3224626059,785446736,766588671,2939617070,3418525229,1631717901,543712116,1701603686,1936289056,1735289203,220465677,1936607498,544502373,1802725732,1953068832,1633820776,543712116,1701603686,1851853325,1919950948,544437093,544829025,544826731,1852139639,1634038304,168655204,1684095524,1836016416,1684955501,544370464,1701603686,1835101728,604638565,1819309380,1952539497,1768300645,1847616876,543518049,1176531567,543517801,544501614,1853189990,604638564,1970499145,1667851878,1953391977,1936286752,1886593131,224748385,1968120842,1718558836,1986946336,1852797545,1953391981,1634759456,168650083,1818838564,1919098981,1769234789,1696624239,1919906418,1176766989,543517801,1852727651,1646294127,1868767333,1684367728,1953394464,1953046639,1718379891,1126435341,1702129263,1864397934,1701060710,1852404851,1869182049,1869357166,1646294131,1919903333,1868767333,168655216,1766203428,1932027244,1868767273,1684367728,539232781,1701603654,539587368,2036473892,544433524,1701147238,1227098637,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,168652399,1920226084,543517545,1701519457,1752637561,1914728037,2036621669,773860896,606088736,1635151433,543451500,1634886000,1702126957,604638578,1299084627,1968467567,1684363109,1182099540,1632856434,1225395572,1818326638,1679844457,610628705,1920103747,544501349,1702125924,544434464,1158286628,1919251566,2003136032,1952539680,606091877,1850280461,1768710518,1769218148,1126458733,1701999221,1948284014,543518057,606106473,1850018317,544367988,544695662,1701669236,1092886586,2032166258,1931507055,543519349,1311725864,606093097,1229208608,538984018,1112089632,1699749965,1852797810,1126198369,1970302319,544367988,542330692,1936876886,544108393,1867915300,1701672300,544106784,1986622052,539238501,606106473,1935763488,544173600,1700946284,1850287212,1768710518,1768169572,1952671090,226062959,1851073546,1701601889,544175136,1634038371,1679844724,1667592809,2037542772,1227098637,1818326638,1881171049,745043041,1953459744,1919509536,1869898597,221018482,544370442,1701996900,1919906915,1869488249,1835343988,226063472,1967989770,1931506803,1768121712,1327528294,1919885390,1179012896,539232781,1701996868,1919906915,1718558841,1310990368,1632641135,606103668,1213481296,1330794557,1028935757,1635151433,543451500,1986622052,1852383333,1634038560,543712114,1752457584,1227098637,1818326638,1679844457,1667855973,604638565,1700946252,1869488236,1868963956,224685685,2035491850,2019652718,1920099616,168653423,1329990948,1633886290,1953459822,543515168,1953719662,168649829,1953384740,1701671525,1952541028,1768300645,1696621932,1919906418,1920295968,543649385,1701865840,1126435341,1869508193,1868832884,1852400160,544830049,1684104562,1919295603,1629515119,1986356256,224748393,1718559754,604638566,168652399,1163018788,1763724097,1445208179,1179210309,1936269401,1128604704,1763725128,1227104371,1818326638,1881171049,543716449,1713402479,543517801,1701667182,1227098637,1818326638,1847616617,1700949365,1718558834,1918988320,1952804193,225669733,1917133834,544370546,1953067639,543649385,1679847284,1667855973,604638565,532488,844831492,407585866,1343807828,2202931603,241194513,1276053319,255987467,196960015,1159322148,4182249219,251613454,1330512640,169187924,1330795077,1447382098,371739717,1230521605,367678547,1229194240,167379282,1313165831,21318977,1375997106,2986430021,1380255244,21320513,1141115965,1023495237,1498678540,4009837904,1163002892,17039437,1347371781,449577305,1430343686,520111443,1094976787,939541844,1230243096,3456124237,1163265048,240582738,1280267780,51234817,2785100867,1212352018,22169924,1292047014,316211524,1145785606,3640742473,1146225426,101912065,1229213010,319684946,1163018758,2449492801,1163265815,1497778514,68667136,5522771,1342640143,1347243858,268042324,1413566469,262144072,1230521605,298385492,1414808325,301400409,1212368133,391708751,1414481669,378929231,1229476614,1442862150,1179190038,68505600,5394246,1124340840,1392530252,18,0,0,0,0,0,0],9,[276,0,1,12066574,1,2283916595,1,856000022,1,855750866,1,1370759629,1,512303565,1,3280864649,1,3005137974,1,109848075,1,2300969008,1,3019910686,1,2317471001,1,3440293072,1,93037089,1,3535275185,1,250139392,1,2747466587,1,4024960391,1,2332330756,1,1418396252,1,272928262,1,1007574158,1,2953278979,1,79227137,1,37551083,1,2301556084,1,772099614,1,89130636,1,89301550,1,1728497198,1,12058629,1,1914817853,1,1403203295,1,3101199109,1,567100416,1,1954595574,1,3942821892,1,113716939,1,1381,1,1376187950,1,1618280965,1,1312212270,1,184847109,1,772830656,1,92872334,1,771763361,1,184902051,1,4232410304,1,4281581710,1,847249337,1,1957622464,1,3909791749,1,1974337694,1,3750451188,1,2970600323,1,116118276,1,567101620,1,57891103,1,2382397417,1,1638084288,1,3247198469,1,992922371,1,1493534494,1,4130565239,1,2767454003,1,515448590,1,1394510592,1,90749445,1,3437764102,1,3443504131,1,63891489,1,1316095775,1,1962942013,1,1950253849,1,91553797,1,90638022,1,90743295,1,1952075069,1,1297759496,1,3270050676,1,91005185,1,3771925937,1,91227691,1,4127545251,1,33903110,1,1053043572,1,2334524750,1,92578565,1,38112038,1,3909440931,1,145752250,1,196084459,1,512437840,1,1760036179,1,3443438595,1,2548652065,1,4290465795,1,1219763967,1,1478435277,1,2197819397,1,3597799931,1,3531064123,1,90652288,1,51934464,1,1912959494,1,2009283525,1,1913007041,1,1946551045,1,990147077,1,2332194499,1,3632996035,1,90381961,1,567101620,1,2745397791,1,268764517,1,1732149248,1,192151557,1,90375683,1,89589291,1,2734690349,1,2225276245,1,2265332485,1,53114629,1,990205702,1,1980073734,1,1732149295,1,628359173,1,371970187,1,369296739,1,372966743,1,360121735,1,721782689,1,3942995718,1,2177535178,1,989878722,1,3956700098,1,4282837467,1,91231883,1,3540300114,1,212949218,1,3364612307,1,89333387,1,1107343390,1,2334073293,1,2164610846,1,1913651451,1,266386179,1,89595433,1,3540300115,1,2345372643,1,503665438,1,92544654,1,3897676339,1,1068761723,1,2112365005,1,991910146,1,192240584,1,92544513,1,89603715,1,2344645888,1,2701481230,1,3238200694,1,2701483939,1,1570964856,1,2080818181,1,89760517,1,3238248588,1,855989155,1,2148961225,1,1394510597,1,12066309,1,522308930,1,3119055731,1,1846971390,1,1757041157,1,1882373,1,1394510638,1,417865221,1,3443504130,1,35317793,1,3732036103,1,3204450233,1,2335049064,1,2198164790,1,57999610,1,637586921,1,3633061317,1,3633235459,1,3322087307,1,3347253129,1,3823258116,1,3119193862,1,788424681,1,89261814,1,772568066,1,89011909,1,2225286829,1,3141659397,1,1219821567,1,3674939853,1,2301550196,1,3020251934,1,773967176,1,84239779,1,2737700880,1,3951232388,1,244002320,1,3241870727,1,3358263415,1,41405243,1,4219591051,1,141758464,1,78758795,1,65790163,1,1358954424,1,1394510638,1,2345218821,1,1107343569,1,2335056333,1,1493521182,1,2216594990,1,1372730117,1,3019990760,1,3894529343,1,996016488,1,3909318086,1,4130274784,1,33903110,1,2704155253,1,271385988,1,1537420800,1,113716741,1,16778585,1,914959950,1,2737702237,1,3633186143,1,1223,1,1394510638,1,19261445,1,567099060,1,771827688,1,89261814,1,3909317634,1,2335048025,1,3188024598,1,2704146433,1,3221947745,1,2387084660,1,773097944,1,1208313249,1,344578190,1,3444946002,1,784502305,1,92870281,1,922693210,1,2401633633,1,771763206,1,90388107,1,2301030915,1,771752502,1,89011909,1,1959089694,1,833798,1,6078289,1,2767395978,1,2880159795,1,505372249,1,175424854,1,2315283647,1,2879714108,1,3307167403,1,2159608436,1,4093217536,1,784989860,1,93011514,1,4186571894,1,4281467627,1,2334013998,1,2315548165,1,839052249,1,13953243,1,4279530751,1,1962873460,1,309657364,1,168202022,1,110044672,1,3224567820,1,110090382,1,110035080,1,508690570,1,2300481070,1,8436229,1,567089844,1,4130232863,1,17125894,1,3308136052,1,772103478,1,89013956,1,274566182,1,478760526,1,242583846,1,1493615918,1,1569465861,1,1166616084,1,2422532882,1,771782888,1,89732805,1,378416890,1,2335049055,1,4211432742,1,3264108062,1,3280722574,1,12276683,1,911360,1,777241435,1,92872331,1,1526727400,1,777002691,1,184902049,1,1208448192,1,512350350,1,2704146433,1,3221947749,1,2387085172,1,18778584,1,3273611264,1,4278197736,1,3828487796,1,4187817097,1,3901753835,1,1962868750,1,2633538838,1,2399145192,1,2833978948,1,918888214,1,1354959795,1,378154578,1,28837254,1,1512164659,1,50008,408,0],10,[1024,0],11,[1024,0],12,[1024,0],13,[1024,0],14,[1024,0],15,[1024,0],16,[1024,0],17,[1024,0],18,[1024,0],19,[1024,0],20,[1024,0],21,[1024,0],22,[54,0,1,16777216,1,1550,968,0],23,[1024,0],24,[1024,0],25,[1024,0],26,[1024,0],27,[1024,0],28,[1024,0],29,[1024,0],30,[1024,0],31,[1024,0],32,[1024,0],33,[1024,0],34,[1024,0],35,[1024,0],36,[1024,0],37,[1024,0],38,[1024,0],39,[1024,0],40,[1024,0],41,[1024,0],42,[1024,0],43,[1024,0],44,[1024,0],45,[1024,0],46,[1024,0],47,[1024,0],48,[1024,0],49,[1024,0],50,[1024,0],51,[1024,0],52,[1024,0],53,[1024,0],54,[1024,0],55,[1024,0],56,[1024,0],57,[1024,0],58,[1024,0],59,[1024,0],60,[1024,0],61,[1024,0],62,[1024,0],63,[1024,0],64,[1024,0],65,[1024,0],66,[1024,0],67,[1024,0],68,[1024,0],69,[1024,0],70,[1024,0],71,[1024,0],72,[1024,0],73,[1024,0],74,[1024,0],75,[1024,0],76,[1024,0],77,[1024,0],78,[1024,0],79,[1024,0],80,[1024,0],81,[1024,0],82,[1024,0],83,[1024,0],84,[1024,0],85,[1024,0],86,[1024,0],87,[1024,0],88,[1024,0],89,[1024,0],90,[1024,0],91,[1024,0],92,[1024,0],93,[1024,0],94,[1024,0],95,[1024,0],96,[1024,0],97,[1024,0],98,[1024,0],99,[1024,0],100,[1024,0],101,[1024,0],102,[1024,0],103,[1024,0],104,[1024,0],105,[1024,0],106,[1024,0],107,[1024,0],108,[1024,0],109,[1024,0],110,[1024,0],111,[1024,0],112,[1024,0],113,[1024,0],114,[1024,0],115,[1024,0],116,[1024,0],117,[1024,0],118,[1024,0],119,[1024,0],120,[1024,0],121,[1024,0],122,[1024,0],123,[1024,0],124,[1024,0],125,[1024,0],126,[1024,0],127,[1024,0],128,[1024,0],129,[1024,0],130,[1024,0],131,[1024,0],132,[1024,0],133,[1024,0],134,[1024,0],135,[1024,0],136,[1024,0],137,[1024,0],138,[1024,0],139,[1024,0],140,[1024,0],141,[1024,0],142,[1024,0],143,[1024,0],144,[1024,0],145,[1024,0],146,[1024,0],147,[1024,0],148,[1024,0],149,[1024,0],150,[1024,0],151,[1024,0],152,[1024,0],153,[1024,0],154,[1024,0],155,[1024,0],156,[725,0,1,65280,1,268435456,1,538976256,2,538976288,1,0,1,538976256,2,538976288,2,0,1,1769409792,1,2003788910,1,852083,29,0,1,567086772,1,2686357038,1,4294948908,1,158664327,1,1962934077,1,3442390020,1,520039969,1,3979553950,1,158547587,1,235238911,1,278784287,1,2395507964,1,795065552,1,2385952910,1,4214005790,1,101107254,1,3325460523,1,2150336774,1,158657803,1,117884726,1,3943498027,1,1899921426,1,192151561,1,3122597406,1,1001663500,1,2149523917,1,686142,1,1048578676,1,1962936951,1,100329475,1,158009030,1,1896269312,1,3364618249,1,103536782,1,280636578,1,199423744,1,3087234258,1,3181641727,1,2686357036,1,1845949996,1,141885193,1,1912957928,1,168945667,1,567089588,1,749773366,1,158205686,1,3892868351,1,57804116,1,4128039656,1,4278875910,1,552141684,1,1996944902,1,57999113,1,3323050473,1,665094,1,172951238,1,1309066752,1,116850698,1,4294904115,1,99156852,1,1933476609,1,494141449,1,2281701310,1,3205067574,1,3375573899,1,1010936492,1,1241085197,1,243801870,1,870919050,1,3122597377,1,179579654,1,243933645,1,3979488006,1,3187917187,1,2311006982,1,3919901483,1,1444806934,1,752533335,1,3903467524,1,1017776926,1,1007252493,1,653554981,1,1040139718,1,237820606,1,239396895,1,118365958,1,1935669131,1,3189706245,1,179055834,1,1007580352,1,1007318029,1,2852353085,1,632353003,1,1008688810,1,3910038541,1,3689414812,1,1948597258,1,1963801604,1,10021123,1,2725392428,1,2658601276,1,3522202520,1,2388068070,1,856240902,1,2344717257,1,2935114233,1,2334588419,1,2198298421,1,1718943742,1,1947024556,1,4176194145,1,908422074,1,749346559,1,109978484,1,1236535603,1,113713613,1,2355,1,158795462,1,1996932608,1,521011210,1,3894760634,1,468262876,1,3894349566,1,28843988,1,3911306508,1,887684622,1,3217125908,1,1541942155,1,1966750730,1,173336600,1,4185197884,1,4144647656,1,4278792966,1,3924260351,1,1072233962,1,1965374474,1,4284147971,1,1963801770,1,2364506609,1,650611499,1,3895167650,1,3941075494,1,1845949971,1,521076489,1,2344225140,1,528738347,1,3892867816,1,57935160,1,3187952361,1,3653184395,1,687978540,1,20718029,1,4282124148,1,3504932469,1,60549376,1,3164734858,1,3105927212,1,4064739337,1,705278126,1,752460481,1,855671231,1,2863421129,1,4208987452,1,243847670,1,3898474624,1,3013804145,1,6078252,1,3442016696,1,749838881,1,2751871660,1,1007252524,1,3892671501,1,4034202115,1,5236814,1,3207378339,1,28835948,1,2720124201,1,1055403186,1,750232320,1,750061067,1,2150414755,1,175377724,1,2877510,1,750323209,1,3651203563,1,3155593772,1,1959922220,1,8907011,1,1266010366,1,748691086,1,158547587,1,3909317887,1,585760170,1,868455421,1,161605851,1,748947002,1,3414291317,1,3896934400,1,3896904083,1,884935943,1,375044,1,1974399632,1,112649,1,3624657107,1,3589003243,1,1346454102,1,649050711,1,3187854825,1,11872777,1,2318195135,1,4080198412,1,4043546534,1,2929896606,1,3967135020,1,1048629387,1,1946168494,1,749838347,1,749864458,1,3446996796,1,4279596008,1,4237355474,1,4277963241,1,1959329482,1,2936456951,1,378142764,1,378023100,1,2716347609,1,3208622094,1,2863279330,1,760593066,1,567089844,1,200337414,1,3204970379,1,96873551,1,2919679488,1,297009197,1,3652853518,1,531949612,1,117311347,1,3874041262,1,169987329,1,1964160192,1,1581154627,1,1968128813,1,1614708751,1,141905197,1,749670016,1,29878532,1,761151105,1,242571333,1,761282176,1,2147972421,1,19705614,1,1048689387,1,1094856030,1,1048621685],157,[1968450912,2936963243,2766864940,749668086,3339613185,1160601094,1611056728,2263434541,2936468993,527696428,761136839,113656130,3126078816,263466325,3221889485,250087028,29616392,3120606953,1001663500,512631245,113650848,3204450673,3599445071,186392206,1958742700,2866491918,175423498,259275580,3925142444,3324379537,1312554821,1342135434,2337429075,2161259250,1966735740,2148829701,236863722,3642132511,2447922988,108224269,3894970554,1511988522,1552309086,3443242239,4284254241,2686357046,1896283692,3919081993,2382823148,3022823942,119655753,4294949827,567101620,567101620,196977446,2334958243,734563544,1096387,3523994359,4290249588,750625791,334162115,748684942,1996932646,3324379145,685830,856094502,1979711241,4289652753,3019900603,639749448,3892917155,637992875,154338958,760551050,15269683,2344629005,2935114184,749051983,4282726950,3198812532,199765334,4294948877,179953547,128709376,3188127976,717171595,702731,1007110888,3810751501,2384856588,638137094,1124548489,1021881411,2852615175,175377724,229700587,1239016362,3224557291,113259434,154510111,2198419363,4278809406,113706613,4293921139,3908722153,1031800485,2316203008,2968059717,2685367298,3953798309,760586249,2963947524,1455335994,210298925,2383614952,3022823942,2384579913,640458758,158009086,1896269350,1556021257,3120007936,2784165970,3140243386,12061468,2919691851,57999149,4280148969,237807150,631880223,3910906856,1048836594,1946159475,1933476114,3287285513,2384331184,2720833566,3273591153,751044343,91619327,3945126842,751018195,750913082,2028471156,3291908868,3909038892,2545550468,461170726,378156724,567083100,1962934077,4158781386,2348452835,73853168,3911623098,3125943134,1102318332,179970509,3443635211,2747282209,113642103,1510017390,684374723,4055499755,4292536360,1877548814,2686357247,2013724204,3441013770,2722169889,4240116490,2332526602,3033084883,1914817852,3034090453,3122777406,1018432266,3329368525,1052039307,719856077,1845937682,915079177,1048775289,1979648371,1929824006,3958374409,1845937699,915079177,1017907833,2339861884,3087734806,567098624,3633024114,1200029616,1614360,858491839,222068937,1894318965,2084339967,2863462516,947129660,1971076161,1170614005,910757375,730467976,2033617230,437685002,3375583499,3443261624,3094501665,4289779851,2719500166,377946137,378080024,233507610,2316208182,914968107,3068660345,3911126545,4259904225,1933476350,1978662921,1929824006,3925868297,110033022,3375574176,2334886846,222080254,574359668,3321821045,4153144299,1965178028,1959656976,1191544844,1017954814,4277564706,1967013069,1044152370,648808053,172885758,1006954216,638153997,172951239,1760231433,172998487,1947024556,81127492,104480628,963914916,1022225322,3893785916,222037179,3341158773,151660038,1463675648,3943311039,2162199251,594902268,1996946982,77195274,74714428,326466620,1827217158,652248830,989822336,844038517,2287971008,4236265253,4261770253,4284803521,2000584742,343146506,638221247,175718025,3895167934,2863400027,4201975100,730467976,2000584742,118358026,2755559619,74723116,41168700,2328058940,3892337686,2548566452,3070686725,376767021,567098292,2481459314,3208622333,196673629,850064128,915129280,2320379304,3236495172,991982847,2317907186,4290111492,3947758452,24936690,2316071982,977076036,2699563380,4177688063,313027,567098292,2328041331,4287490052,855078393,22841051,567098292,1552477298,4248102913,3040250182,6078253,3442016952,3991454497,3208622083,196673629,3198874368,4209508481,6078457,3442019768,749969697,750323211,3324880035,388869126,28311976,95421044,2720842658,113716418,11460,3022869946,3894529306,1939668785,3007217674,57933869,3187805417,1438580828,3117910829,2767388684,567087028,1344824250,3893914088,1357383458,3221903361,116787829,1954557293,4239976707,113643956,3338600533,268458758,1948676765,3208622104,196673629,2343236352,3207443766,246939740,3022114089,5618193,3897565645,3948413601,5618181,3237880269,1877542517,10611196,751044351,3895287230,116785362,1963011492,761839340,1947206902,663796232,3944215016,15132675,187528609,3212211392,3092262086,1487609888,95539339,254077139,3370651831,2855120910,522502794,2953756392,3330976301,1342564560,1919171584,3898878978,512429739,3674942835,548942452,3956386592,3956403153,3956337616,1639368586,108137532,41185462,3221883948,212861557,2095583415,2855972878,1961411466,2865138190,3131752499,1961372870,3255762455,2687399212,3265408195,5105708,765724406,4263080962,1965927438,2886125075,3451524909,390653990,3440117944,3008545,485036724,3892949247,4109045312,3106719423,2767388680,3114934448,2767388675,1386922035,3895248570,3277461279,501817520,3115995662,521018921,521603560,915129178,1049308537,3224579451,3901479051,3506446521,2513949158,2499825640,4909203,3791656083,751222766,2451050681,2466260968,2499808744,855640552,3334122176,382593324,3906243152,2321154049,3505049842,3505049834,190698,3800094346,2969728015,583925248,818577613,3263877418,3222455210,314869287,3297126336,696498883,2885714110,376750090,1006723816,3893326861,225705249,766721664,3120985088,2884184034,768506,2885705150,41238332,4186175970,3123410176,1474832251,8437270,80205451,179830904,2904673548,3883197450,201400040,1953381408,2625190940,2650743528,330618229,3439353018,2800242721,3686422528,1958805029,3202925371,2148103164,2995006,2615870068,765998731,3892341951,28836067,2149698857,536898878,1948877754,3122115603,567083100,7071824,633649752,3312828670,3204062697,3102212225,1963801600,99543299,3087144424,567098624,1915083706,2396556259,858563102,244004562,1068772541,3364561357,3142794723,1085538305,1918575053,1958820617,3241888228,29043060,1140897792,3270910413,3910956416,2384336314,2150408222,618814,3121378335,1001663500,3224510925,3287926760,154470019,924222209,3126001673,2335574374,3022967070,112959,2338005453,3809047240,157720583,678763068,856067590,3444159497,113706785,2355,2953415912,1933476109,1979707401,1929824006,3338665737,17395206,82357443,1325036544,1948269763,1950170126,1949056010,1950039046,3272162306,3892347326,1048641503,1946157148,2336638475,4291946718,175496763,108268860,3911626682,3504929058,3204914941,4290248789,3224611583,2963975083,3108481544,1068498955,1438296819,3441079341,5618209,567087540,666745424,2685711848,1074004060,91570236,70037664,196012097,1958742616,668252681,3910441448,3485138307,345040935,3106758078,3334406155,4090989356,168671396,2864722859,3893657321,65600867,4250790144,3894909626,3334411370,3442521132,3828502561,4059433649,3771860145,280609802,3905980945,783351181,3297401002,179430450,78770678,3289047250,2316308665,4252231888,3131752499,820587718,521018900,32106502,2149975666,175439933,2952973544,186574910,2317760747,3221899013,607924340,233309556,653257483,3141993866,3221891522,3280149620,38135811,125044538,1962950528,114551793,4278652503,123666775,520603883,700234435,2954090217,2953767741,2953505563,2953243454,2952981308,180808060,2885714110,2795758642,2822146349,3070674477,113639469,2332044723,2335025206,2335024654,1362879446,4107003990,1529719459,56221227,3822488523,3903605033,74840599,766707454,91569980,766971520,1965702146,3071180805,1290273325,973501694,1965859846,3224522454,1011221638,2281862413,2822146308,2785970477,2159985453,3221924864,65537396,3272424448,4263372972,993789045,3276732021,3892375016,712310752,3892364264,887619926,4292012033,376716092,1947024556,23455761,91503420,1962798824,23390213,3224627947,82363307,4226148352,1031808707,3121116416,521021555,101902825,99582751,753457035,4294541569,3924325376,1994920667,17098752,15919190,3897062494,3924295899,3895913216,1014235364,2891373363,259263804,4151655740,1015071742,4277171469,1592585159,108317694,3911764666,3897816790,4267376700,3893392591,2699559106,222080000,3823633780,3287739136,748691086,186392206,1015084595,2347791360,309455062,2902152936,4218798090,2092887275,3187927848,508962945,1912612328,3908537104,4152819867,721479912,4078896846,3277725604,3945299134,679591427,1912604136,2423974707,3008764,748684942,470191654,1375679243,3903608662,642187375,1979663674,1609818626,208951646,5630033,1031808601,4192236800,2332499651,1088968702,1459940096,1493188328,4186437931,222068931,3903589236,1072169015,1966947328,2159985648,3221924864,2900886900,3272424700,748684942,470191654,3909038859,2149974027,4151640125,3946688707,3116380674,2935095552,1918975171,2004499462,3273665538,988304209,2212072192,4214948587,1364207730,4101957715,46367579,3956475057,3444225091,2382797857,3895238662,2634544243,108222553,3911583418,648738214,1479,113465691,1220578384,2703671438,78708739,3364610259,3032680280,69324057,139389249,3892316648,3334732331,23558,6035082,1074053770,108347452,749733378,3192963326,1202990424,91431373,2162761486,760594418,3025721227,2778770234,216640044,109970961,2703633568,2737178924,2149974038,619070,3307604597,3087772438,567092513,109983239,1236544674,12067277,3894529356,45677850,1914817853,3101199120,567100416,1971372790,3443438605,682080801,3943741928,4130508841,3087256192,567100417,244051,1052039987,3796050381,1169447929,1169433037,1169433037,1051992525,2385912269,506241054,2734692513,3602385263,3150663683,12058625,4129410372,880050370,1947255542,891926575,3230409165,1996525629,856405027,3021000155,2316356879,3066756820,2344629017,3020404680,856739078,3019945938,3272658178,2888417470,3979528330,2326529716,3793866192,3013723129,3104181036,653048364,2176726389,4210419712,125046076,977120582,3909317901,1273560774,3070686972,108331565,567098292,2196330355,1304825,968099445,1232282061,3911710394,2210067490,3203984169,3102212225,1947024634,749969905,750323211,1965485242,4228704482,766969590,3739796226,3020322303,1931595066,672381460,3136548329,2649237197,201439247,2431132109,213894136,79858220,1967144000,2953183750,2864774700,749020810,111884976,3036121887,1914817863,3273592322,2885683385,24387644,2901992106,309600316,783343754,2865006250,1017905841,2852353056,3224565986,113689514,2164263287,619326,3339089407,4278809350,3983862271,167657088,3125769471,236858709,3441079327,4290387745,2148709385,654910,297011060,167642822,169987328,515864000,3189706247,2042572117,1049175561,78383612,1950366784,1048585739,1946159480,2872751107,654276072,234833350,118365958,167517835,1946173312,2901642121,4218752316,2713638539,730578697,1017956659,2316858661,973732646,1175483684,2901642070,74714428,4159416897,2867063646,1963801665,2285259229,2301331982,4127849494,4278808070,326377230,4282762790,730577444,638488040,234833350,3924753897,2384391933,3123486750,1048651993,4278192499,113706613,4294904179,4070893855,855671230,2684784329,158973740,2720448562,2250639736,168392454,650868160,167526025,4261856806,485031689,624733689,2284219765,3892968230,222099727,1034757236,91508297,1970170173,4177389654,1965571244,4176865358,125118780,748691086,2902374377,1114901820,510929212,1948925098,1967078404,113649158,3892382206,3816159447,4282762790,4173719565,230218219,2105550336,41225727,3903569971,1034811571,91508548],158,[1970234429,4171622469,1047792956,2886312383,1963801770,117319418,2200308087,4278809406,3341158261,619270,1048585983,1963002366,3206481431,2042497535,24936457,4261705018,3087628294,567093504,3401210051,4055689512,749668038,8502784,1022907112,2347463693,703447022,4119527605,3813084554,1963125555,2317790224,3292153637,3430942068,3804510752,4177764334,1195842955,2900063646,3128167740,1979196136,4162185425,385278975,3102420143,2898867030,2708737340,1962412776,4092281091,125058364,2440301884,2901797804,2306161980,1022880488,1602384909,343189235,234847360,1017953396,3904336909,4134926299,418119600,4157728940,3224563061,1438584555,687978541,263463373,567138187,749668086,4127356159,1958742736,3942443267,2348262120,2179563982,2148411392,2148436480,2316208128,730578731,229680371,3978553770,3677489847,1947024556,4152486052,808193140,3891708806,3280388866,2384390891,2318180382,520711206,3812278322,3372131955,512664299,866200736,4294945033,3230544756,3375618190,4186685835,2343498313,3108390647,2784165897,1962884483,3342175000,922746629,748691086,1963801772,3965179,2300969844,512672565,116862112,4294904115,3526620020,154474121,154605193,3204480744,196673629,4062228480,1090614702,4144753027,243873497,2481466709,1949973750,4136429601,125110844,1022789096,4145247290,4278792966,3907679743,521011261,3911760058,1572859934,244004352,3897634133,207222370,87696928,132842101,975577132,1204843781,1273555170,1998601462,1947024582,4131448839,4185197884,787888616,785456779,567099060,512630467,3526560051,3443327160,521499169,785490742,378263691,243992885,12060983,3273772354,126540427,4179574828,9496771,512627314,108342432,158205638,113689345,3271559534,1006665888,3121181186,1323827330,4097698059,748691086,158211722,1589255950,3911772969,1474883450,855750656,91556978,567083442,3453104835,243974945,3372875904,3224559989,3666485709,3895019962,1153043222,1977289257,691976707,3893037545,28835874,1963618862,3273772291,567134462,2148436675,1976109568,3444880558,3134753313,3421186387,2885705150,1866211340,229448565,1849434144,4236248693,3272504608,1969645117,540847112,3237872501,675986115,503759865,3230582924,113760398,852097,730400454,2315700096,3893166379,2582118406,3406241536,3892347326,222098799,767244660,17492015,110117867,3204910679,716451014,2342003149,65458672,13009392,3118041895,2767388675,2343182512,2999618499,2264069732,766743236,3120635625,1340614436,4291291146,3139909050,2968006445,1916171264,3275402293,3342468212,3588762741,3106370048,1015023468,2953540621,2347038308,12773576,3297383538,3355639988,1963801772,3442193417,1975519777,364561153,168093735,2176759531,4107921408,309595452,3896130235,518717556,3442259088,3912938273,1471807656,165734439,872410856,661174985,3896130235,1718878271,3398120306,1017958963,975336461,3005642179,6219822,4102692722,1947024556,1975728656,5171220,3565817714,1963801772,3442324488,1958742561,659077681,3943273960,159574198,2310671028,3894529323,2344546931,222068779,501748852,2316268032,3275402484,4219473524,1308915002,985858226,4202035655,2315256808,283689940,2330948096,649440,181732466,17621130,738495171,1022980656,4101174538,106414918,3334407950,3083176492,2746384,2326446986,2222273,2326446986,1697990,1966799744,2855186435,216580746,2864722688,3895248570,1594296591,2248856771,808455620,41234492,12044074,1351795627,1476970216,1377747858,777081680,748691086,175586944,3892737280,719847433,1482381568,2160271194,665150,649729908,1023457290,3686408653,2332783141,2264903896,413276231,521061120,2163010025,675646,1048589940,1946159694,172997143,3443327416,856519201,2345219026,1107474648,283845069,856313786,3443307721,639744545,3633039474,1200029616,1679896,272531651,225771310,784545419,772880009,772802246,2347578367,3006186294,779075371,4127758056,594837703,1963050998,32303344,3220353000,12070105,3139554601,3669896601,356420396,109766702,3892481001,3224568760,2737617826,3164744895,288787244,3275131182,46196782,2347303796,38856961,3114516531,749904428,2720976034,3416403656,751084334,2720975266,279063729,779068206,2737682595,2560831000,760587053,1210914211,2720842146,3013750287,8502829,3979553715,3895357375,1198655495,1954596854,3422995973,3354788142,151680001,153925422,3945576750,2160588509,117310581,2706779314,1874734803,3217435438,3338874296,2284696995,1093514254,1049142515,113716663,11447,2695883614,2980196044,3504394284,784704224,2687075258,3221892274,37487732,2481521526,766754283,544538940,70037664,3325736001,3204579654,3349884344,2930438,71747072,4638210,110159872,33652352,1048581493,1966747065,72253454,767213314,18118,2332456424,1031799422,3121902848,2105550818,2859809534,33572550,100945536,3120978408,3114346220,2147499308,279549044,3021239296,505531732,748691086,1973675058,28843785,857853230,8503021,1874799539,118614062,1963050998,3073247733,147191596,2148300032,2928958,113640820,1443114699,3190739873,3324718703,53352639,773170119,773066376,2292511553,1580078910,552125835,3888113668,3892583144,2615738461,34793472,751056523,1978203955,646298351,3909512680,1048634526,1962945713,773372507,3892732648,3686461250,61860133,785621334,724463550,773373894,363054851,336496686,2767405358,773275272,3905260382,1726481351,63039719,749813376,856388864,750494400,2720841635,914959548,213855939,773045548,2332335848,3274577206,785137280,3942806784,2347578240,3006186294,779075371,4127603432,3950280903,1963050998,4287686896,3087031487,567093504,2150504609,41171708,1076641968,3019922594,8972305,4030130332,3909317789,3224567636,750847622,192200714,3204451513,1438526872,849670957,784835264,773144203,3895285438,1048639006,1962945713,386332167,158597678,3895335098,1894253963,5368046,749813376,3892999424,91357452,750454470,2973663232,225706028,4127311592,4281208838,3974693748,846076,113641333,3942657212,4282706342,116789940,1963077143,3286501891,3122312272,567094613,6077016,3221889485,2936456899,414842924,1023457326,4034011597,512350347,12070508,2300693847,2301545750,3090075406,567100416,2290147968,1949199894,3359539213,108265518,3911784378,512426573,244002412,378219709,3391827135,1088949877,3393093633,1702166574,750587531,2719911454,3443504172,1433542433,1373882507,778976896,2147972352,3066686,3515554676,750730891,2382764720,4063011334,91555758,749668094,2345741121,3205366730,3205400876,3171826476,3893129772,1048576235,1962946250,2156915472,3042878,1048577908,1946168495,1813941121,3443438638,1048625953,1962945724,750231800,1946284776,3206449974,3172875052,3892933932,41156770,3677602809,2719911454,436717356,117382912,113650879,2684366535,3828494025,750716419,20776306,3898831872,3564437622,784940672,2337764352,2335050782,2335100686,2150550806,3065150,750006644,3788513741,3788628432,3788628433,3456822992,3442127953,3169419553,3521742343,3504787681,3504787686,2162610406,3590979797,3092903306,567105281,567099060,751044351,750520062,512476152,3873975820,767081215,567099828,751044295,3907715072,1345106336,1476396776,749798970,3389441731,1048576046,1946168507,8448259,3892395240,376767238,778976896,2148496640,2928958,1948661690,3339109979,28836142,3342762045,74776622,3375578292,3442325690,639744545,212024946,3137783342,3632988460,3443785912,236357665,2160260654,3080729204,1963729964,785096713,784860682,544872564,477366440,843317688,550142198,772675208,216736205,113669611,2147757771,70173966,784809600,3894244608,410321538,778976896,3121706240,4159186523,3204892418,4261412908,3274623494,772546187,243779891,4091751615,784926462,784809600,861238528,512630482,1085549730,3122602445,527574508,3547645995,772671222,4128535680,539889158,1048578677,1962946245,1014253887,3895042746,117310114,1048587452,1946168507,203328276,3443438638,767080993,567099828,750454470,4227983616,3515339315,3443655096,2940108833,74711084,567099572,2047616195,136597520,1479461026,3416392740,3305506862,785096750,2160312330,4281185086,213847157,766754092,3892368104,3224562864,772736646,58048522,2332065769,3207443766,12070165,2703346985,4236258744,2952950842,3406727744,2722114606,3080727829,388401709,33695022,326418442,259376186,785137280,4261966848,841879558,872868800,3502514690,3422948072,749838894,3771785424,2150548898,3065918,3416401013,1976109614,1958742557,3205401369,2954093356,4281533978,748816014,1963437810,1049186053,1455107263,2973663277,57933868,3190659515,1049308438,146353589,1060940800,126485109,24387644,4058137514,1015022513,2953999392,1017948718,2315416895,1948269575,3796085249,2864722673,71759555,2334291202,96633813,3443327160,2333504033,1140898008,1051992525,3270910413,4131485056,1946420294,89557819,1950023296,2151723522,2565357802,2211810289,2122974658,115834884,1963392896,41323286,989756544,1187382901,99287552,16795334,2153704270,91554559,18118,3443242179,3894833697,4203472206,3364601907,1336865353,3324814752,973209670,91553605,4638378,72253441,3991558,4638403,75401728,1946470390,4638451,41323266,1946172544,775716896,2088770420,91503358,16795334,2262512206,3443242012,1914471969,3841255428,3928746435,2147647113,3087794502,146353727,2259350272,3297159876,2868052913,3282747442,415125585,767082286,749735562,2088823178,91568641,2319527085,25002184,2315810106,742868741,988318273,3894441449,460587040,2348762251,575733581,259348673,74788412,132899850,1966012800,1491929602,1973863257,4286349486,3953685504,1364336373,521031763,2284635835,3151203095,3414884353,567099572,1515805528,1397801759,45819056,1343351552,149622192,3945050192,3224588291,113491,4203435857,117440441,2935097118,1239021319,3443569737,990474785,1594193345,3277347673,109977358,3971624096,1048585765,1946159735,113649161,3120564855,4092143857,2747282403,3600953043,785883694,1469905034,3903637811,326494855,4134805564,4067690812,785843846,3933519882,3892374249,3275419103,3481273717,1021045632,3909317901,104464592,58010788,2147537385,326449724,2885746408,2298542824,3324957502,3069190,2298512873,3324957502,3069190,1978000104,2963296280,3896575020,984613079,1476449000,785596041,785712838,1965964288,3590782473,3573990958,1060962094,3481273205,1965702146,47153189,1048577972,1946169046,2952967170,3576048191,2253550126,2248795105,9562337,4158841222,2296963462,2149217765,3354789071,2302440706,4281258814,3324957446,4281259270,785778374,6940672,3978684588,1961472744,1947024424,2751871524,975074348,1008366787,3330700602,3944808260,694663696,3923962345,4281526325,4187840334,787173059,2164379520,3900702925,1011280243,3907482637,3773300771,1364657900,884934414,375044,125153010,3539993016,1508379616,11536223,4171063210,4265716419,3274626310,1364678150,12079952,650153712,4294852224,4161303805,1599690843,3099789150,3230580736,2166816563,1957319997,8389898,1928331325,652274669,839015818,3521368575,2143519715,4286636929,637535935,843517322,1976110061,3955426052,1190300631,125085427,3347314947,2162486019,91504444,1965046912,109850351,2301504945,4180520766,4290484971,3444094207,3444093985,3092271905,773727522,748691086,3439496890],159,[2396687393,3025805250,2384579925,8436442,567089844,186425638,1526738083,3540245132,136841,2387270284,378094298,3666739201,268499841,3677553266,3822257329,3532577420,3224626059,785446736,766588671,2939617070,3418525229,1631717901,543712116,1701603686,1936289056,1735289203,220465677,1936607498,544502373,1802725732,1953068832,1633820776,543712116,1701603686,1851853325,1919950948,544437093,544829025,544826731,1852139639,1634038304,168655204,1684095524,1836016416,1684955501,544370464,1701603686,1835101728,604638565,1819309380,1952539497,1768300645,1847616876,543518049,1176531567,543517801,544501614,1853189990,604638564,1970499145,1667851878,1953391977,1936286752,1886593131,224748385,1968120842,1718558836,1986946336,1852797545,1953391981,1634759456,168650083,1818838564,1919098981,1769234789,1696624239,1919906418,1176766989,543517801,1852727651,1646294127,1868767333,1684367728,1953394464,1953046639,1718379891,1126435341,1702129263,1864397934,1701060710,1852404851,1869182049,1869357166,1646294131,1919903333,1868767333,168655216,1766203428,1932027244,1868767273,1684367728,539232781,1701603654,539587368,2036473892,544433524,1701147238,1227098637,1818326638,1679844457,1702259058,1701868320,1768319331,1769234787,168652399,1920226084,543517545,1701519457,1752637561,1914728037,2036621669,773860896,606088736,1635151433,543451500,1634886000,1702126957,604638578,1299084627,1968467567,1684363109,1182099540,1632856434,1225395572,1818326638,1679844457,610628705,1920103747,544501349,1702125924,544434464,1158286628,1919251566,2003136032,1952539680,606091877,1850280461,1768710518,1769218148,1126458733,1701999221,1948284014,543518057,606106473,1850018317,544367988,544695662,1701669236,1092886586,2032166258,1931507055,543519349,1311725864,606093097,1229208608,538984018,1112089632,1699749965,1852797810,1126198369,1970302319,544367988,542330692,1936876886,544108393,1867915300,1701672300,544106784,1986622052,539238501,606106473,1935763488,544173600,1700946284,1850287212,1768710518,1768169572,1952671090,226062959,1851073546,1701601889,544175136,1634038371,1679844724,1667592809,2037542772,1227098637,1818326638,1881171049,745043041,1953459744,1919509536,1869898597,221018482,544370442,1701996900,1919906915,1869488249,1835343988,226063472,1967989770,1931506803,1768121712,1327528294,1919885390,1179012896,539232781,1701996868,1919906915,1718558841,1310990368,1632641135,606103668,1213481296,1330794557,1028935757,1635151433,543451500,1986622052,1852383333,1634038560,543712114,1752457584,1227098637,1818326638,1679844457,1667855973,604638565,1700946252,1869488236,1868963956,224685685,2035491850,2019652718,1920099616,168653423,1329990948,1633886290,1953459822,543515168,1953719662,168649829,1953384740,1701671525,1952541028,1768300645,1696621932,1919906418,1920295968,543649385,1701865840,1126435341,1869508193,1868832884,1852400160,544830049,1684104562,1919295603,1629515119,1986356256,224748393,1718559754,604638566,168652399,1163018788,1763724097,1445208179,1179210309,1936269401,1128604704,1763725128,1227104371,1818326638,1881171049,543716449,1713402479,543517801,1701667182,1227098637,1818326638,1847616617,1700949365,1718558834,1918988320,1952804193,225669733,1917133834,544370546,1953067639,543649385,1679847284,1667855973,604638565,532488,844831492,407585866,1343807828,2202931603,241194513,1276053319,255987467,196960015,1159322148,4182249219,251613454,1330512640,169187924,1330795077,1447382098,371739717,1230521605,367678547,1229194240,167379282,1313165831,21318977,1375997106,2986430021,1380255244,21320513,1141115965,1023495237,1498678540,4009837904,1163002892,17039437,1347371781,449577305,1430343686,520111443,1094976787,939541844,1230243096,3456124237,1163265048,240582738,1280267780,51234817,2785100867,1212352018,22169924,1292047014,316211524,1145785606,3640742473,1146225426,101912065,1229213010,319684946,1163018758,2449492801,1163265815,1497778514,68667136,5522771,1342640143,1347243858,268042324,1413566469,262144072,1230521605,298385492,1414808325,301400409,1212368133,391708751,1414481669,378929231,1229476614,1442862150,1179190038,68505600,5394246,1124340840,1392530252,58720274,225339767,1868852841,881527,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1996718080,1762487913,2003788910,3443,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2002532931,1868852841,29559,0,0,0,0,0,0,0,0,0,0,0,0,0,1124073472,1313429306,1297040174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76611584,101385538,42163247,73663810,67110210,2,0,0,16776960,16842752,540934145,926102585,3422257,842080288,1630613562,1230438400,538976334,1061101600,63,3674212352,33612610,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1230439168,538976334,1329799200,8269,0,0,191835457,318963781,33554432,0,0,0,0,0,0,0,0,0,0,0,0,138,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,3876382464,16777484,34400000,33554688,2301212928,3878272043,168617740,2690310,1630276608,2906413,3885805568,2953238284,15877788,0,0,0,12066574,2283916595,856000022,855750866,1370759629,512303565,3280864649,3005137974,109848075,2300969008,3019910686,2317471001,3440293072,93037089,3535275185,250139392,2747466587,4024960391,2332330756,1418396252,272928262,1007574158,2953278979,79227137,37551083,2301556084,772099614,89130636,89301550,1728497198,12058629,1914817853,1403203295,3101199109,567100416,1954595574,3942821892,113716939,1381,1376187950,1618280965,1312212270,184847109,772830656,92872334,771763361,184902051,4232410304,4281581710,847249337,1957622464,3909791749,1974337694,3750451188,2970600323,116118276,567101620,57891103,2382397417,1638084288,3247198469,992922371,1493534494,4130565239,2767454003,515448590,1394510592,90749445,3437764102,3443504131,63891489,1316095775,1962942013,1950253849,91553797,90638022,90743295,1952075069,1297759496,3270050676,91005185,3771925937,91227691,4127545251,33903110,1053043572,2334524750,92578565,38112038,3909440931,145752250,196084459,512437840,1760036179,3443438595,2548652065,4290465795,1219763967,1478435277,2197819397,3597799931,3531064123,90652288,51934464,1912959494,2009283525,1913007041,1946551045,990147077,2332194499,3632996035,90381961,567101620,2745397791,268764517,1732149248,192151557,90375683,89589291,2734690349,2225276245,2265332485,53114629,990205702,1980073734,1732149295,628359173,371970187,369296739,372966743,360121735,721782689,3942995718,2177535178,989878722,3956700098,4282837467,91231883,3540300114,212949218,3364612307,89333387,1107343390,2334073293,2164610846,1913651451,266386179,89595433,3540300115,2345372643,503665438,92544654,3897676339,1068761723,2112365005,991910146,192240584,92544513,89603715,2344645888,2701481230,3238200694,2701483939,1570964856,2080818181,89760517,3238248588,855989155,2148961225,1394510597,12066309,522308930,3119055731,1846971390,1757041157,1882373,1394510638,417865221,3443504130,35317793,3732036103,3204450233,2335049064,2198164790,57999610,637586921,3633061317,3633235459,3322087307,3347253129,3823258116,3119193862,788424681,89261814,772568066,89011909,2225286829,3141659397,1219821567,3674939853,2301550196,3020251934,773967176,84239779,2737700880,3951232388,244002320,3241870727,3358263415,41405243,4219591051,141758464,78758795,65790163,1358954424,1394510638,2345218821,1107343569,2335056333,1493521182,2216594990,1372730117,3019990760,3894529343,996016488,3909318086,4130274784,33903110,2704155253,271385988,1537420800,113716741,16778585,914959950,2737702237,3633186143,1223,1394510638,19261445,567099060,771827688,89261814,3909317634,2335048025,3188024598,2704146433,3221947745,2387084660,773097944,1208313249,344578190,3444946002,784502305,92870281,922693210,2401633633,771763206,90388107,2301030915,771752502,89011909,1959089694,833798,6078289,2767395978,2880159795,505372249,175424854,2315283647,2879714108,3307167403,2159608436,4093217536,784989860,93011514,4186571894,4281467627,2334013998,2315548165,839052249,13953243,4279530751,1962873460,309657364,168202022,110044672,3224567820,110090382,110035080,508690570,2300481070,8436229,567089844,4130232863,17125894,3308136052,772103478,89013956,274566182,478760526,242583846,1493615918,1569465861,1166616084,2422532882,771782888,89732805,378416890,2335049055,4211432742,3264108062,3280722574,12276683,911360,777241435,92872331,1526727400,777002691,184902049,1208448192,512350350,2704146433,3221947749,2387085172,18778584,3273611264,4278197736,3828487796,4187817097,3901753835,1962868750,2633538838,2399145192,2833978948,918888214,1354959795,378154578,28837254,1512164659,186434392,83887426,1392853760,234946632,251657734,4060482310,396953,114409,53,1936607488,544502373,609439556,1702063689,1092646002,3019900446,50728607,0],192,[3944786517,808727080,926037552,909456183,692267040,1498435395,1212631378,1112088660,959520845,792278072,942617393,2986587700,3132288218,2965418732,3526094336,3355105934,3607117830,1108249612,134661888,3354420481,68102,2819016688,2348878852,3338971662,1610644486,2114882613,201770752,2352046081,4211150350,75957958,2091012,76029576,134237160,2315552774,3892611102,3018391653,1357826817,270855256,3066292432,2965549571,229699073,3506433000,3504918760,2966981352,4292798473,3906005200,95475722,3506426856,2966948584,4291487745,3816871946,62309135,28359346,4007310062,619496114,2330513504,2965025496,3669159426,3972182766,3771752484,717472522,266567935,3058885585,1525058051,4261536896,785708740,19441663,3221227287,0,0,0,0,0,0,25035123,25756030,27787668,29819324,30540231,32571869,33817092,33817092,68167296,269385935,28839940,3272658176,68167296,269385935,62398468,3272658176,68161152,505904,549654733,3892610854,3957915598,639681535,3555198087,4292929791,2267422915,4291356676,3288323560,3266446262,4142792880,2267416788,4291094532,3288310248,3266446262,4142792880,2267416788,4289783812,3288309224,75965984,3909068264,549715842,3892610854,2280193946,639681535,2414347399,4286376191,2986587843,3993022658,638113014,1541932167,4286114047,2986587843,3993022658,638113014,1474823303,4284803327,2142983107,1358662400,2332040680,3897579760,1347944480,989860328,58022087,865076715,3099810752,3277520897,2966457170,3963809294,1381024602,246730891,3572006832,3277347338,4127897576,33851142,3031962229,4289849347,1946157373,12314883,283848884,3892565176,20840351,3909317632,548667561,2952837968,3104028858,28315648,1949367424,2998449928,4265653720,780922568,4253090930,3280867892,3683518324,1962951912,3092273198,4281036832,4076873913,2152749227,3132764412,2986505219,721990874,3290623177,4192339061,3375041003,1959011052,3136938506,4159176962,2970020611,1978454531,1005279454,4232052921,2864241035,4283808426,2868117291,4153146703,850185099,2317252036,4142049986,326427682,4068925578,74834978,3773551754,3732162556,2967071567,2210659328,3968535276,2953437160,2957239856,4131448320,33851142,937959284,38193150,1187447134,3347945732,3093431878,28619954,3437766576,3954881033,4260948010,1930119144,3033838097,3893669889,1187449271,3942735362,1187483654,3338717186,2695627846,1611024071,3101340356,281871616,2834090283,3792139528,3909137401,11534526,3677044966,2834090291,3792139272,3909202937,3375038634,1946265836,1963501589,3019235875,10021122,2481521587,3909399296,145227918,2834100853,3824935169,74728432,3530819752,1139146928,1946312251,3943019268,2319508591,1088721120,2425413766,2097432123,3943084804,105266011,129172606,3686290155,1030921,3439349945,2991778832,2953819328,151644223,1509953464,3232911952,4243075764,727210504,816377033,4192340341,3691647155,730865387,816377033,4192340084,3691651251,3304984299,1949367424,265060389,3370894474,3120563897,2011693315,180650754,1139160752,1088864298,1088852112,3909091773,2515074091,83933192,917508301,3223995366,2425372902,3296936166,48394,142272542,75958006,2148692994,805572622,2147487672,1610909454,3942649784,270958605,243322628,3089105936,281870350,2332486787,2684401900,3230587022,149191,71747328,62259200,28886194,139061250,12111538,138536964,3973755474,12107954,137750578,2147593448,57934076,3892372201,4236247275,3909317632,2992242903,33732804,2986874600,67221710,1376259816,3001866930,838908096,3339191016,1094,2147579112,57934076,3892357865,4236247219,3909317632,2992242847,33863876,1376247528,45665970,131459076,3001866930,838908096,3339176680,1094,2147564776,57934076,3901780971,4236247163,3942872064,2992279656,34126020,2986845928,67352782,1376231144,3001866930,838908096,3339162344,1094,2147550440,1031078140,2147501800,896860412,48469,1575508574,1552627207,3540431106,95505387,3816874963,2267447392,503881476,243270791,2315519111,3892611102,3296983853,3303612166,17021690,1426126312,3942646205,2684402627,3280919438,2315536011,3519621864,1042657,1962998912,71731977,3087156737,1438842880,738143228,117106880,74587787,305462145,3666789004,4219560564,1551123233,92931464,1081459762,3297428734,3918262901,2343196088,1437252312,1330621427,2348256253,3274943949,3263898229,2348212907,1179057357,867040907,2870048194,1325267170,2915928910,74825739,300677602,3828533387,41217290,3372876212,3296723828,3288096002,62280272,263767218,110487554,2884851802,2298902504,2382656030,2363681754,2396728282,3103730626,3364596309,2953152806,93005327,343261491,4078960825,12747179,281248516,1974533760,2416045018,1956707968,73269510,3271557304,3894344348,4127852080,112397172,3792062952,1976499966,3892425717,4276225598,4118137598,4276289250,3015941407,1460727566,2635171345,236102673,3524636693,3709376791,3407508760,18652955,3307046173,3206518813,673257504,134219800,50332427,757544739,68497719,101122065,7,3341082880,4041213972,16842659,84148994,286263046,353637138,530198,15,268435456,687800334,134219800,50332427,757544739,68497719,101122065,7,3341082880,4041213972,16842659,84148994,286263046,353637138,530198,15,268435456,1358888974,268437528,50332417,1548709923,67591983,101122065,7,3341082880,4041213992,16842659,84148994,286263046,353637138,530198,15,268435456,1358888974,268437528,50332417,1548709923,67591983,101122065,7,3341082880,4041213992,16842659,84148994,286263046,353637138,530198,15,268435456,687800334,1073743896,33555211,757544739,68431927,65553,0,3341082880,4041211924,318832546,67245845,286263046,353637138,71446,3,805306368,687800335,1073743896,33555211,757544739,68431927,65553,0,3341082880,4041211924,318832546,67245845,286263046,353637138,71446,3,805306368,1358888975,1073743896,100663553,1498378275,67526189,65553,0,3341017088,4024369192,385941442,387389207,387389207,387389207,71447,1,0,1358888973,268439064,50332416,1448042662,1885360442,185401375,12,1563319808,1851657512,134283171,134744072,403703816,404232216,923672,2063,268435456,687800330,1073743896,50331648,757544739,68497719,101122065,7,3341082880,4041213972,16842659,84148994,286263046,353637138,530198,15,268435456,687800334,1073743896,50331648,757544739,68497719,101122065,7,3341082880,4041213972,16842659,84148994,286263046,353637138,530198,15,268435456,687800334,1073743896,50331648,757544739,68497719,101122065,7,3341082880,4041213972,16842659,84148994,286263046,353637138,530198,15,268435456,1358888974,268437528,117441537,1548709923,67591983,101122065,7,3341082880,4041213992,65443,0,0,0,0,15,0,1358888964,268439064,117441536,1448042662,1885360442,185401375,12,1563319808,1851657512,65443,0,0,0,917504,2063,0,687800324,536872984,100667147,757544739,68431927,17,0,3341082880,4041211924,16842723,84148994,286263046,353637138,71446,15,0,1358892805,1073743896,100667137,1498378275,67526189,17,0,3341017088,4024369192,16842723,84148994,286263046,353637138,71446,15,0,1358892805,2147487256,3845,1448042658,1893748762,31,0,1563319808,1851657492,134283147,404226048,134217728,402653184,720896,5,268435456,1358892807,2147487256,3845,1397709735,1824149527,31,0,1563123200,174001940,16842635,117702656,16777216,117702656,65536,5,268435456,1358892807,2147487256,100667137,1448042658,1885360186,31,0,1563319808,1851657512,134283235,404226048,134217728,402653184,720896,5,0,1358892805,2147487256,100667137,1397709735,1811960375,31,0,1563123200,174001960,16842723,84148994,959973140,1027357498,81726,15,0,687804165,134221336,50332427,723987879,1819093037,101515295,7,1563123200,173936404,16842659,84148994,959973140,1027357498,540478,15,268435456,687800334,134221336,50332427,723987879,1819093037,101515295,7,1563123200,173936404,16842659,84148994,959973140,1027357498,540478,15,268435456,1358888974,268439064,50332417,1397709735,1817923895,101515295,7,1563123200,173936424,16842659,84148994,959973140,1027357498,540478,15,268435456,1358888974,268439064,50332417,1397709735,1817923895,101515295,7,1563123200,173936424,16842659,84148994,959973140,1027357498,540478,15,268435456,4227792910,503731708,1448300882,3297398871,3771851826,675147915,1476817408,2850636493,452628,2768186968,726664943,1490587328,4125630147,1662422015,4041375748,520800896,4005856963,4005856834,3287204682,4438610,4125669040,87275775,4293847114,3924345994,6404863,216042220,4292798467,4276275499,4202023934,3521692810,3905116927,516226988,3290825896,1381090079,2332029160,4127476006,1610909446,4236253300,2164749583,3942924483,4236283955,2164749584,3942940867,4236283943,2685695747,254018696,125043516,57936188,2173699563,2315567299,704923918,2198201325,4225908931,3905116506,3280207788,2986587653,112836,4284082426,4261906982,4283558084,641975550,1223165834,100434175,2317808242,3266462471,3099898606,887619587,378272767,3827958883,3892808230,4265869095,435978436,2334585458,3766939975,2332319907,4278315251,717271788,126494436,2263801990,4265864928,352092356,11595634,3288735470,637839422,2349104580,1959201728,3105758985,2767388688,520594502,11586738,2966074094,3467832833,2317804586,4274644999,2160393795,4067559932,75997379,964001960,2696413370,104596553,12192374,1946631344,2684402179,1007100091,1007055364,721581063,2344783579,3808709646,2147531024,1956707968,2336273666,4093586371,518570923,508609295,2701025256,606012552,1946369039,1946762247,3287832579,4207147352,17565383,244068704,2163933454,4077160230,2265380432,745800196,604246177,1949318192,2215036488,113711108,525445,2265874520,20711428,71043446,243271027,3439592583,312928578,604246177,1966095408,2215036480,113711108,918661,3343043928,201613318,2265874443,2179532804,3058718738,2155881475,2131003174,75957768,1014965336,2952950799,71934471,378123442,485164131,3058718864,2155881475,2131003174,75957768,2726241368,3568436297,73602697,72222407,113639424,3103786082,1354694664,721886724,3903583168,2317811172,2749639175,2317747274,2225209671,1200236036,2749639170,2334524549,1285751623,2967153412,1227262465,133988356,4236250228,3895817987,41090800,4259840688,4249544718,71902858,1946680448,2417879811,3140497597,118361600,5671718,208982539,1157628345,2198806504,3941273285,3908947176,2984836723,4246137086,71908992,3339088399,805374982,1228832802,158795524,1048595316],193,[1979909193,2820588612,214139652,2350892070,1958939584,507442,1006668326,981103871,1946437894,4041950723,126494458,2225260798,1200301572,75866881,55020326,637602979,2735032203,3959095566,2820588624,147030788,2350892070,1958939584,769600,1006668326,976647423,1946437894,4041950723,640125478,637618058,637685643,637818763,637955979,1393051534,280549515,1527827729,172460582,91553596,2225260798,4234340356,71908992,3139335943,1235226824,65284612,126496472,2953078178,1228832816,41223684,1721909168,1611565828,2418600708,690825260,689843754,1962999168,3955359236,985792010,1912898830,1372137986,4185967914,41244944,3032728062,1611565322,2265380356,863307780,1613022602,91562044,3944612025,2265380390,527761668,71908992,3893720835,276036992,1980038528,96829443,1980037504,96567299,3909067240,1776877571,1662421776,3905260036,3305044951,3504914826,2337522683,4140075736,839141926,3519218687,3905117152,1105788931,852462096,2346832365,1351911921,1648244740,2332390660,125122,4291750083,235128971,4191224910,2967998132,3750413311,3822190386,72390539,73404043,1482382943,1560747864,71934159,930547516,75958006,1007121410,3945559047,104632325,1120740726,3296943711,1560747782,117835471,67437831,5,100990976,67372036,117704198,2332296964,2198102806,2834040514,1946203140,10873091,58000040,3019942121,1662421776,4005857796,2330742850,4266285288,4005857988,3851086914,71900810,2318335786,722583967,1310624707,736874756,721582531,2147725760,67389758,1048595826,1946616905,1228832838,678888964,3906011765,4076218546,3976390794,4280999050,71908992,2969859334,3554988036,2329184995,3505311984,2418863086,1245116313,3554315012,1388874723,2234972057,4035598852,4136637931,2315536950,2329185008,3556717276,2233923299,3033041668,378229249,3263366243,1599794695,113541982,3478980383,2332320418,2550418446,2749495120,3364553806,71900810,1997011840,3036270850,4268877836,2346963291,3892596871,3454664359,3867824142,3305039146,1968758842,3284150786,434642515,1243515898,2320572164,1458383562,1604645719,66257758,4007811579,508805979,2348415976,520374814,717916753,4082587373,727605156,1509633011,3277582050,2986587730,34584772,1526329064,3398090795,4082625834,3330957226,2986587730,3892491460,2958752215,1472891647,3277826803,3300000694,3892449208,516159939,2331617256,1358899959,4156787538,2332329254,525884120,520073704,66686952,520374846,3908138315,516161486,2331607016,1358899959,4156787538,2332329254,525884120,520063464,737765352,520374846,3908138315,2328100774,54782168,1912929408,133988360,3219719028,3247133440,1946171368,2330985265,3907201766,4110614636,3439262979,2958620021,6809632,3422485763,568915829,1228833017,125044484,3120850336,3924689880,3733589424,116841707,1946420359,62280210,3964721842,4218685608,3635553712,3898235118,100924728,4169860174,3509317771,3271476990,780922162,3976397898,653706122,3221423178,4219477766,3398091520,2784188246,2328059487,2884851658,2331886431,44296408,3905063763,544538532,3867865131,3655918378,737487871,1976368893,548428021,738186472,1976303357,4285196791,3991658122,3247167626,2332175592,2177969144,3489726914,2162610406,100944190,3805283443,520546257,3822120234,762635216,1354023818,4153140470,3867865091,552133418,2968420608,2968486175,1976368671,3905391345,4018208808,3422429104,3588879733,3957230092,1456114412,1604645719,13009246,13074720,2320979488,1604645834,3398091614,1605038935,536921985,4090137175,1354981290,4160940062,75966090,526443648,4177687640,3921934531,3236494997,1227262717,133988356,4236308854,3910628109,12192892,85048736,1913650304,4291291144,29164403,3897737989,3264151528,2346224218,1049252801,2112357474,4169882369,3263287595,3827958017,4149396362,4144268582,2332314150,116392951,3674888735,3465166708,3979004714,4153075742,3247133264,75835127,1482344587,3314242079,3467772854,3002567400,34584772,1526170344,1392331240,3066399565,3905860099,3898275699,4125752749,3957230091,4271041014,2331844328,2147764518,4051043324,1946680448,234651884,4236250227,3020191494,3913469191,2331839436,1239962328,1522700031,3305030283,1648265811,14608388,1241918299,737708804,29524433,2330208769,653742787,653722757,4153082954,520548395,1960512090,718178880,518859467,1358358504,4156656466,2332329254,525884104,3066399570,3905860099,3300062951,3892449208,3898275551,1297284292,62309771,3504918194,854088438,1374289149,3957230091,852462325,3522268141,1350863846,3822793476,1277035270,3908755972,3624139484,65241283,3109143434,3771727875,3624591568,4220188898,1364378457,3117558611,3632988161,3540769059,3788628177,3643005067,3788624651,3263949939,3277478235,1392791713,3297433739,71968502,3771850961,3271819050,2320745307,3523160799,1351060451,1364417284,2330798674,2329447375,1244067524,2233923332,67054084,1277070275,50651908,1526522563,3200473945,1049344000,3883992080,4286775344,3187897648,3331239936,4293388483,2348763880,1662422003,113410820,75958006,1948190212,27847691,3975871349,4218683816,175565229,1149904010,3221272833,3246719154,4177622264,3922842320,4067682769,1157650056,4288932035,2348767720,149718000,1048636555,101057609,3055186463,2281998852,2319777862,2283798660,2202337350,3472773318,401337205,3068580240,4289521668,536921729,2181015016,4263489774,518944206,3304419304,520162366,2332618115,11599093,2159681302,3109508608,2800943112,494165599,3347300606,3983886856,292814908,3304408040,2348842046,1959201728,3951079428,147096531,3909734377,646643503,4236248137,2163504135,4017488892,1996946560,4284344579,1913650304,4245153874,183192946,1930296448,3909136454,12192160,3905064608,4035706548,75832971,3968590635,2315330643,3523588296,3053958368,3905860099,414774515,4109232133,4127492646,4622544,1245053765,4034218756,84981851,3130012395,3264126976,2348708840,2233371632,2346920708,2986587884,84457678,1408547560,4127492646,4622544,1245053765,4034218756,83933275,3304366824,721488958,4243950571,521535664,1442906298,4090202967,1952341926,62979591,4017441531,99214083,4100122633,71902858,1912929408,133988360,1961558900,4265339024,1364255626,2348653288,2338019835,2198102806,116786882,1946420359,27847691,3975871349,4218683816,4222337931,3253332194,4095666184,71902858,1912929408,133988360,820708212,4260882576,1491620176,1509657597,1662421851,113410820,75958006,3960173572,4218749352,27847930,3280665460,3796368298,142535143,1913126016,11528451,3036528872,1944604672,1492683773,108232764,17577669,2150369003,8140485,3771850961,4026786001,4088326174,71908992,745676550,79058519,2160326316,2896828021,4286941222,1338475295,3967143678,3796328286,136767971,2852467238,2234656428,3773505535,3889288074,1476190952,2885989974,603779048,2160260803,841353076,1160914469,629679617,21334054,4241942700,3270951715,638219392,536913202,25506342,2777163296,2284199936,2199912837,3472773319,1600045429,3085059911,2147993577,242356220,1929058536,2246279177,3838894986,3828014090,75835127,4240894032,780925067,12190853,3317862048,1476463670,62320643,1954595830,3100553739,15205144,2417945587,3099898455,4108845583,1371548658,3894332811,61534932,1325681214,1495267554,3032789599,3905128962,1398272727,517835601,2347939816,520374798,2317747338,92808741,1274610502,1532621429,1197471019,3467814626,3892510904,3300061867,3892449208,703197859,1665040391,158643204,75958006,3439686658,118942018,3901472811,78134980,637847427,3230416324,24430347,52488261,1702231818,1721826186,2162172932,3272220643,2315544226,149389535,3901417424,183494016,266567917,3822123914,2148590464,3741976551,1006913952,3020846595,3905128960,3976921793,2284192628,1228832797,91685636,1928571880,2316416007,44558531,74771723,274565158,3816873354,3523588384,1228833003,1249248004,604268192,31686879,537657972,604268194,167906320,2315367640,41150659,74771723,22906918,3288253438,3280601780,184705256,637826285,4261567880,3032743619,3905128963,3976921677,2284192884,1525154653,104786178,71968503,3521761617,65655273,719293121,2345372671,3808709662,3804431108,3633011196,2953306496,3286815360,682643539,4276256850,4133151478,57934274,2334130181,3515570416,3103965371,1048576770,1912996937,25213702,570885049,65721322,720866034,46715081,1976565453,3538127608,2160286700,117721406,3125946999,3264133120,3897577562,3906142122,2317796386,3287702284,4128077184,181150420,76031681,94824792,4125868338,71908992,3893195279,141752561,3767174436,3289048272,3905063760,62324554,146067122,1391523560,2392850618,2321046210,2160457448,62130804,3773307056,2417159152,45401266,3572039600,126494448,2284240938,3032789511,616925698,4039239695,2953284134,126363391,3002119912,704885966,4037929152,4289726644,3924862696,1380975916,2392850618,2337823426,4276152514,3911845813,11588139,3033369283,62280196,2162740914,2317769456,2163003943,2160263652,117721406,3125942391,3264133120,4275628122,570722854,2329989828,3921728206,1048577248,1913586761,4163889189,2783453298,4290373887,3838891018,45143050,3506417384,182767844,182767828,3921840852,2246575284,4288276735,3839019146,3237925898,4051043132,2649342602,1049251844,2320696418,3523162847,1352109027,222059268,171727988,138173556,121392244,179592308,3439329721,985857552,1963215382,986851893,1963230262,4095862827,1006913952,705065476,1963408639,3439899654,3103558160,3375040001,75773578,71964298,281922302,70969688,45401854,3523933419,3405707380,3526030571,909832427,3899982980,45333483,3958349288,1244039899,1648265732,75997188,101351460,1583285321,526014809,1355767047,4209992424,1946724588,3232913659,2263794822,548466372,3905158126,3232890886,3287163056,3975103208,2265380547,125108740,73612928,2318628020,1977879264,3303877424,2198120510,3290825927,197168189,1157723335,2332021224,3905391331,3202940841,1961692159,717720073,653984767,2515076488,1976368643,3303877421,2198120510,3290825927,197168189,1157723335,3036650984,3905391121,2330525557,1961692159,298288085,3913123878,3439199076,102645877,78134980,637847427,3230416324,158648075,4069203487,4076868025,2334066596,4284541146,2317804586,4281853959,2151924990,4067561724,2317796606,4280805383,3925818600,3439199008,3897764213,3280203476,126494259,1977289307,1697021962,4146388740,4270853355,2147972555,537158926,280233996,3925800168,1431306992,106058067,2699970536,1011876937,3322377223,184830214,113640939,3893101641,770240221,1235376366,1499072260,173563227,236418240,3117558535,3372089600,246876021,3944886461,3171464965,520499552,2684402258,1364902542,3805480369,1960512089,12747016,1976303168,717720312,2348452836,1359864821,2767440011,3347314731,4091697440,3990022339,2332329379,2147771158,117721406,347342197,4276999912,3892950216,3372150223,3364546698,28623358,512364749,1589118025,66813953,971507831,3087233775,4153999560,1208255798,4261708962,4158925504,1208255782,73602699,2498237108,75800813,653705470,3771794506,2734751749,31982668,34007535,930287676,393413436,3909028840,3991465477,3981633774,73404043,281870772,1963059177,2986587671,112836,3035452136,3905128963,62451019,3980781568,1006750697,740717344,1996635152,3897774323,3337158348,2321046509,2330200800,2953409735,33325064,246415989,753525802,1932541183],194,[1965042794,2396138257,780794586,109838460,3925540990,726794632,1524272850,4084663100,343197950,3372091150,247007349,573619456,146343659,828423424,204376570,235310081,3119053569,2232322540,3150154244,3221889127,3263825269,1016072683,2952951299,4275514882,75801288,79849,1009457422,3909317680,243990828,378143877,4286579844,2163242759,410452479,2396138322,4278868698,784598901,451608700,204391568,2417224449,2315448192,3523160799,3083043299,797650464,1583286030,525883483,818894936,1613848610,2150641717,1366429947,4219476852,3909317664,3526033616,3355105934,2801800198,370052129,3186227968,2269022720,48726020,2275471312,2975867908,2330513925,2282654424,2162788868,3989835745,3989892560,3850431952,1516134159,119495258,2313801565,8841472,4185064508,2320758755,3523160799,1354206179,1347836676,3439460536,1397839888,652248656,1157645962,1031015740,963906108,896796732,829687612,2147484089,91357948,6195750,3439965253,985857552,1912883734,2218146321,3087496452,281873930,3338587902,12112426,3943746818,3440292878,719292944,2346963455,1476677783,2732743003,1946238042,1946369033,33601541,1583288525,526014811,4224670983,1364414494,3947817042,83902080,3328406529,17104902,281874356,780848266,3321758852,1358976488,281871284,3526578777,281871028,281872564,41271306,861020336,3454284498,3304479255,4263605545,1976187586,2329031391,602428130,3338557952,3497389626,3439506522,443920,183173125,3439506522,443920,1499135749,3474937947,3828535859,399314352,179364914,12785613,0,0,0,0,2175107454,2174336385,126,4286447616,3288334299,8323047,0,4278086656,947715838,16,268435456,2097052728,4152,0,3879484440,404285415,60,1008205824,2130706302,3938328,0,402653184,1588284,0,4294967295,3284396031,4294967271,65535,1715208192,1013334594,0,4294967295,3183319491,4294951833,65535,840568350,3435973752,120,1715208192,406611558,1579134,0,809448255,4033884208,224,1669267456,1667457919,3236357991,0,1020991512,417021159,24,3229614080,4177459424,8437984,0,1041106434,101596926,2,1008205824,404232318,1588350,0,1717986918,1711302246,102,3682533376,461102043,1776411,2080374784,1815634118,946652870,8177164,0,0,16711422,0,410926104,1014896664,32280,1008205824,404232318,1579032,0,404232216,1014896664,24,0,217975832,24,0,1613758464,3170558,0,0,3233857536,254,0,1814560768,2649342,0,268435456,2088515640,65278,0,2097085952,272119932,0,0,0,0,0,1010580504,402659352,24,1717986816,36,0,0,1828613228,1828613228,108,3330021400,108839106,410830470,24,3334602752,1714427916,198,1815609344,3698735212,7785676,805306368,6303792,0,0,403439616,808464432,792624,0,202119216,403442700,48,0,1023360102,102,0,404226048,1579134,0,0,0,806885400,0,0,254,0,0,0,1579008,0,403441154,2160091184,0,3330015232,3874938574,8177350,0,410531864,404232216,126,3330015232,806882310,16696928,0,101107324,3322283580,124,470548480,4274809916,1969164,0,3233857790,3322283772,124,1614282752,3338453184,8177350,0,201770750,808464408,48,3330015232,3330066118,8177350,0,3334915708,201721470,120,402653184,24,6168,0,1579008,404226048,48,201719808,811610136,396312,0,2113929216,8257536,0,811597824,201722904,6303768,0,214353532,402659352,24,3330015232,3739147974,8175836,0,3328981008,3334930118,198,1727791104,1719428710,16541286,0,3233965628,1724039360,60,1828192256,1717986918,16280678,0,1751279358,1717725304,254,1727922176,1752721506,15753312,0,3233965628,1724309184,58,3334864896,3338585798,13027014,0,404232252,404232216,60,203292672,202116108,7916748,0,1819043558,1718381688,230,1626341376,1616928864,16672354,0,4278120134,3334915798,198,3871735808,3470720758,13027014,0,3334892600,1824966342,56,1727791104,1618765414,15753312,0,3334915708,2094978758,3596,1727791104,1820092006,15099494,0,1623639676,3334868024,124,2122186752,404232282,3938328,0,3334915782,3334915782,124,3334864896,3334915782,1063020,0,3334915782,2097075926,108,3334864896,943208556,13026924,0,1717986918,404232252,60,3338534912,1613764748,16697026,0,808464444,808464432,60,3229614080,473460960,132622,0,202116156,202116108,60,3328981008,0,0,0,0,0,16711680,1585200,0,0,0,2013265920,3435953164,118,1625292800,1718384736,8152678,0,2080374784,3334521030,124,203161600,3429645324,7785676,0,2080374784,3334536902,124,1815609344,1626366052,15753312,0,1979711488,2093796556,7916556,1625292800,1719037024,15099494,0,939530264,404232216,60,101056512,101060096,1717962246,60,1717592288,1718384748,230,406323200,404232216,3938328,0,3959422976,3604403966,198,0,1718017024,6710886,0,2080374784,3334915782,124,0,1718017024,1616936038,240,1979711488,2093796556,1969164,0,1719065600,15753312,0,2080374784,3323752646,124,806354944,808516656,1848880,0,3422552064,3435973836,118,0,1717986816,1588326,0,3321888768,4275492550,108,0,946652672,13003832,0,3321888768,2126956230,16256006,0,416087552,16672304,0,404232206,404232304,14,404226048,402659352,1579032,0,404232304,404232206,112,3698720768,0,0,0,940572672,4274439788,0,1715208192,3267412162,101465190,124,3422604492,3435973836,118,806882304,4274420736,8177344,268435456,2013293624,3435953164,118,3435921408,2081191936,7785676,1610612736,2013272112,3435953164,118,946616320,2081191936,7785676,0,1715208192,205284960,15366,1815613440,4274420736,8177344,0,2080427212,3334536902,124,405823488,4274420736,8177344,0,939550310,404232216,60,1715214336,404240384,3938328,1610612736,939530288,404232216,60,281462272,3334892600,13027070,1815609344,1815609400,3338585798,198,6303768,2086692606,16672352,0,1993080832,3638066742,110,1816002560,3439250636,13552844,268435456,2080402488,3334915782,124,3334864896,3334896640,8177350,1610612736,2080380976,3334915782,124,3430428672,3435973632,7785676,1610612736,3422558256,3435973836,118,3334864896,3334915584,201752262,3321888888,3328981190,1824966342,56,13026816,3334915782,8177350,402653184,1617312792,406611552,24,1684813824,1616965728,16574048,0,406611558,410916990,24,3435984896,3737961720,13028556,234881024,404232219,404232318,7395352,1613764608,2081191936,7785676,201326592,939536408,404232216,60,1613764608,3334896640,8177350,402653184,3422576688,3435973836,118,3698720768,1718017024,6710886,3698720768,4142319104,3335446270,198,1819032576,8257598,0,939524096,3697772,124,0,808452096,1613770752,8177350,0,0,3233857790,0,0,117309440,1542,3221225472,3637298880,2262589488,4069388,3334520832,1714477260,104767182,6,402659352,1010580504,24,0,1826122806,54,0,1826095104,14183478,0,1141982225,1141982225,1141982225,2857714705,2857740885,2857740885,2857740885,2011002845,2011002845,2011002845,404256733,404232216,404232216,404232216,404232216,4162328600,404232216,404232216,4162328600,404289560,404232216,909522486,4130747958,909522486,13878,0,909573632,909522486,0,4162385920,404232216,909514776,4130747958,909571590,909522486,909522486,909522486,909522486,13878,4261412864,909571590,909522486,909522486,4261869110,0,909508608,909522486,65078,0,404232216,4162385944,0,0,0,404289536,404232216,404232216,521672728,0,404226048,404232216,65304,0,0,4278190080,404232216,404232216,404232216,404234008,404232216,0,4278190080,0,404226048,404232216,404291352,404232216,404232216,521674520,404232216,909514776,909522486,909522742,909522486,909522486,1060124470,0,0,1056964608,909522736,909522486,909522486,4278253366,0,0,4278190080,909571840,909522486,909522486,925906742,909522486,13878,4278190080,65280,0,909522486,4144035638,909522486,404239926,4279769112,65280,0,909522486,4281742902,0,0,4278190080,404291328,404232216,0,4278190080,909522486,909522486,909522486,16182,0,404232216,521674520,0,0,520093696,404234008,404232216,0,1056964608,909522486,909522486,909522486,909573942,909522486,404232216,4279828248,404232216,404232216,404232216,63512,0,0,520093696,404232216,4294907928,4294967295,4294967295,4294967295,0,4278190080,4294967295,4042326015,4042322160,4042322160,4042322160,252645135,252645135,252645135,4294905615,4294967295,255,0,0,3638326784,7789784,0,3330015232,4240885500,4243648,3338534912,3233857734,12632256,0,1828585472,1819044972,108,3338534912,806891616,16696928,0,2113929216,3638089944,112,0,1717986918,3227541628,0,3698720768,404232216,24,410910720,1717986876,8263740,0,3334892600,1824966398,56,1815609344,1824966342,15625324,0,202911774,1717986878,60,0,3688594944,126,0,3682469379,1618932699,192,807141376,1618763872,1847392,0,3334896640,3334915782,198,4261412864,16646144,65024,0,2115508224,6168,255,405798912,403441164,8257584,0,1613764620,792624,126,453902336,404232219,404232216,404232216,404232216,3638040600,112,402653184,8257560,6168,0,3698720768,14448128,0,1819031552,56,0,0,0,6168,0,0,402653184,0,251658240,202116108,1013771276,28,1819072512,7105644],195,[0,1879048192,3361747160,248,0,0,2088533116,31868,0,0,0,0,29,4284883968,9318,570425344,1667457792,34,0,2818048,404226048,404291352,24,11520,0,255,0,3271557197,3285975015,3284386755,1409286144,3690921984,404232345,3938328,5636096,3284386560,1724105667,6204,22272,3284386755,1728043995,102,3271557208,406611651,3284362812,1493172224,3284336640,406611651,3938328,5898240,2260991744,1630541836,65475,27904,3858759680,3688619007,219,118,3284336640,406611651,1996488704,0,3687039744,6750171,9502720,1845493760,3632143163,30684,402692864,3234037272,410960832,24,3271557277,4279778406,404291352,2650800128,1718025216,1868980860,15951462,15794176,404232192,404232447,65280,62976,6168,402653439,24,0,0,0,2175107454,2122422717,4292607870,2130700227,4278124140,1063036,4269553680,1063036,4265114680,2084076798,2084048912,2084076798,1008205824,6204,3286761471,4294961091,1113996288,3958338,3180971007,4291008957,2098136847,2026687692,1717986876,410916924,809448255,3773853744,1669292927,3236325219,3879492249,2572827879,4277723264,8446200,4265479682,134718,410926104,406617624,1717986918,6684774,2078006143,1776411,1815634750,2026649708,0,8289918,410926104,4279778430,410926104,1579032,404232216,1588350,4262205440,6156,4267716608,12384,3233808384,65216,4284883968,9318,2117867520,65535,2130706176,6204,0,0,813201456,3145776,7105644,0,1828613228,7105790,2025880624,3209228,416073216,13002288,1983409208,7785692,12607584,0,1616916504,1585248,404238432,6303768,4282148352,26172,4231016448,12336,0,1613770752,4227858432,0,0,3158016,806882310,8437856,3738093180,8185590,808480816,16527408,940362872,16567392,940362872,7916556,3429645340,1969406,217628924,7916556,4173357112,7916748,403492092,3158064,2026687608,7916748,2093796472,7346188,3158016,3158016,3158016,1613770752,3227529240,1585248,16515072,64512,202911840,6303768,403491960,3145776,3739141756,7913694,3435952176,13421820,2087085820,16541286,3233834556,3958464,1717988600,16280678,2020107006,16671336,2020107006,15753320,3233834556,4089550,4241280204,13421772,808464504,7876656,202116126,7916748,2020370150,15099500,1616929008,16672354,4278120134,13027030,3740722886,13027022,3334892600,3697862,2087085820,15753312,3435973752,1865948,2087085820,15099500,1893780600,7916572,808498428,7876656,3435973836,16567500,3435973836,3176652,3603351238,13037310,946652870,13003832,2026687692,7876656,411879166,16672306,1616928888,7888992,405823680,132620,404232312,7870488,3328981008,0,0,4278190080,1585200,0,209190912,7785596,2086691040,14444134,3430416384,7916736,2081164316,7785676,3430416384,7913724,4032851000,15753312,3430285312,4161567948,1986814176,15099494,812646448,7876656,202113036,2026687500,1818648800,15101048,808464496,7876656,4274782208,13031166,3438804992,13421772,3430416384,7916748,1725693952,4032855142,3430285312,504134860,1994129408,15753318,3229351936,16256120,813445136,1586224,3435921408,7785676,3435921408,3176652,3603300352,7143166,1824915456,13003832,3435921408,4161567948,2566651904,16540720,3761254428,1847344,1579032,1579032,472920288,14692400,56438,0,1815613440,16697030,3435187320,2014058616,3422604288,8309964,3430416412,7913724,104645502,4154942,209191116,8309884,209191136,8309884,209203248,8309884,3229089792,940341440,1715258238,3956862,3430416588,7913724,3430416608,7913724,812646604,7876656,406374012,3938328,812646624,7876656,3328981190,13027070,2013278256,13434060,1627127836,16539768,209649664,8375423,4274809918,13552844,2013318264,7916748,2013318144,7916748,2013323264,7916748,3422604408,8309964,3422609408,8309964,3422604288,4161567948,1715214531,1588326,3435921612,7916748,3229489176,404258496,4033113144,16574048,4235775180,808516656,4207725816,3351695302,1008212750,1893210136,209190940,8309884,812646456,7876656,2013273088,7916748,3422559232,8309964,4160813056,13421772,3972792572,13425916,1047292988,32256,946629688,31744,1613758512,7916736,4227858432,49344,4227858432,3084,3737962179,265053747,3687630531,63926071,402659352,1579032,3429249792,13158,862374912,52326,2283964450,2283964450,2857740885,2857740885,4007360475,4007360475,404232216,404232216,404232216,404232440,418912280,404232440,909522486,909522678,0,909522686,418906112,404232440,116799030,909522678,909522486,909522486,117309440,909522678,116799030,254,909522486,254,418912280,248,0,404232440,404232216,31,404232216,255,0,404232447,404232216,404232223,0,255,404232216,404232447,404690968,404232223,909522486,909522487,808924726,63,809435136,909522487,16201270,255,16711680,909522679,808924726,909522487,16711680,255,16201270,909522679,16717848,255,909522486,255,16711680,404232447,0,909522687,909522486,63,404690968,31,404684800,404232223,0,909522495,909522486,909522687,419371032,404232447,404232216,248,0,404232223,4294967295,4294967295,0,4294967295,4042322160,4042322160,252645135,252645135,4294967295,0,3698720768,7789768,4174149632,3233872076,3234659328,12632256,1819082240,7105644,811650300,16567392,3632136192,7395544,1717986816,3227548774,417101312,1579032,3430428924,4231035084,4274416696,3697862,3334892600,15625324,2081959964,7916748,3682467840,32475,3682470918,3227549403,4173357112,3694784,3435973752,13421772,4227922944,64512,821833776,16515120,806891616,16515168,811610136,16515096,404429582,404232216,404232216,1893259288,4227870768,3158016,14448128,56438,946629688,0,402653184,24,0,24,202116111,473722092,1819044984,108,1613764720,120,1010565120,15420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1174405120],200,[1,3943737941,1,808465694,1,959787056,1,692267040,1,1498435395,1,1212631378,1,1226842196,1,824200514,1,724711481,1,4208496320,1,2734705825,1,1319174400,1,16950016,1,4982471,1,244056662,1,1622671438,1,3449607,1,3542668,1,6555335,1,244056454,1,113705062,1,65470724,1,17174156,1,4241659,1,113694862,1,3321888884,1,29958,1,4392646,1,1996932608,1,632881152,1,15919104,1,4192339315,1,3103834089,1,2159673345,1,302036992,1,57873357,1,3087052777,1,332207104,1,2783511411,1,1812383488,1,2701131776,1,876413042,1,3339089170,1,2583718918,1,606200833,1,3894535934,1,124911796,1,3440378040,1,2701882131,1,3191668844,1,3958141441,1,28938357,1,8436224,1,3440443576,1,3093787155,1,332204288,1,12083314,1,734039752,1,251705563,1,1383207885,1,7669502,1,2952926138,1,565898752,1,254077955,1,108269372,1,7079623,1,330957220,1,4009734146,1,3120562617,1,3224043649,1,1081217997,1,3440443576,1,2701882131,1,3191668844,1,3958075905,1,12095535,1,1913900297,1,1963392551,1,2180677888,1,1109226240,1,264099051,1,2344626944,1,440816,1,771798928,1,23626890,1,281874100,1,4193575494,1,203547898,1,4213302785,1,3405817320,1,825243441,1,1381042701,1,16824824,1,3993372648,1,3959817192,1,57934372,1,1526330082,1,3224093529,1,3355105422,1,3875603462,1,101616643,1,2013710081,1,2348941568,1,4211112462,1,1358955449,1,3224097323,1,259134413,1,721551800,1,3150089938,1,28933120,1,1494469888,1,4236249715,1,3792336000,1,2416372702,1,8126698,1,734014208,1,3105082834,1,3125870595,1,3224043648,1,309466061,1,721551800,1,3150155483,1,2159705088,1,112896,1,1918440397,1,2113839368,1,1957319997,1,3453477579,1,620941080,1,4280944642,1,68810320,1,4241438,1,646633614,1,3327131767,1,30470,1,704997864,1,113700544,1,3892576375,1,3223979358,1,1996932846,1,1407715328,1,4005571077,1,7800518,1,88664076,1,2968436778,1,4195018247,1,537666020,1,1492853222,1,7808648,1,4202742559,1,3439686528,1,182848,1,1977879291,1,708889865,1,2180677860,1,4236308343,1,3909317896,1,1364394266,1,1443241554,1,7006295,1,4287162448,1,2382381240,1,646600920,1,4236247156,1,1583346945,1,1499078407,1,182875,1,55378744,1,56623958,1,57803626,1,58721145,1,69665584,1,81593551,1,54002930,1,84346105,1,85722389,1,86639907,1,113640753,1,1358954612,1,3397446282,1,3502964225,1,1997965538,1,2161478144,1,95486434,1,3591037650,1,4396680,1,3092300633,1,3633184832,1,33325144,1,1441465205,1,2162851984,1,1929968256,1,4290963503,1,113691134,1,2281701442,1,2281718798,1,2717926702,1,1990197318,1,4694528,1,851741264,1,2346766820,1,2768368,1,772109144,1,43820287,1,7603910,1,3271602177,1,3993256936,1,3959701480,1,108266020,1,7603910,1,3672752901,1,7643136,1,7603910,1,1202766592,1,4327110,1,31844616,1,113658800,1,3909746754,1,113639899,1,3909419074,1,113639876,1,3943039042,1,1107740172,1,99288832,1,4327110,1,4497412,1,1151516708,1,27715840,1,726861342,1,3302526656,1,3087074334,1,3633184832,1,2155932288,1,796068090,1,3909032936,1,661783519,1,2334578691,1,142599,1,2484362,1,3521696003,1,2316373224,1,2005542600,1,2328821250,1,721450262,1,520575936,1,3321889482,1,117470214,1,3223979956,1,3375092267,1,854256633,1,20054529,1,720896,1,2667532,1,1996488704,1,24578049,1,84606976,1,2667532,1,838860800,1,8390145,1,84607232,1,2667532,1,838860800,1,20055041,1,84606976,1,2667532,1,3321888768,1,201343494,1,4392646,1,1107968,1,113642866,1,3322675266,1,536888070,1,3271557608,1,434683946,1,3271652097,1,2394958622,1,69125336,1,887627521,1,56062467,1,114648,1,1912627176,1,48973,1,1912625128,1,180037,1,1912623080,1,311101,1,1912621032,1,245557,1,1912618984,1,442157,1,1912616936,1,376613,1,1912614888,1,507677,1,1912612840,1,573205,1,2718009894,1,3375038582,1,3959608296,1,158663336,1,113702626,1,4177985652,1,45476035,1,1963074796,1,3320366065,1,3892802049,1,2317746855,1,3905154561,1,1802633241,1,4327110,1,3947344101,1,780392,1,113663346,1,2967863362,1,2690313035,1,2151415878,1,113689589,1,3943366722,1,1107740221,1,113643008,1,2952855622,1,3326012231,1,251675142,1,4589254,1,3947606017,1,1107740208,1,451608576,1,4327110,1,3323194113,1,3758113286,1,113642731,1,3957522498,1,1107740165,1,45147136,1,1912612840,1,3323390753,1,151024646,1,22538435,1,61928818,1,1912607720,1,3859001357,1,606200842,1,3894535903,1,1005060522,1,1119798016,1,35383296,1,35449070,1,3905498094,1,619446796,1,1947024399,1,3338134025,1,2147513350,1,3120350201,1,3907518470,1,3807292417,1,32434425,1,1946265836,1,1946600966,1,3287883776,1,167802016,1,3271652800,1,2382381240,1,2344627136,1,1107740408,1,3223978752,1,1929358312,1,309539,1,1912654824,1,28174368,1,1166550764,1,2984789826,1,3907904001,1,225575096,1,3959528168,1,259261096,1,7603910,1,449051135,1,1778788102,1,637957894,1,4333194,1,254067594,1,707847040,1,3540234751,1,2818518763,1,536872419,1,8396864,1,272629792,1,67109392,1,285212736,1,537002251,1,45813792,1,1929985030,1,2732011107,1,3150119028,1,3364554251,1,1416825404,1,1956828974,1,148996096,1,1963522432,1,1107740202,1,3223981312,1,1929321448,1,4122654,1,552081778,1,3364547585,1,1912615912,1,18212878,1,1946265836,1,1946600966,1,2331582464,1,364626881,1,1929526278,1,2732011027,1,3150119028,1,54265367,1,3610117747,1,3271586978,1,7603910,1,726778811,1,15657161,1,1963043052,1,3338265096,1,2147513350,1,1354979833,1,1006651040,1,41048193,1,4199662585,1,1481641190,1,3230403558,1,3235054769,1,4028950666,1,41140995,1,3864053246,1,3871640070,1,616925702,1,2692933135,1,3771727942,1,3767191806,1,2689662896,1,3845914690,1,3862693748,1,3948413812,1,79190033,1,4280963842,1,4595338,1,1524889426,1,3864021083,1,3871640071,1,1482291975,1,3277439235,1,105993211,1,3224051286,1,918870158,1,706674948,1,1552557823,1,1109821961,1,83656704,1,2317747829,1,166398556,1,1977875584,1,1552557572,1,3905497867,1,619446340,1,1948269600,1,1274339850,1,113701237,1,3900702836,1,619446307,1,1946552322,1,3205120,1,1592705074,1,3277543687,1,3860901968,1,3859263520,1,203547658,1,1478616608,1,52476623,1,2699307600,1,3489857655,1,4041786200,1,3905110783,1,3275948024,1,1124071656,1,4294174915,1,3924316396,1,35974399,1,2316727640,1,2147500838,1,74784996,1,3906005200,1,78709540,1,3828015314,1,818149827,1,909193016,1,4281481263,529,4294967295],201,[1023,4294967295,1,3388997631],246,[3900608489,3905645479,1573610754,1949288424,3912665869,776243716,41221692,12844348,0,2486055680,1534289933,1712675089,2400599607,3054562577,202569744,890293806,756113169,1343440942,455030063,1477574189,2434527262,3190719778,1393016327,773014302,2315255839,2618384158,2737741102,3744396078,1477617974,3089250578,4213364754,17825295,3641705488,809305108,6135869,0,1061005568,69508644,1816351296,3460394305,3880988481,324871762,692466502,3512208728,2470956359,391129681,2770954324,472494377,2524872805,2272326013,209325688,4100097139,3447369081,1026264186,3894114846,3911587624,187234345,1193443369,304483625,2904257830,2188071275,4200963179,307664981,2554642519,927247428,1459701761,3020000001,3842103553,4177654785,369235201,1342315010,1828872706,2835514882,3741493762,973284098,1292059395,1761830147,1426287107,1319817044,3544379076,248402950,1426259,3310764371,1095716034,1162200004,1325450704,3218231116,3310571340,3561902011,1095060633,1381208786,3687729484,483675721,499600979,516702788,1208800079,1092002898,1286851660,1157677267,3310634316,3243524521,2261600644,1414743621,1178971346,2916372041,1314080325,1178971847,2949399108,9946693,2714063692,1384236110,2781172545,2798930244,3528413778,3570160295,1490408018,3327069136,4057354531,2194820864,3310539214,534268175,3478408960,1411403657,1397721551,9290325,446978117,1431326208,2345043412,3528741710,97799896,1292947534,1263465168,3735312709,3645177856,1129251017,3401929793,1313428048,1229757908,1352586323,1159451471,1313442004,1095741637,1397341380,3343881172,616779530,1158860357,27546694,2475599,3528414287,1196574145,3293560261,2755938803,1480916995,3611657172,3553906580,3460648960,2631161274,4023555534,430199875,1330205776,3326523598,1230110941,1334957134,1335412043,1162154451,1163073483,1163052756,3352577363,3561900367,550389212,3461677056,1431586186,1166986834,1166525505,1380930643,3443887301,1431520655,1235797325,2756986951,147082754,3444919877,1145979307,1514753359,1124121029,3460646226,3494859976,3493943184,3310764452,2822983870,3494204626,80627663,1225249361,1381239246,1381241764,2756136521,1128354006,1327014981,3301199445,3410184532,1230132257,1207968455,1389219397,1386401359,2747680335,3467133505,3460418767,1230176269,1406650190,1090572498,1379996876,3671217232,1413761280,1229037768,1229493972,1169278284,1387447374,3083162697,4040314624,2868903936,2867506665,3740053483,2817842413,3186015961,15252711,2088532345,1011241087,2071603250,27522,1681615789,1722313553,1817404163,1702126368,1662608146,1663591233,1667916849,1669948239,1706301655,1480936960,1769414740,1970235508,1329995892,2035482706,2019652718,1920099616,1375761007,1381323845,1769414734,1970235508,1330061428,4347219,544503119,1142974063,4281409,1701604425,543973735,1668183398,1852795252,1818321696,1984888940,1818653285,1325430639,1864397941,1701650534,2037542765,1684952320,1852401253,1814062181,543518313,1651340654,1392538213,1668506229,1953524082,1953853216,543584032,1735287154,1967390821,1667853424,543519841,1768318276,1769236846,1140878959,1936291433,544108393,2048948578,7303781,1701604425,543973735,1701996900,1409315939,543518841,1836280173,1751348321,1953844992,543584032,1769108595,1931503470,1701011824,1920226048,543649385,544173940,1735290732,1920226048,543649385,1836216166,543255669,544173940,1886220131,7890284,661545283,1868767348,1852404846,1426089333,1717920878,1684369001,1702065440,1969627250,1769235310,1308651119,1163010159,1162696019,1397051904,541412693,1752459639,544503151,1869771365,1851064434,1852404336,1818386804,1919230053,7499634,1936943437,543649385,1919250543,6581857,1701734732,1718968864,544367974,1919252079,2003790950,1986348032,543515497,1701669204,7632239,1769366852,1176528227,1953264993,1380926976,1953060640,1953853288,1480936992,1968111700,1718558836,1885425696,1056993893,1229477632,1998603596,1869116521,1461744757,4476485,1145980247,1953068832,1953853288,1229477664,1174422860,1145849161,1702260512,1869375090,1850278007,1852990836,1696623713,1919906418,1684095488,1818846752,1970151525,1919246957,1818838528,1869488229,1868963956,6581877,543449410,1701603686,1685024032,1766195301,1629513068,1634038380,1864399204,7234928,1698955327,1701013878,1328498976,1920091424,1174434415,543517801,1701997665,544826465,1936291941,1056994164,1140866816,543912809,1819047270,1886275840,1881175157,544502625,6581861,543449410,1868785010,1847616626,1700949365,1631715442,1768300644,1847616876,6647137,1766064191,1952671090,1635021600,1701668212,1763734638,1768300654,1409312108,1830842223,544829025,1701603686,115,270451456,1338462720,1338462848,3405833344,4294967295,4294967295,4294967295,4294967295,4294967295,1342177281,124911672,118489086,1034,0,0,0,0,0,1792,2098951,0,0,404226304,0,65616,117899264,0,16777216,16842752,16843009,16843009,16843009,16843009,16843009,16843009,544106784,4285222656,1916928013,7037285,50332859,126501852,1974549571,440583,4058765571,24412732,1125092035,1396912010,3523991947,74766983,3661355655,1526730937,3640911476,3048853483,9562376,512460493,3347709998,3237921570,1335888244,2998929923,3914167571,1035085501,3107566265,2998482610,884128053,3107173049,2998484658,1085454647,3107959481,2998481586,984791363,512434923,512295735,45219886,3104551609,2998469042,313702666,3105141433,2998470322,229816598,916635698,6267397,2718196386,512426080,512294958,3224503111,2718197154,3347711083,3237921570,512296052,213451593,1159629576,632416515,2328005209,2663114,54730379,55254665,512481927,3347710791,3237921570,512297588,3666281300,55975561,55385739,3666336523,1946374075,1963401739,2265972231,108259802,126402610,149475722,62176036,3263858637,141771836,108212796,108142396,321661104,2318323850,3221897991,1129052277,4067805950,1193184083,3733413379,780717398,1060898698,3143304821,3572171700,1534246632,1006632634,1971965402,1978591491,3273836426,57983230,2958858728,586279167,2328713648,1872937010,1010558976,3139672808,2364016429,2662514,57999916,3442339560,4294949771,3022473,167984800,2336847040,1392721694,1516004840,24635474,41036464,2900893872,679798818,839807834,54436544,3224547563,3942858402,1092520725,1926890243,4189737713,1524251647,512354419,4154458943,1958742529,766044586,1915245032,99215522,3372138750,3902577012,141756205,1965462504,4269205763,2315532520,1965046791,1542514691,20047954,512335194,2362245955,1877541746,3897643579,2968010222,2629831173,55121545,1912664296,1973198089,129034499,2622603274,447604819,1364827483,3605529459,1386043928,2690271092,3221881963,512428149,512295690,512426799,2271085400,1398363870,3897809155,2304465685,2265143326,1497336026,1128485722,1128470409,1224784058,2336835913,126397682,2320056899,1975847617,1519242738,2332040936,2298800414,3892531742,2395808585,55713419,82386569,2348734697,2264936478,2331937498,1124567770,24446730,1128481731,3221882762,540807284,188544371,4259901810,83486724,2269375723,3944188378,47828,1008170066,1511224364,1376134120,742137204,2951223668,41216547,4206505020,3892540671,125044236,57945148,2315084777,2265135902,2271107802,2337494750,2332045342,1124567755,1268713226,1133868190,991923011,2346290138,2289366303,3951391733,2730504930,4238476029,3113209090,3099197755,168266240,3139466688,3280601408,3364536618,3306866570,3082545290,2344628736,2336402170,2336402170,1019456250,3909317922,540803123,4238346612,2327841282,1127183367,39118928,1949969496,1967799302,2718019592,4255253244,1968516098,126505132,1951973386,1946630826,126505178,36497475,172223723,1267890368,2444246844,58020178,3120620265,3538420587,606726158,787022707,1589269249,2156555,4041752181,191019523,2952795624,3942872457,1706725387,583691,2377131637,11397465,2888757899,24494090,3905456835,3241807509,1111750261,1330113259,1330905120,4347136,243263579,3146829139,1093402883,3364536322,3640852661,1528269614,1726501699,2345175566,615263986,3909318015,977469867,2337306049,1118580466,3799629834,675070346,4069203316,3510414382,3493598580,921178484,1949187086,365422595,57802928,1476492009,2888757899,3221918157,602473337,207247616,4289745024,838947304,50176704,21555288,1543418601,2888757899,2042628674,2381005559,2462928971,2316045498,787647432,1958742700,3241820695,351007605,2846599820,2715068582,2308871050,9293198,49004594,4255252912,1515804674,1968218428,16443395,1974549592,16050181,3644647856,3337159540,3857207296,3901730816,1347944674,2331946473,1949187079,1916419086,9496835,57880636,2684389865,3221881597,1515784074,1659437945,1009218814,3909317934,246480473,1375776232,3892570344,2271084797,3666302686,2615722890,1539803648,3909129704,1364393471,535299978,14674013,2689817177,37487355,512432757,3347711139,45137930,3280604789,263453578,3362982460,3421180164,80269392,6088731,3892618171,57806415,1476698043,3892808272,1129840714,4101359870,4256033115,1107520186,2888757899,58031908,1107323881,4069197626,3950357550,1006661609,3909317670,3897818565,3898278411,1211894999,41225136,199756976,3897643520,3914927321,984678236,1118501515,180456009,3271652549,2615744434,1536413178,2731081291,1515782909,3893141736,3896770526,4041739417,1022653217,1007186746,1022128944,3924325422,126549299,175317052,108267836,41159228,2689605808,3237872381,3372089972,1274978281,540805002,154990964,171767156,3276009844,966943920,701687811,3877656040,991332690,50044931,159115344,703091544,72792848,1532380648,3897776474,512295837,45810485,3906732800,511048051,1263720707,2320185226,1396917015,53812875,1515969083,2337990005,1159629283,2270867715,3892883930,2337480419,1577268510,1398201991,3022475,1457424222,3424644584,1963793128,4190562563,3253273458,250125561,2018745609,1894659,1583188712,3126255239,126484481,58052412,1376834792,3906635603,669734598,3898413800,1364940209,2164308306,3599430026,126522573,28364604,3488091765,4108866312,1435756636,1533874920,3364508241,2316090088,3897250280,57933995,3908650985,2699564673,2337493760,2298763806,2332044830,1577270046,3042369159,2258588034,3297136836,1355056799,3488203910,1367520612,3421061867,4178766328,7727299,2513260779,3910099945,3221881557,2319706997,118113031,2336481396,378094359,116785198,1962869878,1538282278,2266811112,1450240218,3236453808,334191388,2615711437,1160153373,1126074627,1007127043,1136620858,977012618,3904547698,2759086606,2876408108,2725464636,3221414962,2546856075,632618798,126501632,24263228,1948269763,1007186676,3237934384,180603134,1023112384,1014133259,2684777758,3221881600,1947221187,2722320444,472646400,4113316211,4265346931,126491509,4263414083,2315302658,35555800,2718085123,79364865,3221903360,1124567747,4263414083,1066027778,938009067,4263414528,4271106818,2730545344,1364329217,2265121466,3907554010,3666302227,512318041,3143107326,3221880836,1913208003,4285131011,4277481532,3284729536,1006829728,1008169743,2333307405,1963131422,1128481546,2319652746,3923412791,27284586,50045443,292816956,50470539,77799049,50601611,77930121,50510787,2991889897,45267203],247,[3104092857,988285106,129939743,753234513,2328398401,4278577384,259385916,3909025512,3497140001,3901374764,2331964136,1925262021,1589706435,3143032455,11862880,394844419,1976106563,126508025,2826251324,3959344872,4274645173,2031006696,3909464731,126547834,378220092,58000201,1274983145,1023323880,1006793742,35031821,3909317891,3224567455,1258487970,3892314298,24313491,1352618947,991533243,2317054682,64654078,64685018,1490748378,2318412958,50378448,1541048282,2656622059,58049371,1008499945,1007121422,3909317645,1978151075,250132764,61939435,3894149864,1398407061,773753683,3733413376,2676863062,2253440134,82530756,4286310481,1006829728,1960478477,1947090108,4139706627,2337528455,1577254430,3898007175,1396899921,3022475,1935399483,4182763523,1189610354,1225618425,1034030512,4243086083,3285814034,2749958322,1972948470,3909072630,3817600506,54861449,62033212,2347303796,512318454,3904569390,3733413390,2975576150,2969758522,2315302144,2328726209,2968013800,1958742781,1959082686,574374842,3237931380,2351754356,3308971893,4035626514,72933355,3893684995,1609049564,378136348,2689729339,3897557755,1582826885,2320948871,50045160,3314206010,635962996,50044940,1006937018,3120787973,1012073631,2335274243,1392812830,2333576003,989868062,2333176794,990075934,292772570,990063803,2953475034,384231514,870898311,383707156,1457424222,1515372264,2805777243,417870453,468510973,4267698313,225759755,2331529192,1540459253,334037874,1293322751,2698670595,3221881679,3514090122,2315266208,4123978192,2316101096,1021872647,3892671629,1267276722,3388918410,58049930,3908876777,742194714,4008421237,167989152,856192448,55419840,4277495529,2663104,1954758528,4260882450,3523939445,1944588404,2730504958,3905094479,4202036375,3224504299,4261629858,55026112,2332044963,1963150110,4161765,3280143221,401163012,208726041,3221936757,2766734197,4112574973,1375734458,2649235316,1591379965,1951850119,3906635542,2334923558,1946370326,4254328840,3790144372,2329577460,1975716551,4252100867,54599305,1526939298,54468233,4124830041,2315529448,1965833223,4229556227,91523388,3441093096,3538441035,427055953,1979451112,238863105,3437822837,1947024637,4225820931,50470539,3892426435,3221945897,3840472692,1973501179,1976499954,3906071534,65732970,1261542376,1979436776,421390339,1072235381,1977039873,661383427,58052156,1006676969,3909318098,1012072612,1013806124,3909317947,3898147095,3897754537,259262371,3898425832,130421442,2736687904,3439853060,2736688025,971526916,3893195804,58196273,3892326889,65750401,2315266464,1958805224,471787555,1726482292,3943139909,996730883,3221902171,117575284,4261704693,1925528264,412739587,316598363,4285262171,851024589,3911092992,3906536196,126491624,715135093,3907553792,4282137394,3308915828,1827144562,3909317144,237764743,3505847411,3897586411,4058577671,1011898378,1241609426,3221931658,65602424,47616,463923283,2666007924,3909318656,4008181781,2684611396,3632922665,125092094,2095579319,1541048145,689545704,3526121547,3105059923,512426034,3640853737,2317053928,3892540679,3505797822,275956226,427081982,2316826344,2043215554,911619,3901407486,417865904,1976434199,2296929273,4273793530,3224542157,3897643603,1515793542,4169842738,512350346,3277522153,2680173139,2253440134,719972548,3806921588,783897586,3053629952,2295923709,1526771767,3895060201,3221892659,1954888899,866314499,2233012712,58008380,3895470313,1944591664,578480128,1380926696,480766035,57891162,1360610793,3892360530,2958758213,4237551875,1684361791,1919295599,1931505007,1953653108,2319646733,1975519751,4069714179,4067762748,1526766569,3440175963,54173852,57982986,1509061609,3893694651,512452107,3905094467,3142791060,3773366774,1948466176,482273522,1360366777,11543100,1604517808,3906958596,126488795,175451196,1604501554,4187875332,1877476587,3897768728,3277525296,73375827,175423498,216547248,3894456342,48764423,57891100,1360568809,983744562,738706947,1398528647,2957726290,54108800,3908656872,126493349,1965571147,11879200,1290323454,3909318137,574419432,1172898677,1948794111,1965636843,1976434409,4180797669,742131572,3387491188,3733413617,1007127126,3909317676,28376881,3892619682,2845835362,1959329284,4280281347,84797523,2364015477,3897252626,2271148283,126506718,2339646524,3974646619,1539312376,183042932,738707199,2337474283,218324510,983744562,3733413379,3892636502,3895203746,2271093016,2320651998,1949056007,54173706,57982986,218139625,1386397746,425912324,2347303796,78243886,3896014160,4035639451,574417034,983567988,2327841283,3053614320,1261221178,1477424872,3364487940,168055456,3271652800,3666329994,1578551995,1381424775,3908759785,1348008035,2612593980,57889046,3914529257,3897250557,125106255,57945148,1593729257,1263984263,1962426088,4285262083,54173786,3666329610,904463220,3915076119,1659436450,1975519994,126501653,2986805827,3909317892,2336485582,378094359,149422903,1971600632,4283427293,3877033448,3892315369,1260918478,2974941366,363194369,3001589197,2730504705,512296104,512426834,2321089362,824084743,1944468483,3913073409,3912004978,209047690,1006828448,1975683587,282519811,3849522236,3053682875,2329543424,931802821,3581134394,389986641,3452340817,1954495646,1917926500,1023288429,2691134586,53215995,1038680949,4290775792,2030347062,1173763,77936383,149488506,2671181568,2704736004,2315453444,1374194378,1360536505,53550731,3070190569,1927687168,1929591860,3489741872,986067664,1945144006,4024363267,53550729,3958847208,1399187680,3108780008,2142659881,3897739755,1398428595,3944427961,1019579070,3271651940,79319633,453229412,51505235,1994982260,2736688127,3367588612,1503456037,4238524810,50044930,225822010,678691388,58000444,1929412585,2331019833,1946696901,1019644462,2320987144,1946434757,1019644518,3909317891,1702096764,3036916411,64553728,260714201,797584963,2736687962,3905114372,635982604,512318284,2304443553,1493475102,1264248922,3142776808,4238345110,46190594,316181187,2328046279,529215224,3314213887,1274472528,50045528,3547595836,2736687451,3906071300,1515803287,3942883515,1642617805,1248192587,1531652328,77930121,2736687451,1407576836,1357437575,1172855626,1246357579,3897310185,58062387,1945036009,1355606275,1914064616,14412035,57876540,3455483881,1975582367,23783683,3913074942,3929855348,2951283573,1965177856,221112579,58053436,1006759145,3909317926,3577479377,3907521653,2662645,38004819,3560751963,3639086453,512447477,4159177543,1019435850,3895358938,2615735751,591144980,3102215541,1088967429,1541048102,3892315113,2213027577,2270374164,1977289690,4141738243,1531678184,1976581315,33614083,58054716,1007717353,3909318088,3694934992,1290339189,1977498670,318368003,58054204,1007644905,3909318021,3678153272,2766734197,1976646715,41871619,3908919528,3274249262,1575517622,1377733629,3605549827,3905117027,2270371220,2736687578,21096452,2951218036,2328058698,1918974983,1937456377,3277792501,57943612,3136711913,417857536,4293257461,963923772,880101436,2319648181,4292208647,2266311400,1007317978,743273274,3947459120,1934048262,53947459,64685019,182125531,2279115459,1976434394,3985435089,4107659339,611572359,57817148,3119344617,55642064,60584667,60322523,1502900955,808190133,3640903818,3589003911,2269813224,2319696858,1015098375,1393456391,1022663400,57957160,2957631721,3489707271,1372097216,2331281128,1929723073,4236503074,739463656,2269746408,2736688090,3733413380,3666301782,2265212392,3733413594,3894537046,2271149822,3280623326,192023612,2714573628,3892540243,3126546555,2958170581,78160385,3439376825,785974176,3472762879,2239031868,2171874620,725403390,1019412853,2684056809,4274232907,1505759936,4278502690,4176003098,3054496585,4229097562,4149252840,2736687571,434723076,50045180,3372091452,3372140798,1355123395,1481668328,1970945114,1250552067,58030908,3108529897,1011967244,184776006,1346159578,3659727733,1966881987,3285857027,91566652,3556235827,601094083,3285448666,3488209451,6529096,2951218155,2327903795,2327851736,1233447416,1375743720,1593717224,2337726087,4294606871,3169387381,129699572,922702693,2689729360,1011876603,3892540675,2270694647,77839322,4083280075,1006633145,1007711003,3893129745,44102483,3502246403,2278066896,1227738,3666336003,4292470979,303097938,113436903,1457424222,3277526921,3916746812,477417788,1393687016,1158804968,1192358376,125098636,3876710888,2298911720,3271774230,3892442088,3666280928,3666286473,675022730,854131572,4075940085,2317041640,1965636615,4112771331,739359208,3387485931,50044929,2303770634,2265141790,186616794,3909318107,126544756,57944124,3892367081,512357051,3666281265,55713419,672237032,1397801010,2159073927,3892525474,3666287344,1457424222,1342372768,4204521554,55713417,824084827,1105745923,3892621569,4173008951,2346451967,1207560419,1342372768,55713419,691799946,1005065076,2337483793,3892523294,3945533746,3835844785,3221903363,4221718132,47874,3219708931,572231,3817593859,4261655386,4069214915,2025851564,1246382838,33749920,2699594435,3364488164,1681704194,1424556914,3280621811,3871015093,2329477891,14674120,1360840121,4103727441,55713419,1408367336,53550731,688966120,512316080,2090861361,1342440451,3364538576,1477416680,3505834122,3632972030,3691249591,3126059915,2666005370,512318208,512426874,512295908,3414885244,3120791227,2263352294,2331544064,3827206616,1344178947,512312068,3347711056,1302512394,824085252,4187023363,4052609099,703136628,4253935850,750391669,2736687875,1926904580,142403590,2332616424,2315483678,1137937143,1125091907,1094791050,2059092289,3139587,3817593479,72359563,1344178507,180849156,72196803,609441883,59554567,11913354,4243118339,2344836092,126397682,2320056899,1975585477,2337522674,1124085278,1968954123,3909923572,3890801102,2159071503,167983522,3922233863,2117867867,2649293684,126501865,1971534915,212134147,58040380,1010282473,3909318050,2179545280,74836201,3924613767,1642659129,2817020420,3420990479,3905116672,3287220208,1392503784,1258336848,1961933544,260892679,11593772,1592822360,2690047623,3221880926,3666283381,853182444,1959142082,3921894382,591194420,2531802228,4237420792,2112378997,3066464800,181466624,3909319104,3498766771,256436306,7137324,3297156954,1405388368,46303826,2966457024,3297156884,3921970768,1357389832,5040368,253814864,4515884,3897709400,854073543,2042628666,4050774275,394811971,787006299,867756032,738208162,83653390,4275107356,2730623680,3905093674,451473427,2632471544,1541048140,3221931658,4026656963,3908569320,57999339,1274098409,2330981096,2145960898,3907537909,1503841775,1374352104,2334661096,1258502942,1961875176,245950478,532932652,3224502962,3139540712,512360447,1978138670,2953147664,7315969,260725339,1127189059,3238708618,1038680949,3767593193,132645749,260722957,1127189059,3733413457,1004177238,57891290,1592336105,1398201991,2312800081,3892529438,2321237418,1946762247,3894456325,417860595,33012480,3892315624,2548763827,3221882762,3905094005,3947042665,33012211,3224567734,839056546,73310912,3945232872,4265820422,2329900238,2344618503,3597970169,678562620,3498713148,574371954,4238346869],248,[2717987842,581960444,276118076,3489856672,3490149080,2734499024,984613628,58310666,2315271401,1949187280,22538249,3224503411,1587550443,1958742532,1975582223,2334175243,4265716473,3271652814,1587675568,1019382276,1007120907,3909317408,4186636599,2692934570,3637510908,3637527410,1383323856,3644589962,2780516691,3480572704,2901510985,3346353468,2901510985,3212133692,2901510985,3077919292,2901510985,2943695420,4267399256,4274454214,3955687110,2321242413,4281723143,201522336,50110978,2697183282,67896060,3503354859,126543730,58033212,1023402472,3892540815,126549989,126533886,2319648117,1132405767,58040636,1011087592,2315941297,3913040647,24424880,1381061451,918266829,2984806913,1136787008,3549099914,168266286,2683466944,4101611075,973572654,2280158661,1959804122,2328968194,2321111745,2685171152,3221881950,1587675312,1008069380,839349595,73310912,1587551723,2965375492,73310975,548408692,1101724043,58052350,2315625705,772205506,2319648650,2340365520,4265716473,3909318094,3255436685,2822564217,3224503669,1527013026,3908986089,24251839,1915763907,4114234619,2296925123,1347506925,1492001256,1361163705,58002236,1010983145,3909317900,512442979,334037762,2690275663,1337066240,108268348,1219628092,649073781,1101724043,3228880638,4186686090,3472769450,27309684,2986621955,2986766848,2986505249,1007127075,3892540704,126501714,1958742595,2868480810,1959722561,50438287,3933340732,2342406559,1100983537,1006925214,1007186990,1006924868,3000202565,2328881920,1958742722,2868480777,1976499777,512475905,2934506238,3891390717,32893009,1364286041,1944592616,2331478539,3733413587,3661321046,15270770,120437742,1499002600,1577704891,2270617223,1478396890,2901576451,1101724043,1977236290,2312735732,3271776286,3892327144,2384340163,2315472926,4008255239,1501432,615639122,738941416,1526496744,1342606854,2868546307,2062074631,82334708,1541048064,1806547395,4167690321,2764961400,1006937760,3907876240,3900201131,3108537064,12226944,1077602560,1358957241,3582653834,742143348,3897690996,4002082164,1952107146,184608806,3982944300,3898088820,1378618102,1961715944,3837192451,58053131,2280475369,3733413594,1373275990,1525107944,1189630290,1524206567,3666336315,753468275,1482250989,367743571,57923843,2280464105,4189803482,1541028863,283706227,395006701,3666334219,2316072026,118113031,2275298207,1372943834,1493181672,2337430362,3523953431,3666285684,1457424222,2302925447,64653079,1541048281,3048858859,222056712,1034076210,807308035,2319665920,118113031,1136853365,3896711051,3221941115,3364547700,167984544,1958841024,1017498971,3893917095,2302471011,1558766709,1963867371,2900906717,1976699884,1009380106,1389131022,1408016104,2682686696,229678665,2028486514,603765512,1466558546,1096869979,1364417369,1531007464,2750106458,1701080661,1701734758,1768693860,2123118,3933539644,3965839442,1138394963,260719427,2955905603,603437838,4263414611,2286637826,260590383,1527220299,54370499,4168400906,3909044713,3896641970,3896576430,3897756074,2688879014,3221881949,1860764532,512447459,3666281306,56368779,57989691,1541627113,808191882,1240007539,1912749283,3812813059,4261698722,73245376,3286931176,168266286,3908596928,3947036675,3297157107,3921970768,158598937,1408402664,3947300584,3535491872,1453713444,1510793704,2414412659,2319667721,1157687303,3221882762,3840468085,203327814,1067378688,1632813915,1836016750,1836412448,544367970,1684366707,858597408,943077170,544175136,909586995,2969577783,2969758493,2264970522,773753818,1511950592,4275734276,216550341,1008170218,3893064994,3221940739,574360692,2705126773,3443268980,3221939317,2319652213,118113031,58053002,1138925033,2302875531,3892599318,2403133911,3897624437,3948538897,1971600601,48779527,3471530476,440189322,225707914,2742333756,2708845116,2641743358,1954692291,1971534998,1959657108,3919440115,3666323572,3022475,1511951187,773753092,1373275904,1494341608,3917604939,1948592826,139520008,2042252076,3733413413,773753174,3276954368,2829078687,78225924,1352638040,2829238322,3281934340,2315443176,260719367,1513065027,3605549137,4035598338,2319652746,797590287,180521563,3271652806,19711626,3224566130,3237921338,3472814451,4052470526,121258412,1956529055,1927935452,1039657023,4243065067,3892570941,803752622,42592256,1361647545,1396901770,1526770664,2319650698,911407,3906505299,3277455963,2515009968,53263104,1124567123,3277526921,2317530443,4289811445,4261907011,1958742721,1959148040,1975859716,1965178095,3903973379,1019578963,4262294828,1959395009,126503687,4118028348,3733413467,3666297686,3035152778,53263103,512447152,512295692,61867171,3892509602,800734743,2312780547,1526926366,2608138122,3909095610,3896762658,3974692754,1048373249,3472803582,4052452724,81389740,58002748,1090889192,3221941483,2656568043,512446623,3666281308,53419659,3364540662,3640917941,1926904643,790530319,3666297603,1489215064,3281962118,247111256,3909317888,3225084106,3669577887,512446758,512295690,12256047,512447232,3142779740,378209038,3661300492,1948723897,10283267,2298733243,2332315166,2298698270,2332314398,2332252190,990137110,2317055194,1128481543,323348560,1963146328,7464965,3498754098,3657629878,512482795,394986574,512479755,427033434,512350855,1128465486,1128470411,3657685639,72031881,3085687431,1544981337,1977236227,7137539,1346570122,4175971139,1125091858,1480798090,1020855123,2312992003,1526936350,11865994,3640908035,2346354499,2265133854,1960459226,667269572,180367953,2655231751,1134499722,2671217310,24485443,2345372611,990064414,1926859738,2271108083,3661321950,1457424222,1943636819,1482185187,3276886611,3674954586,2320234868,260721455,529156947,3640852663,3515544970,2345372491,3892522782,2287680672,797459215,3914062219,1397882592,77799051,1457424222,1592828136,3898007175,126499821,2736687955,117592836,1929383866,3749243139,1526586344,1577076968,3898007175,2337472575,2265132318,977114,3137342440,2271090490,3914553054,1583087111,2320948871,260719367,2318371395,4274257624,3271652811,2343367051,1111599866,2464739819,2736687931,3906635524,3666280480,2320688501,1255246581,512429962,3661300527,3224504949,3640912010,53419657,4006462299,51125899,1261406795,994774922,2314106330,3271756830,1360756665,855619560,2331019968,3284142599,1360756665,1979706856,3881167107,2333576003,3905137906,250150190,756976630,1494714371,3908924137,3555255807,4159186948,3421000437,4209519620,80013549,3733413417,3974648662,3892671729,65795553,1526708712,3892315624,548468181,3905063504,3901422828,4274388568,2344383693,2281909534,3455992583,2951477621,838902760,3733413568,2965932630,126505811,57853242,2981807498,1374179584,1398495741,1127189059,3716824970,3640852661,2833828747,3906505468,3898277623,3907649293,6744316,4069216858,3955567276,2329577404,6088711,3456026110,2565407605,3051901414,3297138689,3733413534,695581014,986250833,1912648967,3364537089,3240757130,3901407802,3934974834,4278249667,2397635445,1137740529,55779211,2284817114,3733413431,3897250134,3202934039,2287687999,3666330415,688120296,2320587353,15254506,3976456421,2968584936,376721409,4109625432,58048522,1357260521,738442728,3907841256,3018340861,2337483779,1577362206,3898007175,2749951193,3897764099,3666345552,1364745049,1365575609,1360756665,1156076112,2321046270,2328428264,2953263816,2342679296,3221925106,2574566794,2319648650,1066025775,11918730,3240810755,1381099658,1457424222,2336427914,1381194519,2901576529,510986042,1959394882,3455992588,1515908981,3224525401,1515871171,717589081,4274062023,1515832256,3455992667,3857436789,671293928,3893139432,1381185889,2336479879,1545505559,1926904579,807308050,1943681792,3897776906,1398537006,1530511080,1457424222,738390504,183768552,3909318080,2320557387,6744071,3959744594,4253739091,1499191943,1592298072,1398201991,1583679419,2320948871,1958742721,705137296,3909317573,3237930267,41075002,3448422794,11913726,394937170,2319419971,2329478106,3666303720,2336427914,2329577247,1975519937,4069245697,1107789996,1959394883,1976434420,4289905649,125053244,738357736,3908277736,3274244714,1961858792,452867,3908899560,378272636,512426844,3421045551,2679426543,2253440134,635982788,3909317636,1482364893,1369359494,317411487,1336066098,3851675907,3905486361,145761123,154941675,548409461,3909077736,119808846,2656629877,540853081,698359922,3907553792,3321766714,3455978356,58049850,1946186472,1962884105,3904962053,2656576295,1481678681,578611358,3904228803,1031013308,1930933992,1397903859,604321440,87466696,1528351976,1805670746,1958742532,822798595,168095648,3137828032,3914534632,1364394221,120437586,1515127528,1527623769,554887363,583854275,4168400906,130419691,57337856,1963062971,2964770055,4281198605,1946377192,3284152835,2900934706,3284152866,1587591117,1975519744,3303588609,3892540927,2431189468,854583297,548399187,2968002932,1975519999,45109264,2348387304,1510157598,3504936841,2078822649,3498727673,3153873640,512294918,61867171,1526922146,512447427,11862794,3640908035,3274319536,4289779850,4169844506,3691185778,3271652187,2891403,512314187,129631045,3671386368,53419577,1381099891,4194756691,962157147,1929588510,1977871322,807308246,24766464,2718196898,1034027838,1124567043,2302871432,3439548446,807308206,2949466880,54206089,168060320,840398272,73245376,3036961954,56671002,130461901,3455992580,129693813,768768,842516200,55550656,4169848970,55385737,55975561,50994827,168061856,2298770880,839069470,8186048,56106635,56237705,56368777,168060320,3892540864,916460980,1963009029,87466499,740199257,2303412992,1124287774,2343685443,51297251,51125897,3908563944,3224561354,3632986250,58465929,2298760610,2298733598,2298761246,2718136862,1364394809,54206091,3285859267,4244343646,2337711662,2315941343,1916419079,485081857,3652381153,512481927,292814896,1390992007,1256739810,1524206556,199820146,512314339,3666281310,4278023619,1963584448,58039543,2634719208,54730377,2298678971,3137539102,2337931020,1392520734,583240348,1958805191,1411287308,1126075139,1444841731,4260751363,120765341,350815092,3661752794,2958036912,4247382110,3896509528,3974757667,1444842493,3134917379,57999377,2346272233,2298696726,3271568918,2730504888,3905094774,1397885128,3892604603,512439819,2271085402,1827165918,937971948,2917674239,3901380616,988569320,3909317829,2271140104,3666302686,1511951187,1977236227,1583045139,1381424775,1530254056,3892604602,3277534667,2967561961,54108673,1963488232,966939635,2331871747,1229539801,1236070795,4168663050,3657648457,512481927,3661300572,2343367307,1117760249,2655100830,2336878709,1545505241,126507779,3077909564,3957318376,3297138870,2328058782,1916877831,4116397305,4260293059,742194036,4226287988,3236449248,3907941599,1949105810,739675112,1949056000,4712451,3752454219,3897455698,1949105786,3663944,3751405643,904463220,3733413592,4005253974,1943681792,921197357,1395094016,56106635,50336953,1943682009,2312800025,1526925854,2891401,3902204763,3523998448,2565407605,803849184,739675133,169224960,2344282883,2344758211,2999829456,3911093075,1541081860,1311769027,4247839024,1529868591,456142896,1444842288,4909056,3955425652,3942756356],249,[2734665730,3237871728,3070322152,780289,199813237,6219807,2697183282,3275358300,125040756,3224557706,4263441897,519104963,973101984,2967696579,1958951425,3922460381,698359518,1959213568,3922198225,512433874,28770395,5774985,2334049769,3892336158,3061121033,2315266464,2965761016,1959213569,3922722473,1537220266,2700642816,3632922716,2524104490,3897606398,1486880921,985923072,1942748867,1925659149,2952951049,2731081217,4267180120,3909318088,3739746307,1537262366,2698545664,4169793628,4050830122,3897606398,1486880895,1925396992,2026322448,649475,4289725045,1487061246,3372111872,3152662388,1528728350,6135808,3314215050,41141050,3342522506,4169794163,12044170,3237921578,1342206650,3657685639,2286094216,3372106503,3666344309,2730504792,1503789144,5939712,1358900201,3036690408,2328398337,2868546501,2901576522,3364546954,1976106584,3947938561,28659946,2315261928,2344979144,2336402170,3918179570,4267231370,1357018312,3126062059,11993204,3657681918,3666282378,3284148827,7649875,3422421175,126409219,3277576839,1105766093,1444842241,1478396160,2727936,518766846,216547248,3894456570,3224566279,3439339426,18802855,5643915,5774985,1520617354,81913856,91540478,2951217584,588048639,3894624744,149429156,590932003,58048522,1344042984,5643915,2696842,507167998,309657688,5848634,1049101427,1043988569,108396634,646506378,3898081370,275906607,65583988,4187613186,3892425707,2917923219,1962476348,4139513089,993837825,4176083829,4265823196,787642569,4134864698,848608195,3974631089,3909319167,844103687,7512768,849525592,3639086257,3909319167,2320498720,3502246593,852003520,3152579264,3640865454,1125616174,1480034862,1444842322,3221930752,3223454659,1444842435,33521664,3422423925,1979635688,691964423,479258624,3287932649,84279821,470551299,236920349,168369023,100798984,235733765,889133951,885666902,867119929,891630855,872494413,854799479,233321409,1489532157,4156292789,4181846017,222037896,171708788,3314157173,3983867452,1976434243,852360936,3137833152,2697134582,3221880946,1642609268,3666301182,2264926150,3905158874,698352425,1959209472,1354825227,1476457960,4151691518,5643915,1493056488,3224553610,1118501515,4203463050,3284153002,3221883568,39512259,3036805050,5808382,28820282,1962944928,1478396691,166220288,698374910,2684711936,3372089434,3892337314,3314156092,276086818,4260292690,3070850394,2697199105,3840606249,4273003143,4035626538,1007127115,168326176,4261901760,1258517710,3326341099,3666280455,3075476912,461170689,4243066288,32947191,851704152,33006272,1979557864,3955490308,3942887671,4274490077,83371208,2327903752,2728168,41141562,3314215050,167801504,1975880384,1959213580,3908602373,3224509238,1959209667,1352683771,1370112,1492626152,4051028222,7512259,1923272950,3284152832,1444842323,1923108864,1958742528,256003,2697157464,3275358296,3142783093,134086746,973089184,2281861895,1352686343,3905456640,275906959,844160116,4247316672,3874014206,3422443521,28820478,2689852395,3342467113,11996021,973102496,4261443011,3905420995,1398472713,840609256,2965593024,1959213569,3956276740,3422442260,698355316,3908602368,74841296,1457424222,445179995,973101216,2685040067,3372089434,1520567156,21161984,4239321171,3288207733,99090871,3733413378,33286230,1541860187,840586728,2447950784,2685105660,3275358299,3288204404,698413291,2700642816,3364487248,438495313,1958742617,1958820364,3905420808,3224508970,1959788227,3907382260,28770452,1394219496,3892334752,4267377069,2728135,3342516478,1105784181,3081074172,3955490305,1879492322,149618688,3894011368,259129674,1946173672,3908168467,1005066710,3892802305,74711089,3224564203,2730504899,149618800,3894001128,259195170,1946167016,3908168683,333978030,3892802049,3698589719,48820715,2345921280,3892336158,3430283972,2531852727,1444842490,4208977920,698400373,3925379584,3422485146,3253208436,4277630203,2689713091,3342467162,1743264370,1501209,1118501515,1457424222,2271137790,74733278,3756771326,3221930841,548405877,4581571,4220184656,576198004,1022457024,2699916320,3241803856,3247105652,1489223714,698401785,1959213568,3905420825,4266852548,12314831,2697461339,3237871657,3950364474,1352716286,11003904,3897643971,1348010148,2598945162,3364509696,4261423520,986185408,2330424775,1405311937,704666784,1949266627,1528728354,3733413376,3280622422,2684378018,1554120797,4200261632,3733413467,1528727894,3075693312,419031041,3909202011,512490246,3422421078,2884109172,4194232344,3284926043,4218564668,309475900,4084351292,175266620,3950141756,41057084,3223503865,28791747,2315266464,1709724136,4282145048,3355314292,4051029502,1398522715,2766668215,3921894168,1240012867,2662936,54992523,3273836298,3666329854,334227572,1946285755,1134361057,3906106857,57989500,1540977385,55121545,1926461672,3661424899,1128520075,1128470411,3906635603,2321231438,1946762247,3894456325,3169383575,33012712,3907561960,512490335,3422421078,3422423412,904398196,4277630202,401664195,1020371177,3909317642,2337535083,2315577630,1539508935,141888176,3893211216,3277386839,2968802024,4098746381,1271073456,1977073384,2414396161,1538862326,3366998327,3224503019,2315451042,3904097551,57931721,852508649,2733148864,2319646862,1915632647,1007514690,1006924602,3892671280,863172523,3042044042,9353983,3321790476,1118501515,1007127107,1006924602,3907875632,3899914123,3832819260,658294154,4125688690,2393004495,1007127040,3122557734,3058841603,1948597250,1019674244,3271652644,557631230,146209140,4084474684,616663640,3067120255,532370176,2329543427,2320194359,50045638,2698449640,3372090169,2062091125,3909318657,126484496,58009644,738250217,3909317939,3224502470,1392720290,168054176,72000192,512433780,2126119804,2312766211,2265205534,771221978,168053408,841249984,72000192,56237707,72031881,56106635,3895319785,851705604,2331019968,2271107536,1539528414,1457424222,946518610,3883194939,991550138,1232362202,1457424222,4221587795,2699594242,3305242766,3364536574,1090565457,512442689,55771996,3897776601,2304453657,2332253214,1511950809,130435843,1977236224,931683064,394877507,31320131,1531107975,1116137667,113641707,3909092175,1088948856,3137828322,512294918,3277522083,4196305747,3733413378,1391495766,9353809,179106443,2268951744,3489793242,3905456856,3247109059,2319650698,4266738479,1408595400,1342213792,686348935,512317655,73072821,1507381250,1261406283,3372093320,512488821,149618869,852953832,9347776,168058016,185103552,3909318098,1498021983,2663679576,2271140487,2270385886,2327903962,1007127280,1015575596,1007121449,3909317725,2632502848,1377733077,512318211,11666170,1393027922,1355056799,512476294,2951283546,49979436,57982986,1489903849,2342438022,3909318091,120204117,2565407605,637440,2697861609,126354171,3067120195,3297138688,3909318046,260571338,3895429187,2319646931,4076202184,512312131,260571953,49979459,3247100112,1352601458,872701088,3049818635,1939757056,1100962052,2668595358,797459280,712697923,3372129880,1352653429,3398102666,3657685639,3488154483,4074563826,56368777,509515,4168473147,2319564850,824085488,2266466819,64685018,1272612825,1125615947,1922979907,2330495558,1124567752,395008950,2271101763,995120862,3909317338,501808975,1490682666,3414935806,4221625205,63671042,1912876251,182125320,51082432,2059406043,190723,56219907,2346354649,3271774750,1539316473,1124567747,2315302225,1507394504,2672972227,9353808,2326590091,2345008872,1128443122,3455977352,2656630133,3905116506,1793645658,4079020073,2346354491,3942949662,54173706,292864010,1406830426,983744562,2629893635,170887762,3909318125,2336478559,2317675295,45175765,1011025802,3909317980,540803485,3254650485,3967143422,2968160859,30861404,854622952,2328922816,30075120,126546058,1965112387,24111363,1383342908,58009148,4261503209,3909318093,725352750,3648260272,1124567627,1433677372,58023740,1006712809,983331932,1018590471,1008235556,2326689066,37503941,126485618,548414524,3455978101,851362558,1125123264,3322069758,3271487626,3455975601,126509428,1949187139,1948466206,1965833453,214338083,3958409792,1007127265,1949216803,4284868867,4265804209,1959657153,1124567606,4084474684,1005894226,2331478610,1952333011,121291521,977533813,1140225287,4050978618,751143491,1525314052,4276652634,65749958,2321209991,3271445446,477431844,3314207486,343195658,757860234,4265346676,145754741,3322020868,3456037002,1702141275,48779857,1364810459,2330626643,1019282117,3909317145,3330987043,1558741004,3933726779,3639102299,292878802,1006844578,1007121467,3909317676,3303590760,3666303442,1385976667,3307865994,2315302467,52399056,180718298,3909317824,116129453,3892345832,2640047911,1491665780,3892540414,2271145959,484988638,65625068,1575535576,2328755712,82330375,2982865903,2969955072,1476520705,1172884990,1956469504,1860719056,662694106,2337493337,2315559710,2315301353,3314176197,57982986,3907822056,512485860,173540515,3909318080,120258398,548464778,3456026110,1340670837,4004636927,2320561387,2965375686,3892540459,3277385379,53812873,3907513576,3666334223,2667603688,1151311428,50886046,2313391065,2332247326,1392520734,53812875,686510675,2313749364,3906635722,1735721023,512353163,378209093,378077230,1128465498,1128470411,512302987,3666280494,1406782696,1529316584,2981693812,1374259712,2345762281,2298763806,1526738462,1877563737,310225,2319703043,2193179399,1975597568,1227015,4008433923,973124025,3271652545,112793401,66614272,3134974937,803799070,121301194,3513641035,1927828852,1827165145,3896341725,2347250442,2736688104,394937092,2335672899,540847346,2286029173,394808119,3893362251,1264314588,1959869160,1950039074,4027115525,753421100,3895242961,3136023983,2833785520,3904563437,2699567792,3906464749,2347363943,1403571670,2280190602,1007252481,3893326906,4151902590,844879498,3455889600,3330982827,3372139050,91423292,1642704077,1912945865,3378178307,2320585305,3135802056,2271100572,2320717534,1918974983,1937456134,1361062914,4069255306,1111731246,1968817466,1976172053,787647458,2025851564,452867,173693787,3221930944,4069256056,3221924910,2040414879,1540197109,787647315,1975519916,3372149174,1145198923,1380144127,1347223118,1140666708,4231091009,2438494976,3176703832,1403637080,3297156946,3133441616,3657629742,120258480,3498754050,11971277,54440379,394931930,931802691,2663679576,12048522,2318326275,2318287639,1524270903,1457424222,18371,0,0,0,0,0,3892314112,3897808913,126544268,1333051402,1125616195,3666493322,3224555658,3892772770,2258632411,3297136836,3053777081,4274191883,2320331978,1914715143,1949187110,2868480808,3472769857,2253973877,2258607812,3297136836,4037079178,1958804996,3297138694,3921894302,3947087912,2718019786,3330934527,4017359676,3950117692,548465780,1101724043,3941322494,4186644656,3472769450,3136026229,4265805706,2062074826,2698545887,3275359455,3924362099,50378695,2346354651,50651166,2686421978,3237872950,126540660,3581198346,3062355,126540291,91425084,3236551885,126507975,3287924746,3476416587,58008380,3905892072,2271141674,3897775838,58064811,2311560169],250,[3271878942,1360304313,2329353448,1965833223,2447922009,168266472,3909318080,2336475004,604473887,1006744287,2987750473,1951349762,1006940687,2986964050,1950432264,3344230659,2951238235,591146221,3504866165,3737970894,753770984,3221930634,1038680949,3001569479,2321111294,3923627473,2850553987,1007127294,1963242114,3466979417,28476732,1329352052,1228677236,1810380660,1743274477,1676169453,1609060589,1541948909,1474842349,145900781,2028481771,3981240526,3980978261,3980716116,3980453968,3980191829,3942822484,3462260753,1122841064,1307389416,3897237682,602459727,535314925,2320651245,1965243399,3460163587,182335976,3909318080,3738027696,2320192180,3458853072,3320382324,3733413574,2680326742,2253440134,2632471492,3909317886,2321204885,3439934662,3909317599,3109275267,3640852526,11548552,4254198107,1975519827,87465994,57934116,3892528873,359988843,82386569,1929556051,4252100867,1357504717,52750534,834294619,2295988992,2331544071,3911092696,117594884,1526728646,65796547,2680173069,4255115344,2656627149,343167135,741083018,209043466,3905787624,1481829482,1352661406,3224522911,1424490930,3911093247,3258628,2656622851,2149892122,916586764,2677954565,2730498640,126485743,58310666,1476450537,3892540574,3224562519,3925748968,1122551557,1273679357,2999797480,58063232,1946515944,3960530968,2991602732,3892737426,3959016751,3959482376,2998929985,2320539394,2718966978,2656568418,3237892255,838885282,4275955904,2337513048,2315577630,2149866247,350815093,1676170205,73572577,57982986,2332326376,2298697758,2332492830,1392521246,82386571,167823080,3909319104,1307115542,73572549,57982986,1527030504,1654833202,4274579716,190555,2699618283,1979464704,437119235,535423949,807308229,3904899584,1189675011,3897597696,4231790723,921240437,3449706522,3305171436,616799832,73638432,58039896,3905221097,1671490167,73703940,838904808,4243712192,2306869190,3892635934,3221880907,3989681016,2697253865,3221881956,686293876,3341281284,512312131,1525154648,2730504938,1139279158,82813182,57982986,3922459113,3666331076,53419659,3661355655,485005426,2730504938,3957916982,2337428457,3120883998,3657629742,1532626826,1394505155,649744465,173101635,1498989504,4034513150,1532609371,742131594,3840472949,126505419,58008380,3905673960,2271140822,3126023902,4182917934,683271167,81764417,916504555,2025851397,1093188044,3751854130,850324228,2330495680,4231129285,2684356550,3321758943,4017341738,916635698,3918915589,3153547,509515,1539562473,2663679576,2672906835,2253440134,3911093188,3892752388,3821862917,2680417257,2253440134,3666301636,50343611,2265418458,154950362,3404268403,3297138688,3733413534,3840498518,1381192186,82386571,3471313072,3924086271,1532674996,820560729,3926190283,3925927972,512447272,3142780137,512294912,1583023337,3898007175,2320685842,1965833223,3406424075,1543228904,126533682,3555217567,2656578025,1457424222,3280621727,58048522,1405888233,2279737320,2656590298,678711455,1021843176,2282976259,3388883719,2656627829,512318297,3914401001,2656625203,3022475,54992521,3272010075,1946118888,3274762499,3855472107,1392513768,48759221,851663616,1124567232,4185247230,3911093187,3389956,1489230339,3281962118,1979385832,3271223555,57871024,3455718121,3270437350,1979380712,3269912835,57871536,3455713001,3269126631,1979375592,3268602115,57872048,3455707881,3267815912,1978335208,3391088899,1206435890,3913462524,591184626,753446261,3909413082,1405258284,1543176424,3116566410,844180972,4230277568,3117817576,549066395,2317055276,3105352662,3897627800,1374224332,521922802,294304082,4035625010,1364250762,4272285779,1810432883,1965046978,4274454022,1022260686,2316530978,1019382504,1975880236,2331347465,4269926613,4156248946,2332013825,1019644616,1958840866,1393376302,1012619636,2317645066,1019382472,1958840876,9037827,4267042899,1009152603,2316072205,1948269762,2955688981,168784909,973829312,974025926,3892999362,3897753699,1935408687,574378930,540804212,552084853,1008759550,1022850080,1008235564,3439621389,2333111521,2315577630,3893539016,3805150685,1539425257,3137341382,3263824374,125050924,1726480565,3905117152,1352652087,1489578728,1934663582,600107011,57843288,1529070824,1958742723,1124567291,4101361150,3905284953,1621229638,1958804992,3248417027,45240659,1543161576,855391208,6333120,3908836073,3221880870,3237873524,2112422773,2731081409,1364394080,28491826,1543151336,855387880,6333120,4207733083,1392030952,3367626827,2953016666,3897737985,3895256966,1263665195,1976084200,844781829,1944634304,417869031,3666303232,512350467,3666282244,3364481099,636027764,4289747649,3498567875,3692161107,3285878618,2332887993,2264936478,1478396890,1977236227,398181121,46369378,2329447105,2315261127,2901576696,841925930,1991987207,46369377,2329447109,2315261127,841898232,2344681991,4265782010,2969728457,1976434187,3943544252,218872248,3153547,512481927,3661300568,1992011636,46369377,2329447109,2315261127,2901576696,841924906,398151687,46369378,2329447105,2315261127,841898232,2344944135,4265782010,2969728457,1976434187,3943544253,512447417,3347709998,4267426594,3271652544,1688227999,1958742532,3371559171,2328075864,1967143943,3350063107,2315255993,1020365557,2317317354,2630827015,2565342069,3865897159,3615418408,3865372754,3614894124,702963176,2337512793,1946500382,47875,3520660383,3604061918,87891593,87498377,512478091,57935163,50331835,991857114,958302469,1541048069,3955241667,1342418946,1493148904,1392520936,1929586920,41936902,1526879720,3341936835,1409256680,3137541352,175374335,3892472040,3632923163,132645047,2965592861,2320650499,216550352,3893064903,1009575390,3892540460,3263878910,46262355,820577139,1499093960,2345070569,2315597598,2327915203,449284824,1945668293,717238981,450398915,2328046279,2344876536,2315598110,2327980739,449284824,3958934214,512447454,3666281785,87629449,4041786203,2337362943,1577400094,2304171655,1493514014,3806905179,3897709054,3907708266,1994981101,1952013055,3848071251,3847809068,3909317954,1340604512,3897771749,3253207645,39315711,1946131688,4289325059,1927828291,3892540415,1396965295,1510055144,3897643609,1397752027,1776867975,3898104578,4175954135,1230657792,3238708618,3277579125,3897774673,512426053,512296253,512427319,512296251,1515914553,2337522521,1392851230,3906635602,2304507866,2265266462,4291881178,958302555,924748549,3414905093,1543487976,87498377,3085486987,3452132351,30402744,3909039080,250085833,3892540415,1397948200,2281628904,1240579034,96142195,3733413450,1943681878,4246636820,512318214,3585804023,4179528009,3956967174,3733413398,4179528022,1238743814,116858505,512350855,1515915005,4213082451,13887494,99111514,3913373952,3330933280,3637559306,3263885450,3498760400,4078865347,116760582,4078864835,116761094,4078865347,16482566,2164879904,2300575979,3272012574,542163841,116596361,4078865347,16482566,2164879904,2300555499,3272012574,536920961,116596361,2327939779,3523237134,2315711758,3271652040,116590335,2327939779,3523237134,2315711750,3271652040,116592383,3217460419,3348019200,116596363,2315749926,570881302,1427016386,1927991808,3957903876,3284569848,12568204,2345111224,2332488478,116760809,572969206,4128147975,4111344134,650185222,3448440712,2344863374,2682966505,45210251,3540247251,3805480113,2164552606,2300575938,2332488470,4140468949,16798982,128980084,2159069218,4121094354,3540234502,4078305770,61915910,3372402722,3906126000,2970023330,32166658,3272012566,3338684576,1678064390,1946565632,1008497426,3323490820,33576198,87885511,3334668448,16798982,87885511,3334668608,21766,1929657539,1426519567,208929024,3640000804,4161205922,3311266243,1437664036,4137869814,2697197574,3221880917,3976915828,2159748984,17204226,3137565696,3409641792,1258517151,4127902603,4202761336,74580168,3271608250,3526607774,2680763331,3331123435,2394423487,198413255,2339140818,637989662,4120915850,4141910534,1427016400,4129196544,2330468870,184230652,1081363183,3436366034,512487283,2284193523,4077322031,4112943110,3519712006,4142518761,16798982,3800106613,116064259,516737,2883840465,116826364,116604555,1049209587,2615871219,116596363,2284816422,2382820646,2145960902,4246078462,4212538118,722039302,1040644886,116987647,4145479486,3286491654,3483625555,3897803611,3277527335,1899921654,57933824,3271883241,2315266464,3539986640,323049,263454720,1218580685,1009300480,3020780034,1963408464,185383175,6819465,2696840,2312867066,503533598,2382364858,270436826,1295301381,7085705,2304197819,2348838942,2348838414,520122894,3137352424,12124696,3116469760,2351300730,637534863,1284769735,3758408579,2396753137,3779651779,3439441147,108521495,3897334715,1676226271,1290649138,3104199611,4233297930,126397486,1975519811,3280165878,3287277584,788479695,1422591744,1226859880,1344294210,1869836901,543973742,1886220099,1919251573,1935753760,234840937,1936876886,544108393,825110851,1866670128,1769109872,544499815,541934153,1886547779,943272224,917297,1093481778,942502512,1397312561,1375739988,872021,1145130828,1095958562,2245974,1414418243,573308941,827609164,860730,1313821268,1381236749,222709327,1497713408,1129512992,1313162578,808202272,864300,1377718428,2382364858,270438106,171632645,6952584,378063614,525992030,1456446808,167796384,2685498816,3221880938,28576373,11540173,3372089972,1587594078,1958742528,2730504712,61866078,2690078403,3221880938,11826293,3221886669,1583285108,4236268483,2147840571,1014121980,3022475,1977289539,1312078611,976100017,1124889639,3388915966,3224564853,852749147,2346766564,2676698840,512295171,251527275,3905945706,244072708,3773497453,751076944,4128289595,106150883,133617667,3430177023,7020169,7151244,6950654,4266855659,2718397896,548405354,3307123435,2315283230,117382919,3221880939,2692285044,3415008306,7216778,74637114,2133116158,6956680,2289418250,293071195,539897886,589439250,639968279,421015858,337580816,756100886,1364405269,1315749462,788270769,1960852140,3388884489,3224564853,2888696555,3277543774,508037959,474815819,169615184,41092724,307364214,240090963,209126773,471670303,168496141,1381061532,1946631248,1963801677,1862727178,57999104,3892349928,74711596,963968828,578030652,3108931515,4265803784,773617865,4134864698,3649823184,1364126137,3786932014,1444842287,250135296,3893291780,250085438,3775784960,619185131,1499093001,1354997083,4800138,5119626,3019899321,1477496073,1911051203,4293388288,3897803611,146014312,3277525197,2332029928,3284962024,5643915,5643913,1307071388,3281869568,4261435296,2320548808,704653582,4261435150,2315302337,2315274558,2952810270,3439965216,1444317968,4277306880,3033202382,1477496066,367547331,1228835328,1327401472,688818688,2952836352,3439965216,1380997904,4068922251,3405696766,4800138,281871028,1405311066,2315301202,3908274927,112459803,267063501,11620947,4153076618,3019901672,3893415175,1532624924,1173699,2692746,3472804606,28364286,5193354,4825283,1252000747,17229824,646586485,4236247112,1377268743,2148008122,41026300,3828541136,2384388855,72262618,2630048287,3125826131,11796480,3297384397],251,[2150163584,225716476,1963508982,1946265612,3944264205,3944460806,3910775298,1347991482,1575554364,1532647439,2470232989,2503762036,3711714932,3823650420,1958742734,1019805240,3123868426,3807772688,3263287434,3897689683,3895254434,3897804497,260757580,1913649536,1125101826,1599813515,4227904851,763929843,1543205608,3219253699,49020848,104464560,1906442353,3892540416,2431123550,3193160638,179897939,1455816192,149440176,3716829659,2884108471,3894456340,1582947067,2902217046,91537418,3942650856,3893211381,1582947047,4262512259,1540257225,1012318443,2952951053,3671189531,2689647454,121372744,71042164,3224502899,3277373450,3064843603,2315301400,3019917630,2685455618,3221880945,512365429,243925071,11862057,281872820,1543376360,3892818883,158728128,167791776,3003282880,106151536,698353077,2955426816,3036836913,2320715786,3892334110,1448804407,4233168561,2629831340,839021910,2484416,24485214,3388889422,384362613,3330498048,3237894160,41040444,3455987888,2951268213,851663869,3221902272,548406901,5185162,41225532,3109100464,162791425,3271430349,281871028,2328058713,3036694798,1210485248,29685248,3447718772,83656832,3321760114,1913060480,1371930114,208940092,1506632168,3897682058,1081392476,752627176,359935036,181226984,2952950976,3850393984,1374161411,1958559720,3692095523,1949056044,3442534412,1372097113,1958554600,3690784783,3441485868,3948540042,3193301254,2331085401,2315266342,176104645,839546048,181799634,3957749201,687636507,4269804660,2161799940,208798969,4269855723,2161013512,3379759353,3221934474,1048584308,1946615880,1007071580,1951446018,4264080426,1976106697,2160457388,3388874101,45160939,1948843136,2160457225,3254652276,3388869099,1971373558,2294939138,2701142310,243793992,378077256,3241803849,129505908,4956928,1302578310,1327925248,4265273344,1336017780,7268352,3019917984,3272658181,2688570,646591604,1346109512,675022708,2565407604,133988541,1353712757,4102036715,133988354,3439198837,2728528,4728456,4785863,770179072,1405310976,3002915560,691961895,41166848,414601138,5193354,2315255993,3439768769,47632,4800138,281871028,3109228523,243859456,1218445385,3439375360,3720210448,3908618728,2649290634,3905117180,1534393764,1371406513,1212055552,58000896,2327647977,3897644588,1081392084,125054012,1506527720,1498540170,4186592081,4286635402,2148037888,57805051,3020999552,1527827723,1958456296,3148212227,747134553,4266002548,83460289,113687922,3271557199,4290993753,4278209846,1006652214,3893392428,540855166,2321094771,1978159560,3895227579,1009572422,3893589036,272419686,2632516466,3901381052,3143297105,736629108,1340615898,1930443979,2321177065,1498501840,2163313242,243863526,3314155595,270852304,3850420746,3504721927,3504722149,281147109,3447718772,1408109184,12048522,1302466340,1311672320,1328449536,3440096256,4290992912,1006655030,3894441004,3221932794,440163188,646600563,3825860721,423363700,2321173363,3790099152,3900404922,1009572274,3893916716,3221932754,646591348,3761897513,2321165170,3253228272,4284183738,3892340790,1009572238,3893982252,3221932718,41222320,173613232,2716357096,3945624762,3151358211,752446952,1019908584,1509061408,169928064,1372097256,1958380520,3646220303,3396921388,3648200764,1372097113,3850391897,1745783055,28596480,2304381133,2248168982,4274978546,1049252810,45350985,3277525197,3942690896,548425731,1347637660,1492794856,1745783643,1913058816,41221888,3892970677,281870772,3277364569,0,4294967295,4294967295,4294967295,3387464784,1397454075,3331084881,2382364863,922691271,4280680572,637566518,8128199,2351322360,2382396942,42053830,3003150854,1228835459,112896,281872820,12568204,650612224,8259215,2080804646,1522961920,1486707545,3116230851,3909113504,3035166322,6678713,1450569226,3909806602,646598772,3795451945,4185933938,2688774938,3221880945,4185916788,1396142873,3472814474,1049283326,45350985,146018509,1348145357,1018787816,2953081900,3892833024,3895253058,3897608550,1479137338,1951973386,3921971714,2431251986,387258,702031336,3626035395,3375556648,3625510994,3375032364,954778457,1955937465,3624462344,3955241693,3106531333,883097520,882950912,1958742528,3374049328,695405116,448419411,3828503126,4035698897,498401070,1532937046,1062614211,1280722518,1918266198,2153150550,2421590102,3123046742,2315269563,509447,2348130281,3909105438,966790854,4119652608,281871540,1961101904,975079692,1009682432,1058441472,3297400832,3505834238,2348119017,3909106206,1017122458,4116769024,4261428896,4116244928,4261428640,4115720640,4261429408,4115196352,4261429152,4114672064,180913384,1007842496,3025433348,1102795520,2329412352,669604615,28988405,16890114,4194308027,254078190,4192322362,3274836963,4266713482,3956814535,1962871532,3151464986,79233089,3572914176,3906003458,663224947,4277658179,4226315722,4300891,3925139945,552122719,1955937464,3606112264,3955241693,3088181253,1168310192,1168163584,1958742528,3355699422,3614639164,242483624,3372093620,1085538932,3909144808,3142841516,3221880902,2319647092,509447,4103792987,1448431772,12197463,2396687872,2701463582,3288989798,251595124,57999462,2684364776,3221880884,921174900,4562944,57982986,520120808,1482514015,113692573,2701131877,3221946470,4199684212,6620918,3121051135,619446369,113766140,102,1405311739,78926417,173019341,2299294948,2281716254,2298493998,1476411158,838874784,169440452,908495076,2299622400,2281715486,2298493230,2952805654,3515135,3277543770,4635475,1962950528,3893408775,126353425,4161603,1085540213,2281702632,1388534535,3959554490,3372139554,1522829976,649411,3120944056,3948019716,1712753464,1962019328,1694942727,4058775296,3336497347,1915091587,3219673618,1911041237,189946314,1510438354,3925818345,3504912403,1227519,4147436728,1694955249,141950720,4438608,1492039344,3992994490,1978582154,6404615,3993177324,1712752986,1694942720,180551680,1497451866,420501776,1494243674,1494243600,1499082000,1297757200,1158699329,1494243674,1494243600,1494243600,1666866448,1497451866,1499102224,1494243600,1494243600,2853198096,1851437402,2869975387,1499197531,1813010704,1980782940,571496796,2619504066,512316240,394790121,3324887939,1128464391,3326291848,2286092295,130433807,2639813376,2929256899,2160286552,41255162,1489175218,1503577222,1522752346,2210617691,126496451,2344866038,2198137118,2344823747,2198137118,2344825539,2315577630,3271569287,3327219542,2768584454,3204772030,146343232,3802463232,1583307261,3142669251,145818944,1965047680,3388883725,1556018805,88653573,1421742315,88129285,2801535153,3388876661,92993909,158598202,427147274,1963001078,2332330516,2282023198,3137352071,250108404,3955241472,1509866247,4177528040,1405311833,3022475,1960512323,3150142210,1129514323,126486705,1140119016,4134914558,3420991152,3280165876,4131696649,393535751,133583024,2953868576,2148005442,1102055797,1967130614,1531817986,787785192,172165002,3287643584,1970226720,4281230446,1394606093,1886415211,4281230437,12124173,1376684032,3907694597,3823763133,89308158,130418570,1975519744,4081510405,3806969866,1376684286,3953387781,2331953384,2969577774,3907891200,3085565585,2253412606,4098156740,5705354,512477694,2408056041,2867396658,3297138942,2331527657,2969592366,4271106048,1659399600,4272941310,2281726880,4269861127,3297136728,3909092328,1793654401,6536181,58002748,1006953705,3271652128,3897755646,4267441805,4277433536,3909564616,2253915333,6464196,6398147,57982986,2158815465,41286626,1369571762,2730556933,3398042960,2155929984,452264425,2162262217,1947255542,550076419,167796896,2969728192,1976109569,1594291721,41221888,243810481,4290053448,3538446512,3894905597,3304521262,4128011521,58032577,2952802280,3894406143,820510771,2348315390,4127516958,2164273543,300419701,3322245889,348166,1638007216,4259833856,3909158854,1069284794,1161477,365757364,89373635,1392513465,365757108,48825203,1587567361,1975519744,2772402182,3921929845,1637919785,1958804992,2730504715,1621229665,3855476992,82386571,3246070,3907679617,535298107,1407380225,939549115,2332914983,4127516958,2164273543,3271652699,3031165417,4293126399,3297136728,3909092328,652803405,4261906432,3893064897,260635997,4250396867,1404768138,4261459205,260587977,365757364,3338487016,3905093895,260767037,1404764341,3285779205,2666004916,256255,2700940521,19662160,3150119283,126485841,167774150,3271652544,1929382632,1342621191,3221880837,4291029187,3254650762,2298281192,4243580943,57937722,2160312330,3715432511,190544,1404814168,16824581,365757108,1403000178,4241221637,3471312776,17286908,1962526974,2160326657,91555068,1877547186,2871388587,738545824,3921680897,243796115,1525220689,1594279657,2303918080,2332380446,2298695702,2332379926,721880078,1225689547,3897708805,1499135652,6332507,1946599434,3032649218,118869251,3120597480,12124165,4252322048,3908728138,3200450678,2357921107,1621098506,2629831168,1343059281,55988563,3860261081,1482381662,74776892,957579,1958742534,211061518,1959329280,1343654660,3032649219,118869250,2639860338,512428917,3640852528,1478396227,3850430723,3490048080,83656792,414319989,3920279017,3897272939,91599347,3942671520,3253266435,74825738,48955824,1688338608,3454044672,3687695125,4160875513,2342318987,2315560206,2730570435,3347711143,3716867122,1939734322,767755015,48955649,3825910571,2151484792,2333438464,46433246,85417449,192479360,3296976523,501213442,2717941765,2780497062,2148499460,4281523851,3279997824,54068934,3653691520,3906636627,82314986,1579059653,3894456580,3898330907,393523552,684732904,1389996008,742131594,1290274165,3908168625,2301218846,235092766,1348331960,55588607,73283327,991857611,3897803523,1815872782,1279003252,1899759220,1362887284,640074587,640034342,640034342,640034342,640034342,640034342,623257126,606348581,589505316,572662306,539042081,522133536,505290527,488447262,471604253,437984027,421075482,404232473,387389208,370546199,353703190,320082964,303239955,286331410,269488145,252645136,219024910,202181901,185273356,168430091,151587082,117966856,101058311,84215302,67372037,50529027,16908802,257,4294901760,4278124287,4261281277,4227661052,4210752507,4193909498,4177066233,4160223223,4126602998,4109694453,4092851444,4076008179,4059165169,4025544944,4008636399,3991793390,3974950125,3958107115,3924486890,3907578345,3890735080,3873892071,3840271845,3823428836,3806520291,3789677026,4127973601,3673621113,1030805291,3897768564,1939610768,208332803,259576331,1915222659,57908509,1527528936,2199237097,243129082,2200355459,293395194,3120567272,233373658,57908480,1527520744,471853251,3523998699,4144134556,244186,3263292115,3666305074,2635933160,3974693752,485287948,1913181417,2416816137,3338342377,126484487,2298062056,108380935,3901754032,1515778153,2160303451,27198,1394479732,7020229,1526742912,3322246431,27142,1605333737,3988711774,2287669365,3137644342,113643520,3909354235,113710376,1189,2287669443,3137644342,113643520,3909354235,113710352,1189,3990248643,3875458749,3030802267,1885290806,1640981257,3430355332,2051237419,3214202341],252,[1818913110,935134639,1199926534,3316401947,426143783,3071760610,1340109649,309237645,2748872451,3607772528,3436018211,3435973836,32076,0,33024,0,33824,0,34632,0,35450,1073741824,36380,1342177280,37187,603979776,38004,2524971008,38936,3156213760,39742,1797783552,40558,49872896,41493,1136082944,42298,3567587328,43112,2229742080,44049,3860919424,44853,1604923808,45667,466206468,46606,2730241733,1073789233,191576694,3892362334,3340960905,1644216330,2028717484,2055258925,3609638679,2895169112,2256024174,1471531527,1746288394,3986869545,3256602316,344313939,1498505536,430363652,1873131920,537974565,3415156724,2483739214,1060731128,3104628225,2399655734,1733288225,4073311492,2166613065,1870413893,1891035004,3316492331,1290070813,924389942,3759992389,2229229251,1813180790,319526458,118945050,2546891721,1222441024,3183614651,227146608,1989759157,65302,0,82935808,2583986229,612571639,1971536739,2844036557,75662207,2164260864,2202906850,2198958602,2134181108,2150724120,625304878,1682186531,2147495980,2373887174,2051014659,5960464,1316134912,2328,3906250000,3892314112,1525878,199491584,596,1000000000,0,390625,2524971008,152,256000000,0,2685354560,655360390,3894874112,167797763,256,4287660032,4294967295,4294934527,4294967295,1006632959,125909162,1952024700,1999017952,2048794052,2086883422,2121661978,2150724120,2164260864,517470981,2569430406,590633095,2774393223,1225776006,3017212547,33117,1644462464,1350468405,2038320164,8366761,193003520,2205044292,4252902137,2663580483,294,858927408,926299444,1111570744,1178944579,3148495802,1927840056,78028810,1014204476,1265788988,77805311,77936383,2316329192,2177138914,4132447092,2147788550,839926760,300345572,1348098904,3137644776,2380816919,3526581010,854186634,79987466,77932160,3909317760,3828488337,78063240,3205626345,865076387,3349937344,3280011269,1964552168,2766072067,3349937347,3280011269,3450608361,2771812537,914391044,3917481137,3133997962,1525275015,2277231876,71821785,870890701,85715225,2984892807,2310917381,3909395230,3201108075,3498809426,1510534888,2277494211,163047897,3649552589,2165173737,1971323131,3905015059,3526559955,3901784251,1273496581,138799386,55827447,1476686042,3439434217,146139330,2738290522,2771844868,145352708,3941161563,1388546819,1918561015,3923282693,3284992374,143779923,2738290522,2771844868,142993412,1391024731,1977289481,2805368844,4211525124,770245634,2736687377,47108,2449778083,58310667,201326522,3339090395,4278494470,2738812927,3923282692,3649503530,2266552296,3897803737,2203785797,2344813763,2332336918,3271861518,434656156,3280165658,3905133828,512343723,1743324323,3198281738,77799049,3440010729,2333576132,3909091999,4284351309,4278494006,4278494518,2277887462,413198553,3905149319,57939812,3282277353,3454589575,3049271808,3150368152,3364488358,11874184,3492776003,1942474192,18933763,3649758602,3893375977,861142674,2736687579,2306979588,3322193182,67304198,1528038632,50005702,3247162116,1939006199,3576031491,78363587,3915691962,2881159174,1689893380,77838930,1914107880,77576707,852331203,2265508845,50045146,4241001368,4220252811,3599475955,3905150859,4052469814,738065291,2767405514,3482049163,2630089793,3905133897,58005180,3450006505,3909318856,2745243267,1958742788,2030153734,3288313858,3674980403,1539568501,3633027267,50005702,2736687362,113689348,3271820027,3925853416,3385720807,3051969115,103147523,199842395,309516,2633992425,2638419850,1127713436,2638417803,3281863580,120109907,1528170216,1361491641,855619048,2731199936,3032154929,537380356,3326281482,1793667079,2697710859,166397093,3857239245,4127749143,450941136,3275584704,914410957,864027815,2346579675,2344754115,449022672,3284699841,2014708712,3905867258,58201551,3893941737,3488094210,402450712,3257648011,124784244,3224504184,2026094846,3222993401,1977236419,3923456773,3263889446,77799049,3555253003,2425393401,113706617,4294902949,12238859,3120789760,1056440319,3666543779,77799049,3778719171,38146420,2562784772,4114345987,3599495029,986855913,1963129606,1965832937,3498723045,2382772908,33846272,182250434,2551215296,9420689,1955702515,2330985222,2345200578,2344836054,1261341683,3203136516,780923787,3925607260,984416269,1175549153,4026767532,1005585325,2347726318,3545491934,50005562,742058357,2890327413,9307706,3221938037,2442661492,4076900287,74748326,3505123331,2345700269,3540380126,3273005288,168076705,2163569892,2147788086,11589581,2718211746,2996831402,1958742532,77963746,3631539210,78716555,77926016,2970517632,3431628804,2812464938,1931637764,4140008978,78095065,78003848,1877496144,2153273621,1601387001,568916051,78094357,3150131803,2864579742,309508,511245560,1124536749,1945756227,78035730,880019454,79252299,1260376320,3925533259,430772713,3796058887,4128928761,3103785367,1263206404,4209121271,4278191289,1124496647,1962467907,217377224,2685242857,2149844135,77932160,2768636031,512344836,378078373,2713912483,3825861797,914419828,176161957,2716824831,3825861797,3375620212,77805195,2315560866,1942956748,2262431245,2787019231,2480899588,3767195271,3030180658,180619904,2330211036,1959332860,435782470,2308772466,2315559734,621061926,3289022591,3271861666,1913190784,50719004,854821520,149520603,1948239094,550273232,3430992875,3942900256,3687905294,3704675025,1964033270,2650006253,3425314169,4061913482,3273315979,796121226,78059254,3539457270,3305034742,1967268213,1975778846,50785050,1943540438,2785476108,3490280452,3504001499,287631836,3909921257,635964520,2980102931,78094852,4128024553,4278494726,116846708,1962869938,2971569125,4109625348,78716553,4161053883,3138626024,3908568240,922686362,1592263846,2785447701,4241668,1359539025,78298104,2333308904,149718012,3187863427,79234224,2784230656,3104078014,2864381956,2919036932,1128466201,276036066,2332034233,78299124,2342908924,82573542,4178101379,3892616891,3797488440,2768697014,158629892,77989631,132712821,77511436,3910344680,2498236465,2282190098,3909396254,4278848512,2062091125,4099401746,3526621835,4086038154,549052298,780883200,2778727587,3957819908,3620861957,1465308881,4028366123,1583285363,3296920811,3522557956,3805532626,2044398564,2785476106,1560835332,3507201513,2329137618,2329316066,1574931187,319819241,1364677625,3897569324,2555908688,512433785,4219536547,426970317,3822177163,3640910801,3624133585,512297848,1223361699,3943199312,619204659,3340036866,293894,2114373412,3147068420,2213020798,3893786899,4284092988,4278494006,3892618550,1515913867,3959278824,31975443,3893502952,3898217198,3672638071,4243515393,3277545305,3224558029,3439331817,3321999578,134413062,78120646,632602113,2348757846,4160195535,2263371985,3221903377,113640821,2315387643,1965440007,2953308419,1956392252,1948990469,4226304769,3892737016,4125753149,1638120959,4069249587,8796718,2164945920,1952554237,4025044260,2632811007,786813281,1781573375,1784638027,1785162335,1785948781,1782606400,2632499250,4319232,1090530793,1374222197,1370454289,1223186259,1499160321,3909067753,3782538124,1140841449,199875563,12380160,838862313,11987136,3893196189,568857389,1392867857,1527967208,4101433795,72681158,2760501503,3823752331,1979648520,283699205,2795553785,1975519748,4140009992,283437264,3840459769,343039487,2337476843,4292470815,141712731,2780780371,3277164548,19710206,4291098307,57991818,2317405312,4243450326,1048616720,1963459323,149528068,1465097728,1593859304,2348168027,4161071318,758911858,3606512757,725353963,3905094004,24311794,3438969283,3120919052,4025188351,702544,2153439991,4130484458,3756773379,1465057548,484968309,2416306944,4647056,4130560863,3186153099,3905111027,4185395288,1956409321,273606705,58021499,3449584617,3892672975,1223360575,4221699248,2770242050,2803795972,2736163588,2720434692,1087143940,3917532032,501747157,1965388560,2622155011,58314957,2952793832,50045448,2678308915,77701892,2337690307,3892618006,1516109955,267577539,512427385,3452109987,3909318097,2795543576,1922055172,3909317681,2778766342,2025851396,2617043203,3137339578,2330492928,114026747,3121729000,2159738880,283961488,3756589940,2147531675,2778738155,2629831172,2133067129,3120866722,12255232,4217890944,1006937760,2634446224,3085556600,115861659,2040388235,2312894210,3322192670,33749766,853226435,78102244,4294935750,312976,91869707,80141047,2329840256,3336014578,67304198,3439873001,78029014,175423498,168080032,3909383616,2344816376,3892621598,922743002,512296102,1458046129,2750450449,2025522342,78816004,2332339133,1958742784,48940,9162635,2337481719,2178876382,50632643,1107391239,24363267,2332526914,4286798794,1191474182,2346445639,2679854017,1526761732,1946615427,3947251204,77446846,506365,3787459244,2147841275,537173518,168076704,2785447872,3138353156,79234206,1125634304,3925533251,117312537,4151641254,3892829673,74714739,58064650,3893256425,244052026,3979478181,2315559841,1381061629,3807858769,4149791371,1942488035,3666559489,3807860826,24365059,1524237122,65205848,3507319768,4275687899,1963238918,126937347,158990090,77989630,2213087093,3520188679,2329250515,2329905907,200075745,145773507,296747634,3364546698,1223203921,1958742530,2634840322,192630873,2035814404,2634672922,69659481,259610631,200730704,48269912,35028705,34401256,986054341,1912845800,4276652556,3942822085,3049587204,4274585091,2622512072,1307101490,805815808,3896705397,2152399080,4201918527,1949187968,1486701313,1352412020,3020799976,3020061509,1126664260,130456920,3322247467,3640012039,3304992692,4201843244,2252552708,1124567492,509507,3032209799,3456025348,512300665,130417490,130433838,1975909936,3375580152,3455982315,130419829,1377732910,3375579907,3388869355,130418293,61948716,75566729,3171267779,3655885301,2525703935,1162149888,77805195,3237883824,4201902635,126415363,2738260291,1976368644,4290177245,3271559110,3187868089,116064262,3187934393,3015639044,1958476804,2736163682,3330954756,3771982898,3610173574,2330121130,4000665293,3137340870,4267246771,809468105,3796042613,3924345848,1366784780,77577811,3104091071,4093378564,58058917,78756691,1527643624,3204754366,79234207,2784230400,3471311732,2785970700,3102310404,3908622838,1499136858,2959189694,4281264137,1345302608,1354825304,1929417960,10742007,1963715416,822593033,805815875,126354155,3372111939,3193034613,2747204767,178436,1504048124,1364404715,3893303528,1532625777,1947048424,2770241803,2736163076,208922628,3001549232,2770241795,2736163076,2958776580,1642904067,1358874600,1592283731,800087309,3237894224,236447824,53409651,771752086,171538,3896853829,2270694712,126376917,3372111939,1111674485,78965387,1375646697,506198,4161052607,413937404,4192356101,1371756894,3204450233,4244112543,84978734,1509548615,860967875,45832191,78028894,3221935918,2556365940,2337798187,4013091024,1723590891,210298976,1930243560,199682054,3898036063,527567792,3898636987,1491602574,153901308],253,[2146876240,3893128680,125177175,1477163496,1481687294,3221904217,1532582083,3150168074,797574324,646586545,3304457347,973960224,1965732329,80016903,3918135925,3219656584,3174200562,976118181,1946157190,2633859337,1294365793,3984716011,3855704476,1638334254,1970304368,2037414256,2037414256,2037413232,1013988464,130435952,2200341040,281343492,3326805108,3304465415,1258648836,3979489160,3955231427,805815814,1976106563,2313733112,805816061,1976106563,3032204277,537380356,180480083,175742043,1395460038,1527573736,3326279948,3281858567,3723024589,1124627967,3137341382,3905094836,309922504,856096953,75736000,75566729,3925696232,2028601137,176285948,1625883513,3271652767,3489965728,113660136,3493856422,3137644054,166200491,309517,221767761,78321291,78454411,1526184936,4132169819,77991678,3792335961,3221510371,77989376,170912195,1462091455,3322194111,753402117,3909317898,125432118,175505162,168006633,3909318143,3674868237,1048585849,1922630822,2666391811,922702674,922682531,854066341,3898235649,1038617434,1952078603,2664556803,168076704,3205069248,609710532,77963903,3414184531,922721407,922682533,48759971,3898300929,477432618,3526579026,3901751483,1515916062,1520242297,2419911515,12309043,4145211777,1393457565,19916882,3320365706,3495647746,2735116248,2768670468,645963524,2659124389,2965308531,1381193597,1510020584,4211337307,1408271849,16771154,78780041,77792967,113704960,2164262053,78786257,1532626803,3739767379,2986801146,1962934020,3898300949,2380794913,4207667210,384326490,176351244,1532679915,2785970883,3102310404,3656792435,77904796,100234,231304,211599370,25659520,42452480,2627581952,585630585,3907858944,2040332306,2549763,77465286,57908480,3271671273,3908588369,1499138426,1405351650,2198118331,74645807,4159390531,3142828891,134087839,3947037557,2328058873,2147788302,1098094825,2342312438,2332336918,168076574,512269531,113640615,2157446310,2627567819,3934455417,14385153,3372936498,3956278900,4209171153,91856797,4261573954,91463107,2850677810,175742465,3556168439,2147598979,2982346963,2785946264,2867591172,2114479848,47697,3900768443,158665150,77797001,77928073,78028995,1352171564,77989574,186378368,3898701499,1532625432,3893039336,2277181820,34269281,2447924058,4276640501,4175030282,451435354,2150743028,3916568762,4108974493,2489117084,1356891807,48955824,1436729394,3297138692,47774,72556169,3924296564,991857091,2477582339,3817592693,72562315,3447011129,44534354,2203209728,2281047235,2021720063,178497,3220409340,2784167075,4132656731,4278473990,1455296373,82805508,4076864185,1958752933,4031506435,77839967,4227859129,2338235891,42765076,80118528,4031375446,3280152555,1125092100,344677955,72681206,2332456447,3942929942,1892745988,1377077557,1128470411,2783466328,710499313,4045400261,378080116,3515547694,2095698823,2313391002,2332247326,2147695390,158673983,3908457960,2481585986,2594761107,1465275217,3141120594,2780759198,78036484,3109231083,3522691076,3796058903,133585914,4264129856,4264195084,4129715402,561577733,746643573,2149217800,360057066,3104089278,4093444103,2653323428,3203080196,3944746880,1583307474,58087771,3909383401,1049233088,79234214,2027620864,2148627745,393349359,4069187210,3828536458,192211938,3520385272,4275294418,3923670479,1049101985,2213086374,3944795140,2789116148,75032836,190547,770229083,67812096,3897756907,3277520898,3137347560,1048577123,2013332648,3323098375,33859590,2964292072,2945050637,2229799600,184337327,1644412671,116787828,2038432935,1644936707,1913027560,77577992,3942646969,80118537,3104089023,2771255298,3905158370,3897755917,3068659585,99113975,3915078144,2318333869,4142438407,776163336,2745370507,46367492,2735180590,3280143525,1499092994,1360819272,2270384210,4152617177,2335069019,2676698647,3941072898,3280165873,3286166276,1944637523,17426691,3898651323,803735254,1527345671,1274749928,3273983942,3037066216,3036836624,96331783,82314100,1064852474,3305296010,75630122,3640001913,855294696,11659465,75577087,4175095890,2164690778,2167865092,180367876,3892737218,971569843,2164690936,2167865092,75603972,2315416297,75604176,41205770,4035627262,3364536834,3224503416,293193866,1397903696,1527097832,4267202906,2331080896,717392609,2042954433,75669527,3338296040,512306695,843252562,717654729,161606085,1376027296,75577087,3257582890,58245378,3908712168,922681383,1374160001,75669752,75564687,1515765770,512427893,1743323986,4274127361,3892541640,1542060559,46500353,4274072258,753437376,83656451,2697497091,1076102275,3364487797,83814595,41027508,3370651828,1962498820,3897578249,1532688651,1352459914,75568779,178058762,4261573842,2649883338,116787572,1963197571,718208514,1357286132,1323893624,1347441408,1476714984,4151690494,3892625384,1347946382,3523216313,78047460,3297382514,1622326168,1810421763,106293253,1857752811,2563017312,1407768579,100198405,293100376,3254671704,1347637329,1476697576,839052123,2698835684,3758228610,3221931262,116787572,1963197571,2328690178,1489580780,75577087,2184087632,4150192132,2128874072,3905194501,2740517183,3221881985,2320174197,1949187079,512312065,2639790930,3288470898,75638410,3825910826,116787572,1963197571,180420098,4132104384,1206507915,4141910528,62144708,3828482677,2298774435,2315550990,78953440,4129294278,57936068,1395328966,1526970088,130418809,3806876461,3326302981,3521654791,75735299,75566731,3018392440,6875645,4164675667,2281927771,130433839,78887680,1379830595,2165738243,75669508,4213957682,1131739179,540805002,708634228,28631668,3897578315,3828542186,4134808892,4067699516,4000588860,376778812,3939821635,3947565171,126372611,1961101912,46433272,173585387,1543206116,3273983942,2315551649,3490100684,2165738472,1393259268,4081444946,3915038770,3330997823,58197292,1391994600,1492507368,1975519824,3372108545,350750328,509688,75564687,3909048809,1836319467,2745240697,762628,2718213536,195100685,653733376,4169884267,2687421066,653681261,3355574283,892974,1797715502,851968610,378220224,3607323246,1881049646,2732135010,2159019175,2298783394,2281704214,2952793374,50045444,16497641,3015376896,2144516,1128466179,4263836386,3942648739,186026913,220105216,2965385984,78029440,78063240,1408995305,77511505,8390529,1929380793,4282598158,3792205063,2785476344,1495257348,116793460,1979647134,2670100485,2780560900,2315749892,603980455,2162458751,663281674,2425406299,4220053904,2162222208,477331652,309674652,1975778973,3687905555,77989630,3918531189,1973287786,4276256771,77839958,1178997897,78069386,2155864961,478732042,4052468574,2332341480,166220238,2148102658,3087312446,132845433,78003840,3892738456,3488088576,75938564,1493455336,76463953,3892610747,2260403253,73263108,3892444648,2260403378,70576132,3137469416,3320317076,2198041345,1474823403,74799364,3438002686,1978198411,3285027588,77932160,8841343,3321931240,2131014150,3907822568,468385924,2778852709,2013036548,180552051,604600768,77963903,1350414520,2684378088,3221882022,109053300,3892446374,2980118625,2197585924,29685404,1084752501,4843676,3137959069,937975858,3964200962,77999744,3892540162,65536256,78029041,192115772,3138378682,2397602633,3137793010,3337118260,91594234,77936256,1673249664,33613922,3908110568,115929543,3960006656,3892517353,2766668717,33614071,3271803880,3915395771,4038590942,2771845059,2738290436,4283885572,922704730,922682531,4192732325,4281133057,300505691,77963758,158973962,1467855039,2778890020,2180808708,968821874,3526580091,3900768443,2730159600,2131344176,2013389288,2067971898,2738290519,2771844868,3017259524,3900792251,1515973733,77805311,77936383,3137446888,837313097,4284111866,4278494006,3892618550,1515913616,3152915432,115958354,266058490,3917564347,2461723685,2147924746,3907791081,222081111,602407797,126496433,1975519811,2680144878,309508,4227858616,3099831283,2745368576,77964036,3883460803,2745241209,1958742788,2030153760,3285775900,2795558093,1958742532,77963280,125091850,91816368,214161654,4221616897,4261952514,4274585288,4058563528,1393324799,3898698427,3991404750,868441066,2147531730,3287002344,3154106344,292708394,3454535915,1614461951,2884110194,4034258944,2771845059,2738290436,4211525124,2632452098,4017154048,115891034,79283185,1125634304,3287999043,3506439353,3796585247,2407580666,3793747970,2965095169,150568964,3109103218,2864381959,2317847044,2281701767,4158800647,126402610,149520473,1948312704,2854619353,4292012292,259311882,3085498449,2281069055,1963982850,3284132537,3204751294,3120301227,92995588,4270098853,3287802623,3104079039,116064258,3104078015,788267012,1135282059,2348343875,3276491743,3942951871,77578218,2881480171,309508,4093435527,3286140837,3143062353,2881422495,309508,1610607080,1371756891,2881181523,77577988,378137579,512296099,2344813733,2332336918,3271861534,1929301992,9038143,1408096232,851675735,2013570310,2027620924,77963536,1064485675,2745251701,3955370756,734235408,1912907014,2334553390,2735090626,1965322756,3955241500,1206632522,2431493096,839355280,2030347526,2770766355,2028210692,167882758,2955733952,669776383,178513,2778783367,2042628612,4260857602,3792074151,3942691067,2953212685,3955231233,184528901,1599732160,2981872475,3981895684,92967056,41486130,3109139435,3303735300,3898736571,2548629234,3322639871,33749766,77792967,784564224,38443,43915822,166249216,2684909822,3221882021,2713915000,3221947555,3905098104,142147060,914412237,3279946917,1023714209,175472640,3897807821,3915115995,519569382,3150120099,870843513,77053696,3087009977,4093378560,75014827,3271862946,1929230312,4272089347,2676692875,3116564482,2783444996,3909317373,45743766,4270909696,2264925369,77577211,1929220072,4269861123,45735815,77840128,1944714119,309758,3892617151,57867636,3120457193,2747203586,4267501828,1929208808,4280150275,3909012969,79297880,3104011008,3210543106,905905317,4209135439,2881471317,309508,971510251,77578237,1929381049,77840134,1476395705,1195836815,3276864226,2046631912,3587031809,3035169650,4095470067,3136946176,3666739296,3532571278,1688387634,3146888452,2595880960,787647238,1124567212,1976434242,118406388,3153728205,3824615488,3274431372,4127195323,108392644,3771925681,2303449227,2332044318,3441617379,4137823408,12040961,842663878,49914560,2717910690,1705116779,2662916,2298678971,3137539102,512295802,512426978,2303393836,1258490398,118405971,3751937200,512316164,3751806176,46202372,3067120320,1524237056,512481927,394790112,1127712835,3104104352,3221880884,3666284148,3666336003,1128470409,4067805438,3640908423,3372110659,2332374690,2332352542,3390231,512350723,1130038500,3153545,54861449,616729178,2328922878,2328046274,449219288,1945668295,2909333763,3956474801,37537674,12256114,717392386,2329447107,2328304326,3909317624,512339274,3666281226,2891401,53419657,512353163,512426821,3666280496,732773864,1397443546,3850430555,3900693691,2565405567,3280988588,1954103840,1713402725,6645106,4037404692,4283615539,3909386550,4294833768,466206467,46606],254,[825242929,540160309,1380994883,1112088622,959520845,3772199224,1260446078,1263476802,437512205,250149770,2330692122,3220896975,4256171264,179315174,1639588070,1288485632,3280601780,4006054638,572580938,3975836868,4007805610,327914,4211080960,1939789236,2068477260,2672195912,3973186993,1085292403,963764432,1990124594,2050127924,95526704,695397586,628155600,4194303928,3683440782,3247227790,3532444046,3968590475,4270585227,3342010227,3958900597,1959201763,2699490305,3636102118,3237932547,2968434866,2959337097,2959206053,2355160577,2396032712,12319960,3759586528,1964514281,3858936020,3859066976,3864309768,3871443523,3862999105,4294672451,1105463156,4058175498,734235380,2957108937,2420368960,574743696,3791877336,61928690,233201894,3632988080,146405514,47616,2968408302,3767200769,1960328172,3796038657,1958805231,2396753633,3875516611,31870977,199645360,3901358256,3864004838,3859984394,3863064641,149180427,24383524,3863130356,3863195659,34847243,2347631024,3104076318,4219543552,376705588,3923777724,309593329,78698634,3375063270,3632725730,3224106731,512338931,12190834,1096452,4281057934,2343196088,92874440,2334527408,1975595781,536918289,3263278067,3280143360,2701033488,512350837,817366035,3167784448,330301696,145760486,162537958,4289733094,3105759718,4281008160,599312270,3364662271,3220693675,521011264,62838924,280596735,1195877632,505412578,254042852,2914050186,3834667494,3523522914,183510208,2749639364,2578449424,99116006,2868609048,4219476084,3909317989,951123439,2425381350,4280574180,117310581,278987794,816861188,704909475,2953891300,68199200,281928746,68199256,175452196,3338682559,3925822213,809238688,3304982644,41230396,3766879156,3454282320,3142604816,3099242496,134265091,4236247472,3070850096,64535224,3372097717,1916699118,2383557636,2382853315,63432923,1347962485,281870516,3949994168,4294967057,4294967295,4294967295,3925868543,4281013657,4076873913,2152749227,3132764412,3120788483,146015194,585943339,3791943108,722070521,3290623177,4192342388,113647135,3120955413,3689414914,2970020630,1978454531,11819223,12193997,735743680,1393003483,2857712987,921175413,2164583190,2164293826,2093482234,113647588,2953118741,3827426816,1975519777,3875516443,69329953,2719053057,737870955,3808355017,1799258366,158597124,2432237502,4195765992,352765684,4272947716,279978470,381240294,3871443456,1795618368,74776836,3639343074,4289727665,113656038,2952791147,4129416958,17066758,4158833269,568786864,1139160752,1088815280,2578464998,278946790,1946231812,306085937,712245508,3809899496,3863588894,2868609121,3366983029,1219518950,3375063526,1625620194,175374396,3189093608,3901811788,723391947,3116404416,521011208,2432627646,2768249023,4225910599,134661919,3354943232,1409291270,1644611583,2163605504,17044030,113707637,4181459056,568786608,3087143098,2968409429,3292195841,3505865845,3959533806,980796474,3120562619,280560149,126365184,3342527632,3963756917,460702522,3806581066,571884,2320105904,28372704,1975794412,3806384134,3188190194,3901815055,3974632767,1048649237,305397874,2682848117,1095680,512436459,3951230995,3540300048,3150679019,3683517440,3280061326,1364329472,12144723,30402592,89672821,3142582288,62455818,4157747968,818577651,3119964754,3898081283,4209120478,3187673017,2318327834,3488105988,1492640276,1946161213,1515805609,179352802,3826564584,1963009032,113647411,3909287957,3901423206,2817002928,3893014548,2203587746,3666609860,329457183,355895296,449767424,2062075274,4177837588,345106576,2395472058,2346396634,1029395207,108374613,3943966952,3263270917,4202758272,3816617472,3029336555,2396728068,330229978,2196243316,12747009,1976368642,278929388,1946231808,606200894,3022120639,3453258240,4291098131,4072284277,3994857475,4276275499,3526622946,378012085,4243062846,3037164040,150333474,1388185459,417894636,3121393684,3337487346,27398,2298486462,2298485302,2298485814,2197848118,914956486,2025783426,3087474176,2880115732,2868969912,606201003,2200037116,427032829,3892314810,163451910,4058550504,3439375379,1006403606,250345333,306086032,108265728,3892314554,278926310,1963009024,4200589571,1235280938,3171994880,3197172131,2335047680,2863661142,535568110,91597372,1174951049,2168800582,1979296253,48101,3959683770,108394664,66586567,4206510915,4171820034,130483829,1128465144,61982347,3272263890,3120566690,2431386113,262705296,243271029,3826253841,3861908577,3872334945,3867193441,4229549472,3224108843,92931464,1299563570,3297428734,3649827445,2864243665,4283808426,1642376179,1642475532,3872334992,2348633953,2899020791,628474930,3802841738,1961108214,2262862358,1977885426,3956574724,1950874848,28987358,3839290112,2965382242,1388575744,651856976,1390216,3355507329,4259843452,4178230808,314960016,3133364824,3957850370,4294306578,737935359,3352858304,3338696710,2047773935,309504,3439375441,3088019987,3526033921,12305038,113020,1935217613,3454394884,2080434712,4294901760,268287,3221323779,805330944,201332736,1377762048,1397839702,4203475595,283698897,185895699,169047250,4262884580,4265964748,4268389580,3909318092,1499136131,526016095,2212530895,2159018946,2983496430,2177028612,3204452066,4194559785,776082571,3993060746,92941898,63079406,522503306,2957658862,1240198656,79856464,1122894768,3895506754,141819976,2160167513,2934669516,3894458186,4034199608,1493559939,3958292874,79856541,1122894256,3894458178,3681878048,3892426570,3547660312,2334057600,2112482324,2199161855,2330723778,3924574944,1569390448,3972606844,3340951690,141870906,3422483938,4278906741,1381123523,539906639,1397051944,541412693,1176641597,1260397105,220813637,4294967050,4294967295,519831551,304474195,175432714,510971134,729074942,2432380139,438209530,471743232,2347987968,1959943,1711753,2348422379,989862430,2332040222,526121735,2684355274,526057495,994264015,1962967582,2149485316,978502400,490227269,1082144298,67637280,4279959810,4294967040,4294967070,2147426303,85398015,353965074,454037257,33491485,117834771,202050056,4294967295,51911196,219021846,4294967295,4280352767,1633705822,1701077858,4294928230,4286906231,4285857651,4285988725,842079231,909456435,809056311,151534893,1919252337,1769306484,1566273647,1935802125,1751606884,996961130,1560240167,1986230394,745369186,721366830,469704959,606289953,707157541,727656744,1464926216,1498698309,1347373397,4279074171,1178882881,1263159367,2116172364,1482325247,1312970307,1061043277,553582847,1448432895,1515804759,1750948955,1818978921,1886350957,959985521,909456429,858927403,1212624432,4283170633,1347419981,4283650641,4227858431,1381061456,102651734,281405692,3830472932,216042081,2254562944,1482811104,4282179722,2062091125,243213314,3900620551,4060088505,1959037614,8775939,3900698497,2258995758,1971366120,284983377,638060403,2162753559,386332160,1702167552,578114108,1509110,4133123336,536876806,116788597,1946353687,1378924557,4127315689,50337542,646247284,1299513368,1582600,1517104,1098207804,3914465464,4236247479,4128928528,388374740,1975008256,1679404,646447284,3932185,2716409716,550827521,3942651942,1937783828,403109392,393480192,91505980,1582720,548469495,520560870,1499094623,4140783707,134223622,2447967093,386332160,863241216,796218172,7472839,1542066740,1391460576,1263620175,1212632396,303108169,370480147,504961047,572596255,639968291,791555372,1009922352,2953147705,18999584,3119155135,2935095306,4018213493,429976200,4127896576,2730951652,2313879577,1640134,1751296,91598578,4108910768,1912749056,1930312716,1992589320,3840475312,1933261824,4284606723,4185081660,3924385723,116785435,1946419223,1967537240,2149485336,438208768,471763200,1896269312,466452480,2968109099,1967471616,403603489,548407296,1048584422,1946615881,64535047,3993003424,1574646,3925439752,926744340,12060277,8513906,1021873851,3145101883,3169446088,1934048256,386332204,1517552384,91557692,3943628984,1966554208,3860901897,3909471520,993853148,1438320242,9562601,3957922747,386332224,544546816,1509110,1008760067,1007383626,739013710,3916872519,767062507,3089296202,501960235,1509110,752907523,3916020550,993790955,11535474,3787130859,784924392,1962884311,4294737951,116791924,1950351383,386332192,259261184,359809340,293034556,233512964,1023303401,1007055457,738359162,471763744,3908274944,507247715,326369306,512296073,1021902876,775630078,2967505623,2964253440,3139495456,1642332288,3875284048,4766049,34406114,1220108774,1274995200,3864587125,4262652257,825242400,808847885,4278848817,1364458495,1431787038,3907816274,484969971,310016,2281831912,2315272230,2147500326,1526006268,526278493,46816089,2163247616,2130722598,661971978,1937034494,4261574,83525632,3439203187,3439225204,2515075957,1959591424,1959591527,1090963047,3133341952,2700739570,78708799,547938514,1084755061,2158495349,3237873268,3237921022,3337488396,15878,4261574,3993242624,36366587,1006650016,2147906752,536887566,3892556995,29032775,23914496,3892315067,2697134438,2965569601,28895302,921429684,4125835952,4132480,3897208960,1303642534,129705195,21030912,3892316603,263913786,20244480,3909095867,243269803,2961178687,25225290,141804980,4261574,3271602185,3398062416,3771859376,1074185978,109379328,829751359,4138624,1057360112,280034048,3255492818,3125939212,1525548018,4130550,3138548864,3756523540,1961101824,3804834568,3956080382,3898211318,2321023199,1912649468,3991977547,2498254480,23497216,3838895312,168092800,8775906,1968045952,4284672259,2028529034,23497216,2315285224,7203041,3892316091,163250322,9234432,3892317115,230359174,8448000,21227614,1961379186,4232016385,2885698238,997507108,695550012,3034632364,3492049412,3034632416,3491525136,1913173216,3504394262,1912911072,3034632206,3490214403,1912780000,136360962,3892330790,3905094008,3905093935,3828482416,3125891779,3375563764,1950394604,2163859980,2147500302,4183317081,3972608963,74809512,3958110690,4122133642,3277478382,2394958622,2016855512,2330710272,3312590624,1359065283,3235039882,1040614489,135492864,3019914758,4289587207,2833834634,7792895,263465330,2332008168,4288276706,2498291082,6482175,1227676,1375712744,167913145,3792073956,3956080382,3281869299,216463953,199645264,78758028,3901407443,3271815204,3321758323,2315576912,2315577028,3859752133,719751809,1357435328,3892315835,3431661426,1222693720,2315642448,4211467972,3238221913,3858935897,518570762,3021238784,4280674312,1912621800,4366346,1614569508,3287810676,4263552,4223924544,45306195,116836659,1971322942,4277658124,2163439051,2147500302,645963001,2642346046,4223884121,4243083294,1041137674,548438016,525869286,1119878351,1397903616,3375564723,3959682234,209027240,243333602,4185915457,3277412955,1967171820,1091469319,4025163776,92859458,702791,3964337890,108269736,3396717566,1515971563,1168163673,2697280000,175374407,3892316347,3297443502,3240804606,3489660867,134358274,4132503338,519767065,1397839442,2332720872,2019330802,1418454737,1959922440,1961101836,1959591438,1959591487,1582914344,1355751258,3375055598],255,[2833287916,3792598400,1976303351,30179569,3959022720,1108193299,3993809134,1418416216,2330739208,4175724768,2160233050,3320531188,2957132368,3904433672,4252321795,3958246576,4294967261,3455122687,972156657,402103538,955422450,3119740147,1324608755,519319538,1962350836,117242866,1397838366,2320521046,3521393348,1039174624,74580000,21358936,3087652584,1049344000,3883991056,4286775344,3020059952,1489014448,4793994,1168441134,4294967280,170731576,471402015,117835522,0,173690993,471402015,117835522,0,170731576,1885603455,117833986,0,257052769,421070361,202050818,0,268437504,1073758208,1347430440,1347430440,690825260,689843754,3003372730,822051584,128976501,3288249522,1235411082,1662421248,1380982272,2315567747,727379651,3319303872,1476424734,2147487929,275907324,4236302595,50950660,133988569,3640853106,2330210896,4265799364,3993471684,4091693635,4281540440,5127817,6424262,536918272,1912929408,133988363,3224568948,146081259,4077330616,1611057067,2684749568,3828482121,378269835,3263365219,2223648260,2733568244,2318270565,854649988,4891620,976513,3834415918,1276021232,571648,503337151,4089459463,816857771,4800128,2952951046,1721953855,1532911360,119495257,2299180239,3892338702,3991601154,6493835,1122944138,1257162122,3237921930,3247063790,3481977838,3788631346,1418326411,1648244816,2332390656,190658,2095628267,63474432,3506458126,3893277945,2730753986,243990626,1352138828,1319363063,3519580928,3893146873,3512467370,1346866147,3959410664,853510796,2346963455,244011095,1583284320,525883483,378261255,3263365219,6725637,242614026,3816874020,4005759519,3909117602,3743743835,4084460496,4025163788,4859530,2315274656,1593860670,1139366238,3633009663,653706378,4281466954,3771843331,3632972635,1912929408,133988360,4041802612,3247133441,1946171368,2330985265,3907201766,4110614642,3439262979,2958620021,7202848,3422485763,2364077941,1228832775,125044480,3120588192,3924689880,3733651175,1048632555,1912733769,1228832792,293012224,64666194,145288272,632355700,1492048050,4286703706,5113347,4035704971,3338588459,3979526910,4861579,3280661763,4859638,520536067,3271621504,1465305738,1583326707,1472891587,3277827059,2161675005,141690108,1946680448,27715843,3905063763,544538516,3867865131,3488146218,737487871,1976368893,548428021,738183912,1976303357,4284148215,3991658122,1912929408,133988360,2833843060,1763330,378270603,3263365219,3961456134,4218749352,27847930,3920493428,3481992743,4052479282,1150019281,3822793552,1277035270,3908755968,3624140495,83656899,4236249202,3909317639,3817472434,3521663312,1509657599,1662421851,113410816,1963043052,2834103035,2348512257,3808144323,4258916840,1912929408,133988360,2145977204,3897643009,4220256160,378231641,3263365219,27847686,3975871349,4218683816,4222272394,3924288071,837352871,76162560,3771909154,3235040906,1358796521,2025552,3290622162,1527548454,1971373046,584381965,650185420,3914859656,3241344375,1347679723,2152868016,3807837922,29554266,328564,1492159264,3233534347,50510082,4800128,3137761798,62456192,3555336711,2331116522,3502844663,4274848456,2331538895,1542247139,2346224323,40495297,3509319819,16892545,3872450256,4800128,3489952518,115855842,3505203743,1961087203,3032713773,2347038288,2330985463,3907201766,4001431680,4018216880,3439206320,3347771765,2164295912,4263489775,3925177803,3733650651,2331897067,3905063896,4169859599,3263287595,3872391425,1048635088,1929773129,3521302533,520505319,3347180842,3822059760,779412432,1354023818,4153140470,3867865131,568910634,1357807872,1357873440,1976368672,3905391345,4018208809,3422429264,3925669237,3733650555,3398101995,2767411030,3330367071,3347128320,1465262080,2767440522,2328059487,2868074442,13074783,3398063904,3277826803,3897557172,4169859460,1937783896,4201561606,739240718,4130020992,918937230,3666608252,3771814431,3771850961,1048637443,520486985,1448553586,4138468534,376799427,2284235946,2199912325,3472773063,1600056437,3924025927,841415675,648849925,536839474,3549094123,3521701841,3059111680,3739790340,4139983616,125075650,639971878,637617458,2284201352,3903586629,3273851077,1954595574,2771527178,841359360,639631749,536913288,25528358,1355252512,3245723390,1195859806,2632562658,14084347,3968069771,2162985736,100682046,443686662,76154038,1157645960,536904842,1157645960,4266706563,3958076878,3872493591,2296906934,13009152,8513568,531689089,4000698110,2432331455,3984787214,4243950344,521535664,1442873530,571735,1583326963,3237879412,1242089347,3992949,3224048244,1053087886,3230400636,74761995,3538649264,3909665923,3816880919,1371769347,3489661881,182505696,2331566808,1388534267,3526054737,2332033465,198779864,3521171923,601394145,3520269273,2347529185,1515805634,2317650627,12124484,2231415488,24443073,3520254201,1944703465,5671154,1352778565,3633009408,653706378,3771793482,4281000145,3277570819,62148688,6438538,1012404429,1012036616,1012364301,1012364298,3025826823,112906,3271430349,4855354,11678581,1964572288,3439506474,4825104,108135484,11994940,146015861,4236906701,721813944,2316875465,4261431830,1477496266,4277818089,3942823110,16417012,3405707124,11727851,4269862891,3957880088,3892491196,3689611894,84214531,67306243,378208436,3263365219,78179334,44596853,2179531637,2333127680,2315281174,3963809476,4266322058,4005857988,3851086914,4791946,2318335786,737645727,1310624707,736874752,721582531,2147725760,67127614,1048586866,1946615881,4129862179,48794354,719096557,1228833023,74778112,3838837937,3565872083,4006670474,317451984,4863734,3565875338,3901415634,4281523338,28632019,1662421842,130188032,1583307502,522133279,4294954759,4294967295,3894344703,329318931,4291763968,3894344703,278987271,4291763968,2260007423,1342177994,3232260836,2280194933,4241920,364829326,1084788985,633209973,11833593,3439348128,21424144,2699428016,806117860,3475268070,512451046,737935379,2396688082,1073789378,2901669419,3223610084,3263238773,3951232000,3202774288,3901815093,4110024976,434690700,34847239,2968387760,13690920,2342869688,2312842184,2341507079,1958820615,3896881159,99287226,3018347440,3895046144,4110024878,12177240,46150176,4225909511,834912266,168636720,825242144,1330776589,822742349,221327416,1380012042,542725193,1128613955,221388875,1380012042,542725193,1128613955,221323339,1061109514,168640319,1642352891,3505840266,3833610276,3871607487,3860901985,3100596256,3230531648,1200284714,3540627714,1372097504,3539993785,1506804712,1962903272,3981961222,1385174251,1728497446,637534976,6889100,1730084646,1354979840,3906077873,1476396008,2416185124,658510887,11996852,3166900429,2013493251,3907947266,3894280220,278921383,1963009024,2310076943,2242929638,362832358,4099991040,2318320415,3897574916,1012465610,3287512330,3894344348,4127850619,112399476,3791659496,1976499966,306086133,41222400,28558315,3791654376,1976237822,3808355061,3281854462,1139193520,3859100600,3871640130,2321671234,3858959584,3804834657,1976303358,3871640314,145802081,1454989798,2969494057,2959206088,2959205960,3324110589,289542,4140379131,33843974,4158784117,3632947428,1642514608,1085821123,1490587136,4294967235,4294967295,4294967295,65535,0,2172518400,2579333541,4286480001,3888381915,4268523263,947715838,940572688,947715708,2084044816,2097086008,269515832,2097052728,31800,406600728,4294901760,3888366567,1006698495,1715618406,3288268860,2579348889,118489027,3435953423,1715239116,406611558,859773054,1882206271,1669325040,1734566783,1520025830,1021830972,3766524250,3774414584,235012224,239009342,1008205826,2115508350,1717966908,6710886,3682533478,454786011,1665007643,946629688,30924,2122186752,1008205950,1014896766,1008271128,404232318,404226072,1014896664,402653208,403504652,805306368,811662944,0,4274045120,603979776,610729830,402653184,4294934076,4278190080,406617855,0,0,2016411648,3158136,1819017264,108,1819017216,1828613374,2083520620,4161566912,3321888816,1714428108,1815609542,3437000248,1616904310,192,806879232,811622496,811597848,806885400,1711276128,1715273532,805306368,808516656,0,805306368,24624,64512,0,805306368,201719856,3227529240,3330015360,3874938574,1882194044,808464432,3430416636,3428857868,3430416636,3423352844,1008468088,218025068,3237740574,3423341816,1614282872,3435985088,3439067256,808458252,3430416432,3435952332,3430416504,403471564,805306480,805306416,805306416,805306416,806903856,811647072,24,4227858684,811597824,806882328,3430416480,3151884,3330015280,3235831518,2016411768,3439119564,1727791308,1717992550,1715208444,1723908288,1828192316,1818650214,1660813560,1651013736,1660813566,1617459304,1715208432,1724825792,3435921470,3435986124,813170892,808464432,203292792,3435924492,1726349432,1718384748,1626341606,1717723232,4005953790,3335978750,3871736006,3335446262,1815609542,1824966342,1727791160,1616936038,3430416624,2027736268,1727791132,1718385766,3430416614,3424415968,3036414072,808464432,3435921528,3435973836,3435921660,2026687692,3334864944,4009678534,3334865094,1815623788,3435921606,808483020,3338535032,1714559116,1618477310,1616928864,1623195768,101455920,410517506,404232216,940572792,50796,0,0,808517376,24,0,3430681720,1625292918,1717992544,220,3435187320,203161720,3435953164,118,3237792888,1815609464,1616965728,240,2093796470,1625356300,1717991020,3145958,808464496,786552,3423341580,1625323724,1819831398,812646630,808464432,120,3607035596,198,3435973880,204,3435973752,120,2087085788,61536,2093796470,7692,1617327836,240,209240188,806355192,875573372,24,3435973836,118,2026687692,48,4278113990,108,1815637190,198,2093796556,63500,1680906492,807141628,808509488,404226076,404226072,819986456,808459312,3698720992,0,268435456,3334892600,519766270,184280808,4261901540,4212552908,2700791583,113639536,2332033136,2332061198,3942673430,378141418,243859564,113639534,3942645872,4294967258,1344207871,4222478418,7079679,117376117,1048772718,1964507246,1816035605,1962979328,2747280141,1822621806,1879492096,251527424,192217152,4138624,3121393904,3454927858,3860901916,525883936,4294967247,2785017855,602507262,603923455,1476338687,1711219695,1106791920,971790840,788027879,15717096,1860628992,1275022334,3354436863,503316719,820531282,3859525883,551850016,3289047178,4289987701,568593131,568771594,551952560,7022216,3474938456,4294967295,3489660927,1397759739,1354256977,2161675776,16777278,113663860,3019964416,2316356879,3893999052,3025207381,1494273283,3033674578,3020999938,168873224,2952951232,3526578720,399369266,633665114,3271434613,3749038650,3800748594,2353234,986119770,1523611118,281871028,1734,1510664960,281871028,1734,1532582655,869211992,2967745234,840420618,3440226532,3330982679,2331618536,4188530882,3018338480,3894456569,4291033518,14703594,791753200,942618672,687800114]],"parms":{"id":"ibm5160.cpu8088","name":"","model":8088,"cycles":0,"multiplier":1,"autoStart":null,"csStart":-1,"csInterval":-1,"csStop":-1}},"ibm5160.chipset":{"0":[77,240,77,240],"1":[12,0,null,0,[[true,[],[],[],[],null,null,null,null,null],[true,[],[],[],[],null,null,null,null,null],[true,[],[],[],[],null,null,null,null,null],[true,[],[],[],[],null,null,null,null,null]]],"2":[[[0,[19,8,null,9],4,188,0,0,7,11]]],"3":[182,[[[0,0],[176,202],[90,200],[0,0],0,6,48,2,2,false,false,true,334010987],[[18,0],[18,0],[18,0],[121,0],0,4,16,1,1,true,true,true,334012186],[[51,5],[51,5],[221,2],[0,0],0,6,48,2,2,true,false,true,334010987]]],"4":[3,72,null,153,128],"parms":{"id":"ibm5160.chipset","name":"","model":"5160","sw1":"01001101","sw2":"11110000","sound":true}},"ibm5160.keyboard":{"0":[true,true],"parms":{"id":"ibm5160.keyboard","name":"","model":""}},"ibm5160.videoEGA":{"0":[false,41,null,249,3599,[97,80,82,15,25,6,25,25,2,13,11,12,0,0,0,0,null,null],null,5713344],"1":[false,0,null,null,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],null,0],"2":[4,3,6],"3":[true,0,48,0,2571,[112,79,89,45,94,6,4,17,0,1,0,1,0,0,0,0,224,35,199,40,0,223,239,194,255],[true,32,[0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,1,0,1,0],16,35,2,0,[3,1,1,0,6,35],0,1,8,[0,0,0,0,0,0,13,0,255],0,131072,[17,1792,1,8259328,1,10815232,1,8455936,1,10028800,1,8259328,11,1792,1,8259328,1,14354176,1,16713472,1,15140608,1,8259328,12,1792,2,16647936,1,8128256,1,1050368,12,1792,1,3671808,1,16647936,1,3671808,12,1792,1,1574656,1,3933952,1,15140608,1,1574656,1,3933952,11,1792,1,1574656,1,8259328,1,16713472,1,1574656,1,3933952,13,1792,1,3933952,1,1574656,11,1792,3,16713472,1,12781312,1,15140608,2,16713472,11,1792,1,3933952,1,4327168,1,6686464,11,1792,2,16713472,1,12781312,1,12388096,1,10028800,2,16713472,10,1792,1,1967872,1,1705728,1,7866112,1,13371136,1,7866112,11,1792,1,3933952,1,6686464,1,3933952,1,8259328,1,1574656,11,1792,2,4130560,1,3147520,1,7341824,1,14681856,11,1792,2,8324864,1,6489856,1,6752000,1,15075072,11,1792,1,1574656,1,14354176,1,15140608,1,14354176,1,1574656,11,1792,1,8390400,1,14681856,1,16647936,1,14681856,1,8390400,11,1792,1,132864,1,919296,1,16647936,1,919296,1,132864,11,1792,1,1574656,1,8259328,1,1574656,1,8259328,1,1574656,11,1792,3,6686464,1,1792,1,6686464,11,1792,1,8324864,1,14354176,1,8062720,2,1771264,11,1792,1,12977920,1,3671808,1,12977920,1,7079680,1,788224,1,8128256,13,1792,2,16647936,11,1792,1,1574656,1,8259328,1,1574656,1,8259328,1,1574656,11,1792,1,1574656,1,8259328,3,1574656,11,1792,3,1574656,1,8259328,1,1574656,12,1792,1,1574656,1,16647936,1,1574656,13,1792,1,3147520,1,16647936,1,3147520,14,1792,1,12584704,1,16647936,13,1792,1,2623232,1,16647936,1,2623232,13,1792,1,3671808,1,8128256,1,16647936,13,1792,1,16647936,1,8128256,1,3671808,28,1792,1,1574656,1,3933952,1,1574656,1,1792,1,1574656,11,1792,1,6686464,1,2361088,14,1792,1,7079680,1,16647936,1,7079680,1,16647936,1,7079680,10,1792,1,1574656,1,8128256,1,12715776,1,8128256,1,8783616,1,8128256,1,1574656,11,1792,1,12715776,1,788224,1,3147520,1,12977920,11,1792,1,3671808,1,7079680,1,7735040,1,13371136,1,7735040,11,1792,1,3147520,1,6293248,14,1792,1,788224,3,3147520,1,788224,11,1792,1,3147520,3,788224,1,3147520,12,1792,1,6686464,1,16713472,1,6686464,13,1792,1,1574656,1,8259328,1,1574656,15,1792,2,1574656,13,1792,1,16647936,17,1792,1,1574656,11,1792,1,132864,1,788224,1,3147520,1,12584704,12,1792,1,8128256,1,13502208,1,16123648,1,12977920,1,8128256,11,1792,1,1574656,1,7866112,2,1574656,1,8259328,11,1792,1,8128256,1,395008,1,1574656,1,6293248,1,16647936,11,1792,1,8128256,1,395008,1,3933952,1,395008,1,8128256,11,1792,1,788224,1,3933952,1,13371136,1,788224,1,1967872,11,1792,1,16647936,1,12584704,1,16516864,1,395008,1,8128256,11,1792,1,3671808,1,12584704,1,16516864,1,12977920,1,8128256,11,1792,1,16647936,1,395008,1,1574656,2,3147520,11,1792,1,8128256,1,12977920,1,8128256,1,12977920,1,8128256,11,1792,1,8128256,1,12977920,1,8259328,1,395008,1,7866112,12,1792,1,1574656,1,1792,1,1574656,13,1792,1,1574656,1,1792,1,1574656,1,3147520,11,1792,1,395008,1,1574656,1,6293248,1,1574656,1,395008,14,1792,1,8259328,12,1792,1,6293248,1,1574656,1,395008,1,1574656,1,6293248,11,1792,1,8128256,1,12977920,1,1574656,1,1792,1,1574656,11,1792,1,8128256,1,12977920,1,14550784,1,14419712,1,8128256,11,1792,1,1050368,1,7079680,3,12977920,11,1792,1,16516864,1,6686464,1,8128256,1,6686464,1,16516864,11,1792,1,3933952,1,12715776,1,12584704,1,12715776,1,3933952,11,1792,1,16254720,3,6686464,1,16254720,11,1792,1,16647936,1,6424320,1,7866112,1,6424320,1,16647936,11,1792,1,16647936,1,6424320,1,7866112,1,6293248,1,15730432,11,1792,1,3933952,1,12715776,1,12584704,1,12977920,1,3802880,11,1792,2,12977920,1,16647936,2,12977920,11,1792,1,3933952,3,1574656,1,3933952,11,1792,1,1967872,2,788224,1,13371136,1,7866112,11,1792,1,15075072,1,7079680,1,7866112,1,7079680,1,15075072,11,1792,1,15730432,2,6293248,1,6424320,1,16647936,11,1792,1,12977920,1,16647936,1,14026496,2,12977920,11,1792,1,12977920,1,16123648,1,14550784,2,12977920,11,1792,1,3671808,3,12977920,1,3671808,11,1792,1,16516864,1,6686464,1,8128256,1,6293248,1,15730432,11,1792,1,8128256,2,12977920,1,14550784,1,788224,11,1792,1,16516864,1,6686464,1,8128256,1,6686464,1,15075072,11,1792,1,8128256,1,12977920,1,3671808,1,12977920,1,8128256,11,1792,1,8259328,1,5900032,2,1574656,1,3933952,11,1792,4,12977920,1,8128256,11,1792,3,12977920,1,7079680,1,1050368,11,1792,2,12977920,1,14026496,1,16647936,1,7079680,11,1792,1,12977920,1,7079680,1,3671808,1,7079680,1,12977920,11,1792,2,6686464,1,3933952,1,1574656,1,3933952,11,1792,1,16647936,1,9176832,1,3147520,1,12715776,1,16647936,11,1792,1,3933952,3,3147520,1,3933952,11,1792,1,8390400,1,14681856,1,3671808,1,919296,1,132864,11,1792,1,3933952,3,788224,1,3933952,10,1792,1,1050368,1,7079680,20,1792,1,16713472,9,1792,1,3147520,1,1574656,17,1792,1,788224,1,13371136,1,7735040,11,1792,1,14681856,1,6293248,1,7079680,1,6686464,1,8128256,13,1792,1,12977920,1,12584704,1,8128256,11,1792,1,1836800,1,788224,1,7079680,1,13371136,1,7735040,13,1792,1,12977920,1,12584704,1,8128256,11,1792,1,3671808,1,6555392,1,15730432,1,6293248,1,15730432,13,1792,2,13371136,1,788224,1,7866112,10,1792,1,14681856,1,6293248,1,7735040,1,6686464,1,15075072,11,1792,1,1574656,1,1792,2,1574656,1,3933952,11,1792,1,395008,1,1792,2,395008,1,6686464,1,3933952,10,1792,1,14681856,1,6293248,2,7079680,1,15075072,11,1792,1,3671808,3,1574656,1,3933952,13,1792,1,16647936,1,14026496,1,12977920,13,1792,3,6686464,13,1792,2,12977920,1,8128256,13,1792,2,6686464,1,6293248,1,15730432,12,1792,2,13371136,1,788224,1,1967872,12,1792,1,7735040,1,6293248,1,15730432,13,1792,1,12977920,1,1836800,1,8128256,11,1792,1,1050368,3,3147520,1,1836800,13,1792,2,13371136,1,7735040,13,1792,2,6686464,1,1574656,13,1792,1,12977920,1,14026496,1,7079680,13,1792,1,7079680,1,3671808,1,12977920,13,1792,2,12977920,1,395008,1,16254720,12,1792,1,13371136,1,3147520,1,16647936,11,1792,1,919296,1,1574656,1,7341824,1,1574656,1,919296,11,1792,2,1574656,1,1792,2,1574656,11,1792,1,7341824,1,1574656,1,919296,1,1574656,1,7341824,11,1792,1,7735040,16,1792,1,1050368,1,7079680,1,12977920,12,1792,1,3933952,1,12715776,1,12584704,1,6686464,1,788224,1,8128256,10,1792,1,13371136,1,1792,2,13371136,1,7735040,11,1792,1,1574656,1,1792,1,12977920,1,12584704,1,8128256,11,1792,1,3671808,1,1792,1,788224,1,13371136,1,7735040,11,1792,1,13371136,1,1792,1,788224,1,13371136,1,7735040,11,1792,1,3147520,1,1792,1,788224,1,13371136,1,7735040,11,1792,1,7079680,1,1792,1,788224,1,13371136,1,7735040,12,1792,1,3933952,1,6293248,1,3933952,1,395008,11,1792,1,3671808,1,1792,1,12977920,1,12584704,1,8128256,11,1792,1,13371136,1,1792,1,12977920,1,12584704,1,8128256,11,1792,1,3147520,1,1792,1,12977920,1,12584704,1,8128256,11,1792,1,6686464,1,1792,2,1574656,1,3933952,11,1792,1,3933952,1,1792,2,1574656,1,3933952,11,1792,1,3147520,1,1792,2,1574656,1,3933952,11,1792,1,12977920,1,3671808,1,12977920,1,16647936,1,12977920,10,1792,3,3671808,1,12977920,1,16647936,1,12977920,10,1792,1,1574656,1,6293248,1,16647936,2,6293248,1,16647936,12,1792,1,13371136,1,3540736,1,14157568,1,7210752,11,1792,1,4065024,1,13371136,1,16647936,1,13371136,1,13502208,11,1792,1,3671808,1,1792,2,12977920,1,8128256,11,1792,1,12977920,1,1792,2,12977920,1,8128256,11,1792,1,3147520,1,1792,2,12977920,1,8128256,11,1792,1,7866112,1,1792,2,13371136,1,7735040,11,1792,1,3147520,1,1792,2,13371136,1,7735040,11,1792,1,12977920,1,1792,2,12977920,1,395008,1,7866112,10,1792,1,12977920,1,7079680,2,12977920,1,3671808,11,1792,4,12977920,1,8128256,11,1792,1,1574656,1,6686464,1,6293248,1,3933952,1,1574656,11,1792,1,7079680,3,6293248,1,16516864,11,1792,1,6686464,1,3933952,2,8259328,1,1574656,11,1792,1,13371136,1,16254720,2,13371136,1,12977920,11,1792,1,1771264,1,1574656,1,8259328,2,1574656,1,7341824,10,1792,1,3147520,1,1792,1,788224,1,13371136,1,7735040,11,1792,1,1574656,1,1792,2,1574656,1,3933952,11,1792,1,3147520,1,1792,2,12977920,1,8128256,11,1792,1,3147520,1,1792,2,13371136,1,7735040,11,1792,1,7735040,1,1792,3,6686464,10,1792,1,7735040,1,1792,1,15075072,1,16647936,1,13502208,1,12977920,11,1792,1,7079680,1,4065024,1,8259328,13,1792,1,7079680,1,3671808,1,8128256,13,1792,1,3147520,1,1792,1,3147520,1,12977920,1,8128256,13,1792,1,16647936,1,12584704,14,1792,1,16647936,1,395008,12,1792,1,12584704,1,13371136,1,3147520,1,14419712,1,788224,1,4065024,10,1792,1,12584704,1,13371136,1,3147520,1,13502208,1,4065024,1,395008,10,1792,1,1574656,1,1792,1,1574656,1,3933952,1,1574656,12,1792,1,3540736,1,14157568,1,3540736,13,1792,1,14157568,1,3540736,1,14157568,11,1792,7,1115904,9,1792,7,5572352,9,1792,7,14485248,9,1792,7,1574656,9,1792,7,1574656,9,1792,7,1574656,9,1792,7,3540736,13,1792,3,3540736,12,1792,4,1574656,9,1792,3,3540736,1,395008,3,3540736,9,1792,7,3540736,12,1792,1,395008,3,3540736,9,1792,3,3540736,1,395008,12,1792,4,3540736,12,1792,4,1574656,16,1792,3,1574656,9,1792,4,1574656,12,1792,4,1574656,16,1792,3,1574656,9,1792,7,1574656,25,1792,7,1574656,9,1792,7,1574656,9,1792,7,3540736,9,1792,3,3540736,1,3147520,15,1792,1,3147520,3,3540736,9,1792,3,3540736,17,1792,3,3540736,9,1792,3,3540736,1,3147520,3,3540736,25,1792,3,3540736,1,1792,3,3540736,9,1792,3,1574656,13,1792,4,3540736,16,1792,3,1574656,13,1792,3,3540736,9,1792,4,3540736,12,1792,4,1574656,15,1792,4,1574656,13,1792,3,3540736,9,1792,7,3540736,9,1792,7,1574656,9,1792,4,1574656,16,1792,3,1574656,9,1792,7,16713472,13,1792,3,16713472,9,1792,7,15730432,9,1792,7,984832,9,1792,4,16713472,15,1792,1,14419712,1,14157568,1,7735040,12,1792,1,8128256,1,16516864,1,12977920,1,12584704,1,4196096,10,1792,1,16647936,1,12977920,3,12584704,12,1792,1,16647936,3,7079680,11,1792,1,16647936,1,6293248,1,1574656,1,6293248,1,16647936,13,1792,2,14157568,1,7341824,12,1792,2,6686464,1,8128256,1,6293248,12,1792,1,7735040,3,1574656,11,1792,1,8259328,1,3933952,1,6686464,1,3933952,1,8259328,11,1792,1,3671808,1,12977920,1,16647936,1,12977920,1,3671808,11,1792,1,3671808,2,12977920,1,7079680,1,15599360,11,1792,1,1967872,1,1574656,1,4065024,1,6686464,1,3933952,13,1792,1,14354176,1,8259328,12,1792,1,198400,1,8259328,1,14354176,1,8259328,1,12584704,11,1792,1,1836800,1,6293248,1,8128256,1,6293248,1,1836800,12,1792,4,12977920,13,1792,1,16647936,14,1792,2,1574656,1,1792,1,16713472,11,1792,1,3147520,2,788224,1,3147520,1,8259328,11,1792,1,788224,2,3147520,1,788224,1,8259328,11,1792,1,919296,1,1771264,4,1574656,9,1792,4,1574656,1,14157568,1,7341824,12,1792,1,1574656,1,8259328,1,1574656,13,1792,1,7735040,1,1792,1,14419712,12,1792,1,7079680,1,3671808,16,1792,1,1574656,29,1792,3,788224,1,7079680,1,1836800,11,1792,3,7079680,13,1792,1,14157568,1,6293248,1,16254720,14,1792,3,8128256,12315,1792,17,0,2,8454144,1,12386304,1,8454144,12,0,2,16711680,1,12779520,1,16711680,12,0,1,7077888,2,16646144,1,3670016,12,0,1,1048576,2,8126464,1,1048576,12,0,1,3932160,2,15138816,1,1572864,12,0,1,3932160,1,16711680,1,8257536,1,1572864,13,0,1,1572864,1,3932160,12,0,2,16711680,1,15138816,1,12779520,3,16711680,11,0,1,6684672,1,4325376,1,3932160,11,0,2,16711680,1,10027008,1,12386304,1,12779520,2,16711680,10,0,1,917504,1,3276800,2,13369344,12,0,2,6684672,2,1572864,12,0,1,3342336,2,3145728,1,15728640,12,0,3,6488064,1,15138816,1,12582912,11,0,1,1572864,2,3932160,1,1572864,12,0,1,12582912,2,16252928,1,12582912,12,0,1,393216,2,4063232,1,393216,12,0,1,3932160,2,1572864,1,3932160,12,0,4,6684672,12,0,2,14352384,2,1769472,11,0,1,8126464,1,6291456,1,7077888,1,12976128,1,3670016,1,12976128,14,0,1,16646144,12,0,1,3932160,2,1572864,1,3932160,1,8257536,11,0,1,3932160,3,1572864,12,0,3,1572864,1,3932160,13,0,2,786432,14,0,2,6291456,14,0,2,12582912,14,0,2,7077888,13,0,1,1048576,1,3670016,1,8126464,1,16646144,12,0,1,16646144,1,8126464,1,3670016,1,1048576,28,0,2,3932160,2,1572864,11,0,2,6684672,15,0,4,7077888,11,0,1,1572864,1,12976128,1,12582912,1,393216,1,12976128,1,1572864,12,0,1,12976128,1,1572864,1,6684672,12,0,1,7077888,1,3670016,1,14417920,1,13369344,11,0,2,3145728,15,0,1,1572864,2,3145728,1,1572864,12,0,1,1572864,2,786432,1,1572864,13,0,2,3932160,14,0,2,1572864,16,0,1,1572864,1,3145728,30,0,1,1572864,12,0,1,393216,1,1572864,1,6291456,1,8388608,12,0,1,12976128,1,14548992,1,15073280,1,12976128,12,0,1,3670016,3,1572864,12,0,1,12976128,1,786432,1,3145728,1,12976128,12,0,1,12976128,2,393216,1,12976128,12,0,1,1835008,1,7077888,1,16646144,1,786432,12,0,2,12582912,1,393216,1,12976128,12,0,1,6291456,1,12582912,2,12976128,12,0,1,12976128,1,786432,2,3145728,12,0,4,12976128,12,0,2,12976128,1,393216,1,786432,12,0,1,1572864,2,0,1,1572864,12,0,1,1572864,2,0,1,1572864,12,0,1,786432,2,3145728,1,786432,13,0,1,8257536,14,0,1,3145728,2,786432,1,3145728,12,0,1,12976128,1,786432,2,1572864,12,0,1,12976128,2,14548992,1,12582912,12,0,1,3670016,1,12976128,1,16646144,1,12976128,12,0,4,6684672,12,0,1,6684672,2,12582912,1,6684672,12,0,1,7077888,2,6684672,1,7077888,12,0,1,6684672,2,6815744,1,6684672,12,0,1,6684672,2,6815744,1,6291456,12,0,1,6684672,1,12582912,1,14548992,1,6684672,12,0,4,12976128,12,0,4,1572864,12,0,3,786432,1,13369344,12,0,1,6684672,2,7077888,1,6684672,12,0,3,6291456,1,6684672,12,0,1,15597568,1,16646144,2,12976128,12,0,1,15073280,1,16646144,1,13500416,1,12976128,12,0,1,7077888,2,12976128,1,7077888,12,0,2,6684672,2,6291456,12,0,2,12976128,1,14024704,1,8126464,1,917504,11,0,2,6684672,1,7077888,1,6684672,12,0,1,12976128,1,6291456,1,786432,1,12976128,12,0,1,8257536,3,1572864,12,0,4,12976128,12,0,3,12976128,1,3670016,12,0,2,12976128,1,14024704,1,8126464,12,0,1,12976128,2,3670016,1,12976128,12,0,2,6684672,2,1572864,12,0,1,12976128,1,1572864,1,6291456,1,12976128,12,0,4,3145728,12,0,1,12582912,1,7340032,1,1835008,1,393216,12,0,4,786432,11,0,1,3670016,1,12976128,30,0,1,3145728,17,0,1,7864320,1,8126464,1,13369344,12,0,1,6291456,1,7864320,2,6684672,13,0,1,8126464,1,12582912,1,12976128,12,0,1,786432,1,3932160,2,13369344,13,0,1,8126464,1,16646144,1,12976128,12,0,1,7077888,3,6291456,13,0,1,7733248,1,13369344,1,8126464,1,13369344,11,0,1,6291456,1,7077888,2,6684672,12,0,1,1572864,1,3670016,2,1572864,12,0,1,393216,1,917504,2,393216,1,6684672,11,0,1,6291456,1,6684672,1,7864320,1,6684672,12,0,4,1572864,13,0,1,15466496,2,14024704,13,0,1,14417920,2,6684672,13,0,1,8126464,2,12976128,13,0,1,14417920,1,6684672,1,8126464,1,6291456,12,0,1,7733248,1,13369344,1,8126464,1,786432,12,0,1,14417920,1,6684672,1,6291456,13,0,1,8126464,1,7340032,1,12976128,12,0,1,3145728,1,16515072,1,3145728,1,3538944,13,0,3,13369344,13,0,2,6684672,1,3932160,13,0,1,12976128,1,14024704,1,16646144,13,0,1,12976128,1,3670016,1,7077888,13,0,2,12976128,1,8257536,1,786432,12,0,1,16646144,1,1572864,1,6684672,12,0,4,1572864,12,0,4,1572864,12,0,4,1572864,12,0,1,14417920,16,0,1,3670016,1,12976128,1,16646144,12,0,1,6684672,1,12582912,1,12713984,1,3932160,1,393216,11,0,4,13369344,11,0,1,786432,1,3145728,1,8126464,1,16646144,1,12976128,11,0,1,1048576,1,7077888,1,7864320,1,8126464,1,13369344,12,0,1,13369344,1,7864320,1,8126464,1,13369344,11,0,1,6291456,1,1572864,1,7864320,1,8126464,1,13369344,11,0,2,3670016,1,7864320,1,8126464,1,13369344,13,0,2,6684672,1,786432,1,3932160,10,0,1,1048576,1,7077888,1,8126464,1,16646144,1,12976128,12,0,1,13369344,1,8126464,1,16646144,1,12976128,11,0,1,6291456,1,1572864,1,8126464,1,16646144,1,12976128,12,0,1,6684672,1,3670016,2,1572864,11,0,1,1572864,1,6684672,1,3670016,2,1572864,11,0,1,6291456,1,1572864,1,3670016,2,1572864,11,0,1,12976128,1,1048576,1,7077888,2,12976128,11,0,1,7077888,1,0,1,7077888,2,12976128,11,0,1,3145728,1,0,1,6684672,1,8126464,1,6684672,13,0,1,7733248,1,8257536,1,14155776,12,0,1,7077888,3,13369344,11,0,1,1048576,1,7077888,1,8126464,2,12976128,12,0,1,12976128,1,8126464,2,12976128,11,0,1,6291456,1,1572864,1,8126464,2,12976128,11,0,1,3145728,4,13369344,11,0,1,6291456,1,1572864,3,13369344,12,0,3,12976128,1,8257536,1,786432,10,0,1,12976128,1,3670016,2,12976128,1,7077888,11,0,1,12976128,1,0,3,12976128,11,0,1,1572864,1,3932160,1,6291456,1,6684672,1,1572864,11,0,1,3670016,1,6553600,1,15728640,1,6291456,1,15073280,12,0,1,6684672,3,1572864,11,0,1,16252928,1,13369344,1,12845056,1,14548992,1,13369344,11,0,1,917504,4,1572864,1,14155776,10,0,1,1572864,1,6291456,1,7864320,1,8126464,1,13369344,11,0,1,786432,1,3145728,1,3670016,2,1572864,11,0,1,1572864,1,6291456,1,8126464,2,12976128,11,0,1,1572864,1,6291456,3,13369344,12,0,2,14417920,2,6684672,11,0,1,14417920,1,12976128,1,16121856,1,14548992,1,12976128,11,0,1,3932160,1,7077888,14,0,1,3670016,1,7077888,15,0,2,3145728,1,6291456,1,12976128,14,0,2,12582912,14,0,2,393216,11,0,1,12582912,1,12976128,1,14155776,1,6291456,1,8781824,1,1572864,10,0,1,12582912,1,12976128,1,14155776,1,6684672,1,10354688,1,393216,11,0,2,1572864,2,3932160,13,0,2,7077888,14,0,2,7077888,12,0,7,4456448,9,0,7,11141120,9,0,7,7798784,9,0,7,1572864,9,0,3,1572864,1,16252928,3,1572864,9,0,2,1572864,2,16252928,3,1572864,9,0,3,3538944,1,16121856,3,3538944,12,0,1,16646144,3,3538944,11,0,2,16252928,3,1572864,9,0,2,3538944,2,16121856,3,3538944,9,0,7,3538944,11,0,1,16646144,1,16121856,3,3538944,9,0,2,3538944,1,16121856,1,16646144,12,0,3,3538944,1,16646144,12,0,2,1572864,2,16252928,15,0,1,16252928,3,1572864,9,0,3,1572864,1,2031616,12,0,3,1572864,1,16711680,15,0,1,16711680,3,1572864,9,0,3,1572864,1,2031616,3,1572864,12,0,1,16711680,12,0,3,1572864,1,16711680,3,1572864,9,0,2,1572864,2,2031616,3,1572864,9,0,3,3538944,1,3604480,3,3538944,9,0,2,3538944,1,3604480,1,4128768,14,0,1,4128768,1,3604480,3,3538944,9,0,2,3538944,1,16187392,1,16711680,14,0,1,16711680,1,16187392,3,3538944,9,0,2,3538944,2,3604480,3,3538944,11,0,2,16711680,12,0,2,3538944,2,16187392,3,3538944,9,0,2,1572864,2,16711680,12,0,3,3538944,1,16711680,14,0,2,16711680,3,1572864,12,0,1,16711680,3,3538944,9,0,3,3538944,1,4128768,12,0,2,1572864,2,2031616,14,0,2,2031616,3,1572864,12,0,1,4128768,3,3538944,9,0,3,3538944,1,16711680,3,3538944,9,0,2,1572864,2,16711680,3,1572864,9,0,3,1572864,1,16252928,15,0,1,2031616,3,1572864,9,0,7,16711680,12,0,4,16711680,9,0,7,15728640,9,0,7,983040,9,0,3,16711680,15,0,1,7733248,1,14155776,1,14417920,13,0,2,12976128,1,16515072,1,12582912,11,0,1,12976128,3,12582912,13,0,3,7077888,12,0,1,12976128,2,3145728,1,12976128,13,0,1,8257536,2,14155776,13,0,2,6684672,1,6291456,1,12582912,12,0,1,14417920,2,1572864,12,0,1,1572864,2,6684672,1,1572864,12,0,1,7077888,2,12976128,1,7077888,12,0,1,7077888,1,12976128,2,7077888,12,0,1,3145728,1,786432,2,6684672,13,0,1,8257536,1,14352384,13,0,1,393216,1,14352384,1,15925248,1,6291456,12,0,1,3145728,2,6291456,1,3145728,12,0,1,8126464,3,12976128,12,0,1,16646144,2,0,1,16646144,12,0,1,1572864,1,8257536,1,1572864,13,0,1,1572864,1,393216,1,1572864,13,0,1,1572864,1,6291456,1,1572864,13,0,1,1769472,5,1572864,9,0,4,1572864,1,14155776,12,0,1,1572864,2,0,1,1572864,13,0,1,14417920,1,7733248,12,0,1,3670016,1,7077888,17,0,1,1572864,15,0,1,1572864,12,0,1,983040,2,786432,1,15466496,1,3932160,11,0,1,14155776,2,7077888,13,0,1,7340032,1,3145728,1,13107200,15,0,3,8126464,12315,0],514,0,255,0,-1,0,-1,0,0,-2139062144],333992568],"parms":{"id":"ibm5160.videoEGA","name":"Enhanced Color Display","model":"ega","mode":7,"screenWidth":640,"screenHeight":350,"memory":131072,"switches":"","scale":false,"charCols":80,"charRows":25,"fontROM":"","screenColor":"black","touchScreen":false}},"ibm5160.com1":{"0":[0,0,48,0,1,3,0,96,48,[]],"parms":{"id":"ibm5160.com1","name":"","adapter":1,"binding":"print"}},"ibm5160.com2":{"0":[0,0,48,0,1,3,0,96,48,[]],"parms":{"id":"ibm5160.com2","name":"","adapter":2,"binding":""}},"ibm5160.mouse":{"0":[false,-1,-1,0,0,false,false,0],"parms":{"id":"ibm5160.mouse","name":"","serial":"com2"}},"ibm5160.fdcNEC":{"0":[0,0,128,[0,0,0,0,0,8,2,42,255],0,0,12,[[0,["Floppy Drive",40,2,9,512,true],0,-1,0,8,9,512,512,102,"PC-DOS 2.00 (Disk 1)","/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"],[192,["Floppy Drive",40,2,9,512,true],0,-1,0,null,null,null,null,102,"PC-DOS 2.00 (Disk 2)","/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json"],[192,["Floppy Drive",40,2,9,512,true],0,-1,0,null,null,null,null,102,null,""],[192,["Floppy Drive",40,2,9,512,true],0,-1,0,null,null,null,null,102,null,""]],[["PC-DOS 2.00 (Disk 1)","/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json",[["/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json",1517270209]]],["PC-DOS 2.00 (Disk 2)","/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json",[["/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json",-1667401150]]]]],"parms":{"id":"ibm5160.fdcNEC","name":"","autoMount":"{A:{name:\"PC-DOS 2.00 (Disk 1)\",path:\"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json\"}, B:{name:\"PC-DOS 2.00 (Disk 2)\",path:\"/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json\"}}"}},"ibm5160.hdcXT":{"0":[12,1,[0,3,0,8,1,0,1,50,2,1,50,0,0,11],0,0,null,3,0,-1,[[0,0,false,[1,50,4,1,50,0,0,11],null,3,4,8,1,null,512,512,[["/disks/pc/fixed/win101/10mb-ega.json",-263389905]]]]],"parms":{"id":"ibm5160.hdcXT","name":"","drives":"[{name:\"10Mb Hard Disk\",path:\"/disks/pc/fixed/win101/10mb-ega.json\",type:3}]"}},"ibm5160.debugger":{"0":[507,1687,27499],"1":[0,0,0],"2":["d state",false,0],"parms":{"id":"ibm5160.debugger","name":"","messages":""}}} \ No newline at end of file diff --git a/configs/pc/machines/README.md b/configs/pc/machines/README.md deleted file mode 100644 index ba6f8de7b..000000000 --- a/configs/pc/machines/README.md +++ /dev/null @@ -1,48 +0,0 @@ -IBM PC Machine Configurations ---- - -Here you'll find sample Machine Configurations for all the IBM PC models that PCjs currently supports: - -* [Model 5150](/configs/pc/machines/5150/) -* [Model 5160](/configs/pc/machines/5160/) -* [Model 5170](/configs/pc/machines/5170/) - -Model 5150 Machine Configurations include: - -* [IBM PC, MDA, 64K](/configs/pc/machines/5150/mda/64kb/) -* [IBM PC, MDA, 64K, Debugger](/configs/pc/machines/5150/mda/64kb/debugger/) -* [IBM PC, CGA, 64K, DONKEY.BAS](/configs/pc/machines/5150/cga/64kb/donkey/) -* [IBM PC, CGA, 64K, DONKEY.BAS, Debugger](/configs/pc/machines/5150/cga/64kb/donkey/debugger/) - -Model 5160 Machine Configurations include: - -* [IBM PC XT, CGA, 256K, 10Mb Drive](/configs/pc/machines/5160/cga/256kb/demo/) -* [IBM PC XT, CGA, 256K, 10Mb Drive, Debugger](/configs/pc/machines/5160/cga/256kb/demo/debugger/) -* [IBM PC XT, CGA, 256K, Windows 1.01](/configs/pc/machines/5160/cga/256kb/win101/) -* [IBM PC XT, CGA, 256K, Windows 1.01, Debugger](/configs/pc/machines/5160/cga/256kb/win101/debugger/) -* [IBM PC XT, CGA, 640K, 10Mb Drive](/configs/pc/machines/5160/cga/640kb/) -* [IBM PC XT, CGA, 640K, 10Mb Drive, Debugger](/configs/pc/machines/5160/cga/640kb/debugger/) -* [IBM PC XT, CGA, 640K, "Multitasking" MS-DOS 4.00](/configs/pc/machines/5160/cga/640kb/dos400m/) -* [IBM PC XT, CGA "Server Array" Demo](/configs/pc/machines/5160/cga/256kb/array/) -* [IBM PC XT, EGA, 256K, 10Mb Drive, Debugger](/configs/pc/machines/5160/ega/256kb/debugger/) -* [IBM PC XT, EGA, 640K, 10Mb Drive, Debugger](/configs/pc/machines/5160/ega/640kb/debugger/) -* [IBM PC XT, EGA, 640K, Windows 1.01](/configs/pc/machines/5160/ega/640kb/win101/) -* [IBM PC XT, EGA "Server Array" Demo](/configs/pc/machines/5160/ega/640kb/array/) - -Model 5170 Machine Configurations include: - -* [IBM PC AT (6Mhz), EGA, 640K, Debugger](/configs/pc/machines/5170/ega/640kb/rev1/) -* [IBM PC AT (6Mhz), EGA, 1152Kb, 20Mb Drive, Debugger](/configs/pc/machines/5170/ega/1152kb/rev1/) -* [IBM PC AT (8Mhz), EGA, 1152Kb, 20Mb Drive, Debugger](/configs/pc/machines/5170/ega/1152kb/rev3/) - -These Machine Configurations also include a "Soft Keyboard": - -* [IBM PC, MDA, 64K](/configs/pc/machines/5150/mda/64kb/softkbd/) -* [IBM PC, CGA, 64K](/configs/pc/machines/5150/cga/64kb/softkbd/) -* [IBM PC, CGA, 384K](/configs/pc/machines/5150/cga/384kb/softkbd/) -* [IBM PC XT, MDA, 64K, 10Mb Drive](/configs/pc/machines/5160/mda/64kb/softkbd/) -* [IBM PC XT, CGA, 256K, 10Mb Drive](/configs/pc/machines/5160/cga/256kb/softkbd/) -* [IBM PC XT, CGA, 256K, Windows 1.01](/configs/pc/machines/5160/cga/256kb/win101/softkbd/) -* [IBM PC XT, CGA, 512K, Windows 1.01](/configs/pc/machines/5160/cga/512kb/win101/softkbd/) - -There are also some pre-built Machine Configurations for selected [IBM PC Disk Sets](/disks/pc/). \ No newline at end of file diff --git a/devices/README.md b/devices/README.md index 5fbd5ab88..64e441e47 100644 --- a/devices/README.md +++ b/devices/README.md @@ -1,3 +1,4 @@ -Device Resource Files +Device Configurations --- -Copies of device resources (principally ROM images) are stored here. \ No newline at end of file + +Browse [IBM PC](/devices/pc/machine/) and [Challenger 1P](/devices/c1p/machine/) machine configurations. diff --git a/devices/c1p/README.md b/devices/c1p/README.md new file mode 100644 index 000000000..ad8f2ce59 --- /dev/null +++ b/devices/c1p/README.md @@ -0,0 +1,7 @@ +Challenger 1P Configurations +--- + +This folder contains Challenger 1P [Machine Configurations](machine/), along with of component configurations, +such as [Control Panels](panel/). + +[Applications](/apps/c1p/) and [Disk Images](/disks/c1p/) are also available. diff --git a/configs/c1p/machines/32kb/machine.xml b/devices/c1p/machine/32kb/machine.xml similarity index 83% rename from configs/c1p/machines/32kb/machine.xml rename to devices/c1p/machine/32kb/machine.xml index 1e127e262..44c212720 100644 --- a/configs/c1p/machines/32kb/machine.xml +++ b/devices/c1p/machine/32kb/machine.xml @@ -17,8 +17,8 @@ - - + + @@ -27,7 +27,7 @@ CTRL-O BREAK - - - + + + diff --git a/configs/c1p/machines/8kb/all/debugger/machine.xml b/devices/c1p/machine/8kb/all/debugger/machine.xml similarity index 85% rename from configs/c1p/machines/8kb/all/debugger/machine.xml rename to devices/c1p/machine/8kb/all/debugger/machine.xml index d74ef386f..4cea114a8 100644 --- a/configs/c1p/machines/8kb/all/debugger/machine.xml +++ b/devices/c1p/machine/8kb/all/debugger/machine.xml @@ -16,8 +16,8 @@ - - + + @@ -26,6 +26,6 @@ CTRL-O BREAK - - + + diff --git a/devices/c1p/machine/8kb/array/README.md b/devices/c1p/machine/8kb/array/README.md new file mode 100644 index 000000000..14606802a --- /dev/null +++ b/devices/c1p/machine/8kb/array/README.md @@ -0,0 +1,12 @@ +Challenger 1P (8Kb) "Server Array" +--- + +[Machine #1](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI1") +[Machine #2](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI2") +[Machine #3](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI3") +[Machine #4](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI4") +[Machine #5](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI5") +[Machine #6](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI6") +[Machine #7](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI7") +[Machine #8](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI8") +[Machine #9](/devices/c1p/machine/8kb/small/ "C1Pjs:OSI9") diff --git a/devices/c1p/machine/8kb/array/machine.xml b/devices/c1p/machine/8kb/array/machine.xml new file mode 100644 index 000000000..00e16d39f --- /dev/null +++ b/devices/c1p/machine/8kb/array/machine.xml @@ -0,0 +1,14 @@ + + + + Challenger 1P (8Kb) "Server Array" + + + + + + + + + + diff --git a/configs/c1p/machines/8kb/embed/machine.xml b/devices/c1p/machine/8kb/embed/machine.xml similarity index 89% rename from configs/c1p/machines/8kb/embed/machine.xml rename to devices/c1p/machine/8kb/embed/machine.xml index 3140d09e9..c7265b54c 100644 --- a/configs/c1p/machines/8kb/embed/machine.xml +++ b/devices/c1p/machine/8kb/embed/machine.xml @@ -13,8 +13,8 @@ - - + +