Skip to content

Instantly share code, notes, and snippets.

@Ephellon
Last active September 16, 2017 00:48
Show Gist options
  • Save Ephellon/e5e0a74c0dbd971a9375ac24edfef2f3 to your computer and use it in GitHub Desktop.
Save Ephellon/e5e0a74c0dbd971a9375ac24edfef2f3 to your computer and use it in GitHub Desktop.
Paramour Mini

Paramour Crash Course

This document is for help on how to edit Paramour's source code, if you want to know about Paramour versions and proposals, see this post.

For documentation and examples, see Paramour.

If you want to modify Paramour, or completely build a new language, here are some things to note:

Some methods are structured below as Type name, Return-Type .name, Return-Type (Type name), or Type name:Return-Type.

Paramour Variables:

  • String input - the original input given to Paramour; often redeclared inside of some functions
  • String backup - a backup copy of input
  • Array expressions - all of the patterns used to modify input, dynamically updated
  • RegExp errors - errors to remove
  • RegExp reserved - reserved words and symbols
  • Array operators - a list of all non-alphanumeric operators
  • Object operator_names - a list of each non-alphanumeric operator and a respecting name, {"operator-symbol": "operator-name"}
  • Boolean tabs - a boolean that replaces tabs/spaces after Paramour has completed
  • Boolean JavaScriptManagerError - an attempt to detect if Paramour is being run via Java; true if Paramour thinks it's in a Java environment, false otherwise
  • Function self - the expression handler once its pattern has been executed by Paramour's "brain" compile

example (inside of the compile function)

// example of "variable_name.number" which is an error

// when using [RegExp -> Function]
  // arguments are given as (matched_substring[, RegExp.$1[, ...[, RegExp.$99]]], index_of_matched_substring, RegExp.$_)
"(\\j)\\.(\\d+)": function($0, $1, $2, $$, $_) {
  console.error("@Paramour Error: /" + self.name + "/ -> [" + $0 "]");
    // "@Paramour Error: /([a-zA-Z\$_][\w\$]*)\.(\d+)/ -> [abc.123]"
    // [self] refers to the current function being executed
    // the function's name is changed from "anonymous" to "([a-zA-Z\$_][\w\$]*)\.(\d+)"
  return "// @Paramour Error: " + $_;
}

