|
// Copyright 2012 the V8 project authors. All rights reserved. |
|
// Redistribution and use in source and binary forms, with or without |
|
// modification, are permitted provided that the following conditions are |
|
// met: |
|
// |
|
// * Redistributions of source code must retain the above copyright |
|
// notice, this list of conditions and the following disclaimer. |
|
// * Redistributions in binary form must reproduce the above |
|
// copyright notice, this list of conditions and the following |
|
// disclaimer in the documentation and/or other materials provided |
|
// with the distribution. |
|
// * Neither the name of Google Inc. nor the names of its |
|
// contributors may be used to endorse or promote products derived |
|
// from this software without specific prior written permission. |
|
// |
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
|
|
/* |
|
* Copyright (c) 2003-2005 Tom Wu |
|
* All Rights Reserved. |
|
* |
|
* Permission is hereby granted, free of charge, to any person obtaining |
|
* a copy of this software and associated documentation files (the |
|
* "Software"), to deal in the Software without restriction, including |
|
* without limitation the rights to use, copy, modify, merge, publish, |
|
* distribute, sublicense, and/or sell copies of the Software, and to |
|
* permit persons to whom the Software is furnished to do so, subject to |
|
* the following conditions: |
|
* |
|
* The above copyright notice and this permission notice shall be |
|
* included in all copies or substantial portions of the Software. |
|
* |
|
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, |
|
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY |
|
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. |
|
* |
|
* IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, |
|
* INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER |
|
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF |
|
* THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT |
|
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
* |
|
* In addition, the following condition applies: |
|
* |
|
* All redistributions must retain an intact copy of this copyright notice |
|
* and disclaimer. |
|
*/ |
|
|
|
// Copyright 2008 the V8 project authors. All rights reserved. |
|
// Copyright 1996 John Maloney and Mario Wolczko. |
|
|
|
// This program is free software; you can redistribute it and/or modify |
|
// it under the terms of the GNU General Public License as published by |
|
// the Free Software Foundation; either version 2 of the License, or |
|
// (at your option) any later version. |
|
// |
|
// This program is distributed in the hope that it will be useful, |
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
// GNU General Public License for more details. |
|
// |
|
// You should have received a copy of the GNU General Public License |
|
// along with this program; if not, write to the Free Software |
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
|
|
|
|
// This implementation of the DeltaBlue benchmark is derived |
|
// from the Smalltalk implementation by John Maloney and Mario |
|
// Wolczko. Some parts have been translated directly, whereas |
|
// others have been modified more aggresively to make it feel |
|
// more like a JavaScript program. |
|
|
|
|
|
// src/base.js |
|
function Benchmark(name, run2, setup, tearDown) { |
|
this.name = name; |
|
this.run = run2; |
|
this.Setup = setup ? setup : function() { |
|
}; |
|
this.TearDown = tearDown ? tearDown : function() { |
|
}; |
|
} |
|
function BenchmarkResult(benchmark, time) { |
|
this.benchmark = benchmark; |
|
this.time = time; |
|
} |
|
BenchmarkResult.prototype.valueOf = function() { |
|
return this.time; |
|
}; |
|
function BenchmarkSuite(name, reference, benchmarks) { |
|
this.name = name; |
|
this.reference = reference; |
|
this.benchmarks = benchmarks; |
|
BenchmarkSuite.suites.push(this); |
|
} |
|
BenchmarkSuite.suites = []; |
|
BenchmarkSuite.version = "7"; |
|
Math.random = function() { |
|
var seed = 49734321; |
|
return function() { |
|
seed = seed + 2127912214 + (seed << 12) & 4294967295; |
|
seed = (seed ^ 3345072700 ^ seed >>> 19) & 4294967295; |
|
seed = seed + 374761393 + (seed << 5) & 4294967295; |
|
seed = (seed + 3550635116 ^ seed << 9) & 4294967295; |
|
seed = seed + 4251993797 + (seed << 3) & 4294967295; |
|
seed = (seed ^ 3042594569 ^ seed >>> 16) & 4294967295; |
|
return (seed & 268435455) / 268435456; |
|
}; |
|
}(); |
|
BenchmarkSuite.RunSuites = function(runner) { |
|
var continuation = null; |
|
var suites = BenchmarkSuite.suites; |
|
var length = suites.length; |
|
BenchmarkSuite.scores = []; |
|
var index = 0; |
|
function RunStep() { |
|
while (continuation || index < length) { |
|
if (continuation) { |
|
continuation = continuation(); |
|
} else { |
|
var suite = suites[index++]; |
|
if (runner.NotifyStart) |
|
runner.NotifyStart(suite.name); |
|
continuation = suite.RunStep(runner); |
|
} |
|
if (continuation && typeof window != "undefined" && window.setTimeout) { |
|
window.setTimeout(RunStep, 25); |
|
return; |
|
} |
|
} |
|
if (runner.NotifyScore) { |
|
var score = BenchmarkSuite.GeometricMean(BenchmarkSuite.scores); |
|
var formatted = BenchmarkSuite.FormatScore(100 * score); |
|
runner.NotifyScore(formatted); |
|
} |
|
} |
|
RunStep(); |
|
}; |
|
BenchmarkSuite.CountBenchmarks = function() { |
|
var result = 0; |
|
var suites = BenchmarkSuite.suites; |
|
for (var i2 = 0; i2 < suites.length; i2++) { |
|
result += suites[i2].benchmarks.length; |
|
} |
|
return result; |
|
}; |
|
BenchmarkSuite.GeometricMean = function(numbers) { |
|
var log = 0; |
|
for (var i2 = 0; i2 < numbers.length; i2++) { |
|
log += Math.log(numbers[i2]); |
|
} |
|
return Math.pow(Math.E, log / numbers.length); |
|
}; |
|
BenchmarkSuite.FormatScore = function(value) { |
|
if (value > 100) { |
|
return value.toFixed(0); |
|
} else { |
|
return value.toPrecision(3); |
|
} |
|
}; |
|
BenchmarkSuite.prototype.NotifyStep = function(result) { |
|
this.results.push(result); |
|
if (this.runner.NotifyStep) |
|
this.runner.NotifyStep(result.benchmark.name); |
|
}; |
|
BenchmarkSuite.prototype.NotifyResult = function() { |
|
var mean = BenchmarkSuite.GeometricMean(this.results); |
|
var score = this.reference / mean; |
|
BenchmarkSuite.scores.push(score); |
|
if (this.runner.NotifyResult) { |
|
var formatted = BenchmarkSuite.FormatScore(100 * score); |
|
this.runner.NotifyResult(this.name, formatted); |
|
} |
|
}; |
|
BenchmarkSuite.prototype.NotifyError = function(error) { |
|
if (this.runner.NotifyError) { |
|
this.runner.NotifyError(this.name, error); |
|
} |
|
if (this.runner.NotifyStep) { |
|
this.runner.NotifyStep(this.name); |
|
} |
|
}; |
|
BenchmarkSuite.prototype.RunSingleBenchmark = function(benchmark, data) { |
|
function Measure(data2) { |
|
var elapsed = 0; |
|
var start = new Date(); |
|
for (var n = 0; elapsed < 1e3; n++) { |
|
benchmark.run(); |
|
elapsed = new Date() - start; |
|
} |
|
if (data2 != null) { |
|
data2.runs += n; |
|
data2.elapsed += elapsed; |
|
} |
|
} |
|
if (data == null) { |
|
Measure(null); |
|
return {runs: 0, elapsed: 0}; |
|
} else { |
|
Measure(data); |
|
if (data.runs < 32) |
|
return data; |
|
var usec = data.elapsed * 1e3 / data.runs; |
|
this.NotifyStep(new BenchmarkResult(benchmark, usec)); |
|
return null; |
|
} |
|
}; |
|
BenchmarkSuite.prototype.RunStep = function(runner) { |
|
this.results = []; |
|
this.runner = runner; |
|
var length = this.benchmarks.length; |
|
var index = 0; |
|
var suite = this; |
|
var data; |
|
function RunNextSetup() { |
|
if (index < length) { |
|
try { |
|
suite.benchmarks[index].Setup(); |
|
} catch (e) { |
|
suite.NotifyError(e); |
|
return null; |
|
} |
|
return RunNextBenchmark; |
|
} |
|
suite.NotifyResult(); |
|
return null; |
|
} |
|
function RunNextBenchmark() { |
|
try { |
|
data = suite.RunSingleBenchmark(suite.benchmarks[index], data); |
|
} catch (e) { |
|
suite.NotifyError(e); |
|
return null; |
|
} |
|
return data == null ? RunNextTearDown : RunNextBenchmark(); |
|
} |
|
function RunNextTearDown() { |
|
try { |
|
suite.benchmarks[index++].TearDown(); |
|
} catch (e) { |
|
suite.NotifyError(e); |
|
return null; |
|
} |
|
return RunNextSetup; |
|
} |
|
return RunNextSetup(); |
|
}; |
|
|
|
// src/richards.js |
|
var Richards = new BenchmarkSuite("Richards", 35302, [ |
|
new Benchmark("Richards", runRichards) |
|
]); |
|
function runRichards() { |
|
var scheduler = new Scheduler(); |
|
scheduler.addIdleTask(ID_IDLE, 0, null, COUNT); |
|
var queue = new Packet(null, ID_WORKER, KIND_WORK); |
|
queue = new Packet(queue, ID_WORKER, KIND_WORK); |
|
scheduler.addWorkerTask(ID_WORKER, 1e3, queue); |
|
queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE); |
|
queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE); |
|
queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE); |
|
scheduler.addHandlerTask(ID_HANDLER_A, 2e3, queue); |
|
queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE); |
|
queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE); |
|
queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE); |
|
scheduler.addHandlerTask(ID_HANDLER_B, 3e3, queue); |
|
scheduler.addDeviceTask(ID_DEVICE_A, 4e3, null); |
|
scheduler.addDeviceTask(ID_DEVICE_B, 5e3, null); |
|
scheduler.schedule(); |
|
if (scheduler.queueCount != EXPECTED_QUEUE_COUNT || scheduler.holdCount != EXPECTED_HOLD_COUNT) { |
|
var msg = "Error during execution: queueCount = " + scheduler.queueCount + ", holdCount = " + scheduler.holdCount + "."; |
|
throw new Error(msg); |
|
} |
|
} |
|
var COUNT = 1e3; |
|
var EXPECTED_QUEUE_COUNT = 2322; |
|
var EXPECTED_HOLD_COUNT = 928; |
|
function Scheduler() { |
|
this.queueCount = 0; |
|
this.holdCount = 0; |
|
this.blocks = new Array(NUMBER_OF_IDS); |
|
this.list = null; |
|
this.currentTcb = null; |
|
this.currentId = null; |
|
} |
|
var ID_IDLE = 0; |
|
var ID_WORKER = 1; |
|
var ID_HANDLER_A = 2; |
|
var ID_HANDLER_B = 3; |
|
var ID_DEVICE_A = 4; |
|
var ID_DEVICE_B = 5; |
|
var NUMBER_OF_IDS = 6; |
|
var KIND_DEVICE = 0; |
|
var KIND_WORK = 1; |
|
Scheduler.prototype.addIdleTask = function(id, priority, queue, count) { |
|
this.addRunningTask(id, priority, queue, new IdleTask(this, 1, count)); |
|
}; |
|
Scheduler.prototype.addWorkerTask = function(id, priority, queue) { |
|
this.addTask(id, priority, queue, new WorkerTask(this, ID_HANDLER_A, 0)); |
|
}; |
|
Scheduler.prototype.addHandlerTask = function(id, priority, queue) { |
|
this.addTask(id, priority, queue, new HandlerTask(this)); |
|
}; |
|
Scheduler.prototype.addDeviceTask = function(id, priority, queue) { |
|
this.addTask(id, priority, queue, new DeviceTask(this)); |
|
}; |
|
Scheduler.prototype.addRunningTask = function(id, priority, queue, task) { |
|
this.addTask(id, priority, queue, task); |
|
this.currentTcb.setRunning(); |
|
}; |
|
Scheduler.prototype.addTask = function(id, priority, queue, task) { |
|
this.currentTcb = new TaskControlBlock(this.list, id, priority, queue, task); |
|
this.list = this.currentTcb; |
|
this.blocks[id] = this.currentTcb; |
|
}; |
|
Scheduler.prototype.schedule = function() { |
|
this.currentTcb = this.list; |
|
while (this.currentTcb != null) { |
|
if (this.currentTcb.isHeldOrSuspended()) { |
|
this.currentTcb = this.currentTcb.link; |
|
} else { |
|
this.currentId = this.currentTcb.id; |
|
this.currentTcb = this.currentTcb.run(); |
|
} |
|
} |
|
}; |
|
Scheduler.prototype.release = function(id) { |
|
var tcb = this.blocks[id]; |
|
if (tcb == null) |
|
return tcb; |
|
tcb.markAsNotHeld(); |
|
if (tcb.priority > this.currentTcb.priority) { |
|
return tcb; |
|
} else { |
|
return this.currentTcb; |
|
} |
|
}; |
|
Scheduler.prototype.holdCurrent = function() { |
|
this.holdCount++; |
|
this.currentTcb.markAsHeld(); |
|
return this.currentTcb.link; |
|
}; |
|
Scheduler.prototype.suspendCurrent = function() { |
|
this.currentTcb.markAsSuspended(); |
|
return this.currentTcb; |
|
}; |
|
Scheduler.prototype.queue = function(packet) { |
|
var t = this.blocks[packet.id]; |
|
if (t == null) |
|
return t; |
|
this.queueCount++; |
|
packet.link = null; |
|
packet.id = this.currentId; |
|
return t.checkPriorityAdd(this.currentTcb, packet); |
|
}; |
|
function TaskControlBlock(link, id, priority, queue, task) { |
|
this.link = link; |
|
this.id = id; |
|
this.priority = priority; |
|
this.queue = queue; |
|
this.task = task; |
|
if (queue == null) { |
|
this.state = STATE_SUSPENDED; |
|
} else { |
|
this.state = STATE_SUSPENDED_RUNNABLE; |
|
} |
|
} |
|
var STATE_RUNNING = 0; |
|
var STATE_RUNNABLE = 1; |
|
var STATE_SUSPENDED = 2; |
|
var STATE_HELD = 4; |
|
var STATE_SUSPENDED_RUNNABLE = STATE_SUSPENDED | STATE_RUNNABLE; |
|
var STATE_NOT_HELD = ~STATE_HELD; |
|
TaskControlBlock.prototype.setRunning = function() { |
|
this.state = STATE_RUNNING; |
|
}; |
|
TaskControlBlock.prototype.markAsNotHeld = function() { |
|
this.state = this.state & STATE_NOT_HELD; |
|
}; |
|
TaskControlBlock.prototype.markAsHeld = function() { |
|
this.state = this.state | STATE_HELD; |
|
}; |
|
TaskControlBlock.prototype.isHeldOrSuspended = function() { |
|
return (this.state & STATE_HELD) != 0 || this.state == STATE_SUSPENDED; |
|
}; |
|
TaskControlBlock.prototype.markAsSuspended = function() { |
|
this.state = this.state | STATE_SUSPENDED; |
|
}; |
|
TaskControlBlock.prototype.markAsRunnable = function() { |
|
this.state = this.state | STATE_RUNNABLE; |
|
}; |
|
TaskControlBlock.prototype.run = function() { |
|
var packet; |
|
if (this.state == STATE_SUSPENDED_RUNNABLE) { |
|
packet = this.queue; |
|
this.queue = packet.link; |
|
if (this.queue == null) { |
|
this.state = STATE_RUNNING; |
|
} else { |
|
this.state = STATE_RUNNABLE; |
|
} |
|
} else { |
|
packet = null; |
|
} |
|
return this.task.run(packet); |
|
}; |
|
TaskControlBlock.prototype.checkPriorityAdd = function(task, packet) { |
|
if (this.queue == null) { |
|
this.queue = packet; |
|
this.markAsRunnable(); |
|
if (this.priority > task.priority) |
|
return this; |
|
} else { |
|
this.queue = packet.addTo(this.queue); |
|
} |
|
return task; |
|
}; |
|
TaskControlBlock.prototype.toString = function() { |
|
return "tcb { " + this.task + "@" + this.state + " }"; |
|
}; |
|
function IdleTask(scheduler, v1, count) { |
|
this.scheduler = scheduler; |
|
this.v1 = v1; |
|
this.count = count; |
|
} |
|
IdleTask.prototype.run = function(packet) { |
|
this.count--; |
|
if (this.count == 0) |
|
return this.scheduler.holdCurrent(); |
|
if ((this.v1 & 1) == 0) { |
|
this.v1 = this.v1 >> 1; |
|
return this.scheduler.release(ID_DEVICE_A); |
|
} else { |
|
this.v1 = this.v1 >> 1 ^ 53256; |
|
return this.scheduler.release(ID_DEVICE_B); |
|
} |
|
}; |
|
IdleTask.prototype.toString = function() { |
|
return "IdleTask"; |
|
}; |
|
function DeviceTask(scheduler) { |
|
this.scheduler = scheduler; |
|
this.v1 = null; |
|
} |
|
DeviceTask.prototype.run = function(packet) { |
|
if (packet == null) { |
|
if (this.v1 == null) |
|
return this.scheduler.suspendCurrent(); |
|
var v = this.v1; |
|
this.v1 = null; |
|
return this.scheduler.queue(v); |
|
} else { |
|
this.v1 = packet; |
|
return this.scheduler.holdCurrent(); |
|
} |
|
}; |
|
DeviceTask.prototype.toString = function() { |
|
return "DeviceTask"; |
|
}; |
|
function WorkerTask(scheduler, v1, v2) { |
|
this.scheduler = scheduler; |
|
this.v1 = v1; |
|
this.v2 = v2; |
|
} |
|
WorkerTask.prototype.run = function(packet) { |
|
if (packet == null) { |
|
return this.scheduler.suspendCurrent(); |
|
} else { |
|
if (this.v1 == ID_HANDLER_A) { |
|
this.v1 = ID_HANDLER_B; |
|
} else { |
|
this.v1 = ID_HANDLER_A; |
|
} |
|
packet.id = this.v1; |
|
packet.a1 = 0; |
|
for (var i2 = 0; i2 < DATA_SIZE; i2++) { |
|
this.v2++; |
|
if (this.v2 > 26) |
|
this.v2 = 1; |
|
packet.a2[i2] = this.v2; |
|
} |
|
return this.scheduler.queue(packet); |
|
} |
|
}; |
|
WorkerTask.prototype.toString = function() { |
|
return "WorkerTask"; |
|
}; |
|
function HandlerTask(scheduler) { |
|
this.scheduler = scheduler; |
|
this.v1 = null; |
|
this.v2 = null; |
|
} |
|
HandlerTask.prototype.run = function(packet) { |
|
if (packet != null) { |
|
if (packet.kind == KIND_WORK) { |
|
this.v1 = packet.addTo(this.v1); |
|
} else { |
|
this.v2 = packet.addTo(this.v2); |
|
} |
|
} |
|
if (this.v1 != null) { |
|
var count = this.v1.a1; |
|
var v; |
|
if (count < DATA_SIZE) { |
|
if (this.v2 != null) { |
|
v = this.v2; |
|
this.v2 = this.v2.link; |
|
v.a1 = this.v1.a2[count]; |
|
this.v1.a1 = count + 1; |
|
return this.scheduler.queue(v); |
|
} |
|
} else { |
|
v = this.v1; |
|
this.v1 = this.v1.link; |
|
return this.scheduler.queue(v); |
|
} |
|
} |
|
return this.scheduler.suspendCurrent(); |
|
}; |
|
HandlerTask.prototype.toString = function() { |
|
return "HandlerTask"; |
|
}; |
|
var DATA_SIZE = 4; |
|
function Packet(link, id, kind) { |
|
this.link = link; |
|
this.id = id; |
|
this.kind = kind; |
|
this.a1 = 0; |
|
this.a2 = new Array(DATA_SIZE); |
|
} |
|
Packet.prototype.addTo = function(queue) { |
|
this.link = null; |
|
if (queue == null) |
|
return this; |
|
var peek, next = queue; |
|
while ((peek = next.link) != null) |
|
next = peek; |
|
next.link = this; |
|
return queue; |
|
}; |
|
Packet.prototype.toString = function() { |
|
return "Packet"; |
|
}; |
|
|
|
// src/deltablue.js |
|
var DeltaBlue = new BenchmarkSuite("DeltaBlue", 66118, [ |
|
new Benchmark("DeltaBlue", deltaBlue) |
|
]); |
|
Object.prototype.inheritsFrom = function(shuper) { |
|
function Inheriter() { |
|
} |
|
Inheriter.prototype = shuper.prototype; |
|
this.prototype = new Inheriter(); |
|
this.superConstructor = shuper; |
|
}; |
|
function OrderedCollection() { |
|
this.elms = new Array(); |
|
} |
|
OrderedCollection.prototype.add = function(elm) { |
|
this.elms.push(elm); |
|
}; |
|
OrderedCollection.prototype.at = function(index) { |
|
return this.elms[index]; |
|
}; |
|
OrderedCollection.prototype.size = function() { |
|
return this.elms.length; |
|
}; |
|
OrderedCollection.prototype.removeFirst = function() { |
|
return this.elms.pop(); |
|
}; |
|
OrderedCollection.prototype.remove = function(elm) { |
|
var index = 0, skipped = 0; |
|
for (var i2 = 0; i2 < this.elms.length; i2++) { |
|
var value = this.elms[i2]; |
|
if (value != elm) { |
|
this.elms[index] = value; |
|
index++; |
|
} else { |
|
skipped++; |
|
} |
|
} |
|
for (var i2 = 0; i2 < skipped; i2++) |
|
this.elms.pop(); |
|
}; |
|
function Strength(strengthValue, name) { |
|
this.strengthValue = strengthValue; |
|
this.name = name; |
|
} |
|
Strength.stronger = function(s1, s2) { |
|
return s1.strengthValue < s2.strengthValue; |
|
}; |
|
Strength.weaker = function(s1, s2) { |
|
return s1.strengthValue > s2.strengthValue; |
|
}; |
|
Strength.weakestOf = function(s1, s2) { |
|
return this.weaker(s1, s2) ? s1 : s2; |
|
}; |
|
Strength.strongest = function(s1, s2) { |
|
return this.stronger(s1, s2) ? s1 : s2; |
|
}; |
|
Strength.prototype.nextWeaker = function() { |
|
switch (this.strengthValue) { |
|
case 0: |
|
return Strength.WEAKEST; |
|
case 1: |
|
return Strength.WEAK_DEFAULT; |
|
case 2: |
|
return Strength.NORMAL; |
|
case 3: |
|
return Strength.STRONG_DEFAULT; |
|
case 4: |
|
return Strength.PREFERRED; |
|
case 5: |
|
return Strength.REQUIRED; |
|
} |
|
}; |
|
Strength.REQUIRED = new Strength(0, "required"); |
|
Strength.STONG_PREFERRED = new Strength(1, "strongPreferred"); |
|
Strength.PREFERRED = new Strength(2, "preferred"); |
|
Strength.STRONG_DEFAULT = new Strength(3, "strongDefault"); |
|
Strength.NORMAL = new Strength(4, "normal"); |
|
Strength.WEAK_DEFAULT = new Strength(5, "weakDefault"); |
|
Strength.WEAKEST = new Strength(6, "weakest"); |
|
function Constraint(strength) { |
|
this.strength = strength; |
|
} |
|
Constraint.prototype.addConstraint = function() { |
|
this.addToGraph(); |
|
planner.incrementalAdd(this); |
|
}; |
|
Constraint.prototype.satisfy = function(mark) { |
|
this.chooseMethod(mark); |
|
if (!this.isSatisfied()) { |
|
if (this.strength == Strength.REQUIRED) |
|
alert("Could not satisfy a required constraint!"); |
|
return null; |
|
} |
|
this.markInputs(mark); |
|
var out = this.output(); |
|
var overridden = out.determinedBy; |
|
if (overridden != null) |
|
overridden.markUnsatisfied(); |
|
out.determinedBy = this; |
|
if (!planner.addPropagate(this, mark)) |
|
alert("Cycle encountered"); |
|
out.mark = mark; |
|
return overridden; |
|
}; |
|
Constraint.prototype.destroyConstraint = function() { |
|
if (this.isSatisfied()) |
|
planner.incrementalRemove(this); |
|
else |
|
this.removeFromGraph(); |
|
}; |
|
Constraint.prototype.isInput = function() { |
|
return false; |
|
}; |
|
function UnaryConstraint(v, strength) { |
|
UnaryConstraint.superConstructor.call(this, strength); |
|
this.myOutput = v; |
|
this.satisfied = false; |
|
this.addConstraint(); |
|
} |
|
UnaryConstraint.inheritsFrom(Constraint); |
|
UnaryConstraint.prototype.addToGraph = function() { |
|
this.myOutput.addConstraint(this); |
|
this.satisfied = false; |
|
}; |
|
UnaryConstraint.prototype.chooseMethod = function(mark) { |
|
this.satisfied = this.myOutput.mark != mark && Strength.stronger(this.strength, this.myOutput.walkStrength); |
|
}; |
|
UnaryConstraint.prototype.isSatisfied = function() { |
|
return this.satisfied; |
|
}; |
|
UnaryConstraint.prototype.markInputs = function(mark) { |
|
}; |
|
UnaryConstraint.prototype.output = function() { |
|
return this.myOutput; |
|
}; |
|
UnaryConstraint.prototype.recalculate = function() { |
|
this.myOutput.walkStrength = this.strength; |
|
this.myOutput.stay = !this.isInput(); |
|
if (this.myOutput.stay) |
|
this.execute(); |
|
}; |
|
UnaryConstraint.prototype.markUnsatisfied = function() { |
|
this.satisfied = false; |
|
}; |
|
UnaryConstraint.prototype.inputsKnown = function() { |
|
return true; |
|
}; |
|
UnaryConstraint.prototype.removeFromGraph = function() { |
|
if (this.myOutput != null) |
|
this.myOutput.removeConstraint(this); |
|
this.satisfied = false; |
|
}; |
|
function StayConstraint(v, str) { |
|
StayConstraint.superConstructor.call(this, v, str); |
|
} |
|
StayConstraint.inheritsFrom(UnaryConstraint); |
|
StayConstraint.prototype.execute = function() { |
|
}; |
|
function EditConstraint(v, str) { |
|
EditConstraint.superConstructor.call(this, v, str); |
|
} |
|
EditConstraint.inheritsFrom(UnaryConstraint); |
|
EditConstraint.prototype.isInput = function() { |
|
return true; |
|
}; |
|
EditConstraint.prototype.execute = function() { |
|
}; |
|
var Direction = new Object(); |
|
Direction.NONE = 0; |
|
Direction.FORWARD = 1; |
|
Direction.BACKWARD = -1; |
|
function BinaryConstraint(var1, var2, strength) { |
|
BinaryConstraint.superConstructor.call(this, strength); |
|
this.v1 = var1; |
|
this.v2 = var2; |
|
this.direction = Direction.NONE; |
|
this.addConstraint(); |
|
} |
|
BinaryConstraint.inheritsFrom(Constraint); |
|
BinaryConstraint.prototype.chooseMethod = function(mark) { |
|
if (this.v1.mark == mark) { |
|
this.direction = this.v2.mark != mark && Strength.stronger(this.strength, this.v2.walkStrength) ? Direction.FORWARD : Direction.NONE; |
|
} |
|
if (this.v2.mark == mark) { |
|
this.direction = this.v1.mark != mark && Strength.stronger(this.strength, this.v1.walkStrength) ? Direction.BACKWARD : Direction.NONE; |
|
} |
|
if (Strength.weaker(this.v1.walkStrength, this.v2.walkStrength)) { |
|
this.direction = Strength.stronger(this.strength, this.v1.walkStrength) ? Direction.BACKWARD : Direction.NONE; |
|
} else { |
|
this.direction = Strength.stronger(this.strength, this.v2.walkStrength) ? Direction.FORWARD : Direction.BACKWARD; |
|
} |
|
}; |
|
BinaryConstraint.prototype.addToGraph = function() { |
|
this.v1.addConstraint(this); |
|
this.v2.addConstraint(this); |
|
this.direction = Direction.NONE; |
|
}; |
|
BinaryConstraint.prototype.isSatisfied = function() { |
|
return this.direction != Direction.NONE; |
|
}; |
|
BinaryConstraint.prototype.markInputs = function(mark) { |
|
this.input().mark = mark; |
|
}; |
|
BinaryConstraint.prototype.input = function() { |
|
return this.direction == Direction.FORWARD ? this.v1 : this.v2; |
|
}; |
|
BinaryConstraint.prototype.output = function() { |
|
return this.direction == Direction.FORWARD ? this.v2 : this.v1; |
|
}; |
|
BinaryConstraint.prototype.recalculate = function() { |
|
var ihn = this.input(), out = this.output(); |
|
out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength); |
|
out.stay = ihn.stay; |
|
if (out.stay) |
|
this.execute(); |
|
}; |
|
BinaryConstraint.prototype.markUnsatisfied = function() { |
|
this.direction = Direction.NONE; |
|
}; |
|
BinaryConstraint.prototype.inputsKnown = function(mark) { |
|
var i2 = this.input(); |
|
return i2.mark == mark || i2.stay || i2.determinedBy == null; |
|
}; |
|
BinaryConstraint.prototype.removeFromGraph = function() { |
|
if (this.v1 != null) |
|
this.v1.removeConstraint(this); |
|
if (this.v2 != null) |
|
this.v2.removeConstraint(this); |
|
this.direction = Direction.NONE; |
|
}; |
|
function ScaleConstraint(src, scale, offset, dest, strength) { |
|
this.direction = Direction.NONE; |
|
this.scale = scale; |
|
this.offset = offset; |
|
ScaleConstraint.superConstructor.call(this, src, dest, strength); |
|
} |
|
ScaleConstraint.inheritsFrom(BinaryConstraint); |
|
ScaleConstraint.prototype.addToGraph = function() { |
|
ScaleConstraint.superConstructor.prototype.addToGraph.call(this); |
|
this.scale.addConstraint(this); |
|
this.offset.addConstraint(this); |
|
}; |
|
ScaleConstraint.prototype.removeFromGraph = function() { |
|
ScaleConstraint.superConstructor.prototype.removeFromGraph.call(this); |
|
if (this.scale != null) |
|
this.scale.removeConstraint(this); |
|
if (this.offset != null) |
|
this.offset.removeConstraint(this); |
|
}; |
|
ScaleConstraint.prototype.markInputs = function(mark) { |
|
ScaleConstraint.superConstructor.prototype.markInputs.call(this, mark); |
|
this.scale.mark = this.offset.mark = mark; |
|
}; |
|
ScaleConstraint.prototype.execute = function() { |
|
if (this.direction == Direction.FORWARD) { |
|
this.v2.value = this.v1.value * this.scale.value + this.offset.value; |
|
} else { |
|
this.v1.value = (this.v2.value - this.offset.value) / this.scale.value; |
|
} |
|
}; |
|
ScaleConstraint.prototype.recalculate = function() { |
|
var ihn = this.input(), out = this.output(); |
|
out.walkStrength = Strength.weakestOf(this.strength, ihn.walkStrength); |
|
out.stay = ihn.stay && this.scale.stay && this.offset.stay; |
|
if (out.stay) |
|
this.execute(); |
|
}; |
|
function EqualityConstraint(var1, var2, strength) { |
|
EqualityConstraint.superConstructor.call(this, var1, var2, strength); |
|
} |
|
EqualityConstraint.inheritsFrom(BinaryConstraint); |
|
EqualityConstraint.prototype.execute = function() { |
|
this.output().value = this.input().value; |
|
}; |
|
function Variable(name, initialValue) { |
|
this.value = initialValue || 0; |
|
this.constraints = new OrderedCollection(); |
|
this.determinedBy = null; |
|
this.mark = 0; |
|
this.walkStrength = Strength.WEAKEST; |
|
this.stay = true; |
|
this.name = name; |
|
} |
|
Variable.prototype.addConstraint = function(c) { |
|
this.constraints.add(c); |
|
}; |
|
Variable.prototype.removeConstraint = function(c) { |
|
this.constraints.remove(c); |
|
if (this.determinedBy == c) |
|
this.determinedBy = null; |
|
}; |
|
function Planner() { |
|
this.currentMark = 0; |
|
} |
|
Planner.prototype.incrementalAdd = function(c) { |
|
var mark = this.newMark(); |
|
var overridden = c.satisfy(mark); |
|
while (overridden != null) |
|
overridden = overridden.satisfy(mark); |
|
}; |
|
Planner.prototype.incrementalRemove = function(c) { |
|
var out = c.output(); |
|
c.markUnsatisfied(); |
|
c.removeFromGraph(); |
|
var unsatisfied = this.removePropagateFrom(out); |
|
var strength = Strength.REQUIRED; |
|
do { |
|
for (var i2 = 0; i2 < unsatisfied.size(); i2++) { |
|
var u = unsatisfied.at(i2); |
|
if (u.strength == strength) |
|
this.incrementalAdd(u); |
|
} |
|
strength = strength.nextWeaker(); |
|
} while (strength != Strength.WEAKEST); |
|
}; |
|
Planner.prototype.newMark = function() { |
|
return ++this.currentMark; |
|
}; |
|
Planner.prototype.makePlan = function(sources) { |
|
var mark = this.newMark(); |
|
var plan = new Plan(); |
|
var todo = sources; |
|
while (todo.size() > 0) { |
|
var c = todo.removeFirst(); |
|
if (c.output().mark != mark && c.inputsKnown(mark)) { |
|
plan.addConstraint(c); |
|
c.output().mark = mark; |
|
this.addConstraintsConsumingTo(c.output(), todo); |
|
} |
|
} |
|
return plan; |
|
}; |
|
Planner.prototype.extractPlanFromConstraints = function(constraints) { |
|
var sources = new OrderedCollection(); |
|
for (var i2 = 0; i2 < constraints.size(); i2++) { |
|
var c = constraints.at(i2); |
|
if (c.isInput() && c.isSatisfied()) |
|
sources.add(c); |
|
} |
|
return this.makePlan(sources); |
|
}; |
|
Planner.prototype.addPropagate = function(c, mark) { |
|
var todo = new OrderedCollection(); |
|
todo.add(c); |
|
while (todo.size() > 0) { |
|
var d = todo.removeFirst(); |
|
if (d.output().mark == mark) { |
|
this.incrementalRemove(c); |
|
return false; |
|
} |
|
d.recalculate(); |
|
this.addConstraintsConsumingTo(d.output(), todo); |
|
} |
|
return true; |
|
}; |
|
Planner.prototype.removePropagateFrom = function(out) { |
|
out.determinedBy = null; |
|
out.walkStrength = Strength.WEAKEST; |
|
out.stay = true; |
|
var unsatisfied = new OrderedCollection(); |
|
var todo = new OrderedCollection(); |
|
todo.add(out); |
|
while (todo.size() > 0) { |
|
var v = todo.removeFirst(); |
|
for (var i2 = 0; i2 < v.constraints.size(); i2++) { |
|
var c = v.constraints.at(i2); |
|
if (!c.isSatisfied()) |
|
unsatisfied.add(c); |
|
} |
|
var determining = v.determinedBy; |
|
for (var i2 = 0; i2 < v.constraints.size(); i2++) { |
|
var next = v.constraints.at(i2); |
|
if (next != determining && next.isSatisfied()) { |
|
next.recalculate(); |
|
todo.add(next.output()); |
|
} |
|
} |
|
} |
|
return unsatisfied; |
|
}; |
|
Planner.prototype.addConstraintsConsumingTo = function(v, coll) { |
|
var determining = v.determinedBy; |
|
var cc = v.constraints; |
|
for (var i2 = 0; i2 < cc.size(); i2++) { |
|
var c = cc.at(i2); |
|
if (c != determining && c.isSatisfied()) |
|
coll.add(c); |
|
} |
|
}; |
|
function Plan() { |
|
this.v = new OrderedCollection(); |
|
} |
|
Plan.prototype.addConstraint = function(c) { |
|
this.v.add(c); |
|
}; |
|
Plan.prototype.size = function() { |
|
return this.v.size(); |
|
}; |
|
Plan.prototype.constraintAt = function(index) { |
|
return this.v.at(index); |
|
}; |
|
Plan.prototype.execute = function() { |
|
for (var i2 = 0; i2 < this.size(); i2++) { |
|
var c = this.constraintAt(i2); |
|
c.execute(); |
|
} |
|
}; |
|
function chainTest(n) { |
|
planner = new Planner(); |
|
var prev = null, first = null, last = null; |
|
for (var i2 = 0; i2 <= n; i2++) { |
|
var name = "v" + i2; |
|
var v = new Variable(name); |
|
if (prev != null) |
|
new EqualityConstraint(prev, v, Strength.REQUIRED); |
|
if (i2 == 0) |
|
first = v; |
|
if (i2 == n) |
|
last = v; |
|
prev = v; |
|
} |
|
new StayConstraint(last, Strength.STRONG_DEFAULT); |
|
var edit = new EditConstraint(first, Strength.PREFERRED); |
|
var edits = new OrderedCollection(); |
|
edits.add(edit); |
|
var plan = planner.extractPlanFromConstraints(edits); |
|
for (var i2 = 0; i2 < 100; i2++) { |
|
first.value = i2; |
|
plan.execute(); |
|
if (last.value != i2) |
|
alert("Chain test failed."); |
|
} |
|
} |
|
function projectionTest(n) { |
|
planner = new Planner(); |
|
var scale = new Variable("scale", 10); |
|
var offset = new Variable("offset", 1e3); |
|
var src = null, dst = null; |
|
var dests = new OrderedCollection(); |
|
for (var i2 = 0; i2 < n; i2++) { |
|
src = new Variable("src" + i2, i2); |
|
dst = new Variable("dst" + i2, i2); |
|
dests.add(dst); |
|
new StayConstraint(src, Strength.NORMAL); |
|
new ScaleConstraint(src, scale, offset, dst, Strength.REQUIRED); |
|
} |
|
change(src, 17); |
|
if (dst.value != 1170) |
|
alert("Projection 1 failed"); |
|
change(dst, 1050); |
|
if (src.value != 5) |
|
alert("Projection 2 failed"); |
|
change(scale, 5); |
|
for (var i2 = 0; i2 < n - 1; i2++) { |
|
if (dests.at(i2).value != i2 * 5 + 1e3) |
|
alert("Projection 3 failed"); |
|
} |
|
change(offset, 2e3); |
|
for (var i2 = 0; i2 < n - 1; i2++) { |
|
if (dests.at(i2).value != i2 * 5 + 2e3) |
|
alert("Projection 4 failed"); |
|
} |
|
} |
|
function change(v, newValue) { |
|
var edit = new EditConstraint(v, Strength.PREFERRED); |
|
var edits = new OrderedCollection(); |
|
edits.add(edit); |
|
var plan = planner.extractPlanFromConstraints(edits); |
|
for (var i2 = 0; i2 < 10; i2++) { |
|
v.value = newValue; |
|
plan.execute(); |
|
} |
|
edit.destroyConstraint(); |
|
} |
|
var planner = null; |
|
function deltaBlue() { |
|
chainTest(100); |
|
projectionTest(100); |
|
} |
|
|
|
// src/crypto.js |
|
var Crypto = new BenchmarkSuite("Crypto", 266181, [ |
|
new Benchmark("Encrypt", encrypt), |
|
new Benchmark("Decrypt", decrypt) |
|
]); |
|
var dbits; |
|
var BI_DB; |
|
var BI_DM; |
|
var BI_DV; |
|
var BI_FP; |
|
var BI_FV; |
|
var BI_F1; |
|
var BI_F2; |
|
var canary = 244837814094590; |
|
var j_lm = (canary & 16777215) == 15715070; |
|
function BigInteger(a, b, c) { |
|
this.array = new Array(); |
|
if (a != null) |
|
if (typeof a == "number") |
|
this.fromNumber(a, b, c); |
|
else if (b == null && typeof a != "string") |
|
this.fromString(a, 256); |
|
else |
|
this.fromString(a, b); |
|
} |
|
function nbi() { |
|
return new BigInteger(null); |
|
} |
|
function am3(i2, x, w, j, c, n) { |
|
var this_array2 = this.array; |
|
var w_array = w.array; |
|
var xl = x & 16383, xh = x >> 14; |
|
while (--n >= 0) { |
|
var l = this_array2[i2] & 16383; |
|
var h = this_array2[i2++] >> 14; |
|
var m = xh * l + h * xl; |
|
l = xl * l + ((m & 16383) << 14) + w_array[j] + c; |
|
c = (l >> 28) + (m >> 14) + xh * h; |
|
w_array[j++] = l & 268435455; |
|
} |
|
return c; |
|
} |
|
var setupEngine = function(fn, bits) { |
|
BigInteger.prototype.am = fn; |
|
dbits = bits; |
|
BI_DB = dbits; |
|
BI_DM = (1 << dbits) - 1; |
|
BI_DV = 1 << dbits; |
|
BI_FP = 52; |
|
BI_FV = Math.pow(2, BI_FP); |
|
BI_F1 = BI_FP - dbits; |
|
BI_F2 = 2 * dbits - BI_FP; |
|
}; |
|
var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz"; |
|
var BI_RC = new Array(); |
|
var rr; |
|
var vv; |
|
rr = "0".charCodeAt(0); |
|
for (vv = 0; vv <= 9; ++vv) |
|
BI_RC[rr++] = vv; |
|
rr = "a".charCodeAt(0); |
|
for (vv = 10; vv < 36; ++vv) |
|
BI_RC[rr++] = vv; |
|
rr = "A".charCodeAt(0); |
|
for (vv = 10; vv < 36; ++vv) |
|
BI_RC[rr++] = vv; |
|
function int2char(n) { |
|
return BI_RM.charAt(n); |
|
} |
|
function intAt(s, i2) { |
|
var c = BI_RC[s.charCodeAt(i2)]; |
|
return c == null ? -1 : c; |
|
} |
|
function bnpCopyTo(r) { |
|
var this_array2 = this.array; |
|
var r_array = r.array; |
|
for (var i2 = this.t - 1; i2 >= 0; --i2) |
|
r_array[i2] = this_array2[i2]; |
|
r.t = this.t; |
|
r.s = this.s; |
|
} |
|
function bnpFromInt(x) { |
|
var this_array2 = this.array; |
|
this.t = 1; |
|
this.s = x < 0 ? -1 : 0; |
|
if (x > 0) |
|
this_array2[0] = x; |
|
else if (x < -1) |
|
this_array2[0] = x + DV; |
|
else |
|
this.t = 0; |
|
} |
|
function nbv(i2) { |
|
var r = nbi(); |
|
r.fromInt(i2); |
|
return r; |
|
} |
|
function bnpFromString(s, b) { |
|
var this_array2 = this.array; |
|
var k; |
|
if (b == 16) |
|
k = 4; |
|
else if (b == 8) |
|
k = 3; |
|
else if (b == 256) |
|
k = 8; |
|
else if (b == 2) |
|
k = 1; |
|
else if (b == 32) |
|
k = 5; |
|
else if (b == 4) |
|
k = 2; |
|
else { |
|
this.fromRadix(s, b); |
|
return; |
|
} |
|
this.t = 0; |
|
this.s = 0; |
|
var i2 = s.length, mi = false, sh = 0; |
|
while (--i2 >= 0) { |
|
var x = k == 8 ? s[i2] & 255 : intAt(s, i2); |
|
if (x < 0) { |
|
if (s.charAt(i2) == "-") |
|
mi = true; |
|
continue; |
|
} |
|
mi = false; |
|
if (sh == 0) |
|
this_array2[this.t++] = x; |
|
else if (sh + k > BI_DB) { |
|
this_array2[this.t - 1] |= (x & (1 << BI_DB - sh) - 1) << sh; |
|
this_array2[this.t++] = x >> BI_DB - sh; |
|
} else |
|
this_array2[this.t - 1] |= x << sh; |
|
sh += k; |
|
if (sh >= BI_DB) |
|
sh -= BI_DB; |
|
} |
|
if (k == 8 && (s[0] & 128) != 0) { |
|
this.s = -1; |
|
if (sh > 0) |
|
this_array2[this.t - 1] |= (1 << BI_DB - sh) - 1 << sh; |
|
} |
|
this.clamp(); |
|
if (mi) |
|
BigInteger.ZERO.subTo(this, this); |
|
} |
|
function bnpClamp() { |
|
var this_array2 = this.array; |
|
var c = this.s & BI_DM; |
|
while (this.t > 0 && this_array2[this.t - 1] == c) |
|
--this.t; |
|
} |
|
function bnToString(b) { |
|
var this_array2 = this.array; |
|
if (this.s < 0) |
|
return "-" + this.negate().toString(b); |
|
var k; |
|
if (b == 16) |
|
k = 4; |
|
else if (b == 8) |
|
k = 3; |
|
else if (b == 2) |
|
k = 1; |
|
else if (b == 32) |
|
k = 5; |
|
else if (b == 4) |
|
k = 2; |
|
else |
|
return this.toRadix(b); |
|
var km = (1 << k) - 1, d, m = false, r = "", i2 = this.t; |
|
var p = BI_DB - i2 * BI_DB % k; |
|
if (i2-- > 0) { |
|
if (p < BI_DB && (d = this_array2[i2] >> p) > 0) { |
|
m = true; |
|
r = int2char(d); |
|
} |
|
while (i2 >= 0) { |
|
if (p < k) { |
|
d = (this_array2[i2] & (1 << p) - 1) << k - p; |
|
d |= this_array2[--i2] >> (p += BI_DB - k); |
|
} else { |
|
d = this_array2[i2] >> (p -= k) & km; |
|
if (p <= 0) { |
|
p += BI_DB; |
|
--i2; |
|
} |
|
} |
|
if (d > 0) |
|
m = true; |
|
if (m) |
|
r += int2char(d); |
|
} |
|
} |
|
return m ? r : "0"; |
|
} |
|
function bnNegate() { |
|
var r = nbi(); |
|
BigInteger.ZERO.subTo(this, r); |
|
return r; |
|
} |
|
function bnAbs() { |
|
return this.s < 0 ? this.negate() : this; |
|
} |
|
function bnCompareTo(a) { |
|
var this_array2 = this.array; |
|
var a_array = a.array; |
|
var r = this.s - a.s; |
|
if (r != 0) |
|
return r; |
|
var i2 = this.t; |
|
r = i2 - a.t; |
|
if (r != 0) |
|
return r; |
|
while (--i2 >= 0) |
|
if ((r = this_array2[i2] - a_array[i2]) != 0) |
|
return r; |
|
return 0; |
|
} |
|
function nbits(x) { |
|
var r = 1, t; |
|
if ((t = x >>> 16) != 0) { |
|
x = t; |
|
r += 16; |
|
} |
|
if ((t = x >> 8) != 0) { |
|
x = t; |
|
r += 8; |
|
} |
|
if ((t = x >> 4) != 0) { |
|
x = t; |
|
r += 4; |
|
} |
|
if ((t = x >> 2) != 0) { |
|
x = t; |
|
r += 2; |
|
} |
|
if ((t = x >> 1) != 0) { |
|
x = t; |
|
r += 1; |
|
} |
|
return r; |
|
} |
|
function bnBitLength() { |
|
var this_array2 = this.array; |
|
if (this.t <= 0) |
|
return 0; |
|
return BI_DB * (this.t - 1) + nbits(this_array2[this.t - 1] ^ this.s & BI_DM); |
|
} |
|
function bnpDLShiftTo(n, r) { |
|
var this_array2 = this.array; |
|
var r_array = r.array; |
|
var i2; |
|
for (i2 = this.t - 1; i2 >= 0; --i2) |
|
r_array[i2 + n] = this_array2[i2]; |
|
for (i2 = n - 1; i2 >= 0; --i2) |
|
r_array[i2] = 0; |
|
r.t = this.t + n; |
|
r.s = this.s; |
|
} |
|
function bnpDRShiftTo(n, r) { |
|
var this_array2 = this.array; |
|
var r_array = r.array; |
|
for (var i2 = n; i2 < this.t; ++i2) |
|
r_array[i2 - n] = this_array2[i2]; |
|
r.t = Math.max(this.t - n, 0); |
|
r.s = this.s; |
|
} |
|
function bnpLShiftTo(n, r) { |
|
var this_array2 = this.array; |
|
var r_array = r.array; |
|
var bs = n % BI_DB; |
|
var cbs = BI_DB - bs; |
|
var bm = (1 << cbs) - 1; |
|
var ds = Math.floor(n / BI_DB), c = this.s << bs & BI_DM, i2; |
|
for (i2 = this.t - 1; i2 >= 0; --i2) { |
|
r_array[i2 + ds + 1] = this_array2[i2] >> cbs | c; |
|
c = (this_array2[i2] & bm) << bs; |
|
} |
|
for (i2 = ds - 1; i2 >= 0; --i2) |
|
r_array[i2] = 0; |
|
r_array[ds] = c; |
|
r.t = this.t + ds + 1; |
|
r.s = this.s; |
|
r.clamp(); |
|
} |
|
function bnpRShiftTo(n, r) { |
|
var this_array2 = this.array; |
|
var r_array = r.array; |
|
r.s = this.s; |
|
var ds = Math.floor(n / BI_DB); |
|
if (ds >= this.t) { |
|
r.t = 0; |
|
return; |
|
} |
|
var bs = n % BI_DB; |
|
var cbs = BI_DB - bs; |
|
var bm = (1 << bs) - 1; |
|
r_array[0] = this_array2[ds] >> bs; |
|
for (var i2 = ds + 1; i2 < this.t; ++i2) { |
|
r_array[i2 - ds - 1] |= (this_array2[i2] & bm) << cbs; |
|
r_array[i2 - ds] = this_array2[i2] >> bs; |
|
} |
|
if (bs > 0) |
|
r_array[this.t - ds - 1] |= (this.s & bm) << cbs; |
|
r.t = this.t - ds; |
|
r.clamp(); |
|
} |
|
function bnpSubTo(a, r) { |
|
var this_array2 = this.array; |
|
var r_array = r.array; |
|
var a_array = a.array; |
|
var i2 = 0, c = 0, m = Math.min(a.t, this.t); |
|
while (i2 < m) { |
|
c += this_array2[i2] - a_array[i2]; |
|
r_array[i2++] = c & BI_DM; |
|
c >>= BI_DB; |
|
} |
|
if (a.t < this.t) { |
|
c -= a.s; |
|
while (i2 < this.t) { |
|
c += this_array2[i2]; |
|
r_array[i2++] = c & BI_DM; |
|
c >>= BI_DB; |
|
} |
|
c += this.s; |
|
} else { |
|
c += this.s; |
|
while (i2 < a.t) { |
|
c -= a_array[i2]; |
|
r_array[i2++] = c & BI_DM; |
|
c >>= BI_DB; |
|
} |
|
c -= a.s; |
|
} |
|
r.s = c < 0 ? -1 : 0; |
|
if (c < -1) |
|
r_array[i2++] = BI_DV + c; |
|
else if (c > 0) |
|
r_array[i2++] = c; |
|
r.t = i2; |
|
r.clamp(); |
|
} |
|
function bnpMultiplyTo(a, r) { |
|
var this_array2 = this.array; |
|
var r_array = r.array; |
|
var x = this.abs(), y = a.abs(); |
|
var y_array = y.array; |
|
var i2 = x.t; |
|
r.t = i2 + y.t; |
|
while (--i2 >= 0) |
|
r_array[i2] = 0; |
|
for (i2 = 0; i2 < y.t; ++i2) |
|
r_array[i2 + x.t] = x.am(0, y_array[i2], r, i2, 0, x.t); |
|
r.s = 0; |
|
r.clamp(); |
|
if (this.s != a.s) |
|
BigInteger.ZERO.subTo(r, r); |
|
} |
|
function bnpSquareTo(r) { |
|
var x = this.abs(); |
|
var x_array = x.array; |
|
var r_array = r.array; |
|
var i2 = r.t = 2 * x.t; |
|
while (--i2 >= 0) |
|
r_array[i2] = 0; |
|
for (i2 = 0; i2 < x.t - 1; ++i2) { |
|
var c = x.am(i2, x_array[i2], r, 2 * i2, 0, 1); |
|
if ((r_array[i2 + x.t] += x.am(i2 + 1, 2 * x_array[i2], r, 2 * i2 + 1, c, x.t - i2 - 1)) >= BI_DV) { |
|
r_array[i2 + x.t] -= BI_DV; |
|
r_array[i2 + x.t + 1] = 1; |
|
} |
|
} |
|
if (r.t > 0) |
|
r_array[r.t - 1] += x.am(i2, x_array[i2], r, 2 * i2, 0, 1); |
|
r.s = 0; |
|
r.clamp(); |
|
} |
|
function bnpDivRemTo(m, q, r) { |
|
var pm = m.abs(); |
|
if (pm.t <= 0) |
|
return; |
|
var pt = this.abs(); |
|
if (pt.t < pm.t) { |
|
if (q != null) |
|
q.fromInt(0); |
|
if (r != null) |
|
this.copyTo(r); |
|
return; |
|
} |
|
if (r == null) |
|
r = nbi(); |
|
var y = nbi(), ts = this.s, ms = m.s; |
|
var pm_array = pm.array; |
|
var nsh = BI_DB - nbits(pm_array[pm.t - 1]); |
|
if (nsh > 0) { |
|
pm.lShiftTo(nsh, y); |
|
pt.lShiftTo(nsh, r); |
|
} else { |
|
pm.copyTo(y); |
|
pt.copyTo(r); |
|
} |
|
var ys = y.t; |
|
var y_array = y.array; |
|
var y0 = y_array[ys - 1]; |
|
if (y0 == 0) |
|
return; |
|
var yt = y0 * (1 << BI_F1) + (ys > 1 ? y_array[ys - 2] >> BI_F2 : 0); |
|
var d1 = BI_FV / yt, d2 = (1 << BI_F1) / yt, e = 1 << BI_F2; |
|
var i2 = r.t, j = i2 - ys, t = q == null ? nbi() : q; |
|
y.dlShiftTo(j, t); |
|
var r_array = r.array; |
|
if (r.compareTo(t) >= 0) { |
|
r_array[r.t++] = 1; |
|
r.subTo(t, r); |
|
} |
|
BigInteger.ONE.dlShiftTo(ys, t); |
|
t.subTo(y, y); |
|
while (y.t < ys) |
|
y_array[y.t++] = 0; |
|
while (--j >= 0) { |
|
var qd = r_array[--i2] == y0 ? BI_DM : Math.floor(r_array[i2] * d1 + (r_array[i2 - 1] + e) * d2); |
|
if ((r_array[i2] += y.am(0, qd, r, j, 0, ys)) < qd) { |
|
y.dlShiftTo(j, t); |
|
r.subTo(t, r); |
|
while (r_array[i2] < --qd) |
|
r.subTo(t, r); |
|
} |
|
} |
|
if (q != null) { |
|
r.drShiftTo(ys, q); |
|
if (ts != ms) |
|
BigInteger.ZERO.subTo(q, q); |
|
} |
|
r.t = ys; |
|
r.clamp(); |
|
if (nsh > 0) |
|
r.rShiftTo(nsh, r); |
|
if (ts < 0) |
|
BigInteger.ZERO.subTo(r, r); |
|
} |
|
function bnMod(a) { |
|
var r = nbi(); |
|
this.abs().divRemTo(a, null, r); |
|
if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) |
|
a.subTo(r, r); |
|
return r; |
|
} |
|
function Classic(m) { |
|
this.m = m; |
|
} |
|
function cConvert(x) { |
|
if (x.s < 0 || x.compareTo(this.m) >= 0) |
|
return x.mod(this.m); |
|
else |
|
return x; |
|
} |
|
function cRevert(x) { |
|
return x; |
|
} |
|
function cReduce(x) { |
|
x.divRemTo(this.m, null, x); |
|
} |
|
function cMulTo(x, y, r) { |
|
x.multiplyTo(y, r); |
|
this.reduce(r); |
|
} |
|
function cSqrTo(x, r) { |
|
x.squareTo(r); |
|
this.reduce(r); |
|
} |
|
Classic.prototype.convert = cConvert; |
|
Classic.prototype.revert = cRevert; |
|
Classic.prototype.reduce = cReduce; |
|
Classic.prototype.mulTo = cMulTo; |
|
Classic.prototype.sqrTo = cSqrTo; |
|
function bnpInvDigit() { |
|
var this_array2 = this.array; |
|
if (this.t < 1) |
|
return 0; |
|
var x = this_array2[0]; |
|
if ((x & 1) == 0) |
|
return 0; |
|
var y = x & 3; |
|
y = y * (2 - (x & 15) * y) & 15; |
|
y = y * (2 - (x & 255) * y) & 255; |
|
y = y * (2 - ((x & 65535) * y & 65535)) & 65535; |
|
y = y * (2 - x * y % BI_DV) % BI_DV; |
|
return y > 0 ? BI_DV - y : -y; |
|
} |
|
function Montgomery(m) { |
|
this.m = m; |
|
this.mp = m.invDigit(); |
|
this.mpl = this.mp & 32767; |
|
this.mph = this.mp >> 15; |
|
this.um = (1 << BI_DB - 15) - 1; |
|
this.mt2 = 2 * m.t; |
|
} |
|
function montConvert(x) { |
|
var r = nbi(); |
|
x.abs().dlShiftTo(this.m.t, r); |
|
r.divRemTo(this.m, null, r); |
|
if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) |
|
this.m.subTo(r, r); |
|
return r; |
|
} |
|
function montRevert(x) { |
|
var r = nbi(); |
|
x.copyTo(r); |
|
this.reduce(r); |
|
return r; |
|
} |
|
function montReduce(x) { |
|
var x_array = x.array; |
|
while (x.t <= this.mt2) |
|
x_array[x.t++] = 0; |
|
for (var i2 = 0; i2 < this.m.t; ++i2) { |
|
var j = x_array[i2] & 32767; |
|
var u0 = j * this.mpl + ((j * this.mph + (x_array[i2] >> 15) * this.mpl & this.um) << 15) & BI_DM; |
|
j = i2 + this.m.t; |
|
x_array[j] += this.m.am(0, u0, x, i2, 0, this.m.t); |
|
while (x_array[j] >= BI_DV) { |
|
x_array[j] -= BI_DV; |
|
x_array[++j]++; |
|
} |
|
} |
|
x.clamp(); |
|
x.drShiftTo(this.m.t, x); |
|
if (x.compareTo(this.m) >= 0) |
|
x.subTo(this.m, x); |
|
} |
|
function montSqrTo(x, r) { |
|
x.squareTo(r); |
|
this.reduce(r); |
|
} |
|
function montMulTo(x, y, r) { |
|
x.multiplyTo(y, r); |
|
this.reduce(r); |
|
} |
|
Montgomery.prototype.convert = montConvert; |
|
Montgomery.prototype.revert = montRevert; |
|
Montgomery.prototype.reduce = montReduce; |
|
Montgomery.prototype.mulTo = montMulTo; |
|
Montgomery.prototype.sqrTo = montSqrTo; |
|
function bnpIsEven() { |
|
var this_array2 = this.array; |
|
return (this.t > 0 ? this_array2[0] & 1 : this.s) == 0; |
|
} |
|
function bnpExp(e, z) { |
|
if (e > 4294967295 || e < 1) |
|
return BigInteger.ONE; |
|
var r = nbi(), r2 = nbi(), g = z.convert(this), i2 = nbits(e) - 1; |
|
g.copyTo(r); |
|
while (--i2 >= 0) { |
|
z.sqrTo(r, r2); |
|
if ((e & 1 << i2) > 0) |
|
z.mulTo(r2, g, r); |
|
else { |
|
var t = r; |
|
r = r2; |
|
r2 = t; |
|
} |
|
} |
|
return z.revert(r); |
|
} |
|
function bnModPowInt(e, m) { |
|
var z; |
|
if (e < 256 || m.isEven()) |
|
z = new Classic(m); |
|
else |
|
z = new Montgomery(m); |
|
return this.exp(e, z); |
|
} |
|
BigInteger.prototype.copyTo = bnpCopyTo; |
|
BigInteger.prototype.fromInt = bnpFromInt; |
|
BigInteger.prototype.fromString = bnpFromString; |
|
BigInteger.prototype.clamp = bnpClamp; |
|
BigInteger.prototype.dlShiftTo = bnpDLShiftTo; |
|
BigInteger.prototype.drShiftTo = bnpDRShiftTo; |
|
BigInteger.prototype.lShiftTo = bnpLShiftTo; |
|
BigInteger.prototype.rShiftTo = bnpRShiftTo; |
|
BigInteger.prototype.subTo = bnpSubTo; |
|
BigInteger.prototype.multiplyTo = bnpMultiplyTo; |
|
BigInteger.prototype.squareTo = bnpSquareTo; |
|
BigInteger.prototype.divRemTo = bnpDivRemTo; |
|
BigInteger.prototype.invDigit = bnpInvDigit; |
|
BigInteger.prototype.isEven = bnpIsEven; |
|
BigInteger.prototype.exp = bnpExp; |
|
BigInteger.prototype.toString = bnToString; |
|
BigInteger.prototype.negate = bnNegate; |
|
BigInteger.prototype.abs = bnAbs; |
|
BigInteger.prototype.compareTo = bnCompareTo; |
|
BigInteger.prototype.bitLength = bnBitLength; |
|
BigInteger.prototype.mod = bnMod; |
|
BigInteger.prototype.modPowInt = bnModPowInt; |
|
BigInteger.ZERO = nbv(0); |
|
BigInteger.ONE = nbv(1); |
|
function bnClone() { |
|
var r = nbi(); |
|
this.copyTo(r); |
|
return r; |
|
} |
|
function bnIntValue() { |
|
var this_array2 = this.array; |
|
if (this.s < 0) { |
|
if (this.t == 1) |
|
return this_array2[0] - BI_DV; |
|
else if (this.t == 0) |
|
return -1; |
|
} else if (this.t == 1) |
|
return this_array2[0]; |
|
else if (this.t == 0) |
|
return 0; |
|
return (this_array2[1] & (1 << 32 - BI_DB) - 1) << BI_DB | this_array2[0]; |
|
} |
|
function bnByteValue() { |
|
var this_array2 = this.array; |
|
return this.t == 0 ? this.s : this_array2[0] << 24 >> 24; |
|
} |
|
function bnShortValue() { |
|
var this_array2 = this.array; |
|
return this.t == 0 ? this.s : this_array2[0] << 16 >> 16; |
|
} |
|
function bnpChunkSize(r) { |
|
return Math.floor(Math.LN2 * BI_DB / Math.log(r)); |
|
} |
|
function bnSigNum() { |
|
var this_array2 = this.array; |
|
if (this.s < 0) |
|
return -1; |
|
else if (this.t <= 0 || this.t == 1 && this_array2[0] <= 0) |
|
return 0; |
|
else |
|
return 1; |
|
} |
|
function bnpToRadix(b) { |
|
if (b == null) |
|
b = 10; |
|
if (this.signum() == 0 || b < 2 || b > 36) |
|
return "0"; |
|
var cs = this.chunkSize(b); |
|
var a = Math.pow(b, cs); |
|
var d = nbv(a), y = nbi(), z = nbi(), r = ""; |
|
this.divRemTo(d, y, z); |
|
while (y.signum() > 0) { |
|
r = (a + z.intValue()).toString(b).substr(1) + r; |
|
y.divRemTo(d, y, z); |
|
} |
|
return z.intValue().toString(b) + r; |
|
} |
|
function bnpFromRadix(s, b) { |
|
this.fromInt(0); |
|
if (b == null) |
|
b = 10; |
|
var cs = this.chunkSize(b); |
|
var d = Math.pow(b, cs), mi = false, j = 0, w = 0; |
|
for (var i2 = 0; i2 < s.length; ++i2) { |
|
var x = intAt(s, i2); |
|
if (x < 0) { |
|
if (s.charAt(i2) == "-" && this.signum() == 0) |
|
mi = true; |
|
continue; |
|
} |
|
w = b * w + x; |
|
if (++j >= cs) { |
|
this.dMultiply(d); |
|
this.dAddOffset(w, 0); |
|
j = 0; |
|
w = 0; |
|
} |
|
} |
|
if (j > 0) { |
|
this.dMultiply(Math.pow(b, j)); |
|
this.dAddOffset(w, 0); |
|
} |
|
if (mi) |
|
BigInteger.ZERO.subTo(this, this); |
|
} |
|
function bnpFromNumber(a, b, c) { |
|
if (typeof b == "number") { |
|
if (a < 2) |
|
this.fromInt(1); |
|
else { |
|
this.fromNumber(a, c); |
|
if (!this.testBit(a - 1)) |
|
this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this); |
|
if (this.isEven()) |
|
this.dAddOffset(1, 0); |
|
while (!this.isProbablePrime(b)) { |
|
this.dAddOffset(2, 0); |
|
if (this.bitLength() > a) |
|
this.subTo(BigInteger.ONE.shiftLeft(a - 1), this); |
|
} |
|
} |
|
} else { |
|
var x = new Array(), t = a & 7; |
|
x.length = (a >> 3) + 1; |
|
b.nextBytes(x); |
|
if (t > 0) |
|
x[0] &= (1 << t) - 1; |
|
else |
|
x[0] = 0; |
|
this.fromString(x, 256); |
|
} |
|
} |
|
function bnToByteArray() { |
|
var this_array2 = this.array; |
|
var i2 = this.t, r = new Array(); |
|
r[0] = this.s; |
|
var p = BI_DB - i2 * BI_DB % 8, d, k = 0; |
|
if (i2-- > 0) { |
|
if (p < BI_DB && (d = this_array2[i2] >> p) != (this.s & BI_DM) >> p) |
|
r[k++] = d | this.s << BI_DB - p; |
|
while (i2 >= 0) { |
|
if (p < 8) { |
|
d = (this_array2[i2] & (1 << p) - 1) << 8 - p; |
|
d |= this_array2[--i2] >> (p += BI_DB - 8); |
|
} else { |
|
d = this_array2[i2] >> (p -= 8) & 255; |
|
if (p <= 0) { |
|
p += BI_DB; |
|
--i2; |
|
} |
|
} |
|
if ((d & 128) != 0) |
|
d |= -256; |
|
if (k == 0 && (this.s & 128) != (d & 128)) |
|
++k; |
|
if (k > 0 || d != this.s) |
|
r[k++] = d; |
|
} |
|
} |
|
return r; |
|
} |
|
function bnEquals(a) { |
|
return this.compareTo(a) == 0; |
|
} |
|
function bnMin(a) { |
|
return this.compareTo(a) < 0 ? this : a; |
|
} |
|
function bnMax(a) { |
|
return this.compareTo(a) > 0 ? this : a; |
|
} |
|
function bnpBitwiseTo(a, op, r) { |
|
var this_array2 = this.array; |
|
var a_array = a.array; |
|
var r_array = r.array; |
|
var i2, f, m = Math.min(a.t, this.t); |
|
for (i2 = 0; i2 < m; ++i2) |
|
r_array[i2] = op(this_array2[i2], a_array[i2]); |
|
if (a.t < this.t) { |
|
f = a.s & BI_DM; |
|
for (i2 = m; i2 < this.t; ++i2) |
|
r_array[i2] = op(this_array2[i2], f); |
|
r.t = this.t; |
|
} else { |
|
f = this.s & BI_DM; |
|
for (i2 = m; i2 < a.t; ++i2) |
|
r_array[i2] = op(f, a_array[i2]); |
|
r.t = a.t; |
|
} |
|
r.s = op(this.s, a.s); |
|
r.clamp(); |
|
} |
|
function op_and(x, y) { |
|
return x & y; |
|
} |
|
function bnAnd(a) { |
|
var r = nbi(); |
|
this.bitwiseTo(a, op_and, r); |
|
return r; |
|
} |
|
function op_or(x, y) { |
|
return x | y; |
|
} |
|
function bnOr(a) { |
|
var r = nbi(); |
|
this.bitwiseTo(a, op_or, r); |
|
return r; |
|
} |
|
function op_xor(x, y) { |
|
return x ^ y; |
|
} |
|
function bnXor(a) { |
|
var r = nbi(); |
|
this.bitwiseTo(a, op_xor, r); |
|
return r; |
|
} |
|
function op_andnot(x, y) { |
|
return x & ~y; |
|
} |
|
function bnAndNot(a) { |
|
var r = nbi(); |
|
this.bitwiseTo(a, op_andnot, r); |
|
return r; |
|
} |
|
function bnNot() { |
|
var this_array2 = this.array; |
|
var r = nbi(); |
|
var r_array = r.array; |
|
for (var i2 = 0; i2 < this.t; ++i2) |
|
r_array[i2] = BI_DM & ~this_array2[i2]; |
|
r.t = this.t; |
|
r.s = ~this.s; |
|
return r; |
|
} |
|
function bnShiftLeft(n) { |
|
var r = nbi(); |
|
if (n < 0) |
|
this.rShiftTo(-n, r); |
|
else |
|
this.lShiftTo(n, r); |
|
return r; |
|
} |
|
function bnShiftRight(n) { |
|
var r = nbi(); |
|
if (n < 0) |
|
this.lShiftTo(-n, r); |
|
else |
|
this.rShiftTo(n, r); |
|
return r; |
|
} |
|
function lbit(x) { |
|
if (x == 0) |
|
return -1; |
|
var r = 0; |
|
if ((x & 65535) == 0) { |
|
x >>= 16; |
|
r += 16; |
|
} |
|
if ((x & 255) == 0) { |
|
x >>= 8; |
|
r += 8; |
|
} |
|
if ((x & 15) == 0) { |
|
x >>= 4; |
|
r += 4; |
|
} |
|
if ((x & 3) == 0) { |
|
x >>= 2; |
|
r += 2; |
|
} |
|
if ((x & 1) == 0) |
|
++r; |
|
return r; |
|
} |
|
function bnGetLowestSetBit() { |
|
var this_array2 = this.array; |
|
for (var i2 = 0; i2 < this.t; ++i2) |
|
if (this_array2[i2] != 0) |
|
return i2 * BI_DB + lbit(this_array2[i2]); |
|
if (this.s < 0) |
|
return this.t * BI_DB; |
|
return -1; |
|
} |
|
function cbit(x) { |
|
var r = 0; |
|
while (x != 0) { |
|
x &= x - 1; |
|
++r; |
|
} |
|
return r; |
|
} |
|
function bnBitCount() { |
|
var r = 0, x = this.s & BI_DM; |
|
for (var i2 = 0; i2 < this.t; ++i2) |
|
r += cbit(this_array[i2] ^ x); |
|
return r; |
|
} |
|
function bnTestBit(n) { |
|
var this_array2 = this.array; |
|
var j = Math.floor(n / BI_DB); |
|
if (j >= this.t) |
|
return this.s != 0; |
|
return (this_array2[j] & 1 << n % BI_DB) != 0; |
|
} |
|
function bnpChangeBit(n, op) { |
|
var r = BigInteger.ONE.shiftLeft(n); |
|
this.bitwiseTo(r, op, r); |
|
return r; |
|
} |
|
function bnSetBit(n) { |
|
return this.changeBit(n, op_or); |
|
} |
|
function bnClearBit(n) { |
|
return this.changeBit(n, op_andnot); |
|
} |
|
function bnFlipBit(n) { |
|
return this.changeBit(n, op_xor); |
|
} |
|
function bnpAddTo(a, r) { |
|
var this_array2 = this.array; |
|
var a_array = a.array; |
|
var r_array = r.array; |
|
var i2 = 0, c = 0, m = Math.min(a.t, this.t); |
|
while (i2 < m) { |
|
c += this_array2[i2] + a_array[i2]; |
|
r_array[i2++] = c & BI_DM; |
|
c >>= BI_DB; |
|
} |
|
if (a.t < this.t) { |
|
c += a.s; |
|
while (i2 < this.t) { |
|
c += this_array2[i2]; |
|
r_array[i2++] = c & BI_DM; |
|
c >>= BI_DB; |
|
} |
|
c += this.s; |
|
} else { |
|
c += this.s; |
|
while (i2 < a.t) { |
|
c += a_array[i2]; |
|
r_array[i2++] = c & BI_DM; |
|
c >>= BI_DB; |
|
} |
|
c += a.s; |
|
} |
|
r.s = c < 0 ? -1 : 0; |
|
if (c > 0) |
|
r_array[i2++] = c; |
|
else if (c < -1) |
|
r_array[i2++] = BI_DV + c; |
|
r.t = i2; |
|
r.clamp(); |
|
} |
|
function bnAdd(a) { |
|
var r = nbi(); |
|
this.addTo(a, r); |
|
return r; |
|
} |
|
function bnSubtract(a) { |
|
var r = nbi(); |
|
this.subTo(a, r); |
|
return r; |
|
} |
|
function bnMultiply(a) { |
|
var r = nbi(); |
|
this.multiplyTo(a, r); |
|
return r; |
|
} |
|
function bnDivide(a) { |
|
var r = nbi(); |
|
this.divRemTo(a, r, null); |
|
return r; |
|
} |
|
function bnRemainder(a) { |
|
var r = nbi(); |
|
this.divRemTo(a, null, r); |
|
return r; |
|
} |
|
function bnDivideAndRemainder(a) { |
|
var q = nbi(), r = nbi(); |
|
this.divRemTo(a, q, r); |
|
return new Array(q, r); |
|
} |
|
function bnpDMultiply(n) { |
|
var this_array2 = this.array; |
|
this_array2[this.t] = this.am(0, n - 1, this, 0, 0, this.t); |
|
++this.t; |
|
this.clamp(); |
|
} |
|
function bnpDAddOffset(n, w) { |
|
var this_array2 = this.array; |
|
while (this.t <= w) |
|
this_array2[this.t++] = 0; |
|
this_array2[w] += n; |
|
while (this_array2[w] >= BI_DV) { |
|
this_array2[w] -= BI_DV; |
|
if (++w >= this.t) |
|
this_array2[this.t++] = 0; |
|
++this_array2[w]; |
|
} |
|
} |
|
function NullExp() { |
|
} |
|
function nNop(x) { |
|
return x; |
|
} |
|
function nMulTo(x, y, r) { |
|
x.multiplyTo(y, r); |
|
} |
|
function nSqrTo(x, r) { |
|
x.squareTo(r); |
|
} |
|
NullExp.prototype.convert = nNop; |
|
NullExp.prototype.revert = nNop; |
|
NullExp.prototype.mulTo = nMulTo; |
|
NullExp.prototype.sqrTo = nSqrTo; |
|
function bnPow(e) { |
|
return this.exp(e, new NullExp()); |
|
} |
|
function bnpMultiplyLowerTo(a, n, r) { |
|
var r_array = r.array; |
|
var a_array = a.array; |
|
var i2 = Math.min(this.t + a.t, n); |
|
r.s = 0; |
|
r.t = i2; |
|
while (i2 > 0) |
|
r_array[--i2] = 0; |
|
var j; |
|
for (j = r.t - this.t; i2 < j; ++i2) |
|
r_array[i2 + this.t] = this.am(0, a_array[i2], r, i2, 0, this.t); |
|
for (j = Math.min(a.t, n); i2 < j; ++i2) |
|
this.am(0, a_array[i2], r, i2, 0, n - i2); |
|
r.clamp(); |
|
} |
|
function bnpMultiplyUpperTo(a, n, r) { |
|
var r_array = r.array; |
|
var a_array = a.array; |
|
--n; |
|
var i2 = r.t = this.t + a.t - n; |
|
r.s = 0; |
|
while (--i2 >= 0) |
|
r_array[i2] = 0; |
|
for (i2 = Math.max(n - this.t, 0); i2 < a.t; ++i2) |
|
r_array[this.t + i2 - n] = this.am(n - i2, a_array[i2], r, 0, 0, this.t + i2 - n); |
|
r.clamp(); |
|
r.drShiftTo(1, r); |
|
} |
|
function Barrett(m) { |
|
this.r2 = nbi(); |
|
this.q3 = nbi(); |
|
BigInteger.ONE.dlShiftTo(2 * m.t, this.r2); |
|
this.mu = this.r2.divide(m); |
|
this.m = m; |
|
} |
|
function barrettConvert(x) { |
|
if (x.s < 0 || x.t > 2 * this.m.t) |
|
return x.mod(this.m); |
|
else if (x.compareTo(this.m) < 0) |
|
return x; |
|
else { |
|
var r = nbi(); |
|
x.copyTo(r); |
|
this.reduce(r); |
|
return r; |
|
} |
|
} |
|
function barrettRevert(x) { |
|
return x; |
|
} |
|
function barrettReduce(x) { |
|
x.drShiftTo(this.m.t - 1, this.r2); |
|
if (x.t > this.m.t + 1) { |
|
x.t = this.m.t + 1; |
|
x.clamp(); |
|
} |
|
this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3); |
|
this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); |
|
while (x.compareTo(this.r2) < 0) |
|
x.dAddOffset(1, this.m.t + 1); |
|
x.subTo(this.r2, x); |
|
while (x.compareTo(this.m) >= 0) |
|
x.subTo(this.m, x); |
|
} |
|
function barrettSqrTo(x, r) { |
|
x.squareTo(r); |
|
this.reduce(r); |
|
} |
|
function barrettMulTo(x, y, r) { |
|
x.multiplyTo(y, r); |
|
this.reduce(r); |
|
} |
|
Barrett.prototype.convert = barrettConvert; |
|
Barrett.prototype.revert = barrettRevert; |
|
Barrett.prototype.reduce = barrettReduce; |
|
Barrett.prototype.mulTo = barrettMulTo; |
|
Barrett.prototype.sqrTo = barrettSqrTo; |
|
function bnModPow(e, m) { |
|
var e_array = e.array; |
|
var i2 = e.bitLength(), k, r = nbv(1), z; |
|
if (i2 <= 0) |
|
return r; |
|
else if (i2 < 18) |
|
k = 1; |
|
else if (i2 < 48) |
|
k = 3; |
|
else if (i2 < 144) |
|
k = 4; |
|
else if (i2 < 768) |
|
k = 5; |
|
else |
|
k = 6; |
|
if (i2 < 8) |
|
z = new Classic(m); |
|
else if (m.isEven()) |
|
z = new Barrett(m); |
|
else |
|
z = new Montgomery(m); |
|
var g = new Array(), n = 3, k1 = k - 1, km = (1 << k) - 1; |
|
g[1] = z.convert(this); |
|
if (k > 1) { |
|
var g2 = nbi(); |
|
z.sqrTo(g[1], g2); |
|
while (n <= km) { |
|
g[n] = nbi(); |
|
z.mulTo(g2, g[n - 2], g[n]); |
|
n += 2; |
|
} |
|
} |
|
var j = e.t - 1, w, is1 = true, r2 = nbi(), t; |
|
i2 = nbits(e_array[j]) - 1; |
|
while (j >= 0) { |
|
if (i2 >= k1) |
|
w = e_array[j] >> i2 - k1 & km; |
|
else { |
|
w = (e_array[j] & (1 << i2 + 1) - 1) << k1 - i2; |
|
if (j > 0) |
|
w |= e_array[j - 1] >> BI_DB + i2 - k1; |
|
} |
|
n = k; |
|
while ((w & 1) == 0) { |
|
w >>= 1; |
|
--n; |
|
} |
|
if ((i2 -= n) < 0) { |
|
i2 += BI_DB; |
|
--j; |
|
} |
|
if (is1) { |
|
g[w].copyTo(r); |
|
is1 = false; |
|
} else { |
|
while (n > 1) { |
|
z.sqrTo(r, r2); |
|
z.sqrTo(r2, r); |
|
n -= 2; |
|
} |
|
if (n > 0) |
|
z.sqrTo(r, r2); |
|
else { |
|
t = r; |
|
r = r2; |
|
r2 = t; |
|
} |
|
z.mulTo(r2, g[w], r); |
|
} |
|
while (j >= 0 && (e_array[j] & 1 << i2) == 0) { |
|
z.sqrTo(r, r2); |
|
t = r; |
|
r = r2; |
|
r2 = t; |
|
if (--i2 < 0) { |
|
i2 = BI_DB - 1; |
|
--j; |
|
} |
|
} |
|
} |
|
return z.revert(r); |
|
} |
|
function bnGCD(a) { |
|
var x = this.s < 0 ? this.negate() : this.clone(); |
|
var y = a.s < 0 ? a.negate() : a.clone(); |
|
if (x.compareTo(y) < 0) { |
|
var t = x; |
|
x = y; |
|
y = t; |
|
} |
|
var i2 = x.getLowestSetBit(), g = y.getLowestSetBit(); |
|
if (g < 0) |
|
return x; |
|
if (i2 < g) |
|
g = i2; |
|
if (g > 0) { |
|
x.rShiftTo(g, x); |
|
y.rShiftTo(g, y); |
|
} |
|
while (x.signum() > 0) { |
|
if ((i2 = x.getLowestSetBit()) > 0) |
|
x.rShiftTo(i2, x); |
|
if ((i2 = y.getLowestSetBit()) > 0) |
|
y.rShiftTo(i2, y); |
|
if (x.compareTo(y) >= 0) { |
|
x.subTo(y, x); |
|
x.rShiftTo(1, x); |
|
} else { |
|
y.subTo(x, y); |
|
y.rShiftTo(1, y); |
|
} |
|
} |
|
if (g > 0) |
|
y.lShiftTo(g, y); |
|
return y; |
|
} |
|
function bnpModInt(n) { |
|
var this_array2 = this.array; |
|
if (n <= 0) |
|
return 0; |
|
var d = BI_DV % n, r = this.s < 0 ? n - 1 : 0; |
|
if (this.t > 0) |
|
if (d == 0) |
|
r = this_array2[0] % n; |
|
else |
|
for (var i2 = this.t - 1; i2 >= 0; --i2) |
|
r = (d * r + this_array2[i2]) % n; |
|
return r; |
|
} |
|
function bnModInverse(m) { |
|
var ac = m.isEven(); |
|
if (this.isEven() && ac || m.signum() == 0) |
|
return BigInteger.ZERO; |
|
var u = m.clone(), v = this.clone(); |
|
var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1); |
|
while (u.signum() != 0) { |
|
while (u.isEven()) { |
|
u.rShiftTo(1, u); |
|
if (ac) { |
|
if (!a.isEven() || !b.isEven()) { |
|
a.addTo(this, a); |
|
b.subTo(m, b); |
|
} |
|
a.rShiftTo(1, a); |
|
} else if (!b.isEven()) |
|
b.subTo(m, b); |
|
b.rShiftTo(1, b); |
|
} |
|
while (v.isEven()) { |
|
v.rShiftTo(1, v); |
|
if (ac) { |
|
if (!c.isEven() || !d.isEven()) { |
|
c.addTo(this, c); |
|
d.subTo(m, d); |
|
} |
|
c.rShiftTo(1, c); |
|
} else if (!d.isEven()) |
|
d.subTo(m, d); |
|
d.rShiftTo(1, d); |
|
} |
|
if (u.compareTo(v) >= 0) { |
|
u.subTo(v, u); |
|
if (ac) |
|
a.subTo(c, a); |
|
b.subTo(d, b); |
|
} else { |
|
v.subTo(u, v); |
|
if (ac) |
|
c.subTo(a, c); |
|
d.subTo(b, d); |
|
} |
|
} |
|
if (v.compareTo(BigInteger.ONE) != 0) |
|
return BigInteger.ZERO; |
|
if (d.compareTo(m) >= 0) |
|
return d.subtract(m); |
|
if (d.signum() < 0) |
|
d.addTo(m, d); |
|
else |
|
return d; |
|
if (d.signum() < 0) |
|
return d.add(m); |
|
else |
|
return d; |
|
} |
|
var lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509]; |
|
var lplim = (1 << 26) / lowprimes[lowprimes.length - 1]; |
|
function bnIsProbablePrime(t) { |
|
var i2, x = this.abs(); |
|
var x_array = x.array; |
|
if (x.t == 1 && x_array[0] <= lowprimes[lowprimes.length - 1]) { |
|
for (i2 = 0; i2 < lowprimes.length; ++i2) |
|
if (x_array[0] == lowprimes[i2]) |
|
return true; |
|
return false; |
|
} |
|
if (x.isEven()) |
|
return false; |
|
i2 = 1; |
|
while (i2 < lowprimes.length) { |
|
var m = lowprimes[i2], j = i2 + 1; |
|
while (j < lowprimes.length && m < lplim) |
|
m *= lowprimes[j++]; |
|
m = x.modInt(m); |
|
while (i2 < j) |
|
if (m % lowprimes[i2++] == 0) |
|
return false; |
|
} |
|
return x.millerRabin(t); |
|
} |
|
function bnpMillerRabin(t) { |
|
var n1 = this.subtract(BigInteger.ONE); |
|
var k = n1.getLowestSetBit(); |
|
if (k <= 0) |
|
return false; |
|
var r = n1.shiftRight(k); |
|
t = t + 1 >> 1; |
|
if (t > lowprimes.length) |
|
t = lowprimes.length; |
|
var a = nbi(); |
|
for (var i2 = 0; i2 < t; ++i2) { |
|
a.fromInt(lowprimes[i2]); |
|
var y = a.modPow(r, this); |
|
if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) { |
|
var j = 1; |
|
while (j++ < k && y.compareTo(n1) != 0) { |
|
y = y.modPowInt(2, this); |
|
if (y.compareTo(BigInteger.ONE) == 0) |
|
return false; |
|
} |
|
if (y.compareTo(n1) != 0) |
|
return false; |
|
} |
|
} |
|
return true; |
|
} |
|
BigInteger.prototype.chunkSize = bnpChunkSize; |
|
BigInteger.prototype.toRadix = bnpToRadix; |
|
BigInteger.prototype.fromRadix = bnpFromRadix; |
|
BigInteger.prototype.fromNumber = bnpFromNumber; |
|
BigInteger.prototype.bitwiseTo = bnpBitwiseTo; |
|
BigInteger.prototype.changeBit = bnpChangeBit; |
|
BigInteger.prototype.addTo = bnpAddTo; |
|
BigInteger.prototype.dMultiply = bnpDMultiply; |
|
BigInteger.prototype.dAddOffset = bnpDAddOffset; |
|
BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo; |
|
BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo; |
|
BigInteger.prototype.modInt = bnpModInt; |
|
BigInteger.prototype.millerRabin = bnpMillerRabin; |
|
BigInteger.prototype.clone = bnClone; |
|
BigInteger.prototype.intValue = bnIntValue; |
|
BigInteger.prototype.byteValue = bnByteValue; |
|
BigInteger.prototype.shortValue = bnShortValue; |
|
BigInteger.prototype.signum = bnSigNum; |
|
BigInteger.prototype.toByteArray = bnToByteArray; |
|
BigInteger.prototype.equals = bnEquals; |
|
BigInteger.prototype.min = bnMin; |
|
BigInteger.prototype.max = bnMax; |
|
BigInteger.prototype.and = bnAnd; |
|
BigInteger.prototype.or = bnOr; |
|
BigInteger.prototype.xor = bnXor; |
|
BigInteger.prototype.andNot = bnAndNot; |
|
BigInteger.prototype.not = bnNot; |
|
BigInteger.prototype.shiftLeft = bnShiftLeft; |
|
BigInteger.prototype.shiftRight = bnShiftRight; |
|
BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit; |
|
BigInteger.prototype.bitCount = bnBitCount; |
|
BigInteger.prototype.testBit = bnTestBit; |
|
BigInteger.prototype.setBit = bnSetBit; |
|
BigInteger.prototype.clearBit = bnClearBit; |
|
BigInteger.prototype.flipBit = bnFlipBit; |
|
BigInteger.prototype.add = bnAdd; |
|
BigInteger.prototype.subtract = bnSubtract; |
|
BigInteger.prototype.multiply = bnMultiply; |
|
BigInteger.prototype.divide = bnDivide; |
|
BigInteger.prototype.remainder = bnRemainder; |
|
BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder; |
|
BigInteger.prototype.modPow = bnModPow; |
|
BigInteger.prototype.modInverse = bnModInverse; |
|
BigInteger.prototype.pow = bnPow; |
|
BigInteger.prototype.gcd = bnGCD; |
|
BigInteger.prototype.isProbablePrime = bnIsProbablePrime; |
|
function Arcfour() { |
|
this.i = 0; |
|
this.j = 0; |
|
this.S = new Array(); |
|
} |
|
function ARC4init(key) { |
|
var i2, j, t; |
|
for (i2 = 0; i2 < 256; ++i2) |
|
this.S[i2] = i2; |
|
j = 0; |
|
for (i2 = 0; i2 < 256; ++i2) { |
|
j = j + this.S[i2] + key[i2 % key.length] & 255; |
|
t = this.S[i2]; |
|
this.S[i2] = this.S[j]; |
|
this.S[j] = t; |
|
} |
|
this.i = 0; |
|
this.j = 0; |
|
} |
|
function ARC4next() { |
|
var t; |
|
this.i = this.i + 1 & 255; |
|
this.j = this.j + this.S[this.i] & 255; |
|
t = this.S[this.i]; |
|
this.S[this.i] = this.S[this.j]; |
|
this.S[this.j] = t; |
|
return this.S[t + this.S[this.i] & 255]; |
|
} |
|
Arcfour.prototype.init = ARC4init; |
|
Arcfour.prototype.next = ARC4next; |
|
function prng_newstate() { |
|
return new Arcfour(); |
|
} |
|
var rng_psize = 256; |
|
var rng_state; |
|
var rng_pool; |
|
var rng_pptr; |
|
function rng_seed_int(x) { |
|
rng_pool[rng_pptr++] ^= x & 255; |
|
rng_pool[rng_pptr++] ^= x >> 8 & 255; |
|
rng_pool[rng_pptr++] ^= x >> 16 & 255; |
|
rng_pool[rng_pptr++] ^= x >> 24 & 255; |
|
if (rng_pptr >= rng_psize) |
|
rng_pptr -= rng_psize; |
|
} |
|
function rng_seed_time() { |
|
rng_seed_int(1122926989487); |
|
} |
|
if (rng_pool == null) { |
|
rng_pool = new Array(); |
|
rng_pptr = 0; |
|
while (rng_pptr < rng_psize) { |
|
t = Math.floor(65536 * Math.random()); |
|
rng_pool[rng_pptr++] = t >>> 8; |
|
rng_pool[rng_pptr++] = t & 255; |
|
} |
|
rng_pptr = 0; |
|
rng_seed_time(); |
|
} |
|
var t; |
|
function rng_get_byte() { |
|
if (rng_state == null) { |
|
rng_seed_time(); |
|
rng_state = prng_newstate(); |
|
rng_state.init(rng_pool); |
|
for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) |
|
rng_pool[rng_pptr] = 0; |
|
rng_pptr = 0; |
|
} |
|
return rng_state.next(); |
|
} |
|
function rng_get_bytes(ba) { |
|
var i2; |
|
for (i2 = 0; i2 < ba.length; ++i2) |
|
ba[i2] = rng_get_byte(); |
|
} |
|
function SecureRandom() { |
|
} |
|
SecureRandom.prototype.nextBytes = rng_get_bytes; |
|
function parseBigInt(str, r) { |
|
return new BigInteger(str, r); |
|
} |
|
function pkcs1pad2(s, n) { |
|
if (n < s.length + 11) { |
|
alert("Message too long for RSA"); |
|
return null; |
|
} |
|
var ba = new Array(); |
|
var i2 = s.length - 1; |
|
while (i2 >= 0 && n > 0) |
|
ba[--n] = s.charCodeAt(i2--); |
|
ba[--n] = 0; |
|
var rng = new SecureRandom(); |
|
var x = new Array(); |
|
while (n > 2) { |
|
x[0] = 0; |
|
while (x[0] == 0) |
|
rng.nextBytes(x); |
|
ba[--n] = x[0]; |
|
} |
|
ba[--n] = 2; |
|
ba[--n] = 0; |
|
return new BigInteger(ba); |
|
} |
|
function RSAKey() { |
|
this.n = null; |
|
this.e = 0; |
|
this.d = null; |
|
this.p = null; |
|
this.q = null; |
|
this.dmp1 = null; |
|
this.dmq1 = null; |
|
this.coeff = null; |
|
} |
|
function RSASetPublic(N, E) { |
|
if (N != null && E != null && N.length > 0 && E.length > 0) { |
|
this.n = parseBigInt(N, 16); |
|
this.e = parseInt(E, 16); |
|
} else |
|
alert("Invalid RSA public key"); |
|
} |
|
function RSADoPublic(x) { |
|
return x.modPowInt(this.e, this.n); |
|
} |
|
function RSAEncrypt(text) { |
|
var m = pkcs1pad2(text, this.n.bitLength() + 7 >> 3); |
|
if (m == null) |
|
return null; |
|
var c = this.doPublic(m); |
|
if (c == null) |
|
return null; |
|
var h = c.toString(16); |
|
if ((h.length & 1) == 0) |
|
return h; |
|
else |
|
return "0" + h; |
|
} |
|
RSAKey.prototype.doPublic = RSADoPublic; |
|
RSAKey.prototype.setPublic = RSASetPublic; |
|
RSAKey.prototype.encrypt = RSAEncrypt; |
|
function pkcs1unpad2(d, n) { |
|
var b = d.toByteArray(); |
|
var i2 = 0; |
|
while (i2 < b.length && b[i2] == 0) |
|
++i2; |
|
if (b.length - i2 != n - 1 || b[i2] != 2) |
|
return null; |
|
++i2; |
|
while (b[i2] != 0) |
|
if (++i2 >= b.length) |
|
return null; |
|
var ret = ""; |
|
while (++i2 < b.length) |
|
ret += String.fromCharCode(b[i2]); |
|
return ret; |
|
} |
|
function RSASetPrivate(N, E, D) { |
|
if (N != null && E != null && N.length > 0 && E.length > 0) { |
|
this.n = parseBigInt(N, 16); |
|
this.e = parseInt(E, 16); |
|
this.d = parseBigInt(D, 16); |
|
} else |
|
alert("Invalid RSA private key"); |
|
} |
|
function RSASetPrivateEx(N, E, D, P, Q, DP, DQ, C) { |
|
if (N != null && E != null && N.length > 0 && E.length > 0) { |
|
this.n = parseBigInt(N, 16); |
|
this.e = parseInt(E, 16); |
|
this.d = parseBigInt(D, 16); |
|
this.p = parseBigInt(P, 16); |
|
this.q = parseBigInt(Q, 16); |
|
this.dmp1 = parseBigInt(DP, 16); |
|
this.dmq1 = parseBigInt(DQ, 16); |
|
this.coeff = parseBigInt(C, 16); |
|
} else |
|
alert("Invalid RSA private key"); |
|
} |
|
function RSAGenerate(B, E) { |
|
var rng = new SecureRandom(); |
|
var qs = B >> 1; |
|
this.e = parseInt(E, 16); |
|
var ee = new BigInteger(E, 16); |
|
for (; ; ) { |
|
for (; ; ) { |
|
this.p = new BigInteger(B - qs, 1, rng); |
|
if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) |
|
break; |
|
} |
|
for (; ; ) { |
|
this.q = new BigInteger(qs, 1, rng); |
|
if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) |
|
break; |
|
} |
|
if (this.p.compareTo(this.q) <= 0) { |
|
var t = this.p; |
|
this.p = this.q; |
|
this.q = t; |
|
} |
|
var p1 = this.p.subtract(BigInteger.ONE); |
|
var q1 = this.q.subtract(BigInteger.ONE); |
|
var phi = p1.multiply(q1); |
|
if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) { |
|
this.n = this.p.multiply(this.q); |
|
this.d = ee.modInverse(phi); |
|
this.dmp1 = this.d.mod(p1); |
|
this.dmq1 = this.d.mod(q1); |
|
this.coeff = this.q.modInverse(this.p); |
|
break; |
|
} |
|
} |
|
} |
|
function RSADoPrivate(x) { |
|
if (this.p == null || this.q == null) |
|
return x.modPow(this.d, this.n); |
|
var xp = x.mod(this.p).modPow(this.dmp1, this.p); |
|
var xq = x.mod(this.q).modPow(this.dmq1, this.q); |
|
while (xp.compareTo(xq) < 0) |
|
xp = xp.add(this.p); |
|
return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq); |
|
} |
|
function RSADecrypt(ctext) { |
|
var c = parseBigInt(ctext, 16); |
|
var m = this.doPrivate(c); |
|
if (m == null) |
|
return null; |
|
return pkcs1unpad2(m, this.n.bitLength() + 7 >> 3); |
|
} |
|
RSAKey.prototype.doPrivate = RSADoPrivate; |
|
RSAKey.prototype.setPrivate = RSASetPrivate; |
|
RSAKey.prototype.setPrivateEx = RSASetPrivateEx; |
|
RSAKey.prototype.generate = RSAGenerate; |
|
RSAKey.prototype.decrypt = RSADecrypt; |
|
var nValue = "a5261939975948bb7a58dffe5ff54e65f0498f9175f5a09288810b8975871e99af3b5dd94057b0fc07535f5f97444504fa35169d461d0d30cf0192e307727c065168c788771c561a9400fb49175e9e6aa4e23fe11af69e9412dd23b0cb6684c4c2429bce139e848ab26d0829073351f4acd36074eafd036a5eb83359d2a698d3"; |
|
var eValue = "10001"; |
|
var dValue = "8e9912f6d3645894e8d38cb58c0db81ff516cf4c7e5a14c7f1eddb1459d2cded4d8d293fc97aee6aefb861859c8b6a3d1dfe710463e1f9ddc72048c09751971c4a580aa51eb523357a3cc48d31cfad1d4a165066ed92d4748fb6571211da5cb14bc11b6e2df7c1a559e6d5ac1cd5c94703a22891464fba23d0d965086277a161"; |
|
var pValue = "d090ce58a92c75233a6486cb0a9209bf3583b64f540c76f5294bb97d285eed33aec220bde14b2417951178ac152ceab6da7090905b478195498b352048f15e7d"; |
|
var qValue = "cab575dc652bb66df15a0359609d51d1db184750c00c6698b90ef3465c99655103edbf0d54c56aec0ce3c4d22592338092a126a0cc49f65a4a30d222b411e58f"; |
|
var dmp1Value = "1a24bca8e273df2f0e47c199bbf678604e7df7215480c77c8db39f49b000ce2cf7500038acfff5433b7d582a01f1826e6f4d42e1c57f5e1fef7b12aabc59fd25"; |
|
var dmq1Value = "3d06982efbbe47339e1f6d36b1216b8a741d410b0c662f54f7118b27b9a4ec9d914337eb39841d8666f3034408cf94f5b62f11c402fc994fe15a05493150d9fd"; |
|
var coeffValue = "3a3e731acd8960b7ff9eb81a7ff93bd1cfa74cbd56987db58b4594fb09c09084db1734c8143f98b602b981aaa9243ca28deb69b5b280ee8dcee0fd2625e53250"; |
|
setupEngine(am3, 28); |
|
var TEXT = "The quick brown fox jumped over the extremely lazy frog! Now is the time for all good men to come to the party."; |
|
var encrypted; |
|
function encrypt() { |
|
var RSA = new RSAKey(); |
|
RSA.setPublic(nValue, eValue); |
|
RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue); |
|
encrypted = RSA.encrypt(TEXT); |
|
} |
|
function decrypt() { |
|
var RSA = new RSAKey(); |
|
RSA.setPublic(nValue, eValue); |
|
RSA.setPrivateEx(nValue, eValue, dValue, pValue, qValue, dmp1Value, dmq1Value, coeffValue); |
|
var decrypted = RSA.decrypt(encrypted); |
|
if (decrypted != TEXT) { |
|
throw new Error("Crypto operation failed"); |
|
} |
|
} |
|
|
|
// src/raytrace.js |
|
var RayTrace = new BenchmarkSuite("RayTrace", 739989, [ |
|
new Benchmark("RayTrace", renderScene) |
|
]); |
|
var checkNumber; |
|
var Class = { |
|
create: function() { |
|
return function() { |
|
this.initialize.apply(this, arguments); |
|
}; |
|
} |
|
}; |
|
Object.extend = function(destination, source) { |
|
for (var property in source) { |
|
destination[property] = source[property]; |
|
} |
|
return destination; |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Color = Class.create(); |
|
Flog.RayTracer.Color.prototype = { |
|
red: 0, |
|
green: 0, |
|
blue: 0, |
|
initialize: function(r, g, b) { |
|
if (!r) |
|
r = 0; |
|
if (!g) |
|
g = 0; |
|
if (!b) |
|
b = 0; |
|
this.red = r; |
|
this.green = g; |
|
this.blue = b; |
|
}, |
|
add: function(c1, c2) { |
|
var result = new Flog.RayTracer.Color(0, 0, 0); |
|
result.red = c1.red + c2.red; |
|
result.green = c1.green + c2.green; |
|
result.blue = c1.blue + c2.blue; |
|
return result; |
|
}, |
|
addScalar: function(c1, s) { |
|
var result = new Flog.RayTracer.Color(0, 0, 0); |
|
result.red = c1.red + s; |
|
result.green = c1.green + s; |
|
result.blue = c1.blue + s; |
|
result.limit(); |
|
return result; |
|
}, |
|
subtract: function(c1, c2) { |
|
var result = new Flog.RayTracer.Color(0, 0, 0); |
|
result.red = c1.red - c2.red; |
|
result.green = c1.green - c2.green; |
|
result.blue = c1.blue - c2.blue; |
|
return result; |
|
}, |
|
multiply: function(c1, c2) { |
|
var result = new Flog.RayTracer.Color(0, 0, 0); |
|
result.red = c1.red * c2.red; |
|
result.green = c1.green * c2.green; |
|
result.blue = c1.blue * c2.blue; |
|
return result; |
|
}, |
|
multiplyScalar: function(c1, f) { |
|
var result = new Flog.RayTracer.Color(0, 0, 0); |
|
result.red = c1.red * f; |
|
result.green = c1.green * f; |
|
result.blue = c1.blue * f; |
|
return result; |
|
}, |
|
divideFactor: function(c1, f) { |
|
var result = new Flog.RayTracer.Color(0, 0, 0); |
|
result.red = c1.red / f; |
|
result.green = c1.green / f; |
|
result.blue = c1.blue / f; |
|
return result; |
|
}, |
|
limit: function() { |
|
this.red = this.red > 0 ? this.red > 1 ? 1 : this.red : 0; |
|
this.green = this.green > 0 ? this.green > 1 ? 1 : this.green : 0; |
|
this.blue = this.blue > 0 ? this.blue > 1 ? 1 : this.blue : 0; |
|
}, |
|
distance: function(color) { |
|
var d = Math.abs(this.red - color.red) + Math.abs(this.green - color.green) + Math.abs(this.blue - color.blue); |
|
return d; |
|
}, |
|
blend: function(c1, c2, w) { |
|
var result = new Flog.RayTracer.Color(0, 0, 0); |
|
result = Flog.RayTracer.Color.prototype.add(Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w), Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)); |
|
return result; |
|
}, |
|
brightness: function() { |
|
var r = Math.floor(this.red * 255); |
|
var g = Math.floor(this.green * 255); |
|
var b = Math.floor(this.blue * 255); |
|
return r * 77 + g * 150 + b * 29 >> 8; |
|
}, |
|
toString: function() { |
|
var r = Math.floor(this.red * 255); |
|
var g = Math.floor(this.green * 255); |
|
var b = Math.floor(this.blue * 255); |
|
return "rgb(" + r + "," + g + "," + b + ")"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Light = Class.create(); |
|
Flog.RayTracer.Light.prototype = { |
|
position: null, |
|
color: null, |
|
intensity: 10, |
|
initialize: function(pos, color, intensity) { |
|
this.position = pos; |
|
this.color = color; |
|
this.intensity = intensity ? intensity : 10; |
|
}, |
|
toString: function() { |
|
return "Light [" + this.position.x + "," + this.position.y + "," + this.position.z + "]"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Vector = Class.create(); |
|
Flog.RayTracer.Vector.prototype = { |
|
x: 0, |
|
y: 0, |
|
z: 0, |
|
initialize: function(x, y, z) { |
|
this.x = x ? x : 0; |
|
this.y = y ? y : 0; |
|
this.z = z ? z : 0; |
|
}, |
|
copy: function(vector) { |
|
this.x = vector.x; |
|
this.y = vector.y; |
|
this.z = vector.z; |
|
}, |
|
normalize: function() { |
|
var m = this.magnitude(); |
|
return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m); |
|
}, |
|
magnitude: function() { |
|
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); |
|
}, |
|
cross: function(w) { |
|
return new Flog.RayTracer.Vector(-this.z * w.y + this.y * w.z, this.z * w.x - this.x * w.z, -this.y * w.x + this.x * w.y); |
|
}, |
|
dot: function(w) { |
|
return this.x * w.x + this.y * w.y + this.z * w.z; |
|
}, |
|
add: function(v, w) { |
|
return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z); |
|
}, |
|
subtract: function(v, w) { |
|
if (!w || !v) |
|
throw "Vectors must be defined [" + v + "," + w + "]"; |
|
return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z); |
|
}, |
|
multiplyVector: function(v, w) { |
|
return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z); |
|
}, |
|
multiplyScalar: function(v, w) { |
|
return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w); |
|
}, |
|
toString: function() { |
|
return "Vector [" + this.x + "," + this.y + "," + this.z + "]"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Ray = Class.create(); |
|
Flog.RayTracer.Ray.prototype = { |
|
position: null, |
|
direction: null, |
|
initialize: function(pos, dir) { |
|
this.position = pos; |
|
this.direction = dir; |
|
}, |
|
toString: function() { |
|
return "Ray [" + this.position + "," + this.direction + "]"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Scene = Class.create(); |
|
Flog.RayTracer.Scene.prototype = { |
|
camera: null, |
|
shapes: [], |
|
lights: [], |
|
background: null, |
|
initialize: function() { |
|
this.camera = new Flog.RayTracer.Camera(new Flog.RayTracer.Vector(0, 0, -5), new Flog.RayTracer.Vector(0, 0, 1), new Flog.RayTracer.Vector(0, 1, 0)); |
|
this.shapes = new Array(); |
|
this.lights = new Array(); |
|
this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0, 0, 0.5), 0.2); |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
if (typeof Flog.RayTracer.Material == "undefined") |
|
Flog.RayTracer.Material = {}; |
|
Flog.RayTracer.Material.BaseMaterial = Class.create(); |
|
Flog.RayTracer.Material.BaseMaterial.prototype = { |
|
gloss: 2, |
|
transparency: 0, |
|
reflection: 0, |
|
refraction: 0.5, |
|
hasTexture: false, |
|
initialize: function() { |
|
}, |
|
getColor: function(u, v) { |
|
}, |
|
wrapUp: function(t) { |
|
t = t % 2; |
|
if (t < -1) |
|
t += 2; |
|
if (t >= 1) |
|
t -= 2; |
|
return t; |
|
}, |
|
toString: function() { |
|
return "Material [gloss=" + this.gloss + ", transparency=" + this.transparency + ", hasTexture=" + this.hasTexture + "]"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Material.Solid = Class.create(); |
|
Flog.RayTracer.Material.Solid.prototype = Object.extend(new Flog.RayTracer.Material.BaseMaterial(), { |
|
initialize: function(color, reflection, refraction, transparency, gloss) { |
|
this.color = color; |
|
this.reflection = reflection; |
|
this.transparency = transparency; |
|
this.gloss = gloss; |
|
this.hasTexture = false; |
|
}, |
|
getColor: function(u, v) { |
|
return this.color; |
|
}, |
|
toString: function() { |
|
return "SolidMaterial [gloss=" + this.gloss + ", transparency=" + this.transparency + ", hasTexture=" + this.hasTexture + "]"; |
|
} |
|
}); |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Material.Chessboard = Class.create(); |
|
Flog.RayTracer.Material.Chessboard.prototype = Object.extend(new Flog.RayTracer.Material.BaseMaterial(), { |
|
colorEven: null, |
|
colorOdd: null, |
|
density: 0.5, |
|
initialize: function(colorEven, colorOdd, reflection, transparency, gloss, density) { |
|
this.colorEven = colorEven; |
|
this.colorOdd = colorOdd; |
|
this.reflection = reflection; |
|
this.transparency = transparency; |
|
this.gloss = gloss; |
|
this.density = density; |
|
this.hasTexture = true; |
|
}, |
|
getColor: function(u, v) { |
|
var t = this.wrapUp(u * this.density) * this.wrapUp(v * this.density); |
|
if (t < 0) |
|
return this.colorEven; |
|
else |
|
return this.colorOdd; |
|
}, |
|
toString: function() { |
|
return "ChessMaterial [gloss=" + this.gloss + ", transparency=" + this.transparency + ", hasTexture=" + this.hasTexture + "]"; |
|
} |
|
}); |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
if (typeof Flog.RayTracer.Shape == "undefined") |
|
Flog.RayTracer.Shape = {}; |
|
Flog.RayTracer.Shape.Sphere = Class.create(); |
|
Flog.RayTracer.Shape.Sphere.prototype = { |
|
initialize: function(pos, radius, material) { |
|
this.radius = radius; |
|
this.position = pos; |
|
this.material = material; |
|
}, |
|
intersect: function(ray) { |
|
var info = new Flog.RayTracer.IntersectionInfo(); |
|
info.shape = this; |
|
var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position); |
|
var B = dst.dot(ray.direction); |
|
var C = dst.dot(dst) - this.radius * this.radius; |
|
var D = B * B - C; |
|
if (D > 0) { |
|
info.isHit = true; |
|
info.distance = -B - Math.sqrt(D); |
|
info.position = Flog.RayTracer.Vector.prototype.add(ray.position, Flog.RayTracer.Vector.prototype.multiplyScalar(ray.direction, info.distance)); |
|
info.normal = Flog.RayTracer.Vector.prototype.subtract(info.position, this.position).normalize(); |
|
info.color = this.material.getColor(0, 0); |
|
} else { |
|
info.isHit = false; |
|
} |
|
return info; |
|
}, |
|
toString: function() { |
|
return "Sphere [position=" + this.position + ", radius=" + this.radius + "]"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
if (typeof Flog.RayTracer.Shape == "undefined") |
|
Flog.RayTracer.Shape = {}; |
|
Flog.RayTracer.Shape.Plane = Class.create(); |
|
Flog.RayTracer.Shape.Plane.prototype = { |
|
d: 0, |
|
initialize: function(pos, d, material) { |
|
this.position = pos; |
|
this.d = d; |
|
this.material = material; |
|
}, |
|
intersect: function(ray) { |
|
var info = new Flog.RayTracer.IntersectionInfo(); |
|
var Vd = this.position.dot(ray.direction); |
|
if (Vd == 0) |
|
return info; |
|
var t = -(this.position.dot(ray.position) + this.d) / Vd; |
|
if (t <= 0) |
|
return info; |
|
info.shape = this; |
|
info.isHit = true; |
|
info.position = Flog.RayTracer.Vector.prototype.add(ray.position, Flog.RayTracer.Vector.prototype.multiplyScalar(ray.direction, t)); |
|
info.normal = this.position; |
|
info.distance = t; |
|
if (this.material.hasTexture) { |
|
var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x); |
|
var vV = vU.cross(this.position); |
|
var u = info.position.dot(vU); |
|
var v = info.position.dot(vV); |
|
info.color = this.material.getColor(u, v); |
|
} else { |
|
info.color = this.material.getColor(0, 0); |
|
} |
|
return info; |
|
}, |
|
toString: function() { |
|
return "Plane [" + this.position + ", d=" + this.d + "]"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.IntersectionInfo = Class.create(); |
|
Flog.RayTracer.IntersectionInfo.prototype = { |
|
isHit: false, |
|
hitCount: 0, |
|
shape: null, |
|
position: null, |
|
normal: null, |
|
color: null, |
|
distance: null, |
|
initialize: function() { |
|
this.color = new Flog.RayTracer.Color(0, 0, 0); |
|
}, |
|
toString: function() { |
|
return "Intersection [" + this.position + "]"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Camera = Class.create(); |
|
Flog.RayTracer.Camera.prototype = { |
|
position: null, |
|
lookAt: null, |
|
equator: null, |
|
up: null, |
|
screen: null, |
|
initialize: function(pos, lookAt, up) { |
|
this.position = pos; |
|
this.lookAt = lookAt; |
|
this.up = up; |
|
this.equator = lookAt.normalize().cross(this.up); |
|
this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt); |
|
}, |
|
getRay: function(vx, vy) { |
|
var pos = Flog.RayTracer.Vector.prototype.subtract(this.screen, Flog.RayTracer.Vector.prototype.subtract(Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx), Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy))); |
|
pos.y = pos.y * -1; |
|
var dir = Flog.RayTracer.Vector.prototype.subtract(pos, this.position); |
|
var ray = new Flog.RayTracer.Ray(pos, dir.normalize()); |
|
return ray; |
|
}, |
|
toString: function() { |
|
return "Ray []"; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Background = Class.create(); |
|
Flog.RayTracer.Background.prototype = { |
|
color: null, |
|
ambience: 0, |
|
initialize: function(color, ambience) { |
|
this.color = color; |
|
this.ambience = ambience; |
|
} |
|
}; |
|
if (typeof Flog == "undefined") |
|
var Flog = {}; |
|
if (typeof Flog.RayTracer == "undefined") |
|
Flog.RayTracer = {}; |
|
Flog.RayTracer.Engine = Class.create(); |
|
Flog.RayTracer.Engine.prototype = { |
|
canvas: null, |
|
initialize: function(options) { |
|
this.options = Object.extend({ |
|
canvasHeight: 100, |
|
canvasWidth: 100, |
|
pixelWidth: 2, |
|
pixelHeight: 2, |
|
renderDiffuse: false, |
|
renderShadows: false, |
|
renderHighlights: false, |
|
renderReflections: false, |
|
rayDepth: 2 |
|
}, options || {}); |
|
this.options.canvasHeight /= this.options.pixelHeight; |
|
this.options.canvasWidth /= this.options.pixelWidth; |
|
}, |
|
setPixel: function(x, y, color) { |
|
var pxW, pxH; |
|
pxW = this.options.pixelWidth; |
|
pxH = this.options.pixelHeight; |
|
if (this.canvas) { |
|
this.canvas.fillStyle = color.toString(); |
|
this.canvas.fillRect(x * pxW, y * pxH, pxW, pxH); |
|
} else { |
|
if (x === y) { |
|
checkNumber += color.brightness(); |
|
} |
|
} |
|
}, |
|
renderScene: function(scene, canvas) { |
|
checkNumber = 0; |
|
if (canvas) { |
|
this.canvas = canvas.getContext("2d"); |
|
} else { |
|
this.canvas = null; |
|
} |
|
var canvasHeight = this.options.canvasHeight; |
|
var canvasWidth = this.options.canvasWidth; |
|
for (var y = 0; y < canvasHeight; y++) { |
|
for (var x = 0; x < canvasWidth; x++) { |
|
var yp = y * 1 / canvasHeight * 2 - 1; |
|
var xp = x * 1 / canvasWidth * 2 - 1; |
|
var ray = scene.camera.getRay(xp, yp); |
|
var color = this.getPixelColor(ray, scene); |
|
this.setPixel(x, y, color); |
|
} |
|
} |
|
if (checkNumber !== 2321) { |
|
throw new Error("Scene rendered incorrectly"); |
|
} |
|
}, |
|
getPixelColor: function(ray, scene) { |
|
var info = this.testIntersection(ray, scene, null); |
|
if (info.isHit) { |
|
var color = this.rayTrace(info, ray, scene, 0); |
|
return color; |
|
} |
|
return scene.background.color; |
|
}, |
|
testIntersection: function(ray, scene, exclude) { |
|
var hits = 0; |
|
var best = new Flog.RayTracer.IntersectionInfo(); |
|
best.distance = 2e3; |
|
for (var i2 = 0; i2 < scene.shapes.length; i2++) { |
|
var shape = scene.shapes[i2]; |
|
if (shape != exclude) { |
|
var info = shape.intersect(ray); |
|
if (info.isHit && info.distance >= 0 && info.distance < best.distance) { |
|
best = info; |
|
hits++; |
|
} |
|
} |
|
} |
|
best.hitCount = hits; |
|
return best; |
|
}, |
|
getReflectionRay: function(P, N, V) { |
|
var c1 = -N.dot(V); |
|
var R1 = Flog.RayTracer.Vector.prototype.add(Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2 * c1), V); |
|
return new Flog.RayTracer.Ray(P, R1); |
|
}, |
|
rayTrace: function(info, ray, scene, depth) { |
|
var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience); |
|
var oldColor = color; |
|
var shininess = Math.pow(10, info.shape.material.gloss + 1); |
|
for (var i2 = 0; i2 < scene.lights.length; i2++) { |
|
var light = scene.lights[i2]; |
|
var v = Flog.RayTracer.Vector.prototype.subtract(light.position, info.position).normalize(); |
|
if (this.options.renderDiffuse) { |
|
var L = v.dot(info.normal); |
|
if (L > 0) { |
|
color = Flog.RayTracer.Color.prototype.add(color, Flog.RayTracer.Color.prototype.multiply(info.color, Flog.RayTracer.Color.prototype.multiplyScalar(light.color, L))); |
|
} |
|
} |
|
if (depth <= this.options.rayDepth) { |
|
if (this.options.renderReflections && info.shape.material.reflection > 0) { |
|
var reflectionRay = this.getReflectionRay(info.position, info.normal, ray.direction); |
|
var refl = this.testIntersection(reflectionRay, scene, info.shape); |
|
if (refl.isHit && refl.distance > 0) { |
|
refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1); |
|
} else { |
|
refl.color = scene.background.color; |
|
} |
|
color = Flog.RayTracer.Color.prototype.blend(color, refl.color, info.shape.material.reflection); |
|
} |
|
} |
|
var shadowInfo = new Flog.RayTracer.IntersectionInfo(); |
|
if (this.options.renderShadows) { |
|
var shadowRay = new Flog.RayTracer.Ray(info.position, v); |
|
shadowInfo = this.testIntersection(shadowRay, scene, info.shape); |
|
if (shadowInfo.isHit && shadowInfo.shape != info.shape) { |
|
var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5); |
|
var dB = 0.5 * Math.pow(shadowInfo.shape.material.transparency, 0.5); |
|
color = Flog.RayTracer.Color.prototype.addScalar(vA, dB); |
|
} |
|
} |
|
if (this.options.renderHighlights && !shadowInfo.isHit && info.shape.material.gloss > 0) { |
|
var Lv = Flog.RayTracer.Vector.prototype.subtract(info.shape.position, light.position).normalize(); |
|
var E = Flog.RayTracer.Vector.prototype.subtract(scene.camera.position, info.shape.position).normalize(); |
|
var H = Flog.RayTracer.Vector.prototype.subtract(E, Lv).normalize(); |
|
var glossWeight = Math.pow(Math.max(info.normal.dot(H), 0), shininess); |
|
color = Flog.RayTracer.Color.prototype.add(Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight), color); |
|
} |
|
} |
|
color.limit(); |
|
return color; |
|
} |
|
}; |
|
function renderScene() { |
|
var scene = new Flog.RayTracer.Scene(); |
|
scene.camera = new Flog.RayTracer.Camera(new Flog.RayTracer.Vector(0, 0, -15), new Flog.RayTracer.Vector(-0.2, 0, 5), new Flog.RayTracer.Vector(0, 1, 0)); |
|
scene.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0.5, 0.5, 0.5), 0.4); |
|
var sphere = new Flog.RayTracer.Shape.Sphere(new Flog.RayTracer.Vector(-1.5, 1.5, 2), 1.5, new Flog.RayTracer.Material.Solid(new Flog.RayTracer.Color(0, 0.5, 0.5), 0.3, 0, 0, 2)); |
|
var sphere1 = new Flog.RayTracer.Shape.Sphere(new Flog.RayTracer.Vector(1, 0.25, 1), 0.5, new Flog.RayTracer.Material.Solid(new Flog.RayTracer.Color(0.9, 0.9, 0.9), 0.1, 0, 0, 1.5)); |
|
var plane = new Flog.RayTracer.Shape.Plane(new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(), 1.2, new Flog.RayTracer.Material.Chessboard(new Flog.RayTracer.Color(1, 1, 1), new Flog.RayTracer.Color(0, 0, 0), 0.2, 0, 1, 0.7)); |
|
scene.shapes.push(plane); |
|
scene.shapes.push(sphere); |
|
scene.shapes.push(sphere1); |
|
var light = new Flog.RayTracer.Light(new Flog.RayTracer.Vector(5, 10, -1), new Flog.RayTracer.Color(0.8, 0.8, 0.8)); |
|
var light1 = new Flog.RayTracer.Light(new Flog.RayTracer.Vector(-3, 5, -15), new Flog.RayTracer.Color(0.8, 0.8, 0.8), 100); |
|
scene.lights.push(light); |
|
scene.lights.push(light1); |
|
var imageWidth = 100; |
|
var imageHeight = 100; |
|
var pixelSize = "5,5".split(","); |
|
var renderDiffuse = true; |
|
var renderShadows = true; |
|
var renderHighlights = true; |
|
var renderReflections = true; |
|
var rayDepth = 2; |
|
var raytracer = new Flog.RayTracer.Engine({ |
|
canvasWidth: imageWidth, |
|
canvasHeight: imageHeight, |
|
pixelWidth: pixelSize[0], |
|
pixelHeight: pixelSize[1], |
|
renderDiffuse, |
|
renderHighlights, |
|
renderShadows, |
|
renderReflections, |
|
rayDepth |
|
}); |
|
raytracer.renderScene(scene, null, 0); |
|
} |
|
|
|
// src/earley-boyer.js |
|
var EarleyBoyer = new BenchmarkSuite("EarleyBoyer", 666463, [ |
|
new Benchmark("Earley", function() { |
|
BgL_earleyzd2benchmarkzd2(); |
|
}), |
|
new Benchmark("Boyer", function() { |
|
BgL_nboyerzd2benchmarkzd2(); |
|
}) |
|
]); |
|
function sc_print_debug() { |
|
sc_print.apply(null, arguments); |
|
} |
|
var sc_JS_GLOBALS = void 0; |
|
var __sc_LINE = -1; |
|
var __sc_FILE = ""; |
|
function sc_alert() { |
|
var len = arguments.length; |
|
var s = ""; |
|
var i2; |
|
for (i2 = 0; i2 < len; i2++) { |
|
s += sc_toDisplayString(arguments[i2]); |
|
} |
|
return alert(s); |
|
} |
|
function sc_typeof(x) { |
|
return typeof x; |
|
} |
|
function sc_error() { |
|
var a = [sc_jsstring2symbol("*error*")]; |
|
for (var i2 = 0; i2 < arguments.length; i2++) { |
|
a[i2 + 1] = arguments[i2]; |
|
} |
|
throw a; |
|
} |
|
function sc_raise(obj) { |
|
throw obj; |
|
} |
|
function sc_withHandlerLambda(handler, body) { |
|
try { |
|
return body(); |
|
} catch (e) { |
|
if (!e._internalException) |
|
return handler(e); |
|
else |
|
throw e; |
|
} |
|
} |
|
var sc_properties = new Object(); |
|
function sc_putpropBang(sym, key, val) { |
|
var ht = sc_properties[sym]; |
|
if (!ht) { |
|
ht = new Object(); |
|
sc_properties[sym] = ht; |
|
} |
|
ht[key] = val; |
|
} |
|
function sc_getprop(sym, key) { |
|
var ht = sc_properties[sym]; |
|
if (ht) { |
|
if (key in ht) |
|
return ht[key]; |
|
else |
|
return false; |
|
} else |
|
return false; |
|
} |
|
function sc_rempropBang(sym, key) { |
|
var ht = sc_properties[sym]; |
|
if (ht) |
|
delete ht[key]; |
|
} |
|
function sc_any2String(o) { |
|
return jsstring2string(sc_toDisplayString(o)); |
|
} |
|
function sc_isEqv(o1, o2) { |
|
return o1 === o2; |
|
} |
|
function sc_isEq(o1, o2) { |
|
return o1 === o2; |
|
} |
|
function sc_isNumber(n) { |
|
return typeof n === "number"; |
|
} |
|
function sc_isComplex(n) { |
|
return sc_isNumber(n); |
|
} |
|
function sc_isReal(n) { |
|
return sc_isNumber(n); |
|
} |
|
function sc_isRational(n) { |
|
return sc_isReal(n); |
|
} |
|
function sc_isInteger(n) { |
|
return parseInt(n) === n; |
|
} |
|
function sc_isExact(n) { |
|
return false; |
|
} |
|
function sc_isInexact(n) { |
|
return true; |
|
} |
|
function sc_equal(x) { |
|
for (var i2 = 1; i2 < arguments.length; i2++) |
|
if (x !== arguments[i2]) |
|
return false; |
|
return true; |
|
} |
|
function sc_less(x) { |
|
for (var i2 = 1; i2 < arguments.length; i2++) { |
|
if (x >= arguments[i2]) |
|
return false; |
|
x = arguments[i2]; |
|
} |
|
return true; |
|
} |
|
function sc_greater(x, y) { |
|
for (var i2 = 1; i2 < arguments.length; i2++) { |
|
if (x <= arguments[i2]) |
|
return false; |
|
x = arguments[i2]; |
|
} |
|
return true; |
|
} |
|
function sc_lessEqual(x, y) { |
|
for (var i2 = 1; i2 < arguments.length; i2++) { |
|
if (x > arguments[i2]) |
|
return false; |
|
x = arguments[i2]; |
|
} |
|
return true; |
|
} |
|
function sc_greaterEqual(x, y) { |
|
for (var i2 = 1; i2 < arguments.length; i2++) { |
|
if (x < arguments[i2]) |
|
return false; |
|
x = arguments[i2]; |
|
} |
|
return true; |
|
} |
|
function sc_isZero(x) { |
|
return x === 0; |
|
} |
|
function sc_isPositive(x) { |
|
return x > 0; |
|
} |
|
function sc_isNegative(x) { |
|
return x < 0; |
|
} |
|
function sc_isOdd(x) { |
|
return x % 2 === 1; |
|
} |
|
function sc_isEven(x) { |
|
return x % 2 === 0; |
|
} |
|
var sc_max = Math.max; |
|
var sc_min = Math.min; |
|
function sc_plus() { |
|
var sum = 0; |
|
for (var i2 = 0; i2 < arguments.length; i2++) |
|
sum += arguments[i2]; |
|
return sum; |
|
} |
|
function sc_multi() { |
|
var product = 1; |
|
for (var i2 = 0; i2 < arguments.length; i2++) |
|
product *= arguments[i2]; |
|
return product; |
|
} |
|
function sc_minus(x) { |
|
if (arguments.length === 1) |
|
return -x; |
|
else { |
|
var res2 = x; |
|
for (var i2 = 1; i2 < arguments.length; i2++) |
|
res2 -= arguments[i2]; |
|
return res2; |
|
} |
|
} |
|
function sc_div(x) { |
|
if (arguments.length === 1) |
|
return 1 / x; |
|
else { |
|
var res2 = x; |
|
for (var i2 = 1; i2 < arguments.length; i2++) |
|
res2 /= arguments[i2]; |
|
return res2; |
|
} |
|
} |
|
var sc_abs = Math.abs; |
|
function sc_quotient(x, y) { |
|
return parseInt(x / y); |
|
} |
|
function sc_remainder(x, y) { |
|
return x % y; |
|
} |
|
function sc_modulo(x, y) { |
|
var remainder = x % y; |
|
if (remainder * y < 0) |
|
return remainder + y; |
|
else |
|
return remainder; |
|
} |
|
function sc_euclid_gcd(a, b) { |
|
var temp; |
|
if (a === 0) |
|
return b; |
|
if (b === 0) |
|
return a; |
|
if (a < 0) { |
|
a = -a; |
|
} |
|
; |
|
if (b < 0) { |
|
b = -b; |
|
} |
|
; |
|
if (b > a) { |
|
temp = a; |
|
a = b; |
|
b = temp; |
|
} |
|
; |
|
while (true) { |
|
a %= b; |
|
if (a === 0) { |
|
return b; |
|
} |
|
; |
|
b %= a; |
|
if (b === 0) { |
|
return a; |
|
} |
|
; |
|
} |
|
; |
|
return b; |
|
} |
|
function sc_gcd() { |
|
var gcd = 0; |
|
for (var i2 = 0; i2 < arguments.length; i2++) |
|
gcd = sc_euclid_gcd(gcd, arguments[i2]); |
|
return gcd; |
|
} |
|
function sc_lcm() { |
|
var lcm = 1; |
|
for (var i2 = 0; i2 < arguments.length; i2++) { |
|
var f = Math.round(arguments[i2] / sc_euclid_gcd(arguments[i2], lcm)); |
|
lcm *= Math.abs(f); |
|
} |
|
return lcm; |
|
} |
|
var sc_floor = Math.floor; |
|
var sc_ceiling = Math.ceil; |
|
var sc_truncate = parseInt; |
|
var sc_round = Math.round; |
|
var sc_exp = Math.exp; |
|
var sc_log = Math.log; |
|
var sc_sin = Math.sin; |
|
var sc_cos = Math.cos; |
|
var sc_tan = Math.tan; |
|
var sc_asin = Math.asin; |
|
var sc_acos = Math.acos; |
|
var sc_atan = Math.atan; |
|
var sc_sqrt = Math.sqrt; |
|
var sc_expt = Math.pow; |
|
function sc_exact2inexact(x) { |
|
return x; |
|
} |
|
function sc_inexact2exact(x) { |
|
return x; |
|
} |
|
function sc_number2jsstring(x, radix) { |
|
if (radix) |
|
return x.toString(radix); |
|
else |
|
return x.toString(); |
|
} |
|
function sc_jsstring2number(s, radix) { |
|
if (s === "") |
|
return false; |
|
if (radix) { |
|
var t = parseInt(s, radix); |
|
if (!t && t !== 0) |
|
return false; |
|
var allowedChars = "01234567890abcdefghijklmnopqrstuvwxyz".substring(0, radix + 1); |
|
if (new RegExp("^[" + allowedChars + "]*$", "i").test(s)) |
|
return t; |
|
else |
|
return false; |
|
} else { |
|
var t = +s; |
|
if (!t && t !== 0) |
|
return false; |
|
var c = s.charAt(0); |
|
if (+c === 0 && c !== "0") |
|
return false; |
|
return t; |
|
} |
|
} |
|
function sc_not(b) { |
|
return b === false; |
|
} |
|
function sc_isBoolean(b) { |
|
return b === true || b === false; |
|
} |
|
function sc_Pair(car, cdr) { |
|
this.car = car; |
|
this.cdr = cdr; |
|
} |
|
sc_Pair.prototype.toString = function() { |
|
return sc_toDisplayString(this); |
|
}; |
|
sc_Pair.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) { |
|
var current = this; |
|
var res2 = "("; |
|
while (true) { |
|
res2 += writeOrDisplay(current.car); |
|
if (sc_isPair(current.cdr)) { |
|
res2 += " "; |
|
current = current.cdr; |
|
} else if (current.cdr !== null) { |
|
res2 += " . " + writeOrDisplay(current.cdr); |
|
break; |
|
} else |
|
break; |
|
} |
|
res2 += ")"; |
|
return res2; |
|
}; |
|
sc_Pair.prototype.sc_toDisplayString = function() { |
|
return this.sc_toWriteOrDisplayString(sc_toDisplayString); |
|
}; |
|
sc_Pair.prototype.sc_toWriteString = function() { |
|
return this.sc_toWriteOrDisplayString(sc_toWriteString); |
|
}; |
|
function sc_isPair(p) { |
|
return p instanceof sc_Pair; |
|
} |
|
function sc_isPairEqual(p1, p2, comp) { |
|
return comp(p1.car, p2.car) && comp(p1.cdr, p2.cdr); |
|
} |
|
function sc_cons(car, cdr) { |
|
return new sc_Pair(car, cdr); |
|
} |
|
function sc_consStar() { |
|
var res2 = arguments[arguments.length - 1]; |
|
for (var i2 = arguments.length - 2; i2 >= 0; i2--) |
|
res2 = new sc_Pair(arguments[i2], res2); |
|
return res2; |
|
} |
|
function sc_car(p) { |
|
return p.car; |
|
} |
|
function sc_cdr(p) { |
|
return p.cdr; |
|
} |
|
function sc_setCarBang(p, val) { |
|
p.car = val; |
|
} |
|
function sc_setCdrBang(p, val) { |
|
p.cdr = val; |
|
} |
|
function sc_caar(p) { |
|
return p.car.car; |
|
} |
|
function sc_cadr(p) { |
|
return p.cdr.car; |
|
} |
|
function sc_cdar(p) { |
|
return p.car.cdr; |
|
} |
|
function sc_cddr(p) { |
|
return p.cdr.cdr; |
|
} |
|
function sc_caaar(p) { |
|
return p.car.car.car; |
|
} |
|
function sc_cadar(p) { |
|
return p.car.cdr.car; |
|
} |
|
function sc_caadr(p) { |
|
return p.cdr.car.car; |
|
} |
|
function sc_caddr(p) { |
|
return p.cdr.cdr.car; |
|
} |
|
function sc_cdaar(p) { |
|
return p.car.car.cdr; |
|
} |
|
function sc_cdadr(p) { |
|
return p.cdr.car.cdr; |
|
} |
|
function sc_cddar(p) { |
|
return p.car.cdr.cdr; |
|
} |
|
function sc_cdddr(p) { |
|
return p.cdr.cdr.cdr; |
|
} |
|
function sc_caaaar(p) { |
|
return p.car.car.car.car; |
|
} |
|
function sc_caadar(p) { |
|
return p.car.cdr.car.car; |
|
} |
|
function sc_caaadr(p) { |
|
return p.cdr.car.car.car; |
|
} |
|
function sc_caaddr(p) { |
|
return p.cdr.cdr.car.car; |
|
} |
|
function sc_cdaaar(p) { |
|
return p.car.car.car.cdr; |
|
} |
|
function sc_cdadar(p) { |
|
return p.car.cdr.car.cdr; |
|
} |
|
function sc_cdaadr(p) { |
|
return p.cdr.car.car.cdr; |
|
} |
|
function sc_cdaddr(p) { |
|
return p.cdr.cdr.car.cdr; |
|
} |
|
function sc_cadaar(p) { |
|
return p.car.car.cdr.car; |
|
} |
|
function sc_caddar(p) { |
|
return p.car.cdr.cdr.car; |
|
} |
|
function sc_cadadr(p) { |
|
return p.cdr.car.cdr.car; |
|
} |
|
function sc_cadddr(p) { |
|
return p.cdr.cdr.cdr.car; |
|
} |
|
function sc_cddaar(p) { |
|
return p.car.car.cdr.cdr; |
|
} |
|
function sc_cdddar(p) { |
|
return p.car.cdr.cdr.cdr; |
|
} |
|
function sc_cddadr(p) { |
|
return p.cdr.car.cdr.cdr; |
|
} |
|
function sc_cddddr(p) { |
|
return p.cdr.cdr.cdr.cdr; |
|
} |
|
function sc_lastPair(l) { |
|
if (!sc_isPair(l)) |
|
sc_error("sc_lastPair: pair expected"); |
|
var res2 = l; |
|
var cdr = l.cdr; |
|
while (sc_isPair(cdr)) { |
|
res2 = cdr; |
|
cdr = res2.cdr; |
|
} |
|
return res2; |
|
} |
|
function sc_isNull(o) { |
|
return o === null; |
|
} |
|
function sc_isList(o) { |
|
var rabbit; |
|
var turtle; |
|
var rabbit = o; |
|
var turtle = o; |
|
while (true) { |
|
if (rabbit === null || rabbit instanceof sc_Pair && rabbit.cdr === null) |
|
return true; |
|
else if (rabbit instanceof sc_Pair && rabbit.cdr instanceof sc_Pair) { |
|
rabbit = rabbit.cdr.cdr; |
|
turtle = turtle.cdr; |
|
if (rabbit === turtle) |
|
return false; |
|
} else |
|
return false; |
|
} |
|
} |
|
function sc_list() { |
|
var res2 = null; |
|
var a = arguments; |
|
for (var i2 = a.length - 1; i2 >= 0; i2--) |
|
res2 = new sc_Pair(a[i2], res2); |
|
return res2; |
|
} |
|
function sc_iota(num, init) { |
|
var res2 = null; |
|
if (!init) |
|
init = 0; |
|
for (var i2 = num - 1; i2 >= 0; i2--) |
|
res2 = new sc_Pair(i2 + init, res2); |
|
return res2; |
|
} |
|
function sc_makeList(nbEls, fill) { |
|
var res2 = null; |
|
for (var i2 = 0; i2 < nbEls; i2++) |
|
res2 = new sc_Pair(fill, res2); |
|
return res2; |
|
} |
|
function sc_length(l) { |
|
var res2 = 0; |
|
while (l !== null) { |
|
res2++; |
|
l = l.cdr; |
|
} |
|
return res2; |
|
} |
|
function sc_remq(o, l) { |
|
var dummy = {cdr: null}; |
|
var tail = dummy; |
|
while (l !== null) { |
|
if (l.car !== o) { |
|
tail.cdr = sc_cons(l.car, null); |
|
tail = tail.cdr; |
|
} |
|
l = l.cdr; |
|
} |
|
return dummy.cdr; |
|
} |
|
function sc_remqBang(o, l) { |
|
var dummy = {cdr: null}; |
|
var tail = dummy; |
|
var needsAssig = true; |
|
while (l !== null) { |
|
if (l.car === o) { |
|
needsAssig = true; |
|
} else { |
|
if (needsAssig) { |
|
tail.cdr = l; |
|
needsAssig = false; |
|
} |
|
tail = l; |
|
} |
|
l = l.cdr; |
|
} |
|
tail.cdr = null; |
|
return dummy.cdr; |
|
} |
|
function sc_delete(o, l) { |
|
var dummy = {cdr: null}; |
|
var tail = dummy; |
|
while (l !== null) { |
|
if (!sc_isEqual(l.car, o)) { |
|
tail.cdr = sc_cons(l.car, null); |
|
tail = tail.cdr; |
|
} |
|
l = l.cdr; |
|
} |
|
return dummy.cdr; |
|
} |
|
function sc_deleteBang(o, l) { |
|
var dummy = {cdr: null}; |
|
var tail = dummy; |
|
var needsAssig = true; |
|
while (l !== null) { |
|
if (sc_isEqual(l.car, o)) { |
|
needsAssig = true; |
|
} else { |
|
if (needsAssig) { |
|
tail.cdr = l; |
|
needsAssig = false; |
|
} |
|
tail = l; |
|
} |
|
l = l.cdr; |
|
} |
|
tail.cdr = null; |
|
return dummy.cdr; |
|
} |
|
function sc_reverseAppendBang(l1, l2) { |
|
var res2 = l2; |
|
while (l1 !== null) { |
|
var tmp = res2; |
|
res2 = l1; |
|
l1 = l1.cdr; |
|
res2.cdr = tmp; |
|
} |
|
return res2; |
|
} |
|
function sc_dualAppend(l1, l2) { |
|
if (l1 === null) |
|
return l2; |
|
if (l2 === null) |
|
return l1; |
|
var rev = sc_reverse(l1); |
|
return sc_reverseAppendBang(rev, l2); |
|
} |
|
function sc_append() { |
|
if (arguments.length === 0) |
|
return null; |
|
var res2 = arguments[arguments.length - 1]; |
|
for (var i2 = arguments.length - 2; i2 >= 0; i2--) |
|
res2 = sc_dualAppend(arguments[i2], res2); |
|
return res2; |
|
} |
|
function sc_dualAppendBang(l1, l2) { |
|
if (l1 === null) |
|
return l2; |
|
if (l2 === null) |
|
return l1; |
|
var tmp = l1; |
|
while (tmp.cdr !== null) |
|
tmp = tmp.cdr; |
|
tmp.cdr = l2; |
|
return l1; |
|
} |
|
function sc_appendBang() { |
|
var res2 = null; |
|
for (var i2 = 0; i2 < arguments.length; i2++) |
|
res2 = sc_dualAppendBang(res2, arguments[i2]); |
|
return res2; |
|
} |
|
function sc_reverse(l1) { |
|
var res2 = null; |
|
while (l1 !== null) { |
|
res2 = sc_cons(l1.car, res2); |
|
l1 = l1.cdr; |
|
} |
|
return res2; |
|
} |
|
function sc_reverseBang(l) { |
|
return sc_reverseAppendBang(l, null); |
|
} |
|
function sc_listTail(l, k) { |
|
var res2 = l; |
|
for (var i2 = 0; i2 < k; i2++) { |
|
res2 = res2.cdr; |
|
} |
|
return res2; |
|
} |
|
function sc_listRef(l, k) { |
|
return sc_listTail(l, k).car; |
|
} |
|
function sc_memq(o, l) { |
|
while (l !== null) { |
|
if (l.car === o) |
|
return l; |
|
l = l.cdr; |
|
} |
|
return false; |
|
} |
|
function sc_memv(o, l) { |
|
while (l !== null) { |
|
if (l.car === o) |
|
return l; |
|
l = l.cdr; |
|
} |
|
return false; |
|
} |
|
function sc_member(o, l) { |
|
while (l !== null) { |
|
if (sc_isEqual(l.car, o)) |
|
return l; |
|
l = l.cdr; |
|
} |
|
return false; |
|
} |
|
function sc_assq(o, al) { |
|
while (al !== null) { |
|
if (al.car.car === o) |
|
return al.car; |
|
al = al.cdr; |
|
} |
|
return false; |
|
} |
|
function sc_assv(o, al) { |
|
while (al !== null) { |
|
if (al.car.car === o) |
|
return al.car; |
|
al = al.cdr; |
|
} |
|
return false; |
|
} |
|
function sc_assoc(o, al) { |
|
while (al !== null) { |
|
if (sc_isEqual(al.car.car, o)) |
|
return al.car; |
|
al = al.cdr; |
|
} |
|
return false; |
|
} |
|
function sc_isCharStringEqual(cs1, cs2) { |
|
return cs1.val === cs2.val; |
|
} |
|
function sc_isCharStringLess(cs1, cs2) { |
|
return cs1.val < cs2.val; |
|
} |
|
function sc_isCharStringGreater(cs1, cs2) { |
|
return cs1.val > cs2.val; |
|
} |
|
function sc_isCharStringLessEqual(cs1, cs2) { |
|
return cs1.val <= cs2.val; |
|
} |
|
function sc_isCharStringGreaterEqual(cs1, cs2) { |
|
return cs1.val >= cs2.val; |
|
} |
|
function sc_isCharStringCIEqual(cs1, cs2) { |
|
return cs1.val.toLowerCase() === cs2.val.toLowerCase(); |
|
} |
|
function sc_isCharStringCILess(cs1, cs2) { |
|
return cs1.val.toLowerCase() < cs2.val.toLowerCase(); |
|
} |
|
function sc_isCharStringCIGreater(cs1, cs2) { |
|
return cs1.val.toLowerCase() > cs2.val.toLowerCase(); |
|
} |
|
function sc_isCharStringCILessEqual(cs1, cs2) { |
|
return cs1.val.toLowerCase() <= cs2.val.toLowerCase(); |
|
} |
|
function sc_isCharStringCIGreaterEqual(cs1, cs2) { |
|
return cs1.val.toLowerCase() >= cs2.val.toLowerCase(); |
|
} |
|
function sc_Char(c) { |
|
var cached = sc_Char.lazy[c]; |
|
if (cached) |
|
return cached; |
|
this.val = c; |
|
sc_Char.lazy[c] = this; |
|
return void 0; |
|
} |
|
sc_Char.lazy = new Object(); |
|
sc_Char.char2readable = { |
|
"\0o00": "#\\null", |
|
"\0o07": "#\\bell", |
|
"\0o10": "#\\backspace", |
|
"\0o11": "#\\tab", |
|
"\0o12": "#\\newline", |
|
"\0o14": "#\\page", |
|
"\0o15": "#\\return", |
|
"\0o33": "#\\escape", |
|
"\0o40": "#\\space", |
|
"\0o177": "#\\delete", |
|
"\0o01": "#\\soh", |
|
"\0o02": "#\\stx", |
|
"\0o03": "#\\etx", |
|
"\0o04": "#\\eot", |
|
"\0o05": "#\\enq", |
|
"\0o06": "#\\ack", |
|
"\0o13": "#\\vt", |
|
"\0o16": "#\\so", |
|
"\0o17": "#\\si", |
|
"\0o20": "#\\dle", |
|
"\0o21": "#\\dc1", |
|
"\0o22": "#\\dc2", |
|
"\0o23": "#\\dc3", |
|
"\0o24": "#\\dc4", |
|
"\0o25": "#\\nak", |
|
"\0o26": "#\\syn", |
|
"\0o27": "#\\etb", |
|
"\0o30": "#\\can", |
|
"\0o31": "#\\em", |
|
"\0o32": "#\\sub", |
|
"\0o33": "#\\esc", |
|
"\0o34": "#\\fs", |
|
"\0o35": "#\\gs", |
|
"\0o36": "#\\rs", |
|
"\0o37": "#\\us" |
|
}; |
|
sc_Char.readable2char = { |
|
null: "\0o00", |
|
bell: "\0o07", |
|
backspace: "\0o10", |
|
tab: "\0o11", |
|
newline: "\0o12", |
|
page: "\0o14", |
|
return: "\0o15", |
|
escape: "\0o33", |
|
space: "\0o40", |
|
delete: "\0o00", |
|
soh: "\0o01", |
|
stx: "\0o02", |
|
etx: "\0o03", |
|
eot: "\0o04", |
|
enq: "\0o05", |
|
ack: "\0o06", |
|
bel: "\0o07", |
|
bs: "\0o10", |
|
ht: "\0o11", |
|
nl: "\0o12", |
|
vt: "\0o13", |
|
np: "\0o14", |
|
cr: "\0o15", |
|
so: "\0o16", |
|
si: "\0o17", |
|
dle: "\0o20", |
|
dc1: "\0o21", |
|
dc2: "\0o22", |
|
dc3: "\0o23", |
|
dc4: "\0o24", |
|
nak: "\0o25", |
|
syn: "\0o26", |
|
etb: "\0o27", |
|
can: "\0o30", |
|
em: "\0o31", |
|
sub: "\0o32", |
|
esc: "\0o33", |
|
fs: "\0o34", |
|
gs: "\0o35", |
|
rs: "\0o36", |
|
us: "\0o37", |
|
sp: "\0o40", |
|
del: "\0o177" |
|
}; |
|
sc_Char.prototype.toString = function() { |
|
return this.val; |
|
}; |
|
sc_Char.prototype.sc_toWriteString = function() { |
|
var entry = sc_Char.char2readable[this.val]; |
|
if (entry) |
|
return entry; |
|
else |
|
return "#\\" + this.val; |
|
}; |
|
function sc_isChar(c) { |
|
return c instanceof sc_Char; |
|
} |
|
var sc_isCharEqual = sc_isCharStringEqual; |
|
var sc_isCharLess = sc_isCharStringLess; |
|
var sc_isCharGreater = sc_isCharStringGreater; |
|
var sc_isCharLessEqual = sc_isCharStringLessEqual; |
|
var sc_isCharGreaterEqual = sc_isCharStringGreaterEqual; |
|
var sc_isCharCIEqual = sc_isCharStringCIEqual; |
|
var sc_isCharCILess = sc_isCharStringCILess; |
|
var sc_isCharCIGreater = sc_isCharStringCIGreater; |
|
var sc_isCharCILessEqual = sc_isCharStringCILessEqual; |
|
var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual; |
|
var SC_NUMBER_CLASS = "0123456789"; |
|
var SC_WHITESPACE_CLASS = " \r\n \f"; |
|
var SC_LOWER_CLASS = "abcdefghijklmnopqrstuvwxyz"; |
|
var SC_UPPER_CLASS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
|
function sc_isCharOfClass(c, cl) { |
|
return cl.indexOf(c) != -1; |
|
} |
|
function sc_isCharAlphabetic(c) { |
|
return sc_isCharOfClass(c.val, SC_LOWER_CLASS) || sc_isCharOfClass(c.val, SC_UPPER_CLASS); |
|
} |
|
function sc_isCharNumeric(c) { |
|
return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); |
|
} |
|
function sc_isCharWhitespace(c) { |
|
var tmp = c.val; |
|
return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === " " || tmp === "\f"; |
|
} |
|
function sc_isCharUpperCase(c) { |
|
return sc_isCharOfClass(c.val, SC_UPPER_CLASS); |
|
} |
|
function sc_isCharLowerCase(c) { |
|
return sc_isCharOfClass(c.val, SC_LOWER_CLASS); |
|
} |
|
function sc_char2integer(c) { |
|
return c.val.charCodeAt(0); |
|
} |
|
function sc_integer2char(n) { |
|
return new sc_Char(String.fromCharCode(n)); |
|
} |
|
function sc_charUpcase(c) { |
|
return new sc_Char(c.val.toUpperCase()); |
|
} |
|
function sc_charDowncase(c) { |
|
return new sc_Char(c.val.toLowerCase()); |
|
} |
|
function sc_makeJSStringOfLength(k, c) { |
|
var fill; |
|
if (c === void 0) |
|
fill = " "; |
|
else |
|
fill = c; |
|
var res2 = ""; |
|
var len = 1; |
|
while (k >= len) { |
|
if (k & len) |
|
res2 = res2.concat(fill); |
|
fill = fill.concat(fill); |
|
len *= 2; |
|
} |
|
return res2; |
|
} |
|
function sc_makejsString(k, c) { |
|
var fill; |
|
if (c) |
|
fill = c.val; |
|
else |
|
fill = " "; |
|
return sc_makeJSStringOfLength(k, fill); |
|
} |
|
function sc_jsstring2list(s) { |
|
var res2 = null; |
|
for (var i2 = s.length - 1; i2 >= 0; i2--) |
|
res2 = sc_cons(new sc_Char(s.charAt(i2)), res2); |
|
return res2; |
|
} |
|
function sc_list2jsstring(l) { |
|
var a = new Array(); |
|
while (l !== null) { |
|
a.push(l.car.val); |
|
l = l.cdr; |
|
} |
|
return "".concat.apply("", a); |
|
} |
|
var sc_Vector = Array; |
|
sc_Vector.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) { |
|
if (this.length === 0) |
|
return "#()"; |
|
var res2 = "#(" + writeOrDisplay(this[0]); |
|
for (var i2 = 1; i2 < this.length; i2++) |
|
res2 += " " + writeOrDisplay(this[i2]); |
|
res2 += ")"; |
|
return res2; |
|
}; |
|
sc_Vector.prototype.sc_toDisplayString = function() { |
|
return this.sc_toWriteOrDisplayString(sc_toDisplayString); |
|
}; |
|
sc_Vector.prototype.sc_toWriteString = function() { |
|
return this.sc_toWriteOrDisplayString(sc_toWriteString); |
|
}; |
|
function sc_isVector(v) { |
|
return v instanceof sc_Vector; |
|
} |
|
function sc_isVectorEqual(v1, v2, comp) { |
|
if (v1.length !== v2.length) |
|
return false; |
|
for (var i2 = 0; i2 < v1.length; i2++) |
|
if (!comp(v1[i2], v2[i2])) |
|
return false; |
|
return true; |
|
} |
|
function sc_makeVector(size, fill) { |
|
var a = new sc_Vector(size); |
|
if (fill !== void 0) |
|
sc_vectorFillBang(a, fill); |
|
return a; |
|
} |
|
function sc_vector() { |
|
var a = new sc_Vector(); |
|
for (var i2 = 0; i2 < arguments.length; i2++) |
|
a.push(arguments[i2]); |
|
return a; |
|
} |
|
function sc_vectorLength(v) { |
|
return v.length; |
|
} |
|
function sc_vectorRef(v, pos) { |
|
return v[pos]; |
|
} |
|
function sc_vectorSetBang(v, pos, val) { |
|
v[pos] = val; |
|
} |
|
function sc_vector2list(a) { |
|
var res2 = null; |
|
for (var i2 = a.length - 1; i2 >= 0; i2--) |
|
res2 = sc_cons(a[i2], res2); |
|
return res2; |
|
} |
|
function sc_list2vector(l) { |
|
var a = new sc_Vector(); |
|
while (l !== null) { |
|
a.push(l.car); |
|
l = l.cdr; |
|
} |
|
return a; |
|
} |
|
function sc_vectorFillBang(a, fill) { |
|
for (var i2 = 0; i2 < a.length; i2++) |
|
a[i2] = fill; |
|
} |
|
function sc_copyVector(a, len) { |
|
if (len <= a.length) |
|
return a.slice(0, len); |
|
else { |
|
var tmp = a.concat(); |
|
tmp.length = len; |
|
return tmp; |
|
} |
|
} |
|
function sc_vectorCopy(a, start, end) { |
|
return a.slice(start, end); |
|
} |
|
function sc_vectorCopyBang(target, tstart, source, sstart, send) { |
|
if (!sstart) |
|
sstart = 0; |
|
if (!send) |
|
send = source.length; |
|
if (tstart <= sstart) { |
|
for (var i2 = tstart, j = sstart; j < send; i2++, j++) { |
|
target[i2] = source[j]; |
|
} |
|
} else { |
|
var diff = send - sstart; |
|
for (var i2 = tstart + diff - 1, j = send - 1; j >= sstart; i2--, j--) { |
|
target[i2] = source[j]; |
|
} |
|
} |
|
return target; |
|
} |
|
function sc_isProcedure(o) { |
|
return typeof o === "function"; |
|
} |
|
function sc_apply(proc) { |
|
var args = new Array(); |
|
for (var i2 = 1; i2 < arguments.length - 1; i2++) |
|
args.push(arguments[i2]); |
|
var l = arguments[arguments.length - 1]; |
|
while (l !== null) { |
|
args.push(l.car); |
|
l = l.cdr; |
|
} |
|
return proc.apply(null, args); |
|
} |
|
function sc_map(proc, l1) { |
|
if (l1 === void 0) |
|
return null; |
|
var nbApplyArgs = arguments.length - 1; |
|
var applyArgs = new Array(nbApplyArgs); |
|
var revres = null; |
|
while (l1 !== null) { |
|
for (var i2 = 0; i2 < nbApplyArgs; i2++) { |
|
applyArgs[i2] = arguments[i2 + 1].car; |
|
arguments[i2 + 1] = arguments[i2 + 1].cdr; |
|
} |
|
revres = sc_cons(proc.apply(null, applyArgs), revres); |
|
} |
|
return sc_reverseAppendBang(revres, null); |
|
} |
|
function sc_mapBang(proc, l1) { |
|
if (l1 === void 0) |
|
return null; |
|
var l1_orig = l1; |
|
var nbApplyArgs = arguments.length - 1; |
|
var applyArgs = new Array(nbApplyArgs); |
|
while (l1 !== null) { |
|
var tmp = l1; |
|
for (var i2 = 0; i2 < nbApplyArgs; i2++) { |
|
applyArgs[i2] = arguments[i2 + 1].car; |
|
arguments[i2 + 1] = arguments[i2 + 1].cdr; |
|
} |
|
tmp.car = proc.apply(null, applyArgs); |
|
} |
|
return l1_orig; |
|
} |
|
function sc_forEach(proc, l1) { |
|
if (l1 === void 0) |
|
return void 0; |
|
var nbApplyArgs = arguments.length - 1; |
|
var applyArgs = new Array(nbApplyArgs); |
|
while (l1 !== null) { |
|
for (var i2 = 0; i2 < nbApplyArgs; i2++) { |
|
applyArgs[i2] = arguments[i2 + 1].car; |
|
arguments[i2 + 1] = arguments[i2 + 1].cdr; |
|
} |
|
proc.apply(null, applyArgs); |
|
} |
|
return void 0; |
|
} |
|
function sc_filter(proc, l1) { |
|
var dummy = {cdr: null}; |
|
var tail = dummy; |
|
while (l1 !== null) { |
|
if (proc(l1.car) !== false) { |
|
tail.cdr = sc_cons(l1.car, null); |
|
tail = tail.cdr; |
|
} |
|
l1 = l1.cdr; |
|
} |
|
return dummy.cdr; |
|
} |
|
function sc_filterBang(proc, l1) { |
|
var head = sc_cons("dummy", l1); |
|
var it = head; |
|
var next = l1; |
|
while (next !== null) { |
|
if (proc(next.car) !== false) { |
|
it.cdr = next; |
|
it = next; |
|
} |
|
next = next.cdr; |
|
} |
|
it.cdr = null; |
|
return head.cdr; |
|
} |
|
function sc_filterMap1(proc, l1) { |
|
var revres = null; |
|
while (l1 !== null) { |
|
var tmp = proc(l1.car); |
|
if (tmp !== false) |
|
revres = sc_cons(tmp, revres); |
|
l1 = l1.cdr; |
|
} |
|
return sc_reverseAppendBang(revres, null); |
|
} |
|
function sc_filterMap2(proc, l1, l2) { |
|
var revres = null; |
|
while (l1 !== null) { |
|
var tmp = proc(l1.car, l2.car); |
|
if (tmp !== false) |
|
revres = sc_cons(tmp, revres); |
|
l1 = l1.cdr; |
|
l2 = l2.cdr; |
|
} |
|
return sc_reverseAppendBang(revres, null); |
|
} |
|
function sc_filterMap(proc, l1, l2, l3) { |
|
if (l2 === void 0) |
|
return sc_filterMap1(proc, l1); |
|
else if (l3 === void 0) |
|
return sc_filterMap2(proc, l1, l2); |
|
var nbApplyArgs = arguments.length - 1; |
|
var applyArgs = new Array(nbApplyArgs); |
|
var revres = null; |
|
while (l1 !== null) { |
|
for (var i2 = 0; i2 < nbApplyArgs; i2++) { |
|
applyArgs[i2] = arguments[i2 + 1].car; |
|
arguments[i2 + 1] = arguments[i2 + 1].cdr; |
|
} |
|
var tmp = proc.apply(null, applyArgs); |
|
if (tmp !== false) |
|
revres = sc_cons(tmp, revres); |
|
} |
|
return sc_reverseAppendBang(revres, null); |
|
} |
|
function sc_any(proc, l) { |
|
var revres = null; |
|
while (l !== null) { |
|
var tmp = proc(l.car); |
|
if (tmp !== false) |
|
return tmp; |
|
l = l.cdr; |
|
} |
|
return false; |
|
} |
|
function sc_anyPred(proc, l) { |
|
return sc_any(proc, l) !== false; |
|
} |
|
function sc_every(proc, l) { |
|
var revres = null; |
|
var tmp = true; |
|
while (l !== null) { |
|
tmp = proc(l.car); |
|
if (tmp === false) |
|
return false; |
|
l = l.cdr; |
|
} |
|
return tmp; |
|
} |
|
function sc_everyPred(proc, l) { |
|
var tmp = sc_every(proc, l); |
|
if (tmp !== false) |
|
return true; |
|
return false; |
|
} |
|
function sc_force(o) { |
|
return o(); |
|
} |
|
function sc_makePromise(proc) { |
|
var isResultReady = false; |
|
var result = void 0; |
|
return function() { |
|
if (!isResultReady) { |
|
var tmp = proc(); |
|
if (!isResultReady) { |
|
isResultReady = true; |
|
result = tmp; |
|
} |
|
} |
|
return result; |
|
}; |
|
} |
|
function sc_Values(values) { |
|
this.values = values; |
|
} |
|
function sc_values() { |
|
if (arguments.length === 1) |
|
return arguments[0]; |
|
else |
|
return new sc_Values(arguments); |
|
} |
|
function sc_callWithValues(producer, consumer) { |
|
var produced = producer(); |
|
if (produced instanceof sc_Values) |
|
return consumer.apply(null, produced.values); |
|
else |
|
return consumer(produced); |
|
} |
|
function sc_dynamicWind(before, thunk, after) { |
|
before(); |
|
try { |
|
var res2 = thunk(); |
|
return res2; |
|
} finally { |
|
after(); |
|
} |
|
} |
|
function sc_Struct(name) { |
|
this.name = name; |
|
} |
|
sc_Struct.prototype.sc_toDisplayString = function() { |
|
return "#<struct" + sc_hash(this) + ">"; |
|
}; |
|
sc_Struct.prototype.sc_toWriteString = sc_Struct.prototype.sc_toDisplayString; |
|
function sc_makeStruct(name) { |
|
return new sc_Struct(name); |
|
} |
|
function sc_isStruct(o) { |
|
return o instanceof sc_Struct; |
|
} |
|
function sc_isStructNamed(name, s) { |
|
return s instanceof sc_Struct && s.name === name; |
|
} |
|
function sc_getStructField(s, name, field) { |
|
return s[field]; |
|
} |
|
function sc_setStructFieldBang(s, name, field, val) { |
|
s[field] = val; |
|
} |
|
function sc_bitNot(x) { |
|
return ~x; |
|
} |
|
function sc_bitAnd(x, y) { |
|
return x & y; |
|
} |
|
function sc_bitOr(x, y) { |
|
return x | y; |
|
} |
|
function sc_bitXor(x, y) { |
|
return x ^ y; |
|
} |
|
function sc_bitLsh(x, y) { |
|
return x << y; |
|
} |
|
function sc_bitRsh(x, y) { |
|
return x >> y; |
|
} |
|
function sc_bitUrsh(x, y) { |
|
return x >>> y; |
|
} |
|
function sc_jsField(o, field) { |
|
return o[field]; |
|
} |
|
function sc_setJsFieldBang(o, field, val) { |
|
return o[field] = val; |
|
} |
|
function sc_deleteJsFieldBang(o, field) { |
|
delete o[field]; |
|
} |
|
function sc_jsCall(o, fun) { |
|
var args = new Array(); |
|
for (var i2 = 2; i2 < arguments.length; i2++) |
|
args[i2 - 2] = arguments[i2]; |
|
return fun.apply(o, args); |
|
} |
|
function sc_jsMethodCall(o, field) { |
|
var args = new Array(); |
|
for (var i2 = 2; i2 < arguments.length; i2++) |
|
args[i2 - 2] = arguments[i2]; |
|
return o[field].apply(o, args); |
|
} |
|
function sc_jsNew(c) { |
|
var evalStr = "new c("; |
|
evalStr += arguments.length > 1 ? "arguments[1]" : ""; |
|
for (var i = 2; i < arguments.length; i++) |
|
evalStr += ", arguments[" + i + "]"; |
|
evalStr += ")"; |
|
return eval(evalStr); |
|
} |
|
function sc_pregexp(re) { |
|
return new RegExp(sc_string2jsstring(re)); |
|
} |
|
function sc_pregexpMatch(re, s) { |
|
var reg = re instanceof RegExp ? re : sc_pregexp(re); |
|
var tmp = reg.exec(sc_string2jsstring(s)); |
|
if (tmp == null) |
|
return false; |
|
var res2 = null; |
|
for (var i2 = tmp.length - 1; i2 >= 0; i2--) { |
|
if (tmp[i2] !== null) { |
|
res2 = sc_cons(sc_jsstring2string(tmp[i2]), res2); |
|
} else { |
|
res2 = sc_cons(false, res2); |
|
} |
|
} |
|
return res2; |
|
} |
|
function sc_pregexpReplace(re, s1, s2) { |
|
var reg; |
|
var jss1 = sc_string2jsstring(s1); |
|
var jss2 = sc_string2jsstring(s2); |
|
if (re instanceof RegExp) { |
|
if (re.global) |
|
reg = re; |
|
else |
|
reg = new RegExp(re.source); |
|
} else { |
|
reg = new RegExp(sc_string2jsstring(re)); |
|
} |
|
return jss1.replace(reg, jss2); |
|
} |
|
function sc_pregexpReplaceAll(re, s1, s2) { |
|
var reg; |
|
var jss1 = sc_string2jsstring(s1); |
|
var jss2 = sc_string2jsstring(s2); |
|
if (re instanceof RegExp) { |
|
if (re.global) |
|
reg = re; |
|
else |
|
reg = new RegExp(re.source, "g"); |
|
} else { |
|
reg = new RegExp(sc_string2jsstring(re), "g"); |
|
} |
|
return jss1.replace(reg, jss2); |
|
} |
|
function sc_pregexpSplit(re, s) { |
|
var reg = re instanceof RegExp ? re : new RegExp(sc_string2jsstring(re)); |
|
var jss = sc_string2jsstring(s); |
|
var tmp = jss.split(reg); |
|
if (tmp == null) |
|
return false; |
|
return sc_vector2list(tmp); |
|
} |
|
function sc_random(n) { |
|
return Math.floor(Math.random() * n); |
|
} |
|
function sc_currentDate() { |
|
return new Date(); |
|
} |
|
function sc_Hashtable() { |
|
} |
|
sc_Hashtable.prototype.toString = function() { |
|
return "#{%hashtable}"; |
|
}; |
|
function sc_HashtableElement(key, val) { |
|
this.key = key; |
|
this.val = val; |
|
} |
|
function sc_makeHashtable() { |
|
return new sc_Hashtable(); |
|
} |
|
function sc_hashtablePutBang(ht, key, val) { |
|
var hash = sc_hash(key); |
|
ht[hash] = new sc_HashtableElement(key, val); |
|
} |
|
function sc_hashtableGet(ht, key) { |
|
var hash = sc_hash(key); |
|
if (hash in ht) |
|
return ht[hash].val; |
|
else |
|
return false; |
|
} |
|
function sc_hashtableForEach(ht, f) { |
|
for (var v in ht) { |
|
if (ht[v] instanceof sc_HashtableElement) |
|
f(ht[v].key, ht[v].val); |
|
} |
|
} |
|
function sc_hashtableContains(ht, key) { |
|
var hash = sc_hash(key); |
|
if (hash in ht) |
|
return true; |
|
else |
|
return false; |
|
} |
|
var SC_HASH_COUNTER = 0; |
|
function sc_hash(o) { |
|
if (o === null) |
|
return "null"; |
|
else if (o === void 0) |
|
return "undefined"; |
|
else if (o === true) |
|
return "true"; |
|
else if (o === false) |
|
return "false"; |
|
else if (typeof o === "number") |
|
return "num-" + o; |
|
else if (typeof o === "string") |
|
return "jsstr-" + o; |
|
else if (o.sc_getHash) |
|
return o.sc_getHash(); |
|
else |
|
return sc_counterHash.call(o); |
|
} |
|
function sc_counterHash() { |
|
if (!this.sc_hash) { |
|
this.sc_hash = "hash-" + SC_HASH_COUNTER; |
|
SC_HASH_COUNTER++; |
|
} |
|
return this.sc_hash; |
|
} |
|
function sc_Trampoline(args, maxTailCalls) { |
|
this["__trampoline return__"] = true; |
|
this.args = args; |
|
this.MAX_TAIL_CALLs = maxTailCalls; |
|
} |
|
sc_Trampoline.prototype.restart = function() { |
|
var o = this; |
|
while (true) { |
|
SC_TAIL_OBJECT.calls = o.MAX_TAIL_CALLs - 1; |
|
var fun = o.args.callee; |
|
var res2 = fun.apply(SC_TAIL_OBJECT, o.args); |
|
if (res2 instanceof sc_Trampoline) |
|
o = res2; |
|
else |
|
return res2; |
|
} |
|
}; |
|
function sc_bindExitLambda(proc) { |
|
var escape_obj = new sc_BindExitException(); |
|
var escape = function(res2) { |
|
escape_obj.res = res2; |
|
throw escape_obj; |
|
}; |
|
try { |
|
return proc(escape); |
|
} catch (e) { |
|
if (e === escape_obj) { |
|
return e.res; |
|
} |
|
throw e; |
|
} |
|
} |
|
function sc_BindExitException() { |
|
this._internalException = true; |
|
} |
|
var SC_SCM2JS_GLOBALS = new Object(); |
|
var SC_TAIL_OBJECT = new Object(); |
|
SC_SCM2JS_GLOBALS.TAIL_OBJECT = SC_TAIL_OBJECT; |
|
function sc_EOF() { |
|
} |
|
var SC_EOF_OBJECT = new sc_EOF(); |
|
function sc_Port() { |
|
} |
|
function sc_InputPort() { |
|
} |
|
sc_InputPort.prototype = new sc_Port(); |
|
sc_InputPort.prototype.peekChar = function() { |
|
if (!("peeked" in this)) |
|
this.peeked = this.getNextChar(); |
|
return this.peeked; |
|
}; |
|
sc_InputPort.prototype.readChar = function() { |
|
var tmp = this.peekChar(); |
|
delete this.peeked; |
|
return tmp; |
|
}; |
|
sc_InputPort.prototype.isCharReady = function() { |
|
return true; |
|
}; |
|
sc_InputPort.prototype.close = function() { |
|
}; |
|
function sc_ErrorInputPort() { |
|
} |
|
sc_ErrorInputPort.prototype = new sc_InputPort(); |
|
sc_ErrorInputPort.prototype.getNextChar = function() { |
|
throw "can't read from error-port."; |
|
}; |
|
sc_ErrorInputPort.prototype.isCharReady = function() { |
|
return false; |
|
}; |
|
function sc_StringInputPort(jsStr) { |
|
this.str = new String(jsStr); |
|
this.pos = 0; |
|
} |
|
sc_StringInputPort.prototype = new sc_InputPort(); |
|
sc_StringInputPort.prototype.getNextChar = function() { |
|
if (this.pos >= this.str.length) |
|
return SC_EOF_OBJECT; |
|
return this.str.charAt(this.pos++); |
|
}; |
|
function sc_Token(type, val, pos) { |
|
this.type = type; |
|
this.val = val; |
|
this.pos = pos; |
|
} |
|
sc_Token.EOF = 0; |
|
sc_Token.OPEN_PAR = 1; |
|
sc_Token.CLOSE_PAR = 2; |
|
sc_Token.OPEN_BRACE = 3; |
|
sc_Token.CLOSE_BRACE = 4; |
|
sc_Token.OPEN_BRACKET = 5; |
|
sc_Token.CLOSE_BRACKET = 6; |
|
sc_Token.WHITESPACE = 7; |
|
sc_Token.QUOTE = 8; |
|
sc_Token.ID = 9; |
|
sc_Token.DOT = 10; |
|
sc_Token.STRING = 11; |
|
sc_Token.NUMBER = 12; |
|
sc_Token.ERROR = 13; |
|
sc_Token.VECTOR_BEGIN = 14; |
|
sc_Token.TRUE = 15; |
|
sc_Token.FALSE = 16; |
|
sc_Token.UNSPECIFIED = 17; |
|
sc_Token.REFERENCE = 18; |
|
sc_Token.STORE = 19; |
|
sc_Token.CHAR = 20; |
|
var SC_ID_CLASS = SC_LOWER_CLASS + SC_UPPER_CLASS + "!$%*+-./:<=>?@^_~"; |
|
function sc_Tokenizer(port) { |
|
this.port = port; |
|
} |
|
sc_Tokenizer.prototype.peekToken = function() { |
|
if (this.peeked) |
|
return this.peeked; |
|
var newToken = this.nextToken(); |
|
this.peeked = newToken; |
|
return newToken; |
|
}; |
|
sc_Tokenizer.prototype.readToken = function() { |
|
var tmp = this.peekToken(); |
|
delete this.peeked; |
|
return tmp; |
|
}; |
|
sc_Tokenizer.prototype.nextToken = function() { |
|
var port = this.port; |
|
function isNumberChar(c) { |
|
return c >= "0" && c <= "9"; |
|
} |
|
; |
|
function isIdOrNumberChar(c) { |
|
return SC_ID_CLASS.indexOf(c) != -1 || c >= "0" && c <= "9"; |
|
} |
|
function isWhitespace(c) { |
|
return c === " " || c === "\r" || c === "\n" || c === " " || c === "\f"; |
|
} |
|
; |
|
function isWhitespaceOrEOF(c) { |
|
return isWhitespace(c) || c === SC_EOF_OBJECT; |
|
} |
|
; |
|
function readString() { |
|
res = ""; |
|
while (true) { |
|
var c = port.readChar(); |
|
switch (c) { |
|
case '"': |
|
return new sc_Token(11, res); |
|
case "\\": |
|
var tmp = port.readChar(); |
|
switch (tmp) { |
|
case "0": |
|
res += "\0o"; |
|
break; |
|
case "a": |
|
res += "a"; |
|
break; |
|
case "b": |
|
res += "\b"; |
|
break; |
|
case "f": |
|
res += "\f"; |
|
break; |
|
case "n": |
|
res += "\n"; |
|
break; |
|
case "r": |
|
res += "\r"; |
|
break; |
|
case "t": |
|
res += " "; |
|
break; |
|
case "v": |
|
res += "\v"; |
|
break; |
|
case '"': |
|
res += '"'; |
|
break; |
|
case "\\": |
|
res += "\\"; |
|
break; |
|
case "x": |
|
var nb = 0; |
|
while (true) { |
|
var hexC = port.peekChar(); |
|
if (hexC >= "0" && hexC <= "9") { |
|
port.readChar(); |
|
nb = nb * 16 + hexC.charCodeAt(0) - "0".charCodeAt(0); |
|
} else if (hexC >= "a" && hexC <= "f") { |
|
port.readChar(); |
|
nb = nb * 16 + hexC.charCodeAt(0) - "a".charCodeAt(0); |
|
} else if (hexC >= "A" && hexC <= "F") { |
|
port.readChar(); |
|
nb = nb * 16 + hexC.charCodeAt(0) - "A".charCodeAt(0); |
|
} else { |
|
res += String.fromCharCode(nb); |
|
break; |
|
} |
|
} |
|
break; |
|
default: |
|
if (tmp === SC_EOF_OBJECT) { |
|
return new sc_Token(13, "unclosed string-literal" + res); |
|
} |
|
res += tmp; |
|
} |
|
break; |
|
default: |
|
if (c === SC_EOF_OBJECT) { |
|
return new sc_Token(13, "unclosed string-literal" + res); |
|
} |
|
res += c; |
|
} |
|
} |
|
} |
|
; |
|
function readIdOrNumber(firstChar) { |
|
var res2 = firstChar; |
|
while (isIdOrNumberChar(port.peekChar())) |
|
res2 += port.readChar(); |
|
if (isNaN(res2)) |
|
return new sc_Token(9, res2); |
|
else |
|
return new sc_Token(12, res2 - 0); |
|
} |
|
; |
|
function skipWhitespaceAndComments() { |
|
var done = false; |
|
while (!done) { |
|
done = true; |
|
while (isWhitespace(port.peekChar())) |
|
port.readChar(); |
|
if (port.peekChar() === ";") { |
|
port.readChar(); |
|
done = false; |
|
while (true) { |
|
curChar = port.readChar(); |
|
if (curChar === SC_EOF_OBJECT || curChar === "\n") |
|
break; |
|
} |
|
} |
|
} |
|
} |
|
; |
|
function readDot() { |
|
if (isWhitespace(port.peekChar())) |
|
return new sc_Token(10); |
|
else |
|
return readIdOrNumber("."); |
|
} |
|
; |
|
function readSharp() { |
|
var c = port.readChar(); |
|
if (isWhitespace(c)) |
|
return new sc_Token(13, "bad #-pattern0."); |
|
if (isNumberChar(c)) { |
|
var nb = c - 0; |
|
while (isNumberChar(port.peekChar())) |
|
nb = nb * 10 + (port.readChar() - 0); |
|
switch (port.readChar()) { |
|
case "#": |
|
return new sc_Token(18, nb); |
|
case "=": |
|
return new sc_Token(19, nb); |
|
default: |
|
return new sc_Token(13, "bad #-pattern1." + nb); |
|
} |
|
} |
|
if (c === "(") |
|
return new sc_Token(14); |
|
if (c === "\\") { |
|
var tmp = ""; |
|
while (!isWhitespaceOrEOF(port.peekChar())) |
|
tmp += port.readChar(); |
|
switch (tmp.length) { |
|
case 0: |
|
if (sc_isEOFObject(port.peekChar)) |
|
return new sc_Token(13, "bad #-pattern2."); |
|
else |
|
return new sc_Token(20, port.readChar()); |
|
case 1: |
|
return new sc_Token(20, tmp); |
|
default: |
|
var entry = sc_Char.readable2char[tmp.toLowerCase()]; |
|
if (entry) |
|
return new sc_Token(20, entry); |
|
else |
|
return new sc_Token(13, "unknown character description: #\\" + tmp); |
|
} |
|
} |
|
var res2; |
|
var needing; |
|
switch (c) { |
|
case "t": |
|
res2 = new sc_Token(15, true); |
|
needing = ""; |
|
break; |
|
case "f": |
|
res2 = new sc_Token(16, false); |
|
needing = ""; |
|
break; |
|
case "u": |
|
res2 = new sc_Token(17, void 0); |
|
needing = "nspecified"; |
|
break; |
|
default: |
|
return new sc_Token(13, "bad #-pattern3: " + c); |
|
} |
|
while (true) { |
|
c = port.peekChar(); |
|
if ((isWhitespaceOrEOF(c) || c === ")") && needing == "") |
|
return res2; |
|
else if (isWhitespace(c) || needing == "") |
|
return new sc_Token(13, "bad #-pattern4 " + c + " " + needing); |
|
else if (needing.charAt(0) == c) { |
|
port.readChar(); |
|
needing = needing.slice(1); |
|
} else |
|
return new sc_Token(13, "bad #-pattern5"); |
|
} |
|
} |
|
; |
|
skipWhitespaceAndComments(); |
|
var curChar = port.readChar(); |
|
if (curChar === SC_EOF_OBJECT) |
|
return new sc_Token(0, curChar); |
|
switch (curChar) { |
|
case " ": |
|
case "\n": |
|
case " ": |
|
return readWhitespace(); |
|
case "(": |
|
return new sc_Token(1); |
|
case ")": |
|
return new sc_Token(2); |
|
case "{": |
|
return new sc_Token(3); |
|
case "}": |
|
return new sc_Token(4); |
|
case "[": |
|
return new sc_Token(5); |
|
case "]": |
|
return new sc_Token(6); |
|
case "'": |
|
return new sc_Token(8); |
|
case "#": |
|
return readSharp(); |
|
case ".": |
|
return readDot(); |
|
case '"': |
|
return readString(); |
|
default: |
|
if (isIdOrNumberChar(curChar)) |
|
return readIdOrNumber(curChar); |
|
throw "unexpected character: " + curChar; |
|
} |
|
}; |
|
function sc_Reader(tokenizer) { |
|
this.tokenizer = tokenizer; |
|
this.backref = new Array(); |
|
} |
|
sc_Reader.prototype.read = function() { |
|
function readList(listBeginType) { |
|
function matchesPeer(open, close) { |
|
return open === 1 && close === 2 || open === 3 && close === 4 || open === 5 && close === 6; |
|
} |
|
; |
|
var res2 = null; |
|
while (true) { |
|
var token2 = tokenizer.peekToken(); |
|
switch (token2.type) { |
|
case 2: |
|
case 4: |
|
case 6: |
|
if (matchesPeer(listBeginType, token2.type)) { |
|
tokenizer.readToken(); |
|
return sc_reverseBang(res2); |
|
} else |
|
throw "closing par doesn't match: " + listBeginType + " " + listEndType; |
|
case 0: |
|
throw "unexpected end of file"; |
|
case 10: |
|
tokenizer.readToken(); |
|
var cdr = this.read(); |
|
var par = tokenizer.readToken(); |
|
if (!matchesPeer(listBeginType, par.type)) |
|
throw "closing par doesn't match: " + listBeginType + " " + par.type; |
|
else |
|
return sc_reverseAppendBang(res2, cdr); |
|
default: |
|
res2 = sc_cons(this.read(), res2); |
|
} |
|
} |
|
} |
|
; |
|
function readQuote() { |
|
return sc_cons("quote", sc_cons(this.read(), null)); |
|
} |
|
; |
|
function readVector() { |
|
var a = new Array(); |
|
while (true) { |
|
var token2 = tokenizer.peekToken(); |
|
switch (token2.type) { |
|
case 2: |
|
tokenizer.readToken(); |
|
return a; |
|
default: |
|
a.push(this.read()); |
|
} |
|
} |
|
} |
|
; |
|
function storeRefence(nb) { |
|
var tmp = this.read(); |
|
this.backref[nb] = tmp; |
|
return tmp; |
|
} |
|
; |
|
function readReference(nb) { |
|
if (nb in this.backref) |
|
return this.backref[nb]; |
|
else |
|
throw "bad reference: " + nb; |
|
} |
|
; |
|
var tokenizer = this.tokenizer; |
|
var token = tokenizer.readToken(); |
|
if (token.type === 13) |
|
throw token.val; |
|
switch (token.type) { |
|
case 1: |
|
case 3: |
|
case 5: |
|
return readList.call(this, token.type); |
|
case 8: |
|
return readQuote.call(this); |
|
case 11: |
|
return sc_jsstring2string(token.val); |
|
case 20: |
|
return new sc_Char(token.val); |
|
case 14: |
|
return readVector.call(this); |
|
case 18: |
|
return readReference.call(this, token.val); |
|
case 19: |
|
return storeRefence.call(this, token.val); |
|
case 9: |
|
return sc_jsstring2symbol(token.val); |
|
case 0: |
|
case 12: |
|
case 15: |
|
case 16: |
|
case 17: |
|
return token.val; |
|
default: |
|
throw "unexpected token " + token.type + " " + token.val; |
|
} |
|
}; |
|
function sc_read(port) { |
|
if (port === void 0) |
|
port = SC_DEFAULT_IN; |
|
var reader = new sc_Reader(new sc_Tokenizer(port)); |
|
return reader.read(); |
|
} |
|
function sc_readChar(port) { |
|
if (port === void 0) |
|
port = SC_DEFAULT_IN; |
|
var t = port.readChar(); |
|
return t === SC_EOF_OBJECT ? t : new sc_Char(t); |
|
} |
|
function sc_peekChar(port) { |
|
if (port === void 0) |
|
port = SC_DEFAULT_IN; |
|
var t = port.peekChar(); |
|
return t === SC_EOF_OBJECT ? t : new sc_Char(t); |
|
} |
|
function sc_isCharReady(port) { |
|
if (port === void 0) |
|
port = SC_DEFAULT_IN; |
|
return port.isCharReady(); |
|
} |
|
function sc_closeInputPort(p) { |
|
return p.close(); |
|
} |
|
function sc_isInputPort(o) { |
|
return o instanceof sc_InputPort; |
|
} |
|
function sc_isEOFObject(o) { |
|
return o === SC_EOF_OBJECT; |
|
} |
|
function sc_currentInputPort() { |
|
return SC_DEFAULT_IN; |
|
} |
|
function sc_callWithInputFile(s, proc) { |
|
throw "can't open " + s; |
|
} |
|
function sc_callWithOutputFile(s, proc) { |
|
throw "can't open " + s; |
|
} |
|
function sc_withInputFromFile(s, thunk) { |
|
throw "can't open " + s; |
|
} |
|
function sc_withOutputToFile(s, thunk) { |
|
throw "can't open " + s; |
|
} |
|
function sc_openInputFile(s) { |
|
throw "can't open " + s; |
|
} |
|
function sc_openOutputFile(s) { |
|
throw "can't open " + s; |
|
} |
|
function sc_basename(p) { |
|
var i2 = p.lastIndexOf("/"); |
|
if (i2 >= 0) |
|
return p.substring(i2 + 1, p.length); |
|
else |
|
return ""; |
|
} |
|
function sc_dirname(p) { |
|
var i2 = p.lastIndexOf("/"); |
|
if (i2 >= 0) |
|
return p.substring(0, i2); |
|
else |
|
return ""; |
|
} |
|
function sc_withInputFromPort(p, thunk) { |
|
try { |
|
var tmp = SC_DEFAULT_IN; |
|
SC_DEFAULT_IN = p; |
|
return thunk(); |
|
} finally { |
|
SC_DEFAULT_IN = tmp; |
|
} |
|
} |
|
function sc_withInputFromString(s, thunk) { |
|
return sc_withInputFromPort(new sc_StringInputPort(sc_string2jsstring(s)), thunk); |
|
} |
|
function sc_withOutputToPort(p, thunk) { |
|
try { |
|
var tmp = SC_DEFAULT_OUT; |
|
SC_DEFAULT_OUT = p; |
|
return thunk(); |
|
} finally { |
|
SC_DEFAULT_OUT = tmp; |
|
} |
|
} |
|
function sc_withOutputToString(thunk) { |
|
var p = new sc_StringOutputPort(); |
|
sc_withOutputToPort(p, thunk); |
|
return p.close(); |
|
} |
|
function sc_withOutputToProcedure(proc, thunk) { |
|
var t = function(s) { |
|
proc(sc_jsstring2string(s)); |
|
}; |
|
return sc_withOutputToPort(new sc_GenericOutputPort(t), thunk); |
|
} |
|
function sc_openOutputString() { |
|
return new sc_StringOutputPort(); |
|
} |
|
function sc_openInputString(str) { |
|
return new sc_StringInputPort(sc_string2jsstring(str)); |
|
} |
|
function sc_OutputPort() { |
|
} |
|
sc_OutputPort.prototype = new sc_Port(); |
|
sc_OutputPort.prototype.appendJSString = function(obj) { |
|
}; |
|
sc_OutputPort.prototype.close = function() { |
|
}; |
|
function sc_StringOutputPort() { |
|
this.res = ""; |
|
} |
|
sc_StringOutputPort.prototype = new sc_OutputPort(); |
|
sc_StringOutputPort.prototype.appendJSString = function(s) { |
|
this.res += s; |
|
}; |
|
sc_StringOutputPort.prototype.close = function() { |
|
return sc_jsstring2string(this.res); |
|
}; |
|
function sc_getOutputString(sp) { |
|
return sc_jsstring2string(sp.res); |
|
} |
|
function sc_ErrorOutputPort() { |
|
} |
|
sc_ErrorOutputPort.prototype = new sc_OutputPort(); |
|
sc_ErrorOutputPort.prototype.appendJSString = function(s) { |
|
throw "don't write on ErrorPort!"; |
|
}; |
|
sc_ErrorOutputPort.prototype.close = function() { |
|
}; |
|
function sc_GenericOutputPort(appendJSString, close) { |
|
this.appendJSString = appendJSString; |
|
if (close) |
|
this.close = close; |
|
} |
|
sc_GenericOutputPort.prototype = new sc_OutputPort(); |
|
function sc_isOutputPort(o) { |
|
return o instanceof sc_OutputPort; |
|
} |
|
function sc_closeOutputPort(p) { |
|
return p.close(); |
|
} |
|
function sc_write(o, p) { |
|
if (p === void 0) |
|
p = SC_DEFAULT_OUT; |
|
p.appendJSString(sc_toWriteString(o)); |
|
} |
|
function sc_toWriteString(o) { |
|
if (o === null) |
|
return "()"; |
|
else if (o === true) |
|
return "#t"; |
|
else if (o === false) |
|
return "#f"; |
|
else if (o === void 0) |
|
return "#unspecified"; |
|
else if (typeof o === "function") |
|
return "#<procedure " + sc_hash(o) + ">"; |
|
else if (o.sc_toWriteString) |
|
return o.sc_toWriteString(); |
|
else |
|
return o.toString(); |
|
} |
|
function sc_escapeWriteString(s) { |
|
var res2 = ""; |
|
var j = 0; |
|
for (i = 0; i < s.length; i++) { |
|
switch (s.charAt(i)) { |
|
case "\0o": |
|
res2 += s.substring(j, i) + "\\0o"; |
|
j = i + 1; |
|
break; |
|
case "\b": |
|
res2 += s.substring(j, i) + "\\b"; |
|
j = i + 1; |
|
break; |
|
case "\f": |
|
res2 += s.substring(j, i) + "\\f"; |
|
j = i + 1; |
|
break; |
|
case "\n": |
|
res2 += s.substring(j, i) + "\\n"; |
|
j = i + 1; |
|
break; |
|
case "\r": |
|
res2 += s.substring(j, i) + "\\r"; |
|
j = i + 1; |
|
break; |
|
case " ": |
|
res2 += s.substring(j, i) + "\\t"; |
|
j = i + 1; |
|
break; |
|
case "\v": |
|
res2 += s.substring(j, i) + "\\v"; |
|
j = i + 1; |
|
break; |
|
case '"': |
|
res2 += s.substring(j, i) + '\\"'; |
|
j = i + 1; |
|
break; |
|
case "\\": |
|
res2 += s.substring(j, i) + "\\\\"; |
|
j = i + 1; |
|
break; |
|
default: |
|
var c = s.charAt(i); |
|
if (false) { |
|
res2 += s.substring(j, i) + "\\a"; |
|
j = i + 1; |
|
continue; |
|
} |
|
if (c == "\v") { |
|
res2 += s.substring(j, i) + "\\v"; |
|
j = i + 1; |
|
continue; |
|
} |
|
if (s.charAt(i) < " ") { |
|
res2 += s.substring(j, i) + "\\x" + s.charCodeAt(i).toString(16); |
|
j = i + 1; |
|
} |
|
} |
|
} |
|
res2 += s.substring(j, i); |
|
return res2; |
|
} |
|
function sc_display(o, p) { |
|
if (p === void 0) |
|
p = SC_DEFAULT_OUT; |
|
p.appendJSString(sc_toDisplayString(o)); |
|
} |
|
function sc_toDisplayString(o) { |
|
if (o === null) |
|
return "()"; |
|
else if (o === true) |
|
return "#t"; |
|
else if (o === false) |
|
return "#f"; |
|
else if (o === void 0) |
|
return "#unspecified"; |
|
else if (typeof o === "function") |
|
return "#<procedure " + sc_hash(o) + ">"; |
|
else if (o.sc_toDisplayString) |
|
return o.sc_toDisplayString(); |
|
else |
|
return o.toString(); |
|
} |
|
function sc_newline(p) { |
|
if (p === void 0) |
|
p = SC_DEFAULT_OUT; |
|
p.appendJSString("\n"); |
|
} |
|
function sc_writeChar(c, p) { |
|
if (p === void 0) |
|
p = SC_DEFAULT_OUT; |
|
p.appendJSString(c.val); |
|
} |
|
function sc_writeCircle(o, p) { |
|
if (p === void 0) |
|
p = SC_DEFAULT_OUT; |
|
p.appendJSString(sc_toWriteCircleString(o)); |
|
} |
|
function sc_toWriteCircleString(o) { |
|
var symb = sc_gensym("writeCircle"); |
|
var nbPointer = new Object(); |
|
nbPointer.nb = 0; |
|
sc_prepWriteCircle(o, symb, nbPointer); |
|
return sc_genToWriteCircleString(o, symb); |
|
} |
|
function sc_prepWriteCircle(o, symb, nbPointer) { |
|
if (o instanceof sc_Pair || o instanceof sc_Vector) { |
|
if (o[symb] !== void 0) { |
|
o[symb]++; |
|
if (!o[symb + "nb"]) |
|
o[symb + "nb"] = nbPointer.nb++; |
|
return; |
|
} |
|
o[symb] = 0; |
|
if (o instanceof sc_Pair) { |
|
sc_prepWriteCircle(o.car, symb, nbPointer); |
|
sc_prepWriteCircle(o.cdr, symb, nbPointer); |
|
} else { |
|
for (var i2 = 0; i2 < o.length; i2++) |
|
sc_prepWriteCircle(o[i2], symb, nbPointer); |
|
} |
|
} |
|
} |
|
function sc_genToWriteCircleString(o, symb) { |
|
if (!(o instanceof sc_Pair || o instanceof sc_Vector)) |
|
return sc_toWriteString(o); |
|
return o.sc_toWriteCircleString(symb); |
|
} |
|
sc_Pair.prototype.sc_toWriteCircleString = function(symb, inList) { |
|
if (this[symb + "use"]) { |
|
var nb = this[symb + "nb"]; |
|
if (this[symb]-- === 0) { |
|
delete this[symb]; |
|
delete this[symb + "nb"]; |
|
delete this[symb + "use"]; |
|
} |
|
if (inList) |
|
return ". #" + nb + "#"; |
|
else |
|
return "#" + nb + "#"; |
|
} |
|
if (this[symb]-- === 0) { |
|
delete this[symb]; |
|
delete this[symb + "nb"]; |
|
delete this[symb + "use"]; |
|
} |
|
var res2 = ""; |
|
if (this[symb] !== void 0) { |
|
this[symb + "use"] = true; |
|
if (inList) |
|
res2 += ". #" + this[symb + "nb"] + "="; |
|
else |
|
res2 += "#" + this[symb + "nb"] + "="; |
|
inList = false; |
|
} |
|
if (!inList) |
|
res2 += "("; |
|
res2 += sc_genToWriteCircleString(this.car, symb); |
|
if (sc_isPair(this.cdr)) { |
|
res2 += " " + this.cdr.sc_toWriteCircleString(symb, true); |
|
} else if (this.cdr !== null) { |
|
res2 += " . " + sc_genToWriteCircleString(this.cdr, symb); |
|
} |
|
if (!inList) |
|
res2 += ")"; |
|
return res2; |
|
}; |
|
sc_Vector.prototype.sc_toWriteCircleString = function(symb) { |
|
if (this[symb + "use"]) { |
|
var nb = this[symb + "nb"]; |
|
if (this[symb]-- === 0) { |
|
delete this[symb]; |
|
delete this[symb + "nb"]; |
|
delete this[symb + "use"]; |
|
} |
|
return "#" + nb + "#"; |
|
} |
|
if (this[symb]-- === 0) { |
|
delete this[symb]; |
|
delete this[symb + "nb"]; |
|
delete this[symb + "use"]; |
|
} |
|
var res2 = ""; |
|
if (this[symb] !== void 0) { |
|
this[symb + "use"] = true; |
|
res2 += "#" + this[symb + "nb"] + "="; |
|
} |
|
res2 += "#("; |
|
for (var i2 = 0; i2 < this.length; i2++) { |
|
res2 += sc_genToWriteCircleString(this[i2], symb); |
|
if (i2 < this.length - 1) |
|
res2 += " "; |
|
} |
|
res2 += ")"; |
|
return res2; |
|
}; |
|
function sc_print(s) { |
|
if (arguments.length === 1) { |
|
sc_display(s); |
|
sc_newline(); |
|
} else { |
|
for (var i2 = 0; i2 < arguments.length; i2++) |
|
sc_display(arguments[i2]); |
|
sc_newline(); |
|
} |
|
} |
|
function sc_format(s, args) { |
|
var len = s.length; |
|
var p = new sc_StringOutputPort(); |
|
var i2 = 0, j = 1; |
|
while (i2 < len) { |
|
var i22 = s.indexOf("~", i2); |
|
if (i22 == -1) { |
|
p.appendJSString(s.substring(i2, len)); |
|
return p.close(); |
|
} else { |
|
if (i22 > i2) { |
|
if (i22 == len - 1) { |
|
p.appendJSString(s.substring(i2, len)); |
|
return p.close(); |
|
} else { |
|
p.appendJSString(s.substring(i2, i22)); |
|
i2 = i22; |
|
} |
|
} |
|
switch (s.charCodeAt(i22 + 1)) { |
|
case 65: |
|
case 97: |
|
sc_display(arguments[j], p); |
|
i2 += 2; |
|
j++; |
|
break; |
|
case 83: |
|
case 115: |
|
sc_write(arguments[j], p); |
|
i2 += 2; |
|
j++; |
|
break; |
|
case 86: |
|
case 118: |
|
sc_display(arguments[j], p); |
|
p.appendJSString("\n"); |
|
i2 += 2; |
|
j++; |
|
break; |
|
case 67: |
|
case 99: |
|
p.appendJSString(String.fromCharCode(arguments[j])); |
|
i2 += 2; |
|
j++; |
|
break; |
|
case 88: |
|
case 120: |
|
p.appendJSString(arguments[j].toString(6)); |
|
i2 += 2; |
|
j++; |
|
break; |
|
case 79: |
|
case 111: |
|
p.appendJSString(arguments[j].toString(8)); |
|
i2 += 2; |
|
j++; |
|
break; |
|
case 66: |
|
case 98: |
|
p.appendJSString(arguments[j].toString(2)); |
|
i2 += 2; |
|
j++; |
|
break; |
|
case 37: |
|
case 110: |
|
p.appendJSString("\n"); |
|
i2 += 2; |
|
break; |
|
case 114: |
|
p.appendJSString("\r"); |
|
i2 += 2; |
|
break; |
|
case 126: |
|
p.appendJSString("~"); |
|
i2 += 2; |
|
break; |
|
default: |
|
sc_error("format: illegal ~" + String.fromCharCode(s.charCodeAt(i22 + 1)) + " sequence"); |
|
return ""; |
|
} |
|
} |
|
} |
|
return p.close(); |
|
} |
|
var SC_DEFAULT_IN = new sc_ErrorInputPort(); |
|
var SC_DEFAULT_OUT = new sc_ErrorOutputPort(); |
|
var SC_ERROR_OUT = new sc_ErrorOutputPort(); |
|
var sc_SYMBOL_PREFIX = "\u1E9C"; |
|
var sc_KEYWORD_PREFIX = "\u1E9D"; |
|
function sc_jsstring2string(s) { |
|
return s; |
|
} |
|
function sc_jsstring2symbol(s) { |
|
return sc_SYMBOL_PREFIX + s; |
|
} |
|
function sc_string2jsstring(s) { |
|
return s; |
|
} |
|
function sc_symbol2jsstring(s) { |
|
return s.slice(1); |
|
} |
|
function sc_keyword2jsstring(k) { |
|
return k.slice(1); |
|
} |
|
function sc_jsstring2keyword(s) { |
|
return sc_KEYWORD_PREFIX + s; |
|
} |
|
function sc_isKeyword(s) { |
|
return typeof s === "string" && s.charAt(0) === sc_KEYWORD_PREFIX; |
|
} |
|
var sc_gensym = function() { |
|
var counter = 1e3; |
|
return function(sym) { |
|
counter++; |
|
if (!sym) |
|
sym = sc_SYMBOL_PREFIX; |
|
return sym + "s" + counter + "~^sC-GeNsYm "; |
|
}; |
|
}(); |
|
function sc_isEqual(o1, o2) { |
|
return o1 === o2 || sc_isPair(o1) && sc_isPair(o2) && sc_isPairEqual(o1, o2, sc_isEqual) || sc_isVector(o1) && sc_isVector(o2) && sc_isVectorEqual(o1, o2, sc_isEqual); |
|
} |
|
function sc_number2symbol(x, radix) { |
|
return sc_SYMBOL_PREFIX + sc_number2jsstring(x, radix); |
|
} |
|
var sc_number2string = sc_number2jsstring; |
|
function sc_symbol2number(s, radix) { |
|
return sc_jsstring2number(s.slice(1), radix); |
|
} |
|
var sc_string2number = sc_jsstring2number; |
|
function sc_string2integer(s, radix) { |
|
if (!radix) |
|
return +s; |
|
return parseInt(s, radix); |
|
} |
|
function sc_string2real(s) { |
|
return +s; |
|
} |
|
function sc_isSymbol(s) { |
|
return typeof s === "string" && s.charAt(0) === sc_SYMBOL_PREFIX; |
|
} |
|
function sc_symbol2string(s) { |
|
return s.slice(1); |
|
} |
|
function sc_string2symbol(s) { |
|
return sc_SYMBOL_PREFIX + s; |
|
} |
|
function sc_symbolAppend() { |
|
var res2 = sc_SYMBOL_PREFIX; |
|
for (var i2 = 0; i2 < arguments.length; i2++) |
|
res2 += arguments[i2].slice(1); |
|
return res2; |
|
} |
|
function sc_char2string(c) { |
|
return c.val; |
|
} |
|
function sc_char2symbol(c) { |
|
return sc_SYMBOL_PREFIX + c.val; |
|
} |
|
function sc_isString(s) { |
|
return typeof s === "string" && s.charAt(0) !== sc_SYMBOL_PREFIX; |
|
} |
|
var sc_makeString = sc_makejsString; |
|
function sc_string() { |
|
for (var i2 = 0; i2 < arguments.length; i2++) |
|
arguments[i2] = arguments[i2].val; |
|
return "".concat.apply("", arguments); |
|
} |
|
function sc_stringLength(s) { |
|
return s.length; |
|
} |
|
function sc_stringRef(s, k) { |
|
return new sc_Char(s.charAt(k)); |
|
} |
|
function sc_isStringEqual(s1, s2) { |
|
return s1 === s2; |
|
} |
|
function sc_isStringLess(s1, s2) { |
|
return s1 < s2; |
|
} |
|
function sc_isStringGreater(s1, s2) { |
|
return s1 > s2; |
|
} |
|
function sc_isStringLessEqual(s1, s2) { |
|
return s1 <= s2; |
|
} |
|
function sc_isStringGreaterEqual(s1, s2) { |
|
return s1 >= s2; |
|
} |
|
function sc_isStringCIEqual(s1, s2) { |
|
return s1.toLowerCase() === s2.toLowerCase(); |
|
} |
|
function sc_isStringCILess(s1, s2) { |
|
return s1.toLowerCase() < s2.toLowerCase(); |
|
} |
|
function sc_isStringCIGreater(s1, s2) { |
|
return s1.toLowerCase() > s2.toLowerCase(); |
|
} |
|
function sc_isStringCILessEqual(s1, s2) { |
|
return s1.toLowerCase() <= s2.toLowerCase(); |
|
} |
|
function sc_isStringCIGreaterEqual(s1, s2) { |
|
return s1.toLowerCase() >= s2.toLowerCase(); |
|
} |
|
function sc_substring(s, start, end) { |
|
return s.substring(start, end); |
|
} |
|
function sc_isSubstring_at(s1, s2, i2) { |
|
return s2 == s1.substring(i2, i2 + s2.length); |
|
} |
|
function sc_stringAppend() { |
|
return "".concat.apply("", arguments); |
|
} |
|
var sc_string2list = sc_jsstring2list; |
|
var sc_list2string = sc_list2jsstring; |
|
function sc_stringCopy(s) { |
|
return s; |
|
} |
|
function sc_keyword2string(o) { |
|
return o.slice(1); |
|
} |
|
function sc_string2keyword(o) { |
|
return sc_KEYWORD_PREFIX + o; |
|
} |
|
String.prototype.sc_toDisplayString = function() { |
|
if (this.charAt(0) === sc_SYMBOL_PREFIX) |
|
return this.slice(1); |
|
else if (this.charAt(0) === sc_KEYWORD_PREFIX) |
|
return ":" + this.slice(1); |
|
else |
|
return this.toString(); |
|
}; |
|
String.prototype.sc_toWriteString = function() { |
|
if (this.charAt(0) === sc_SYMBOL_PREFIX) |
|
return this.slice(1); |
|
else if (this.charAt(0) === sc_KEYWORD_PREFIX) |
|
return ":" + this.slice(1); |
|
else |
|
return '"' + sc_escapeWriteString(this) + '"'; |
|
}; |
|
var BgL_testzd2boyerzd2; |
|
var BgL_nboyerzd2benchmarkzd2; |
|
var BgL_setupzd2boyerzd2; |
|
var translate_term_nboyer; |
|
var translate_args_nboyer; |
|
var untranslate_term_nboyer; |
|
var BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer; |
|
var BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer; |
|
var translate_alist_nboyer; |
|
var apply_subst_nboyer; |
|
var apply_subst_lst_nboyer; |
|
var tautologyp_nboyer; |
|
var if_constructor_nboyer; |
|
var rewrite_count_nboyer; |
|
var rewrite_nboyer; |
|
var rewrite_args_nboyer; |
|
var unify_subst_nboyer; |
|
var one_way_unify1_nboyer; |
|
var false_term_nboyer; |
|
var true_term_nboyer; |
|
var trans_of_implies1_nboyer; |
|
var is_term_equal_nboyer; |
|
var is_term_member_nboyer; |
|
var const_nboyer; |
|
var sc_const_3_nboyer; |
|
var sc_const_4_nboyer; |
|
{ |
|
sc_const_4_nboyer = new sc_Pair("\u1E9Cimplies", new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cimplies", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cimplies", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cimplies", new sc_Pair("\u1E9Cz", new sc_Pair("\u1E9Cu", null))), new sc_Pair(new sc_Pair("\u1E9Cimplies", new sc_Pair("\u1E9Cu", new sc_Pair("\u1E9Cw", null))), null))), null))), null))), new sc_Pair(new sc_Pair("\u1E9Cimplies", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cw", null))), null))); |
|
sc_const_3_nboyer = sc_list(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ccompile", new sc_Pair("\u1E9Cform", null)), new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair(new sc_Pair("\u1E9Ccodegen", new sc_Pair(new sc_Pair("\u1E9Coptimize", new sc_Pair("\u1E9Cform", null)), new sc_Pair(new sc_Pair("\u1E9Cnil", null), null))), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ceqp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cy", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cgreaterp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clesseqp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cgreatereqp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cboolean", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Ct", null), null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cf", null), null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ciff", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cimplies", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cimplies", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ceven1", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Ct", null), new sc_Pair(new sc_Pair("\u1E9Codd", new sc_Pair(new sc_Pair("\u1E9Csub1", new sc_Pair("\u1E9Cx", null)), null)), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ccountps-", new sc_Pair("\u1E9Cl", new sc_Pair("\u1E9Cpred", null))), new sc_Pair(new sc_Pair("\u1E9Ccountps-loop", new sc_Pair("\u1E9Cl", new sc_Pair("\u1E9Cpred", new sc_Pair(new sc_Pair("\u1E9Czero", null), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cfact-", new sc_Pair("\u1E9Ci", null)), new sc_Pair(new sc_Pair("\u1E9Cfact-loop", new sc_Pair("\u1E9Ci", new sc_Pair(1, null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Creverse-", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Creverse-loop", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cnil", null), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdivides", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cassume-true", new sc_Pair("\u1E9Cvar", new sc_Pair("\u1E9Calist", null))), new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cvar", new sc_Pair(new sc_Pair("\u1E9Ct", null), null))), new sc_Pair("\u1E9Calist", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cassume-false", new sc_Pair("\u1E9Cvar", new sc_Pair("\u1E9Calist", null))), new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cvar", new sc_Pair(new sc_Pair("\u1E9Cf", null), null))), new sc_Pair("\u1E9Calist", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ctautology-checker", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Ctautologyp", new sc_Pair(new sc_Pair("\u1E9Cnormalize", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cnil", null), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cfalsify", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cfalsify1", new sc_Pair(new sc_Pair("\u1E9Cnormalize", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cnil", null), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cprime", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair(new sc_Pair("\u1E9Czero", null), null)), null))), null)), new sc_Pair(new sc_Pair("\u1E9Cprime1", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Csub1", new sc_Pair("\u1E9Cx", null)), null))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair("\u1E9Cp", new sc_Pair("\u1E9Cq", null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cp", new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cq", new sc_Pair(new sc_Pair("\u1E9Ct", null), new sc_Pair(new sc_Pair("\u1E9Cf", null), null)))), new sc_Pair(new sc_Pair("\u1E9Cf", null), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair("\u1E9Cp", new sc_Pair("\u1E9Cq", null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cp", new sc_Pair(new sc_Pair("\u1E9Ct", null), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cq", new sc_Pair(new sc_Pair("\u1E9Ct", null), new sc_Pair(new sc_Pair("\u1E9Cf", null), null)))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair("\u1E9Cp", null)), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cp", new sc_Pair(new sc_Pair("\u1E9Cf", null), new sc_Pair(new sc_Pair("\u1E9Ct", null), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cimplies", new sc_Pair("\u1E9Cp", new sc_Pair("\u1E9Cq", null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cp", new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cq", new sc_Pair(new sc_Pair("\u1E9Ct", null), new sc_Pair(new sc_Pair("\u1E9Cf", null), null)))), new sc_Pair(new sc_Pair("\u1E9Ct", null), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cx", null)), new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Czero", null), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", new sc_Pair("\u1E9Cc", null)))), new sc_Pair("\u1E9Cd", new sc_Pair("\u1E9Ce", null)))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Ca", new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cb", new sc_Pair("\u1E9Cd", new sc_Pair("\u1E9Ce", null)))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair("\u1E9Cc", new sc_Pair("\u1E9Cd", new sc_Pair("\u1E9Ce", null)))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cx", null)), null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Ca", null)), new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cb", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cx", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cc", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cb", null)), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cc", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Czero", null), new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cy", null)), null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair(new sc_Pair("\u1E9Cplus-tree", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair(new sc_Pair("\u1E9Cplus-tree", new sc_Pair("\u1E9Cx", null)), new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair(new sc_Pair("\u1E9Cplus-tree", new sc_Pair("\u1E9Cy", null)), new sc_Pair("\u1E9Ca", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair(new sc_Pair("\u1E9Cplus-tree", new sc_Pair(new sc_Pair("\u1E9Cplus-fringe", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Ca", null))), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), null)), new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair("\u1E9Cb", null)), new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair("\u1E9Ca", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cz", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cy", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cexec", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair("\u1E9Cpds", new sc_Pair("\u1E9Cenvrn", null)))), new sc_Pair(new sc_Pair("\u1E9Cexec", new sc_Pair("\u1E9Cy", new sc_Pair(new sc_Pair("\u1E9Cexec", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cpds", new sc_Pair("\u1E9Cenvrn", null)))), new sc_Pair("\u1E9Cenvrn", null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cmc-flatten", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair(new sc_Pair("\u1E9Cflatten", new sc_Pair("\u1E9Cx", null)), new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cb", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair("\u1E9Cy", null)), null))), new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clength", new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair(new sc_Pair("\u1E9Clength", new sc_Pair("\u1E9Cx", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Ca", new sc_Pair(new sc_Pair("\u1E9Cintersect", new sc_Pair("\u1E9Cb", new sc_Pair("\u1E9Cc", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cc", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cnth", new sc_Pair(new sc_Pair("\u1E9Czero", null), new sc_Pair("\u1E9Ci", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cexp", new sc_Pair("\u1E9Ci", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cj", new sc_Pair("\u1E9Ck", null))), null))), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair(new sc_Pair("\u1E9Cexp", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cj", null))), new sc_Pair(new sc_Pair("\u1E9Cexp", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Ck", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cexp", new sc_Pair("\u1E9Ci", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cj", new sc_Pair("\u1E9Ck", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cexp", new sc_Pair(new sc_Pair("\u1E9Cexp", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cj", null))), new sc_Pair("\u1E9Ck", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Creverse-loop", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair("\u1E9Cx", null)), new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Creverse-loop", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cnil", null), null))), new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair("\u1E9Cx", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ccount-list", new sc_Pair("\u1E9Cz", new sc_Pair(new sc_Pair("\u1E9Csort-lp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(new sc_Pair("\u1E9Ccount-list", new sc_Pair("\u1E9Cz", new sc_Pair("\u1E9Cx", null))), new sc_Pair(new sc_Pair("\u1E9Ccount-list", new sc_Pair("\u1E9Cz", new sc_Pair("\u1E9Cy", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cc", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cb", new sc_Pair("\u1E9Cc", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cy", new sc_Pair(new sc_Pair("\u1E9Cquotient", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), null))), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cx", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cpower-eval", new sc_Pair(new sc_Pair("\u1E9Cbig-plus1", new sc_Pair("\u1E9Cl", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cbase", null)))), new sc_Pair("\u1E9Cbase", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(new sc_Pair("\u1E9Cpower-eval", new sc_Pair("\u1E9Cl", new sc_Pair("\u1E9Cbase", null))), new sc_Pair("\u1E9Ci", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cpower-eval", new sc_Pair(new sc_Pair("\u1E9Cbig-plus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cbase", null))))), new sc_Pair("\u1E9Cbase", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Ci", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(new sc_Pair("\u1E9Cpower-eval", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cbase", null))), new sc_Pair(new sc_Pair("\u1E9Cpower-eval", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cbase", null))), null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair("\u1E9Cy", new sc_Pair(1, null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cy", null)), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cx", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair(new sc_Pair("\u1E9Cquotient", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cj", null))), new sc_Pair("\u1E9Ci", null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Ci", null)), null)), new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cj", null)), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cj", new sc_Pair(1, null))), null)), null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair("\u1E9Cx", null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cy", null)), null)), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cpower-eval", new sc_Pair(new sc_Pair("\u1E9Cpower-rep", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cbase", null))), new sc_Pair("\u1E9Cbase", null))), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Ci", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cpower-eval", new sc_Pair(new sc_Pair("\u1E9Cbig-plus", new sc_Pair(new sc_Pair("\u1E9Cpower-rep", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cbase", null))), new sc_Pair(new sc_Pair("\u1E9Cpower-rep", new sc_Pair("\u1E9Cj", new sc_Pair("\u1E9Cbase", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), new sc_Pair("\u1E9Cbase", null))))), new sc_Pair("\u1E9Cbase", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cj", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cgcd", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cgcd", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cnth", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair("\u1E9Ci", null))), new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair(new sc_Pair("\u1E9Cnth", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Ci", null))), new sc_Pair(new sc_Pair("\u1E9Cnth", new sc_Pair("\u1E9Cb", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Ci", new sc_Pair(new sc_Pair("\u1E9Clength", new sc_Pair("\u1E9Ca", null)), null))), null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair("\u1E9Cx", null))), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cy", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), new sc_Pair("\u1E9Cx", null))), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cy", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cz", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Cc", new sc_Pair("\u1E9Cw", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cc", new sc_Pair("\u1E9Cx", null))), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cw", new sc_Pair("\u1E9Cx", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cz", null))), new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cb", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cc", null))), null))), new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cb", new sc_Pair("\u1E9Cc", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null)), new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair("\u1E9Cy", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cz", null))), null))), new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cz", null)), null)), new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cy", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cx", null)), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cgcd", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null))), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cz", new sc_Pair(new sc_Pair("\u1E9Cgcd", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cvalue", new sc_Pair(new sc_Pair("\u1E9Cnormalize", new sc_Pair("\u1E9Cx", null)), new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cvalue", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Ca", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cflatten", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cy", new sc_Pair(new sc_Pair("\u1E9Cnil", null), null))), null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cnlistp", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clistp", new sc_Pair(new sc_Pair("\u1E9Cgopher", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair(new sc_Pair("\u1E9Clistp", new sc_Pair("\u1E9Cx", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Csamefringe", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cflatten", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cflatten", new sc_Pair("\u1E9Cy", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cgreatest-factor", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cy", null)), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cy", new sc_Pair(1, null))), null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cgreatest-factor", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(1, null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(1, null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair(new sc_Pair("\u1E9Cgreatest-factor", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cy", null)), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cy", new sc_Pair(1, null))), null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cx", null)), null)), null))), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ctimes-list", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair(new sc_Pair("\u1E9Ctimes-list", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Ctimes-list", new sc_Pair("\u1E9Cy", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cprime-list", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cprime-list", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cprime-list", new sc_Pair("\u1E9Cy", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cz", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cw", new sc_Pair("\u1E9Cz", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cz", null)), new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cz", new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cw", new sc_Pair(1, null))), null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cgreatereqp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cor", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair(new sc_Pair("\u1E9Cand", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cy", new sc_Pair(1, null))), null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(1, null))), new sc_Pair(sc_list("\u1E9Cand", new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Ca", new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), null)), new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair("\u1E9Cb", new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), null)), new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Ca", null)), new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cb", null)), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Csub1", new sc_Pair("\u1E9Ca", null)), new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Csub1", new sc_Pair("\u1E9Cb", null)), new sc_Pair(new sc_Pair("\u1E9Czero", null), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair(new sc_Pair("\u1E9Clength", new sc_Pair(new sc_Pair("\u1E9Cdelete", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cl", null))), null)), new sc_Pair(new sc_Pair("\u1E9Clength", new sc_Pair("\u1E9Cl", null)), null))), new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cl", null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Csort2", new sc_Pair(new sc_Pair("\u1E9Cdelete", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cl", null))), null)), new sc_Pair(new sc_Pair("\u1E9Cdelete", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Csort2", new sc_Pair("\u1E9Cl", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdsort", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Csort2", new sc_Pair("\u1E9Cx", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clength", new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cx1", new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cx2", new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cx3", new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cx4", new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cx5", new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair("\u1E9Cx6", new sc_Pair("\u1E9Cx7", null))), null))), null))), null))), null))), null))), null)), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(6, new sc_Pair(new sc_Pair("\u1E9Clength", new sc_Pair("\u1E9Cx7", null)), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair(2, null))), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cx", null)), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cquotient", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair(2, null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cquotient", new sc_Pair("\u1E9Cy", new sc_Pair(2, null))), null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Csigma", new sc_Pair(new sc_Pair("\u1E9Czero", null), new sc_Pair("\u1E9Ci", null))), new sc_Pair(new sc_Pair("\u1E9Cquotient", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Ci", new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair("\u1E9Ci", null)), null))), new sc_Pair(2, null))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair("\u1E9Cy", null)), null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cy", null)), new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair("\u1E9Cx", null)), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Cz", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cz", null))), null)), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cz", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cnot", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), null)), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cz", null)), null))), null)))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair(new sc_Pair("\u1E9Cplus-tree", new sc_Pair(new sc_Pair("\u1E9Cdelete", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)), new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair(new sc_Pair("\u1E9Cplus-tree", new sc_Pair("\u1E9Cy", null)), new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Ca", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cmeaning", new sc_Pair(new sc_Pair("\u1E9Cplus-tree", new sc_Pair("\u1E9Cy", null)), new sc_Pair("\u1E9Ca", null))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cadd1", new sc_Pair("\u1E9Cy", null)), null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Cnumberp", new sc_Pair("\u1E9Cy", null)), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cx", null)), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cnth", new sc_Pair(new sc_Pair("\u1E9Cnil", null), new sc_Pair("\u1E9Ci", null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Ci", null)), new sc_Pair(new sc_Pair("\u1E9Cnil", null), new sc_Pair(new sc_Pair("\u1E9Czero", null), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clast", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), null)), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Clistp", new sc_Pair("\u1E9Cb", null)), new sc_Pair(new sc_Pair("\u1E9Clast", new sc_Pair("\u1E9Cb", null)), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Clistp", new sc_Pair("\u1E9Ca", null)), new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair(new sc_Pair("\u1E9Ccar", new sc_Pair(new sc_Pair("\u1E9Clast", new sc_Pair("\u1E9Ca", null)), null)), new sc_Pair("\u1E9Cb", null))), new sc_Pair("\u1E9Cb", null)))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Clessp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ct", null), new sc_Pair("\u1E9Cz", null))), new sc_Pair(new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cf", null), new sc_Pair("\u1E9Cz", null))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cassignment", new sc_Pair("\u1E9Cx", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Cassignedp", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cassignment", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Ca", null))), new sc_Pair(new sc_Pair("\u1E9Cassignment", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cb", null))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Ccar", new sc_Pair(new sc_Pair("\u1E9Cgopher", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Clistp", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Ccar", new sc_Pair(new sc_Pair("\u1E9Cflatten", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair(new sc_Pair("\u1E9Czero", null), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cflatten", new sc_Pair(new sc_Pair("\u1E9Ccdr", new sc_Pair(new sc_Pair("\u1E9Cgopher", new sc_Pair("\u1E9Cx", null)), null)), null)), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Clistp", new sc_Pair("\u1E9Cx", null)), new sc_Pair(new sc_Pair("\u1E9Ccdr", new sc_Pair(new sc_Pair("\u1E9Cflatten", new sc_Pair("\u1E9Cx", null)), null)), new sc_Pair(new sc_Pair("\u1E9Ccons", new sc_Pair(new sc_Pair("\u1E9Czero", null), new sc_Pair(new sc_Pair("\u1E9Cnil", null), null))), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cquotient", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cx", null))), new sc_Pair("\u1E9Cy", null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Czerop", new sc_Pair("\u1E9Cy", null)), new sc_Pair(new sc_Pair("\u1E9Czero", null), new sc_Pair(new sc_Pair("\u1E9Cfix", new sc_Pair("\u1E9Cx", null)), null)))), null))), new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cget", new sc_Pair("\u1E9Cj", new sc_Pair(new sc_Pair("\u1E9Cset", new sc_Pair("\u1E9Ci", new sc_Pair("\u1E9Cval", new sc_Pair("\u1E9Cmem", null)))), null))), new sc_Pair(new sc_Pair("\u1E9Cif", new sc_Pair(new sc_Pair("\u1E9Ceqp", new sc_Pair("\u1E9Cj", new sc_Pair("\u1E9Ci", null))), new sc_Pair("\u1E9Cval", new sc_Pair(new sc_Pair("\u1E9Cget", new sc_Pair("\u1E9Cj", new sc_Pair("\u1E9Cmem", null))), null)))), null)))); |
|
const_nboyer = new sc_Pair(new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cf", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cc", new sc_Pair(new sc_Pair("\u1E9Czero", null), null))), null))), null))), new sc_Pair(new sc_Pair("\u1E9Cy", new sc_Pair("\u1E9Cf", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair(new sc_Pair("\u1E9Ctimes", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Cc", new sc_Pair("\u1E9Cd", null))), null))), null))), new sc_Pair(new sc_Pair("\u1E9Cz", new sc_Pair("\u1E9Cf", new sc_Pair(new sc_Pair("\u1E9Creverse", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair(new sc_Pair("\u1E9Cappend", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Cnil", null), null))), null)), null))), new sc_Pair(new sc_Pair("\u1E9Cu", new sc_Pair("\u1E9Cequal", new sc_Pair(new sc_Pair("\u1E9Cplus", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Cdifference", new sc_Pair("\u1E9Cx", new sc_Pair("\u1E9Cy", null))), null)))), new sc_Pair(new sc_Pair("\u1E9Cw", new sc_Pair("\u1E9Clessp", new sc_Pair(new sc_Pair("\u1E9Cremainder", new sc_Pair("\u1E9Ca", new sc_Pair("\u1E9Cb", null))), new sc_Pair(new sc_Pair("\u1E9Cmember", new sc_Pair("\u1E9Ca", new sc_Pair(new sc_Pair("\u1E9Clength", new sc_Pair("\u1E9Cb", null)), null))), null)))), null))))); |
|
BgL_nboyerzd2benchmarkzd2 = function() { |
|
var args = null; |
|
for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) { |
|
args = sc_cons(arguments[sc_tmp], args); |
|
} |
|
var n; |
|
return n = args === null ? 0 : args.car, BgL_setupzd2boyerzd2(), BgL_runzd2benchmarkzd2("nboyer" + sc_number2string(n), 1, function() { |
|
return BgL_testzd2boyerzd2(n); |
|
}, function(rewrites) { |
|
if (sc_isNumber(rewrites)) |
|
switch (n) { |
|
case 0: |
|
return rewrites === 95024; |
|
break; |
|
case 1: |
|
return rewrites === 591777; |
|
break; |
|
case 2: |
|
return rewrites === 1813975; |
|
break; |
|
case 3: |
|
return rewrites === 5375678; |
|
break; |
|
case 4: |
|
return rewrites === 16445406; |
|
break; |
|
case 5: |
|
return rewrites === 51507739; |
|
break; |
|
default: |
|
return true; |
|
break; |
|
} |
|
else |
|
return false; |
|
}); |
|
}; |
|
BgL_setupzd2boyerzd2 = function() { |
|
return true; |
|
}; |
|
BgL_testzd2boyerzd2 = function() { |
|
return true; |
|
}; |
|
translate_term_nboyer = function(term) { |
|
var lst; |
|
return !(term instanceof sc_Pair) ? term : new sc_Pair(BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(term.car), (lst = term.cdr, lst === null ? null : new sc_Pair(translate_term_nboyer(lst.car), translate_args_nboyer(lst.cdr)))); |
|
}; |
|
translate_args_nboyer = function(lst) { |
|
var sc_lst_5; |
|
var term; |
|
return lst === null ? null : new sc_Pair((term = lst.car, !(term instanceof sc_Pair) ? term : new sc_Pair(BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(term.car), translate_args_nboyer(term.cdr))), (sc_lst_5 = lst.cdr, sc_lst_5 === null ? null : new sc_Pair(translate_term_nboyer(sc_lst_5.car), translate_args_nboyer(sc_lst_5.cdr)))); |
|
}; |
|
untranslate_term_nboyer = function(term) { |
|
var optrOpnd; |
|
var tail1131; |
|
var L1127; |
|
var falseHead1130; |
|
var symbol_record; |
|
if (!(term instanceof sc_Pair)) |
|
return term; |
|
else { |
|
falseHead1130 = new sc_Pair(null, null); |
|
L1127 = term.cdr; |
|
tail1131 = falseHead1130; |
|
while (!(L1127 === null)) { |
|
{ |
|
tail1131.cdr = new sc_Pair(untranslate_term_nboyer(L1127.car), null); |
|
tail1131 = tail1131.cdr; |
|
L1127 = L1127.cdr; |
|
} |
|
} |
|
optrOpnd = falseHead1130.cdr; |
|
return new sc_Pair((symbol_record = term.car, symbol_record[0]), optrOpnd); |
|
} |
|
}; |
|
BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer = function(sym) { |
|
var r; |
|
var x; |
|
return x = sc_assq(sym, BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer), x !== false ? x.cdr : (r = [sym, null], BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = new sc_Pair(new sc_Pair(sym, r), BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer), r); |
|
}; |
|
BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null; |
|
translate_alist_nboyer = function(alist) { |
|
var sc_alist_6; |
|
var term; |
|
return alist === null ? null : new sc_Pair(new sc_Pair(alist.car.car, (term = alist.car.cdr, !(term instanceof sc_Pair) ? term : new sc_Pair(BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(term.car), translate_args_nboyer(term.cdr)))), (sc_alist_6 = alist.cdr, sc_alist_6 === null ? null : new sc_Pair(new sc_Pair(sc_alist_6.car.car, translate_term_nboyer(sc_alist_6.car.cdr)), translate_alist_nboyer(sc_alist_6.cdr)))); |
|
}; |
|
apply_subst_nboyer = function(alist, term) { |
|
var lst; |
|
var temp_temp; |
|
return !(term instanceof sc_Pair) ? (temp_temp = sc_assq(term, alist), temp_temp !== false ? temp_temp.cdr : term) : new sc_Pair(term.car, (lst = term.cdr, lst === null ? null : new sc_Pair(apply_subst_nboyer(alist, lst.car), apply_subst_lst_nboyer(alist, lst.cdr)))); |
|
}; |
|
apply_subst_lst_nboyer = function(alist, lst) { |
|
var sc_lst_7; |
|
return lst === null ? null : new sc_Pair(apply_subst_nboyer(alist, lst.car), (sc_lst_7 = lst.cdr, sc_lst_7 === null ? null : new sc_Pair(apply_subst_nboyer(alist, sc_lst_7.car), apply_subst_lst_nboyer(alist, sc_lst_7.cdr)))); |
|
}; |
|
tautologyp_nboyer = function(sc_x_11, true_lst, false_lst) { |
|
var tmp1125; |
|
var x; |
|
var tmp1126; |
|
var sc_x_8; |
|
var sc_tmp1125_9; |
|
var sc_tmp1126_10; |
|
var sc_x_11; |
|
var true_lst; |
|
var false_lst; |
|
while (true) { |
|
if ((sc_tmp1126_10 = is_term_equal_nboyer(sc_x_11, true_term_nboyer), sc_tmp1126_10 !== false ? sc_tmp1126_10 : is_term_member_nboyer(sc_x_11, true_lst)) !== false) |
|
return true; |
|
else if ((sc_tmp1125_9 = is_term_equal_nboyer(sc_x_11, false_term_nboyer), sc_tmp1125_9 !== false ? sc_tmp1125_9 : is_term_member_nboyer(sc_x_11, false_lst)) !== false) |
|
return false; |
|
else if (!(sc_x_11 instanceof sc_Pair)) |
|
return false; |
|
else if (sc_x_11.car === if_constructor_nboyer) |
|
if ((sc_x_8 = sc_x_11.cdr.car, tmp1126 = is_term_equal_nboyer(sc_x_8, true_term_nboyer), tmp1126 !== false ? tmp1126 : is_term_member_nboyer(sc_x_8, true_lst)) !== false) |
|
sc_x_11 = sc_x_11.cdr.cdr.car; |
|
else if ((x = sc_x_11.cdr.car, tmp1125 = is_term_equal_nboyer(x, false_term_nboyer), tmp1125 !== false ? tmp1125 : is_term_member_nboyer(x, false_lst)) !== false) |
|
sc_x_11 = sc_x_11.cdr.cdr.cdr.car; |
|
else if (tautologyp_nboyer(sc_x_11.cdr.cdr.car, new sc_Pair(sc_x_11.cdr.car, true_lst), false_lst) !== false) { |
|
false_lst = new sc_Pair(sc_x_11.cdr.car, false_lst); |
|
sc_x_11 = sc_x_11.cdr.cdr.cdr.car; |
|
} else |
|
return false; |
|
else |
|
return false; |
|
} |
|
}; |
|
if_constructor_nboyer = "\u1E9C*"; |
|
rewrite_count_nboyer = 0; |
|
rewrite_nboyer = function(term) { |
|
var term2; |
|
var sc_term_12; |
|
var lst; |
|
var symbol_record; |
|
var sc_lst_13; |
|
{ |
|
++rewrite_count_nboyer; |
|
if (!(term instanceof sc_Pair)) |
|
return term; |
|
else { |
|
sc_term_12 = new sc_Pair(term.car, (sc_lst_13 = term.cdr, sc_lst_13 === null ? null : new sc_Pair(rewrite_nboyer(sc_lst_13.car), rewrite_args_nboyer(sc_lst_13.cdr)))); |
|
lst = (symbol_record = term.car, symbol_record[1]); |
|
while (true) { |
|
if (lst === null) |
|
return sc_term_12; |
|
else if ((term2 = lst.car.cdr.car, unify_subst_nboyer = null, one_way_unify1_nboyer(sc_term_12, term2)) !== false) |
|
return rewrite_nboyer(apply_subst_nboyer(unify_subst_nboyer, lst.car.cdr.cdr.car)); |
|
else |
|
lst = lst.cdr; |
|
} |
|
} |
|
} |
|
}; |
|
rewrite_args_nboyer = function(lst) { |
|
var sc_lst_14; |
|
return lst === null ? null : new sc_Pair(rewrite_nboyer(lst.car), (sc_lst_14 = lst.cdr, sc_lst_14 === null ? null : new sc_Pair(rewrite_nboyer(sc_lst_14.car), rewrite_args_nboyer(sc_lst_14.cdr)))); |
|
}; |
|
unify_subst_nboyer = "\u1E9C*"; |
|
one_way_unify1_nboyer = function(term1, term2) { |
|
var lst1; |
|
var lst2; |
|
var temp_temp; |
|
if (!(term2 instanceof sc_Pair)) { |
|
temp_temp = sc_assq(term2, unify_subst_nboyer); |
|
if (temp_temp !== false) |
|
return is_term_equal_nboyer(term1, temp_temp.cdr); |
|
else if (sc_isNumber(term2)) |
|
return sc_isEqual(term1, term2); |
|
else { |
|
unify_subst_nboyer = new sc_Pair(new sc_Pair(term2, term1), unify_subst_nboyer); |
|
return true; |
|
} |
|
} else if (!(term1 instanceof sc_Pair)) |
|
return false; |
|
else if (term1.car === term2.car) { |
|
lst1 = term1.cdr; |
|
lst2 = term2.cdr; |
|
while (true) { |
|
if (lst1 === null) |
|
return lst2 === null; |
|
else if (lst2 === null) |
|
return false; |
|
else if (one_way_unify1_nboyer(lst1.car, lst2.car) !== false) { |
|
lst1 = lst1.cdr; |
|
lst2 = lst2.cdr; |
|
} else |
|
return false; |
|
} |
|
} else |
|
return false; |
|
}; |
|
false_term_nboyer = "\u1E9C*"; |
|
true_term_nboyer = "\u1E9C*"; |
|
trans_of_implies1_nboyer = function(n) { |
|
var sc_n_15; |
|
return sc_isEqual(n, 1) ? sc_list("\u1E9Cimplies", 0, 1) : sc_list("\u1E9Cand", sc_list("\u1E9Cimplies", n - 1, n), (sc_n_15 = n - 1, sc_isEqual(sc_n_15, 1) ? sc_list("\u1E9Cimplies", 0, 1) : sc_list("\u1E9Cand", sc_list("\u1E9Cimplies", sc_n_15 - 1, sc_n_15), trans_of_implies1_nboyer(sc_n_15 - 1)))); |
|
}; |
|
is_term_equal_nboyer = function(x, y) { |
|
var lst1; |
|
var lst2; |
|
var r2; |
|
var r1; |
|
if (x instanceof sc_Pair) |
|
if (y instanceof sc_Pair) |
|
if ((r1 = x.car, r2 = y.car, r1 === r2) !== false) { |
|
lst1 = x.cdr; |
|
lst2 = y.cdr; |
|
while (true) { |
|
if (lst1 === null) |
|
return lst2 === null; |
|
else if (lst2 === null) |
|
return false; |
|
else if (is_term_equal_nboyer(lst1.car, lst2.car) !== false) { |
|
lst1 = lst1.cdr; |
|
lst2 = lst2.cdr; |
|
} else |
|
return false; |
|
} |
|
} else |
|
return false; |
|
else |
|
return false; |
|
else |
|
return sc_isEqual(x, y); |
|
}; |
|
is_term_member_nboyer = function(x, lst) { |
|
var x; |
|
var lst; |
|
while (true) { |
|
if (lst === null) |
|
return false; |
|
else if (is_term_equal_nboyer(x, lst.car) !== false) |
|
return true; |
|
else |
|
lst = lst.cdr; |
|
} |
|
}; |
|
BgL_setupzd2boyerzd2 = function() { |
|
var symbol_record; |
|
var value; |
|
var BgL_sc_symbolzd2record_16zd2; |
|
var sym; |
|
var sc_sym_17; |
|
var term; |
|
var lst; |
|
var sc_term_18; |
|
var sc_term_19; |
|
{ |
|
BgL_sc_za2symbolzd2recordszd2alistza2_2z00_nboyer = null; |
|
if_constructor_nboyer = BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer("\u1E9Cif"); |
|
false_term_nboyer = (sc_term_19 = new sc_Pair("\u1E9Cf", null), !(sc_term_19 instanceof sc_Pair) ? sc_term_19 : new sc_Pair(BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_term_19.car), translate_args_nboyer(sc_term_19.cdr))); |
|
true_term_nboyer = (sc_term_18 = new sc_Pair("\u1E9Ct", null), !(sc_term_18 instanceof sc_Pair) ? sc_term_18 : new sc_Pair(BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_term_18.car), translate_args_nboyer(sc_term_18.cdr))); |
|
lst = sc_const_3_nboyer; |
|
while (!(lst === null)) { |
|
{ |
|
term = lst.car; |
|
if (term instanceof sc_Pair && (term.car === "\u1E9Cequal" && term.cdr.car instanceof sc_Pair)) { |
|
sc_sym_17 = term.cdr.car.car; |
|
value = new sc_Pair(!(term instanceof sc_Pair) ? term : new sc_Pair(BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(term.car), translate_args_nboyer(term.cdr)), (sym = term.cdr.car.car, BgL_sc_symbolzd2record_16zd2 = BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sym), BgL_sc_symbolzd2record_16zd2[1])); |
|
symbol_record = BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_sym_17); |
|
symbol_record[1] = value; |
|
} else |
|
sc_error("ADD-LEMMA did not like term: ", term); |
|
lst = lst.cdr; |
|
} |
|
} |
|
return true; |
|
} |
|
}; |
|
BgL_testzd2boyerzd2 = function(n) { |
|
var optrOpnd; |
|
var term; |
|
var sc_n_20; |
|
var answer; |
|
var sc_term_21; |
|
var sc_term_22; |
|
{ |
|
rewrite_count_nboyer = 0; |
|
term = sc_const_4_nboyer; |
|
sc_n_20 = n; |
|
while (!(sc_n_20 === 0)) { |
|
{ |
|
term = sc_list("\u1E9Cor", term, new sc_Pair("\u1E9Cf", null)); |
|
--sc_n_20; |
|
} |
|
} |
|
sc_term_22 = term; |
|
if (!(sc_term_22 instanceof sc_Pair)) |
|
optrOpnd = sc_term_22; |
|
else |
|
optrOpnd = new sc_Pair(BgL_sc_symbolzd2ze3symbolzd2record_1ze3_nboyer(sc_term_22.car), translate_args_nboyer(sc_term_22.cdr)); |
|
sc_term_21 = apply_subst_nboyer(const_nboyer === null ? null : new sc_Pair(new sc_Pair(const_nboyer.car.car, translate_term_nboyer(const_nboyer.car.cdr)), translate_alist_nboyer(const_nboyer.cdr)), optrOpnd); |
|
answer = tautologyp_nboyer(rewrite_nboyer(sc_term_21), null, null); |
|
sc_write(rewrite_count_nboyer); |
|
sc_display(" rewrites"); |
|
sc_newline(); |
|
if (answer !== false) |
|
return rewrite_count_nboyer; |
|
else |
|
return false; |
|
} |
|
}; |
|
} |
|
var BgL_parsezd2ze3nbzd2treesze3; |
|
var BgL_earleyzd2benchmarkzd2; |
|
var BgL_parsezd2ze3parsedzf3zc2; |
|
var test; |
|
var BgL_parsezd2ze3treesz31; |
|
var BgL_makezd2parserzd2; |
|
var const_earley; |
|
{ |
|
const_earley = new sc_Pair(new sc_Pair("\u1E9Cs", new sc_Pair(new sc_Pair("\u1E9Ca", null), new sc_Pair(new sc_Pair("\u1E9Cs", new sc_Pair("\u1E9Cs", null)), null))), null); |
|
BgL_makezd2parserzd2 = function(grammar, lexer) { |
|
var i2; |
|
var parser_descr; |
|
var def_loop; |
|
var nb_nts; |
|
var names; |
|
var steps; |
|
var predictors; |
|
var enders; |
|
var starters; |
|
var nts; |
|
var sc_names_1; |
|
var sc_steps_2; |
|
var sc_predictors_3; |
|
var sc_enders_4; |
|
var sc_starters_5; |
|
var nb_confs; |
|
var BgL_sc_defzd2loop_6zd2; |
|
var BgL_sc_nbzd2nts_7zd2; |
|
var sc_nts_8; |
|
var BgL_sc_defzd2loop_9zd2; |
|
var ind; |
|
{ |
|
ind = function(nt, sc_nts_10) { |
|
var i3; |
|
{ |
|
i3 = sc_nts_10.length - 1; |
|
while (true) { |
|
if (i3 >= 0) |
|
if (sc_isEqual(sc_nts_10[i3], nt)) |
|
return i3; |
|
else |
|
--i3; |
|
else |
|
return false; |
|
} |
|
} |
|
}; |
|
sc_nts_8 = (BgL_sc_defzd2loop_9zd2 = function(defs, sc_nts_11) { |
|
var rule_loop; |
|
var head; |
|
var def; |
|
return defs instanceof sc_Pair ? (def = defs.car, head = def.car, rule_loop = function(rules, sc_nts_12) { |
|
var nt; |
|
var l; |
|
var sc_nts_13; |
|
var rule; |
|
if (rules instanceof sc_Pair) { |
|
rule = rules.car; |
|
l = rule; |
|
sc_nts_13 = sc_nts_12; |
|
while (l instanceof sc_Pair) { |
|
{ |
|
nt = l.car; |
|
l = l.cdr; |
|
sc_nts_13 = sc_member(nt, sc_nts_13) !== false ? sc_nts_13 : new sc_Pair(nt, sc_nts_13); |
|
} |
|
} |
|
return rule_loop(rules.cdr, sc_nts_13); |
|
} else |
|
return BgL_sc_defzd2loop_9zd2(defs.cdr, sc_nts_12); |
|
}, rule_loop(def.cdr, sc_member(head, sc_nts_11) !== false ? sc_nts_11 : new sc_Pair(head, sc_nts_11))) : sc_list2vector(sc_reverse(sc_nts_11)); |
|
}, BgL_sc_defzd2loop_9zd2(grammar, null)); |
|
BgL_sc_nbzd2nts_7zd2 = sc_nts_8.length; |
|
nb_confs = (BgL_sc_defzd2loop_6zd2 = function(defs, BgL_sc_nbzd2confs_14zd2) { |
|
var rule_loop; |
|
var def; |
|
return defs instanceof sc_Pair ? (def = defs.car, rule_loop = function(rules, BgL_sc_nbzd2confs_15zd2) { |
|
var l; |
|
var BgL_sc_nbzd2confs_16zd2; |
|
var rule; |
|
if (rules instanceof sc_Pair) { |
|
rule = rules.car; |
|
l = rule; |
|
BgL_sc_nbzd2confs_16zd2 = BgL_sc_nbzd2confs_15zd2; |
|
while (l instanceof sc_Pair) { |
|
{ |
|
l = l.cdr; |
|
++BgL_sc_nbzd2confs_16zd2; |
|
} |
|
} |
|
return rule_loop(rules.cdr, BgL_sc_nbzd2confs_16zd2 + 1); |
|
} else |
|
return BgL_sc_defzd2loop_6zd2(defs.cdr, BgL_sc_nbzd2confs_15zd2); |
|
}, rule_loop(def.cdr, BgL_sc_nbzd2confs_14zd2)) : BgL_sc_nbzd2confs_14zd2; |
|
}, BgL_sc_defzd2loop_6zd2(grammar, 0)) + BgL_sc_nbzd2nts_7zd2; |
|
sc_starters_5 = sc_makeVector(BgL_sc_nbzd2nts_7zd2, null); |
|
sc_enders_4 = sc_makeVector(BgL_sc_nbzd2nts_7zd2, null); |
|
sc_predictors_3 = sc_makeVector(BgL_sc_nbzd2nts_7zd2, null); |
|
sc_steps_2 = sc_makeVector(nb_confs, false); |
|
sc_names_1 = sc_makeVector(nb_confs, false); |
|
nts = sc_nts_8; |
|
starters = sc_starters_5; |
|
enders = sc_enders_4; |
|
predictors = sc_predictors_3; |
|
steps = sc_steps_2; |
|
names = sc_names_1; |
|
nb_nts = sc_nts_8.length; |
|
i2 = nb_nts - 1; |
|
while (i2 >= 0) { |
|
{ |
|
sc_steps_2[i2] = i2 - nb_nts; |
|
sc_names_1[i2] = sc_list(sc_nts_8[i2], 0); |
|
sc_enders_4[i2] = sc_list(i2); |
|
--i2; |
|
} |
|
} |
|
def_loop = function(defs, conf) { |
|
var rule_loop; |
|
var head; |
|
var def; |
|
return defs instanceof sc_Pair ? (def = defs.car, head = def.car, rule_loop = function(rules, conf2, rule_num) { |
|
var i3; |
|
var sc_i_17; |
|
var nt; |
|
var l; |
|
var sc_conf_18; |
|
var sc_i_19; |
|
var rule; |
|
if (rules instanceof sc_Pair) { |
|
rule = rules.car; |
|
names[conf2] = sc_list(head, rule_num); |
|
sc_i_19 = ind(head, nts); |
|
starters[sc_i_19] = new sc_Pair(conf2, starters[sc_i_19]); |
|
l = rule; |
|
sc_conf_18 = conf2; |
|
while (l instanceof sc_Pair) { |
|
{ |
|
nt = l.car; |
|
steps[sc_conf_18] = ind(nt, nts); |
|
sc_i_17 = ind(nt, nts); |
|
predictors[sc_i_17] = new sc_Pair(sc_conf_18, predictors[sc_i_17]); |
|
l = l.cdr; |
|
++sc_conf_18; |
|
} |
|
} |
|
steps[sc_conf_18] = ind(head, nts) - nb_nts; |
|
i3 = ind(head, nts); |
|
enders[i3] = new sc_Pair(sc_conf_18, enders[i3]); |
|
return rule_loop(rules.cdr, sc_conf_18 + 1, rule_num + 1); |
|
} else |
|
return def_loop(defs.cdr, conf2); |
|
}, rule_loop(def.cdr, conf, 1)) : void 0; |
|
}; |
|
def_loop(grammar, sc_nts_8.length); |
|
parser_descr = [lexer, sc_nts_8, sc_starters_5, sc_enders_4, sc_predictors_3, sc_steps_2, sc_names_1]; |
|
return function(input) { |
|
var optrOpnd; |
|
var sc_optrOpnd_20; |
|
var sc_optrOpnd_21; |
|
var sc_optrOpnd_22; |
|
var loop1; |
|
var BgL_sc_stateza2_23za2; |
|
var toks; |
|
var BgL_sc_nbzd2nts_24zd2; |
|
var sc_steps_25; |
|
var sc_enders_26; |
|
var state_num; |
|
var BgL_sc_statesza2_27za2; |
|
var states; |
|
var i3; |
|
var conf; |
|
var l; |
|
var tok_nts; |
|
var sc_i_28; |
|
var sc_i_29; |
|
var l1; |
|
var l2; |
|
var tok; |
|
var tail1129; |
|
var L1125; |
|
var goal_enders; |
|
var BgL_sc_statesza2_30za2; |
|
var BgL_sc_nbzd2nts_31zd2; |
|
var BgL_sc_nbzd2confs_32zd2; |
|
var nb_toks; |
|
var goal_starters; |
|
var sc_states_33; |
|
var BgL_sc_nbzd2confs_34zd2; |
|
var BgL_sc_nbzd2toks_35zd2; |
|
var sc_toks_36; |
|
var falseHead1128; |
|
var sc_names_37; |
|
var sc_steps_38; |
|
var sc_predictors_39; |
|
var sc_enders_40; |
|
var sc_starters_41; |
|
var sc_nts_42; |
|
var lexer2; |
|
var sc_ind_43; |
|
var make_states; |
|
var BgL_sc_confzd2setzd2getza2_44za2; |
|
var conf_set_merge_new_bang; |
|
var conf_set_adjoin; |
|
var BgL_sc_confzd2setzd2adjoinza2_45za2; |
|
var BgL_sc_confzd2setzd2adjoinza2za2_46z00; |
|
var conf_set_union; |
|
var forw; |
|
var is_parsed; |
|
var deriv_trees; |
|
var BgL_sc_derivzd2treesza2_47z70; |
|
var nb_deriv_trees; |
|
var BgL_sc_nbzd2derivzd2treesza2_48za2; |
|
{ |
|
sc_ind_43 = function(nt, sc_nts_49) { |
|
var i4; |
|
{ |
|
i4 = sc_nts_49.length - 1; |
|
while (true) { |
|
if (i4 >= 0) |
|
if (sc_isEqual(sc_nts_49[i4], nt)) |
|
return i4; |
|
else |
|
--i4; |
|
else |
|
return false; |
|
} |
|
} |
|
}; |
|
make_states = function(BgL_sc_nbzd2toks_50zd2, BgL_sc_nbzd2confs_51zd2) { |
|
var v; |
|
var i4; |
|
var sc_states_52; |
|
{ |
|
sc_states_52 = sc_makeVector(BgL_sc_nbzd2toks_50zd2 + 1, false); |
|
i4 = BgL_sc_nbzd2toks_50zd2; |
|
while (i4 >= 0) { |
|
{ |
|
v = sc_makeVector(BgL_sc_nbzd2confs_51zd2 + 1, false); |
|
v[0] = -1; |
|
sc_states_52[i4] = v; |
|
--i4; |
|
} |
|
} |
|
return sc_states_52; |
|
} |
|
}; |
|
BgL_sc_confzd2setzd2getza2_44za2 = function(state, BgL_sc_statezd2num_53zd2, sc_conf_54) { |
|
var conf_set; |
|
var BgL_sc_confzd2set_55zd2; |
|
return BgL_sc_confzd2set_55zd2 = state[sc_conf_54 + 1], BgL_sc_confzd2set_55zd2 !== false ? BgL_sc_confzd2set_55zd2 : (conf_set = sc_makeVector(BgL_sc_statezd2num_53zd2 + 6, false), conf_set[1] = -3, conf_set[2] = -1, conf_set[3] = -1, conf_set[4] = -1, state[sc_conf_54 + 1] = conf_set, conf_set); |
|
}; |
|
conf_set_merge_new_bang = function(conf_set) { |
|
return conf_set[conf_set[1] + 5] = conf_set[4], conf_set[1] = conf_set[3], conf_set[3] = -1, conf_set[4] = -1; |
|
}; |
|
conf_set_adjoin = function(state, conf_set, sc_conf_56, i4) { |
|
var tail; |
|
return tail = conf_set[3], conf_set[i4 + 5] = -1, conf_set[tail + 5] = i4, conf_set[3] = i4, tail < 0 ? (conf_set[0] = state[0], state[0] = sc_conf_56) : void 0; |
|
}; |
|
BgL_sc_confzd2setzd2adjoinza2_45za2 = function(sc_states_57, BgL_sc_statezd2num_58zd2, l3, i4) { |
|
var conf_set; |
|
var sc_conf_59; |
|
var l12; |
|
var state; |
|
{ |
|
state = sc_states_57[BgL_sc_statezd2num_58zd2]; |
|
l12 = l3; |
|
while (l12 instanceof sc_Pair) { |
|
{ |
|
sc_conf_59 = l12.car; |
|
conf_set = BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_58zd2, sc_conf_59); |
|
if (conf_set[i4 + 5] === false) { |
|
conf_set_adjoin(state, conf_set, sc_conf_59, i4); |
|
l12 = l12.cdr; |
|
} else |
|
l12 = l12.cdr; |
|
} |
|
} |
|
return void 0; |
|
} |
|
}; |
|
BgL_sc_confzd2setzd2adjoinza2za2_46z00 = function(sc_states_60, BgL_sc_statesza2_61za2, BgL_sc_statezd2num_62zd2, sc_conf_63, i4) { |
|
var BgL_sc_confzd2setza2_64z70; |
|
var BgL_sc_stateza2_65za2; |
|
var conf_set; |
|
var state; |
|
return state = sc_states_60[BgL_sc_statezd2num_62zd2], (conf_set = state[sc_conf_63 + 1], conf_set !== false ? conf_set[i4 + 5] : false) !== false ? (BgL_sc_stateza2_65za2 = BgL_sc_statesza2_61za2[BgL_sc_statezd2num_62zd2], BgL_sc_confzd2setza2_64z70 = BgL_sc_confzd2setzd2getza2_44za2(BgL_sc_stateza2_65za2, BgL_sc_statezd2num_62zd2, sc_conf_63), BgL_sc_confzd2setza2_64z70[i4 + 5] === false ? conf_set_adjoin(BgL_sc_stateza2_65za2, BgL_sc_confzd2setza2_64z70, sc_conf_63, i4) : void 0, true) : false; |
|
}; |
|
conf_set_union = function(state, conf_set, sc_conf_66, other_set) { |
|
var i4; |
|
{ |
|
i4 = other_set[2]; |
|
while (i4 >= 0) { |
|
if (conf_set[i4 + 5] === false) { |
|
conf_set_adjoin(state, conf_set, sc_conf_66, i4); |
|
i4 = other_set[i4 + 5]; |
|
} else |
|
i4 = other_set[i4 + 5]; |
|
} |
|
return void 0; |
|
} |
|
}; |
|
forw = function(sc_states_67, BgL_sc_statezd2num_68zd2, sc_starters_69, sc_enders_70, sc_predictors_71, sc_steps_72, sc_nts_73) { |
|
var next_set; |
|
var next; |
|
var conf_set; |
|
var ender; |
|
var l3; |
|
var starter_set; |
|
var starter; |
|
var sc_l_74; |
|
var sc_loop1_75; |
|
var head; |
|
var BgL_sc_confzd2set_76zd2; |
|
var BgL_sc_statezd2num_77zd2; |
|
var state; |
|
var sc_states_78; |
|
var preds; |
|
var BgL_sc_confzd2set_79zd2; |
|
var step; |
|
var sc_conf_80; |
|
var BgL_sc_nbzd2nts_81zd2; |
|
var sc_state_82; |
|
{ |
|
sc_state_82 = sc_states_67[BgL_sc_statezd2num_68zd2]; |
|
BgL_sc_nbzd2nts_81zd2 = sc_nts_73.length; |
|
while (true) { |
|
{ |
|
sc_conf_80 = sc_state_82[0]; |
|
if (sc_conf_80 >= 0) { |
|
step = sc_steps_72[sc_conf_80]; |
|
BgL_sc_confzd2set_79zd2 = sc_state_82[sc_conf_80 + 1]; |
|
head = BgL_sc_confzd2set_79zd2[4]; |
|
sc_state_82[0] = BgL_sc_confzd2set_79zd2[0]; |
|
conf_set_merge_new_bang(BgL_sc_confzd2set_79zd2); |
|
if (step >= 0) { |
|
sc_l_74 = sc_starters_69[step]; |
|
while (sc_l_74 instanceof sc_Pair) { |
|
{ |
|
starter = sc_l_74.car; |
|
starter_set = BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, starter); |
|
if (starter_set[BgL_sc_statezd2num_68zd2 + 5] === false) { |
|
conf_set_adjoin(sc_state_82, starter_set, starter, BgL_sc_statezd2num_68zd2); |
|
sc_l_74 = sc_l_74.cdr; |
|
} else |
|
sc_l_74 = sc_l_74.cdr; |
|
} |
|
} |
|
l3 = sc_enders_70[step]; |
|
while (l3 instanceof sc_Pair) { |
|
{ |
|
ender = l3.car; |
|
if ((conf_set = sc_state_82[ender + 1], conf_set !== false ? conf_set[BgL_sc_statezd2num_68zd2 + 5] : false) !== false) { |
|
next = sc_conf_80 + 1; |
|
next_set = BgL_sc_confzd2setzd2getza2_44za2(sc_state_82, BgL_sc_statezd2num_68zd2, next); |
|
conf_set_union(sc_state_82, next_set, next, BgL_sc_confzd2set_79zd2); |
|
l3 = l3.cdr; |
|
} else |
|
l3 = l3.cdr; |
|
} |
|
} |
|
} else { |
|
preds = sc_predictors_71[step + BgL_sc_nbzd2nts_81zd2]; |
|
sc_states_78 = sc_states_67; |
|
state = sc_state_82; |
|
BgL_sc_statezd2num_77zd2 = BgL_sc_statezd2num_68zd2; |
|
BgL_sc_confzd2set_76zd2 = BgL_sc_confzd2set_79zd2; |
|
sc_loop1_75 = function(l4) { |
|
var sc_state_83; |
|
var BgL_sc_nextzd2set_84zd2; |
|
var sc_next_85; |
|
var pred_set; |
|
var i4; |
|
var pred; |
|
if (l4 instanceof sc_Pair) { |
|
pred = l4.car; |
|
i4 = head; |
|
while (i4 >= 0) { |
|
{ |
|
pred_set = (sc_state_83 = sc_states_78[i4], sc_state_83[pred + 1]); |
|
if (pred_set !== false) { |
|
sc_next_85 = pred + 1; |
|
BgL_sc_nextzd2set_84zd2 = BgL_sc_confzd2setzd2getza2_44za2(state, BgL_sc_statezd2num_77zd2, sc_next_85); |
|
conf_set_union(state, BgL_sc_nextzd2set_84zd2, sc_next_85, pred_set); |
|
} |
|
i4 = BgL_sc_confzd2set_76zd2[i4 + 5]; |
|
} |
|
} |
|
return sc_loop1_75(l4.cdr); |
|
} else |
|
return void 0; |
|
}; |
|
sc_loop1_75(preds); |
|
} |
|
} else |
|
return void 0; |
|
} |
|
} |
|
} |
|
}; |
|
is_parsed = function(nt, i4, j, sc_nts_86, sc_enders_87, sc_states_88) { |
|
var conf_set; |
|
var state; |
|
var sc_conf_89; |
|
var l3; |
|
var BgL_sc_ntza2_90za2; |
|
{ |
|
BgL_sc_ntza2_90za2 = sc_ind_43(nt, sc_nts_86); |
|
if (BgL_sc_ntza2_90za2 !== false) { |
|
sc_nts_86.length; |
|
l3 = sc_enders_87[BgL_sc_ntza2_90za2]; |
|
while (true) { |
|
if (l3 instanceof sc_Pair) { |
|
sc_conf_89 = l3.car; |
|
if ((state = sc_states_88[j], conf_set = state[sc_conf_89 + 1], conf_set !== false ? conf_set[i4 + 5] : false) !== false) |
|
return true; |
|
else |
|
l3 = l3.cdr; |
|
} else |
|
return false; |
|
} |
|
} else |
|
return false; |
|
} |
|
}; |
|
deriv_trees = function(sc_conf_91, i4, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2) { |
|
var sc_loop1_98; |
|
var prev; |
|
var name; |
|
return name = sc_names_94[sc_conf_91], name !== false ? sc_conf_91 < BgL_sc_nbzd2nts_97zd2 ? sc_list(sc_list(name, sc_toks_95[i4].car)) : sc_list(sc_list(name)) : (prev = sc_conf_91 - 1, sc_loop1_98 = function(l12, l22) { |
|
var loop2; |
|
var ender_set; |
|
var state; |
|
var ender; |
|
var l12; |
|
var l22; |
|
while (true) { |
|
if (l12 instanceof sc_Pair) { |
|
ender = l12.car; |
|
ender_set = (state = sc_states_96[j], state[ender + 1]); |
|
if (ender_set !== false) { |
|
loop2 = function(k, l23) { |
|
var loop3; |
|
var ender_trees; |
|
var prev_trees; |
|
var conf_set; |
|
var sc_state_99; |
|
var k; |
|
var l23; |
|
while (true) { |
|
if (k >= 0) |
|
if (k >= i4 && (sc_state_99 = sc_states_96[k], conf_set = sc_state_99[prev + 1], conf_set !== false ? conf_set[i4 + 5] : false) !== false) { |
|
prev_trees = deriv_trees(prev, i4, k, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2); |
|
ender_trees = deriv_trees(ender, k, j, sc_enders_92, sc_steps_93, sc_names_94, sc_toks_95, sc_states_96, BgL_sc_nbzd2nts_97zd2); |
|
loop3 = function(l3, l24) { |
|
var l4; |
|
var sc_l2_100; |
|
var ender_tree; |
|
if (l3 instanceof sc_Pair) { |
|
ender_tree = sc_list(l3.car); |
|
l4 = prev_trees; |
|
sc_l2_100 = l24; |
|
while (l4 instanceof sc_Pair) { |
|
{ |
|
sc_l2_100 = new sc_Pair(sc_append(l4.car, ender_tree), sc_l2_100); |
|
l4 = l4.cdr; |
|
} |
|
} |
|
return loop3(l3.cdr, sc_l2_100); |
|
} else |
|
return loop2(ender_set[k + 5], l24); |
|
}; |
|
return loop3(ender_trees, l23); |
|
} else |
|
k = ender_set[k + 5]; |
|
else |
|
return sc_loop1_98(l12.cdr, l23); |
|
} |
|
}; |
|
return loop2(ender_set[2], l22); |
|
} else |
|
l12 = l12.cdr; |
|
} else |
|
return l22; |
|
} |
|
}, sc_loop1_98(sc_enders_92[sc_steps_93[prev]], null)); |
|
}; |
|
BgL_sc_derivzd2treesza2_47z70 = function(nt, i4, j, sc_nts_101, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106) { |
|
var conf_set; |
|
var state; |
|
var sc_conf_107; |
|
var l3; |
|
var trees; |
|
var BgL_sc_nbzd2nts_108zd2; |
|
var BgL_sc_ntza2_109za2; |
|
{ |
|
BgL_sc_ntza2_109za2 = sc_ind_43(nt, sc_nts_101); |
|
if (BgL_sc_ntza2_109za2 !== false) { |
|
BgL_sc_nbzd2nts_108zd2 = sc_nts_101.length; |
|
l3 = sc_enders_102[BgL_sc_ntza2_109za2]; |
|
trees = null; |
|
while (l3 instanceof sc_Pair) { |
|
{ |
|
sc_conf_107 = l3.car; |
|
if ((state = sc_states_106[j], conf_set = state[sc_conf_107 + 1], conf_set !== false ? conf_set[i4 + 5] : false) !== false) { |
|
l3 = l3.cdr; |
|
trees = sc_append(deriv_trees(sc_conf_107, i4, j, sc_enders_102, sc_steps_103, sc_names_104, sc_toks_105, sc_states_106, BgL_sc_nbzd2nts_108zd2), trees); |
|
} else |
|
l3 = l3.cdr; |
|
} |
|
} |
|
return trees; |
|
} else |
|
return false; |
|
} |
|
}; |
|
nb_deriv_trees = function(sc_conf_110, i4, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2) { |
|
var sc_loop1_116; |
|
var tmp1124; |
|
var prev; |
|
return prev = sc_conf_110 - 1, (tmp1124 = sc_conf_110 < BgL_sc_nbzd2nts_115zd2, tmp1124 !== false ? tmp1124 : sc_steps_112[prev] < 0) !== false ? 1 : (sc_loop1_116 = function(l3, sc_n_118) { |
|
var nb_ender_trees; |
|
var nb_prev_trees; |
|
var conf_set; |
|
var state; |
|
var k; |
|
var n; |
|
var ender_set; |
|
var sc_state_117; |
|
var ender; |
|
var l3; |
|
var sc_n_118; |
|
while (true) { |
|
if (l3 instanceof sc_Pair) { |
|
ender = l3.car; |
|
ender_set = (sc_state_117 = sc_states_114[j], sc_state_117[ender + 1]); |
|
if (ender_set !== false) { |
|
k = ender_set[2]; |
|
n = sc_n_118; |
|
while (k >= 0) { |
|
if (k >= i4 && (state = sc_states_114[k], conf_set = state[prev + 1], conf_set !== false ? conf_set[i4 + 5] : false) !== false) { |
|
nb_prev_trees = nb_deriv_trees(prev, i4, k, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2); |
|
nb_ender_trees = nb_deriv_trees(ender, k, j, sc_enders_111, sc_steps_112, sc_toks_113, sc_states_114, BgL_sc_nbzd2nts_115zd2); |
|
k = ender_set[k + 5]; |
|
n += nb_prev_trees * nb_ender_trees; |
|
} else |
|
k = ender_set[k + 5]; |
|
} |
|
return sc_loop1_116(l3.cdr, n); |
|
} else |
|
l3 = l3.cdr; |
|
} else |
|
return sc_n_118; |
|
} |
|
}, sc_loop1_116(sc_enders_111[sc_steps_112[prev]], 0)); |
|
}; |
|
BgL_sc_nbzd2derivzd2treesza2_48za2 = function(nt, i4, j, sc_nts_119, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123) { |
|
var conf_set; |
|
var state; |
|
var sc_conf_124; |
|
var l3; |
|
var nb_trees; |
|
var BgL_sc_nbzd2nts_125zd2; |
|
var BgL_sc_ntza2_126za2; |
|
{ |
|
BgL_sc_ntza2_126za2 = sc_ind_43(nt, sc_nts_119); |
|
if (BgL_sc_ntza2_126za2 !== false) { |
|
BgL_sc_nbzd2nts_125zd2 = sc_nts_119.length; |
|
l3 = sc_enders_120[BgL_sc_ntza2_126za2]; |
|
nb_trees = 0; |
|
while (l3 instanceof sc_Pair) { |
|
{ |
|
sc_conf_124 = l3.car; |
|
if ((state = sc_states_123[j], conf_set = state[sc_conf_124 + 1], conf_set !== false ? conf_set[i4 + 5] : false) !== false) { |
|
l3 = l3.cdr; |
|
nb_trees = nb_deriv_trees(sc_conf_124, i4, j, sc_enders_120, sc_steps_121, sc_toks_122, sc_states_123, BgL_sc_nbzd2nts_125zd2) + nb_trees; |
|
} else |
|
l3 = l3.cdr; |
|
} |
|
} |
|
return nb_trees; |
|
} else |
|
return false; |
|
} |
|
}; |
|
lexer2 = parser_descr[0]; |
|
sc_nts_42 = parser_descr[1]; |
|
sc_starters_41 = parser_descr[2]; |
|
sc_enders_40 = parser_descr[3]; |
|
sc_predictors_39 = parser_descr[4]; |
|
sc_steps_38 = parser_descr[5]; |
|
sc_names_37 = parser_descr[6]; |
|
falseHead1128 = new sc_Pair(null, null); |
|
L1125 = lexer2(input); |
|
tail1129 = falseHead1128; |
|
while (!(L1125 === null)) { |
|
{ |
|
tok = L1125.car; |
|
l1 = tok.cdr; |
|
l2 = null; |
|
while (l1 instanceof sc_Pair) { |
|
{ |
|
sc_i_29 = sc_ind_43(l1.car, sc_nts_42); |
|
if (sc_i_29 !== false) { |
|
l1 = l1.cdr; |
|
l2 = new sc_Pair(sc_i_29, l2); |
|
} else |
|
l1 = l1.cdr; |
|
} |
|
} |
|
sc_optrOpnd_22 = new sc_Pair(tok.car, sc_reverse(l2)); |
|
sc_optrOpnd_21 = new sc_Pair(sc_optrOpnd_22, null); |
|
tail1129.cdr = sc_optrOpnd_21; |
|
tail1129 = tail1129.cdr; |
|
L1125 = L1125.cdr; |
|
} |
|
} |
|
sc_optrOpnd_20 = falseHead1128.cdr; |
|
sc_toks_36 = sc_list2vector(sc_optrOpnd_20); |
|
BgL_sc_nbzd2toks_35zd2 = sc_toks_36.length; |
|
BgL_sc_nbzd2confs_34zd2 = sc_steps_38.length; |
|
sc_states_33 = make_states(BgL_sc_nbzd2toks_35zd2, BgL_sc_nbzd2confs_34zd2); |
|
goal_starters = sc_starters_41[0]; |
|
BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, 0, goal_starters, 0); |
|
forw(sc_states_33, 0, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42); |
|
sc_i_28 = 0; |
|
while (sc_i_28 < BgL_sc_nbzd2toks_35zd2) { |
|
{ |
|
tok_nts = sc_toks_36[sc_i_28].cdr; |
|
BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, sc_i_28 + 1, tok_nts, sc_i_28); |
|
forw(sc_states_33, sc_i_28 + 1, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42); |
|
++sc_i_28; |
|
} |
|
} |
|
nb_toks = sc_toks_36.length; |
|
BgL_sc_nbzd2confs_32zd2 = sc_steps_38.length; |
|
BgL_sc_nbzd2nts_31zd2 = sc_nts_42.length; |
|
BgL_sc_statesza2_30za2 = make_states(nb_toks, BgL_sc_nbzd2confs_32zd2); |
|
goal_enders = sc_enders_40[0]; |
|
l = goal_enders; |
|
while (l instanceof sc_Pair) { |
|
{ |
|
conf = l.car; |
|
BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_33, BgL_sc_statesza2_30za2, nb_toks, conf, 0); |
|
l = l.cdr; |
|
} |
|
} |
|
i3 = nb_toks; |
|
while (i3 >= 0) { |
|
{ |
|
states = sc_states_33; |
|
BgL_sc_statesza2_27za2 = BgL_sc_statesza2_30za2; |
|
state_num = i3; |
|
sc_enders_26 = sc_enders_40; |
|
sc_steps_25 = sc_steps_38; |
|
BgL_sc_nbzd2nts_24zd2 = BgL_sc_nbzd2nts_31zd2; |
|
toks = sc_toks_36; |
|
BgL_sc_stateza2_23za2 = BgL_sc_statesza2_30za2[i3]; |
|
loop1 = function() { |
|
var sc_loop1_127; |
|
var prev; |
|
var BgL_sc_statesza2_128za2; |
|
var sc_states_129; |
|
var j; |
|
var i4; |
|
var sc_i_130; |
|
var head; |
|
var conf_set; |
|
var sc_conf_131; |
|
{ |
|
sc_conf_131 = BgL_sc_stateza2_23za2[0]; |
|
if (sc_conf_131 >= 0) { |
|
conf_set = BgL_sc_stateza2_23za2[sc_conf_131 + 1]; |
|
head = conf_set[4]; |
|
BgL_sc_stateza2_23za2[0] = conf_set[0]; |
|
conf_set_merge_new_bang(conf_set); |
|
sc_i_130 = head; |
|
while (sc_i_130 >= 0) { |
|
{ |
|
i4 = sc_i_130; |
|
j = state_num; |
|
sc_states_129 = states; |
|
BgL_sc_statesza2_128za2 = BgL_sc_statesza2_27za2; |
|
prev = sc_conf_131 - 1; |
|
if (sc_conf_131 >= BgL_sc_nbzd2nts_24zd2 && sc_steps_25[prev] >= 0) { |
|
sc_loop1_127 = function(l3) { |
|
var k; |
|
var ender_set; |
|
var state; |
|
var ender; |
|
var l3; |
|
while (true) { |
|
if (l3 instanceof sc_Pair) { |
|
ender = l3.car; |
|
ender_set = (state = sc_states_129[j], state[ender + 1]); |
|
if (ender_set !== false) { |
|
k = ender_set[2]; |
|
while (k >= 0) { |
|
{ |
|
if (k >= i4) { |
|
if (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, k, prev, i4) !== false) |
|
BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_129, BgL_sc_statesza2_128za2, j, ender, k); |
|
} |
|
k = ender_set[k + 5]; |
|
} |
|
} |
|
return sc_loop1_127(l3.cdr); |
|
} else |
|
l3 = l3.cdr; |
|
} else |
|
return void 0; |
|
} |
|
}; |
|
sc_loop1_127(sc_enders_26[sc_steps_25[prev]]); |
|
} |
|
sc_i_130 = conf_set[sc_i_130 + 5]; |
|
} |
|
} |
|
return loop1(); |
|
} else |
|
return void 0; |
|
} |
|
}; |
|
loop1(); |
|
--i3; |
|
} |
|
} |
|
optrOpnd = BgL_sc_statesza2_30za2; |
|
return [sc_nts_42, sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_names_37, sc_toks_36, optrOpnd, is_parsed, BgL_sc_derivzd2treesza2_47z70, BgL_sc_nbzd2derivzd2treesza2_48za2]; |
|
} |
|
}; |
|
} |
|
}; |
|
BgL_parsezd2ze3parsedzf3zc2 = function(parse, nt, i2, j) { |
|
var is_parsed; |
|
var states; |
|
var enders; |
|
var nts; |
|
return nts = parse[0], enders = parse[2], states = parse[7], is_parsed = parse[8], is_parsed(nt, i2, j, nts, enders, states); |
|
}; |
|
BgL_parsezd2ze3treesz31 = function(parse, nt, i2, j) { |
|
var BgL_sc_derivzd2treesza2_132z70; |
|
var states; |
|
var toks; |
|
var names; |
|
var steps; |
|
var enders; |
|
var nts; |
|
return nts = parse[0], enders = parse[2], steps = parse[4], names = parse[5], toks = parse[6], states = parse[7], BgL_sc_derivzd2treesza2_132z70 = parse[9], BgL_sc_derivzd2treesza2_132z70(nt, i2, j, nts, enders, steps, names, toks, states); |
|
}; |
|
BgL_parsezd2ze3nbzd2treesze3 = function(parse, nt, i2, j) { |
|
var BgL_sc_nbzd2derivzd2treesza2_133za2; |
|
var states; |
|
var toks; |
|
var steps; |
|
var enders; |
|
var nts; |
|
return nts = parse[0], enders = parse[2], steps = parse[4], toks = parse[6], states = parse[7], BgL_sc_nbzd2derivzd2treesza2_133za2 = parse[10], BgL_sc_nbzd2derivzd2treesza2_133za2(nt, i2, j, nts, enders, steps, toks, states); |
|
}; |
|
test = function(k) { |
|
var x; |
|
var p; |
|
return p = BgL_makezd2parserzd2(const_earley, function(l) { |
|
var sc_x_134; |
|
var tail1134; |
|
var L1130; |
|
var falseHead1133; |
|
{ |
|
falseHead1133 = new sc_Pair(null, null); |
|
tail1134 = falseHead1133; |
|
L1130 = l; |
|
while (!(L1130 === null)) { |
|
{ |
|
tail1134.cdr = new sc_Pair((sc_x_134 = L1130.car, sc_list(sc_x_134, sc_x_134)), null); |
|
tail1134 = tail1134.cdr; |
|
L1130 = L1130.cdr; |
|
} |
|
} |
|
return falseHead1133.cdr; |
|
} |
|
}), x = p(sc_vector2list(sc_makeVector(k, "\u1E9Ca"))), sc_length(BgL_parsezd2ze3treesz31(x, "\u1E9Cs", 0, k)); |
|
}; |
|
BgL_earleyzd2benchmarkzd2 = function() { |
|
var args = null; |
|
for (var sc_tmp = arguments.length - 1; sc_tmp >= 0; sc_tmp--) { |
|
args = sc_cons(arguments[sc_tmp], args); |
|
} |
|
var k; |
|
return k = args === null ? 7 : args.car, BgL_runzd2benchmarkzd2("earley", 1, function() { |
|
return test(k); |
|
}, function(result) { |
|
return sc_display(result), sc_newline(), result == 132; |
|
}); |
|
}; |
|
} |
|
SC_DEFAULT_OUT = new sc_GenericOutputPort(function(s) { |
|
}); |
|
SC_ERROR_OUT = SC_DEFAULT_OUT; |
|
function RunBenchmark(name, count, run2, warn) { |
|
for (var n = 0; n < count; ++n) { |
|
var result = run2(); |
|
if (!warn(result)) { |
|
throw new Error("Earley or Boyer did incorrect number of rewrites"); |
|
} |
|
} |
|
} |
|
var BgL_runzd2benchmarkzd2 = RunBenchmark; |
|
|
|
// src/regexp.js |
|
var RegExp2 = new BenchmarkSuite("RegExp", 910985, [ |
|
new Benchmark("RegExp", RegExpRun, RegExpSetup, RegExpTearDown) |
|
]); |
|
var regExpBenchmark = null; |
|
function RegExpSetup() { |
|
regExpBenchmark = new RegExpBenchmark(); |
|
RegExpRun(); |
|
} |
|
function RegExpRun() { |
|
regExpBenchmark.run(); |
|
} |
|
function RegExpTearDown() { |
|
regExpBenchmark = null; |
|
} |
|
function computeInputVariants(str, n) { |
|
var variants = [str]; |
|
for (var i2 = 1; i2 < n; i2++) { |
|
var pos = Math.floor(Math.random() * str.length); |
|
var chr = String.fromCharCode((str.charCodeAt(pos) + Math.floor(Math.random() * 128)) % 128); |
|
variants[i2] = str.substring(0, pos) + chr + str.substring(pos + 1, str.length); |
|
} |
|
return variants; |
|
} |
|
function RegExpBenchmark() { |
|
var re0 = /^ba/; |
|
var re1 = /(((\w+):\/\/)([^\/:]*)(:(\d+))?)?([^#?]*)(\?([^#]*))?(#(.*))?/; |
|
var re2 = /^\s*|\s*$/g; |
|
var re3 = /\bQBZPbageby_cynprubyqre\b/; |
|
var re4 = /,/; |
|
var re5 = /\bQBZPbageby_cynprubyqre\b/g; |
|
var re6 = /^[\s\xa0]+|[\s\xa0]+$/g; |
|
var re7 = /(\d*)(\D*)/g; |
|
var re8 = /=/; |
|
var re9 = /(^|\s)lhv\-h(\s|$)/; |
|
var str0 = "Zbmvyyn/5.0 (Jvaqbjf; H; Jvaqbjf AG 5.1; ra-HF) NccyrJroXvg/528.9 (XUGZY, yvxr Trpxb) Puebzr/2.0.157.0 Fnsnev/528.9"; |
|
var re10 = /\#/g; |
|
var re11 = /\./g; |
|
var re12 = /'/g; |
|
var re13 = /\?[\w\W]*(sevraqvq|punaaryvq|tebhcvq)=([^\&\?#]*)/i; |
|
var str1 = "Fubpxjnir Synfu 9.0 e115"; |
|
var re14 = /\s+/g; |
|
var re15 = /^\s*(\S*(\s+\S+)*)\s*$/; |
|
var re16 = /(-[a-z])/i; |
|
var s0 = computeInputVariants("pyvpx", 6511); |
|
var s1 = computeInputVariants("uggc://jjj.snprobbx.pbz/ybtva.cuc", 1844); |
|
var s2 = computeInputVariants("QBZPbageby_cynprubyqre", 739); |
|
var s3 = computeInputVariants("uggc://jjj.snprobbx.pbz/", 598); |
|
var s4 = computeInputVariants("uggc://jjj.snprobbx.pbz/fepu.cuc", 454); |
|
var s5 = computeInputVariants("qqqq, ZZZ q, llll", 352); |
|
var s6 = computeInputVariants("vachggrkg QBZPbageby_cynprubyqre", 312); |
|
var s7 = computeInputVariants("/ZlFcnprUbzrcntr/Vaqrk-FvgrUbzr,10000000", 282); |
|
var s8 = computeInputVariants("vachggrkg", 177); |
|
var s9 = computeInputVariants("528.9", 170); |
|
var s10 = computeInputVariants("528", 170); |
|
var s11 = computeInputVariants("VCPhygher=ra-HF", 156); |
|
var s12 = computeInputVariants("CersreerqPhygher=ra-HF", 156); |
|
var s13 = computeInputVariants("xrlcerff", 144); |
|
var s14 = computeInputVariants("521", 139); |
|
var s15 = computeInputVariants(str0, 139); |
|
var s16 = computeInputVariants("qvi .so_zrah", 137); |
|
var s17 = computeInputVariants("qvi.so_zrah", 137); |
|
var s18 = computeInputVariants("uvqqra_ryrz", 117); |
|
var s19 = computeInputVariants("sevraqfgre_naba=nvq%3Qn6ss9p85n868ro9s059pn854735956o3%26ers%3Q%26df%3Q%26vpgl%3QHF", 95); |
|
var s20 = computeInputVariants("uggc://ubzr.zlfcnpr.pbz/vaqrk.psz", 93); |
|
var s21 = computeInputVariants(str1, 92); |
|
var s22 = computeInputVariants("svefg", 85); |
|
var s23 = computeInputVariants("uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz", 85); |
|
var s24 = computeInputVariants("ynfg", 85); |
|
var s25 = computeInputVariants("qvfcynl", 85); |
|
function runBlock0() { |
|
for (var i2 = 0; i2 < 6511; i2++) { |
|
re0.exec(s0[i2]); |
|
} |
|
for (var i2 = 0; i2 < 1844; i2++) { |
|
re1.exec(s1[i2]); |
|
} |
|
for (var i2 = 0; i2 < 739; i2++) { |
|
s2[i2].replace(re2, ""); |
|
} |
|
for (var i2 = 0; i2 < 598; i2++) { |
|
re1.exec(s3[i2]); |
|
} |
|
for (var i2 = 0; i2 < 454; i2++) { |
|
re1.exec(s4[i2]); |
|
} |
|
for (var i2 = 0; i2 < 352; i2++) { |
|
/qqqq|qqq|qq|q|ZZZZ|ZZZ|ZZ|Z|llll|ll|l|uu|u|UU|U|zz|z|ff|f|gg|g|sss|ss|s|mmm|mm|m/g.exec(s5[i2]); |
|
} |
|
for (var i2 = 0; i2 < 312; i2++) { |
|
re3.exec(s6[i2]); |
|
} |
|
for (var i2 = 0; i2 < 282; i2++) { |
|
re4.exec(s7[i2]); |
|
} |
|
for (var i2 = 0; i2 < 177; i2++) { |
|
s8[i2].replace(re5, ""); |
|
} |
|
for (var i2 = 0; i2 < 170; i2++) { |
|
s9[i2].replace(re6, ""); |
|
re7.exec(s10[i2]); |
|
} |
|
for (var i2 = 0; i2 < 156; i2++) { |
|
re8.exec(s11[i2]); |
|
re8.exec(s12[i2]); |
|
} |
|
for (var i2 = 0; i2 < 144; i2++) { |
|
re0.exec(s13[i2]); |
|
} |
|
for (var i2 = 0; i2 < 139; i2++) { |
|
s14[i2].replace(re6, ""); |
|
re7.exec(s14[i2]); |
|
re9.exec(""); |
|
/JroXvg\/(\S+)/.exec(s15[i2]); |
|
} |
|
for (var i2 = 0; i2 < 137; i2++) { |
|
s16[i2].replace(re10, ""); |
|
s16[i2].replace(/\[/g, ""); |
|
s17[i2].replace(re11, ""); |
|
} |
|
for (var i2 = 0; i2 < 117; i2++) { |
|
s18[i2].replace(re2, ""); |
|
} |
|
for (var i2 = 0; i2 < 95; i2++) { |
|
/(?:^|;)\s*sevraqfgre_ynat=([^;]*)/.exec(s19[i2]); |
|
} |
|
for (var i2 = 0; i2 < 93; i2++) { |
|
s20[i2].replace(re12, ""); |
|
re13.exec(s20[i2]); |
|
} |
|
for (var i2 = 0; i2 < 92; i2++) { |
|
s21[i2].replace(/([a-zA-Z]|\s)+/, ""); |
|
} |
|
for (var i2 = 0; i2 < 85; i2++) { |
|
s22[i2].replace(re14, ""); |
|
s22[i2].replace(re15, ""); |
|
s23[i2].replace(re12, ""); |
|
s24[i2].replace(re14, ""); |
|
s24[i2].replace(re15, ""); |
|
re16.exec(s25[i2]); |
|
re13.exec(s23[i2]); |
|
} |
|
} |
|
var re17 = /(^|[^\\])\"\\\/Qngr\((-?[0-9]+)\)\\\/\"/g; |
|
var str2 = `{"anzr":"","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":gehr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"\xA4","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":gehr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, qq ZZZZ llll UU:zz:ff","YbatQngrCnggrea":"qqqq, qq ZZZZ llll","YbatGvzrCnggrea":"UU:zz:ff","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU':'zz':'ff 'TZG'","FubegQngrCnggrea":"ZZ/qq/llll","FubegGvzrCnggrea":"UU:zz","FbegnoyrQngrGvzrCnggrea":"llll'-'ZZ'-'qq'G'UU':'zz':'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll'-'ZZ'-'qq UU':'zz':'ff'M'","LrneZbaguCnggrea":"llll ZZZZ","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":gehr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}`; |
|
var str3 = `{"anzr":"ra-HF","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":snyfr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"$","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":snyfr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, ZZZZ qq, llll u:zz:ff gg","YbatQngrCnggrea":"qqqq, ZZZZ qq, llll","YbatGvzrCnggrea":"u:zz:ff gg","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU':'zz':'ff 'TZG'","FubegQngrCnggrea":"Z/q/llll","FubegGvzrCnggrea":"u:zz gg","FbegnoyrQngrGvzrCnggrea":"llll'-'ZZ'-'qq'G'UU':'zz':'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll'-'ZZ'-'qq UU':'zz':'ff'M'","LrneZbaguCnggrea":"ZZZZ, llll","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":snyfr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}`; |
|
var str4 = "HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str5 = "HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var re18 = /^\s+|\s+$/g; |
|
var str6 = "uggc://jjj.snprobbx.pbz/vaqrk.cuc"; |
|
var re19 = /(?:^|\s+)ba(?:\s+|$)/; |
|
var re20 = /[+, ]/; |
|
var re21 = /ybnqrq|pbzcyrgr/; |
|
var str7 = `;;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(d1)c=d1.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+d1.Cnaryf[c].Jvqgu,o=g+d1.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(d1&&d1.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(d1)d1.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(d1)d1.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;d1.IjTc=d2(n,c){ine nq=d1;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;d1.IjTpy=d2(n,c,p){ine cn=d1.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;d1.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;d1.IjYvzvg1=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;d1.IjYvzvg0=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;d1.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",d1.rvsg);};;d1.IjNavzSHC=d2(n,c){ine nq=d1;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;d1.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;d1.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;d1.IjPnapryNyyGvzrbhgf=d2(n){vs(d1.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<d1.bac;c++)IjPnapryGvzrbhg(n,c);};;d1.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;d1.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;d1.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<d1.bac;c++)IjErfrgGvzrbhg(n,c);};;d1.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag('ba"+rig+"',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare('"+rig+"',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;d1.IjPyrnaHc=d2(n){IjCvat(n,"G");ine nq=d1;sbe(ine v=0;v<nq.Cnaryf.yratgu;v++){IjUvqrCnary(n,v,gehr);}gel{IjTrgBow(nq.gya).vaareUGZY="";}pngpu(r){}vs(nq.gya!=nq.gya2)gel{IjTrgBow(nq.gya2).vaareUGZY="";}pngpu(r){}gel{d1=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"haybnq","IjHayNQ_VQ");}pngpu(r){}gel{jvaqbj.IjHayNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"fpebyy","IjFeNQ_VQ");}pngpu(r){}gel{jvaqbj.IjFeNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"erfvmr","IjEmNQ_VQ");}pngpu(r){}gel{jvaqbj.IjEmNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n`; |
|
var str8 = `;;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=shapgvba(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=shapgvba(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=shapgvba(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=shapgvba(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=shapgvba(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=shapgvba(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=shapgvba(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=shapgvba(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag('ba"+rig+"',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbir`; |
|
var str9 = `;;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=d2(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=d2(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag('ba"+rig+"',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare('"+rig+"',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjPyrna`; |
|
var s26 = computeInputVariants("VC=74.125.75.1", 81); |
|
var s27 = computeInputVariants("9.0 e115", 78); |
|
var s28 = computeInputVariants("k", 78); |
|
var s29 = computeInputVariants(str2, 81); |
|
var s30 = computeInputVariants(str3, 81); |
|
var s31 = computeInputVariants("144631658", 78); |
|
var s32 = computeInputVariants("Pbhagel=IIZ%3Q", 78); |
|
var s33 = computeInputVariants("Pbhagel=IIZ=", 78); |
|
var s34 = computeInputVariants("CersreerqPhygherCraqvat=", 78); |
|
var s35 = computeInputVariants(str4, 78); |
|
var s36 = computeInputVariants(str5, 78); |
|
var s37 = computeInputVariants("__hgzp=144631658", 78); |
|
var s38 = computeInputVariants("gvzrMbar=-8", 78); |
|
var s39 = computeInputVariants("gvzrMbar=0", 78); |
|
var s41 = computeInputVariants("vachggrkg QBZPbageby_cynprubyqre", 78); |
|
var s42 = computeInputVariants("xrlqbja", 78); |
|
var s43 = computeInputVariants("xrlhc", 78); |
|
var s44 = computeInputVariants("uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz", 77); |
|
var s45 = computeInputVariants("FrffvbaFgbentr=%7O%22GnoThvq%22%3N%7O%22thvq%22%3N1231367125017%7Q%7Q", 73); |
|
var s46 = computeInputVariants(str6, 72); |
|
var s47 = computeInputVariants("3.5.0.0", 70); |
|
var s48 = computeInputVariants(str7, 70); |
|
var s49 = computeInputVariants(str8, 70); |
|
var s50 = computeInputVariants(str9, 70); |
|
var s51 = computeInputVariants("NI%3Q1_CI%3Q1_PI%3Q1_EI%3Q1_HI%3Q1_HP%3Q1_IC%3Q0.0.0.0_IH%3Q0", 70); |
|
var s52 = computeInputVariants("svz_zlfcnpr_ubzrcntr_abgybttrqva,svz_zlfcnpr_aba_HTP,svz_zlfcnpr_havgrq-fgngrf", 70); |
|
var s53 = computeInputVariants("ybnqvat", 70); |
|
var s54 = computeInputVariants("#", 68); |
|
var s55 = computeInputVariants("ybnqrq", 68); |
|
var s56 = computeInputVariants("pbybe", 49); |
|
var s57 = computeInputVariants("uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz", 44); |
|
function runBlock1() { |
|
for (var i2 = 0; i2 < 81; i2++) { |
|
re8.exec(s26[i2]); |
|
} |
|
for (var i2 = 0; i2 < 78; i2++) { |
|
s27[i2].replace(/(\s)+e/, ""); |
|
s28[i2].replace(/./, ""); |
|
s29[i2].replace(re17, ""); |
|
s30[i2].replace(re17, ""); |
|
re8.exec(s31[i2]); |
|
re8.exec(s32[i2]); |
|
re8.exec(s33[i2]); |
|
re8.exec(s34[i2]); |
|
re8.exec(s35[i2]); |
|
re8.exec(s36[i2]); |
|
re8.exec(s37[i2]); |
|
re8.exec(s38[i2]); |
|
re8.exec(s39[i2]); |
|
/Fnsnev\/(\d+\.\d+)/.exec(s15[i2]); |
|
re3.exec(s41[i2]); |
|
re0.exec(s42[i2]); |
|
re0.exec(s43[i2]); |
|
} |
|
for (var i2 = 0; i2 < 77; i2++) { |
|
s44[i2].replace(re12, ""); |
|
re13.exec(s44[i2]); |
|
} |
|
for (var i2 = 0; i2 < 73; i2++) { |
|
s45[i2].replace(re18, ""); |
|
} |
|
for (var i2 = 0; i2 < 72; i2++) { |
|
re1.exec(s46[i2]); |
|
} |
|
for (var i2 = 0; i2 < 71; i2++) { |
|
re19.exec(""); |
|
} |
|
for (var i2 = 0; i2 < 70; i2++) { |
|
s47[i2].replace(re11, ""); |
|
s48[i2].replace(/d1/g, ""); |
|
s49[i2].replace(/NQ_VQ/g, ""); |
|
s50[i2].replace(/d2/g, ""); |
|
s51[i2].replace(/_/g, ""); |
|
s52[i2].split(re20); |
|
re21.exec(s53[i2]); |
|
} |
|
for (var i2 = 0; i2 < 68; i2++) { |
|
re1.exec(s54[i2]); |
|
/(?:ZFVR.(\d+\.\d+))|(?:(?:Sversbk|TenaCnenqvfb|Vprjrnfry).(\d+\.\d+))|(?:Bcren.(\d+\.\d+))|(?:NccyrJroXvg.(\d+(?:\.\d+)?))/.exec(s15[i2]); |
|
/(Znp BF K)|(Jvaqbjf;)/.exec(s15[i2]); |
|
/Trpxb\/([0-9]+)/.exec(s15[i2]); |
|
re21.exec(s55[i2]); |
|
} |
|
for (var i2 = 0; i2 < 49; i2++) { |
|
re16.exec(s56[i2]); |
|
} |
|
for (var i2 = 0; i2 < 44; i2++) { |
|
s57[i2].replace(re12, ""); |
|
re13.exec(s57[i2]); |
|
} |
|
} |
|
var re22 = /\bso_zrah\b/; |
|
var re23 = /^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/; |
|
var re24 = /uggcf?:\/\/([^\/]+\.)?snprobbx\.pbz\//; |
|
var re25 = /"/g; |
|
var re26 = /^([^?#]+)(?:\?([^#]*))?(#.*)?/; |
|
var s57a = computeInputVariants("fryrpgrq", 40); |
|
var s58 = computeInputVariants("vachggrkg uvqqra_ryrz", 40); |
|
var s59 = computeInputVariants("vachggrkg ", 40); |
|
var s60 = computeInputVariants("vachggrkg", 40); |
|
var s61 = computeInputVariants("uggc://jjj.snprobbx.pbz/", 40); |
|
var s62 = computeInputVariants("uggc://jjj.snprobbx.pbz/ybtva.cuc", 40); |
|
var s63 = computeInputVariants("Funer guvf tnqtrg", 40); |
|
var s64 = computeInputVariants("uggc://jjj.tbbtyr.pbz/vt/qverpgbel", 40); |
|
var s65 = computeInputVariants("419", 40); |
|
var s66 = computeInputVariants("gvzrfgnzc", 40); |
|
function runBlock2() { |
|
for (var i2 = 0; i2 < 40; i2++) { |
|
s57a[i2].replace(re14, ""); |
|
s57a[i2].replace(re15, ""); |
|
} |
|
for (var i2 = 0; i2 < 39; i2++) { |
|
s58[i2].replace(/\buvqqra_ryrz\b/g, ""); |
|
re3.exec(s59[i2]); |
|
re3.exec(s60[i2]); |
|
re22.exec("HVYvaxOhggba"); |
|
re22.exec("HVYvaxOhggba_E"); |
|
re22.exec("HVYvaxOhggba_EJ"); |
|
re22.exec("zrah_ybtva_pbagnvare"); |
|
/\buvqqra_ryrz\b/.exec("vachgcnffjbeq"); |
|
} |
|
for (var i2 = 0; i2 < 37; i2++) { |
|
re8.exec("111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904"); |
|
re8.exec("SbeprqRkcvengvba=633669315660164980"); |
|
re8.exec("FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904"); |
|
} |
|
for (var i2 = 0; i2 < 35; i2++) { |
|
"puvyq p1 svefg".replace(re14, ""); |
|
"puvyq p1 svefg".replace(re15, ""); |
|
"sylbhg pybfrq".replace(re14, ""); |
|
"sylbhg pybfrq".replace(re15, ""); |
|
} |
|
for (var i2 = 0; i2 < 34; i2++) { |
|
re19.exec("gno2"); |
|
re19.exec("gno3"); |
|
re8.exec("44132r503660"); |
|
re8.exec("SbeprqRkcvengvba=633669316860113296"); |
|
re8.exec("AFP_zp_dfctwzs-aowb_80=44132r503660"); |
|
re8.exec("FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696"); |
|
re8.exec("s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696"); |
|
} |
|
for (var i2 = 0; i2 < 32; i2++) { |
|
/puebzr/i.exec(s15[i2]); |
|
} |
|
for (var i2 = 0; i2 < 31; i2++) { |
|
s61[i2].replace(re23, ""); |
|
re8.exec("SbeprqRkcvengvba=633669358527244818"); |
|
re8.exec("VC=66.249.85.130"); |
|
re8.exec("FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58"); |
|
re8.exec("s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58"); |
|
re24.exec(s61[i2]); |
|
} |
|
for (var i2 = 0; i2 < 30; i2++) { |
|
s65[i2].replace(re6, ""); |
|
/(?:^|\s+)gvzrfgnzc(?:\s+|$)/.exec(s66[i2]); |
|
re7.exec(s65[i2]); |
|
} |
|
for (var i2 = 0; i2 < 29; i2++) { |
|
s62[i2].replace(re23, ""); |
|
} |
|
for (var i2 = 0; i2 < 28; i2++) { |
|
s63[i2].replace(re25, ""); |
|
s63[i2].replace(re12, ""); |
|
re26.exec(s64[i2]); |
|
} |
|
} |
|
var re27 = /-\D/g; |
|
var re28 = /\bnpgvingr\b/; |
|
var re29 = /%2R/gi; |
|
var re30 = /%2S/gi; |
|
var re31 = /^(mu-(PA|GJ)|wn|xb)$/; |
|
var re32 = /\s?;\s?/; |
|
var re33 = /%\w?$/; |
|
var re34 = /TNQP=([^;]*)/i; |
|
var str10 = "FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var str11 = "FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; __hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1; __hgzo=144631658.0.10.1231363570; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str12 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363514065&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363514065&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Subzr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1326469221.1231363557&tn_fvq=1231363557&tn_uvq=1114636509&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str13 = "ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str14 = "ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var re35 = /[<>]/g; |
|
var str15 = "FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=44132r503660"; |
|
var str16 = "FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; AFP_zp_dfctwzs-aowb_80=44132r503660; __hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1; __hgzo=144631658.0.10.1231363638; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str17 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363621014&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363621014&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=348699119.1231363624&tn_fvq=1231363624&tn_uvq=895511034&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str18 = "uggc://jjj.yrobapbva.se/yv"; |
|
var str19 = "ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str20 = "ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var s67 = computeInputVariants("e115", 27); |
|
var s68 = computeInputVariants("qvfcynl", 27); |
|
var s69 = computeInputVariants("cbfvgvba", 27); |
|
var s70 = computeInputVariants("uggc://jjj.zlfcnpr.pbz/", 27); |
|
var s71 = computeInputVariants("cntrivrj", 27); |
|
var s72 = computeInputVariants("VC=74.125.75.3", 27); |
|
var s73 = computeInputVariants("ra", 27); |
|
var s74 = computeInputVariants(str10, 27); |
|
var s75 = computeInputVariants(str11, 27); |
|
var s76 = computeInputVariants(str12, 27); |
|
var s77 = computeInputVariants(str17, 27); |
|
var s78 = computeInputVariants(str18, 27); |
|
function runBlock3() { |
|
for (var i2 = 0; i2 < 27; i2++) { |
|
s67[i2].replace(/[A-Za-z]/g, ""); |
|
} |
|
for (var i2 = 0; i2 < 23; i2++) { |
|
s68[i2].replace(re27, ""); |
|
s69[i2].replace(re27, ""); |
|
} |
|
for (var i2 = 0; i2 < 22; i2++) { |
|
"unaqyr".replace(re14, ""); |
|
"unaqyr".replace(re15, ""); |
|
"yvar".replace(re14, ""); |
|
"yvar".replace(re15, ""); |
|
"cnerag puebzr6 fvatyr1 gno".replace(re14, ""); |
|
"cnerag puebzr6 fvatyr1 gno".replace(re15, ""); |
|
"fyvqre".replace(re14, ""); |
|
"fyvqre".replace(re15, ""); |
|
re28.exec(""); |
|
} |
|
for (var i2 = 0; i2 < 21; i2++) { |
|
s70[i2].replace(re12, ""); |
|
re13.exec(s70[i2]); |
|
} |
|
for (var i2 = 0; i2 < 20; i2++) { |
|
s71[i2].replace(re29, ""); |
|
s71[i2].replace(re30, ""); |
|
re19.exec("ynfg"); |
|
re19.exec("ba svefg"); |
|
re8.exec(s72[i2]); |
|
} |
|
for (var i2 = 0; i2 < 19; i2++) { |
|
re31.exec(s73[i2]); |
|
} |
|
for (var i2 = 0; i2 < 18; i2++) { |
|
s74[i2].split(re32); |
|
s75[i2].split(re32); |
|
s76[i2].replace(re33, ""); |
|
re8.exec("144631658.0.10.1231363570"); |
|
re8.exec("144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.3426875219718084000.1231363570.1231363570.1231363570.1"); |
|
re8.exec(str13); |
|
re8.exec(str14); |
|
re8.exec("__hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1"); |
|
re8.exec("__hgzo=144631658.0.10.1231363570"); |
|
re8.exec("__hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re34.exec(s74[i2]); |
|
re34.exec(s75[i2]); |
|
} |
|
for (var i2 = 0; i2 < 17; i2++) { |
|
s15[i2].match(/zfvr/gi); |
|
s15[i2].match(/bcren/gi); |
|
str15.split(re32); |
|
str16.split(re32); |
|
"ohggba".replace(re14, ""); |
|
"ohggba".replace(re15, ""); |
|
"puvyq p1 svefg sylbhg pybfrq".replace(re14, ""); |
|
"puvyq p1 svefg sylbhg pybfrq".replace(re15, ""); |
|
"pvgvrf".replace(re14, ""); |
|
"pvgvrf".replace(re15, ""); |
|
"pybfrq".replace(re14, ""); |
|
"pybfrq".replace(re15, ""); |
|
"qry".replace(re14, ""); |
|
"qry".replace(re15, ""); |
|
"uqy_zba".replace(re14, ""); |
|
"uqy_zba".replace(re15, ""); |
|
s77[i2].replace(re33, ""); |
|
s78[i2].replace(/%3P/g, ""); |
|
s78[i2].replace(/%3R/g, ""); |
|
s78[i2].replace(/%3q/g, ""); |
|
s78[i2].replace(re35, ""); |
|
"yvaxyvfg16".replace(re14, ""); |
|
"yvaxyvfg16".replace(re15, ""); |
|
"zvahf".replace(re14, ""); |
|
"zvahf".replace(re15, ""); |
|
"bcra".replace(re14, ""); |
|
"bcra".replace(re15, ""); |
|
"cnerag puebzr5 fvatyr1 ps NU".replace(re14, ""); |
|
"cnerag puebzr5 fvatyr1 ps NU".replace(re15, ""); |
|
"cynlre".replace(re14, ""); |
|
"cynlre".replace(re15, ""); |
|
"cyhf".replace(re14, ""); |
|
"cyhf".replace(re15, ""); |
|
"cb_uqy".replace(re14, ""); |
|
"cb_uqy".replace(re15, ""); |
|
"hyJVzt".replace(re14, ""); |
|
"hyJVzt".replace(re15, ""); |
|
re8.exec("144631658.0.10.1231363638"); |
|
re8.exec("144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.965867047679498800.1231363638.1231363638.1231363638.1"); |
|
re8.exec("4413268q3660"); |
|
re8.exec("4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n"); |
|
re8.exec("SbeprqRkcvengvba=633669321699093060"); |
|
re8.exec("VC=74.125.75.20"); |
|
re8.exec(str19); |
|
re8.exec(str20); |
|
re8.exec("AFP_zp_tfwsbrg-aowb_80=4413268q3660"); |
|
re8.exec("FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n"); |
|
re8.exec("__hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1"); |
|
re8.exec("__hgzo=144631658.0.10.1231363638"); |
|
re8.exec("__hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re34.exec(str15); |
|
re34.exec(str16); |
|
} |
|
} |
|
var re36 = /uers|fep|fryrpgrq/; |
|
var re37 = /\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g; |
|
var re38 = /^(\w+|\*)$/; |
|
var str21 = "FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var str22 = "FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; __hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1; __hgzo=144631658.0.10.1231367822; __hgzp=144631658; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str23 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367803797&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367803797&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Szrffntvat.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1192552091.1231367807&tn_fvq=1231367807&tn_uvq=1155446857&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str24 = "ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str25 = "ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var str26 = "hy.ynat-fryrpgbe"; |
|
var re39 = /\\/g; |
|
var re40 = / /g; |
|
var re41 = /\/\xc4\/t/; |
|
var re42 = /\/\xd6\/t/; |
|
var re43 = /\/\xdc\/t/; |
|
var re44 = /\/\xdf\/t/; |
|
var re45 = /\/\xe4\/t/; |
|
var re46 = /\/\xf6\/t/; |
|
var re47 = /\/\xfc\/t/; |
|
var re48 = /\W/g; |
|
var re49 = /uers|fep|fglyr/; |
|
var s79 = computeInputVariants(str21, 16); |
|
var s80 = computeInputVariants(str22, 16); |
|
var s81 = computeInputVariants(str23, 16); |
|
var s82 = computeInputVariants(str26, 16); |
|
function runBlock4() { |
|
for (var i2 = 0; i2 < 16; i2++) { |
|
"".replace(/\*/g, ""); |
|
/\bnpgvir\b/.exec("npgvir"); |
|
/sversbk/i.exec(s15[i2]); |
|
re36.exec("glcr"); |
|
/zfvr/i.exec(s15[i2]); |
|
/bcren/i.exec(s15[i2]); |
|
} |
|
for (var i2 = 0; i2 < 15; i2++) { |
|
s79[i2].split(re32); |
|
s80[i2].split(re32); |
|
"uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz".replace(re12, ""); |
|
s81[i2].replace(re33, ""); |
|
"yv".replace(re37, ""); |
|
"yv".replace(re18, ""); |
|
re8.exec("144631658.0.10.1231367822"); |
|
re8.exec("144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.4127520630321984500.1231367822.1231367822.1231367822.1"); |
|
re8.exec(str24); |
|
re8.exec(str25); |
|
re8.exec("__hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1"); |
|
re8.exec("__hgzo=144631658.0.10.1231367822"); |
|
re8.exec("__hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re34.exec(s79[i2]); |
|
re34.exec(s80[i2]); |
|
/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g.exec(s82[i2]); |
|
re13.exec("uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz"); |
|
re38.exec("yv"); |
|
} |
|
for (var i2 = 0; i2 < 14; i2++) { |
|
"".replace(re18, ""); |
|
"9.0 e115".replace(/(\s+e|\s+o[0-9]+)/, ""); |
|
"Funer guvf tnqtrg".replace(/</g, ""); |
|
"Funer guvf tnqtrg".replace(/>/g, ""); |
|
"Funer guvf tnqtrg".replace(re39, ""); |
|
"uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz".replace(re12, ""); |
|
"grnfre".replace(re40, ""); |
|
"grnfre".replace(re41, ""); |
|
"grnfre".replace(re42, ""); |
|
"grnfre".replace(re43, ""); |
|
"grnfre".replace(re44, ""); |
|
"grnfre".replace(re45, ""); |
|
"grnfre".replace(re46, ""); |
|
"grnfre".replace(re47, ""); |
|
"grnfre".replace(re48, ""); |
|
re16.exec("znetva-gbc"); |
|
re16.exec("cbfvgvba"); |
|
re19.exec("gno1"); |
|
re9.exec("qz"); |
|
re9.exec("qg"); |
|
re9.exec("zbqobk"); |
|
re9.exec("zbqobkva"); |
|
re9.exec("zbqgvgyr"); |
|
re13.exec("uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz"); |
|
re26.exec("/vt/znvytnqtrg"); |
|
re49.exec("glcr"); |
|
} |
|
} |
|
var re50 = /(?:^|\s+)fryrpgrq(?:\s+|$)/; |
|
var re51 = /\&/g; |
|
var re52 = /\+/g; |
|
var re53 = /\?/g; |
|
var re54 = /\t/g; |
|
var re55 = /(\$\{nqiHey\})|(\$nqiHey\b)/g; |
|
var re56 = /(\$\{cngu\})|(\$cngu\b)/g; |
|
function runBlock5() { |
|
for (var i2 = 0; i2 < 13; i2++) { |
|
"purpx".replace(re14, ""); |
|
"purpx".replace(re15, ""); |
|
"pvgl".replace(re14, ""); |
|
"pvgl".replace(re15, ""); |
|
"qrpe fyvqrgrkg".replace(re14, ""); |
|
"qrpe fyvqrgrkg".replace(re15, ""); |
|
"svefg fryrpgrq".replace(re14, ""); |
|
"svefg fryrpgrq".replace(re15, ""); |
|
"uqy_rag".replace(re14, ""); |
|
"uqy_rag".replace(re15, ""); |
|
"vape fyvqrgrkg".replace(re14, ""); |
|
"vape fyvqrgrkg".replace(re15, ""); |
|
"vachggrkg QBZPbageby_cynprubyqre".replace(re5, ""); |
|
"cnerag puebzr6 fvatyr1 gno fryrpgrq".replace(re14, ""); |
|
"cnerag puebzr6 fvatyr1 gno fryrpgrq".replace(re15, ""); |
|
"cb_guz".replace(re14, ""); |
|
"cb_guz".replace(re15, ""); |
|
"fhozvg".replace(re14, ""); |
|
"fhozvg".replace(re15, ""); |
|
re50.exec(""); |
|
/NccyrJroXvg\/([^\s]*)/.exec(s15[i2]); |
|
/XUGZY/.exec(s15[i2]); |
|
} |
|
for (var i2 = 0; i2 < 12; i2++) { |
|
"${cebg}://${ubfg}${cngu}/${dz}".replace(/(\$\{cebg\})|(\$cebg\b)/g, ""); |
|
"1".replace(re40, ""); |
|
"1".replace(re10, ""); |
|
"1".replace(re51, ""); |
|
"1".replace(re52, ""); |
|
"1".replace(re53, ""); |
|
"1".replace(re39, ""); |
|
"1".replace(re54, ""); |
|
"9.0 e115".replace(/^(.*)\..*$/, ""); |
|
"9.0 e115".replace(/^.*e(.*)$/, ""); |
|
"<!-- ${nqiHey} -->".replace(re55, ""); |
|
'<fpevcg glcr="grkg/wninfpevcg" fep="${nqiHey}"></fpevcg>'.replace(re55, ""); |
|
s21[i2].replace(/^.*\s+(\S+\s+\S+$)/, ""); |
|
"tzk%2Subzrcntr%2Sfgneg%2Sqr%2S".replace(re30, ""); |
|
"tzk".replace(re30, ""); |
|
"uggc://${ubfg}${cngu}/${dz}".replace(/(\$\{ubfg\})|(\$ubfg\b)/g, ""); |
|
"uggc://nqpyvrag.hvzfrei.arg${cngu}/${dz}".replace(re56, ""); |
|
"uggc://nqpyvrag.hvzfrei.arg/wf.at/${dz}".replace(/(\$\{dz\})|(\$dz\b)/g, ""); |
|
"frpgvba".replace(re29, ""); |
|
"frpgvba".replace(re30, ""); |
|
"fvgr".replace(re29, ""); |
|
"fvgr".replace(re30, ""); |
|
"fcrpvny".replace(re29, ""); |
|
"fcrpvny".replace(re30, ""); |
|
re36.exec("anzr"); |
|
/e/.exec("9.0 e115"); |
|
} |
|
} |
|
var re57 = /##yv4##/gi; |
|
var re58 = /##yv16##/gi; |
|
var re59 = /##yv19##/gi; |
|
var str27 = '<hy pynff="nqi">##yv4##Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr (5 TO) - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>'; |
|
var str28 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr (5 TO) - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>'; |
|
var str29 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr (5 TO) - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>'; |
|
var str30 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr (5 TO) - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>'; |
|
var str31 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr (5 TO) - zber pbby fghss ba gur jnl.<oe> <oe> ##N##Yrnea zber##/N##</hy>'; |
|
var str32 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr (5 TO) - zber pbby fghss ba gur jnl.<oe> <oe> <n uers="uggc://znvy.yvir.pbz/znvy/nobhg.nfck" gnetrg="_oynax">Yrnea zber##/N##</hy>'; |
|
var str33 = "Bar Jvaqbjf Yvir VQ trgf lbh vagb <o>Ubgznvy</o>, <o>Zrffratre</o>, <o>Kobk YVIR</o> \u2014 naq bgure cynprf lbh frr #~#argjbexybtb#~#"; |
|
var re60 = /(?:^|\s+)bss(?:\s+|$)/; |
|
var re61 = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/; |
|
var re62 = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/; |
|
var str34 = "${1}://${2}${3}${4}${5}"; |
|
var str35 = " O=6gnyg0g4znrrn&o=3&f=gc; Q=_lyu=K3bQZGSxnT4lZzD3OS9GNmV3ZGLkAQxRpTyxNmRlZmRmAmNkAQLRqTImqNZjOUEgpTjQnJ5xMKtgoN--; SCF=qy"; |
|
var s83 = computeInputVariants(str27, 11); |
|
var s84 = computeInputVariants(str28, 11); |
|
var s85 = computeInputVariants(str29, 11); |
|
var s86 = computeInputVariants(str30, 11); |
|
var s87 = computeInputVariants(str31, 11); |
|
var s88 = computeInputVariants(str32, 11); |
|
var s89 = computeInputVariants(str33, 11); |
|
var s90 = computeInputVariants(str34, 11); |
|
function runBlock6() { |
|
for (var i2 = 0; i2 < 11; i2++) { |
|
s83[i2].replace(/##yv0##/gi, ""); |
|
s83[i2].replace(re57, ""); |
|
s84[i2].replace(re58, ""); |
|
s85[i2].replace(re59, ""); |
|
s86[i2].replace(/##\/o##/gi, ""); |
|
s86[i2].replace(/##\/v##/gi, ""); |
|
s86[i2].replace(/##\/h##/gi, ""); |
|
s86[i2].replace(/##o##/gi, ""); |
|
s86[i2].replace(/##oe##/gi, ""); |
|
s86[i2].replace(/##v##/gi, ""); |
|
s86[i2].replace(/##h##/gi, ""); |
|
s87[i2].replace(/##n##/gi, ""); |
|
s88[i2].replace(/##\/n##/gi, ""); |
|
s89[i2].replace(/#~#argjbexybtb#~#/g, ""); |
|
/ Zbovyr\//.exec(s15[i2]); |
|
/##yv1##/gi.exec(s83[i2]); |
|
/##yv10##/gi.exec(s84[i2]); |
|
/##yv11##/gi.exec(s84[i2]); |
|
/##yv12##/gi.exec(s84[i2]); |
|
/##yv13##/gi.exec(s84[i2]); |
|
/##yv14##/gi.exec(s84[i2]); |
|
/##yv15##/gi.exec(s84[i2]); |
|
re58.exec(s84[i2]); |
|
/##yv17##/gi.exec(s85[i2]); |
|
/##yv18##/gi.exec(s85[i2]); |
|
re59.exec(s85[i2]); |
|
/##yv2##/gi.exec(s83[i2]); |
|
/##yv20##/gi.exec(s86[i2]); |
|
/##yv21##/gi.exec(s86[i2]); |
|
/##yv22##/gi.exec(s86[i2]); |
|
/##yv23##/gi.exec(s86[i2]); |
|
/##yv3##/gi.exec(s83[i2]); |
|
re57.exec(s83[i2]); |
|
/##yv5##/gi.exec(s84[i2]); |
|
/##yv6##/gi.exec(s84[i2]); |
|
/##yv7##/gi.exec(s84[i2]); |
|
/##yv8##/gi.exec(s84[i2]); |
|
/##yv9##/gi.exec(s84[i2]); |
|
re8.exec("473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29"); |
|
re8.exec("SbeprqRkcvengvba=633669325184628362"); |
|
re8.exec("FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29"); |
|
/AbxvnA[^\/]*/.exec(s15[i2]); |
|
} |
|
for (var i2 = 0; i2 < 10; i2++) { |
|
" bss".replace(/(?:^|\s+)bss(?:\s+|$)/g, ""); |
|
s90[i2].replace(/(\$\{0\})|(\$0\b)/g, ""); |
|
s90[i2].replace(/(\$\{1\})|(\$1\b)/g, ""); |
|
s90[i2].replace(/(\$\{pbzcyrgr\})|(\$pbzcyrgr\b)/g, ""); |
|
s90[i2].replace(/(\$\{sentzrag\})|(\$sentzrag\b)/g, ""); |
|
s90[i2].replace(/(\$\{ubfgcbeg\})|(\$ubfgcbeg\b)/g, ""); |
|
s90[i2].replace(re56, ""); |
|
s90[i2].replace(/(\$\{cebgbpby\})|(\$cebgbpby\b)/g, ""); |
|
s90[i2].replace(/(\$\{dhrel\})|(\$dhrel\b)/g, ""); |
|
"nqfvmr".replace(re29, ""); |
|
"nqfvmr".replace(re30, ""); |
|
"uggc://${2}${3}${4}${5}".replace(/(\$\{2\})|(\$2\b)/g, ""); |
|
"uggc://wf.hv-cbegny.qr${3}${4}${5}".replace(/(\$\{3\})|(\$3\b)/g, ""); |
|
"arjf".replace(re40, ""); |
|
"arjf".replace(re41, ""); |
|
"arjf".replace(re42, ""); |
|
"arjf".replace(re43, ""); |
|
"arjf".replace(re44, ""); |
|
"arjf".replace(re45, ""); |
|
"arjf".replace(re46, ""); |
|
"arjf".replace(re47, ""); |
|
"arjf".replace(re48, ""); |
|
/ PC=i=(\d+)&oe=(.)/.exec(str35); |
|
re60.exec(" "); |
|
re60.exec(" bss"); |
|
re60.exec(""); |
|
re19.exec(" "); |
|
re19.exec("svefg ba"); |
|
re19.exec("ynfg vtaber"); |
|
re19.exec("ba"); |
|
re9.exec("scnq so "); |
|
re9.exec("zrqvgobk"); |
|
re9.exec("hsgy"); |
|
re9.exec("lhv-h"); |
|
/Fnsnev|Xbadhrebe|XUGZY/gi.exec(s15[i2]); |
|
re61.exec("uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf"); |
|
re62.exec("#Ybtva_rznvy"); |
|
} |
|
} |
|
var re63 = /\{0\}/g; |
|
var str36 = "FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_tfwsbrg-aowb_80=4413268q3660"; |
|
var str37 = "FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; AFP_zp_tfwsbrg-aowb_80=4413268q3660; __hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1; __hgzo=144631658.0.10.1231364074; __hgzp=144631658; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str38 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231364057761&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364057761&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Ssevraqf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1667363813.1231364061&tn_fvq=1231364061&tn_uvq=1917563877&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str39 = "ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str40 = "ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var s91 = computeInputVariants(str36, 9); |
|
var s92 = computeInputVariants(str37, 9); |
|
var s93 = computeInputVariants(str38, 9); |
|
function runBlock7() { |
|
for (var i2 = 0; i2 < 9; i2++) { |
|
"0".replace(re40, ""); |
|
"0".replace(re10, ""); |
|
"0".replace(re51, ""); |
|
"0".replace(re52, ""); |
|
"0".replace(re53, ""); |
|
"0".replace(re39, ""); |
|
"0".replace(re54, ""); |
|
"Lrf".replace(re40, ""); |
|
"Lrf".replace(re10, ""); |
|
"Lrf".replace(re51, ""); |
|
"Lrf".replace(re52, ""); |
|
"Lrf".replace(re53, ""); |
|
"Lrf".replace(re39, ""); |
|
"Lrf".replace(re54, ""); |
|
} |
|
for (var i2 = 0; i2 < 8; i2++) { |
|
"Pybfr {0}".replace(re63, ""); |
|
"Bcra {0}".replace(re63, ""); |
|
s91[i2].split(re32); |
|
s92[i2].split(re32); |
|
"puvyq p1 svefg gnournqref".replace(re14, ""); |
|
"puvyq p1 svefg gnournqref".replace(re15, ""); |
|
"uqy_fcb".replace(re14, ""); |
|
"uqy_fcb".replace(re15, ""); |
|
"uvag".replace(re14, ""); |
|
"uvag".replace(re15, ""); |
|
s93[i2].replace(re33, ""); |
|
"yvfg".replace(re14, ""); |
|
"yvfg".replace(re15, ""); |
|
"at_bhgre".replace(re30, ""); |
|
"cnerag puebzr5 qbhoyr2 NU".replace(re14, ""); |
|
"cnerag puebzr5 qbhoyr2 NU".replace(re15, ""); |
|
"cnerag puebzr5 dhnq5 ps NU osyvax zbarl".replace(re14, ""); |
|
"cnerag puebzr5 dhnq5 ps NU osyvax zbarl".replace(re15, ""); |
|
"cnerag puebzr6 fvatyr1".replace(re14, ""); |
|
"cnerag puebzr6 fvatyr1".replace(re15, ""); |
|
"cb_qrs".replace(re14, ""); |
|
"cb_qrs".replace(re15, ""); |
|
"gnopbagrag".replace(re14, ""); |
|
"gnopbagrag".replace(re15, ""); |
|
"iv_svefg_gvzr".replace(re30, ""); |
|
/(^|.)(ronl|qri-ehf3.wbg)(|fgberf|zbgbef|yvirnhpgvbaf|jvxv|rkcerff|punggre).(pbz(|.nh|.pa|.ux|.zl|.ft|.oe|.zk)|pb(.hx|.xe|.am)|pn|qr|se|vg|ay|or|ng|pu|vr|va|rf|cy|cu|fr)$/i.exec("cntrf.ronl.pbz"); |
|
re8.exec("144631658.0.10.1231364074"); |
|
re8.exec("144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.2294274870215848400.1231364074.1231364074.1231364074.1"); |
|
re8.exec("4413241q3660"); |
|
re8.exec("SbeprqRkcvengvba=633669357391353591"); |
|
re8.exec(str39); |
|
re8.exec(str40); |
|
re8.exec("AFP_zp_kkk-gdzogv_80=4413241q3660"); |
|
re8.exec("FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7"); |
|
re8.exec("__hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1"); |
|
re8.exec("__hgzo=144631658.0.10.1231364074"); |
|
re8.exec("__hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7"); |
|
re34.exec(s91[i2]); |
|
re34.exec(s92[i2]); |
|
} |
|
} |
|
var re64 = /\b[a-z]/g; |
|
var re65 = /^uggc:\/\//; |
|
var re66 = /(?:^|\s+)qvfnoyrq(?:\s+|$)/; |
|
var str41 = "uggc://cebsvyr.zlfcnpr.pbz/Zbqhyrf/Nccyvpngvbaf/Cntrf/Pnainf.nfck"; |
|
function runBlock8() { |
|
for (var i2 = 0; i2 < 7; i2++) { |
|
s21[i2].match(/\d+/g); |
|
"nsgre".replace(re64, ""); |
|
"orsber".replace(re64, ""); |
|
"obggbz".replace(re64, ""); |
|
"ohvygva_jrngure.kzy".replace(re65, ""); |
|
"ohggba".replace(re37, ""); |
|
"ohggba".replace(re18, ""); |
|
"qngrgvzr.kzy".replace(re65, ""); |
|
"uggc://eff.paa.pbz/eff/paa_gbcfgbevrf.eff".replace(re65, ""); |
|
"vachg".replace(re37, ""); |
|
"vachg".replace(re18, ""); |
|
"vafvqr".replace(re64, ""); |
|
"cbvagre".replace(re27, ""); |
|
"cbfvgvba".replace(/[A-Z]/g, ""); |
|
"gbc".replace(re27, ""); |
|
"gbc".replace(re64, ""); |
|
"hy".replace(re37, ""); |
|
"hy".replace(re18, ""); |
|
str26.replace(re37, ""); |
|
str26.replace(re18, ""); |
|
"lbhghor_vtbbtyr/i2/lbhghor.kzy".replace(re65, ""); |
|
"m-vaqrk".replace(re27, ""); |
|
/#([\w-]+)/.exec(str26); |
|
re16.exec("urvtug"); |
|
re16.exec("znetvaGbc"); |
|
re16.exec("jvqgu"); |
|
re19.exec("gno0 svefg ba"); |
|
re19.exec("gno0 ba"); |
|
re19.exec("gno4 ynfg"); |
|
re19.exec("gno4"); |
|
re19.exec("gno5"); |
|
re19.exec("gno6"); |
|
re19.exec("gno7"); |
|
re19.exec("gno8"); |
|
/NqborNVE\/([^\s]*)/.exec(s15[i2]); |
|
/NccyrJroXvg\/([^ ]*)/.exec(s15[i2]); |
|
/XUGZY/gi.exec(s15[i2]); |
|
/^(?:obql|ugzy)$/i.exec("YV"); |
|
re38.exec("ohggba"); |
|
re38.exec("vachg"); |
|
re38.exec("hy"); |
|
re38.exec(str26); |
|
/^(\w+|\*)/.exec(str26); |
|
/znp|jva|yvahk/i.exec("Jva32"); |
|
/eton?\([\d\s,]+\)/.exec("fgngvp"); |
|
} |
|
for (var i2 = 0; i2 < 6; i2++) { |
|
"".replace(/\r/g, ""); |
|
"/".replace(re40, ""); |
|
"/".replace(re10, ""); |
|
"/".replace(re51, ""); |
|
"/".replace(re52, ""); |
|
"/".replace(re53, ""); |
|
"/".replace(re39, ""); |
|
"/".replace(re54, ""); |
|
"uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/{0}?[NDO]&{1}&{2}&[NDR]".replace(re63, ""); |
|
str41.replace(re12, ""); |
|
"uggc://jjj.snprobbx.pbz/fepu.cuc".replace(re23, ""); |
|
"freivpr".replace(re40, ""); |
|
"freivpr".replace(re41, ""); |
|
"freivpr".replace(re42, ""); |
|
"freivpr".replace(re43, ""); |
|
"freivpr".replace(re44, ""); |
|
"freivpr".replace(re45, ""); |
|
"freivpr".replace(re46, ""); |
|
"freivpr".replace(re47, ""); |
|
"freivpr".replace(re48, ""); |
|
/((ZFVR\s+([6-9]|\d\d)\.))/.exec(s15[i2]); |
|
re66.exec(""); |
|
re50.exec("fryrpgrq"); |
|
re8.exec("8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn"); |
|
re8.exec("SbeprqRkcvengvba=633669340386893867"); |
|
re8.exec("VC=74.125.75.17"); |
|
re8.exec("FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn"); |
|
/Xbadhrebe|Fnsnev|XUGZY/.exec(s15[i2]); |
|
re13.exec(str41); |
|
re49.exec("unfsbphf"); |
|
} |
|
} |
|
var re67 = /zrah_byq/g; |
|
var str42 = "FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var str43 = "FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; __hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1; __hgzo=144631658.0.10.1231364380; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str44 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_vzntrf_wf&qg=1231364373088&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364373088&punaary=svz_zlfcnpr_hfre-ivrj-pbzzragf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Spbzzrag.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1158737789.1231364375&tn_fvq=1231364375&tn_uvq=415520832&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str45 = "ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str46 = "ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var re68 = /^([#.]?)((?:[\w\u0128-\uffff*_-]|\\.)*)/; |
|
var re69 = /\{1\}/g; |
|
var re70 = /\s+/; |
|
var re71 = /(\$\{4\})|(\$4\b)/g; |
|
var re72 = /(\$\{5\})|(\$5\b)/g; |
|
var re73 = /\{2\}/g; |
|
var re74 = /[^+>] [^+>]/; |
|
var re75 = /\bucpyv\s*=\s*([^;]*)/i; |
|
var re76 = /\bucuvqr\s*=\s*([^;]*)/i; |
|
var re77 = /\bucfie\s*=\s*([^;]*)/i; |
|
var re78 = /\bhfucjrn\s*=\s*([^;]*)/i; |
|
var re79 = /\bmvc\s*=\s*([^;]*)/i; |
|
var re80 = /^((?:[\w\u0128-\uffff*_-]|\\.)+)(#)((?:[\w\u0128-\uffff*_-]|\\.)+)/; |
|
var re81 = /^([>+~])\s*(\w*)/i; |
|
var re82 = /^>\s*((?:[\w\u0128-\uffff*_-]|\\.)+)/; |
|
var re83 = /^[\s[]?shapgvba/; |
|
var re84 = /v\/g.tvs#(.*)/i; |
|
var str47 = "#Zbq-Vasb-Vasb-WninFpevcgUvag"; |
|
var str48 = ",n.svryqOgaPnapry"; |
|
var str49 = "FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_kkk-gdzogv_80=4413241q3660"; |
|
var str50 = "FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; AFP_zp_kkk-gdzogv_80=4413241q3660; AFP_zp_kkk-aowb_80=4413235p3660; __hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1; __hgzo=144631658.0.10.1231367708; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str51 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367691141&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367691141&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sjjj.zlfcnpr.pbz%2S&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=320757904.1231367694&tn_fvq=1231367694&tn_uvq=1758792003&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str52 = "uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N38%3N42%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=1024k768&p=24&x=L&oj=994&ou=634&uc=A&{2}&[NDR]"; |
|
var str53 = "cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq qbhoyr2 ps"; |
|
var str54 = "ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str55 = "ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var str56 = "ne;ng;nh;or;oe;pn;pu;py;pa;qr;qx;rf;sv;se;to;ux;vq;vr;va;vg;wc;xe;zk;zl;ay;ab;am;cu;cy;cg;eh;fr;ft;gu;ge;gj;mn;"; |
|
var str57 = "ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886&GHVQ=1"; |
|
var str58 = "ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886"; |
|
var str59 = "ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1"; |
|
var str60 = "ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF"; |
|
var str61 = "uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/29/4RQP4969777N048NPS4RRR3PO2S7S.wct"; |
|
var str62 = "uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/OQ/63NP9O94NS5OQP1249Q9S1ROP7NS3.wct"; |
|
var str63 = "zbmvyyn/5.0 (jvaqbjf; h; jvaqbjf ag 5.1; ra-hf) nccyrjroxvg/528.9 (xugzy, yvxr trpxb) puebzr/2.0.157.0 fnsnev/528.9"; |
|
var s94 = computeInputVariants(str42, 5); |
|
var s95 = computeInputVariants(str43, 5); |
|
var s96 = computeInputVariants(str44, 5); |
|
var s97 = computeInputVariants(str47, 5); |
|
var s98 = computeInputVariants(str48, 5); |
|
var s99 = computeInputVariants(str49, 5); |
|
var s100 = computeInputVariants(str50, 5); |
|
var s101 = computeInputVariants(str51, 5); |
|
var s102 = computeInputVariants(str52, 5); |
|
var s103 = computeInputVariants(str53, 5); |
|
function runBlock9() { |
|
for (var i2 = 0; i2 < 5; i2++) { |
|
s94[i2].split(re32); |
|
s95[i2].split(re32); |
|
"svz_zlfcnpr_hfre-ivrj-pbzzragf,svz_zlfcnpr_havgrq-fgngrf".split(re20); |
|
s96[i2].replace(re33, ""); |
|
"zrah_arj zrah_arj_gbttyr zrah_gbttyr".replace(re67, ""); |
|
"zrah_byq zrah_byq_gbttyr zrah_gbttyr".replace(re67, ""); |
|
re8.exec("102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98"); |
|
re8.exec("144631658.0.10.1231364380"); |
|
re8.exec("144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.3931862196947939300.1231364380.1231364380.1231364380.1"); |
|
re8.exec("441326q33660"); |
|
re8.exec("SbeprqRkcvengvba=633669341278771470"); |
|
re8.exec(str45); |
|
re8.exec(str46); |
|
re8.exec("AFP_zp_dfctwzssrwh-aowb_80=441326q33660"); |
|
re8.exec("FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98"); |
|
re8.exec("__hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1"); |
|
re8.exec("__hgzo=144631658.0.10.1231364380"); |
|
re8.exec("__hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
} |
|
for (var i2 = 0; i2 < 4; i2++) { |
|
" yvfg1".replace(re14, ""); |
|
" yvfg1".replace(re15, ""); |
|
" yvfg2".replace(re14, ""); |
|
" yvfg2".replace(re15, ""); |
|
" frneputebhc1".replace(re14, ""); |
|
" frneputebhc1".replace(re15, ""); |
|
s97[i2].replace(re68, ""); |
|
s97[i2].replace(re18, ""); |
|
"".replace(/&/g, ""); |
|
"".replace(re35, ""); |
|
"(..-{0})(|(d+)|)".replace(re63, ""); |
|
s98[i2].replace(re18, ""); |
|
"//vzt.jro.qr/vij/FC/${cngu}/${anzr}/${inyhr}?gf=${abj}".replace(re56, ""); |
|
"//vzt.jro.qr/vij/FC/tzk_uc/${anzr}/${inyhr}?gf=${abj}".replace(/(\$\{anzr\})|(\$anzr\b)/g, ""); |
|
'<fcna pynff="urnq"><o>Jvaqbjf Yvir Ubgznvy</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re69, ""); |
|
'<fcna pynff="urnq"><o>{0}</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re63, ""); |
|
'<fcna pynff="fvtahc"><n uers=uggc://jjj.ubgznvy.pbz><o>{1}</o></n></fcna>'.replace(re69, ""); |
|
'<fcna pynff="fvtahc"><n uers={0}><o>{1}</o></n></fcna>'.replace(re63, ""); |
|
"Vzntrf".replace(re15, ""); |
|
"ZFA".replace(re15, ""); |
|
"Zncf".replace(re15, ""); |
|
"Zbq-Vasb-Vasb-WninFpevcgUvag".replace(re39, ""); |
|
"Arjf".replace(re15, ""); |
|
s99[i2].split(re32); |
|
s100[i2].split(re32); |
|
"Ivqrb".replace(re15, ""); |
|
"Jro".replace(re15, ""); |
|
"n".replace(re39, ""); |
|
"nwnkFgneg".split(re70); |
|
"nwnkFgbc".split(re70); |
|
"ovaq".replace(re14, ""); |
|
"ovaq".replace(re15, ""); |
|
"oevatf lbh zber. Zber fcnpr (5TO), zber frphevgl, fgvyy serr.".replace(re63, ""); |
|
"puvyq p1 svefg qrpx".replace(re14, ""); |
|
"puvyq p1 svefg qrpx".replace(re15, ""); |
|
"puvyq p1 svefg qbhoyr2".replace(re14, ""); |
|
"puvyq p1 svefg qbhoyr2".replace(re15, ""); |
|
"puvyq p2 ynfg".replace(re14, ""); |
|
"puvyq p2 ynfg".replace(re15, ""); |
|
"puvyq p2".replace(re14, ""); |
|
"puvyq p2".replace(re15, ""); |
|
"puvyq p3".replace(re14, ""); |
|
"puvyq p3".replace(re15, ""); |
|
"puvyq p4 ynfg".replace(re14, ""); |
|
"puvyq p4 ynfg".replace(re15, ""); |
|
"pbclevtug".replace(re14, ""); |
|
"pbclevtug".replace(re15, ""); |
|
"qZFAZR_1".replace(re14, ""); |
|
"qZFAZR_1".replace(re15, ""); |
|
"qbhoyr2 ps".replace(re14, ""); |
|
"qbhoyr2 ps".replace(re15, ""); |
|
"qbhoyr2".replace(re14, ""); |
|
"qbhoyr2".replace(re15, ""); |
|
"uqy_arj".replace(re14, ""); |
|
"uqy_arj".replace(re15, ""); |
|
"uc_fubccvatobk".replace(re30, ""); |
|
"ugzy%2Rvq".replace(re29, ""); |
|
"ugzy%2Rvq".replace(re30, ""); |
|
s101[i2].replace(re33, ""); |
|
"uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${4}${5}".replace(re71, ""); |
|
"uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${5}".replace(re72, ""); |
|
s102[i2].replace(re73, ""); |
|
"uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&{1}&{2}&[NDR]".replace(re69, ""); |
|
"vztZFSG".replace(re14, ""); |
|
"vztZFSG".replace(re15, ""); |
|
"zfasbbg1 ps".replace(re14, ""); |
|
"zfasbbg1 ps".replace(re15, ""); |
|
s103[i2].replace(re14, ""); |
|
s103[i2].replace(re15, ""); |
|
"cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq".replace(re14, ""); |
|
"cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq".replace(re15, ""); |
|
"cevznel".replace(re14, ""); |
|
"cevznel".replace(re15, ""); |
|
"erpgnatyr".replace(re30, ""); |
|
"frpbaqnel".replace(re14, ""); |
|
"frpbaqnel".replace(re15, ""); |
|
"haybnq".split(re70); |
|
"{0}{1}1".replace(re63, ""); |
|
"|{1}1".replace(re69, ""); |
|
/(..-HF)(\|(\d+)|)/i.exec("xb-xe,ra-va,gu-gu"); |
|
re4.exec("/ZlFcnprNccf/NccPnainf,45000012"); |
|
re8.exec("144631658.0.10.1231367708"); |
|
re8.exec("144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.2770915348920628700.1231367708.1231367708.1231367708.1"); |
|
re8.exec("4413235p3660"); |
|
re8.exec("441327q73660"); |
|
re8.exec("9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473"); |
|
re8.exec("SbeprqRkcvengvba=633669350559478880"); |
|
re8.exec(str54); |
|
re8.exec(str55); |
|
re8.exec("AFP_zp_dfctwzs-aowb_80=441327q73660"); |
|
re8.exec("AFP_zp_kkk-aowb_80=4413235p3660"); |
|
re8.exec("FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473"); |
|
re8.exec("__hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1"); |
|
re8.exec("__hgzo=144631658.0.10.1231367708"); |
|
re8.exec("__hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re34.exec(s99[i2]); |
|
re34.exec(s100[i2]); |
|
/ZFVR\s+5[.]01/.exec(s15[i2]); |
|
/HF(?=;)/i.exec(str56); |
|
re74.exec(s97[i2]); |
|
re28.exec("svefg npgvir svefgNpgvir"); |
|
re28.exec("ynfg"); |
|
/\bp:(..)/i.exec("m:94043|yn:37.4154|yb:-122.0585|p:HF"); |
|
re75.exec(str57); |
|
re75.exec(str58); |
|
re76.exec(str57); |
|
re76.exec(str58); |
|
re77.exec(str57); |
|
re77.exec(str58); |
|
/\bhfucce\s*=\s*([^;]*)/i.exec(str59); |
|
re78.exec(str57); |
|
re78.exec(str58); |
|
/\bjci\s*=\s*([^;]*)/i.exec(str59); |
|
re79.exec(str58); |
|
re79.exec(str60); |
|
re79.exec(str59); |
|
/\|p:([a-z]{2})/i.exec("m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1"); |
|
re80.exec(s97[i2]); |
|
re61.exec("cebgbglcr.wf"); |
|
re68.exec(s97[i2]); |
|
re81.exec(s97[i2]); |
|
re82.exec(s97[i2]); |
|
/^Fubpxjnir Synfu (\d)/.exec(s21[i2]); |
|
/^Fubpxjnir Synfu (\d+)/.exec(s21[i2]); |
|
re83.exec("[bowrpg tybony]"); |
|
re62.exec(s97[i2]); |
|
re84.exec(str61); |
|
re84.exec(str62); |
|
/jroxvg/.exec(str63); |
|
} |
|
} |
|
var re85 = /eaq_zbqobkva/; |
|
var str64 = "1231365729213"; |
|
var str65 = "74.125.75.3-1057165600.29978900"; |
|
var str66 = "74.125.75.3-1057165600.29978900.1231365730214"; |
|
var str67 = "Frnepu%20Zvpebfbsg.pbz"; |
|
var str68 = "FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var str69 = "FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; __hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1; __hgzo=144631658.0.10.1231365779; __hgzp=144631658; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str70 = "I=3%26THVQ=757q3ss871q44o7o805n8113n5p72q52"; |
|
var str71 = "I=3&THVQ=757q3ss871q44o7o805n8113n5p72q52"; |
|
var str72 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365765292&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365765292&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sohyyrgvaf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1579793869.1231365768&tn_fvq=1231365768&tn_uvq=2056210897&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str73 = "frnepu.zvpebfbsg.pbz"; |
|
var str74 = "frnepu.zvpebfbsg.pbz/"; |
|
var str75 = "ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str76 = "ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
function runBlock10() { |
|
for (var i2 = 0; i2 < 3; i2++) { |
|
"%3Szxg=ra-HF".replace(re39, ""); |
|
"-8".replace(re40, ""); |
|
"-8".replace(re10, ""); |
|
"-8".replace(re51, ""); |
|
"-8".replace(re52, ""); |
|
"-8".replace(re53, ""); |
|
"-8".replace(re39, ""); |
|
"-8".replace(re54, ""); |
|
"1.5".replace(re40, ""); |
|
"1.5".replace(re10, ""); |
|
"1.5".replace(re51, ""); |
|
"1.5".replace(re52, ""); |
|
"1.5".replace(re53, ""); |
|
"1.5".replace(re39, ""); |
|
"1.5".replace(re54, ""); |
|
"1024k768".replace(re40, ""); |
|
"1024k768".replace(re10, ""); |
|
"1024k768".replace(re51, ""); |
|
"1024k768".replace(re52, ""); |
|
"1024k768".replace(re53, ""); |
|
"1024k768".replace(re39, ""); |
|
"1024k768".replace(re54, ""); |
|
str64.replace(re40, ""); |
|
str64.replace(re10, ""); |
|
str64.replace(re51, ""); |
|
str64.replace(re52, ""); |
|
str64.replace(re53, ""); |
|
str64.replace(re39, ""); |
|
str64.replace(re54, ""); |
|
"14".replace(re40, ""); |
|
"14".replace(re10, ""); |
|
"14".replace(re51, ""); |
|
"14".replace(re52, ""); |
|
"14".replace(re53, ""); |
|
"14".replace(re39, ""); |
|
"14".replace(re54, ""); |
|
"24".replace(re40, ""); |
|
"24".replace(re10, ""); |
|
"24".replace(re51, ""); |
|
"24".replace(re52, ""); |
|
"24".replace(re53, ""); |
|
"24".replace(re39, ""); |
|
"24".replace(re54, ""); |
|
str65.replace(re40, ""); |
|
str65.replace(re10, ""); |
|
str65.replace(re51, ""); |
|
str65.replace(re52, ""); |
|
str65.replace(re53, ""); |
|
str65.replace(re39, ""); |
|
str65.replace(re54, ""); |
|
str66.replace(re40, ""); |
|
str66.replace(re10, ""); |
|
str66.replace(re51, ""); |
|
str66.replace(re52, ""); |
|
str66.replace(re53, ""); |
|
str66.replace(re39, ""); |
|
str66.replace(re54, ""); |
|
"9.0".replace(re40, ""); |
|
"9.0".replace(re10, ""); |
|
"9.0".replace(re51, ""); |
|
"9.0".replace(re52, ""); |
|
"9.0".replace(re53, ""); |
|
"9.0".replace(re39, ""); |
|
"9.0".replace(re54, ""); |
|
"994k634".replace(re40, ""); |
|
"994k634".replace(re10, ""); |
|
"994k634".replace(re51, ""); |
|
"994k634".replace(re52, ""); |
|
"994k634".replace(re53, ""); |
|
"994k634".replace(re39, ""); |
|
"994k634".replace(re54, ""); |
|
"?zxg=ra-HF".replace(re40, ""); |
|
"?zxg=ra-HF".replace(re10, ""); |
|
"?zxg=ra-HF".replace(re51, ""); |
|
"?zxg=ra-HF".replace(re52, ""); |
|
"?zxg=ra-HF".replace(re53, ""); |
|
"?zxg=ra-HF".replace(re54, ""); |
|
"PAA.pbz".replace(re25, ""); |
|
"PAA.pbz".replace(re12, ""); |
|
"PAA.pbz".replace(re39, ""); |
|
"Qngr & Gvzr".replace(re25, ""); |
|
"Qngr & Gvzr".replace(re12, ""); |
|
"Qngr & Gvzr".replace(re39, ""); |
|
"Frnepu Zvpebfbsg.pbz".replace(re40, ""); |
|
"Frnepu Zvpebfbsg.pbz".replace(re54, ""); |
|
str67.replace(re10, ""); |
|
str67.replace(re51, ""); |
|
str67.replace(re52, ""); |
|
str67.replace(re53, ""); |
|
str67.replace(re39, ""); |
|
str68.split(re32); |
|
str69.split(re32); |
|
str70.replace(re52, ""); |
|
str70.replace(re53, ""); |
|
str70.replace(re39, ""); |
|
str71.replace(re40, ""); |
|
str71.replace(re10, ""); |
|
str71.replace(re51, ""); |
|
str71.replace(re54, ""); |
|
"Jrngure".replace(re25, ""); |
|
"Jrngure".replace(re12, ""); |
|
"Jrngure".replace(re39, ""); |
|
"LbhGhor".replace(re25, ""); |
|
"LbhGhor".replace(re12, ""); |
|
"LbhGhor".replace(re39, ""); |
|
str72.replace(re33, ""); |
|
"erzbgr_vsenzr_1".replace(/^erzbgr_vsenzr_/, ""); |
|
str73.replace(re40, ""); |
|
str73.replace(re10, ""); |
|
str73.replace(re51, ""); |
|
str73.replace(re52, ""); |
|
str73.replace(re53, ""); |
|
str73.replace(re39, ""); |
|
str73.replace(re54, ""); |
|
str74.replace(re40, ""); |
|
str74.replace(re10, ""); |
|
str74.replace(re51, ""); |
|
str74.replace(re52, ""); |
|
str74.replace(re53, ""); |
|
str74.replace(re39, ""); |
|
str74.replace(re54, ""); |
|
"lhv-h".replace(/\-/g, ""); |
|
re9.exec("p"); |
|
re9.exec("qz p"); |
|
re9.exec("zbqynory"); |
|
re9.exec("lhv-h svefg"); |
|
re8.exec("144631658.0.10.1231365779"); |
|
re8.exec("144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.1877536177953918500.1231365779.1231365779.1231365779.1"); |
|
re8.exec(str75); |
|
re8.exec(str76); |
|
re8.exec("__hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1"); |
|
re8.exec("__hgzo=144631658.0.10.1231365779"); |
|
re8.exec("__hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re34.exec(str68); |
|
re34.exec(str69); |
|
/^$/.exec(""); |
|
re31.exec("qr"); |
|
/^znk\d+$/.exec(""); |
|
/^zva\d+$/.exec(""); |
|
/^erfgber$/.exec(""); |
|
re85.exec("zbqobkva zbqobk_abcnqqvat "); |
|
re85.exec("zbqgvgyr"); |
|
re85.exec("eaq_zbqobkva "); |
|
re85.exec("eaq_zbqgvgyr "); |
|
/frpgvba\d+_pbagragf/.exec("obggbz_ani"); |
|
} |
|
} |
|
var re86 = /;\s*/; |
|
var re87 = /(\$\{inyhr\})|(\$inyhr\b)/g; |
|
var re88 = /(\$\{abj\})|(\$abj\b)/g; |
|
var re89 = /\s+$/; |
|
var re90 = /^\s+/; |
|
var re91 = /(\\\"|\x00-|\x1f|\x7f-|\x9f|\u00ad|\u0600-|\u0604|\u070f|\u17b4|\u17b5|\u200c-|\u200f|\u2028-|\u202f|\u2060-|\u206f|\ufeff|\ufff0-|\uffff)/g; |
|
var re92 = /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/; |
|
var re93 = /^([:.#]*)((?:[\w\u0128-\uffff*_-]|\\.)+)/; |
|
var re94 = /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/; |
|
var str77 = "#fubhgobk .pybfr"; |
|
var str78 = "FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzssrwh-aowb_80=441326q33660"; |
|
var str79 = "FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; AFP_zp_dfctwzssrwh-aowb_80=441326q33660; __hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1; __hgzo=144631658.0.10.1231365869; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str80 = "FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=441327q73660"; |
|
var str81 = "FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; AFP_zp_dfctwzs-aowb_80=441327q73660; __hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1; __hgzo=144631658.0.10.1231367054; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str82 = "[glcr=fhozvg]"; |
|
var str83 = "n.svryqOga,n.svryqOgaPnapry"; |
|
var str84 = "n.svryqOgaPnapry"; |
|
var str85 = "oyvpxchaxg"; |
|
var str86 = "qvi.bow-nppbeqvba qg"; |
|
var str87 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_nccf_wf&qg=1231367052227&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367052227&punaary=svz_zlfcnpr_nccf-pnainf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2SZbqhyrf%2SNccyvpngvbaf%2SCntrf%2SPnainf.nfck&nq_glcr=grkg&rvq=6083027&rn=0&sez=1&tn_ivq=716357910.1231367056&tn_fvq=1231367056&tn_uvq=1387206491&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str88 = "uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365851658&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365851658&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyrrqvg.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1979828129.1231365855&tn_fvq=1231365855&tn_uvq=2085229649&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22"; |
|
var str89 = "uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N12%3N47%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=0k0&p=43835816&x=A&oj=994&ou=634&uc=A&{2}&[NDR]"; |
|
var str90 = "zrgn[anzr=nwnkHey]"; |
|
var str91 = "anpuevpugra"; |
|
var str92 = `b oS={'oT':1.1};x $8n(B){z(B!=o9)};x $S(B){O(!$8n(B))z A;O(B.4L)z'T';b S=7t B;O(S=='2P'&&B.p4){23(B.7f){12 1:z'T';12 3:z/S/.2g(B.8M)?'ox':'oh'}}O(S=='2P'||S=='x'){23(B.nE){12 2V:z'1O';12 7I:z'5a';12 18:z'4B'}O(7t B.I=='4F'){O(B.3u)z'pG';O(B.8e)z'1p'}}z S};x $2p(){b 4E={};Z(b v=0;v<1p.I;v++){Z(b X 1o 1p[v]){b nc=1p[v][X];b 6E=4E[X];O(6E&&$S(nc)=='2P'&&$S(6E)=='2P')4E[X]=$2p(6E,nc);17 4E[X]=nc}}z 4E};b $E=7p.E=x(){b 1d=1p;O(!1d[1])1d=[p,1d[0]];Z(b X 1o 1d[1])1d[0][X]=1d[1][X];z 1d[0]};b $4D=7p.pJ=x(){Z(b v=0,y=1p.I;v<y;v++){1p[v].E=x(1J){Z(b 1I 1o 1J){O(!p.1Y[1I])p.1Y[1I]=1J[1I];O(!p[1I])p[1I]=$4D.6C(1I)}}}};$4D.6C=x(1I){z x(L){z p.1Y[1I].3H(L,2V.1Y.nV.1F(1p,1))}};$4D(7F,2V,6J,nb);b 3l=x(B){B=B||{};B.E=$E;z B};b pK=Y 3l(H);b pZ=Y 3l(C);C.6f=C.35('6f')[0];x $2O(B){z!!(B||B===0)};x $5S(B,n8){z $8n(B)?B:n8};x $7K(3c,1m){z 1q.na(1q.7K()*(1m-3c+1)+3c)};x $3N(){z Y 97().os()};x $4M(1U){pv(1U);pa(1U);z 1S};H.43=!!(C.5Z);O(H.nB)H.31=H[H.7q?'py':'nL']=1r;17 O(C.9N&&!C.om&&!oy.oZ)H.pF=H.4Z=H[H.43?'pt':'65']=1r;17 O(C.po!=1S)H.7J=1r;O(7t 5B=='o9'){b 5B=x(){};O(H.4Z)C.nd("pW");5B.1Y=(H.4Z)?H["[[oN.1Y]]"]:{}}5B.1Y.4L=1r;O(H.nL)5s{C.oX("pp",A,1r)}4K(r){};b 18=x(1X){b 63=x(){z(1p[0]!==1S&&p.1w&&$S(p.1w)=='x')?p.1w.3H(p,1p):p};$E(63,p);63.1Y=1X;63.nE=18;z 63};18.1z=x(){};18.1Y={E:x(1X){b 7x=Y p(1S);Z(b X 1o 1X){b nC=7x[X];7x[X]=18.nY(nC,1X[X])}z Y 18(7x)},3d:x(){Z(b v=0,y=1p.I;v<y;v++)$E(p.1Y,1p[v])}};18.nY=x(2b,2n){O(2b&&2b!=2n){b S=$S(2n);O(S!=$S(2b))z 2n;23(S){12'x':b 7R=x(){p.1e=1p.8e.1e;z 2n.3H(p,1p)};7R.1e=2b;z 7R;12'2P':z $2p(2b,2n)}}z 2n};b 8o=Y 18({oQ:x(J){p.4w=p.4w||[];p.4w.1x(J);z p},7g:x(){O(p.4w&&p.4w.I)p.4w.9J().2x(10,p)},oP:x(){p.4w=[]}});b 2d=Y 18({1V:x(S,J){O(J!=18.1z){p.$19=p.$19||{};p.$19[S]=p.$19[S]||[];p.$19[S].5j(J)}z p},1v:x(S,1d,2x){O(p.$19&&p.$19[S]){p.$19[S].1b(x(J){J.3n({'L':p,'2x':2x,'1p':1d})()},p)}z p},3M:x(S,J){O(p.$19&&p.$19[S])p.$19[S].2U(J);z p}});b 4v=Y 18({2H:x(){p.P=$2p.3H(1S,[p.P].E(1p));O(!p.1V)z p;Z(b 3O 1o p.P){O($S(p.P[3O]=='x')&&3O.2g(/^5P[N-M]/))p.1V(3O,p.P[3O])}z p}});2V.E({7y:x(J,L){Z(b v=0,w=p.I;v<w;v++)J.1F(L,p[v],v,p)},3s:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))54.1x(p[v])}z 54},2X:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++)54[v]=J.1F(L,p[v],v,p);z 54},4i:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(!J.1F(L,p[v],v,p))z A}z 1r},ob:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))z 1r}z A},3F:x(3u,15){b 3A=p.I;Z(b v=(15<0)?1q.1m(0,3A+15):15||0;v<3A;v++){O(p[v]===3u)z v}z-1},8z:x(1u,I){1u=1u||0;O(1u<0)1u=p.I+1u;I=I||(p.I-1u);b 89=[];Z(b v=0;v<I;v++)89[v]=p[1u++];z 89},2U:x(3u){b v=0;b 3A=p.I;6L(v<3A){O(p[v]===3u){p.6l(v,1);3A--}17{v++}}z p},1y:x(3u,15){z p.3F(3u,15)!=-1},oz:x(1C){b B={},I=1q.3c(p.I,1C.I);Z(b v=0;v<I;v++)B[1C[v]]=p[v];z B},E:x(1O){Z(b v=0,w=1O.I;v<w;v++)p.1x(1O[v]);z p},2p:x(1O){Z(b v=0,y=1O.I;v<y;v++)p.5j(1O[v]);z p},5j:x(3u){O(!p.1y(3u))p.1x(3u);z p},oc:x(){z p[$7K(0,p.I-1)]||A},7L:x(){z p[p.I-1]||A}});2V.1Y.1b=2V.1Y.7y;2V.1Y.2g=2V.1Y.1y;x $N(1O){z 2V.8z(1O)};x $1b(3J,J,L){O(3J&&7t 3J.I=='4F'&&$S(3J)!='2P')2V.7y(3J,J,L);17 Z(b 1j 1o 3J)J.1F(L||3J,3J[1j],1j)};6J.E({2g:x(6b,2F){z(($S(6b)=='2R')?Y 7I(6b,2F):6b).2g(p)},3p:x(){z 5K(p,10)},o4:x(){z 69(p)},7A:x(){z p.3y(/-D/t,x(2G){z 2G.7G(1).nW()})},9b:x(){z p.3y(/w[N-M]/t,x(2G){z(2G.7G(0)+'-'+2G.7G(1).5O())})},8V:x(){z p.3y(/\b[n-m]/t,x(2G){z 2G.nW()})},5L:x(){z p.3y(/^s+|s+$/t,'')},7j:x(){z p.3y(/s{2,}/t,' ').5L()},5V:x(1O){b 1i=p.2G(/d{1,3}/t);z(1i)?1i.5V(1O):A},5U:x(1O){b 3P=p.2G(/^#?(w{1,2})(w{1,2})(w{1,2})$/);z(3P)?3P.nV(1).5U(1O):A},1y:x(2R,f){z(f)?(f+p+f).3F(f+2R+f)>-1:p.3F(2R)>-1},nX:x(){z p.3y(/([.*+?^\${}()|[]/\\])/t,'\\$1')}});2V.E({5V:x(1O){O(p.I<3)z A;O(p.I==4&&p[3]==0&&!1O)z'p5';b 3P=[];Z(b v=0;v<3;v++){b 52=(p[v]-0).4h(16);3P.1x((52.I==1)?'0'+52:52)}z 1O?3P:'#'+3P.2u('')},5U:x(1O){O(p.I!=3)z A;b 1i=[];Z(b v=0;v<3;v++){1i.1x(5K((p[v].I==1)?p[v]+p[v]:p[v],16))}z 1O?1i:'1i('+1i.2u(',')+')'}});7F.E({3n:x(P){b J=p;P=$2p({'L':J,'V':A,'1p':1S,'2x':A,'4s':A,'6W':A},P);O($2O(P.1p)&&$S(P.1p)!='1O')P.1p=[P.1p];z x(V){b 1d;O(P.V){V=V||H.V;1d=[(P.V===1r)?V:Y P.V(V)];O(P.1p)1d.E(P.1p)}17 1d=P.1p||1p;b 3C=x(){z J.3H($5S(P`; |
|
var str93 = "hagreunyghat"; |
|
var str94 = "ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str95 = "ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q"; |
|
var str96 = "ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var str97 = "ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R="; |
|
var str98 = "shapgvba (){Cuk.Nccyvpngvba.Frghc.Pber();Cuk.Nccyvpngvba.Frghc.Nwnk();Cuk.Nccyvpngvba.Frghc.Synfu();Cuk.Nccyvpngvba.Frghc.Zbqhyrf()}"; |
|
function runBlock11() { |
|
for (var i2 = 0; i2 < 2; i2++) { |
|
" .pybfr".replace(re18, ""); |
|
" n.svryqOgaPnapry".replace(re18, ""); |
|
" qg".replace(re18, ""); |
|
str77.replace(re68, ""); |
|
str77.replace(re18, ""); |
|
"".replace(re39, ""); |
|
"".replace(/^/, ""); |
|
"".split(re86); |
|
"*".replace(re39, ""); |
|
"*".replace(re68, ""); |
|
"*".replace(re18, ""); |
|
".pybfr".replace(re68, ""); |
|
".pybfr".replace(re18, ""); |
|
"//vzt.jro.qr/vij/FC/tzk_uc/fperra/${inyhr}?gf=${abj}".replace(re87, ""); |
|
"//vzt.jro.qr/vij/FC/tzk_uc/fperra/1024?gf=${abj}".replace(re88, ""); |
|
"//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/${inyhr}?gf=${abj}".replace(re87, ""); |
|
"//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/992/608?gf=${abj}".replace(re88, ""); |
|
"300k120".replace(re30, ""); |
|
"300k250".replace(re30, ""); |
|
"310k120".replace(re30, ""); |
|
"310k170".replace(re30, ""); |
|
"310k250".replace(re30, ""); |
|
"9.0 e115".replace(/^.*\.(.*)\s.*$/, ""); |
|
"Nppbeqvba".replace(re2, ""); |
|
"Nxghryy\n".replace(re89, ""); |
|
"Nxghryy\n".replace(re90, ""); |
|
"Nccyvpngvba".replace(re2, ""); |
|
"Oyvpxchaxg\n".replace(re89, ""); |
|
"Oyvpxchaxg\n".replace(re90, ""); |
|
"Svanamra\n".replace(re89, ""); |
|
"Svanamra\n".replace(re90, ""); |
|
"Tnzrf\n".replace(re89, ""); |
|
"Tnzrf\n".replace(re90, ""); |
|
"Ubebfxbc\n".replace(re89, ""); |
|
"Ubebfxbc\n".replace(re90, ""); |
|
"Xvab\n".replace(re89, ""); |
|
"Xvab\n".replace(re90, ""); |
|
"Zbqhyrf".replace(re2, ""); |
|
"Zhfvx\n".replace(re89, ""); |
|
"Zhfvx\n".replace(re90, ""); |
|
"Anpuevpugra\n".replace(re89, ""); |
|
"Anpuevpugra\n".replace(re90, ""); |
|
"Cuk".replace(re2, ""); |
|
"ErdhrfgSvavfu".split(re70); |
|
"ErdhrfgSvavfu.NWNK.Cuk".split(re70); |
|
"Ebhgr\n".replace(re89, ""); |
|
"Ebhgr\n".replace(re90, ""); |
|
str78.split(re32); |
|
str79.split(re32); |
|
str80.split(re32); |
|
str81.split(re32); |
|
"Fcbeg\n".replace(re89, ""); |
|
"Fcbeg\n".replace(re90, ""); |
|
"GI-Fcbg\n".replace(re89, ""); |
|
"GI-Fcbg\n".replace(re90, ""); |
|
"Gbhe\n".replace(re89, ""); |
|
"Gbhe\n".replace(re90, ""); |
|
"Hagreunyghat\n".replace(re89, ""); |
|
"Hagreunyghat\n".replace(re90, ""); |
|
"Ivqrb\n".replace(re89, ""); |
|
"Ivqrb\n".replace(re90, ""); |
|
"Jrggre\n".replace(re89, ""); |
|
"Jrggre\n".replace(re90, ""); |
|
str82.replace(re68, ""); |
|
str82.replace(re18, ""); |
|
str83.replace(re68, ""); |
|
str83.replace(re18, ""); |
|
str84.replace(re68, ""); |
|
str84.replace(re18, ""); |
|
"nqiFreivprObk".replace(re30, ""); |
|
"nqiFubccvatObk".replace(re30, ""); |
|
"nwnk".replace(re39, ""); |
|
"nxghryy".replace(re40, ""); |
|
"nxghryy".replace(re41, ""); |
|
"nxghryy".replace(re42, ""); |
|
"nxghryy".replace(re43, ""); |
|
"nxghryy".replace(re44, ""); |
|
"nxghryy".replace(re45, ""); |
|
"nxghryy".replace(re46, ""); |
|
"nxghryy".replace(re47, ""); |
|
"nxghryy".replace(re48, ""); |
|
str85.replace(re40, ""); |
|
str85.replace(re41, ""); |
|
str85.replace(re42, ""); |
|
str85.replace(re43, ""); |
|
str85.replace(re44, ""); |
|
str85.replace(re45, ""); |
|
str85.replace(re46, ""); |
|
str85.replace(re47, ""); |
|
str85.replace(re48, ""); |
|
"pngrtbel".replace(re29, ""); |
|
"pngrtbel".replace(re30, ""); |
|
"pybfr".replace(re39, ""); |
|
"qvi".replace(re39, ""); |
|
str86.replace(re68, ""); |
|
str86.replace(re18, ""); |
|
"qg".replace(re39, ""); |
|
"qg".replace(re68, ""); |
|
"qg".replace(re18, ""); |
|
"rzorq".replace(re39, ""); |
|
"rzorq".replace(re68, ""); |
|
"rzorq".replace(re18, ""); |
|
"svryqOga".replace(re39, ""); |
|
"svryqOgaPnapry".replace(re39, ""); |
|
"svz_zlfcnpr_nccf-pnainf,svz_zlfcnpr_havgrq-fgngrf".split(re20); |
|
"svanamra".replace(re40, ""); |
|
"svanamra".replace(re41, ""); |
|
"svanamra".replace(re42, ""); |
|
"svanamra".replace(re43, ""); |
|
"svanamra".replace(re44, ""); |
|
"svanamra".replace(re45, ""); |
|
"svanamra".replace(re46, ""); |
|
"svanamra".replace(re47, ""); |
|
"svanamra".replace(re48, ""); |
|
"sbphf".split(re70); |
|
"sbphf.gno sbphfva.gno".split(re70); |
|
"sbphfva".split(re70); |
|
"sbez".replace(re39, ""); |
|
"sbez.nwnk".replace(re68, ""); |
|
"sbez.nwnk".replace(re18, ""); |
|
"tnzrf".replace(re40, ""); |
|
"tnzrf".replace(re41, ""); |
|
"tnzrf".replace(re42, ""); |
|
"tnzrf".replace(re43, ""); |
|
"tnzrf".replace(re44, ""); |
|
"tnzrf".replace(re45, ""); |
|
"tnzrf".replace(re46, ""); |
|
"tnzrf".replace(re47, ""); |
|
"tnzrf".replace(re48, ""); |
|
"ubzrcntr".replace(re30, ""); |
|
"ubebfxbc".replace(re40, ""); |
|
"ubebfxbc".replace(re41, ""); |
|
"ubebfxbc".replace(re42, ""); |
|
"ubebfxbc".replace(re43, ""); |
|
"ubebfxbc".replace(re44, ""); |
|
"ubebfxbc".replace(re45, ""); |
|
"ubebfxbc".replace(re46, ""); |
|
"ubebfxbc".replace(re47, ""); |
|
"ubebfxbc".replace(re48, ""); |
|
"uc_cebzbobk_ugzy%2Puc_cebzbobk_vzt".replace(re30, ""); |
|
"uc_erpgnatyr".replace(re30, ""); |
|
str87.replace(re33, ""); |
|
str88.replace(re33, ""); |
|
"uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${4}${5}".replace(re71, ""); |
|
"uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${5}".replace(re72, ""); |
|
"uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${4}${5}".replace(re71, ""); |
|
"uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${5}".replace(re72, ""); |
|
"uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${4}${5}".replace(re71, ""); |
|
"uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${5}".replace(re72, ""); |
|
str89.replace(re73, ""); |
|
"uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&{1}&{2}&[NDR]".replace(re69, ""); |
|
str6.replace(re23, ""); |
|
"xvab".replace(re40, ""); |
|
"xvab".replace(re41, ""); |
|
"xvab".replace(re42, ""); |
|
"xvab".replace(re43, ""); |
|
"xvab".replace(re44, ""); |
|
"xvab".replace(re45, ""); |
|
"xvab".replace(re46, ""); |
|
"xvab".replace(re47, ""); |
|
"xvab".replace(re48, ""); |
|
"ybnq".split(re70); |
|
"zrqvnzbqgno lhv-anifrg lhv-anifrg-gbc".replace(re18, ""); |
|
"zrgn".replace(re39, ""); |
|
str90.replace(re68, ""); |
|
str90.replace(re18, ""); |
|
"zbhfrzbir".split(re70); |
|
"zbhfrzbir.gno".split(re70); |
|
str63.replace(/^.*jroxvg\/(\d+(\.\d+)?).*$/, ""); |
|
"zhfvx".replace(re40, ""); |
|
"zhfvx".replace(re41, ""); |
|
"zhfvx".replace(re42, ""); |
|
"zhfvx".replace(re43, ""); |
|
"zhfvx".replace(re44, ""); |
|
"zhfvx".replace(re45, ""); |
|
"zhfvx".replace(re46, ""); |
|
"zhfvx".replace(re47, ""); |
|
"zhfvx".replace(re48, ""); |
|
"zlfcnpr_nccf_pnainf".replace(re52, ""); |
|
str91.replace(re40, ""); |
|
str91.replace(re41, ""); |
|
str91.replace(re42, ""); |
|
str91.replace(re43, ""); |
|
str91.replace(re44, ""); |
|
str91.replace(re45, ""); |
|
str91.replace(re46, ""); |
|
str91.replace(re47, ""); |
|
str91.replace(re48, ""); |
|
"anzr".replace(re39, ""); |
|
str92.replace(/\b\w+\b/g, ""); |
|
"bow-nppbeqvba".replace(re39, ""); |
|
"bowrpg".replace(re39, ""); |
|
"bowrpg".replace(re68, ""); |
|
"bowrpg".replace(re18, ""); |
|
"cnenzf%2Rfglyrf".replace(re29, ""); |
|
"cnenzf%2Rfglyrf".replace(re30, ""); |
|
"cbchc".replace(re30, ""); |
|
"ebhgr".replace(re40, ""); |
|
"ebhgr".replace(re41, ""); |
|
"ebhgr".replace(re42, ""); |
|
"ebhgr".replace(re43, ""); |
|
"ebhgr".replace(re44, ""); |
|
"ebhgr".replace(re45, ""); |
|
"ebhgr".replace(re46, ""); |
|
"ebhgr".replace(re47, ""); |
|
"ebhgr".replace(re48, ""); |
|
"freivprobk_uc".replace(re30, ""); |
|
"fubccvatobk_uc".replace(re30, ""); |
|
"fubhgobk".replace(re39, ""); |
|
"fcbeg".replace(re40, ""); |
|
"fcbeg".replace(re41, ""); |
|
"fcbeg".replace(re42, ""); |
|
"fcbeg".replace(re43, ""); |
|
"fcbeg".replace(re44, ""); |
|
"fcbeg".replace(re45, ""); |
|
"fcbeg".replace(re46, ""); |
|
"fcbeg".replace(re47, ""); |
|
"fcbeg".replace(re48, ""); |
|
"gbhe".replace(re40, ""); |
|
"gbhe".replace(re41, ""); |
|
"gbhe".replace(re42, ""); |
|
"gbhe".replace(re43, ""); |
|
"gbhe".replace(re44, ""); |
|
"gbhe".replace(re45, ""); |
|
"gbhe".replace(re46, ""); |
|
"gbhe".replace(re47, ""); |
|
"gbhe".replace(re48, ""); |
|
"gi-fcbg".replace(re40, ""); |
|
"gi-fcbg".replace(re41, ""); |
|
"gi-fcbg".replace(re42, ""); |
|
"gi-fcbg".replace(re43, ""); |
|
"gi-fcbg".replace(re44, ""); |
|
"gi-fcbg".replace(re45, ""); |
|
"gi-fcbg".replace(re46, ""); |
|
"gi-fcbg".replace(re47, ""); |
|
"gi-fcbg".replace(re48, ""); |
|
"glcr".replace(re39, ""); |
|
"haqrsvarq".replace(/\//g, ""); |
|
str93.replace(re40, ""); |
|
str93.replace(re41, ""); |
|
str93.replace(re42, ""); |
|
str93.replace(re43, ""); |
|
str93.replace(re44, ""); |
|
str93.replace(re45, ""); |
|
str93.replace(re46, ""); |
|
str93.replace(re47, ""); |
|
str93.replace(re48, ""); |
|
"ivqrb".replace(re40, ""); |
|
"ivqrb".replace(re41, ""); |
|
"ivqrb".replace(re42, ""); |
|
"ivqrb".replace(re43, ""); |
|
"ivqrb".replace(re44, ""); |
|
"ivqrb".replace(re45, ""); |
|
"ivqrb".replace(re46, ""); |
|
"ivqrb".replace(re47, ""); |
|
"ivqrb".replace(re48, ""); |
|
"ivfvgf=1".split(re86); |
|
"jrggre".replace(re40, ""); |
|
"jrggre".replace(re41, ""); |
|
"jrggre".replace(re42, ""); |
|
"jrggre".replace(re43, ""); |
|
"jrggre".replace(re44, ""); |
|
"jrggre".replace(re45, ""); |
|
"jrggre".replace(re46, ""); |
|
"jrggre".replace(re47, ""); |
|
"jrggre".replace(re48, ""); |
|
/#[a-z0-9]+$/i.exec("uggc://jjj.fpuhryreim.arg/Qrsnhyg"); |
|
re66.exec("fryrpgrq"); |
|
/(?:^|\s+)lhv-ani(?:\s+|$)/.exec("sff lhv-ani"); |
|
/(?:^|\s+)lhv-anifrg(?:\s+|$)/.exec("zrqvnzbqgno lhv-anifrg"); |
|
/(?:^|\s+)lhv-anifrg-gbc(?:\s+|$)/.exec("zrqvnzbqgno lhv-anifrg"); |
|
re91.exec("GnoThvq"); |
|
re91.exec("thvq"); |
|
/(pbzcngvoyr|jroxvg)/.exec(str63); |
|
/.+(?:ei|vg|en|vr)[\/: ]([\d.]+)/.exec(str63); |
|
re8.exec("144631658.0.10.1231365869"); |
|
re8.exec("144631658.0.10.1231367054"); |
|
re8.exec("144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("144631658.1670816052019209000.1231365869.1231365869.1231365869.1"); |
|
re8.exec("144631658.1796080716621419500.1231367054.1231367054.1231367054.1"); |
|
re8.exec(str94); |
|
re8.exec(str95); |
|
re8.exec(str96); |
|
re8.exec(str97); |
|
re8.exec("__hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1"); |
|
re8.exec("__hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1"); |
|
re8.exec("__hgzo=144631658.0.10.1231365869"); |
|
re8.exec("__hgzo=144631658.0.10.1231367054"); |
|
re8.exec("__hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re8.exec("__hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)"); |
|
re34.exec(str78); |
|
re34.exec(str79); |
|
re34.exec(str81); |
|
re74.exec(str77); |
|
re74.exec("*"); |
|
re74.exec(str82); |
|
re74.exec(str83); |
|
re74.exec(str86); |
|
re74.exec("rzorq"); |
|
re74.exec("sbez.nwnk"); |
|
re74.exec(str90); |
|
re74.exec("bowrpg"); |
|
/\/onfr.wf(\?.+)?$/.exec("/uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf"); |
|
re28.exec("uvag ynfgUvag ynfg"); |
|
re75.exec(""); |
|
re76.exec(""); |
|
re77.exec(""); |
|
re78.exec(""); |
|
re80.exec(str77); |
|
re80.exec("*"); |
|
re80.exec(".pybfr"); |
|
re80.exec(str82); |
|
re80.exec(str83); |
|
re80.exec(str84); |
|
re80.exec(str86); |
|
re80.exec("qg"); |
|
re80.exec("rzorq"); |
|
re80.exec("sbez.nwnk"); |
|
re80.exec(str90); |
|
re80.exec("bowrpg"); |
|
re61.exec("qlaYvo.wf"); |
|
re61.exec("rssrpgYvo.wf"); |
|
re61.exec("uggc://jjj.tzk.arg/qr/?fgnghf=uvajrvf"); |
|
re92.exec(" .pybfr"); |
|
re92.exec(" n.svryqOgaPnapry"); |
|
re92.exec(" qg"); |
|
re92.exec(str48); |
|
re92.exec(".nwnk"); |
|
re92.exec(".svryqOga,n.svryqOgaPnapry"); |
|
re92.exec(".svryqOgaPnapry"); |
|
re92.exec(".bow-nppbeqvba qg"); |
|
re68.exec(str77); |
|
re68.exec("*"); |
|
re68.exec(".pybfr"); |
|
re68.exec(str82); |
|
re68.exec(str83); |
|
re68.exec(str84); |
|
re68.exec(str86); |
|
re68.exec("qg"); |
|
re68.exec("rzorq"); |
|
re68.exec("sbez.nwnk"); |
|
re68.exec(str90); |
|
re68.exec("bowrpg"); |
|
re93.exec(" .pybfr"); |
|
re93.exec(" n.svryqOgaPnapry"); |
|
re93.exec(" qg"); |
|
re93.exec(str48); |
|
re93.exec(".nwnk"); |
|
re93.exec(".svryqOga,n.svryqOgaPnapry"); |
|
re93.exec(".svryqOgaPnapry"); |
|
re93.exec(".bow-nppbeqvba qg"); |
|
re81.exec(str77); |
|
re81.exec("*"); |
|
re81.exec(str48); |
|
re81.exec(".pybfr"); |
|
re81.exec(str82); |
|
re81.exec(str83); |
|
re81.exec(str84); |
|
re81.exec(str86); |
|
re81.exec("qg"); |
|
re81.exec("rzorq"); |
|
re81.exec("sbez.nwnk"); |
|
re81.exec(str90); |
|
re81.exec("bowrpg"); |
|
re94.exec(" .pybfr"); |
|
re94.exec(" n.svryqOgaPnapry"); |
|
re94.exec(" qg"); |
|
re94.exec(str48); |
|
re94.exec(".nwnk"); |
|
re94.exec(".svryqOga,n.svryqOgaPnapry"); |
|
re94.exec(".svryqOgaPnapry"); |
|
re94.exec(".bow-nppbeqvba qg"); |
|
re94.exec("[anzr=nwnkHey]"); |
|
re94.exec(str82); |
|
re31.exec("rf"); |
|
re31.exec("wn"); |
|
re82.exec(str77); |
|
re82.exec("*"); |
|
re82.exec(str48); |
|
re82.exec(".pybfr"); |
|
re82.exec(str82); |
|
re82.exec(str83); |
|
re82.exec(str84); |
|
re82.exec(str86); |
|
re82.exec("qg"); |
|
re82.exec("rzorq"); |
|
re82.exec("sbez.nwnk"); |
|
re82.exec(str90); |
|
re82.exec("bowrpg"); |
|
re83.exec(str98); |
|
re83.exec("shapgvba sbphf() { [angvir pbqr] }"); |
|
re62.exec("#Ybtva"); |
|
re62.exec("#Ybtva_cnffjbeq"); |
|
re62.exec(str77); |
|
re62.exec("#fubhgobkWf"); |
|
re62.exec("#fubhgobkWfReebe"); |
|
re62.exec("#fubhgobkWfFhpprff"); |
|
re62.exec("*"); |
|
re62.exec(str82); |
|
re62.exec(str83); |
|
re62.exec(str86); |
|
re62.exec("rzorq"); |
|
re62.exec("sbez.nwnk"); |
|
re62.exec(str90); |
|
re62.exec("bowrpg"); |
|
re49.exec("pbagrag"); |
|
re24.exec(str6); |
|
/xbadhrebe/.exec(str63); |
|
/znp/.exec("jva32"); |
|
/zbmvyyn/.exec(str63); |
|
/zfvr/.exec(str63); |
|
/ag\s5\.1/.exec(str63); |
|
/bcren/.exec(str63); |
|
/fnsnev/.exec(str63); |
|
/jva/.exec("jva32"); |
|
/jvaqbjf/.exec(str63); |
|
} |
|
} |
|
function run2() { |
|
for (var i2 = 0; i2 < 5; i2++) { |
|
runBlock0(); |
|
runBlock1(); |
|
runBlock2(); |
|
runBlock3(); |
|
runBlock4(); |
|
runBlock5(); |
|
runBlock6(); |
|
runBlock7(); |
|
runBlock8(); |
|
runBlock9(); |
|
runBlock10(); |
|
runBlock11(); |
|
} |
|
} |
|
this.run = run2; |
|
} |
|
|
|
// src/navier-stokes.js |
|
var NavierStokes = new BenchmarkSuite("NavierStokes", 1484e3, [new Benchmark("NavierStokes", runNavierStokes, setupNavierStokes, tearDownNavierStokes)]); |
|
var solver = null; |
|
function runNavierStokes() { |
|
solver.update(); |
|
} |
|
function setupNavierStokes() { |
|
solver = new FluidField(null); |
|
solver.setResolution(128, 128); |
|
solver.setIterations(20); |
|
solver.setDisplayFunction(function() { |
|
}); |
|
solver.setUICallback(prepareFrame); |
|
solver.reset(); |
|
} |
|
function tearDownNavierStokes() { |
|
solver = null; |
|
} |
|
function addPoints(field) { |
|
var n = 64; |
|
for (var i2 = 1; i2 <= n; i2++) { |
|
field.setVelocity(i2, i2, n, n); |
|
field.setDensity(i2, i2, 5); |
|
field.setVelocity(i2, n - i2, -n, -n); |
|
field.setDensity(i2, n - i2, 20); |
|
field.setVelocity(128 - i2, n + i2, -n, -n); |
|
field.setDensity(128 - i2, n + i2, 30); |
|
} |
|
} |
|
var framesTillAddingPoints = 0; |
|
var framesBetweenAddingPoints = 5; |
|
function prepareFrame(field) { |
|
if (framesTillAddingPoints == 0) { |
|
addPoints(field); |
|
framesTillAddingPoints = framesBetweenAddingPoints; |
|
framesBetweenAddingPoints++; |
|
} else { |
|
framesTillAddingPoints--; |
|
} |
|
} |
|
function FluidField(canvas) { |
|
function addFields(x, s, dt2) { |
|
for (var i2 = 0; i2 < size; i2++) |
|
x[i2] += dt2 * s[i2]; |
|
} |
|
function set_bnd(b, x) { |
|
if (b === 1) { |
|
for (var i2 = 1; i2 <= width; i2++) { |
|
x[i2] = x[i2 + rowSize]; |
|
x[i2 + (height + 1) * rowSize] = x[i2 + height * rowSize]; |
|
} |
|
for (var j = 1; i2 <= height; i2++) { |
|
x[j * rowSize] = -x[1 + j * rowSize]; |
|
x[width + 1 + j * rowSize] = -x[width + j * rowSize]; |
|
} |
|
} else if (b === 2) { |
|
for (var i2 = 1; i2 <= width; i2++) { |
|
x[i2] = -x[i2 + rowSize]; |
|
x[i2 + (height + 1) * rowSize] = -x[i2 + height * rowSize]; |
|
} |
|
for (var j = 1; j <= height; j++) { |
|
x[j * rowSize] = x[1 + j * rowSize]; |
|
x[width + 1 + j * rowSize] = x[width + j * rowSize]; |
|
} |
|
} else { |
|
for (var i2 = 1; i2 <= width; i2++) { |
|
x[i2] = x[i2 + rowSize]; |
|
x[i2 + (height + 1) * rowSize] = x[i2 + height * rowSize]; |
|
} |
|
for (var j = 1; j <= height; j++) { |
|
x[j * rowSize] = x[1 + j * rowSize]; |
|
x[width + 1 + j * rowSize] = x[width + j * rowSize]; |
|
} |
|
} |
|
var maxEdge = (height + 1) * rowSize; |
|
x[0] = 0.5 * (x[1] + x[rowSize]); |
|
x[maxEdge] = 0.5 * (x[1 + maxEdge] + x[height * rowSize]); |
|
x[width + 1] = 0.5 * (x[width] + x[width + 1 + rowSize]); |
|
x[width + 1 + maxEdge] = 0.5 * (x[width + maxEdge] + x[width + 1 + height * rowSize]); |
|
} |
|
function lin_solve(b, x, x0, a, c) { |
|
if (a === 0 && c === 1) { |
|
for (var j = 1; j <= height; j++) { |
|
var currentRow = j * rowSize; |
|
++currentRow; |
|
for (var i2 = 0; i2 < width; i2++) { |
|
x[currentRow] = x0[currentRow]; |
|
++currentRow; |
|
} |
|
} |
|
set_bnd(b, x); |
|
} else { |
|
var invC = 1 / c; |
|
for (var k = 0; k < iterations; k++) { |
|
for (var j = 1; j <= height; j++) { |
|
var lastRow = (j - 1) * rowSize; |
|
var currentRow = j * rowSize; |
|
var nextRow = (j + 1) * rowSize; |
|
var lastX = x[currentRow]; |
|
++currentRow; |
|
for (var i2 = 1; i2 <= width; i2++) |
|
lastX = x[currentRow] = (x0[currentRow] + a * (lastX + x[++currentRow] + x[++lastRow] + x[++nextRow])) * invC; |
|
} |
|
set_bnd(b, x); |
|
} |
|
} |
|
} |
|
function diffuse(b, x, x0, dt2) { |
|
var a = 0; |
|
lin_solve(b, x, x0, a, 1 + 4 * a); |
|
} |
|
function lin_solve2(x, x0, y, y0, a, c) { |
|
if (a === 0 && c === 1) { |
|
for (var j = 1; j <= height; j++) { |
|
var currentRow = j * rowSize; |
|
++currentRow; |
|
for (var i2 = 0; i2 < width; i2++) { |
|
x[currentRow] = x0[currentRow]; |
|
y[currentRow] = y0[currentRow]; |
|
++currentRow; |
|
} |
|
} |
|
set_bnd(1, x); |
|
set_bnd(2, y); |
|
} else { |
|
var invC = 1 / c; |
|
for (var k = 0; k < iterations; k++) { |
|
for (var j = 1; j <= height; j++) { |
|
var lastRow = (j - 1) * rowSize; |
|
var currentRow = j * rowSize; |
|
var nextRow = (j + 1) * rowSize; |
|
var lastX = x[currentRow]; |
|
var lastY = y[currentRow]; |
|
++currentRow; |
|
for (var i2 = 1; i2 <= width; i2++) { |
|
lastX = x[currentRow] = (x0[currentRow] + a * (lastX + x[currentRow] + x[lastRow] + x[nextRow])) * invC; |
|
lastY = y[currentRow] = (y0[currentRow] + a * (lastY + y[++currentRow] + y[++lastRow] + y[++nextRow])) * invC; |
|
} |
|
} |
|
set_bnd(1, x); |
|
set_bnd(2, y); |
|
} |
|
} |
|
} |
|
function diffuse2(x, x0, y, y0, dt2) { |
|
var a = 0; |
|
lin_solve2(x, x0, y, y0, a, 1 + 4 * a); |
|
} |
|
function advect(b, d, d0, u2, v2, dt2) { |
|
var Wdt0 = dt2 * width; |
|
var Hdt0 = dt2 * height; |
|
var Wp5 = width + 0.5; |
|
var Hp5 = height + 0.5; |
|
for (var j = 1; j <= height; j++) { |
|
var pos = j * rowSize; |
|
for (var i2 = 1; i2 <= width; i2++) { |
|
var x = i2 - Wdt0 * u2[++pos]; |
|
var y = j - Hdt0 * v2[pos]; |
|
if (x < 0.5) |
|
x = 0.5; |
|
else if (x > Wp5) |
|
x = Wp5; |
|
var i0 = x | 0; |
|
var i1 = i0 + 1; |
|
if (y < 0.5) |
|
y = 0.5; |
|
else if (y > Hp5) |
|
y = Hp5; |
|
var j0 = y | 0; |
|
var j1 = j0 + 1; |
|
var s1 = x - i0; |
|
var s0 = 1 - s1; |
|
var t1 = y - j0; |
|
var t0 = 1 - t1; |
|
var row1 = j0 * rowSize; |
|
var row2 = j1 * rowSize; |
|
d[pos] = s0 * (t0 * d0[i0 + row1] + t1 * d0[i0 + row2]) + s1 * (t0 * d0[i1 + row1] + t1 * d0[i1 + row2]); |
|
} |
|
} |
|
set_bnd(b, d); |
|
} |
|
function project(u2, v2, p, div) { |
|
var h = -0.5 / Math.sqrt(width * height); |
|
for (var j = 1; j <= height; j++) { |
|
var row = j * rowSize; |
|
var previousRow = (j - 1) * rowSize; |
|
var prevValue = row - 1; |
|
var currentRow = row; |
|
var nextValue = row + 1; |
|
var nextRow = (j + 1) * rowSize; |
|
for (var i2 = 1; i2 <= width; i2++) { |
|
div[++currentRow] = h * (u2[++nextValue] - u2[++prevValue] + v2[++nextRow] - v2[++previousRow]); |
|
p[currentRow] = 0; |
|
} |
|
} |
|
set_bnd(0, div); |
|
set_bnd(0, p); |
|
lin_solve(0, p, div, 1, 4); |
|
var wScale = 0.5 * width; |
|
var hScale = 0.5 * height; |
|
for (var j = 1; j <= height; j++) { |
|
var prevPos = j * rowSize - 1; |
|
var currentPos = j * rowSize; |
|
var nextPos = j * rowSize + 1; |
|
var prevRow = (j - 1) * rowSize; |
|
var currentRow = j * rowSize; |
|
var nextRow = (j + 1) * rowSize; |
|
for (var i2 = 1; i2 <= width; i2++) { |
|
u2[++currentPos] -= wScale * (p[++nextPos] - p[++prevPos]); |
|
v2[currentPos] -= hScale * (p[++nextRow] - p[++prevRow]); |
|
} |
|
} |
|
set_bnd(1, u2); |
|
set_bnd(2, v2); |
|
} |
|
function dens_step(x, x0, u2, v2, dt2) { |
|
addFields(x, x0, dt2); |
|
diffuse(0, x0, x, dt2); |
|
advect(0, x, x0, u2, v2, dt2); |
|
} |
|
function vel_step(u2, v2, u0, v0, dt2) { |
|
addFields(u2, u0, dt2); |
|
addFields(v2, v0, dt2); |
|
var temp = u0; |
|
u0 = u2; |
|
u2 = temp; |
|
var temp = v0; |
|
v0 = v2; |
|
v2 = temp; |
|
diffuse2(u2, u0, v2, v0, dt2); |
|
project(u2, v2, u0, v0); |
|
var temp = u0; |
|
u0 = u2; |
|
u2 = temp; |
|
var temp = v0; |
|
v0 = v2; |
|
v2 = temp; |
|
advect(1, u2, u0, u0, v0, dt2); |
|
advect(2, v2, v0, u0, v0, dt2); |
|
project(u2, v2, u0, v0); |
|
} |
|
var uiCallback = function(d, u2, v2) { |
|
}; |
|
function Field(dens2, u2, v2) { |
|
this.setDensity = function(x, y, d) { |
|
dens2[x + 1 + (y + 1) * rowSize] = d; |
|
}; |
|
this.getDensity = function(x, y) { |
|
return dens2[x + 1 + (y + 1) * rowSize]; |
|
}; |
|
this.setVelocity = function(x, y, xv, yv) { |
|
u2[x + 1 + (y + 1) * rowSize] = xv; |
|
v2[x + 1 + (y + 1) * rowSize] = yv; |
|
}; |
|
this.getXVelocity = function(x, y) { |
|
return u2[x + 1 + (y + 1) * rowSize]; |
|
}; |
|
this.getYVelocity = function(x, y) { |
|
return v2[x + 1 + (y + 1) * rowSize]; |
|
}; |
|
this.width = function() { |
|
return width; |
|
}; |
|
this.height = function() { |
|
return height; |
|
}; |
|
} |
|
function queryUI(d, u2, v2) { |
|
for (var i2 = 0; i2 < size; i2++) |
|
u2[i2] = v2[i2] = d[i2] = 0; |
|
uiCallback(new Field(d, u2, v2)); |
|
} |
|
this.update = function() { |
|
queryUI(dens_prev, u_prev, v_prev); |
|
vel_step(u, v, u_prev, v_prev, dt); |
|
dens_step(dens, dens_prev, u, v, dt); |
|
displayFunc(new Field(dens, u, v)); |
|
}; |
|
this.setDisplayFunction = function(func) { |
|
displayFunc = func; |
|
}; |
|
this.iterations = function() { |
|
return iterations; |
|
}; |
|
this.setIterations = function(iters) { |
|
if (iters > 0 && iters <= 100) |
|
iterations = iters; |
|
}; |
|
this.setUICallback = function(callback) { |
|
uiCallback = callback; |
|
}; |
|
var iterations = 10; |
|
var visc = 0.5; |
|
var dt = 0.1; |
|
var dens; |
|
var dens_prev; |
|
var u; |
|
var u_prev; |
|
var v; |
|
var v_prev; |
|
var width; |
|
var height; |
|
var rowSize; |
|
var size; |
|
var displayFunc; |
|
function reset() { |
|
rowSize = width + 2; |
|
size = (width + 2) * (height + 2); |
|
dens = new Array(size); |
|
dens_prev = new Array(size); |
|
u = new Array(size); |
|
u_prev = new Array(size); |
|
v = new Array(size); |
|
v_prev = new Array(size); |
|
for (var i2 = 0; i2 < size; i2++) |
|
dens_prev[i2] = u_prev[i2] = v_prev[i2] = dens[i2] = u[i2] = v[i2] = 0; |
|
} |
|
this.reset = reset; |
|
this.setResolution = function(hRes, wRes) { |
|
var res2 = wRes * hRes; |
|
if (res2 > 0 && res2 < 1e6 && (wRes != width || hRes != height)) { |
|
width = wRes; |
|
height = hRes; |
|
reset(); |
|
return true; |
|
} |
|
return false; |
|
}; |
|
this.setResolution(64, 64); |
|
} |
|
|
|
// src/run.js |
|
var success = true; |
|
function PrintResult(name, result) { |
|
console.log(name + ": " + result); |
|
} |
|
function PrintError(name, error) { |
|
PrintResult(name, error); |
|
success = false; |
|
} |
|
function PrintScore(score) { |
|
if (success) { |
|
console.log("----"); |
|
console.log("Score (version " + BenchmarkSuite.version + "): " + score); |
|
} |
|
} |
|
function run() { |
|
BenchmarkSuite.RunSuites({ |
|
NotifyResult: PrintResult, |
|
NotifyError: PrintError, |
|
NotifyScore: PrintScore |
|
}); |
|
} |
|
|
|
// src/go.js |
|
async function main(event) { |
|
run(); |
|
return new Response("The page you requested could not be found", { |
|
status: 404 |
|
}); |
|
} |
|
|
|
// src/index.js |
|
if (typeof addEventListener === 'function') { |
|
addEventListener("fetch", (event) => event.respondWith(main(event))); |
|
} |