Paramour's lists and "medulla" (these are free to change, delete or otherwise add onto)

  • Array SU - all strict user comments
  • Array ML - all multiline comments
  • Array SL - all single line comments
  • Array RX - all Regular Expressions
  • Array DQ - all double quoted strings
  • Array SQ - all single quoted strings
  • Array QI - all grave quoted quasi strings
  • Array Sq - all triple, single-quotation quasi strings
  • Array Dq - all triple, double-quotation quasi strings
  • Array Tq - all triple, grave quoted quasi strings
  • Array Rq - all triple, quasi RegExps
  • Array PR - all parenthesis expressions
  • Array BK - all bracket expressions
  • Array BE - all curly brace expressions
  • Array TP - all tuple expressions, dot-curly brace .{}
  • Array EM - all emulation expressions, commented @version
  • Array PN - all phantom expressions, commented $variable -> figurative_value, or commented $variable => literal_value
  • Array DS - all of the docstrings
  • Array IG - temporary spot for ignored expressions
  • Array ST - temporary spot for ignored strings
  • Array VC - all version control comments
  • Object patterns - a list of each expression to look for, with a RegExp to use as the value; the name must macth an array name, example {"EM": /#\s*@([\d\.]+)/}
  • Object runtime - a list that detects/modifies the currently running JavaScript version
    • Boolean .is (String|Number version)

      returns whether or not the current JavaScript version is version

    • Boolean .has (String|Number version)

      returns whether or not the current JavaScript version is in the array of supported versions

    • Array .emulate (String|Number version)

      emulates a different runtime; but adds an asterik to the emulation number, example "1.8.*"

    • String .original - the actual JavaScript version

    • String .emu - the emulated version

    • Boolean .manned - true if Paramour is being run via a JavaScript Manager

    • Boolean .unmanned - !runtime.manned

  • Object .SnapShot - an array of snapshots (semi-compiled code) captured by Paramour
    • Array [Date] - a string of the semi-compiled input
  • Array .SEA - a list of SEAs (Self Evaluation Articles)

Other Paramour goodies

Object navigator

the original "navigator" object, with some modifications

  • Object .runtime - runtime
  • Boolean .paramour - true

Undefined Paramour.compile(Boolean run)

tell Paramour to load and compile external/html-tag scripts

  • Boolean run - eval the scripts or not

String Parmour.run(String code, Object options)

simply run Paramour, without executing the returning string

  • String code - the code to compile (Parmour syntax)
  • Object options - the compiling options to use (over-written by in-script options)

String Parmour.eval(String code, Object options)

run Paramour, and execute the returning string

  • String code - the code to compile (Parmour syntax)
  • Object options - the compiling options to use (over-written by in-script options)

Null Paramour.load(String url, Function callback, Object options, Boolean hold)

  • String url - the URL of the file to load
  • Function callback - the function to call once the script is loaded
  • Object options - options to use (unused)
  • Boolean hold - stall (true) or allow (false) Paramour from compiling the loaded script

Paramour

Here's a list of methods/properties that may be useful

  • String type can be "class", "native", or "sub"

  • Object .Push (String type, String function-name, String arguments[, String variation]) - a list of functions that Paramour will format as variation: {function-name: arguments}

  • Array .Pull (String type, String function-name[, String variation]) - returns the array of arguments from Paramour[type]

  • String .types (* item...) - returns a comma seperated list of function names/constructors/object types

  • Array .DOCSTR - a list of all docstrings


.prototype methods

These are usually handled natively by JavaScript, unless inside of a JavaScript Manager.

String.prototype.repeat (Number times)

repeats the string times many times

"abc".repeat(3)
// returns: "abcabcabc"

String.prototype.setDocString (Object object)

attempts to attach the string to object

"Creates a prompt bubble to get user input".setDocString(window.prompt);

String.prototype.SI (Number leaps, Boolean mode)

returns the length of the string as an SI unit: kilo, mega, giga, tera, peta, exa, zeta, or yotta

Note: for mode false (base-2) a "b" is automatically added to the unit's tail

  • Number leaps - the number of untis to suppress/skip from [0, 9]
  • Boolean mode - use the base-2 (1024), or base-10 (1000) counting mode; false and true respectively
var kilo = ".".repeat(1024),
    kilo_2 = ".".repeat(2048),
    log = console.log;

log(kilo.SI());
  // "1Kb"
log(kilo_2.SI());
  // "2Kb"
log(kilo_2.SI(1));
  // "2440"
log(kilo_2.SI(0, true));
  // "2.44K"

String.prototype.toTable (String delimeter)

prints the string as a table (such as the SEA)

  • String delimeter - the character(s) to split the string by; defaults to "|"
// note - the content must be less than 12 characters in length, otherwise an ellipsis is added
// example
  "abc,def,abcdefghijklmnopqrstuvwxyz".toTable(",")
    // returns "abc         | def         | abcdefghi..."

Array.prototype.toTable

prints the array as a table (such as the SEA)

// note - the content must be less than 12 characters in length, otherwise an ellipsis is added
// example
  ['abc', 'def', 'abcdefghijklmnopqrstuvwxyz'].toTable()
    // returns "abc         | def         | abcdefghi..."

Array.prototype.indexOfRegExp (RegExp pattern)

returns the index of the first item that matches the pattern, -1 if not found

  • RegExp pattern - the pattern to look for
['apple', 'taco', 'dew', 'money', 'gas', 'random'].indexOfRegExp(/^(\w{3})$/)
// returns 2, for 'dew'

Array.prototype.lastIndexOfRegExp (RegExp pattern)

returns the last index of the first item that matches the pattern, -1 if not found

  • RegExp pattern - the pattern to look for
['apple', 'taco', 'dew', 'money', 'gas', 'random'].lastIndexOfRegExp(/^(\w{3})$/)
// returns 4, for 'gas'

Number.prototype.toTime

returns the given number as an SI unit of time starting at milliseconds; milliseconds, seconds, minutes, hours, days, or years

1234..toTime()
// returns 1.234 sec

Paramour Functions and Classes:

Object Tuple (* item...)

returns a Tuple object with the following properties

  • Function constructor - Tuple, can also be obtained via Tuple.from(* items...)
  • Boolean every(Function callback[, Object _this_]) - see Array.prototype.every
  • Object forEach(Function callback[, Object _this_]) - see Array.prototype.forEach
  • Number indexOf(* item[, Number start]) - see Array.prototype.indexOf
  • String join(String delimeter) - see Array.prototype.join
  • Number lastIndexOf(* item[, Number start]) - see Array.prototype.lastIndexOf
  • Object next(Number places) - traverses (moves forward) the Tuple's index by places many places; defaults to 1; can also be invoked via the Tuple.next getter, but only for the latest Tuple

Object NewLine (String characters)

returns a NewLine object, which represents the newline sequence given in characters

  • Supports \n, \r, and \f in the sequence (\n, \r, \r\n, etc.)
  • Also exposes the .esc and .unesc properties; and the .toRegExp([Boolean capture[, String flags]]) and .toString([Boolean escape]) methods

Undefined Operator (String operator, String type, String fix, String function, String brace)

returns undefined, but modifies Operator.kids

  • String operator - the symbol(s) that are going to be used
  • String type - how many there are, i.e. == -> double equals
  • String fix - the root of the operator: prefix-, media-, or suffix-
  • String function - the function to call on, i.e. =>(a == b) -> Double_Equals_Operator
  • String brace - the brace expression that will be used

String shock (String input[, Boolean unescape])

returns a reformatted string (converts escaped characters into "ignored sequences")

  • String input - the input to convert
  • Boolean unescape - if true, will return just the character, otherwise will return a backslash and the character; default is false

String unshock (String input)

returns a reformatted string (converts "ignored sequences" into escaped characters)

  • String input - the input to convert

String argify (String|Array arguments[, String|Array types[, Boolean spaces]])

returns a formatted list of variable names

  • arguments - the arguments to "argify" (turn into a comprehensive string)
  • types - the types to use (when naming the function)
  • spaces - add spaces after the comma true, e.g. "var a,$1 b,$1 c;"; or leave as one line "var a, b, c;"

Note: $1 in the returned string are for the handling function to replace with newline sequences, or other sequences if needed

// in runtime 1.8.5

argify("String name = 5")
// returns: name = 5
// in runtime 1.5

argify("name = 'John'", ["String"])
// returns: name = (arguments[0] != undefined? arguments[0]: 'John')

String fold (String input, String|Array type)

compressess input using type in expressions

  • input - the input to compress (using the expressions, e.g. "SL", or "TP")
  • type - a list of types to specifically compress (all others are ignored)
fold("a = ['abc', 123]")
// returns: "a = BK.0"

String handle (String input, Number index)

decompressess input using Paramour's "medulla" along with it's own "medulla"

  • input - the input to semi-compile, e.g. handling ML adds /* and */
  • index - the input's index in the expression's array (ML, TP, BE, etc.)
handle("a = BK.0", "BK")
// "BK" means handle "BK" patterns only (square-brackets)
// returns: "a = [SQ.0, 123]" or whatever the value is

String handle_operators (String input[, String root])

returns a formatted operator-string

  • input - the operators to convert into a function name
  • root - the root to use, prefix-, media-, or suffix-; default is media-
handle_operators("||", "prefix-")
// returns: "Double_Or_Prefix_Operator_"

String unfold (String input, String|Array expressions, Boolean|Number all)

searches for and replaces expressions using handle

  • String expressions - comma, space, or pipe seperated list
  • Array expressions - a list of expressions, i.e. ["BK", "RX", "TP"]
  • Boolean all - if true, "unfold" replaces all "expressions", otherwise just the first
  • Number all - "unfold" replaces that many "expressions"

String compile (String input, Number pattern-index)

the "brain" or "medulla" of Paramour

  • var patterns - a list of patterns and how to handle them, given as {String pattern: Function expression_handler}
  • var _patterns_ - a list of patterns and how to handle them, given as {String pattern: Function expression_handler} (always handled after patterns) usually for expressions that need to be handled later on

available shorthands for pattern

\\#++ - "repeat a sequence" (where # = [0-9abcdefjklnqrstuvxABDEJKLNQS])

\\a - "alpha characters" /[a-zA-Z]/

\\A - "non-alpha characters" /[^a-zA-Z]/

\\j - "JavaScript compliant name" /[a-zA-Z\$_][\w\$]*/

\\J - "non-JavaScript compliant name" /[^a-zA-Z\$_][\w\$]*/

\\e - "alpha/greek characters" /[a-z\u03b1-\u03c9_A-Z\u0391-\u03a9]/

\\E - "non-alpha/greek characters" /[^a-z\u03b1-\u03c9_A-Z\u0391-\u03a9]/

\\l - "legal characters" /[@\w\$\.]/

\\L - "illegal characters" /[^@\w\$\.]/

\\k[...] - "to lowercase"

\\K[...] - "to uppercase"

\\N - "number" /\-?(?:[\d\.]+(?:\-?e\-?[\d\.]+)?|0(?:b[01]+|o[0-7]+|x[0-9a-f]+))/

\\q\b - "space independent, terminating character" (\b is a backspace) /[,;$\{\}\(\)\[\]]/

\\Q\b - "space independent, non-terminating character" (\b is a backspace) /[^,;\{\}\(\)\[\]]/

\\q - "terminating character" /[\n\r,;$\{\}\(\)\[\]]/

\\Q - "non-terminating character" /[^\n\r,;\{\}\(\)\[\]]/

example of "functions"

var patterns = {
  // function function_name(...) {...}
  // OR
  // function_name(...) {...}
  "(?:\\bfunction\\s+)?(\\j)\\s*(PR\\.\\d+)\\s*(BE\\.\\d+)": function($0, $1, $2, $3, $$, $_) {
    return "function " + $1 + unfold($2) + unfold($3, "BE");
  }
}

Object JSUNIT

Unit testing, below are porperties/methods of the JSUNIT object

Boolean toconsole

controls the <stdout>

  • true - logs to the console
  • false - logs to the html element #jsunit-stdout

Number count

the current test that is running

assert(expected, received)

log that you wanted "received"

  • received - the received value
  • expected - the expected value

assertTrue(received[, comment])

log that you wanted true

  • received - the received value
  • comment - an optional comment about the error

assertFalse(received[, comment])

log that you wanted false

  • received - the recieved value
  • comment - an optional comment about the error

assertEquals(expected, received[, comment])

log that you wanted expected

  • received - the received value
  • expected - the expected value
  • comment - an optional comment about the error

assertNotEquals(expected, received[, comment])

log that you did not want expected

  • received - the received value
  • expected - the expected value
  • comment - an optional comment about the error

assertNull(received[, comment])

log that you wanted null

  • received - the received value
  • comment - an optional comment about the error

assertNotNull(received[, comment])

log that you did not want null

  • received - the recieved value
  • comment - an optional comment about the error

assertUndefined(received[, comment])

log that you wanted undefined

  • received - the received value
  • comment - an optional comment about the error

assertNotUndefined(received[, comment])

log that you did not want undefined

  • received - the recieved value
  • comment - an optional comment about the error

assertNaN(received[, comment])

log that you wanted NaN

  • received - the received value
  • comment - an optional comment about the error

assertNotNaN(received[, comment])

log that you did not want NaN

  • received - the recieved value
  • comment - an optional comment about the error

assertFail([comment])

log a fail

  • comment - an optional comment about the error

out(error)

log an error

  • error - the error to log

log(message)

log a message

  • message - the message to log

stdout(message)

log a message to the <stdout>

  • message - the message to log

stderr(error)

log an error to the <stdout>

  • error - the error to log

stdin(query, default)

get user input via <stdin>

  • query - the query to ask the user
  • default - the default value

And after months of developing:

  • functions - stable
  • spreads - stable
  • classes - stable
  • tuples - stable
  • variables - stable
  • custom operators - stable
  • yields - theoretical stage

Errors?

@prefix vs. @suffix operators

explanation

  # Each operator can only be used once as either prefix, media, or suffix
  [String?] =>
    $1.indexOf "&" > -1;

  [?String] =>
    $1.indexOf "&" == -1;

  => ("apples & bananas")?
    # returns true
  => ?("apples & bananas")
    # returns true, defaults to ?-suffix
### Paramour 28.0.0
author: Ephellon Dantzler
date: Fri Aug 5, 2016
time: 21:00 CST -06:00
license: "MIT"
###
# Version Emulation
# @1.5
# Phantoms (like "$1, \2, etc." in RegExp)
# $con -> console
# $win => window
# Tuples & MVSV Declaration (Multiple Variables, Same Value)
var(obj1, obj2, obj3) = {
property: "value"
"prop": "val"
};
var(catcher, value_1) = .{
"abc"
123
/def/g
[1..10]
{property: () -> "value to return"}
};
var(value_2, value_3) = Tuple.next;
### Results:
catcher - the Tuple itself
value_1 - "abc"
value_2 - 123
value_3 - /def/g
###
var value_4 = catcher.next();
# value_4 - [123, 456, 789]
# RegExps & Quasis
phoneNo(String number):Boolean ->
///
^\(?(\d{3})\)? # area code, ignore optional parens
[-\s]?(\d{3}) # prefix, ignore optional dash or space
-?(\d{4}) # line-number, ignore optional dash
///.test number;
# Functions & DocStrings
/** (String message, String details..., Number error)
* logs a message and it's details
* @param {String} message The message to log
* @param {Spread of Strings} details The arguments that are considered extra "string" details
* @param {Number} error The error number
*/
log(String message, String details..., Number error) =>
console.log(message, details, error);
/** (String message, details...)
* logs a message and it's details
* @param {String} message The message to log
* @param {Spread} details The arguments that are considered extra details
*/
log(String message, details...) =>
$con.log message;
/** (String message)
* logs a message
* @param {String} message The message to log
*/
log(String message) {
var begin = message[0];
switch(begin) {
case("a", "e", "i", "o", "u") {
$con.log "The message begins with a vowel: ${message}"
}
case[0..9]
$con.log "The message begins with a number: ${message}";
default(".", "!", "?") {
$con.log "The message either begins with puncutation, or a consonant: ${message}"
}
}
}
# Classes
Employee {
init::(data = {}) {
for(var entry in data)
@[entry] = data[entry];
}
.call() {
if(defined(@number) && phoneNo(@number))
alert "Calling ${@name}, ${@number}";
}
.pull(entry) {
-> @[entry]
}
.push(data) {
for(var entry in data)
@[entry] = data[entry];
}
.remove(entry):Boolean -> {
-> @[entry] = undefined,
undefined (@[entry])
}
}
Employee Manager {
init::(data = {}) {
for(var entry in data)
@[entry] = data[entry];
@role = "Manager"
}
.remove(entries...) {
for(var x = 0; x < entries.length; x++)
super entries[x];
}
}
var Bob = *Employee({
name: "Bob Dylan"
age: 41
role: "Cashier"
});
### Custom Operators
These behave as a sort-of "get" for operators
custom operators can take up to 4 spaces
! up to ====, for a grand total of 50,611 (15^4 - 7) possible operators
! ~ * / % + - < > & ^ | ? : =
###
[Number ^ Number]:Number =>
Math.pow($1, $2);
[Number = Number]:boolean =>
$1 === $2;
[Boolean?]:Boolean_Error -> {
if($1)
-> $1;
else
+> SyntaxError "? Operator was given 'false'";
}
[!Any] =>
undefined $1;
# also accepts `name => ()`
if(
=> (((2^2) = 4)?)
)
$con.log "Why, hello";
:: Ephellon Dantzler - Paramour Java Compiler 2016
@ECHO off
@SET next=a
:mas
@IF [%1]==[] GOTO media
:1
@java -jar paramour.jar %1
@SHIFT
@GOTO mas
:media
@CHOICE /M "Would you like to compile %next% Paramour file?"
@SET next=another
@GOTO %ERRORLEVEL%
:2
@EXIT
package paramour;
import java.io.*;
import java.util.Scanner;
import javax.script.*;
public class Paramour {
private static Scanner input = new Scanner(System.in);
private static String JAVA_STRING = "";
private static String Paramour = "\n\n";
private static Scanner ParamourJS;
private static File from;
// Obtain a ScriptEngine that supports the JavaScript short name
public static ScriptEngineManager manager = new ScriptEngineManager();
public static ScriptEngine engine = manager.getEngineByName("JavaScript");
public static void main(String[] args) throws ScriptException, FileNotFoundException, NoSuchMethodException {
ParamourJS = new Scanner(new File("Paramour.js"));
for (; ParamourJS.hasNextLine();) {
Paramour += ParamourJS.nextLine() + '\n';
}
ParamourJS.close();
// if a list was given, parse it
if (args.length > 0) {
for (String arg : args) {
eval(from = new File(arg));
}
} // if a list wasn't given, ask for a file
else {
System.out.println("Enter your file directory/name: ");
from = new File(input.nextLine());
eval(from);
}
// done
System.out.println("Paramour has compiled the files");
}
private static String eval(File from) throws ScriptException, FileNotFoundException, NoSuchMethodException {
Scanner medium = new Scanner(from);
String to = from.getAbsolutePath().replace(".par", ".par.js");
PrintStream out = new PrintStream(new FileOutputStream(to));
for (; medium.hasNextLine();) {
JAVA_STRING += '"' + medium.nextLine().replace("\\", "\\\\").replace("\"", "\\\"") + "\\n\" + \n";
}
JAVA_STRING += "\"\"";
// Redirect the engine's standard output to a StringWriter instance
StringWriter writer = new StringWriter();
PrintWriter printer = new PrintWriter(writer, true);
engine.getContext().setWriter(printer);
// Evaluate the script
System.out.println("Compiling: " + from.getAbsolutePath() + "\n");
engine.eval(Paramour);
engine.eval("var print, println, JAVA_STRING = Paramour(" + JAVA_STRING + ", {deps: true, mini: false, strict: false, embed: false}); if(print) print(JAVA_STRING); else if(println) println(JAVA_STRING); else JAVA_STRING;");
// Obtain the string buffer's contents
out.print(writer.getBuffer().toString());
out.close();
medium.close();
return to;
}
}
// Paramour 31.4.1 "Oxygen" - Ephellon Dantzler 2016
// Adapted sections by "CoffeeScript"
// Unminified: //codepen.io/ephellon/pen/XKPVgw
/* Uglify Options: //skalman.github.io/UglifyJS-online/
// Documentation of the options is available at https://github.com/mishoo/UglifyJS2
{
parse: {
bare_returns : !1,
expression : !1,
filename : null,
html5_comments : !0,
shebang : !0,
strict : !1,
toplevel : null
},
compress: {
booleans : !0,
cascade : !0,
collapse_vars : !0,
comparisons : !0,
conditionals : !1,
dead_code : !0,
drop_console : !0,
drop_debugger : !0,
evaluate : !0,
expression : !1,
global_defs : {},
hoist_funs : !1,
hoist_vars : !1,
ie8 : !1,
if_return : !0,
inline : !0,
join_vars : !0,
keep_fargs : !0,
keep_fnames : !1,
keep_infinity : !1,
loops : !0,
negate_iife : !0,
passes : 1,
properties : !0,
pure_getters : !1,
pure_funcs : null,
reduce_vars : !0,
sequences : !1,
side_effects : !0,
switches : !0,
top_retain : null,
typeofs : !0,
unsafe : !1,
unsafe_comps : !0,
unsafe_Func : !1,
unsafe_math : !1,
unsafe_proto : !1,
unsafe_regexp : !1,
unused : !0,
warnings : !0
},
output: {
ascii_only : !1,
beautify : !1,
bracketize : !1,
ie8 : !1,
indent_level : 2,
indent_start : 0,
inline_script : !0,
keep_quoted_props: !1,
max_line_len : 32000,
preamble : null,
preserve_line : !1,
quote_keys : !1,
quote_style : 0,
semicolons : !0,
shebang : !0,
source_map : null,
webkit : !1,
width : 80,
wrap_iife : !1,
comments : /@license|@preserve|^[!\*]/
}
}
*/
var Global,window=Global=void 0==window||null==window?{}:Global||window,navigator=navigator||{},JSUNIT,Symbol,Tuple,NewLine,Types,Paramour=Global.Paramour=function Paramour(input,options){function Throw(e,t,r){throw e.stack=e.stack.replace(/(\n\r?|\r\n?)[\s\S]*$/,"$1\tat [Paramour]: "+t),e.message=r,e}function handle_typefn(e,t,r,n,a,s){var o,i=RegExp,l=n!=o?i("(static\\?=|\\*[\\b\\s]*)?([sp])ocket\\?="+n+":"+r):/$/;t+="TypeFN",e=e.replace(l,a+"\\type-fn() {\t var index = 0, args = arguments, types = Types.apply(null, arguments).split(','), check = Types.check, oftype = Types.oftype;\t switch(types + '') {\t"+s);for(var p=/\s*([@a-zA-Z_\$][\w\$]*)\.apply\b/,u=0,c=[],f=d=Paramour[t],d=n!=o?f[n][r]:f[r];u<d.length;u++){var g=0;for(c.push([]);g<d[u].length;g++)p.test(d[u][g])?(c[u].push("Spread$"+i.$1),g++):c[u].push(d[u][g])}var b,_=(b=void 0!=i.$1&&""!=i.$1)?".":".prototype.",h="p"==i.$2?n+_+r+" = function\b "+(r||""):r||"";b=b&&runtime.has("1.6")?"static ":"",s=""!=s?s:/$/;for(var $=0,m=((d=n!=o?f[n]:f)[r]=c).sort().reverse();$<m.length;$++)e=e.replace(s,build(t,n,r,$,s,_));return(e=e.replace(s," default:\t throw TypeError('"+r+"(' + types + ') is undefined');\t break;\t }\t};\t")).replace(/\\type-fn/,n!=o?h:r||"__").replace(/\\statics/,b).replace(/\t/g,newline)}function build(e,t,r,n,a,s){var o,i,l=function(e){i=e.join("_").replace(/\s+/g,"").replace(/\*/g,"Any").replace(/\.{3}/g,"Spread");for(var t,r,n,a,s,o=0,l=[];o<e.length;o++)e[o]=e[o].replace(/\bundefined\b/g,"?").replace(/\bAny\b/g,"*").replace(/\bSpread\b(?:\$([@a-zA-Z_\$][\w\$]*))?/g,"$1..."),s=RegExp.$1||"",t=!(e.length>o+1),e[o]==s+"...",r=e.indexOf(s+"..."),n=e.lastIndexOf(s+"..."),a=n==o,n=n==r,r=r>-1&&r<o,l.push(e[o].replace(/\*/,function(e){return"' + types[index++] + '"}).replace(/([@a-z_\$][\w\d]*)\.{3}/i,function(s,i){return"' + "+(n?t?"oftype('"+i+"', types.slice(index, index = args.length))":"oftype('"+i+"', types.slice(index, index = args.length"+(t?"":" - "+(e.length-(o+1)))+"))":r?t?"oftype('"+i+"', types.slice(index, index = args.length))":a?"oftype('"+i+"', types.slice(index, index = args.length - "+(e.length-(o+1))+"))":"oftype('"+i+"', types[index++])":"oftype('"+i+"', types[index = "+o+"])")+" + '"}).replace(/\.{3}/,function(s){return"' + "+(n?t?"types.slice(index, index = args.length)":"types.slice(index, index = args.length"+(t?"":" - "+(e.length-(o+1)))+")":r?t?"types.slice(index, index = args.length)":a?"types.slice(index, index = args.length - "+(e.length-(o+1))+")":"types[index++]":"types[index = "+o+"]")+" + '"}));return l}((t!=o?Pull(e,t,r):Pull(e,r))[n]);return" case ("+("'"+(l=l.join(";").replace(/\s*;\s*/g,";").split(";").join(",").replace(/^\s*|\s*$/g,""))+"'").replace(/^''\s*\+\s*|\s*\+\s*''$/g,"")+" + ''):\t return "+(t!=o?t+s+r:r).replace(/\*/,"")+"__"+i+".apply(null, args);\t break;\t"+("string"==typeof a?a:"")}function argify(e,t,r){function n(t){return e.length-(t+1)>0?" - "+(e.length-(t+1)):""}function a(e,t){var r="[].slice.call(arguments).slice",a=o,u=s,c=i,d=l,g=p;return t=t||"undefined",a?u?c?e+" = "+r+"("+f+", arguments.length)":e+" = "+r+"(arity++, arguments.length)":c?e+" = "+r+"("+f+", arity = arguments.length"+n(f)+")":e+" = "+r+"(arity, arity = arguments.length"+n(f)+")":g?d?e+" = (arguments[arity++] != undefined? arguments[arity - 1]: "+t+")":e+" = (arguments["+f+"] != undefined? arguments["+f+"]: "+t+")":d?e+" = arguments[arity++]":e+" = arguments["+f+"]"}if(void 0==t){t=[],e=e.split(",");for(o=0;o<e.length;o++)void 0==(i=e[o].replace(/^\s*([@\.a-z\$_][\w\$]*)\s*$/gi,"* $1").replace(/([@a-z\$_][\w\$]*)(\*|\.{3})/g,"$2 $1").replace(/(\*|\.{3})(\s*[@a-z\$_][\w\$]*)/g,"$1 $2").split(/\s+/))[1]?(t.push("*"),e[o]=i[0]):(t.push(i[0]),e[o]=i[1])}t=t.join(",").replace(/\*/g,"Any").replace(/\.{3}/g,"Spread").replace(/\s/g,"").split(","),"string"==typeof e&&(e=e.split(/\s*,\s*/));for(var s,o,i,l,p,u,c,f=0,d=[];f<e.length;f++)s=f==e.length-1,o=(p=/^Spread(\$[a-zA-Z\$_][\w\$]*)?/).test(t[f]),"Spread"+(RegExp.$1||""),i=t.indexOfRegExp(p),l=t.lastIndexOfRegExp(p),c=i>-1&&i==l,l=i>-1&&f>i,i=c,p=/\s*\=\s*([^\=].*)/.test(e[f]),u="\\b(abstract|boolean|break|byte|ca(?:se|tch)|char|class|con(?:st|tinue)|de(?:bugger|fault|lete)|do(?:uble)?|else|enum|eval|ex(?:port|tends)|false|final(?:ly)?|float|for|function|goto|i[fn]|imp(?:lements|ort)|int(?:erface)?|long|native|new|null|package|pr(?:ivate|otected)|public|return|short|static|super|switch|synchronized|this|throws?|tr(?:ansient|ue|y)|(?:instance|type)?of|(?:un)?defined|var|vo(?:id|latile)|while|with|yield|[gsl]et|self)\\b",d.push(undol(e[f].replace(/\$/g,"$$").replace(/\bthis\b/,"$$"+(f+1)).replace(RegExp("^\\s*\\."+u+"\\s*(?:\\=\\s*([^\\=].*))?$"),function(e,t,r){return a("__"+t+'__ = @["'+t+'"]',r)}).replace(/^\s*\.([@a-z\$_][\w\$]*)\s*(?:\=\s*([^\=].*))?$/i,function(e,t,r){return a(t+" = @"+t,r)}).replace(RegExp("^\\s*"+u+"\\s*(?:\\=\\s*([^\\=].*))?$"),function(e,t,r){return a("__"+t+"__",r)}).replace(/^\s*([@a-z\$_][\w\$]*)\s*(?:\=\s*([^\=].*))?$/i,function(e,t,r){return a(t,r)}).replace(/\.slice\(0,\s*arguments\.length\)/g,"").replace(/@([a-z\$_][\w\$]*)/gi,"this.$1").replace(/@/g,"this").replace(/,/g,"\b0X2c\b")));return d.join(r?", ":",$1 ")}function ignore(e){return"\b\bIG."+(IG.push(e)-1)+"\b\b"}function fold(e,t,r){void 0==t||null==t?t=global_expressions:"string"==typeof t&&(t=t.split(/\s|,/)),void 0!=r&&null!=r||(r=void 0==__patterns__[t]?patterns:__patterns__);for(var n in r)if(RegExp(t.join("|")).test(n))for(var a,s,o,i,l,p,u=r[n];a=/([MS]L|EM|PN|DS|SU)/.test(n)?"\b\b":"",u.constructor==RegExp?u.test(e):u=RegExp((u+"").replace(/\\/g,"\\")).test(e);)l=RegExp.$1,i=""==(p=RegExp.$2||""),o=n.replace(/!/,""),s=native_types[o].push(undol(i?l:p).replace(/(\s+)/g,"\b\b"==a?"\b$1":"$1"))-1,e=e.replace(u,(i?"":l)+a+o+"."+s+a);return e}function shock(e,t){for(var r=/\\([^\d_'&`+])/;r.test(e);)e=e.replace(r,function(e,r){return"\b0"+(t&&!/\d/.test(r)?"X":"x")+r.charCodeAt(0).toString(16)+"\b"});return e}function unshock(e){for(var t=/[\b]0x([0-9a-f]{1,2})[\b]/;t.test(e);)e=e.replace(t,"\\"+String.fromCharCode(+("0x"+RegExp.$1)));for(t=/[\b]0X([0-9a-f]{1,2})[\b]/;t.test(e);)e=e.replace(t,String.fromCharCode(+("0x"+RegExp.$1)));for(t=/[\b](.+?)[\b]/;t.test(e);)e=e.replace(t,"$1");return e}function undol(e,t){return e.replace(/([^\w\$])\$([_'&`+]|[1-9]\d?)/g,"$1$$"+(t?"$$":"")+"$2")}function randle(regexp,in_context){regexp=regexp.replace(/(\\.|[^\\]\[.*?[^\\]\]|[^\\]\(.*?[^\\]\))\+\+/g,"$1$1+").replace(/\\a/g,"[a-zA-Z]").replace(/\\A/g,"[^a-zA-Z]").replace(/\\k\\j/g,in_context?"[\\b]?[@a-z\\$_][a-z\\d\\$_]*":"[a-z\\$_][a-z\\d\\$_]*").replace(/\\k\\j/g,in_context?"[\\b]?[^@a-z\\$_][a-z\\d\\$_]*":"[^a-z\\$_][\\w\\$]*").replace(/\\k\\e/g,"[a-z\\u03b1-\\u03c9]").replace(/\\k\\E/g,"[^a-z\\u03b1-\\u03c9]").replace(/\\K\\j/g,in_context?"[\\b]?[@A-Z\\$_][A-Z\\d\\$_]*":"[A-Z\\$_][A-Z\\d\\$_]*").replace(/\\K\\J/g,in_context?"[\\b]?[^@A-Z\\$_][A-Z\\d\\$_]*":"[^A-Z\\$_][A-Z\\d\\$_]*").replace(/\\K\\e/g,"[A-Z\\u0391-\\u03a9]").replace(/\\K\\E/g,"[^A-Z\\u0391-\\u03a9]").replace(/\\j/g,in_context?"[\\b]?[@a-zA-Z\\$_][\\w\\$]*":"[a-zA-Z\\$_][\\w\\$]*").replace(/\\J/g,in_context?"[^@a-zA-Z\\$_][\\w\\$]*":"[^a-zA-Z\\$_][\\w\\$]*").replace(/\\l/g,in_context?"[@\\w\\$\\.]":"\\l").replace(/\\L/g,in_context?"[^@\\w\\$\\.]":"\\L").replace(/\\e/g,"[A-Z\\u0391-\\u03a9_a-z\\u03b1-\\u03c9]").replace(/\\E/g,"[^A-Z\\u0391-\\u03a9_a-z\\u03b1-\\u03c9]").replace(/\\s/g,in_context?"[\\x20\\t\\v ]":"\\s").replace(/\\z/g,in_context?"[\\x20\\t\\v\\n\\r ]":"\\z").replace(/\\q[\b]/g,"[,;\\{\\}\\(\\)\\[\\]]").replace(/\\Q[\b]/g,"[^,;\\{\\}\\(\\)\\[\\]]").replace(/\\q/g,"[\\n\\r,;\\{\\}\\(\\)\\[\\]]").replace(/\\Q/g,"[^\\n\\r,;\\{\\}\\(\\)\\[\\]]").replace(/\\N/g,"[\\-\\+]?[\\d\\.]+[\\-\\+]?e?[\\-\\+]?[\\d\\.]*|0b[01]+|0o[0-7]+|0x[0-9a-f]+").replace(/\\#/g,in_context?"(\\.\\d+)":"\\#");for(var k=/\\k(\[(?:[^\\]|\\.)*?\])/,K=/\\K(\[(?:[^\\]|\\.)*?\])/,j=/([^\\][a-z])/i;k.test(regexp);)regexp=regexp.replace(k,function(e,t){return t.replace(j,function(e,t){return t.toLowerCase()}).replace(/(\w(?:\-\w|.*)?)\1/g,"$1")});for(;K.test(regexp);)regexp=regexp.replace(K,function(e,t){return t.replace(j,function(e,t){return t.toUpperCase()}).replace(/(\w(?:\-\w|.*)?)\1/g,"$1")});for(j=/\$\{([^\{\}]+?)\}/;in_context&&j.test(regexp);)regexp=regexp.replace(j,function($_,$1){return($1=eval($1)).constructor==RegExp&&($1=$1.source.replace(/\\/g,"\\")),$1});return regexp}function handle(type,index){function handle_interpolation(e,t,r,n){for(n&&(e=e.replace(/\\/g,"\\\\").replace(newline.toRegExp(!0,"g"),newline.esc).replace(/'/g,"\\'")),k=/\$(BE\.\d+)/;k.test(e);)e=e.replace(k,t+" + "+fold("("+unfold(RegExp.$1).replace(/^\{|\}$/g,"")+")")+" + "+t);return e=t+e+t,"ST."+(ST.push(undol(e.replace(r?/(DQ\.\d+)/g:/^(?!$)$/,'"'+t+" +$1+ "+t+'"').replace(RegExp("^"+t+"{2}\\s*\\+|\\+\\s*"+t+"{2}$","g"),"").replace(/\b0x(.+?)\b/g,"\b0x$1\b").replace(/^\s*|\s*$/g,"")))-1)}function handle_url(e){return unfold(e,"RX").replace(/([a-z\-]{3,})\:\/\(\?\:\)\//gi,"$1:\b/\b/\b")}function handle_before_interpolation(e,t,r,n,a){return e=fold(unfold(e.replace(t,r)),"BE"),handle_interpolation(e,n,a[0],a[1])}var spill=undol(native_types[type][index]||"",!0),k;switch(type){case"DS":return DS[index]=unshock(handle_url(spill)),"DS?="+index;case"ML":return"\b/\b*\b"+handle_url(spill)+"\b*\b/\b";case"VC":spill.replace(/^([\d\.]+)\?([\*\!])?\s*([\s\S]*)$/,"$1 $2");var v=RegExp.$1,c=RegExp.$2,s=RegExp.$3;return("*"==c?runtime.has(v):"!"==c?!runtime.equals(v):runtime.equals(v))?compile(fold(handle_url(s))):fold("### @"+v+"?"+c+newline+unfold(s).replace(/#/g,"\b0X23\b")+"###");case"EM":return'\b/\b/\b JavaScript Emulation from "'+runtime.original+'" to "'+spill+'"\b';case"PN":var r=/\s*\->\s*/,s=/\s*\=>\s*/,o={},R=spill.split(r,2),S=spill.split(s,2);return r.test(spill)?PN.kids.push((o[R[0].replace(/[\b]/g,"")]=unfold(R[1]),o)):s.test(spill)&&PN.kids.push((o[S[0].replace(/[\b]/g,"")]=eval(unshock(unstaple(S[1],unfold,unignore)).replace(/[\b]/g,"")),o)),"\b/\b/\b "+spill+"\b";case"SL":case"SU":return"\b/\b/\b"+handle_url(spill)+"\b";case"TP":return"new Tuple("+spill+")";case"DQ":return spill=unshock(spill),handle_before_interpolation(spill,/^"|"$/g,"",'"',[!1,!1]);case"SQ":return spill=unshock(spill),handle_before_interpolation(spill,/^'|'$/g,"","'",[!0,!1]);case"QI":return spill=unshock(spill),runtime.has("1.6")?spill:handle_before_interpolation(spill,/^`|`$/g,"","'",[!0,!0]);case"RX":return shock(randle(unfold(unshock(spill).replace(/^\/{2}([imguy]*)?$/,"/(?:)/$1")).replace(/(@#)/g,"\\$1")));case"Rq":spill=randle(unfold(unshock(spill).replace(/^\/{6}([imguy]*)?$/,"/(?:)/$1")).replace(/(@#)/g,"\\$1")),spill=spill.replace(/^(\/{3})([\s\S]*?)\1([imguy]*)?$/g,"$2");for(var f=RegExp.$3||"",k=options.native?/^((?:[^\\\/]|\\.)*?)\/\/.*/:/^((?:[^\\\#]|\\.)*?)#.*/;k.test(spill);)spill=spill.replace(k,"$1");return spill=fold(unfold(spill.replace(/\s+/g,"")),"BE"),"RegExp("+handle_interpolation(spill,"'",!0,!0)+", '"+f+"')";case"Dq":case"Sq":case"Tq":return handle_before_interpolation(spill,/^(["'`]{3})([\s\S]*?)\1$/g,"$2","'",[!0,!0]);case"IG":case"ST":return spill;default:return compile(spill)}return input}function unfold(e,t,r){var n=1/0,a=RegExp;"number"==typeof r&&(n=r);for(s=a("("+(t=void 0==t||1==r?global_expressions:t.constructor==Array?t:t.split(" ")).join("|")+")\\.(\\d+)");s.test(e)&&n>0;--n)e=e.replace(s,handle(a.$1,+a.$2));if(0==t)for(s=a("("+global_expressions.join("|")+")\\.(\\d+)");s.test(e)&&n>0;--n)e=e.replace(s,native_types[a.$1][+a.$2]);else for(var s=a("("+t.join("|")+")\\.(\\d+)");s.test(e)&&n>0;--n)e=e.replace(s,handle(a.$1,+a.$2));return e}function unstaple(e,t,r,n){for(var a=/ST\.(\d+)/,s=ST.length,o=0;a.test(e)&&o<s;o++)e=(t?t(e):e).replace(a,function(e,t){return ST[+t]});return a.test(e)?unstaple(e,t,r):r?r(e,n?void 0:t):e}function unignore(e,t,r,n){for(var a=/IG\.(\d+)/,s=IG.length,o=0;a.test(e)&&o<s;o++)e=(t?t(e):e).replace(a,function(e,t){return IG[+t]});return e=a.test(e)?unignore(e,t,r):r?r(e,n?void 0:t):e}function strip(e){return(e||"").replace(/^\(|\)$/g,"")}function handle_operators(e,t){var r,n=["","Double_","Triple_","Quadruple_"],a=operator_names,s=operators.join("\\"),o=function(e,t){if(!(+e<=1/0)&&void 0!=t)return n[e]+t},i=function(e,t){if(/^([\!\~\*\/%\+\-<>\&\^\|\?\:\=])\1*$/.test(e)&&void 0!=t)return n[e.length-1]+t;e=((e||"")+"").replace(/\\/g,"").split("");for(var r=0,s={};r<e.length;r++)s[e[r]]=void 0==s[e[r]]?0:s[e[r]],e[r]==e[r+1]&&s[e[r]]++;var i=[],l=0;for(var p in s){if(l++>3)break;i.push(o(s[p],a[p]))}return i.join("")},l=e[0];return RegExp("^([\\"+l+"][\\"+s+"]{0,3})").test(e)&&t==RTS.p?e=e.replace(RegExp("^\\"+(r=RegExp.$1.split("").join("\\"))+"(.*)$"),i(r,a[l])+RTS.P+"Operator\v$1\v"):RegExp("([\\"+l+"][\\"+s+"]{0,3})$").test(e)&&t==RTS.s?e=e.replace(RegExp("^(.*)\\"+(r=RegExp.$1.split("").join("\\"))+"$"),i(r,a[l])+RTS.S+"Operator\v$1\v"):RegExp("^(.*?)([\\"+l+"][\\"+s+"]{0,3})(.*?)$").test(e)&&(e=e.replace(RegExp("^(.*)\\"+(r=RegExp.$2.split("").join("\\"))+"(.*)$"),i(r,a[l])+"Operator\v"+(void 0!=RegExp.$1?"$1,":"")+"$2\v")),/((?:pre|suf)fix|media)-/.test(t)&&(t.replace(/^(\w)/,""),t=RTS[RegExp.$1.toUpperCase()],e=e.replace(t,t!=RTS.M?t:"")),e}function compile(string,index){function Strip_Paren_Spaces(e){return e.replace(/^(.*?)\(\s*/,"$1(").replace(/\s*\)(.*?)$/,")$1")}function Random_Name(e){function t(e,t,r){var n=Math.random();return"number"==typeof e?(n*e+t).toString(r):n+e}return(t(22,10,36)+(t("")+t("")+t("")).replace(/^\d+|\./g,"")).slice(0,e)}function Argify_In_Braces(e,t){e=strip(unfold(e,"PR")),t=unfold(t,"BE"),/^\s*\{(\s*)/.test(t);var r=RegExp.$1.length<1;return t.replace(/^\s*\{(\s*)/,/^\s*$/.test(e)?"{$1":"{$1"+(/\.{3}/.test(e)||type_spread_regexp.test(e)?"var arity;$1":"")+"var "+argify(e.replace(Type_Spread_RegExp,"$2").replace(Name_Type_RegExp,"$1").replace(Type_Name_RegExp,"$2"),e.replace(Type_Spread_RegExp,"Spread/$1").replace(/\//g,"$").replace(Name_Type_RegExp,"$2").replace(Type_Name_RegExp,"$1").split(","),r)+";$1")}function Argify_In_Paren(e){if(void 0==e)return"";for(var t=/@|\bthis\b/,r=1,e=e||"";t.test(e);)e=e.replace(t,function(){return"$"+r++});return e}function Argify_HTML_Tags(e,t){for(var r=(t?e.replace(Type_Spread_RegExp,"Spread/$1 $2").replace(/\//g,"$").replace(Name_Type_RegExp,"$2 $1").replace(Type_Name_RegExp,"$1 $2").replace(/\.{3}\s*\*/,"...").replace(/\(/g," ").replace(/\)/g,""):unfold(e,"PR").replace(/[\b]/g,"").replace(/^(.*)\(/,"$1 ").replace(/\)(.*)$/," $1").replace(/([^\.])\.[\(\s]*/g,"$1.")).replace(/<(\*|All)>/gi,"HTMLAllCollection").replace(/<(\.{3}|Collection)>/gi,"HTMLCollection").replace(/<Document>/gi,"HTMLDocument").replace(/<Element>/gi,"HTMLElement").replace(/<(Form)(?:\.{3}|Controls(?:\.{3})?)>/gi,"HTMLFormControlsCollection").replace(/<(Options)\.{3}>/gi,"HTMLOptionsCollection"),n={A:"Anchor",B:"Bold",Br:"BR",Hr:"HR",Datalist:"DataList",Dl:"DList",Dlist:"DList",Fieldset:"FieldSet",Frameset:"FrameSet",Iframe:"IFrame",Img:"Image",Li:"LI",Ol:"OList",Olist:"OList",Optgroup:"OptGroup",P:"Paragraph",Q:"Quote",Tablecaption:"TableCaption",Tablecell:"TableCell",Tablecol:"TaleCol",Tablerow:"TableRow",Tablesection:"TableSection",Textarea:"TextArea",Ul:"UList",Ulist:"UList"},a=/<([A-Z]\w*)>/i;a.test(r);)r=r.replace(a,function(e,t){var r=t.slice(0,1).toUpperCase()+t.slice(1,t.length).toLowerCase(),a="HTML",s="Element";return void 0==Global||null==Global||a+r+s in Global||(r=n[r]||"Unknown"),a+r+s});return r}function Should_Register(string,ignore_type_regexp){return eval([type_regexp.test(string),dot_regexp.test(string),spread_regexp.test(string),type_spread_regexp.test(string),!runtime.has("1.8.5")&&equals_regexp.test(string)].slice(ignore_type_regexp?1:0,5).join("||"))}function Register_in_Pusher(e,t,r){function n(e){return e.replace(type_spread_regexp,"Spread/$1 $2").replace(/\//g,"$")}var a=t.a,s=t.b,o=t.c,i=t.paren_brace_array;if(t.use_c_override)if(void 0!=o)for(;type_spread_regexp.test(o);)o=n(o);else for(;type_spread_regexp.test(s);)s=n(s);void 0!=o&&void 0!=t.indie?o=Argify_HTML_Tags(o,t.indie):s=Argify_HTML_Tags(s,t.indie);var l=Register_in_Pusher.ending_error_regexp,p=Register_in_Pusher.equals_regexp,u=(r?Push(e,a,o.replace(p,""),s):Push(e,a,s.replace(p,"")))-1,c=(r?Pull(e,a,s):Pull(e,a))[u].join("_").replace(/\.{3}/g,"Spread").replace(/\*/g,"Any"),f=Should_Register(o||s,!0);return c=t.head+(t.strict?"":c)+(t.tail||"")+Strip_Paren_Spaces(f?"() "+Argify_In_Braces(i[0],i[1]):"("+Argify_In_Paren(i[0]).replace(p,"").replace(Type_Name_RegExp,"$2").replace(Name_Type_RegExp,"$1").replace(l,"$1")+") "+i[1]),t.keep_dirty_braces?c:Tidy_Up_Braces(c)}function Tidy_Up_Braces(e){return fold(unfold(e,"BE"))}function Is_a_ClassTypeFN(e,t){var r,n=Paramour.ClassTypeFN,a=n[e],s=a!=r?a[t]:r;return n!=r&&a!=r&&s!=r&&n.hasOwnProperty(e)&&a.hasOwnProperty(t)}function Is_a_NativeTypeFN(e){var t,r=Paramour.NativeTypeFN;return r[e]!=t&&r.hasOwnProperty(e)}function Handle_JSUNIT(e){return e.replace(/(?:@@\.?|this\.(?:prototype|this)\.)?\b(toconsole|std(in|out)|assert(True|False|Fail|(Not)?(Equals|Null|NaN|Undefined))?)\b/g,"JSUNIT.$1").replace(/(?:@@\.?|this\.(?:prototype|this)\.)([a-zA-Z\$_][\w\$]*)/g,"JSUNIT.prototype.$1").replace(/(@@\.?|this\.(?:prototype|this))/g,"JSUNIT")}function handle_class_methods(e,t,r,n){if(r=r||!1)e=(strict&&runtime.has("1.5")?"const\b ":"var\b ")+t+" = (function(__super__) "+BE[+e].replace(/^\{(\s*)/,void 0!=n?"{$1"+ignore(t+".prototype = Object.assign((__super__ = "+n+").prototype, {constructor: "+t+"});")+newline+"$1":"{$1"+ignore("(__super__ = "+t+").prototype = {constructor: "+t+"};")+newline+"$1").replace(/(?:\binit\:\:|\.?\bconstructor)\s*(PR\.\d+)?\s*(?:(?:\:[a-zA-Z\$_][\w\$]*)?(?:\s*([\=\-\~\+\&])>))?(BE\.\d+|[^,;\{\}\(\)\[\]]+)/,function(e,r,n,a){return(n||"")+"constructor?="+t+" ["+(r||"")+"] "+a}).replace(/(?:\*\s*|\bstatic\s+)\.?([a-zA-Z\$_][\w\$]*)\s*(PR\.\d+)\s*(?:(?:\:[a-zA-Z\$_][\w\$]*)?(?:\s*([\=\-\~\+\&])>))?\s*(BE\.\d+|[^,;\{\}\(\)\[\]]+)/g,"$3static?=prototype?="+t+":$1 [$2] $4").replace(/\.?([a-zA-Z\$_][\w\$]*)\s*(PR\.\d+)\s*(?:(?:\:[a-zA-Z\$_][\w\$]*)?(?:\s*([\=\-\~\+\&])>))?(BE\.\d+|[^,;\{\}\(\)\[\]]+)/g,"$3prototype?="+t+":$1 [$2] $4").replace(/(\s*)\}$/,"$1 -> "+t+";$1})();");else{e=fold(fold(unfold(e,"BE").replace(/^\{|\}$/g,""))||"").replace(/(?:\binit\:\:)/g,".constructor").replace(/\.?\b(constructor)\b[\b\s]*(PR\.\d+)?(?:(?:\:[a-zA-Z\$_][\w\$]*)?(?:\s*([\=\-\~\+\&]>)))?[\b\s]*(BE\.\d+|[^,;\{\}\(\)\[\]]+)/,function(e,t,r,n,a){return compile(fold(t+" = "+(r||"()")+n+a))}).replace(/\*[\b]*(\s*\.)?/g,"$1*");for(var a=/(?:\bfunction[\b]*\s+|\.)?((?:\*\s*|\bstatic[\b]*\s+)?[a-zA-Z\$_][\w\$]*)[\b]*\s*(PR\.\d+)(?:(?:\:[a-zA-Z\$_][\w\$]*)?(?:\s*([\=\-\~\+\&])>))?\s*(BE\.\d+|[^,;\{\}\(\)\[\]]+)/;a.test(e)&&!r;)e=e.replace(a,function(e,r,n,a,s){var o=/(\*\s*|\bstatic\s+)/,i=o.test(r)?"static?=":"",l=runtime.has("1.6");return r=r.replace(o,""),/^\bfunction\b/.test(r)&&(r=""),""==(a=(a||"").replace("=","-"))||/^BE\.\d+/.test(s)||(s=fold("{"+a+">\b "+s+"}")),compile((l?"":"?"+a)+i+"srototype?="+t+":"+r+" ["+strip(unfold(n))+"] "+s)})}return e}function run(e){for(var t in e){var r="",n=randle(t,!0).replace(/^\*([imguy]+)/,function(e){r=e}).replace(/^\*/,function(){Throw(new SyntaxError,"[String -> RegExp]","'^*' in /"+t+"/"+r)});for(compile.start=compile.start||+new Date,n=RegExp(n,r),string=fold(string,"Dq Sq Tq Rq DQ SQ RX QI ML SL");n.test(string)&&(compile.counts+=+(compile.last==n))<1e3;compile.last=n)self=e[t],self.name=t,string=P(string).replace(self.pattern=self.regexp=n,self);compile.counts>=1e3&&Throw(new RangeError,"[String -> String]:"+(0|index)+"$1\tat /"+self.name+"/","Maximum call stack size exceeded ["+(+new Date-compile.start)+" ms].");for(var a=/(?:[\b]{0,2})IG\.(\d+)(?:[\b]{0,2})/,s=IG.length,o=0;a.test(string)&&o<s;o++)string=string.replace(a,function(e,t){return IG.splice(+t,1,"")})}}var JU_A,JU_B,JU_C=0,Type_Name_RegExp=/(\*\s*|\.{3}\s*|[a-z\$_][\w\$]*\s+)([@\.a-z\$_][\w\$]*)/gi,Name_Type_RegExp=/([@\.a-z\$_][\w\$]*)(\*|\.{3})/gi,Type_Spread_RegExp=/([a-z\$_][\w\$]*)\s+([@\.a-z\$_][\w\$]*)\.{3}/gi,P=PN.replace;Register_in_Pusher.ending_error_regexp=/\s*([,\)]|$)/g,Register_in_Pusher.equals_regexp=/\s*\=\s*[^,]*/g;var patterns={"class\\?=(\\j)\\s*BE\\.(\\d+)":function(e,t,r){return handle_class_methods(r,t,!0)},"extends\\?=(\\j)\\:(\\j)\\s*BE\\.(\\d+)":function(e,t,r,n){return handle_class_methods(n,r,!0,t)},"(\\s*)([\\=\\-\\~\\+\\&])?constructor\\?=(\\j)\\s*\\[(PR\\.\\d+)?\\]\\s*(BE\\.\\d+|\\Q\b+)":function(e,t,r,n,a,s){var o=t.slice(0,-2),i="__super__",l=""!=o?newline+o:"";r=(r||"").replace("=","-"),a=fold(strip(unfold(a=a||"()","PR"))),/^BE\.\d+/.test(s)||""==r||(s="{"+(""!=r?l+r+">\b ":"")+s.replace(/^\s*/g,"")+"}"),s=unfold(s.replace(/[\b]/g,""),"BE");for(var p=/\bsuper\b\s*([^\(\)\[\]\.][^\n\r;]*)/;p.test(s);)s=s.replace(p,function(e,t){return t=strip(unfold(fold(t),"PR").replace(/^\((.*)\)(.*?)$/,"$1$2")),/^[\b\s]*((?:BK|PR)\.\d+|\.)/.test(t)?i+t:i+"("+t+")"});return s=fold(unfold(s.replace(/\bsuper\b/g,i).replace(/\s*\}$/,l.slice(0,-2)+"}"),"BE")),Register_in_Pusher("class",{head:t+r+"function\b "+n,a:n,b:"constructor",c:n,paren_brace_array:[a,s],strict:!0},!0)},"(\\s*)([\\=\\-\\~\\+\\&])?(static\\?=|\\*\\s*)?prototype\\?=(\\j)\\:(\\j)\\s*\\[([^\\[\\]]*)\\]\\s*(BE\\.\\d+|\\Q\b+)":function(e,t,r,n,a,s,o,i){var l=t.slice(0,-2)||i.replace(/^(?:[\n\r]*)(\s*)[\s\S]*$/,"$1"),p="__super__",u="function",c=""!=l?newline+l:"";t=t||"",r=(r||"").replace("=","-"),n=n||!1,o=fold(strip(unfold(o.replace(/[\b]/g,""),"PR"))),/^BE\.\d+/.test(i)||""==r||(i="{"+(""!=r?c+r+">\b ":"")+i.replace(/^\s*/,"")+"}"),i=unfold(i.replace(/[\b]/g,""),"BE");for(var f=n?a+"."+s:a+".prototype."+s,d=/\bsuper\b\s*([^\(\)\[\]\.][^\n\r;]*)/;d.test(i);)i=i.replace(d,function(e,t){return t=strip(unfold(fold(t),"PR").replace(/^\((.*)\)(.*?)$/,"$1$2")),/^[\b\s]*((?:BK|PR)\.\d+|\.)/.test(t)?p+t:p+"("+t+")"});return i=fold(unfold(i.replace(/\bsuper\b/g,p).replace(/\s*\}$/,c.slice(0,-2)+"}"),"BE")),n=n?"static?=":"",c=t.slice(0,-2),ignore(Should_Register(o)?Register_in_Pusher("class",{head:t+r+n+"pocket?="+a+":"+s+newline+" "+c+f+"__",tail:" = "+u+"\b "+s,a:a,b:s,c:o,paren_brace_array:[o,i]},!0):newline+" "+c+f+" = "+u+"\b "+s+"("+o+") "+i)},"(\\s*)(?:\\?([\\=\\-\\+\\~\\&]))?(?:[\\b]*\\bfunction[\\b\\s]+|\\.\\s*)?(static(?:\\?=|\\s+)|\\*\\s*)?srototype\\?=(\\j)\\:(\\j)\\s*\\[([^\\[\\]]*)\\]\\s*(BE\\.\\d+)":function(e,t,r,n,a,s,o,i){s=s.replace(/__([a-z\$][\w\$]*)?$/i,""),o=(o||"").replace(/[\b]/g,""),i=unfold(i,"PR BK BE");var l,o,p,u,c,f,d=Register_in_Pusher.ending_error_regexp,g=(Register_in_Pusher.equals_regexp,n?"static "+s:s),b=t;n=n!=l;for(var _=/\bsuper\b\s*([^\(\)\[\]\.][^\n\r;]*)/;_.test(i);)i=i.replace(_,function(e,t){return t=strip(unfold(fold(t),"PR").replace(/^\((.*)\)(.*?)$/,"$1$2")),/^[\b\s]*((?:BK|PR)\.\d+|\.)/.test(t)?"\bsup\ber\b"+t:"\bsup\ber\b("+t+")"});return i=fold(i,"BE"),Is_a_ClassTypeFN(a,s)||Should_Register(o)?Register_in_Pusher("class",{head:(t==b?(t=t.slice(0,-2),b):t)+(n?"static?=":"")+"socket?="+a+":"+s+newline+" "+t+g+"__",a:a.replace(/^[\b]/,""),b:s,c:o,paren_brace_array:[o,i],z:[p,u,c,f],keep_dirty_braces:!0},!0):t+g+Strip_Paren_Spaces(Should_Register(o)?"()\b "+Argify_In_Braces(o,i):"("+Argify_In_Paren(o).replace(Type_Name_RegExp,"$2").replace(d,"$1")+")\b "+i)},"([\\=\\-\\~\\+\\&])?arrow\\?=\\[([^\\[\\]]*)\\]\\s*\\[([^\\[\\]]*)\\]\\z*(BE\\.\\d+|\\Q+)":function(e,t,r,n,a){t=(t||"").replace("=","-"),r=(r||"").replace(/[\b]/g,"").replace(/([a-z\$_][\w\$]*)\s*$/i,"$1");var s,o,i,l,p=strip(unfold(n,"PR")),u="",c=/[\=\:]/.test(n)?(u="function\b ",""):"function\b ",f=(Register_in_Pusher.ending_error_regexp,Register_in_Pusher.equals_regexp,/\s*[\=\:]\s*/.test(r)),d="";return l=fold(/^PR\.\d+$/.test(a)?c+r+u+(""!=p?"("+Argify_In_Paren(p)+")":"()")+" {"+(""!=t?t+">\b ":"")+unfold(a,"PR")+"}":/^BE\.\d+$/.test(a)?c+r+u+(Should_Register(p,!0)?"() "+Argify_In_Braces(n,a):"("+Argify_In_Paren(p)+")"+a):c+r+u+n+" {"+(""!=t?t+">\b":"")+(/^[\x20\t\v ]/.test(a)?"":" ")+unfold(a,"PR")+"}"),n=Argify_HTML_Tags(n),Should_Register(p,!0)?(r=f?(d=r,""):r,Register_in_Pusher("native",{head:d+"\bfunction\b "+r+"__",a:r.replace(/^[\b]/,""),b:n,z:[o,s,i],paren_brace_array:[n,"{"+t+">\b "+a+"}"],keep_dirty_braces:!0,indie:!0})):l},"\\binit\\:\\:":function(e){return".constructor"},"(\\j)(@|[\\:\\.]{2})(\\j)":function(e,t,r,n){return t+".prototype."+n},"(\\j)\\s+get\\s+(\\j)\\z*(BE\\.\\d+)":function(e,t,r,n){return t+'.__defineGetter__("'+r+'", function() '+n+")"},"(\\j)\\s+get\\?\\s*(\\j)":function(e,t,r){return t+'.__lookupGetter__("'+r+'")'},"(\\j)\\s+set\\s+(\\j)\\z*(BE\\.\\d+)":function(e,t,r,n){return t+'.__defineSetter__("'+r+'", function('+r.replace(reserved,"__$1__")+") "+n+")"},"(\\j)\\s+set\\?\\s*(\\j)":function(e,t,r){return t+'.__lookupSetter__("'+r+'")'},"\\b(do|else|finally|return|try|typeof|while)\\z*(BE\\.\\d+)":function(e,t,r){return"\b"+t+"\b "+r+"\b"},"\\b(catch|for|function|if|switch|while|with|\\.\\j)\\z*(PR\\.\\d+)":function(e,t,r){return"\b"+t+"\b"+r+"\b"},"(\\s*(?:case|default))\\z*(BK\\.\\d+)\\z*(BE\\.\\d+|([\\:]\\z*)?\\Q+)":function(e,t,r,n){r=unfold(r,"BK");var a=function(e){return{"":10,"0b":2,"0o":8,"0x":16}[e.toLowerCase()]},s=RegExp;if(!/\[((0[box])?[\da-f\.]+?)?\s*(\.{2,3})\s*((?:0[box])?[\da-f\.]+?)?\]/i.test(r))return ignore(e);for(var o,i=+(s.$1||0),l=a(o=s.$2||""),p=+(s.$4||1),u=".."==s.$3,c=[],f=i<p;f?u?i<p+1:i<p:u?i>p-1:i>p;i+=f?1:-1)c.push(o+i.toString(l));return fold(t+" ("+c.join(", ")+") "+n)},"(\\s*)case\\z*(PR\\.\\d+)\\z*(BE\\.\\d+|([\\:]\\z*)?\\Q+\\q)":function(e,t,r,n){r=fold(strip(unfold(r,"PR"))).split(/,\s*|\s+/);for(var a=0,s=[];a<r.length-1;a++)/^\s*$/.test(r[a])||s.push(t+"\bca\bse\b "+r[a]+":");return s.push(t+"\bca\bse\b "+r[a]+(/^\s*\:/.test(n)?"":":"+newline+t+" ")),s.join(newline)+unfold(n,"BE").replace(/^\{\s*/,"").replace(/\s*(\}|;|\b|\B)$/,";"+newline+t+" break;")+newline},"(\\s*)default\\z*(PR\\.\\d+)?\\z*(BE\\.\\d+|([\\:]\\z*)?\\Q+\\q)":function(e,t,r,n){if(void 0==r&&/^\s*\:\s*/.test(n))return t+"\bdef\baul\bt\b"+n;r=fold(strip(unfold(r,"PR"))).split(/,\s*|\s+/);for(var a=0,s=[];a<r.length;a++)/^\s*$/.test(r[a])||s.push(t+"\bca\bse\b "+r[a]+":");return s.push(t+"\bdef\baul\bt\b"+(/^\s*\:/.test(n)?"":":"+newline+t+" ")),s.join(newline)+unfold(n,"BE").replace(/^\{\s*/,"").replace(/\s*(\}|;|\b|\B)$/,";"+newline+t+" break;")+newline},"(\\s*)?(\\*?\\j)?\\s*(BK\\.\\d+)${arrow_state}?\\z*(BE\\.\\d+|\\Q+)":function(e,t,r,n,a,s){function o(e){return e.replace(/\bSpread\b/g,"...")}var i,l,p,u,c,f,d,g=RTS.p,b=RTS.P,_=RTS.m,h=RTS.M,$=RTS.s,m=RTS.S,v=r==d,y=/^\s*([a-z\$_][\w\$]*\s+|\*|\.{3})?(\s*;\s*|\s*(?:[a-z\$_][\w\$]*|\*|\.{3})\s*)?(\s+[a-z\$_][\w\$]*|\*|\.{3})?\s*$/i,S=/^\s*([a-z\$_][\w\$]*|\*|\.{3})?\s*([\!~\*\/%\+\-<>\&\^\|\?\:\=]{1,4})\s*([a-z\$_][\w\$]*|\*|\.{3})?\s*$/i;if(t=t||"",r=(r||"").replace(/[\b]/g,""),n=unfold(n,"BK").replace(/^\[\s*|\s*\]$/g,""),a=(a||"").replace("=","-"),!/^BE\.\d+/.test(s)){if(""==a)return ignore(e);s=fold("{"+a+">\b "+s+"}")}if(!S.test(n)&&!y.test(n))return fold(t+r+" ["+n+"],"+newline+t+" "+a+s);v?(n=n.replace(S,function(e,t,n,a){return t==d&&a!=d?(i=b,l=g,f=!1,c=[o(a)]):t!=d&&a==d?(i=m,l=$,f=!1,c=[o(t)]):t!=d&&a!=d&&(i=h,l=_,f=!0,c=[o(t),o(a)]),r=n.replace(/\s+/g,""),e}),p=handle_operators(r,l).replace(/\([,\s]*\)$/,"")):n=undol(n.replace(/\(/g," ").replace(/\)/g,"").replace(y,function(e,t,n,a){var s=RegExp("\\b"+r+"\\b|[;]");return t=t||"",n=n||"",a=a||"",s.test(t)&&!s.test(n)&&""==a?(i=b,l=g,f=!1,c=[o(t)],p=t):""==t&&!s.test(n)&&s.test(a)?(i=m,l=$,f=!1,c=[o(a)],p=a):s.test(t)||!s.test(n)||s.test(a)||(i=h,l=""==t?$:""==a?g:_,f=!0,c=[o(t),o(a)],p=n),p=p.replace(";",r),e})),r=undol(r);for(var x=0;x<c.length;x++)c[x]=c[x].replace(/^\s*(\*|\.{3}|[a-z\$\_][\w\$]*)/i,"$1 @");return c=c.join(", "),u=(v?p=p.replace(/^.*?([a-z\$_][\w\$]*).*?$/i,"$1"):r)+fold(("("+unshock(c)+")").replace(/\(\s*,/,"(").replace(/,\s*\)/,")"))+" "+s,Operator(r,c,l,unfold(u,"PR"),s,p||r),t+u},"([\\b]*DS[\\.#]\\d+[\\b]*\\z*)?@(After|Before)\\z*(BE\\.\\d+)":function($_,$1,$2,$3){return eval("JU_"+$2[0]+" = true"),(void 0==$1?"":$1.replace(/(\s)?$/,".setDocString(JSUNIT."+$2+");$1"+newline))+fold("JSUNIT."+$2+" = () "+Handle_JSUNIT(unfold($3,"BE")))},"([\\b]*DS[\\.#]\\d+[\\b]*\\z*)?@Test\\z*(PR\\.\\d+)?(?:\\:\\j)?\\z*(BE\\.\\d+)(\\z*PR\\.\\d+)?":function(e,t,r,n,a){var s="JSUNIT.Test["+JU_C+++"]";return t=t||"",(/^\s*$/.test(t)?"":t.replace(/(\s)?$/,".setDocString("+s+");$1"+newline))+compile(fold("("+s+"\b = "+(r||"()")+Handle_JSUNIT(unfold(n,"BE")).replace(/^\{(\s*)/,JU_B?"{$1JSUNIT.Before();$1":"{$1").replace(/(\s*)\}$/,JU_A?"$1 JSUNIT.After();$1}":"$1}")+")"+(a||"()")))},"([\\.\\:\\=]\\s*)?(\\*?\\j\\z*[\\:\\=]?\\z*)?(PR\\.\\d+)${arrow_state}\\z*(BE\\.\\d+|\\Q+)":function(e,t,r,n,a,s,o,i){var l,p,u,c="",f=RegExp;return t=t||"",r=r||"",n=unfold(n,"PR"),a=a.replace("=","-"),u=/^\./.test(t),reserved.test(r)&&""==t||""==a&&!/^BE\.\d+/.test(s)?ignore(t+r+n+" "+a+s):(!runtime.has("1.6")&&e!=strip(i)&&/^PR\.\d+$/.test(s)&&""==r&&(e.replace(/^(\(+)?(.+?)(\)+)?$/g,"$1$2$3"),f.$3.slice(0,f.$1.length-1),self.pattern.test(f.$2.replace(/\)+$/,function(e,t,r){return c=e})),e=f.$_,r=f.$1||"",n=f.$2,s=f.$3),l=strip(unfold(n,"PR")).replace(/\(+/g," ").replace(/\)+/g,""),p=/[\:\=]/.test(r)||u?"":" = ","\b"+t+(!runtime.has("1.6")||type_regexp.test(l)||type_spread_regexp.test(l)?u?compile("."+r+p+"("+l+") => "+s+c):compile("\b"+a+"arrow?=["+r+"] ["+n+"] "+s)+c:r+p+"("+l+") => "+s+c))},"(\\s*)(\\.)?(\\j\\z*)?\\s*([~\\*%\\/\\+\\-\\^\\?\\:]|[\\!\\&\\|\\=]{1,2}|[<>]{1,3})?\\s*\\=>\\z*(${operators_regexp}+)?\\s*(PR\\.\\d+)(\\Q*)\\s*(${operators_regexp}+)?":function(e,t,r,n,a,s,o,i,l){n=n||"",a=a||"",s=s||"",i=i||"",""==s&&""==i||(o=fold("("+s+o+i+")")),s="",i="";for(var p,u=/([^\(]*?)\s*(PR\.\d+|[\!~\*%\/\+\-<>\&\^\|\?\:\=]+)\s*(.*)/i,c=RegExp,f=o;u.test(f);)f=f.replace(u,function(e,t,r,n){var a,s,o=/([\!~\*%\/\+\-<>\&\^\|\?\:\=]+)/,i=/^\(|\s+|\)$/g;return/^(PR\.\d+)$/.test(r)&&(o.test(t)?(t=t.replace(s=r,r=c.$1,"").replace(i,""),n=s.replace(i,"")):o.test(n)&&(t=r.replace(i,""),n=n.replace(r=c.$1,"").replace(i,""))),(a=Operator.kids[r])!=p?a.name+shock("\\("+t+(""!=n?(""!=t?", ":"")+n:"")+"\\)",!0):t+"\b "+(o.test(r)?shock("\\"+r.split("").join("\\"),!0):unfold(r,"PR"))+"\b "+n});f=unfold(fold(f=unshock(f).replace(/^\s*(\(+)\s*(.*?)\s*(\)+)\s*$/,function(e,t,r,n){return r+n.slice(0,-t.length)}),"PR").replace(/\((?:\s*,)?|(?:,\s*)?\)/g,""),"PR");for(var d,g,b,_,u=/\b([a-z\$_][\w\$]*)\s+([a-z\$_][\w\$]*)\s+([a-z\$_][\w\$]*)\b/i,h=RTS.p,$=RTS.m,m=RTS.s,v=/[\b]/g,y=Operator.kids;u.test(f);)f=f.replace(u,function(e,t,r,n){if(t=t.replace(v,""),r=r.replace(v,""),n=n.replace(v,""),(d=y[t])!=_||(g=y[r])!=_||(b=y[n])!=_)return(d||{}).root==m||(b||{}).root==h?t+"("+r+(""!=n?", "+n:"")+")":(d||{}).root==h||(b||{}).root==m?n+"("+t+(""!=n?", "+r:"")+")":(g||{}).root==$?r+"("+t+(""!=n?", "+n:"")+")":t+"\b"+r+"\b"+n});for(u=/\b([a-z\$_][\w\$]*)\s+([a-z\$_][\w\$]*)\b/i;u.test(f);)f=f.replace(u,function(e,t,r){if(t=t.replace(v,""),r=r.replace(v,""),(d=y[t])!=_||(g=y[r])!=_)return(d||{}).root==m||(g||{}).root==h?t+"("+r+")":(d||{}).root==h||(g||{}).root==m?r+"("+t+")":reserved.test(t)?t+"\b"+r+"\b":reserved.test(r)?t+"("+r+")":t+"\b"+r+"\b"});var S,x,T,P,R,w="",E="",N="",I="",k=l,j=i;return j=(((x=(P=y[j])!=_)?P.name:j)||"").replace(/\(\s*\)/,""),j=""!=j&&x?(w="(",E=")",j):j,k=(((T=(R=y[k])!=_)?R.name:k)||"").replace(/\(\s*\)/,""),k=""!=k&&T?(N="(",I=")",k):k,S=x&&T?j+w+k+N+f+I+E:x?k+N+j+w+f+E+I:T?w+k+N+f+I+E+j:k+f+j,t=unshock(t+(r||"")+(""==n?"":reserved.test(n)&&r==_?n:n+a+"= ")+S).replace(/(\))?\s*,\s*\)/g,"$1)")},"(?:\\bclass\\s+)?(\\j)(?:\\s+extends\\s+|\\.|\\s+)(\\j)\\z*(BE\\.\\d+)":function(e,t,r,n){return runtime.has("1.6")?(n=handle_class_methods(n,r),"\bclass\b "+r+"\b extends\b "+t+" {"+n.replace(/\.[\b]class[\b]\s*/g,"").replace(/\*\s*\./g,".*")+"}"):compile("extends?="+t+":"+r+" "+n)},"(?:\\bclass\\s+)?(\\j)\\z*(BE\\.\\d+)":function(e,t,r){return runtime.has("1.6")?(r=handle_class_methods(r,t),"\bclass\b "+t+" {"+r.replace(/\.[\b]class[\b]\s*/g,"").replace(/\*\s*\./g,".*")+"}"):compile("class?="+t+" "+r,[t])},"\\.?(?:\\b(?:function|[gs]et|static)[\\b]?\\s+)?(\\*?\\j\\z*[\\:\\=]?\\z*)?(PR\\.\\d+)${arrow_state}?\\z*(BE\\.\\d+|\\Q+)":function(e,t,r,n,a){t=(t||"").replace(/[\b]/g,"").replace(/([a-z\$_][\w\$]*)\s*$/i,"$1"),n=n||"";var s,o,i,l,p=Register_in_Pusher.ending_error_regexp,u=(Register_in_Pusher.equals_regexp,/\s*[\=\:]\s*/.test(t)),c="",f="function";return/^BE\.\d+/.test(a)||""!=n?/^[\b]*\./.test(e)?u?(a=compile(t+r+a),reserved.test(t)?"."+a:"\b.\b"+a):ignore(e):(l=Argify_HTML_Tags(r),/^[\b]?\b(([gs]et|static|function)[\b]?\s+)/.test(e)&&!Should_Register(l)?ignore(e):(r=l,Is_a_NativeTypeFN(t)||Should_Register(r)?(t=u?(c=t,""):t,Register_in_Pusher("native",{head:c+"\b"+f+"\b "+t+"__",a:t.replace(/^[\b]/,""),b:r,z:[o,s,i],paren_brace_array:[r,a],keep_dirty_braces:!0,indie:!0})):Strip_Paren_Spaces(Should_Register(r)?u?t+f+"() "+Argify_In_Braces(r,a):f+"\b "+t+"() "+Argify_In_Braces(r,a):u?t+f+"("+r.replace(Type_Name_RegExp,"$2").replace(p,"$1")+") "+a:f+"\b "+t+"("+Argify_In_Paren(r).replace(Type_Name_RegExp,"$2").replace(p,"$1")+") "+a))):ignore(e)},"([^\\-])\\->":function(e,t){return t+"return\b"},"\\~>":function(e){return"throw\b"},"([^\\+])\\+>":function(e,t){return t+"throw\b new\b"},"\\&>":function(e){return"yield\b"},"\\b((?:[DST][Qq]|QI|ST)\\.\\d+)\\s*(\\j\\l*)\\s*([\\=\\:])\\s*(\\Q+)((\\s*\\:)\\s*\\Q+)?":function(e,t,r,n,a,s,o){var i=runtime.has("1.4")&&strict,l=/\.\d+/.test(t)&&!i?".name":"",p=void 0==s?" undefined":s.replace(o,""),u=i?" instanceof":".constructor ==";return t=i?unfold(t,LITERALS.Esc).replace(/(["'`]{1,3})(.+)\1/,"$2"):t,"="==n?r+" = (("+r+" = "+a+")"+u+l+" == "+t+")? "+r+":"+p:r+": ((Global['."+r+"'] = "+a+")"+u+l+" == "+t+")? Global['."+r+"']:"+p},"\\b((?:[DST][Qq]|QI|ST)\\.\\d+)\\s*(\\j\\l*)":function(e,t,r){return/^(["'`]|["'`]{3})(boolean|function|null|number|object|string|symbol|(?:un)?defined)\1$/.test(t=unfold(t,"DQ SQ QI Dq Sq Tq"))?"defined"==RegExp.$2?fold(t.replace(RegExp.$2,"undefined"))+" != typeof\b "+r:fold(t)+" == typeof\b "+r:t+" + "+r},"\\b((un)?defined|null)\\s+(\\l+)":function(e,t,r,n,a){return shock("un"==r||"null"==t?strict?"\\("+n+" == "+t+"\\)":"\\("+n+" == undefined || "+n+" == null\\)":strict?"\\("+n+" != "+t+"\\)":"\\("+n+" != undefined && "+n+" != null\\)",!0)},"\\bNaN(\\s+|\\s*[\\!\\=]\\={1,2}\\s*)([\\+\\-]{0,2}\\l+|\\l+[\\+\\-]{2}?)":function(e,t,r){var n;return t.replace(/[\=\s]+/g,"").replace(/^!/,"\\!")+(n?"isNaN("+r+")":fold(shock("\\!("+r+" <= Infinity\\)",!0)))},"([\\+\\-]{0,2}\\l+|\\l+[\\+\\-]{2}?)\\s*([\\!\\=]?\\={1,2})\\s*NaN":function(e,t,r){var n;return t.replace(/[\=\s]+/g,"").replace(/^!/,"\\!")+(n?"isNaN("+t+")":fold(shock("\\!("+t+" <= Infinity\\)",!0)))},"\\b(var|const|let)\\z*(PR\\.\\d+)(\\z*[\\:\\=]\\Q+)?":function(e,t,r,n){var a;n=(n=n||"").replace(/;$/,"").replace(/^\s*([\:\=])\s*/,""),a=fold(a=(":"==RegExp.$1||"const"==t?"const ":t+" ")+strip(unfold(r,"PR")).replace(/(^\s*|,\s*)([a-z\$_][\w\$]*)(\s*,|\s*$)/gi,""==n?"$1$2$3":"$1$2 = "+n+"$3").replace(/(^\s*|,\s*)([a-z\$_][\w\$]*)(\s*,|\s*$)/gi,""==n?"$1$2$3":"$1$2 = "+n+"$3"));for(var s,o=/(?:\.BE|\bTP)\.(\d+)\b/,i={};o.test(a);)a=a.replace(o,function(e,t){return void 0==i[s=e]?i[s]=/\.BE\b/i.test(s)?"TP.\b"+(TP.push(BE[+t].replace(/^\{|\}$/g,""))-1):unfold(e,"TP"):"Tuple.next"});return a.replace(/\.[\b]/g,".")},"@(\\j)\\#?":function(e,t,r){var n;return r!=n&&LITERALS.test(t)?"this"+t+r:r!=n?"this."+t+r:"this."+t},"@":function(e,t){return"this"},"(\\j)\\s*(PR\\.\\d+)":function(e,t,r){return t+unfold(r,"PR")},"(\\j)\\s*(BK\\.\\d+)(\\z*)(\\=\\z*[^\\=](?:\\j(?:\\.\\d+)?))?":function(e,t,r,n,a){r=unfold(r,"BK"),a=a||"";var s,o,i,l,p=RegExp;return/\[([\w\$\-\.]+?)?\s*(\.{2,3})\s*([\w\$\-\.]+?)?\]/.test(r)?(s=p.$1||0,o=p.$3||0,i=".."==p.$2&&""==a?"slice":"splice",l=/^[^\-,]*?\-\d+/.test(s)||+s<0&&+s<1/0?t+".length "+(s+"").replace(/^\s*\-\s*/,"- "):s,t+"."+i+"("+("slice"==i?l:s)+", "+o+unfold(a,"BK").replace(/^(\=[\b\s]*)\[|\]\s*$/g,"$1").replace(/^\=[\b\s]*/,", ")+")"):ignore(t+"\b"+fold(r)+"\b"+n+a)},"((?:[\\:\\=,\\(\\[\\{]|\\b)\\z*)(BK\\.\\d+)":function(e,t,r){r=unfold(r,"BK");var n=function(e){return{"":10,"0b":2,"0o":8,"0x":16}[e.toLowerCase()]},a=RegExp;if(!/\[((0[box])?[\da-f\.]+?)?\s*(\.{2,3})\s*((?:0[box])?[\da-f\.]+?)?\]/i.test(r))return ignore(e);for(var s,o=+(a.$1||0),i=n(s=a.$2||""),l=+(a.$4||1),p=".."==a.$3,u=[],c=o<l;c?p?o<l+1:o<l:p?o>l-1:o>l;o+=c?1:-1)u.push(s+o.toString(i));return ignore(t+"["+u.join(", ")+"]")},"([\\:\\=,;\\(\\[\\{]\\z*)(\\.?(B[EK]|TP)\\.\\d+)":function(e,t,r,n){var a,s={BE:"{}",BK:"[]",TP:"()"}[n],o="",i={TP:"new Tuple"}[n]||"";if(r=fold(unfold(r,"BE BK TP").replace(/^new\sTuple/,"").replace(/^[\{\[\(]|[\)\]\}]$/g,"")),/^\s*$/.test(r))return t+s;"TP"==n&&(r=unfold(r,"PR")),r=r.split(newline);for(var l,p=0,u=3,c=[],f=/^[\s\b]*$/;p<r.length-1;p++)(!f.test(r[p])||f.test(r[p])&&!f.test(r[p+1]))&&c.push(r[p].replace(/^(\s*)([^,]*?)?(,)?(\s*[\b]*(VC|[MS]L|DS|EM|PN)\.\d+[\b]*)?\s*?$/,function(e,t,r,n,s){return l={a:r!=a,b:n!=a,c:s!=a},u+=+l.c,r=r!=a?r+",":"",o=o||t,!l.a||l.b||l.c?r+(s||"")+newline:r+newline}));return c.length<1&&(c=r),ignore(fold(t+i+(s[0]+(c.length>3?c.join(o).replace(/(\s*)$/,newline+"$1"):c.join(o))+s[1]).replace(/,([\s\b]*(?:VC|ML|DS|EM|PN|SL)\.\d+[\b]*)?\s*[\)\]\}]$/,"$1"+(c.length>1?newline+o.slice(2,o.length):"")+s[1]).replace(/([\:\{\[\(]\s*),\s*/g,"$1")))}},_patterns_={"\\.${reserved}":function(e,t){return'["'+t+'"]'},"${reserved}\\s*\\:":function(e,t){return'"'+t+'":'},"\\b(?:var|const|let)\\s+(\\j)\\.(\\j)":function(e,t,r){return t+"."+r},"(\\l+)\\s*(${condition})\\s*(\\l+)\\s*(${condition})\\s*(\\l+)":function(e,t,r,n,a,s){return t+" "+r+" "+n+" && "+n+" "+a+" "+s},"(\\j\\#?|\\N)(\\s+)(\\j)(\\s+)(\\j\\#?|\\N)":function(e,t,r,n,a,s,o,i){function l(e){return reserved.test(e)&&!variable_regexp.test(e)}var p,u,c,f,d=RTS.p,g=RTS.s,b=RTS.m,_=Operator.kids;if(r=r||"",i=i||"",l(t)||l(a)||l(o)||LITERALS.E.test(t)&&LITERALS.E.test(o))return ignore(unfold(e));if(_!=f&&((p=_[t])!=f||(u=_[a])!=f||(c=_[o])!=f)){if((p=p||{}).root==g||p.root==d)return a+s+"\b"+t+"("+o+")";if((c=c||{}).root==d||c.root==g)return t+n+"\b"+o+"("+a+")";if((u||{}).root==b)return a+"("+t+", "+o+")"}return unfold(t).replace(r,"")+"("+a+" "+s+compile(unfold(o).replace(i,""))+")"},"(\\j\\#?|\\N)(\\s+)(\\j\\l+)(\\.{3})?":function(e,t,r,n,a,s){function o(e){return reserved.test(e)&&!variable_regexp.test(e)}var i,l,p,u=RTS.p,c=RTS.s,f=Operator.kids;r=r||"";var d="..."==(s=s||"");if(o(t)||o(a)||LITERALS.E.test(t)&&LITERALS.E.test(a))return ignore(unfold(e));if(f!=p&&((i=f[t])!=p||(l=f[a])!=p)){if((i=i||{}).root==c||i.root==u)return d?t+".apply(null, "+a+")":t+"("+a+")";if((l=l||{}).root==u||l.root==c)return d?a+".apply(null, "+t+")":a+"("+t+")"}return number.test(t)?t+n+"*"+n+a:(t=unfold(t).replace(r,""),d?t+".apply(null, "+compile(unfold(a).replace(s,""))+")":t+"("+a+")")},"(\\d+|\\.)(?:\\.(\\d{3}))(\\.[\\.\\d]+)?":function(e,t,r,n){return void 0==n&&"."!=t?ignore(t+"."+r):(t+r+n).replace(/\./g,"")},"([\\!~\\*%+\\-<>&\\^\\|\\?\\:\\=,;\\(\\[\\{\\}]|${reserved})[\\b\\s]*\\*\\s*":function(e,t){return ignore("function"==t?e:t+" \bnew\b ")},"\\.(BE\\.\\d+)":function(e,t){return"new\b Tuple("+unfold(t,"BE").replace(/^\{|\}$/g,"")+")"},"(\\j)\\s*((?:[DST][Qq]|QI|ST|R[Xq])\\.\\d+)":function(e,t,r){return t+"("+r+")"}};return run([patterns,_patterns_][0|+index]),string}function StampTime(e,t){var r=+new Date;return Reel[r]=e,Reel[r+"-message"]=t,e}function minify(e){return e.replace(/\btrue\b/g,"!0").replace(/\bfalse\b/g,"!1").replace(/\bundefined\b/g,"void 0").replace(/[\b]+/g," ").replace(/\s*(\W)\s*/g,"$1")}function f(e){return Math.round(+e).toString().split("").reverse().join("").replace(/(\d{3})/g,"$1,").replace(/,$/,"").split("").reverse().join("")}function h(e,t,r){for(var n="YZEPTGMK\b".split(""),a=+e>0?1:-1,e=Math.abs(+e);e>=Math.pow(r=1==r?1e3:1024,(t||0)+1)&&n.length>1;e/=r)n.pop();return(a*e+"").replace(/\.(\d{3}).*/,".$1")+n.reverse()[0]+(1e3==r?"":"b")}function c(e,t){return["1%","10%","20%","30%","40%","50%","60%","70%","80%","90%","99%"][Math.round(e/t>1?e/t/100:e/t*10)]}function s(){for(var e,t,r=arguments,n=[],a=0;a<r.length;a++)n.push((e=(t=(r[a]+"").replace(/[\b]/g,"")).length)<=12?t+" ".repeat(12-e):t.slice(0,9)+"...");return n.join("| ").replace(/[\b]/g,"")}function w(e){return e?(r++,"Paramour"):"JavaScript"}switch(Paramour.version="31.4.1",Paramour.versionName="Oxygen",typeof input){case"string":break;case"object":void 0!=input.value&&null!=input.value?input=input.value:void 0!=input.innerText&&null!=input.innerText?input=input.innerText:void 0!=input.innerHTML&&null!=input.innerHTML?input=input.innerHTML:input.constructor==Array&&(input=input.join("\n"));break;default:try{input=input.toString()}catch(e){Throw(e,"["+(input=typeof input)+" -> String]","Failed to convert "+input+" value")}}(options=options||{}).native=void 0==options.native?/(#|\/\/)\s*@native/.test(input):options.native;var JavaScript_Manager=void 0==Object.prototype.__defineGetter__||void 0==Object.prototype.__defineSetter__;JavaScript_Manager&&(Object.prototype.__defineGetter__=function(e,t){return void 0!=this[e]?this[e]:Object.defineProperty(this,e,{get:t})},Object.prototype.__defineSetter__=function(e,t){return void 0!=this[e]?this[e]:Object.defineProperty(this,e,{set:t})}),Global.navigator=navigator,Global.navigator.__defineGetter__("runtime",function(){return runtime}),Global.navigator.__defineGetter__("paramour",function(){return Paramour});var backup,newline,self,strict=options.strict,native=options.native,condition=/[\&\|~]|[<>]=?|[!=]={1,2}/,number=/([-+]?(?:0b[01]+|0o[0-7]+|0x[\da-f]+|(?:\.\d+|\d+\.?\d*)(?:e[-+]?\d+\.?\d*)?))\b/i,tabs=!1,RTS={p:"prefix-",m:"media-",s:"suffix-",P:"Prefix_",M:"Media_",S:"Suffix_"},reserved=/(\b(?:abstract|boolean|break|byte|ca(?:se|tch)|char|class|con(?:st|tinue)|de(?:bugger|fault|lete)|do(?:uble)?|else|enum|eval|ex(?:port|tends)|false|final(?:ly)?|float|for|function|goto|i[fn]|imp(?:lements|ort)|int(?:erface)?|long|native|new|null|package|pr(?:ivate|otected)|public|return|short|static|super|switch|synchronized|this|throws?|tr(?:ansient|ue|y)|(?:instance|type)?of|(?:un)?defined|var|vo(?:id|latile)|while|with|yield|[gsl]et|self)\b|(?:\binit\:\:|@|[\-\+\~\&]>))/,errors=/(\s*var\s*;|[\b]*|.*[sp]ocket\?=[a-zA-Z\$_][\w\$]*.*(?:\n\r?|\r)?)/g,global_expressions=[],operators="!~*/%+-<>&^|?:=".split(""),operators_regexp=/[\!~\*\/\%\+\-<>\&\^\|\?\:\=]/,operator_names={"!":"Not_","~":"Tilde_","*":"Star_","/":"Slash_","%":"Cent_","+":"Plus_","-":"Minus_","<":"Less_Than_",">":"Greater_Than_","&":"And_","^":"Caret_","|":"Or_","?":"Question_Mark_",":":"Colon_","=":"Equals_"},LITERALS={U:/(SU|VC|[MS]L|DS|EM|PN)\.(\d+)/,N:/(TP|B[EK]|PR)\.(\d+)/,E:/([DST][Qq]|ST|R[Xq]|QI)\.(\d+)/,Unesc:"SU VC ML SL DS EM PN",Noesc:"TP BE BK PR",Esc:"DQ Dq SQ Sq Tq ST RX Rq QI",test:function(e){var t=LITERALS;return t.E.test(e)||t.N.test(e)||t.E.test(e)},join:function(e){var t=LITERALS,e=e||" ";return[t.Unesc,t.Noesc,t.Esc].join(" ").split(" ").join(e)}},SU=[],VC=[],ML=[],DS=[],EM=[],PN=[],SL=[],TP=[],PR=[],BE=[],BK=[],DQ=[],SQ=[],RX=[],QI=[],Dq=[],Sq=[],Tq=[],Rq=[],DL=[],IG=[],ST=[],patterns={SU:native?/\/\/\s*?(\s?@(?:strict|mini|deps|embed|native))/:/#\s*?(\s?@(?:strict|mini|deps|embed|native))/,DL:/(\$(?:[_'&`+]))/,Dq:/("""(?:[^\\]|\\.)*?""")/,Sq:/('''(?:[^\\]|\\.)*?''')/,Tq:/(```(?:[^\\]|\\.)*?```)/,Rq:/((?:[\(\)\[\]\{\}\!\~\*\/%\+\-<>\&\^\|\?\:\=,;]|[\b\n\r])[\x20\t\v ]*)(\/{3}(?:[^\\]|\\.)*?\/{3}(?:[imguy]*\b)?)/,DQ:/("(?:[^\\\n\r]|\\.)*?")/,SQ:/('(?:[^\\\n\r]|\\.)*?')/,RX:/((?:[\(\)\[\]\{\}\!\~\*\/%\+\-<>\&\^\|\?\:\=,;]|[\b])[\x20\t\v ]*)(\/(?:[^\\\/\*\n\r]|\\.)*?\/(?:[imguy]*\b)?)/,VC:native?/\/\/\s*([\d\.]+\?[\s\S]*?)\/\/\?/:/#\s*([\d\.]+\?[\s\S]*?)#\?/,ML:native?/\/\*([^\*][\s\S]*?)\*\//:/###([\s\S]*?)###/,DS:/\/\*([\s\S]*?)\*\//,EM:native?/\/\/\s*@([\d\.]+)/:/#\s*@([\d\.]+)/,PN:native?/\/\/\s*\$([a-zA-Z\$_][\w\$]*\s*[\-\=]>.+)/:/#\s*\$([a-zA-Z\$_][\w\$]*\s*[\-\=]>.+)/,SL:native?/\/\/(.*)/:/#(.*)/,QI:/(`(?:[^\\]|\\.)*?`)/,BK:/(\[[^\[\]\(\)\{\}]*?\])/,PR:/(\([^\(\)\{\}\[\]]*?\))/,TP:/\.\{([^\{\}]*?)\}/,BE:/(\{[^\{\}\[\]\(\)]*?\})/},_patterns_={BK:/(\[[^\[\]\(\)\{\}]*?\])/,PR:/(\([^\(\)\{\}\[\]]*?\))/,BE:/(\{[^\{\}\[\]\(\)]*?\})/},__patterns__={BK:/(\[[^\[\]*?]\])/,PR:/(\([^\(\)]*?\))/,BE:/(\{[^\{\}]*?\})/},SYMBOLS={DL:"",Dq:"",Sq:"",Tq:"",Rq:"",DQ:"",SQ:"",RX:"",SU:native?"// @":"# @",VC:native?["//","//?"]:["#","#?"],ML:native?["/*","*/"]:["###","###"],DS:["/*","*/"],EM:native?"// @":"# @",PN:native?"// $":"# $",SL:native?"//":"#",QI:"",TP:[".{","}"],PR:"",BE:"",BK:"",ST:"",IG:""},native_types={DL:DL,Dq:Dq,Sq:Sq,Tq:Tq,Rq:Rq,DQ:DQ,SQ:SQ,RX:RX,SU:SU,VC:VC,ML:ML,DS:DS,EM:EM,PN:PN,SL:SL,QI:QI,TP:TP,PR:PR,BE:BE,BK:BK,ST:ST,IG:IG},backup=input="\b"+input.replace(/[\t\v]/g,function(e){return void 0!=e&&(tabs=!0)," "}),clock={start:+new Date,stop:null,span:null},runtime={is:function(e){switch(e+""){case"*":return runtime.is("1.8.5");case"1.8.5":if(void 0==Symbol||null==Symbol)return runtime.is("1.8.1");break;case"1.8.1":if(void 0==Object.getPrototypeOf||null==Object.getPrototypeOf)return runtime.is("1.8");break;case"1.8":if(void 0==Array.prototype.reduce||null==Array.prototype.reduce)return runtime.is("1.7");break;case"1.7":if(void 0!=Array.prototype.indexOf&&null!=Array.prototype.indexOf&&(void 0==Array.prototype.reduce||null==Array.prototype.reduce))return runtime.is("1.6");break;case"1.6":if(void 0==Array.prototype.indexOf||null==Array.prototype.indexOf)return runtime.is("1.5");break;case"1.5":if(void 0==Number.prototype.toExponential||null==Number.prototype.toExponential)return runtime.is("1.4");break;case"1.4":if(void 0==Function.prototype.length||null==Function.prototype.length)return runtime.is("1.3");break;case"1.3":if(void 0==Function.prototype.apply||null==Function.prototype.apply)return runtime.is("1.2");break;case"1.2":if(void 0==Array.prototype.concat||null==Array.prototype.concat)return runtime.is("1.1");break;default:return"1.1"}return e},has:function(e){if(void 0!=Paramour.support)return Paramour.support.indexOf(e)>-1;var t=["1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.8.1","1.8.5"];return t=t.slice(0,t.indexOf(runtime.is("*"))+1),Paramour.runtime=(Paramour.support=t)[t.length-1],t.indexOf(e)>-1},emulate:function(e){var t=["*","1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.8.1","1.8.5"];return Paramour.support=t.slice(0,(t.indexOf(e)||t.indexOf(runtime.is("*")))+1),Paramour.runtime=runtime.emu=runtime.current=Paramour.support[Paramour.support.length-1],Paramour.support},equals:function(e){return runtime.current==e+""},original:void 0,emu:void 0,current:void 0,manned:JavaScript_Manager,unmanned:!JavaScript_Manager};Tuple=Global.Tuple=Paramour.Tuple=Tuple=function(e){function t(){return this.index=0,this.arguments=[].slice.call(arguments),this.length=this.arguments.length,t.last=this}function r(e,t,n){var a=!1;return a="object"==typeof t[e]&&t.hasOwnProperty(e)?a||r(t[e],t,n):!(!t.hasOwnProperty(e)||t[e]!=n[e])||(a||t[e]==n[e])}return t.prototype={constructor:t},t.prototype.every=function(){var e=arguments,r=Types.apply(null,arguments).split(",");Types.check,Types.oftype;switch(r+""){case"Function":return t.prototype.every__Function.apply(this,e);default:throw TypeError("Tuple.prototype.every("+r+") is undefined")}},t.prototype.every__Function=function(e){var t=0,r=this.arguments,n=!0;for(r.length;t<r.length&&n;t++)n=e.apply(null,r[t]);return n},t.prototype.forEach=function(){var e=arguments,r=Types.apply(null,arguments).split(",");Types.check,Types.oftype;switch(r+""){case"Function":return t.prototype.forEach__Function.apply(this,e);default:throw TypeError("Tuple.prototype.forEach("+r+") is undefined")}},t.prototype.forEach__Function=function(e){var t=0,r=this.arguments,n=!0;for(r.length;t<r.length&&n;t++)n=e.apply(null,r[t]);return n},t.prototype.indexOf=function(e){for(var t=0,n=this.arguments,a=!1;a=n[t];t++){if("object"==typeof e||e==a)return t;if(e.constructor==a.constructor)for(var s in e){if("object"==typeof e[s]&&e.hasOwnProperty(s)?r(s,e,a):e[s]==a[s])return t;if(e.constructor==Array){for(var o=0,i=e.length;o<i;o++)if(0==e.length&&0==a.length||"object"==typeof e[o]?r(o,e,a):e[o]==a[o])return t}else if(e.constructor==RegExp&&e.source==a.source&&e.flags==a.flags)return t}}return-1},t.prototype.lastIndexOf=function(e){for(var t=0,n=this.arguments,a=!1,s=-1;a=n[t];t++){if("object"==typeof e||e==a)return t;if(e.constructor==a.constructor)for(var o in e)if("object"==typeof e[o]&&e.hasOwnProperty(o)?r(o,e,a):e[o]==a[o])s=t;else if(e.constructor==Array)for(var i=0,l=e.length;i<l;i++)(0==e.length&&0==a.length||"object"==typeof e[i]?r(i,e,a):e[i]==a[i])&&(s=t);else e.constructor==RegExp&&e.source==a.source&&e.flags==a.flags&&(s=t)}return s},t.prototype.join=function(e){return this.arguments.join(e)},t.prototype.next=function(e){return e=e||1,this.arguments.slice(this.index,(this.index+=e,e))},t.from=function(){var e=arguments,r=Types.apply(null,arguments).split(",");Types.check,Types.oftype;switch(r+""){case r.slice(0,e.length)+"":return t.from__Spread.apply(this,e);default:throw TypeError("Tuple.from("+r+") is undefined")}},t.from__Spread=function(){for(var e,arguments=[].slice.call(arguments),r=0,n=[];(e=arguments[r])||r<arguments.length;r++)n.push("function"==typeof e?e.name||e.toString():e==Global?"Global":e);return t.constructor.apply(null,arguments)},t.__defineGetter__("next",function(){return t.last.next()}),t}(),NewLine=Global.NewLine=Paramour.NewLine=function(){function e(e){var t={"\n":"\\n","\r":"\\r","\f":"\\f","\n\r":"\\n\\r","\r\n":"\\r\\n","\n\f":"\\n\\f","\f\n":"\\f\\n","\f\r":"\\f\\r","\r\f":"\\r\\f"};return void 0!=e&&null!=e&&/^[\n\r\f]{1,2}$/.test(e)||(e="\n"),this.sequence=e,this.unescaped=this.unesc=e,this.escaped=this.esc=t[e],this}return e.prototype.toRegExp=function(e,t){return e?new RegExp("("+this.escaped+")",t):new RegExp("(?:"+this.escaped+")",t)},e.prototype.toString=function(e){return e?this.escaped:this.unescaped},e}(),runtime.original=runtime.current=runtime.is("*"),input.replace(/\S(\n[\f\r]?|[\r\f]{1,2}\n?)$/),Global.newline=newline=new NewLine(RegExp.$1),navigator.__defineGetter__("newline",function(){return newline});var Operator=Paramour.Operator=function(e,t,r,n,a,s){Operator.__defineGetter__("constructor",function(){return Operator}),Operator.kids[e]={operator:e,"argument-types":t,root:r,function:n,brace:a,name:s}};Operator.kids=Operator.kids||{},Types=Paramour.types=function(){for(var e,t=0,r=[],n=[].slice.call(arguments);t<n.length;t++)void 0!=(e=n[t])&&null!=e&&e.constructor==Function&&void 0!=e.name&&null!=e.name&&""!=e.name?r.push(e.name):void 0!=e&&null!=e?r.push(e.constructor.name):r.push(typeof e);return r.join(",")},Paramour.NativeTypeFN={},Paramour.SubTypeFN={},Paramour.ClassTypeFN={};var Pull=Paramour.Pull=function(e,t,r){var n=e.toLowerCase().replace(/\W|typefn$/gi,""),a="TypeFN";n=n[0].toUpperCase()+n.slice(1,n.length);var s=Paramour[n+a];switch(t=t.name||t,n.toLowerCase()){case"native":return s[t];case"sub":case"class":return void 0==r||null==r?s[t]:s[t][r];default:return}},Push=Paramour.Push=function(e,t,r,n){var a=e.toLowerCase().replace(/\W|typefn$/g,""),s="TypeFN",o=/^(?:([a-z\$_][\w\$]*)\s+)?(?:\.{3}([@\.a-z\$_][\w\$]*)|([@\.a-z\$_][\w\$]*)?\.{3})/gi,i=/^([a-z\$_][\w\$]*)$/gi,l=/\s*,\s*/;a=a[0].toUpperCase()+a.slice(1,a.length);var p=Paramour[a+s];t=t.name||t;for(var u=0,c=[],f=(r=r.replace(/^\s+|\s+$/g,"").replace(/\s+/g," ")).split(l);u<f.length;u++)c.push(f[u].replace(i,"Any").replace(o,"Spread/$1").replace(/\//g,"$").split(" ")[0].replace(/\$$/g,""));switch(r=c,a.toLowerCase()){case"native":return p[t]=void 0==p[t]||p[t].constructor!=Array?[]:p[t],p[t].push(r);case"sub":case"class":return p[t]=void 0==p[t]||p[t].constructor!=Object?{}:p[t],p[t][n]=void 0==p[t][n]||p[t][n].constructor!=Array?[]:p[t][n],p[t][n].push(r);default:return}};Object.assign=Object.assign||function(e){var t=[].slice.call(arguments).slice(1,arguments.length);if(t.length<1)return e;for(var r=0;r<t.length;r++)for(var n in t[r])t[r].hasOwnProperty(n)&&(e[n]=t[r][n]);return e},options=Object.assign({deps:!0,embed:!1,mini:!1,strict:!1,native:!1},options||{}),Array.prototype.indexOfRegExp=Array.prototype.indexOfRegExp||function(e){for(var t=0;t<this.length;t++)if(e.test(this[t]))return t;return-1},Array.prototype.lastIndexOfRegExp=Array.prototype.lastIndexOfRegExp||function(e){for(var t=0,r=-1;t<this.length;t++)e.test(this[t])&&(r=t);return r};var u,o={},D=DS;for(var p in o)o[p]=u;Paramour["@DocStrings"]=Paramour["@DocStrings"]||o,Paramour["@Stamps"]=Paramour["@DocStrings"]["@Stamps"]=void 0==Paramour["@Stamps"]?[clock]:Paramour["@Stamps"].concat(clock),String.prototype.setDocString=String.prototype.setDocString||function setDocString(fn){var f=fn||"",P=Paramour||{},D=D||[],newline=newline||"\r\n",n=(+this<=1/0?D[+this]:this)||"",d=P["@DocStrings"],t,s,u;return u=d[t=""!=f?"function"==typeof f?f.name||"":f:"Anonymous Expression"]=void 0==d[t]||null==d[t]||"object"!=typeof d[t]?[]:d[t],s=d[t].push(("'"+t+newline.esc+"'+"+newline+"'"+n.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\n\r?|\r)/g,newline.esc+"'+"+newline+"'")+"'").replace(/\+\s*''/g,"")),f.DOCSTRING=eval(u[s-1])},String.prototype.repeat=String.prototype.repeat||function(e){for(var t=[];e>0;--e)t.push(this);return t.join("")};for(var pattern in patterns)global_expressions.indexOf(pattern)<0&&global_expressions.push(pattern);PN.kids=[],input=shock(input),input=fold(input,void 0,patterns),input=fold(input,void 0,_patterns_),input=fold(input,void 0,__patterns__),input=input.replace(/(.*)([\(\)\[\]\{\}"'`])(.*)/,function(e,t,r,n){function a(e){return++e+":"+" ".repeat((h.length+"").length-(e+"").length+1)}function s(e){return/^(\s*|undefined)$/.test(h[e=_+e]+"")?"":a(e)+h[e]+"$1"}for(var o,i=new SyntaxError,l="Unmatched token",p="Unterminated stream",u="indexOf",c="lastIndexOf",f={"{":[l,u],"}":[l,c],"(":[l,u],")":[l,c],"[":[l,u],"]":[l,c],'"':[p,c],"'":[p,c],"`":[p,c]},d=RegExp("("+global_expressions.join("|")+")\\.(\\d+)");d.test(e);)e=e.replace(d,(SYMBOLS[o=RegExp.$1][0]||"")+(native_types[o][+RegExp.$2]||"")+(SYMBOLS[o][1]||""));e=e.replace(/[\b]/g,"");e:for(var g,b,_=0,h=backup.replace(/[\b]/g,"").replace(/\$/g,"$$").split(newline),$=e.split(newline);_<h.length;_++)for(var m=0;b=$[m],m<$.length;m++)if((h[_]==b||h[_]==b.slice(0,h[_].length))&&!/^\s*$/.test(h[_])&&(g=b[f[r][1]||"indexOf"](r))>-1){g=g>-1?g+1:"?";break e}void 0==g&&(g=h[--_][f[r][1]||"indexOf"](r)-1);var v,y=f[r][0]||"Unexpected token sequence";Throw(i,("[String -> Array]$1\tat ["+(_+1)+":"+g+"]$1$1"+s(-2)+s(-1)+s(0)+((v=" ".repeat(a(_).length+(g-1))).length>y.length+4?v.slice(0,v.length-(y.length+3))+"["+y+"] ^":v+"^ ["+y+"]")+"$1"+s(1)+s(2)).replace(/[\b]/g,""),y)});for(var x=0;x<EM.length;x++)runtime.emulate(EM[x]);for(var x=0,strict,deps,mini,embed;x<SU.length;x++)switch(SU[x].replace(/\W+/g,"")){case"strict":strict=options.strict=!0;break;case"deps":deps=options.deps=!0;break;case"mini":mini=options.mini=!0;break;case"embed":embed=options.embed=!0}PN.replace=function(e){for(var t=0;t<PN.kids.length;t++)for(var r in PN.kids[t])for(var n=RegExp("([\\b\\s]*)([\\a-zA-Z\\$_][\\w\\$]*)?(\\$"+r+")\\b"),a=[];n.test(e);)e=e.replace(n,function(e,n,s,o){return""!=(s=s||"")?n+"\bP."+(a.push(s+o)-1)+"\b":n+undol(PN.kids[t][r]+"")});for(n=/[\b]P\.(\d+)[\b]/;n.test(e);)e=e.replace(n,function(e,t){return a[+t]});return e};var arrow_state=/\s*(?:(?:\:[a-zA-Z\$_][\w\$]*)?(?:\s*([\=\-\~\+\&])>))/,variable_regexp=/\b(arguments|eval|false|null|this|true|undefined|void)\b/,type_regexp=/((([a-z\$_][\w\$]*|\.{3})\s+|\*\s*)[a-z\$_][\w\$]*|[a-z\$_][\w\$]*(\*|\.{3})|\.{3}[a-z\$_][\w\$]*\s*[,\=])/i,equals_regexp=/(?:[^\.]\.)?([@a-z\$_][\w\$]*)\s*\=/i,dot_regexp=/^\.[@a-z\$_][\w\$]*|[^\.]\.[@a-z\$_][\w\$]*/i,spread_regexp=/\.{3}\s+[@\.a-z\$_][\w\$]*|[@\.a-z\$_][\w\$]*\.{3}|\.{3}[@\.a-z\$_][\w\$]*\s*[,\=]?/i,type_spread_regexp=/([a-z\$_][\w\$]*)\s+([@\.a-z\$_][\w\$]*)\.{3}/i;compile.counts=0;var Reel={},SnapShot=Paramour.SnapShot=Paramour.SnapShot||[];(SnapShot=SnapShot.length<50?SnapShot:SnapShot.slice(1,50)).push((StampTime(input),Reel)),Global.SnapShot=Paramour.SnapShot=SnapShot,StampTime(input,"Setup complete. Run {compile} I"),options.mini&&(input=input.replace(/\b([DE]?[MS][LU]?|VC|PN)\.\d+\b/g,"")),input=compile(input,0),StampTime(input,"{compile} I complete. Run {compile} II"),input=unfold(input,"Dq Sq Tq Rq DQ SQ RX QI ML SL TP BK PR BE"),input=compile(input,1),StampTime(input,"{compile} II complete. Replace {LITERALS.S}, and {errors}"),input=unfold(input),input=unshock(input),input=unignore(input),runtime.has("1.6")&&(input=unfold(fold(input,"PR").replace(/\.([a-zA-Z\$_][\w\$]*[\b\s]*PR\.\d+[\b\s]*\{[\s\S]*?\})/g,"$1").replace(/([a-zA-Z\$_][\w\$]*)\.{3}/g,"...$1"))),input=unfold(input).replace(/([\&\|\?\:\=,;\(\[\{\}]\s*)\*[\x20\t\v\u0008 ]*/g,"$1new\b ").replace(RegExp("("+reserved.source+"[\\x20\\t\\v\\u0008 ]+)\\*","g"),"$1new\b ").replace(/\bfunction[\b\s]+new[\b\s]+/g,"function *"),input=unstaple(input,unfold),StampTime(input,"Replacing complete. Replace <Phantoms>"),input=PN.replace(input),StampTime(input,"Replacing complete. Handle <Native-Typed-Functions>");for(var fn in Paramour.NativeTypeFN)Paramour.NativeTypeFN[fn]&&Paramour.NativeTypeFN[fn].constructor==Array&&(input=handle_typefn(input,"Native",fn,void 0,"\tfunction ",""));StampTime(input,"Handling complete. Handle <Class-Typed-Methods>");e:for(var cls in Paramour.ClassTypeFN)for(var fn in Paramour.ClassTypeFN[cls]){if(Paramour.ClassTypeFN[cls]&&Paramour.ClassTypeFN[cls][fn]&&Paramour.ClassTypeFN[cls][fn].constructor!=Array)break e;input=handle_typefn(input,"Class",fn,cls,"\t ","\\locket")}StampTime(input,"Handling complete. Handle <Docstrings>");var q={"DS\\?=(\\d+)((?:\\z|[\\b])*\\j(?:[\\.\\w]+)?)((?:\\z|[\\b])+\\j(?:[\\.\\w]+)?)":function(e,t,r,n){return'("'+unstaple(unfold(DS[+t]),unfold,unignore).replace(/"/g,'\\"').split(newline.toRegExp()).join(newline.esc+'" +'+newline.unesc+'"')+'").setDocString('+n.replace(/\s/g,"")+");"+newline+r+n},"DS\\?=(\\d+)((?:\\z|[\\b])*\\j(?:[\\.\\w]+)?)":function(e,t,r){return'("'+unstaple(unfold(DS[+t]),unfold,unignore).replace(/"/g,'\\"').split(newline.toRegExp()).join(newline.esc+'" +'+newline.unesc+'"')+'").setDocString('+r.replace(/\s/g,"")+");"+newline+r},"DS\\?=(\\d+)":function(e,t){return'("'+unstaple(unfold(DS[+t]),unfold,unignore).replace(/"/g,'\\"').split(newline.toRegExp()).join(newline.esc+'" +'+newline.unesc+'"')+'")'}};for(var o in q)for(var k=RegExp(randle(o,!0));!mini&&k.test(input);)input=input.replace(k,q[o]);input=input.replace(/\bfunction[\b\s]+([a-zA-Z\$_][\w\$]*\.)/g,"$1"),Paramour.DocStrings=DS,StampTime(input,"Handling complete. Handle <Paramour-Methods>, <Paramour-Properties>, and {JSUNIT}");var p={getFormData:function(e){void 0==e||null==e?e=Global.location:e.constructor!=URL&&(e=new URL(e));var t=e.search+"";return/^\?/.test(t)?""==(t=t.replace(/^\?/,"").replace(/\\/g,"\\\\\\").replace(/(["'])/g,"\\$1"))?{}:(t='{"'+(encodeURI(t).split("&").join('","')||"=").replace(/=/g,'":"').replace(/,(\n\r?|\r\n?)+/g,",")+'"}',JSON.parse(decodeURI(t))):{}},storage:{set:function(){if(void 0==Storage)return!1;for(var e=0,t=arguments.length;e<t;e++)localStorage.setItem(arguments[e],arguments[++e]);return!0},check:function(e){return void 0!=Paramour.storage.get(e)},get:function(e){return localStorage.getItem(e)},delete:function(e){return localStorage.setItem(e,void 0),!Paramour.storage.check(e)}},Qy:function(e,t){return e=document.querySelectorAll(e),void 0==t?e:e[+t]},save:function(e,t){var r=Global.location.pathname+"";return e=t?encodeURI(e):e,t=t||r.substring(r.lastIndexOf("/")+1,r.length)+".cache",Paramour.storage.set(t,e)},load:function(e,t){var r=Global.location.pathname+"";return e=t?encodeURI(e):e,e=e||r.substring(r.lastIndexOf("/")+1,r.length)+".cache",Paramour.storage.get(e)},delete:function(e,t){var r=Global.location.pathname+"";return e=t?encodeURI(e):e,e=e||r.substring(r.lastIndexOf("/")+1,r.length)+".cache",Paramour.storage.delete(e)},typeof:function(e){if(arguments.length>1)return Paramour.typeOf.apply(null,arguments);switch(typeof e){case typeof Boolean():case typeof Function():break;case typeof Number():padding="";break;case typeof Object():switch(e.constructor){case RegExp:padding="";break;case Array:padding="[]";break;default:padding="{}"}break;case typeof String():padding='""';break;case typeof Symbol():padding=["(@@",")"],e+="";break;case"undefined":padding="";break;default:padding=""}return(padding[0]||"")+e+(padding[1]||"")},typeOf:Paramour.types,random:function(){return Boolean(Math.round(Math.random()))}};JSUNIT=Global.JSUNIT=Paramour.JSUNIT={assert:function(e,t){JSUNIT.count=JSUNIT.count||0,JSUNIT.log("Message: ["+e+"]\v\tat <Test "+JSUNIT.count+++">"+(void 0!=t?"\v\tassert:\v\t["+t+"]":""))},assertTrue:function(e,t){JSUNIT.assertEquals(!0,e,t,"True")},assertFalse:function(e,t){JSUNIT.assertEquals(!1,e,t,"False")},assertEquals:function(e,t,r,n){if(JSUNIT.count=JSUNIT.count||0,t==e)return JSUNIT.count++;JSUNIT.out("Exception in assert"+(n||"Equals")+(void 0!=r?" ["+r+"]":"")+"\v\tat <Test "+JSUNIT.count+++">\v\texpected: '"+(e+"").slice(0,12)+((e+"").length>12?"...":"")+"'\v\treceived: '"+(t+"").slice(0,12)+((t+"").length>12?"...":"")+"'")},assertNotEquals:function(e,t,r,n){if(JSUNIT.count=JSUNIT.count||0,t!=e)return JSUNIT.count++;JSUNIT.out("Exception in assertNot"+(n||"Equals")+(void 0!=r?" ["+r+"]":"")+"\v\tat <Test "+JSUNIT.count+++">\v\tunexpected: '"+(e+"").slice(0,12)+((e+"").length>12?"...":"")+"'")},assertNull:function(e,t){JSUNIT.assertEquals(null,e,t,"Null")},assertNotNull:function(e,t){JSUNIT.assertNotEquals(null,e,t,"Null")},assertUndefined:function(e,t){JSUNIT.assertEquals(void 0,e,t,"Undefined")},assertNotUndefined:function(e,t){JSUNIT.assertNotEquals(void 0,e,t,"Undefined")},assertNaN:function(e,t){JSUNIT.assertEquals("NaN",e+"",t,"NaN")},assertNotNaN:function(e,t){JSUNIT.assertNotEquals("NaN",e+"",t,"NaN")},assertFail:function(e){JSUNIT.out("Exception in assertFail"+(void 0!=e?" ["+e+"]":"")+"\v\tat <Test "+JSUNIT.count+++">\v\t undefined Error")},count:0,out:function(e){!JSUNIT.toconsole&&(JSUNIT.toconsole=null!=(JSUNIT.html=document.querySelector("#jsunit-stdout")))?JSUNIT.html.innerHTML+=e.replace(/([\n\v]\r?|\r)\s\s/g,"<br>&nbsp;&nbsp;").replace(/([\n\v]\r?|\r)/g,"<br>"):console.error(e.replace(/\v/g,newline))},log:function(e){!JSUNIT.toconsole&&(JSUNIT.toconsole=null!=(JSUNIT.html=document.querySelector("#jsunit-stdout")))?JSUNIT.html.innerHTML+=e.replace(/([\n\v]\r?|\r)\s\s/g,"<br>&nbsp;&nbsp;").replace(/([\n\v]\r?|\r)/g,"<br>"):console.log(e.replace(/\v/g,newline))},stderr:function(e){JSUNIT.out(e)},stdout:function(e){JSUNIT.log(e)},stdin:function(e,t){return prompt(e,t)},Test:{},prototype:{},toconsole:!1};for(var o in p)Paramour[o]=p[o];for(var option in options)if(options[option])switch(option){case"strict":input=input.split(/[\b]*#BARRIER#[\b]*/),input=input.length>1?input.slice(0,input.length-1)+newline+"(function() {"+newline+input[input.length-1]+newline+"}).call(this);":"(function() {"+newline+input.join("")+newline+"}).call(this);";break;case"embed":mini||(input+="\b#SEA-REPORT#\b");break;case"mini":input=unfold(minify(fold(input,"DQ SQ RX QI")));break;case"deps":var m="var Paramour = Paramour || {prototype: {}}, JSUNIT = JSUNIT || (function(){return function Tuple(){return this};}()), Tuple = Tuple || {prototype: {}}, Types;"+newline,t=minify('Types.check = function(a, b) {var c = RegExp("^(\\\\b" + a + "\\\\b,?)+$").test(b),d = (c)? RegExp.$_: b.replace(RegExp("^(\\\\b" + a + "\\\\b,?)+"), "").split(","),i = Types.check.failIndex = ((c)? -1: ((b = b.split(",")).length - d.length));return Types.check.fail = ((c)? "": b.slice(i, b.length) + ""), c};Types.oftype = function(a,b) {return Types.check.index = null,Types.check(a, b + "")? b: b.slice(0, Types.check.index = Types.check.failIndex)};'),a=newline+m;e:for(var p=[Paramour.NativeTypeFN,Paramour.SubTypeFN,Paramour.ClassTypeFN],i=0,j;i<p.length;i++)for(var q in p[i])if(j=p[i].hasOwnProperty(q))break e;j&&(a+="Types="+minify(Types.toString().replace(/function(?:\s+types\b\s*|\s*)\((.*)\)/i,"function Types($1)"))+";"+newline+t),DS.length>0&&(a+=minify("String.prototype.setDocString = String.prototype.setDocString || function setDocString(){return this}")+";");for(var p="String. Object. Tuple Tuple. NewLine JSUNIT Array.".split(" "),q=[/(?:["'`][\s\)]*|\bString\.prototype)\.(repeat)\b/,/(?:\}[\s\)]*|\bObject\.prototype)\.(assign)\b/,/(?:\bTuple(?:\([\s\S]*?\))?)\.(from)\b/,/(?:\bTuple(?:\([\s\S]*?\)|\.prototype))\.(constructor|every|forEach|(?:lastI|i)ndexOf|join|next|toString)\b/,/(?:\bNewLine(?:\([\s\S]*?\)|\.prototype)?)\.(constructor|to(?:RegExp|String))\b/,/(?:\bJSUNIT\.)(std(?:in|out|err)|log|out|toconsole|assert(?:Not)?(?:Equals|NaN|Null|Undefined|True|False)?)\b/,/(?:\][\s\)]*|\bArray\.prototype)\.((?:lastI|i)ndexOfRegExp)\b/],i=0,r,s,t={},u=input,v=[];i<p.length;i++)for((q[i]=q[i]||q[i-1]).test(u);q[i].test(u)&&void 0==t[r=(p[i]=p[i]||p[i-1]).replace(".",".prototype")+"."+RegExp.$1];t[r]=!0)u=u.replace(RegExp("\\b"+r+"\\b","g"),"")+eval(r),v.push(r);for(var i=0,j;i<v.length;i++)/\bfunction\s+([a-zA-Z$_][\w\$]*)\s*\{\s*\[(native\scode|Command\sLine\sAPI)\]\s*\}/.test(eval(j=v[i]))||RegExp("(\\b"+j.replace(/\./g,"\\.")+"\\s*=[^=]\\s*)\\bfunction\\b").test(input)||/\[([a-z])\s\1\]/i.test(j)||(a+=t.constructor==Object?j+";":t+" = "+t+" || function(){return this};");strict?input=a+"\b#BARRIER#\b"+newline+input:input+=newline+a}t=function(e,t){for(var r,n=1,a=1e3,s=60,o=60,i=24,l=365,p=1/0,u=0,c="ms sec min hr dy yr Y".split(" ");u<c.length&&e>=(r={ms:n,sec:a,min:s,hr:o,dy:i,yr:l,Y:p}[c[u]]);u++)e/=r;return e+" "+c[u-1]},clock.stop=+new Date,clock.span=clock.stop-clock.start,clock.start=new Date(clock.start),clock.stop=new Date(clock.stop),clock.span=t(clock.span,!0);var j=input.split(newline).length,p=backup.split(RegExp["$&"]).length,J=input.length,P=backup.length,d,e,i=[],r=0;return Paramour.SEA=Paramour.SEA||[],Paramour.SEA.push(Paramour.report=("\t/* Paramour Self Evaluation Article (SEA)\t\t * How useful was Paramour?\t\t "+(d=s("Category","Paramour","JavaScript","Difference","Winner","Ranking"))+"\t "+"-".repeat(d.length)+"\t "+s("Version",Paramour.version,(runtime.emu||runtime.original)+" - "+(void 0==runtime.emu?"RAW":"EMU"),"","",Paramour.versionName)+"\t "+s("Lines",f(p),f(j),e=j-p,w(e>0),"~ "+c(p,j))+"\t "+s("Characters",f(P),f(J),e=J-P,w(e>0),"~ "+c(P,J))+"\t "+s("Size x1024",h(P),h(J),h(e=J-P),w(e>0),(c(P,J)," N/A"))+"\t "+s("Size x1000",h(P,0,!0),h(J,0,!0),h(e=J-P,0,!0),w(e>0),(c(P,J)," N/A"))+"\t "+s("Benefits",r,4-r,Math.abs(r-(4-r)),w(r>1),"~ "+c(r,5))+"\t "+s("Compile Time",clock.span)+"\t\t "+(r>2?"Paramour":"JavaScript")+" was ~ "+(100-eval(c(4-(p/j+P/J*3),4)+"+100"))+"% useful\t "+"=".repeat(d.length)+"\t\t * What was compiled?\t\t "+s("U. Literals","Docstrings","Multiline","Single line","Phantoms","Ver. Control","Ver. Query")+"\t "+s("Amount",DS.length,ML.length,SL.length,PN.length,EM.length,VC.length)+"\t "+s("Total",i[0]=DS.length+ML.length+SL.length+PN.length+EM.length+VC.length)+"\t "+"-".repeat(d=123)+"\t "+s("N. Literals","Braces","Brackets","Parenthesis","Tuples")+"\t "+s("Amount",BE.length,BK.length,PR.length,TP.length)+"\t "+s("Total",i[1]=BE.length+BK.length+PR.length+TP.length)+"\t "+"-".repeat(d)+"\t "+s("E. Literals",'" Strings',"' Strings","` Strings","/ RegExps",'""" Strings',"''' Strings","``` Strings","/// RegExps")+"\t "+s("Amount",DQ.length,SQ.length,QI.length,RX.length,Dq.length,Sq.length,Tq.length,Rq.length)+"\t "+s("Total",i[2]=DQ.length+SQ.length+QI.length+RX.length+Dq.length+Sq.length+Tq.length+Rq.length)+"\t "+"-".repeat(d)+"\t "+s("Grand Total",eval(i.join("+"))+" items")+"\t\t */").replace(/\t/g,newline)),Number.prototype.toTime=function(e){return t(this,e)},Paramour.toTime=function(){return t.apply(null,arguments)},String.prototype.SI=function(){return h.apply(this,arguments)},Paramour.SI=function(){return h.apply(null,arguments)},Array.prototype.toTable=function(){return s.apply(this,arguments)},String.prototype.toTable=function(e){return this.split(e||"|").toTable()},Paramour.toTable=function(){return s.apply(null,arguments)},tabs&&(input=input.replace(/(^\s*?)[\x20 ]{2}/g,"$1\t")),input=unshock(input),input=input.replace(errors,"").replace(/\.+[\b\s]*([\(\[\{\}\]\)])/g,"$1").replace(/(\bfunction)(\s+)([a-zA-Z\$_][\w\$]*)(\s*[\=\:])/g,"$3$4$2$1"),input=input.replace(/[\b]*#SEA-REPORT#[\b]*/,Paramour.report),StampTime(input,"Handling complete. Return results"),input};Paramour.compile=function compile(run){function runScripts(){function execute(){var input=paramours[index];if(void 0!=input&&input.constructor==String)return eval(Paramour(input)),index++,execute()}function fn(e,t){var r,n,a;return r={short:e.type==types[1]},n=e.src||e.getAttribute("data-src"),a=e.value||e.innerText||e.innerHTML||"",n?Paramour.load(n,function(e){return paramours[t]=e,execute()},r,!0):run?(r.sourceFiles=["embedded"],paramours[t]=a,e.options=r,execute()):(r.sourceFiles=["embedded"],paramours[t]=[a,r],execute())}var paramours,types,execute,fn,index=0,scripts;scripts=Global.document.getElementsByTagName("script"),types=["text/paramour","text/par"],paramours=function(){for(var e,t,r=0,n=[];r<scripts.length;r++)e=(t=scripts[r]).type,types.indexOf(e)>-1&&n.push(t);return n}();for(var i=0,j=0,len=paramours.length;j<len;i=++j)fn(paramours[i],i);return execute()}Paramour.run=function(e,t){return Paramour(e,{})},Paramour.eval=function eval(code,embed){return eval(Paramour(code,{}))},void 0!=Global&&null!=Global&&(Paramour.load=function load(url,callback,options,hold){var xhr=Global.ActiveXObject?new Global.ActiveXObject("Microsoft.XMLHTTP"):new Global.XMLHttpRequest;return hold=hold||!1,options=options||{},options.sourceFiles=[url],xhr.open("GET",url,!0),"overrideMimeType"in xhr&&xhr.overrideMimeType("text/plain"),xhr.onreadystatechange=function onreadystatechange(){var sts;if(4==xhr.readyState){if(0!=(sts=xhr.status)&&200!=sts){var error=new SyntaxError;throw error.stack=error.stack.replace(/(\n\r?|\r)[\s\S]*$/,"$1\tat [Paramour]: [URL -> String]"),error.message="["+sts+"] unable to load: "+url,error}if(hold||run?!hold&&run&&eval(Paramour(xhr.responseText)):Paramour(xhr.responseText),callback)return callback(xhr.responseText)}},xhr.send(null)},Global.addEventListener?Global.addEventListener("DOMContentLoaded",runScripts,!1):Global.attachEvent("onload",runScripts))},Paramour.protect=function(){for(var e,t,r,n,a=0;t=arguments[a],e=a<arguments.length;a++)for(var s in t)t==Tuple&&"next"==s||!t.hasOwnProperty(s)||"function"!=typeof(n=t[s])||(n.toString=function(){return"function "+((r=this.name||n.name)||"*")+"() { "+(r||"Anonymous")+": Protected }"});return!e},Paramour.protect(Paramour,{Paramour:Paramour});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment