summaryrefslogtreecommitdiff
path: root/javascript/jsPacker
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2012-07-20 10:56:36 +0200
committerAzul <azul@leap.se>2012-07-20 10:56:36 +0200
commit50de80c5e817476ac95a096c718a66f5555fcd05 (patch)
treee05a25868a999557e2788a91f41da3a5a8a1a0b0 /javascript/jsPacker
parent07fe2d8976db0ec267bd57ded90778f0d7695478 (diff)
INCOMPATIBLE: major restructuring of the repository
* removed Django code - we're keeping the tests - so I hope the two can still be used together * removed js packer - everyone has their own packaging strategy these days * cleaned up the repository - we only have js so javascript directory does not make much sense
Diffstat (limited to 'javascript/jsPacker')
-rw-r--r--javascript/jsPacker/Pack.pm467
-rw-r--r--javascript/jsPacker/ParseMaster.pm207
-rw-r--r--javascript/jsPacker/build-pack-crypto.sh4
-rw-r--r--javascript/jsPacker/build-pack-register.sh2
-rw-r--r--javascript/jsPacker/build-pack.sh4
-rw-r--r--javascript/jsPacker/crypto.min.js1
-rw-r--r--javascript/jsPacker/hash.min.js1
-rw-r--r--javascript/jsPacker/jsPacker.pl163
-rw-r--r--javascript/jsPacker/srp.min.js1
-rw-r--r--javascript/jsPacker/srp_register.min.js1
10 files changed, 0 insertions, 851 deletions
diff --git a/javascript/jsPacker/Pack.pm b/javascript/jsPacker/Pack.pm
deleted file mode 100644
index fbd2292..0000000
--- a/javascript/jsPacker/Pack.pm
+++ /dev/null
@@ -1,467 +0,0 @@
-#Pack (July 2005)
-# Based on "Pack.js" by Dean Edwards <http://dean.edwards.name/>
-# Ported to Perl by Rob Seiler, ELR Software Pty Ltd <http://www.elr.com.au>
-# Copyright 2005. License <http://creativecommons.org/licenses/LGPL/2.1/>
-
-package Pack;
-use strict;
-use Data::Dumper;
-
-use ParseMaster;
-
-# Package wide variable declarations
-use vars qw/$VERSION $PM_VERSION
- $_X_encodePrivate $_JSunpack $_JSdecode %baseLookup
- $_X_encode10 $_X_encode36 $_X_encode62 $_X_encode95
- $_JSencode10 $_JSencode36 $_JSencode62 $_JSencode95
- @_X_parsers
- $_X_script $_X_encoding $_X_fastDecode $_X_specialChars
- /;
-$VERSION = '024';
-$PM_VERSION = $ParseMaster::VERSION;
-
-# Package wide constants
-my $X_IGNORE = q{$1};
-my $X_ENCODE = q/\x24encode\(\x24count\)/; # NB: requires g modifier
-my $PERL = 'perl'; # Flag to indicate whether we need to use one of our "internal" Perl encoding functions
-my $JSCRIPT = 'jscript'; # or embed a pre-build JScript encoding function
-########################################
-
-##################
-sub pack($$$$) { # require 4 arguments
-##################
-#print Dumper(@_);
- ($_X_script, $_X_encoding, $_X_fastDecode, $_X_specialChars) = @_;
- # validate parameters (sort of!)
- $_X_script .= "\n";
- $_X_encoding = ($_X_encoding > 95) ? 95 : $_X_encoding;
-
- @_X_parsers = (); # Reset parsers
-
-####################
- sub _X_pack($) { # require 1 argument
-####################
- # apply all parsing routines
- my $X_script = shift;
- for (my $i = 0; $i<scalar(@_X_parsers); $i++) {
- my $X_parse = $_X_parsers[$i];
- $X_script = &$X_parse($X_script);
- }
- return $X_script;
- };
-
-######################
- sub _X_addParser { #
-######################
- # keep a list of parsing functions, they'll be executed all at once
- my $X_parser = shift;
- push (@_X_parsers,$X_parser);
- }
-
-#############################
- sub _X_basicCompression { #
-#############################
- # zero encoding - just removal of white space and comments
- my $X_script = shift;
- my $parser = ParseMaster->new();
- # make safe
- $parser->escapeChar("\\");
- # protect strings
- $parser->add(q/'[^'\n\r]*'/, $X_IGNORE);
- $parser->add(q/"[^"\n\r]*"/, $X_IGNORE);
- # remove comments
- $parser->add(q/\/\/[^\n\r]*[\n\r]/);
- $parser->add(q/\/\*[^*]*\*+([^\/][^*]*\*+)*\//);
- # protect regular expressions
- $parser->add(q/\s+(\/[^\/\n\r\*][^\/\n\r]*\/g?i?)/, q{$2}); # IGNORE
- $parser->add(q/[^\w\x24\/'"*)\?:]\/[^\/\n\r\*][^\/\n\r]*\/g?i?/, $X_IGNORE);
- # remove: ;;; doSomething();
- $parser->add(q/;;[^\n\r]+[\n\r]/) if ($_X_specialChars);
- # remove redundant semi-colons
- $parser->add(q/;+\s*([};])/, q{$2});
- # remove white-space
- $parser->add(q/(\b|\x24)\s+(\b|\x24)/, q{$2 $3});
- $parser->add(q/([+\-])\s+([+\-])/, q{$2 $3});
- $parser->add(q/\s+/, '');
- # done
- return $parser->exec($X_script);
- }
-
-###############################
- sub _X_encodeSpecialChars { #
-###############################
- my $X_script = shift;
- my $parser = ParseMaster->new();
- # replace: $name -> n, $$name -> $$na
- $parser->add(q/((\x24+)([a-zA-Z\x24_]+))(\d*)/,
- sub {
- my $X_offset = pop;
- my @X_match = @_;
- my $X_length = length($X_match[$X_offset+2]);
- my $lengthnext = length($X_match[$X_offset+3]);
- my $X_start = $X_length - ((($X_length - $lengthnext) > 0) ? ($X_length - $lengthnext) : 0);
- my $str = $X_match[$X_offset+1];
- $str = substr($str,$X_start,$X_length) . $X_match[$X_offset+4];
- return "$str";
- });
- # replace: _name -> _0, double-underscore (__name) is ignored
- my $X_regexp = q/\b_[A-Za-z\d]\w*/;
- # build the word list
- my %X_keywords = &_X_analyze($X_script, $X_regexp, $_X_encodePrivate);
-#print Dumper(%X_keywords);
- # quick ref
- my $X_encoded = \$X_keywords{X_encoded}; # eg _private1 => '_0',_private2 => '_1';
-#print Dumper($X_encoded);
- $parser->add($X_regexp, sub {my $X_offset = pop; my @X_match = @_; return ${$X_encoded}->{$X_match[$X_offset]};});
-
- return $parser->exec($X_script);
- };
-
-###########################
- sub _X_encodeKeywords { #
-###########################
- my $X_script = shift;
- # escape high-ascii values already in the script (i.e. in strings)
- if ($_X_encoding > 62) {$X_script = &_X_escape95($X_script)};
- # create the parser
- my $parser = ParseMaster->new();
- my $X_encode = &_X_getEncoder($_X_encoding,$PERL);
- # for high-ascii, don't encode single character low-ascii
- my $X_regexp = ($_X_encoding > 62) ? q/\w\w+/ : q/\w+/;
- # build the word list
- my %X_keywords = &_X_analyze($X_script, $X_regexp, $X_encode);
-#print Dumper(%X_keywords);
- my $X_encoded = \$X_keywords{X_encoded}; # eg alert => 2, function => 10 etc
- # encode
- $parser->add($X_regexp, sub {my $X_offset = pop; my @X_match = @_; return ${$X_encoded}->{$X_match[$X_offset]};});
- # if encoded, wrap the script in a decoding function
-
- return $X_script && _X_bootStrap(\$parser->exec($X_script), \%X_keywords);
- }
-
-####################
- sub _X_analyze { #
-####################
-#print Dumper(@_);
- my ($X_script, $X_regexp, $X_encode) = @_;
- # analyse
- # retreive all words in the script
- my @X_all = $X_script =~ m/$X_regexp/g; # Save all captures in a list context
- my %XX_sorted = (); # list of words sorted by frequency
- my %XX_encoded = (); # dictionary of word->encoding
- my %XX_protected = (); # instances of "protected" words
- if (@X_all) {
- my @X_unsorted = (); # same list, not sorted
- my %X_protected = (); # "protected" words (dictionary of word->"word")
- my %X_values = (); # dictionary of charCode->encoding (eg. 256->ff)
- my %X_count = (); # word->count
- my $i = scalar(@X_all); my $j = 0; my $X_word = '';
- # count the occurrences - used for sorting later
- do {
- $X_word = '$' . $X_all[--$i];
- if (!exists($X_count{$X_word})) {
- $X_count{$X_word} = [0,$i]; # Store both the usage count and original array position (ie a secondary sort key)
- $X_unsorted[$j] = $X_word;
- # make a dictionary of all of the protected words in this script
- # these are words that might be mistaken for encoding
- $X_values{$j} = &$X_encode($j);
- my $v = '$'.$X_values{$j};
- $X_protected{$v} = $j++;
- }
- # increment the word counter
- $X_count{$X_word}[0]++;
- } while ($i);
-#print Dumper (%X_values);
-#print Dumper (@X_unsorted);
-#print Dumper (%X_protected);
- # prepare to sort the word list, first we must protect
- # words that are also used as codes. we assign them a code
- # equivalent to the word itself.
- # e.g. if "do" falls within our encoding range
- # then we store keywords["do"] = "do";
- # this avoids problems when decoding
- $i = scalar(@X_unsorted);
- do {
- $X_word = $X_unsorted[--$i];
- if (exists($X_protected{$X_word})) {
- $XX_sorted{$X_protected{$X_word}} = substr($X_word,1);
- $XX_protected{$X_protected{$X_word}} = 1; # true
- $X_count{$X_word}[0] = 0;
- }
- } while ($i);
-#print Dumper (%XX_protected);
-#print Dumper (%XX_sorted);
-#print Dumper (%X_count);
- # sort the words by frequency
- # Sort with count a primary key and original array order as secondary key - which is apparently the default in javascript!
- @X_unsorted = sort ({($X_count{$b}[0] - $X_count{$a}[0]) or ($X_count{$b}[1] <=> $X_count{$a}[1])} @X_unsorted);
-#print Dumper (@X_unsorted) . "\n";
-
- $j = 0;
- # because there are "protected" words in the list
- # we must add the sorted words around them
- do {
- if (!exists($XX_sorted{$i})) {$XX_sorted{$i} = substr($X_unsorted[$j++],1)}
- $XX_encoded{$XX_sorted{$i}} = $X_values{$i};
- } while (++$i < scalar(@X_unsorted));
- }
-#print Dumper(X_sorted => \%XX_sorted, X_encoded => \%XX_encoded, X_protected => \%XX_protected);
- return (X_sorted => \%XX_sorted, X_encoded => \%XX_encoded, X_protected => \%XX_protected);
- }
-
-######################
- sub _X_bootStrap { #
-######################
- # build the boot function used for loading and decoding
- my ($X_packed, $X_keywords) = @_; # Reference arguments!
-#print Dumper ($X_keywords) . "\n";
-
- # $packed: the packed script - dereference and escape
- $X_packed = "'" . &_X_escape($$X_packed) ."'";
-
- my %sorted = %{$$X_keywords{X_sorted}}; # Dereference to local variables
- my %protected = %{$$X_keywords{X_protected}}; # for simplicity
-
- my @sorted = ();
- foreach my $key (keys %sorted) {$sorted[$key] = $sorted{$key}}; # Convert hash to a standard list
-
- # ascii: base for encoding
- my $X_ascii = ((scalar(@sorted) > $_X_encoding) ? $_X_encoding : scalar(@sorted)) || 1;
-
- # count: number of (unique {RS}) words contained in the script
- my $X_count = scalar(@sorted); # Use $X_count for assigning $X_ascii
-
- # keywords: list of words contained in the script
- foreach my $i (keys %protected) {$sorted[$i] = ''}; # Blank out protected words
-#print Dumper(@sorted) . "\n";
-
- # convert from a string to an array - prepare keywords as a JScript string->array {RS}
- $X_keywords = "'" . join('|',@sorted) . "'.split('|')";
-
- # encode: encoding function (used for decoding the script)
- my $X_encode = $_X_encoding > 62 ? $_JSencode95 : &_X_getEncoder($X_ascii,$JSCRIPT); # This is a JScript function (as a string)
- $X_encode =~ s/_encoding/\x24ascii/g; $X_encode =~ s/arguments\.callee/\x24encode/g;
- my $X_inline = '$count' . ($X_ascii > 10 ? '.toString($ascii)' : '');
-
- # decode: code snippet to speed up decoding
- my $X_decode = '';
- if ($_X_fastDecode) {
- # create the decoder
- $X_decode = &_X_getFunctionBody($_JSdecode); # ie from the Javascript literal function
- if ($_X_encoding > 62) {$X_decode =~ s/\\\\w/[\\xa1-\\xff]/g}
- # perform the encoding inline for lower ascii values
- elsif ($X_ascii < 36) {$X_decode =~ s/$X_ENCODE/$X_inline/g}
- # special case: when $X_count==0 there ar no keywords. i want to keep
- # the basic shape of the unpacking funcion so i'll frig the code...
- if (!$X_count) {$X_decode =~ s/(\x24count)\s*=\s*1/$1=0/}
- }
-
- # boot function
- my $X_unpack = $_JSunpack;
- if ($_X_fastDecode) {
- # insert the decoder
- $X_unpack =~ s/\{/\{$X_decode;/;
- }
- $X_unpack =~ s/"/'/g;
- if ($_X_encoding > 62) { # high-ascii
- # get rid of the word-boundaries for regexp matches
- $X_unpack =~ s/'\\\\b'\s*\+|\+\s*'\\\\b'//g; # Not checked! {RS}
- }
- if ($X_ascii > 36 || $_X_encoding > 62 || $_X_fastDecode) {
- # insert the encode function
- $X_unpack =~ s/\{/\{\$encode=$X_encode;/;
- } else {
- # perform the encoding inline
- $X_unpack =~ s/$X_ENCODE/$X_inline/;
- }
-
- # arguments {RS} Do this before using &pack because &pack changes the pack parameters (eg $fastDecode) in Perl!!
- my $X_params = "$X_packed,$X_ascii,$X_count,$X_keywords"; # Interpolate to comma separated string
- if ($_X_fastDecode) {
- # insert placeholders for the decoder
- $X_params .= ',0,{}';
- }
-
- # pack the boot function too
- $X_unpack = &pack($X_unpack,0,0,1);
-
- # the whole thing
- return "eval(" . $X_unpack . "(" . $X_params . "))\n";
- };
-
-#######################
- sub _X_getEncoder { #
-#######################
- # mmm.. ..which one do i need ?? ({RS} Perl or JScript ??)
- my ($X_ascii,$language) = @_;
- my $perl_encoder = ($X_ascii > 10) ? ($X_ascii > 36) ? ($X_ascii > 62) ? $_X_encode95 : $_X_encode62 : $_X_encode36 : $_X_encode10;
- my $jscript_encoder = ($X_ascii > 10) ? ($X_ascii > 36) ? ($X_ascii > 62) ? $_JSencode95 : $_JSencode62 : $_JSencode36 : $_JSencode10;
- return ($language eq $JSCRIPT) ? $jscript_encoder : $perl_encoder;
- };
-
-#############################
-# Perl versions of encoders #
-#############################
- # base10 zero encoding - characters: 0123456789
- $_X_encode10 = sub {return &_encodeBase(shift,10)};
- # base36 - characters: 0123456789abcdefghijklmnopqrstuvwxyz
- $_X_encode36 = sub {return &_encodeBase(shift,36)};
- # base62 - characters: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
- $_X_encode62 = sub {return &_encodeBase(shift,62)};
- # high-ascii values - characters: ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ
- $_X_encode95 = sub {return &_encodeBase(shift,95)};
- # Lookup character sets for baseN encoding
- $baseLookup{10} = [(0..9)[0..9]]; # base 10
- $baseLookup{36} = [(0..9,'a'..'z')[0..35]]; # base 36
- $baseLookup{62} = [(0..9,'a'..'z','A'..'Z')[0..61]]; # base 62
- $baseLookup{95} = (); for (my $i=0; $i<95; $i++) {$baseLookup{95}[$i] = chr($i+161)}; # base95 (high ascii)
-#print Dumper(%baseLookup);
-#####################
- sub _encodeBase { #
-#####################
- # Generic base conversion function using defined lookup arrays (perl version only)
- my ($X_charCode, $base) = @_;
- my $X_encoded = '';
- # Do we know this encoding?
- if (exists ($baseLookup{$base})) {
- if ($X_charCode == 0) {$X_encoded = $baseLookup{$base}[0]}
- while($X_charCode > 0) {
- $X_encoded = $baseLookup{$base}[$X_charCode % $base] . $X_encoded;
- $X_charCode = int($X_charCode / $base);
- }
- }
- else {$X_encoded = "$X_charCode"} # default is to return unchanged (ie as for base 10) if no baselookup is available
- return $X_encoded;
- };
-
-#############################
- $_X_encodePrivate = sub { #
-#############################
- # special _chars
- my $X_charCode = shift;
- return '_' . $X_charCode;
- };
-
-############################
- sub _X_escape($script) { #
-############################
- # protect characters used by the parser
- my $X_script = shift;
- $X_script =~ s/([\\'])/\\$1/g;
- return $X_script;
- };
-
-#####################
- sub _X_escape95 { #
-#####################
- # protect high-ascii characters already in the script
- my $X_script = shift;
- $X_script =~ s/([\xa1-\xff])/sprintf("\\x%1x",ord($1))/eg;
- return $X_script;
- };
-
-############################
- sub _X_getFunctionBody { #
-############################
- # extract the body of a function (ie between opening/closing {}) - consistent with Dean Edwards approach
- my $X_function = shift;
- $X_function =~ m/^.*\{(.*)\}*$/sg; # Multiline, global (greedy)
- my $start = index($X_function,'{');
- my $end = rindex($X_function,'}');
- $X_function = substr($X_function,($start+1),($end-1-$start));
- return $X_function;
- };
-
-######################
- sub _X_globalize { #
-######################
- # set the global flag on a RegExp (you have to create a new one) !!! Unused in perl version
- # my $X_regexp = shift;
- };
-
- # build the parsing routine
- &_X_addParser(\&_X_basicCompression);
- &_X_addParser(\&_X_encodeSpecialChars) if ($_X_specialChars);
- &_X_addParser(\&_X_encodeKeywords) if ($_X_encoding);
-
- # go!
- return &_X_pack($_X_script);
-}
-
-########################
-# Javascript Literals #
-########################
-
-# JScript function "_unpack" - from DeanEdwards pack.js (NB: No ";" after final "}")
-($_JSunpack) = <<'END_JSCRIPT_UNPACK';
-/* unpacking function - this is the boot strap function */
-/* data extracted from this packing routine is passed to */
-/* this function when decoded in the target */
-function($packed, $ascii, $count, $keywords, $encode, $decode) {
- while ($count--)
- if ($keywords[$count])
- $packed = $packed.replace(new RegExp('\\b' + $encode($count) + '\\b', 'g'), $keywords[$count]);
- /* RS_Debug = $packed; */ /* {RS} !!!!!!!!! */
- return $packed;
-}
-END_JSCRIPT_UNPACK
-
-# JScript function "_decode" - from DeanEdwards pack.js
-($_JSdecode) = <<'END_JSCRIPT_DECODE';
- /* code-snippet inserted into the unpacker to speed up decoding */
- function() {
- /* does the browser support String.replace where the */
- /* replacement value is a function? */
- if (!''.replace(/^/, String)) {
- /* decode all the values we need */
- while ($count--) $decode[$encode($count)] = $keywords[$count] || $encode($count);
- /* global replacement function */
- $keywords = [function($encoded){return $decode[$encoded]}];
- /* generic match */
- $encode = function(){return'\\w+'};
- /* reset the loop counter - we are now doing a global replace */
- $count = 1;
- }
- };
-END_JSCRIPT_DECODE
-
-# JScript versions of encoders
-($_JSencode10) = <<'END_JSCRIPT_ENCODE10';
- /* zero encoding */
- /* characters: 0123456789 */
- function($charCode) {
- return $charCode;
- };
-END_JSCRIPT_ENCODE10
-
-($_JSencode36) = <<'END_JSCRIPT_ENCODE36';
- /* inherent base36 support */
- /* characters: 0123456789abcdefghijklmnopqrstuvwxyz */
- function($charCode) {
- return $charCode.toString(36);
- };
-END_JSCRIPT_ENCODE36
-
-($_JSencode62) = <<'END_JSCRIPT_ENCODE62';
- /* hitch a ride on base36 and add the upper case alpha characters */
- /* characters: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ */
- function($charCode) {
- return ($charCode < _encoding ? '' : arguments.callee(parseInt($charCode / _encoding))) +
- (($charCode = $charCode % _encoding) > 35 ? String.fromCharCode($charCode + 29) : $charCode.toString(36));
- };
-END_JSCRIPT_ENCODE62
-
-($_JSencode95) = <<'END_JSCRIPT_ENCODE95';
- /* use high-ascii values */
- /* characters: ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ */
- function($charCode) {
- return ($charCode < _encoding ? '' : arguments.callee($charCode / _encoding)) +
- String.fromCharCode($charCode % _encoding + 161);
- };
-END_JSCRIPT_ENCODE95
-
-###########
-# END #
-###########
-1; # Pack #
-###########
diff --git a/javascript/jsPacker/ParseMaster.pm b/javascript/jsPacker/ParseMaster.pm
deleted file mode 100644
index f07ba68..0000000
--- a/javascript/jsPacker/ParseMaster.pm
+++ /dev/null
@@ -1,207 +0,0 @@
-#ParseMaster (July 25 2005)
-# Based on "ParseMaster.js" by Dean Edwards <http://dean.edwards.name/>
-# Ported to Perl by Rob Seiler, ELR Software Pty Ltd <http://www.elr.com.au>
-# Copyright 2005. License <http://creativecommons.org/licenses/LGPL/2.1/>
-
-package ParseMaster;
-use strict;
-use Data::Dumper;
-
-# Package wide variable declarations
-use vars qw/$VERSION
- @_X_escaped @_X_patterns
- /;
-
-$VERSION = '017';
-
-# constants
-my $X_EXPRESSION = 0;
-my $X_REPLACEMENT = 1;
-my $X_LENGTH = 2;
-
-# re's used to determine nesting levels
-my $X_GROUPS = qr/\(/o; # NB: Requires g modifier!
-my $X_SUB_REPLACE = qr/\$\d/o;
-my $X_INDEXED = qr/^\$\d+$/o;
-my $XX_ESCAPE = qr/\\./o; # NB: Requires g modifier!
-my $XX_DELETED = qr/\001[^\001]*\001/o; # NB: Requires g modifier!
-my $DIGIT = qr/[^\D]/o; # Yep - this is a digit - contains no non-digits
-
-# Constructor
-sub new {
- my $class = shift;
- my $self = {};
- @_X_escaped = (); # Re-initialize global for each instance
- @_X_patterns = (); # Re-initialize global for each instance
- # Instance variables - access by similarly named set/get functions
- $self->{_ignoreCase_} = 0;
- $self->{_escapeChar_} = '';
- bless ($self, $class);
- return $self;
-}
-
-sub ignoreCase {
- my ($self, $value) = @_;
- if (defined($value)) {
- $self->{_ignoreCase_} = $value;
- }
- return $self->{_ignoreCase_};
-}
-
-sub escapeChar{
- my ($self, $value) = @_;
- if (defined($value)) {
- $self->{_escapeChar_} = $value;
- }
- return $self->{_escapeChar_};
-}
-
-#######################
-# Public Parsemaster functions
-
-my $X_DELETE = sub(@$) {
- my $X_offset = pop;
- my @X_match = @_;
- return (chr(001) . $X_match[$X_offset] . chr(001));
-}; # NB semicolon required for closure!
-
-# create and add a new pattern to the patterns collection
-sub add {
- my ($self, $expression, $X_replacement) = @_;
- if (!$X_replacement) {$X_replacement = $X_DELETE};
-
- # count the number of sub-expressions
- my $temp = &_X_internalEscape($expression);
- my $length = 1; # Always at least one because each pattern is itself a sub-expression
- $length += $temp =~ s/$X_GROUPS//g; # One way to count the left capturing parentheses in the regexp string
-
- # does the pattern deal with sub-expressions?
- if ((ref($X_replacement) ne "CODE") && ($X_replacement =~ m/$X_SUB_REPLACE/)) {
- if ($X_replacement =~ m/$X_INDEXED/) { # a simple lookup? (eg "$2")
- # store the index (used for fast retrieval of matched strings)
- $X_replacement = substr($X_replacement,1) - 1;
- }
- else { # a complicated lookup (eg "Hello $2 $1")
- my $i = $length;
- while ($i) { # Had difficulty getting Perl to do Dean's splitting and joining of strings containing $'s
- my $str = '$a[$o+' . ($i-1) . ']'; # eg $a[$o+1]
- $X_replacement =~ s/\$$i/$str/; # eg $2 $3 -> $a[$o+1] $a[$o+2]
- $i--;
- }
- # build a function to do the lookup - returns interpolated string of array lookups
- $X_replacement = eval('sub {my $o=pop; my @a=@_; return "' . $X_replacement . '"};');
- }
- }
- else {}
- # pass the modified arguments
- &_X_add($expression || q/^$/, $X_replacement, $length);
-}
-
-# execute the global replacement
-sub exec {
-#print Dumper(@_X_patterns);
- my ($self, $X_string) = @_;
- my $escChar = $self->escapeChar();
- my $ignoreCase = $self->ignoreCase();
- my ($regexp,$captures) = &_getPatterns(); # Concatenated and parenthesized regexp eg '(regex1)|(regex2)|(regex3)' etc
- $X_string = &_X_escape($X_string, $escChar);
- if ($ignoreCase) {$X_string =~ s/$regexp/{&_X_replacement(&_matchVars($captures,\$X_string))}/gie} # Pass $X_String as a
- else {$X_string =~ s/$regexp/{&_X_replacement(&_matchVars($captures,\$X_string))}/ge} # reference for speed
-
- $X_string = &_X_unescape($X_string, $escChar);
- $X_string =~ s/$XX_DELETED//g;
- return $X_string;
-}
-
-sub _X_add {
- push (@_X_patterns, [@_]); # Save each argument set as is into an array of arrays
-}
-
-# this is the global replace function (it's quite complicated)
-sub _X_replacement {
- my (@arguments) = @_;
-#print Dumper (@arguments);
- if ($arguments[0] le '') {return ''}
- # Dereference last index (source String) here - faster than in _matchVars (maybe not needed at all?)
- $arguments[$#arguments] = ${$arguments[$#arguments]};
- my $i = 1;
- # loop through the patterns
- for (my $j=0; $j<scalar(@_X_patterns); $j++) { # Loop through global all @_X_patterns
- my @X_pattern = @{$_X_patterns[$j]};
- # do we have a result? NB: "if ($arguments[$i])" as in Dean's Javascript is false for the value 0!!!
- if ((defined $arguments[$i]) && ($arguments[$i] gt '')) {
- my $X_replacement = $X_pattern[$X_REPLACEMENT];
- # switch on type of $replacement
- if (ref($X_replacement) eq "CODE") { # function
- return &$X_replacement(@arguments,$i);
- }
- elsif ($X_replacement =~ m/$DIGIT/) { # number (contains no non-digits)
- return $arguments[$X_replacement + $i];
- }
- else { # default
- return $X_replacement; # default
- }
- } # skip over references to sub-expressions
- else {$i += $X_pattern[$X_LENGTH]}
- }
-}
-
-#######################
-# Private functions
-#######################
-
-# encode escaped characters
-sub _X_escape {
- my ($X_string, $X_escapeChar) = @_;
- if ($X_escapeChar) {
- my $re = '\\'.$X_escapeChar.'(.)';
- $X_string =~ s/$re/{push(@_X_escaped,$1); $X_escapeChar}/ge;
- }
- return $X_string;
-}
-
-# decode escaped characters
-sub _X_unescape {
- my ($X_string, $X_escapeChar) = @_;
- if ($X_escapeChar) { # We'll only do this if there is an $X_escapeChar!
- my $re = '\\'.$X_escapeChar;
- $X_string =~ s/$re/{$X_escapeChar . (shift(@_X_escaped))}/ge; # Don't use Dean Edwards as below 'or' here - because zero will return ''!
- # $X_string =~ s/$re/{$X_escapeChar . (shift(@_X_escaped) || '')}/ge;
- }
- return $X_string;
-}
-
-sub _X_internalEscape {
- my ($string) = shift;
- $string =~ s/$XX_ESCAPE//g;
- return $string;
-}
-
-# Builds an array of match variables to (approximately) emulate that available in Javascript String.replace()
-sub _matchVars {
- my ($m,$sref) = @_;
- my @args = (1..$m); # establish the number potential memory variables
- my @mv = map {eval("\$$_")} @args; # matchvarv[1..m] = the memory variables $1 .. $m
- unshift (@mv, $&); # matchvar[0] = the substring that matched
- push (@mv, length($`)); # matchvar[m+1] = offset within the source string where the match occurred (= length of prematch string)
- push (@mv, $sref); # matchvar[m+2] = reference to full source string (dereference in caller if/when needed)
-#print Dumper (@mv);
- return @mv;
-}
-
-sub _getPatterns {
- my @Patterns = ();
- my $lcp = 0;
- for (my $i=0; $i<scalar(@_X_patterns); $i++) { # Loop through global all @_patterns
- push (@Patterns, $_X_patterns[$i][$X_EXPRESSION]); # accumulate the expressions
- $lcp += $_X_patterns[$i][$X_LENGTH]; # sum the left capturing parenthesis counts
- }
- my $str = "(" . join(')|(',@Patterns). ")"; # enclose each pattern in () separated by "|"
- return ($str, $lcp);
-}
-
-##################
-# END #
-##################
-1; # ParseMaster #
-##################
diff --git a/javascript/jsPacker/build-pack-crypto.sh b/javascript/jsPacker/build-pack-crypto.sh
deleted file mode 100644
index bf902f9..0000000
--- a/javascript/jsPacker/build-pack-crypto.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-cat ../aes.js ../cryptoHelpers.js ../SHA1.js ../MD5.js > crypto.js
-perl jsPacker.pl -fsq -e62 -i crypto.js -o crypto.min.js
-rm crypto.js
diff --git a/javascript/jsPacker/build-pack-register.sh b/javascript/jsPacker/build-pack-register.sh
deleted file mode 100644
index c0d7656..0000000
--- a/javascript/jsPacker/build-pack-register.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-perl jsPacker.pl -fsq -e62 -i ../srp_register.js -o ../srp_register.min.js
diff --git a/javascript/jsPacker/build-pack.sh b/javascript/jsPacker/build-pack.sh
deleted file mode 100644
index efef148..0000000
--- a/javascript/jsPacker/build-pack.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-cat ../SHA256.js ../prng4.js ../rng.js ../jsbn.js ../jsbn2.js ../srp.js > utils.js
-perl jsPacker.pl -fsq -e62 -i utils.js -o ../srp.min.js
-rm utils.js
diff --git a/javascript/jsPacker/crypto.min.js b/javascript/jsPacker/crypto.min.js
deleted file mode 100644
index d8dbba6..0000000
--- a/javascript/jsPacker/crypto.min.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('18 aI={2O:{7j:{8L:16,8K:24,86:32},7K:[1W,3z,4D,5g,6g,4B,5A,1U,4W,1Y,5e,3s,3O,3j,2E,56,6d,69,5Y,2C,2r,5C,3q,3P,5z,2d,4e,4s,3L,3I,27,44,5S,3f,5Q,3A,2H,4z,5l,2p,3C,5T,5o,5U,3l,2F,4A,4u,2f,5Z,4x,4l,3V,4T,5b,2l,4v,6u,1x,3Q,5n,5L,4N,5h,4w,1Q,4U,4Z,1J,3x,6k,4O,52,5M,6f,2n,5K,5X,2x,4Q,4F,4o,6x,5W,2e,6h,5x,3o,2w,1V,4c,25,26,3Z,3v,5p,4J,1T,3H,4h,5k,2z,2y,4q,5E,5m,2b,3m,3Y,3T,1S,68,5j,5y,2v,5O,3K,5P,6t,4i,2t,3F,3N,5c,2a,5V,3g,47,4m,3E,3r,3R,5i,2m,3w,57,6e,3e,6p,5d,54,4G,58,5B,3y,5N,4H,46,4V,6r,6c,4f,6m,6i,3G,4Y,4K,2g,5a,62,6j,3U,28,3X,3p,50,6s,51,2q,2A,4d,6o,1R,5v,2j,4E,4j,3M,3t,3k,1P,61,53,3d,2G,3u,4L,4a,4C,43,4P,2u,65,55,1Z,3S,6v,67,66,2c,2s,5r,2i,5H,5F,2o,4p,4R,6q,4X,3b,2h,6n,5J,49,6w,2B,2D,5D,5R,4g,5q,1X,6b,3h,48,4S,5G,5f,3i,3J,2k,5u,3D,5s,4k,45,3n,3B,4n,6a,4t,5t,5I,5w,4M,41,42,4I,4r,4y,2L,4b,6l,3c,3W],8S:[52,4w,2w,61,4W,2H,5T,6t,5w,2v,5y,6b,5N,3g,3j,4h,3z,5X,25,69,5u,2x,5V,5s,3C,3J,5k,3w,6e,4K,4k,1V,6l,5g,2k,3U,67,2q,4x,5d,6i,3Z,5v,5a,41,2r,4l,53,2u,3S,4t,2h,3B,3i,6s,4N,56,3o,4e,3p,3k,4p,4o,1Z,27,48,49,54,4g,42,4S,3W,2d,3I,51,2p,4G,4C,3F,3K,2G,6q,6n,3Y,3f,5W,5R,3N,2g,4u,6m,5D,3e,1P,5P,4Q,6c,2F,2E,6x,6a,2t,2A,3X,5l,2j,3v,5b,3G,2n,5E,50,4J,4U,3D,5O,6d,4z,2L,2b,5q,4s,2o,5J,1Y,3r,4R,4B,28,1R,5G,4I,4H,5e,46,4a,2m,6g,5p,45,3P,66,4M,5B,4T,4d,2i,4V,4j,5z,2D,4q,3Q,5m,3t,2s,6v,5h,4n,3x,3q,5U,4Z,3l,1X,5K,1U,5t,5A,5S,6o,6w,3H,3V,4c,1J,6h,3u,4X,5F,2c,47,4E,2e,2l,62,44,3O,55,4m,6k,4L,5H,5r,68,2y,4f,4v,5Z,4A,5x,6u,2a,5C,5L,1x,3R,5i,3y,5j,3m,3d,58,3b,26,5I,4y,5o,43,1S,5Q,5Y,3L,1T,4O,6j,5M,2z,4P,6r,4i,4b,3M,5n,3c,3T,1Q,4F,4r,2B,57,3s,2f,6p,65,4D,6f,3A,3h,5f,4Y,1W,3n,5c,3E,2C],8Y:1e(1K){18 c=1K[0];1c(18 i=0;i<3;i++)1K[i]=1K[i+1];1K[3]=c;1d 1K},8X:[1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V,1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V,1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V,1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V,1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V],aH:[6x,2b,2f,50,2u,3X,3E,6w,2a,6u,4Y,3W,3V,4Z,6v,3D,2e,4V,6s,3A,3B,6r,4U,3S,4W,3U,3C,2H,6t,28,3T,4X,2v,41,3w,6m,6n,26,3Z,53,3Y,52,6l,3u,3v,6k,51,2g,3y,6o,54,2h,42,2w,2G,3x,6q,27,2i,56,55,43,3z,6p,1x,69,4Q,4g,4f,4R,6a,3J,6c,3K,2k,4T,4S,2l,3L,6b,4O,4e,3I,67,68,3H,4d,4P,4b,4N,66,3F,3G,65,2t,4c,44,2q,6e,2c,3M,6d,2p,45,4J,47,2d,6f,2F,3N,46,4K,6j,3Q,2j,4M,2s,4a,3R,6i,3P,6g,4L,49,48,2r,6h,3O,1J,58,5H,1X,3r,5G,57,4u,5a,4w,2L,5I,5J,1Y,4v,5b,5M,25,4z,5d,2y,4A,3t,2D,3s,5K,2x,4y,4x,5c,5L,1Z,3o,5C,5i,4G,4F,5j,5D,3n,5F,3p,4H,2z,5k,4I,3q,5E,5g,4E,3m,2C,5B,3l,4D,5h,4B,5f,5A,3k,1W,2B,5e,4C,5u,4r,1S,5P,5Q,1R,2m,5v,4p,5t,5O,1P,1Q,5N,5s,4q,3c,5R,5w,2o,2n,5x,5S,3b,2E,3d,4s,5z,5y,4t,3e,5T,62,3i,4n,5r,2A,4o,3j,61,1V,5Y,5p,4m,4l,5q,5Z,1U,4h,5m,5V,3f,3g,5U,5l,4i,5n,4k,1T,5W,5X,3h,4j,5o],aG:[6x,5J,50,5b,3E,2L,3X,4w,3V,1J,3D,1X,4Y,57,6u,5G,4W,2y,2H,2D,3T,4z,28,25,3B,3s,3S,4y,6s,5L,4V,5c,3y,1W,2h,4C,2G,5A,2w,5f,55,5g,6p,2C,2i,4D,27,3l,3Y,4F,3u,3n,51,5i,6k,5C,6n,5F,53,2z,3w,3q,41,4I,44,4l,2c,1U,2p,5p,6d,5Y,2F,62,4K,5r,2d,3j,47,4o,3P,3g,49,4i,6h,5V,2r,5m,2s,5n,6i,5W,2j,4j,3Q,3h,4O,5y,67,5T,4d,4s,3H,3d,3G,3c,4c,2o,66,5S,4N,5x,6c,5Q,4T,5v,3L,1S,2l,4r,4f,4p,3J,1P,4Q,5s,69,5N,5u,4S,5P,6b,2m,2k,1R,3K,1Q,1x,4q,4g,5O,6a,5t,4R,2E,68,5z,4P,3e,3I,4t,4e,2n,4b,3b,3F,5w,2t,5R,65,4h,48,3f,3O,5l,4L,5U,6g,5X,6j,5o,4M,1T,3R,4k,4a,1V,3M,4m,45,5Z,6e,5q,2q,2A,4J,61,6f,4n,46,3i,3N,3o,3v,4G,2g,5D,6l,5j,52,5k,2v,5E,6m,4H,3Z,3p,26,4B,42,3k,3x,5e,54,2B,6o,5B,6q,5h,56,3m,3z,4E,43,5M,6t,5d,4X,3t,3C,4A,3U,4x,2e,1Z,3A,2x,4U,5K,6r,5a,2u,5I,6w,4v,2f,1Y,2b,3r,2a,4u,3W,5H,6v,58,4Z],aF:[6x,4w,6u,1J,6s,4y,2H,4z,6n,4I,6k,4F,2G,4C,6p,4D,6c,4r,69,4p,66,2o,67,4s,2F,4o,6d,4l,6h,4i,6i,4j,5M,3U,5K,2e,5H,3W,5I,2f,5B,43,2B,42,5D,2g,5E,3Z,2E,4e,5R,4b,5O,4g,5P,2k,5X,4a,5U,48,5Z,45,61,46,56,3m,54,3k,52,3o,2v,3p,4X,3t,4U,1Z,4Z,3r,2u,1Y,4M,1T,4L,3f,2q,1V,4J,3i,4P,3e,2t,3b,4R,1Q,4S,1R,2z,3w,5i,3u,5f,3y,5g,27,5b,3E,57,3D,5c,3B,2y,28,5r,2d,5p,2c,5m,3P,5n,3Q,5v,3L,5s,3J,5x,3G,5y,3H,3R,5o,3O,5l,3M,5q,3N,2A,3I,5z,3F,5w,1x,5t,3K,5u,3z,5h,3x,5e,3v,5j,26,5k,3C,5d,3A,2x,2a,58,2b,5a,3j,4K,1U,2p,3g,2r,3h,2s,1S,4T,1P,4Q,3c,4N,3d,4O,3q,53,3n,51,1W,2w,3l,55,2L,50,1X,4Y,3s,4V,25,4W,2l,5Q,4f,5N,4c,5S,4d,5T,47,62,44,5Y,49,5V,2j,5W,3X,5J,3V,5G,3S,5L,3T,2D,41,5F,3Y,5C,2h,5A,2i,2C,4t,68,2n,65,4q,6a,2m,6b,4k,6j,4h,6g,4m,6e,4n,6f,4A,6t,4x,6r,4u,6v,4v,6w,4E,6q,4B,6o,4G,6l,4H,6m],aE:[6x,5a,3W,1X,4U,5L,28,4A,3v,4F,53,5E,2i,3m,6o,5f,4b,3c,67,5z,3L,2m,4R,5N,2s,5X,3O,4i,6e,5p,47,3i,5g,6q,3k,2h,5D,51,4I,26,4x,3B,2D,4X,2L,2f,58,6u,1V,44,5r,6f,4j,3R,5U,2r,5Q,4S,4q,3J,5w,66,3d,4e,49,3f,6j,5n,3N,4o,2p,5Z,4P,5T,3G,2n,69,5t,2k,1S,6m,2z,3Y,3o,2w,2B,3z,4D,3D,4u,2u,5J,3U,25,6s,2x,1P,4g,5u,6c,4t,3H,5S,2t,61,4K,4l,3M,5m,6g,1T,2j,5d,2H,3s,2e,5G,4Z,4v,3E,4C,3x,5B,55,3p,41,5i,6l,5l,6h,3h,4a,62,4J,4m,2c,4s,3I,5R,4N,1Q,4f,5v,6b,3q,3Z,5j,6k,4B,3y,2C,56,5H,4Y,4w,2b,2y,6t,1Z,3S,6a,5s,2l,1R,4O,2E,3F,2o,2d,4n,2q,5Y,48,3g,6i,5o,3T,3t,6r,5c,2a,1J,50,5I,54,5A,27,4E,6n,5k,2g,3n,1Y,3X,57,6v,4y,3A,5M,4W,5C,52,4H,3w,5h,6p,1W,42,5x,65,3e,4d,5P,4T,4p,1x,4k,3Q,5V,4L,1U,45,2A,2F,43,3l,2G,5e,3u,4G,2v,5F,4V,5K,3C,4z,6w,5b,3V,3r,6d,5q,46,3j,4M,5W,3P,4h,3K,4r,4Q,5O,4c,3b,68,5y],aD:[6x,5I,4Z,57,3C,25,3S,4x,42,4C,27,3m,51,5j,6m,5F,4J,5r,6d,5Z,2j,4k,3O,3g,3G,3b,4e,4s,6a,5N,4T,5u,3c,3F,4t,4d,5O,69,5v,4S,2A,4K,5Y,6e,4j,4a,3f,3P,4B,2h,3l,3z,5i,52,5E,6n,5J,6w,58,4Y,3t,28,4y,2e,3k,3y,4D,43,5C,6l,5k,53,5b,2u,5H,6u,4A,3T,3s,3A,2o,4b,3e,3H,5t,4Q,5Q,6b,61,2F,5p,2q,3h,3R,4h,49,6f,62,2p,5q,3Q,1T,48,4i,4c,2n,3I,3d,4R,5s,6c,5P,50,5a,6v,5G,3U,4z,3B,1Z,3x,1W,2i,4E,6k,5D,2v,2z,3N,3j,44,4m,6i,5X,4L,5m,4N,5w,68,5T,4g,4p,3L,1R,3X,4v,2a,1X,4X,2y,6s,5K,6o,5A,55,5h,3u,3o,3Z,4I,2B,2G,5g,56,3n,3v,4H,41,4w,2f,3r,3D,5d,4W,5L,6r,5x,2t,2E,67,4q,4f,1S,3K,3i,2d,4l,45,5W,6j,5l,2r,5S,65,5z,4O,1Q,3J,4r,2k,4n,47,1U,3M,5n,4M,5U,6h,5e,2w,2C,6q,4F,2g,3p,3w,2L,2b,4u,3V,5M,2H,5c,4U,3E,1Y,3W,1J,6t,2D,4V,2x,54,5f,6p,5B,3Y,4G,26,3q,46,4o,2c,1V,2s,5o,6g,5V,66,5R,4P,5y,1x,1P,2l,2m],aC:[6x,6w,6v,6u,6t,2H,6s,6r,6q,6p,2G,6o,6n,6m,6l,6k,6j,6i,6h,6g,2F,6f,6e,6d,6c,6b,6a,69,68,67,66,65,62,61,5Z,5Y,5X,5W,5V,5U,2E,5T,5S,5R,5Q,5P,5O,5N,5M,2D,5L,5K,5J,5I,5H,5G,5F,5E,5D,5C,5B,2C,5A,2B,5z,5y,5x,5w,5v,5u,5t,5s,5r,2A,5q,5p,5o,5n,5m,5l,2z,5k,5j,5i,5h,5g,5f,5e,5d,2y,5c,2x,5b,5a,58,57,56,55,2w,54,53,2v,52,51,50,2u,4Z,4Y,4X,4W,4V,4U,4T,4S,4R,4Q,4P,4O,4N,2t,4M,2s,2r,4L,4K,4J,2q,2p,4I,4H,4G,4F,4E,4D,4C,4B,4A,4z,4y,4x,4w,4v,4u,1J,4t,4s,2o,2n,4r,2m,4q,4p,4o,4n,4m,4l,4k,4j,4i,4h,2l,2k,4g,4f,4e,4d,4c,4b,4a,2j,49,48,47,46,45,44,43,2i,2h,42,41,3Z,2g,3Y,3X,2f,3W,3V,3U,3T,3S,2e,3R,3Q,3P,3O,2d,3N,3M,2c,3L,3K,1x,3J,3I,3H,3G,3F,3E,2b,2a,3D,3C,28,3B,3A,3z,27,3y,3x,3w,26,3v,3u,3t,25,3s,1Z,2L,1Y,3r,1X,3q,3p,3o,3n,3m,3l,1W,3k,3j,3i,1V,1U,1T,3h,3g,3f,3e,3d,3c,3b,1S,1R,1Q,1P],8V:1e(1K,8W){1K=1a.8Y(1K);1c(18 i=0;i<4;++i)1K[i]=1a.7K[1K[i]];1K[0]=1K[0]^1a.8X[8W];1d 1K},85:1e(1k,1g){18 89=(16*(1a.7I(1g)+1));18 34=0;18 8U=1;18 t=[];18 1m=[];1c(18 i=0;i<89;i++)1m[i]=0;1c(18 j=0;j<1g;j++)1m[j]=1k[j];34+=1g;7r(34<89){1c(18 k=0;k<4;k++)t[k]=1m[(34-4)+k];1f(34%1g==0)t=1a.8V(t,8U++);1f(1g==1a.7j.86&&((34%1g)==16))1c(18 l=0;l<4;l++)t[l]=1a.7K[t[l]];1c(18 m=0;m<4;m++){1m[34]=1m[34-1g]^t[m];34++}}1d 1m},6D:1e(1b,31){1c(18 i=0;i<16;i++)1b[i]^=31[i];1d 1b},6C:1e(1m,8T){18 31=[];1c(18 i=0;i<4;i++)1c(18 j=0;j<4;j++)31[j*4+i]=1m[8T+i*4+j];1d 31},7k:1e(1b,2V){1c(18 i=0;i<16;i++)1b[i]=2V?1a.8S[1b[i]]:1a.7K[1b[i]];1d 1b},7l:1e(1b,2V){1c(18 i=0;i<4;i++)1b=1a.8R(1b,i*4,i,2V);1d 1b},8R:1e(1b,33,8Q,2V){1c(18 i=0;i<8Q;i++){1f(2V){18 7J=1b[33+3];1c(18 j=3;j>0;j--)1b[33+j]=1b[33+j-1];1b[33]=7J}1n{18 7J=1b[33];1c(18 j=0;j<3;j++)1b[33+j]=1b[33+j+1];1b[33+3]=7J}}1d 1b},1z:1e(a,b){18 p=0;1c(18 88=0;88<8;88++){1f((b&1)==1)p^=a;1f(p>3a)p^=3a;18 8P=(a&1x);a<<=1;1f(a>3a)a^=3a;1f(8P==1x)a^=1J;1f(a>3a)a^=3a;b>>=1;1f(b>3a)b^=3a;}1d p},87:1e(1b,2V){18 2J=[];1c(18 i=0;i<4;i++){1c(18 j=0;j<4;j++)2J[j]=1b[(j*4)+i];2J=1a.8O(2J,2V);1c(18 k=0;k<4;k++)1b[(k*4)+i]=2J[k]}1d 1b},8O:1e(2J,2V){18 1q=[];1f(2V)1q=[14,9,13,11];1n 1q=[2,1,1,3];18 1s=[];1c(18 i=0;i<4;i++)1s[i]=2J[i];2J[0]=1a.1z(1s[0],1q[0])^1a.1z(1s[3],1q[1])^1a.1z(1s[2],1q[2])^1a.1z(1s[1],1q[3]);2J[1]=1a.1z(1s[1],1q[0])^1a.1z(1s[0],1q[1])^1a.1z(1s[3],1q[2])^1a.1z(1s[2],1q[3]);2J[2]=1a.1z(1s[2],1q[0])^1a.1z(1s[1],1q[1])^1a.1z(1s[0],1q[2])^1a.1z(1s[3],1q[3]);2J[3]=1a.1z(1s[3],1q[0])^1a.1z(1s[2],1q[1])^1a.1z(1s[1],1q[2])^1a.1z(1s[0],1q[3]);1d 2J},8N:1e(1b,31){1b=1a.7k(1b,2N);1b=1a.7l(1b,2N);1b=1a.87(1b,2N);1b=1a.6D(1b,31);1d 1b},8M:1e(1b,31){1b=1a.7l(1b,37);1b=1a.7k(1b,37);1b=1a.6D(1b,31);1b=1a.87(1b,37);1d 1b},8J:1e(1b,1m,1D){1b=1a.6D(1b,1a.6C(1m,0));1c(18 i=1;i<1D;i++)1b=1a.8N(1b,1a.6C(1m,16*i));1b=1a.7k(1b,2N);1b=1a.7l(1b,2N);1b=1a.6D(1b,1a.6C(1m,16*1D));1d 1b},8I:1e(1b,1m,1D){1b=1a.6D(1b,1a.6C(1m,16*1D));1c(18 i=1D-1;i>0;i--)1b=1a.8M(1b,1a.6C(1m,16*i));1b=1a.7l(1b,37);1b=1a.7k(1b,37);1b=1a.6D(1b,1a.6C(1m,0));1d 1b},7I:1e(1g){18 1D;8m(1g){6A 1a.7j.8L:1D=10;36;6A 1a.7j.8K:1D=12;36;6A 1a.7j.86:1D=14;36;aB:1d 2Y;36}1d 1D},2P:1e(1r,1k,1g){18 1j=[];18 2U=[];18 1D=1a.7I(1g);1c(18 i=0;i<4;i++)1c(18 j=0;j<4;j++)2U[(i+(j*4))]=1r[(i*4)+j];18 1m=1a.85(1k,1g);2U=1a.8J(2U,1m,1D);1c(18 k=0;k<4;k++)1c(18 l=0;l<4;l++)1j[(k*4)+l]=2U[(k+(l*4))];1d 1j},81:1e(1r,1k,1g){18 1j=[];18 2U=[];18 1D=1a.7I(1g);1c(18 i=0;i<4;i++)1c(18 j=0;j<4;j++)2U[(i+(j*4))]=1r[(i*4)+j];18 1m=1a.85(1k,1g);2U=1a.8I(2U,1m,1D);1c(18 k=0;k<4;k++)1c(18 l=0;l<4;l++)1j[(k*4)+l]=2U[(k+(l*4))];1d 1j}},38:{82:0,83:1,7H:2},84:1e(2Z,1G,1C,1I){1f(1C-1G>16)1C=1G+16;18 2M=2Z.7B(1G,1C);1f(1I==1a.38.7H){18 8H=16-2M.1h;7r(2M.1h<16){2M.1o(8H)}}1d 2M},2P:1e(2Z,1I,1k,1g,2I){1f(1k.1h%1g){6B\'8G 1h 8F 8E 8D 8C 1g.\'}1f(2I.1h%16){6B\'2I 1h 8B 8A 2Q 8z.\'}18 1p=[];18 1r=[];18 1j=[];18 1B=[];18 7i=[];18 1H=37;1f(2Z!==2Y){1c(18 j=0;j<6I.7A(2Z.1h/16);j++){18 1G=j*16;18 1C=j*16+16;1f(j*16+16>2Z.1h)1C=2Z.1h;1p=1a.84(2Z,1G,1C,1I);1f(1I==1a.38.83){1f(1H){1j=1a.2O.2P(2I,1k,1g);1H=2N}1n 1j=1a.2O.2P(1r,1k,1g);1c(18 i=0;i<16;i++)1B[i]=1p[i]^1j[i];1c(18 k=0;k<1C-1G;k++)7i.1o(1B[k]);1r=1B}1n 1f(1I==1a.38.82){1f(1H){1j=1a.2O.2P(2I,1k,1g);1H=2N}1n 1j=1a.2O.2P(1r,1k,1g);1c(18 i=0;i<16;i++)1B[i]=1p[i]^1j[i];1c(18 k=0;k<1C-1G;k++)7i.1o(1B[k]);1r=1j}1n 1f(1I==1a.38.7H){1c(18 i=0;i<16;i++)1r[i]=1p[i]^((1H)?2I[i]:1B[i]);1H=2N;1B=1a.2O.2P(1r,1k,1g);1c(18 k=0;k<16;k++)7i.1o(1B[k])}}}1d{1I:1I,7G:2Z.1h,aA:7i}},81:1e(6L,7G,1I,1k,1g,2I){1f(1k.1h%1g){6B\'8G 1h 8F 8E 8D 8C 1g.\';1d 2Y}1f(2I.1h%16){6B\'2I 1h 8B 8A 2Q 8z.\'}18 1B=[];18 1r=[];18 1j=[];18 1p=[];18 6K=[];18 1H=37;1f(6L!==2Y){1c(18 j=0;j<6I.7A(6L.1h/16);j++){18 1G=j*16;18 1C=j*16+16;1f(j*16+16>6L.1h)1C=6L.1h;1B=1a.84(6L,1G,1C,1I);1f(1I==1a.38.83){1f(1H){1j=1a.2O.2P(2I,1k,1g);1H=2N}1n 1j=1a.2O.2P(1r,1k,1g);1c(i=0;i<16;i++)1p[i]=1j[i]^1B[i];1c(18 k=0;k<1C-1G;k++)6K.1o(1p[k]);1r=1B}1n 1f(1I==1a.38.82){1f(1H){1j=1a.2O.2P(2I,1k,1g);1H=2N}1n 1j=1a.2O.2P(1r,1k,1g);1c(i=0;i<16;i++)1p[i]=1j[i]^1B[i];1c(18 k=0;k<1C-1G;k++)6K.1o(1p[k]);1r=1j}1n 1f(1I==1a.38.7H){1j=1a.2O.81(1B,1k,1g);1c(i=0;i<16;i++)1p[i]=((1H)?2I[i]:1r[i])^1j[i];1H=2N;1f(7G<1C)1c(18 k=0;k<7G-1G;k++)6K.1o(1p[k]);1n 1c(18 k=0;k<1C-1G;k++)6K.1o(1p[k]);1r=1B}}}1d 6K}};18 7x={8y:1e(s){8x{1d az(ay(s))}8w(e){6B\'7Y 7X 8v ax: 7x.8y.\'}},8u:1e(s){8x{1d aw(av(s))}8w(e){6B(\'7Y 7X 8v 8q: 7x.8u.\')}},au:1e(){18 2M=[];1f(7F.1h==1&&7F[0].as==73)2M=7F[0];1n 2M=7F;18 6J=\'\';1c(18 i=0;i<2M.1h;i++)6J+=(2M[i]<16?\'0\':\'\')+2M[i].74(16);1d 6J.7L()},ar:1e(s){18 6J=[];s.7n(/(..)/g,1e(s){6J.1o(aq(s,16))});1d 6J},8t:1e(7D,7E){1f(7D===2Y)7D=0;1f(7E===2Y)7E=1;1d 6I.ap(6I.ao()*(7E+1))+7D},an:1e(7C){1f(7C===2Y)7C=16;18 1k=[];1c(18 i=0;i<7C*2;i++)1k.1o(1a.8t(0,8j));1d 1k},am:1e(s,1g){18 8s=al.ak.aj(s);1d 8s.7B(0,1g)},ai:1e(s){18 1p=[];1c(18 i=0;i<s.1h;i++){1p.1o(s.1E(i))}1d 1p},ah:1e(1p){18 s=\'\';1c(18 i=0;i<1p.1h;i++){s+=1N.1M(1p[i])}1d s},7W:{2X:[\'A\',\'B\',\'C\',\'D\',\'E\',\'F\',\'G\',\'H\',\'I\',\'J\',\'K\',\'L\',\'M\',\'N\',\'O\',\'P\',\'Q\',\'R\',\'S\',\'T\',\'U\',\'V\',\'W\',\'X\',\'Y\',\'Z\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\',\'g\',\'h\',\'i\',\'j\',\'k\',\'l\',\'m\',\'n\',\'o\',\'p\',\'q\',\'r\',\'s\',\'t\',\'u\',\'v\',\'w\',\'x\',\'y\',\'z\',\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'+\',\'/\',\'=\'],8r:1e(1y){18 1O=\'\';1c(18 i=0;i<1y.1h;i+=3){1O+=1a.2X[1y[i]>>2];1O+=1a.2X[((1y[i]&3)<<4)|(1y[i+1]>>4)];1f(!(1y[i+1]===2Y)){1O+=1a.2X[((1y[i+1]&15)<<2)|(1y[i+2]>>6)]}1n{1O+=\'=\'}1f(!(1y[i+2]===2Y)){1O+=1a.2X[1y[i+2]&63]}1n{1O+=\'=\'}}1d 1O},ag:1e(1y){18 1O=1a.8r(1y);18 7Z=1O.7B(0,64)+\'\\n\';1c(18 i=1;i<(6I.7A(1O.1h/64));i++){7Z+=1O.7B(i*64,i*64+64)+(6I.7A(1O.1h/64)==i+1?\'\':\'\\n\')}1d 7Z},8p:1e(1i){1i=1i.7n(/[\\r\\n\\t ]+/g,\'\')+\'====\';18 1y=[];18 c=[];1c(18 i=0;37;i=i+4){c[0]=1a.2X.7z(1i.7y(i));1f(c[0]==64){1d 1y}c[1]=1a.2X.7z(1i.7y(i+1));c[2]=1a.2X.7z(1i.7y(i+2));c[3]=1a.2X.7z(1i.7y(i+3));1f((c[0]<0)||(c[1]<0)||(c[1]==64)||(c[2]<0)||(c[3]<0)){6B\'7Y 7X 7W 8q at af \'+i+\': 7x.7W.8p.\'}1y.1o((c[0]<<2)|(c[1]>>4));1f(c[2]>=0&&c[2]<64){1y.1o(((c[1]&15)<<4)|(c[2]>>2));1f(c[3]>=0&&c[2]<64){1y.1o(((c[2]&3)<<6)|c[3])}}}}}};1e ae(1F){1e 2T(n,s){18 8o=(n<<s)|(n>>>(32-s));1d 8o};1e ad(7h){18 6H="";18 i;18 7V;18 7U;1c(i=0;i<=6;i+=2){7V=(7h>>>(i*4+4))&2L;7U=(7h>>>(i*4))&2L;6H+=7V.74(16)+7U.74(16)}1d 6H};1e 6G(7h){18 6H="";18 i;18 v;1c(i=7;i>=0;i--){v=(7h>>>(i*4))&2L;6H+=v.74(16)}1d 6H};1e 7m(1i){1i=1i.7n(/\\r\\n/g,"\\n");18 1A="";1c(18 n=0;n<1i.1h;n++){18 c=1i.1E(n);1f(c<2Q){1A+=1N.1M(c)}1n 1f((c>8i)&&(c<8h)){1A+=1N.1M((c>>6)|8g);1A+=1N.1M((c&63)|2Q)}1n{1A+=1N.1M((c>>12)|8f);1A+=1N.1M(((c>>6)&63)|2Q);1A+=1N.1M((c&63)|2Q)}}1d 1A};18 7g;18 i,j;18 W=8n 73(80);18 7f=8d;18 7e=8c;18 7d=8b;18 7c=8a;18 7b=ab;18 A,B,C,D,E;18 1L;1F=7m(1F);18 2K=1F.1h;18 2W=8n 73();1c(i=0;i<2K-3;i+=4){j=1F.1E(i)<<24|1F.1E(i+1)<<16|1F.1E(i+2)<<8|1F.1E(i+3);2W.1o(j)}8m(2K%4){6A 0:i=aa;36;6A 1:i=1F.1E(2K-1)<<24|a9;36;6A 2:i=1F.1E(2K-2)<<24|1F.1E(2K-1)<<16|a8;36;6A 3:i=1F.1E(2K-3)<<24|1F.1E(2K-2)<<16|1F.1E(2K-1)<<8|1x;36}2W.1o(i);7r((2W.1h%16)!=14)2W.1o(0);2W.1o(2K>>>29);2W.1o((2K<<3)&2S);1c(7g=0;7g<2W.1h;7g+=16){1c(i=0;i<16;i++)W[i]=2W[7g+i];1c(i=16;i<=79;i++)W[i]=2T(W[i-3]^W[i-8]^W[i-14]^W[i-16],1);A=7f;B=7e;C=7d;D=7c;E=7b;1c(i=0;i<=19;i++){1L=(2T(A,5)+((B&C)|(~B&D))+E+W[i]+a7)&2S;E=D;D=C;C=2T(B,30);B=A;A=1L}1c(i=20;i<=39;i++){1L=(2T(A,5)+(B^C^D)+E+W[i]+a6)&2S;E=D;D=C;C=2T(B,30);B=A;A=1L}1c(i=40;i<=59;i++){1L=(2T(A,5)+((B&C)|(B&D)|(C&D))+E+W[i]+a5)&2S;E=D;D=C;C=2T(B,30);B=A;A=1L}1c(i=60;i<=79;i++){1L=(2T(A,5)+(B^C^D)+E+W[i]+a4)&2S;E=D;D=C;C=2T(B,30);B=A;A=1L}7f=(7f+A)&2S;7e=(7e+B)&2S;7d=(7d+C)&2S;7c=(7c+D)&2S;7b=(7b+E)&2S}18 1L=6G(7f)+6G(7e)+6G(7d)+6G(7c)+6G(7b);1d 1L.7L()}18 a3=1e(1i){1e 7a(76,7T){1d(76<<7T)|(76>>>(32-7T))}1e 1l(7w,7v){18 7u,7t,6F,6E,6z;6F=(7w&7S);6E=(7v&7S);7u=(7w&7s);7t=(7v&7s);6z=(7w&8l)+(7v&8l);1f(7u&7t){1d(6z^7S^6F^6E)}1f(7u|7t){1f(6z&7s){1d(6z^a2^6F^6E)}1n{1d(6z^7s^6F^6E)}}1n{1d(6z^6F^6E)}}1e F(x,y,z){1d(x&y)|((~x)&z)}1e G(x,y,z){1d(x&z)|(y&(~z))}1e H(x,y,z){1d(x^y^z)}1e I(x,y,z){1d(y^(x|(~z)))}1e 1w(a,b,c,d,x,s,ac){a=1l(a,1l(1l(F(b,c,d),x),ac));1d 1l(7a(a,s),b)};1e 1v(a,b,c,d,x,s,ac){a=1l(a,1l(1l(G(b,c,d),x),ac));1d 1l(7a(a,s),b)};1e 1u(a,b,c,d,x,s,ac){a=1l(a,1l(1l(H(b,c,d),x),ac));1d 1l(7a(a,s),b)};1e 1t(a,b,c,d,x,s,ac){a=1l(a,1l(1l(I(b,c,d),x),ac));1d 1l(7a(a,s),b)};1e 8e(1i){18 6y;18 77=1i.1h;18 7R=77+8;18 8k=(7R-(7R%64))/64;18 7q=(8k+1)*16;18 35=73(7q-1);18 78=0;18 2R=0;7r(2R<77){6y=(2R-(2R%4))/4;78=(2R%4)*8;35[6y]=(35[6y]|(1i.1E(2R)<<78));2R++}6y=(2R-(2R%4))/4;78=(2R%4)*8;35[6y]=35[6y]|(1x<<78);35[7q-2]=77<<3;35[7q-1]=77>>>29;1d 35};1e 6M(76){18 7o="",7p="",7Q,75;1c(75=0;75<=3;75++){7Q=(76>>>(75*8))&8j;7p="0"+7Q.74(16);7o=7o+7p.a1(7p.1h-2,2)}1d 7o};1e 7m(1i){1i=1i.7n(/\\r\\n/g,"\\n");18 1A="";1c(18 n=0;n<1i.1h;n++){18 c=1i.1E(n);1f(c<2Q){1A+=1N.1M(c)}1n 1f((c>8i)&&(c<8h)){1A+=1N.1M((c>>6)|8g);1A+=1N.1M((c&63)|2Q)}1n{1A+=1N.1M((c>>12)|8f);1A+=1N.1M(((c>>6)&63)|2Q);1A+=1N.1M((c&63)|2Q)}}1d 1A};18 x=73();18 k,7P,7O,7N,7M,a,b,c,d;18 72=7,71=12,70=17,6Z=22;18 6Y=5,6X=9,6W=14,6V=20;18 6U=4,6T=11,6S=16,6R=23;18 6Q=6,6P=10,6O=15,6N=21;1i=7m(1i);x=8e(1i);a=8d;b=8c;c=8b;d=8a;1c(k=0;k<x.1h;k+=16){7P=a;7O=b;7N=c;7M=d;a=1w(a,b,c,d,x[k+0],72,a0);d=1w(d,a,b,c,x[k+1],71,9Z);c=1w(c,d,a,b,x[k+2],70,9Y);b=1w(b,c,d,a,x[k+3],6Z,9X);a=1w(a,b,c,d,x[k+4],72,9W);d=1w(d,a,b,c,x[k+5],71,9V);c=1w(c,d,a,b,x[k+6],70,9U);b=1w(b,c,d,a,x[k+7],6Z,9T);a=1w(a,b,c,d,x[k+8],72,9S);d=1w(d,a,b,c,x[k+9],71,9R);c=1w(c,d,a,b,x[k+10],70,9Q);b=1w(b,c,d,a,x[k+11],6Z,9P);a=1w(a,b,c,d,x[k+12],72,9O);d=1w(d,a,b,c,x[k+13],71,9N);c=1w(c,d,a,b,x[k+14],70,9M);b=1w(b,c,d,a,x[k+15],6Z,9L);a=1v(a,b,c,d,x[k+1],6Y,9K);d=1v(d,a,b,c,x[k+6],6X,9J);c=1v(c,d,a,b,x[k+11],6W,9I);b=1v(b,c,d,a,x[k+0],6V,9H);a=1v(a,b,c,d,x[k+5],6Y,9G);d=1v(d,a,b,c,x[k+10],6X,9F);c=1v(c,d,a,b,x[k+15],6W,9E);b=1v(b,c,d,a,x[k+4],6V,9D);a=1v(a,b,c,d,x[k+9],6Y,9C);d=1v(d,a,b,c,x[k+14],6X,9B);c=1v(c,d,a,b,x[k+3],6W,9A);b=1v(b,c,d,a,x[k+8],6V,9z);a=1v(a,b,c,d,x[k+13],6Y,9y);d=1v(d,a,b,c,x[k+2],6X,9x);c=1v(c,d,a,b,x[k+7],6W,9w);b=1v(b,c,d,a,x[k+12],6V,9v);a=1u(a,b,c,d,x[k+5],6U,9u);d=1u(d,a,b,c,x[k+8],6T,9t);c=1u(c,d,a,b,x[k+11],6S,9s);b=1u(b,c,d,a,x[k+14],6R,9r);a=1u(a,b,c,d,x[k+1],6U,9q);d=1u(d,a,b,c,x[k+4],6T,9p);c=1u(c,d,a,b,x[k+7],6S,9o);b=1u(b,c,d,a,x[k+10],6R,9n);a=1u(a,b,c,d,x[k+13],6U,9m);d=1u(d,a,b,c,x[k+0],6T,9l);c=1u(c,d,a,b,x[k+3],6S,9k);b=1u(b,c,d,a,x[k+6],6R,9j);a=1u(a,b,c,d,x[k+9],6U,9i);d=1u(d,a,b,c,x[k+12],6T,9h);c=1u(c,d,a,b,x[k+15],6S,9g);b=1u(b,c,d,a,x[k+2],6R,9f);a=1t(a,b,c,d,x[k+0],6Q,9e);d=1t(d,a,b,c,x[k+7],6P,9d);c=1t(c,d,a,b,x[k+14],6O,9c);b=1t(b,c,d,a,x[k+5],6N,9b);a=1t(a,b,c,d,x[k+12],6Q,9a);d=1t(d,a,b,c,x[k+3],6P,99);c=1t(c,d,a,b,x[k+10],6O,98);b=1t(b,c,d,a,x[k+1],6N,97);a=1t(a,b,c,d,x[k+8],6Q,96);d=1t(d,a,b,c,x[k+15],6P,95);c=1t(c,d,a,b,x[k+6],6O,94);b=1t(b,c,d,a,x[k+13],6N,93);a=1t(a,b,c,d,x[k+4],6Q,92);d=1t(d,a,b,c,x[k+11],6P,91);c=1t(c,d,a,b,x[k+2],6O,90);b=1t(b,c,d,a,x[k+9],6N,8Z);a=1l(a,7P);b=1l(b,7O);c=1l(c,7N);d=1l(d,7M)}18 1L=6M(a)+6M(b)+6M(c)+6M(d);1d 1L.7L()}',62,665,'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||var||this|state|for|return|function|if|size|length|string|output|key|AddUnsigned|expandedKey|else|push|byteArray|mult|input|cpy|II|HH|GG|FF|0x80|flatArr|galois_multiplication|utftext|ciphertext|end|nbrRounds|charCodeAt|msg|start|firstRound|mode|0x1b|word|temp|fromCharCode|String|b64|0x8d|0x83|0x91|0x9f|0xef|0xc5|0xcb|0x63|0x1d|0x01|0x25||||||0x39|0x4a|0x72|0x3a||0x10|0x02|0xc6|0xd4|0x20|0x04|0x5e|0x66|0x74|0xe4|0x94|0x9a|0x97|0xb3|0xbd|0xcc|0xc2|0xfa|0xe8|0xbc|0x08|0x40|0x6a|0x2f|0x33|0x4d|0xd3|0x61|0x7d|0x35|0xab|0xd8|0x6c|0x36|iv|column|msg_len|0x0f|array|false|aes|encrypt|128|lByteCount|0x0ffffffff|rotate_left|block|isInv|word_array|chars|null|bytesIn||roundKey||statePointer|currentSize|lWordArray|break|true|modeOfOperation||0x100|0xb5|0xbb|0xa9|0xa7|0xfd|0xf3|0xe1|0xd9|0xd7|0x6d|0x71|0x7f|0x55|0x5b|0x49|0x47|0x13|0x2b|0x37|0x56|0x58|0x44|0x6e|0x60|0x7c|0x26|0x28|0x34|0x1e|0x0c|0xb6|0xb8|0xaa|0xa4|0x8e|0x92|0x9c|0xc8|0xda|0xfe|0xf0|0xe2|0xec|0x2e|0x3c|0x32|0x18|0x16|0x0a|0x50|0x4c||0x42|0x68|0x7a|0xc0|0xce|0xdc|0xd2|0xf8|0xf6|0xea|0xb0|0xbe|0xac|0xa2|0x88|0x86|0xfb|0xf5|0xe7|0xe9|0xc3|0xcd|0xdf|0xd1|0x8b|0x85|0x99|0xaf|0xa1|0x15|0x07|0x09|0x23|0x2d|0x3f|0x31|0x6b|0x65|0x77|0x79|0x53|0x5d|0x4f|0x41|0xd0|0xde|0xf4|0xe6|0xb2|0xa0|0xae|0x84|0x8a|0x98|0x96|0x2c|0x22|0x30|0x3e|0x14|0x1a|0x06|0x5c|0x52|0x4e|0x64|0x78|0x76|0x17|0x19||0x0b|0x05|0x21|0x3d|0x67|0x69|0x7b|0x75|0x5f|0x51|0x43|0xf7|0xf9|0xeb|0xe5|0xcf|0xc1|0xdd|0x87|0x89|0x9b|0x95|0xbf|0xb1|0xa3|0xad|0x6f|0x73|0x59|0x57|0x45|0x4b|0x11|0x1f|0x0d|0x03|0x29|0x27|0x3b|0x81|0x8f|0x9d|0x93|0xb9|0xb7|0xa5|0xf1|0xff|0xed|0xe3|0xc9|0xc7||0xd5|0xdb|||0xba|0xb4|0xa6|0xa8|0x82|0x8c|0x9e|0x90|0xca|0xc4|0xd6|0xf2|0xfc|0xee|0xe0|0x5a|0x54|0x46|0x48|0x62|0x7e|0x70|0x2a|0x24|0x38|0x12|0x1c|0x0e|0x00|lWordCount|lResult|case|throw|createRoundKey|addRoundKey|lY8|lX8|cvt_hex|str|Math|ret|bytesOut|cipherIn|WordToHex|S44|S43|S42|S41|S34|S33|S32|S31|S24|S23|S22|S21|S14|S13|S12|S11|Array|toString|lCount|lValue|lMessageLength|lBytePosition||RotateLeft|H4|H3|H2|H1|H0|blockstart|val|cipherOut|keySize|subBytes|shiftRows|Utf8Encode|replace|WordToHexValue|WordToHexValue_temp|lNumberOfWords|while|0x40000000|lY4|lX4|lY|lX|cryptoHelpers|charAt|indexOf|ceil|slice|len|min|max|arguments|originalsize|CBC|numberOfRounds|tmp|sbox|toLowerCase|DD|CC|BB|AA|lByte|lNumberOfWords_temp1|0x80000000|iShiftBits|vl|vh|base64|during|error|broken_b64||decrypt|OFB|CFB|getPaddedBlock|expandKey|SIZE_256|mixColumns|counter|expandedKeySize|0x10325476|0x98BADCFE|0xEFCDAB89|0x67452301|ConvertToWordArray|224|192|2048|127|255|lNumberOfWords_temp2|0x3FFFFFFF|switch|new|t4|decode|decoding|encode_line|sha|getRandom|decode_utf8|utf8|catch|try|encode_utf8|bits|be|must|specified|match|not|does|Key|cpad|invMain|main|SIZE_192|SIZE_128|invRound|round|mixColumn|hi_bit_set|nbr|shiftRow|rsbox|roundKeyPointer|rconIteration|core|iteration|Rcon|rotate|0xEB86D391|0x2AD7D2BB|0xBD3AF235|0xF7537E82|0x4E0811A1|0xA3014314|0xFE2CE6E0|0x6FA87E4F|0x85845DD1|0xFFEFF47D|0x8F0CCC92|0x655B59C3|0xFC93A039|0xAB9423A7|0x432AFF97|0xF4292244|0xC4AC5665|0x1FA27CF8|0xE6DB99E5|0xD9D4D039|0x4881D05|0xD4EF3085|0xEAA127FA|0x289B7EC6|0xBEBFBC70|0xF6BB4B60|0x4BDECFA9|0xA4BEEA44|0xFDE5380C|0x6D9D6122|0x8771F681|0xFFFA3942|0x8D2A4C8A|0x676F02D9|0xFCEFA3F8|0xA9E3E905|0x455A14ED|0xF4D50D87|0xC33707D6|0x21E1CDE6|0xE7D3FBC8|0xD8A1E681|0x2441453|0xD62F105D|0xE9B6C7AA|0x265E5A51|0xC040B340|0xF61E2562|0x49B40821|0xA679438E|0xFD987193|0x6B901122|0x895CD7BE|0xFFFF5BB1|0x8B44F7AF|0x698098D8|0xFD469501|0xA8304613|0x4787C62A|0xF57C0FAF|0xC1BDCEEE|0x242070DB|0xE8C7B756|0xD76AA478|substr|0xC0000000|MD5|0xCA62C1D6|0x8F1BBCDC|0x6ED9EBA1|0x5A827999|0x08000|0x0800000|0x080000000|0xC3D2E1F0||lsb_hex|SHA1|pos|encode|convertByteArrayToString|convertStringToByteArray|arr_sha256|sha2|jsHash|generatePrivateKey|generateSharedKey|random|floor|parseInt|toNumbers|constructor||toHex|escape|decodeURIComponent|encoding|encodeURIComponent|unescape|cipher|default|GEX|GDX|GBX|G9X|G3X|G2X|slowAES'.split('|'),0,{}))
diff --git a/javascript/jsPacker/hash.min.js b/javascript/jsPacker/hash.min.js
deleted file mode 100644
index d8dbba6..0000000
--- a/javascript/jsPacker/hash.min.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('18 aI={2O:{7j:{8L:16,8K:24,86:32},7K:[1W,3z,4D,5g,6g,4B,5A,1U,4W,1Y,5e,3s,3O,3j,2E,56,6d,69,5Y,2C,2r,5C,3q,3P,5z,2d,4e,4s,3L,3I,27,44,5S,3f,5Q,3A,2H,4z,5l,2p,3C,5T,5o,5U,3l,2F,4A,4u,2f,5Z,4x,4l,3V,4T,5b,2l,4v,6u,1x,3Q,5n,5L,4N,5h,4w,1Q,4U,4Z,1J,3x,6k,4O,52,5M,6f,2n,5K,5X,2x,4Q,4F,4o,6x,5W,2e,6h,5x,3o,2w,1V,4c,25,26,3Z,3v,5p,4J,1T,3H,4h,5k,2z,2y,4q,5E,5m,2b,3m,3Y,3T,1S,68,5j,5y,2v,5O,3K,5P,6t,4i,2t,3F,3N,5c,2a,5V,3g,47,4m,3E,3r,3R,5i,2m,3w,57,6e,3e,6p,5d,54,4G,58,5B,3y,5N,4H,46,4V,6r,6c,4f,6m,6i,3G,4Y,4K,2g,5a,62,6j,3U,28,3X,3p,50,6s,51,2q,2A,4d,6o,1R,5v,2j,4E,4j,3M,3t,3k,1P,61,53,3d,2G,3u,4L,4a,4C,43,4P,2u,65,55,1Z,3S,6v,67,66,2c,2s,5r,2i,5H,5F,2o,4p,4R,6q,4X,3b,2h,6n,5J,49,6w,2B,2D,5D,5R,4g,5q,1X,6b,3h,48,4S,5G,5f,3i,3J,2k,5u,3D,5s,4k,45,3n,3B,4n,6a,4t,5t,5I,5w,4M,41,42,4I,4r,4y,2L,4b,6l,3c,3W],8S:[52,4w,2w,61,4W,2H,5T,6t,5w,2v,5y,6b,5N,3g,3j,4h,3z,5X,25,69,5u,2x,5V,5s,3C,3J,5k,3w,6e,4K,4k,1V,6l,5g,2k,3U,67,2q,4x,5d,6i,3Z,5v,5a,41,2r,4l,53,2u,3S,4t,2h,3B,3i,6s,4N,56,3o,4e,3p,3k,4p,4o,1Z,27,48,49,54,4g,42,4S,3W,2d,3I,51,2p,4G,4C,3F,3K,2G,6q,6n,3Y,3f,5W,5R,3N,2g,4u,6m,5D,3e,1P,5P,4Q,6c,2F,2E,6x,6a,2t,2A,3X,5l,2j,3v,5b,3G,2n,5E,50,4J,4U,3D,5O,6d,4z,2L,2b,5q,4s,2o,5J,1Y,3r,4R,4B,28,1R,5G,4I,4H,5e,46,4a,2m,6g,5p,45,3P,66,4M,5B,4T,4d,2i,4V,4j,5z,2D,4q,3Q,5m,3t,2s,6v,5h,4n,3x,3q,5U,4Z,3l,1X,5K,1U,5t,5A,5S,6o,6w,3H,3V,4c,1J,6h,3u,4X,5F,2c,47,4E,2e,2l,62,44,3O,55,4m,6k,4L,5H,5r,68,2y,4f,4v,5Z,4A,5x,6u,2a,5C,5L,1x,3R,5i,3y,5j,3m,3d,58,3b,26,5I,4y,5o,43,1S,5Q,5Y,3L,1T,4O,6j,5M,2z,4P,6r,4i,4b,3M,5n,3c,3T,1Q,4F,4r,2B,57,3s,2f,6p,65,4D,6f,3A,3h,5f,4Y,1W,3n,5c,3E,2C],8Y:1e(1K){18 c=1K[0];1c(18 i=0;i<3;i++)1K[i]=1K[i+1];1K[3]=c;1d 1K},8X:[1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V,1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V,1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V,1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V,1P,1Y,2b,2f,2u,2a,2e,2v,1x,1J,2H,2G,2F,2E,2z,2l,2x,2g,2t,1W,2c,2m,2D,2w,2d,2n,2C,2r,1T,1U,1R,25,27,2j,2A,2o,2B,2q,1S,1Z,26,2k,2y,2h,2p,1Q,1X,28,2i,2s,1V],aH:[6x,2b,2f,50,2u,3X,3E,6w,2a,6u,4Y,3W,3V,4Z,6v,3D,2e,4V,6s,3A,3B,6r,4U,3S,4W,3U,3C,2H,6t,28,3T,4X,2v,41,3w,6m,6n,26,3Z,53,3Y,52,6l,3u,3v,6k,51,2g,3y,6o,54,2h,42,2w,2G,3x,6q,27,2i,56,55,43,3z,6p,1x,69,4Q,4g,4f,4R,6a,3J,6c,3K,2k,4T,4S,2l,3L,6b,4O,4e,3I,67,68,3H,4d,4P,4b,4N,66,3F,3G,65,2t,4c,44,2q,6e,2c,3M,6d,2p,45,4J,47,2d,6f,2F,3N,46,4K,6j,3Q,2j,4M,2s,4a,3R,6i,3P,6g,4L,49,48,2r,6h,3O,1J,58,5H,1X,3r,5G,57,4u,5a,4w,2L,5I,5J,1Y,4v,5b,5M,25,4z,5d,2y,4A,3t,2D,3s,5K,2x,4y,4x,5c,5L,1Z,3o,5C,5i,4G,4F,5j,5D,3n,5F,3p,4H,2z,5k,4I,3q,5E,5g,4E,3m,2C,5B,3l,4D,5h,4B,5f,5A,3k,1W,2B,5e,4C,5u,4r,1S,5P,5Q,1R,2m,5v,4p,5t,5O,1P,1Q,5N,5s,4q,3c,5R,5w,2o,2n,5x,5S,3b,2E,3d,4s,5z,5y,4t,3e,5T,62,3i,4n,5r,2A,4o,3j,61,1V,5Y,5p,4m,4l,5q,5Z,1U,4h,5m,5V,3f,3g,5U,5l,4i,5n,4k,1T,5W,5X,3h,4j,5o],aG:[6x,5J,50,5b,3E,2L,3X,4w,3V,1J,3D,1X,4Y,57,6u,5G,4W,2y,2H,2D,3T,4z,28,25,3B,3s,3S,4y,6s,5L,4V,5c,3y,1W,2h,4C,2G,5A,2w,5f,55,5g,6p,2C,2i,4D,27,3l,3Y,4F,3u,3n,51,5i,6k,5C,6n,5F,53,2z,3w,3q,41,4I,44,4l,2c,1U,2p,5p,6d,5Y,2F,62,4K,5r,2d,3j,47,4o,3P,3g,49,4i,6h,5V,2r,5m,2s,5n,6i,5W,2j,4j,3Q,3h,4O,5y,67,5T,4d,4s,3H,3d,3G,3c,4c,2o,66,5S,4N,5x,6c,5Q,4T,5v,3L,1S,2l,4r,4f,4p,3J,1P,4Q,5s,69,5N,5u,4S,5P,6b,2m,2k,1R,3K,1Q,1x,4q,4g,5O,6a,5t,4R,2E,68,5z,4P,3e,3I,4t,4e,2n,4b,3b,3F,5w,2t,5R,65,4h,48,3f,3O,5l,4L,5U,6g,5X,6j,5o,4M,1T,3R,4k,4a,1V,3M,4m,45,5Z,6e,5q,2q,2A,4J,61,6f,4n,46,3i,3N,3o,3v,4G,2g,5D,6l,5j,52,5k,2v,5E,6m,4H,3Z,3p,26,4B,42,3k,3x,5e,54,2B,6o,5B,6q,5h,56,3m,3z,4E,43,5M,6t,5d,4X,3t,3C,4A,3U,4x,2e,1Z,3A,2x,4U,5K,6r,5a,2u,5I,6w,4v,2f,1Y,2b,3r,2a,4u,3W,5H,6v,58,4Z],aF:[6x,4w,6u,1J,6s,4y,2H,4z,6n,4I,6k,4F,2G,4C,6p,4D,6c,4r,69,4p,66,2o,67,4s,2F,4o,6d,4l,6h,4i,6i,4j,5M,3U,5K,2e,5H,3W,5I,2f,5B,43,2B,42,5D,2g,5E,3Z,2E,4e,5R,4b,5O,4g,5P,2k,5X,4a,5U,48,5Z,45,61,46,56,3m,54,3k,52,3o,2v,3p,4X,3t,4U,1Z,4Z,3r,2u,1Y,4M,1T,4L,3f,2q,1V,4J,3i,4P,3e,2t,3b,4R,1Q,4S,1R,2z,3w,5i,3u,5f,3y,5g,27,5b,3E,57,3D,5c,3B,2y,28,5r,2d,5p,2c,5m,3P,5n,3Q,5v,3L,5s,3J,5x,3G,5y,3H,3R,5o,3O,5l,3M,5q,3N,2A,3I,5z,3F,5w,1x,5t,3K,5u,3z,5h,3x,5e,3v,5j,26,5k,3C,5d,3A,2x,2a,58,2b,5a,3j,4K,1U,2p,3g,2r,3h,2s,1S,4T,1P,4Q,3c,4N,3d,4O,3q,53,3n,51,1W,2w,3l,55,2L,50,1X,4Y,3s,4V,25,4W,2l,5Q,4f,5N,4c,5S,4d,5T,47,62,44,5Y,49,5V,2j,5W,3X,5J,3V,5G,3S,5L,3T,2D,41,5F,3Y,5C,2h,5A,2i,2C,4t,68,2n,65,4q,6a,2m,6b,4k,6j,4h,6g,4m,6e,4n,6f,4A,6t,4x,6r,4u,6v,4v,6w,4E,6q,4B,6o,4G,6l,4H,6m],aE:[6x,5a,3W,1X,4U,5L,28,4A,3v,4F,53,5E,2i,3m,6o,5f,4b,3c,67,5z,3L,2m,4R,5N,2s,5X,3O,4i,6e,5p,47,3i,5g,6q,3k,2h,5D,51,4I,26,4x,3B,2D,4X,2L,2f,58,6u,1V,44,5r,6f,4j,3R,5U,2r,5Q,4S,4q,3J,5w,66,3d,4e,49,3f,6j,5n,3N,4o,2p,5Z,4P,5T,3G,2n,69,5t,2k,1S,6m,2z,3Y,3o,2w,2B,3z,4D,3D,4u,2u,5J,3U,25,6s,2x,1P,4g,5u,6c,4t,3H,5S,2t,61,4K,4l,3M,5m,6g,1T,2j,5d,2H,3s,2e,5G,4Z,4v,3E,4C,3x,5B,55,3p,41,5i,6l,5l,6h,3h,4a,62,4J,4m,2c,4s,3I,5R,4N,1Q,4f,5v,6b,3q,3Z,5j,6k,4B,3y,2C,56,5H,4Y,4w,2b,2y,6t,1Z,3S,6a,5s,2l,1R,4O,2E,3F,2o,2d,4n,2q,5Y,48,3g,6i,5o,3T,3t,6r,5c,2a,1J,50,5I,54,5A,27,4E,6n,5k,2g,3n,1Y,3X,57,6v,4y,3A,5M,4W,5C,52,4H,3w,5h,6p,1W,42,5x,65,3e,4d,5P,4T,4p,1x,4k,3Q,5V,4L,1U,45,2A,2F,43,3l,2G,5e,3u,4G,2v,5F,4V,5K,3C,4z,6w,5b,3V,3r,6d,5q,46,3j,4M,5W,3P,4h,3K,4r,4Q,5O,4c,3b,68,5y],aD:[6x,5I,4Z,57,3C,25,3S,4x,42,4C,27,3m,51,5j,6m,5F,4J,5r,6d,5Z,2j,4k,3O,3g,3G,3b,4e,4s,6a,5N,4T,5u,3c,3F,4t,4d,5O,69,5v,4S,2A,4K,5Y,6e,4j,4a,3f,3P,4B,2h,3l,3z,5i,52,5E,6n,5J,6w,58,4Y,3t,28,4y,2e,3k,3y,4D,43,5C,6l,5k,53,5b,2u,5H,6u,4A,3T,3s,3A,2o,4b,3e,3H,5t,4Q,5Q,6b,61,2F,5p,2q,3h,3R,4h,49,6f,62,2p,5q,3Q,1T,48,4i,4c,2n,3I,3d,4R,5s,6c,5P,50,5a,6v,5G,3U,4z,3B,1Z,3x,1W,2i,4E,6k,5D,2v,2z,3N,3j,44,4m,6i,5X,4L,5m,4N,5w,68,5T,4g,4p,3L,1R,3X,4v,2a,1X,4X,2y,6s,5K,6o,5A,55,5h,3u,3o,3Z,4I,2B,2G,5g,56,3n,3v,4H,41,4w,2f,3r,3D,5d,4W,5L,6r,5x,2t,2E,67,4q,4f,1S,3K,3i,2d,4l,45,5W,6j,5l,2r,5S,65,5z,4O,1Q,3J,4r,2k,4n,47,1U,3M,5n,4M,5U,6h,5e,2w,2C,6q,4F,2g,3p,3w,2L,2b,4u,3V,5M,2H,5c,4U,3E,1Y,3W,1J,6t,2D,4V,2x,54,5f,6p,5B,3Y,4G,26,3q,46,4o,2c,1V,2s,5o,6g,5V,66,5R,4P,5y,1x,1P,2l,2m],aC:[6x,6w,6v,6u,6t,2H,6s,6r,6q,6p,2G,6o,6n,6m,6l,6k,6j,6i,6h,6g,2F,6f,6e,6d,6c,6b,6a,69,68,67,66,65,62,61,5Z,5Y,5X,5W,5V,5U,2E,5T,5S,5R,5Q,5P,5O,5N,5M,2D,5L,5K,5J,5I,5H,5G,5F,5E,5D,5C,5B,2C,5A,2B,5z,5y,5x,5w,5v,5u,5t,5s,5r,2A,5q,5p,5o,5n,5m,5l,2z,5k,5j,5i,5h,5g,5f,5e,5d,2y,5c,2x,5b,5a,58,57,56,55,2w,54,53,2v,52,51,50,2u,4Z,4Y,4X,4W,4V,4U,4T,4S,4R,4Q,4P,4O,4N,2t,4M,2s,2r,4L,4K,4J,2q,2p,4I,4H,4G,4F,4E,4D,4C,4B,4A,4z,4y,4x,4w,4v,4u,1J,4t,4s,2o,2n,4r,2m,4q,4p,4o,4n,4m,4l,4k,4j,4i,4h,2l,2k,4g,4f,4e,4d,4c,4b,4a,2j,49,48,47,46,45,44,43,2i,2h,42,41,3Z,2g,3Y,3X,2f,3W,3V,3U,3T,3S,2e,3R,3Q,3P,3O,2d,3N,3M,2c,3L,3K,1x,3J,3I,3H,3G,3F,3E,2b,2a,3D,3C,28,3B,3A,3z,27,3y,3x,3w,26,3v,3u,3t,25,3s,1Z,2L,1Y,3r,1X,3q,3p,3o,3n,3m,3l,1W,3k,3j,3i,1V,1U,1T,3h,3g,3f,3e,3d,3c,3b,1S,1R,1Q,1P],8V:1e(1K,8W){1K=1a.8Y(1K);1c(18 i=0;i<4;++i)1K[i]=1a.7K[1K[i]];1K[0]=1K[0]^1a.8X[8W];1d 1K},85:1e(1k,1g){18 89=(16*(1a.7I(1g)+1));18 34=0;18 8U=1;18 t=[];18 1m=[];1c(18 i=0;i<89;i++)1m[i]=0;1c(18 j=0;j<1g;j++)1m[j]=1k[j];34+=1g;7r(34<89){1c(18 k=0;k<4;k++)t[k]=1m[(34-4)+k];1f(34%1g==0)t=1a.8V(t,8U++);1f(1g==1a.7j.86&&((34%1g)==16))1c(18 l=0;l<4;l++)t[l]=1a.7K[t[l]];1c(18 m=0;m<4;m++){1m[34]=1m[34-1g]^t[m];34++}}1d 1m},6D:1e(1b,31){1c(18 i=0;i<16;i++)1b[i]^=31[i];1d 1b},6C:1e(1m,8T){18 31=[];1c(18 i=0;i<4;i++)1c(18 j=0;j<4;j++)31[j*4+i]=1m[8T+i*4+j];1d 31},7k:1e(1b,2V){1c(18 i=0;i<16;i++)1b[i]=2V?1a.8S[1b[i]]:1a.7K[1b[i]];1d 1b},7l:1e(1b,2V){1c(18 i=0;i<4;i++)1b=1a.8R(1b,i*4,i,2V);1d 1b},8R:1e(1b,33,8Q,2V){1c(18 i=0;i<8Q;i++){1f(2V){18 7J=1b[33+3];1c(18 j=3;j>0;j--)1b[33+j]=1b[33+j-1];1b[33]=7J}1n{18 7J=1b[33];1c(18 j=0;j<3;j++)1b[33+j]=1b[33+j+1];1b[33+3]=7J}}1d 1b},1z:1e(a,b){18 p=0;1c(18 88=0;88<8;88++){1f((b&1)==1)p^=a;1f(p>3a)p^=3a;18 8P=(a&1x);a<<=1;1f(a>3a)a^=3a;1f(8P==1x)a^=1J;1f(a>3a)a^=3a;b>>=1;1f(b>3a)b^=3a;}1d p},87:1e(1b,2V){18 2J=[];1c(18 i=0;i<4;i++){1c(18 j=0;j<4;j++)2J[j]=1b[(j*4)+i];2J=1a.8O(2J,2V);1c(18 k=0;k<4;k++)1b[(k*4)+i]=2J[k]}1d 1b},8O:1e(2J,2V){18 1q=[];1f(2V)1q=[14,9,13,11];1n 1q=[2,1,1,3];18 1s=[];1c(18 i=0;i<4;i++)1s[i]=2J[i];2J[0]=1a.1z(1s[0],1q[0])^1a.1z(1s[3],1q[1])^1a.1z(1s[2],1q[2])^1a.1z(1s[1],1q[3]);2J[1]=1a.1z(1s[1],1q[0])^1a.1z(1s[0],1q[1])^1a.1z(1s[3],1q[2])^1a.1z(1s[2],1q[3]);2J[2]=1a.1z(1s[2],1q[0])^1a.1z(1s[1],1q[1])^1a.1z(1s[0],1q[2])^1a.1z(1s[3],1q[3]);2J[3]=1a.1z(1s[3],1q[0])^1a.1z(1s[2],1q[1])^1a.1z(1s[1],1q[2])^1a.1z(1s[0],1q[3]);1d 2J},8N:1e(1b,31){1b=1a.7k(1b,2N);1b=1a.7l(1b,2N);1b=1a.87(1b,2N);1b=1a.6D(1b,31);1d 1b},8M:1e(1b,31){1b=1a.7l(1b,37);1b=1a.7k(1b,37);1b=1a.6D(1b,31);1b=1a.87(1b,37);1d 1b},8J:1e(1b,1m,1D){1b=1a.6D(1b,1a.6C(1m,0));1c(18 i=1;i<1D;i++)1b=1a.8N(1b,1a.6C(1m,16*i));1b=1a.7k(1b,2N);1b=1a.7l(1b,2N);1b=1a.6D(1b,1a.6C(1m,16*1D));1d 1b},8I:1e(1b,1m,1D){1b=1a.6D(1b,1a.6C(1m,16*1D));1c(18 i=1D-1;i>0;i--)1b=1a.8M(1b,1a.6C(1m,16*i));1b=1a.7l(1b,37);1b=1a.7k(1b,37);1b=1a.6D(1b,1a.6C(1m,0));1d 1b},7I:1e(1g){18 1D;8m(1g){6A 1a.7j.8L:1D=10;36;6A 1a.7j.8K:1D=12;36;6A 1a.7j.86:1D=14;36;aB:1d 2Y;36}1d 1D},2P:1e(1r,1k,1g){18 1j=[];18 2U=[];18 1D=1a.7I(1g);1c(18 i=0;i<4;i++)1c(18 j=0;j<4;j++)2U[(i+(j*4))]=1r[(i*4)+j];18 1m=1a.85(1k,1g);2U=1a.8J(2U,1m,1D);1c(18 k=0;k<4;k++)1c(18 l=0;l<4;l++)1j[(k*4)+l]=2U[(k+(l*4))];1d 1j},81:1e(1r,1k,1g){18 1j=[];18 2U=[];18 1D=1a.7I(1g);1c(18 i=0;i<4;i++)1c(18 j=0;j<4;j++)2U[(i+(j*4))]=1r[(i*4)+j];18 1m=1a.85(1k,1g);2U=1a.8I(2U,1m,1D);1c(18 k=0;k<4;k++)1c(18 l=0;l<4;l++)1j[(k*4)+l]=2U[(k+(l*4))];1d 1j}},38:{82:0,83:1,7H:2},84:1e(2Z,1G,1C,1I){1f(1C-1G>16)1C=1G+16;18 2M=2Z.7B(1G,1C);1f(1I==1a.38.7H){18 8H=16-2M.1h;7r(2M.1h<16){2M.1o(8H)}}1d 2M},2P:1e(2Z,1I,1k,1g,2I){1f(1k.1h%1g){6B\'8G 1h 8F 8E 8D 8C 1g.\'}1f(2I.1h%16){6B\'2I 1h 8B 8A 2Q 8z.\'}18 1p=[];18 1r=[];18 1j=[];18 1B=[];18 7i=[];18 1H=37;1f(2Z!==2Y){1c(18 j=0;j<6I.7A(2Z.1h/16);j++){18 1G=j*16;18 1C=j*16+16;1f(j*16+16>2Z.1h)1C=2Z.1h;1p=1a.84(2Z,1G,1C,1I);1f(1I==1a.38.83){1f(1H){1j=1a.2O.2P(2I,1k,1g);1H=2N}1n 1j=1a.2O.2P(1r,1k,1g);1c(18 i=0;i<16;i++)1B[i]=1p[i]^1j[i];1c(18 k=0;k<1C-1G;k++)7i.1o(1B[k]);1r=1B}1n 1f(1I==1a.38.82){1f(1H){1j=1a.2O.2P(2I,1k,1g);1H=2N}1n 1j=1a.2O.2P(1r,1k,1g);1c(18 i=0;i<16;i++)1B[i]=1p[i]^1j[i];1c(18 k=0;k<1C-1G;k++)7i.1o(1B[k]);1r=1j}1n 1f(1I==1a.38.7H){1c(18 i=0;i<16;i++)1r[i]=1p[i]^((1H)?2I[i]:1B[i]);1H=2N;1B=1a.2O.2P(1r,1k,1g);1c(18 k=0;k<16;k++)7i.1o(1B[k])}}}1d{1I:1I,7G:2Z.1h,aA:7i}},81:1e(6L,7G,1I,1k,1g,2I){1f(1k.1h%1g){6B\'8G 1h 8F 8E 8D 8C 1g.\';1d 2Y}1f(2I.1h%16){6B\'2I 1h 8B 8A 2Q 8z.\'}18 1B=[];18 1r=[];18 1j=[];18 1p=[];18 6K=[];18 1H=37;1f(6L!==2Y){1c(18 j=0;j<6I.7A(6L.1h/16);j++){18 1G=j*16;18 1C=j*16+16;1f(j*16+16>6L.1h)1C=6L.1h;1B=1a.84(6L,1G,1C,1I);1f(1I==1a.38.83){1f(1H){1j=1a.2O.2P(2I,1k,1g);1H=2N}1n 1j=1a.2O.2P(1r,1k,1g);1c(i=0;i<16;i++)1p[i]=1j[i]^1B[i];1c(18 k=0;k<1C-1G;k++)6K.1o(1p[k]);1r=1B}1n 1f(1I==1a.38.82){1f(1H){1j=1a.2O.2P(2I,1k,1g);1H=2N}1n 1j=1a.2O.2P(1r,1k,1g);1c(i=0;i<16;i++)1p[i]=1j[i]^1B[i];1c(18 k=0;k<1C-1G;k++)6K.1o(1p[k]);1r=1j}1n 1f(1I==1a.38.7H){1j=1a.2O.81(1B,1k,1g);1c(i=0;i<16;i++)1p[i]=((1H)?2I[i]:1r[i])^1j[i];1H=2N;1f(7G<1C)1c(18 k=0;k<7G-1G;k++)6K.1o(1p[k]);1n 1c(18 k=0;k<1C-1G;k++)6K.1o(1p[k]);1r=1B}}}1d 6K}};18 7x={8y:1e(s){8x{1d az(ay(s))}8w(e){6B\'7Y 7X 8v ax: 7x.8y.\'}},8u:1e(s){8x{1d aw(av(s))}8w(e){6B(\'7Y 7X 8v 8q: 7x.8u.\')}},au:1e(){18 2M=[];1f(7F.1h==1&&7F[0].as==73)2M=7F[0];1n 2M=7F;18 6J=\'\';1c(18 i=0;i<2M.1h;i++)6J+=(2M[i]<16?\'0\':\'\')+2M[i].74(16);1d 6J.7L()},ar:1e(s){18 6J=[];s.7n(/(..)/g,1e(s){6J.1o(aq(s,16))});1d 6J},8t:1e(7D,7E){1f(7D===2Y)7D=0;1f(7E===2Y)7E=1;1d 6I.ap(6I.ao()*(7E+1))+7D},an:1e(7C){1f(7C===2Y)7C=16;18 1k=[];1c(18 i=0;i<7C*2;i++)1k.1o(1a.8t(0,8j));1d 1k},am:1e(s,1g){18 8s=al.ak.aj(s);1d 8s.7B(0,1g)},ai:1e(s){18 1p=[];1c(18 i=0;i<s.1h;i++){1p.1o(s.1E(i))}1d 1p},ah:1e(1p){18 s=\'\';1c(18 i=0;i<1p.1h;i++){s+=1N.1M(1p[i])}1d s},7W:{2X:[\'A\',\'B\',\'C\',\'D\',\'E\',\'F\',\'G\',\'H\',\'I\',\'J\',\'K\',\'L\',\'M\',\'N\',\'O\',\'P\',\'Q\',\'R\',\'S\',\'T\',\'U\',\'V\',\'W\',\'X\',\'Y\',\'Z\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\',\'g\',\'h\',\'i\',\'j\',\'k\',\'l\',\'m\',\'n\',\'o\',\'p\',\'q\',\'r\',\'s\',\'t\',\'u\',\'v\',\'w\',\'x\',\'y\',\'z\',\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'+\',\'/\',\'=\'],8r:1e(1y){18 1O=\'\';1c(18 i=0;i<1y.1h;i+=3){1O+=1a.2X[1y[i]>>2];1O+=1a.2X[((1y[i]&3)<<4)|(1y[i+1]>>4)];1f(!(1y[i+1]===2Y)){1O+=1a.2X[((1y[i+1]&15)<<2)|(1y[i+2]>>6)]}1n{1O+=\'=\'}1f(!(1y[i+2]===2Y)){1O+=1a.2X[1y[i+2]&63]}1n{1O+=\'=\'}}1d 1O},ag:1e(1y){18 1O=1a.8r(1y);18 7Z=1O.7B(0,64)+\'\\n\';1c(18 i=1;i<(6I.7A(1O.1h/64));i++){7Z+=1O.7B(i*64,i*64+64)+(6I.7A(1O.1h/64)==i+1?\'\':\'\\n\')}1d 7Z},8p:1e(1i){1i=1i.7n(/[\\r\\n\\t ]+/g,\'\')+\'====\';18 1y=[];18 c=[];1c(18 i=0;37;i=i+4){c[0]=1a.2X.7z(1i.7y(i));1f(c[0]==64){1d 1y}c[1]=1a.2X.7z(1i.7y(i+1));c[2]=1a.2X.7z(1i.7y(i+2));c[3]=1a.2X.7z(1i.7y(i+3));1f((c[0]<0)||(c[1]<0)||(c[1]==64)||(c[2]<0)||(c[3]<0)){6B\'7Y 7X 7W 8q at af \'+i+\': 7x.7W.8p.\'}1y.1o((c[0]<<2)|(c[1]>>4));1f(c[2]>=0&&c[2]<64){1y.1o(((c[1]&15)<<4)|(c[2]>>2));1f(c[3]>=0&&c[2]<64){1y.1o(((c[2]&3)<<6)|c[3])}}}}}};1e ae(1F){1e 2T(n,s){18 8o=(n<<s)|(n>>>(32-s));1d 8o};1e ad(7h){18 6H="";18 i;18 7V;18 7U;1c(i=0;i<=6;i+=2){7V=(7h>>>(i*4+4))&2L;7U=(7h>>>(i*4))&2L;6H+=7V.74(16)+7U.74(16)}1d 6H};1e 6G(7h){18 6H="";18 i;18 v;1c(i=7;i>=0;i--){v=(7h>>>(i*4))&2L;6H+=v.74(16)}1d 6H};1e 7m(1i){1i=1i.7n(/\\r\\n/g,"\\n");18 1A="";1c(18 n=0;n<1i.1h;n++){18 c=1i.1E(n);1f(c<2Q){1A+=1N.1M(c)}1n 1f((c>8i)&&(c<8h)){1A+=1N.1M((c>>6)|8g);1A+=1N.1M((c&63)|2Q)}1n{1A+=1N.1M((c>>12)|8f);1A+=1N.1M(((c>>6)&63)|2Q);1A+=1N.1M((c&63)|2Q)}}1d 1A};18 7g;18 i,j;18 W=8n 73(80);18 7f=8d;18 7e=8c;18 7d=8b;18 7c=8a;18 7b=ab;18 A,B,C,D,E;18 1L;1F=7m(1F);18 2K=1F.1h;18 2W=8n 73();1c(i=0;i<2K-3;i+=4){j=1F.1E(i)<<24|1F.1E(i+1)<<16|1F.1E(i+2)<<8|1F.1E(i+3);2W.1o(j)}8m(2K%4){6A 0:i=aa;36;6A 1:i=1F.1E(2K-1)<<24|a9;36;6A 2:i=1F.1E(2K-2)<<24|1F.1E(2K-1)<<16|a8;36;6A 3:i=1F.1E(2K-3)<<24|1F.1E(2K-2)<<16|1F.1E(2K-1)<<8|1x;36}2W.1o(i);7r((2W.1h%16)!=14)2W.1o(0);2W.1o(2K>>>29);2W.1o((2K<<3)&2S);1c(7g=0;7g<2W.1h;7g+=16){1c(i=0;i<16;i++)W[i]=2W[7g+i];1c(i=16;i<=79;i++)W[i]=2T(W[i-3]^W[i-8]^W[i-14]^W[i-16],1);A=7f;B=7e;C=7d;D=7c;E=7b;1c(i=0;i<=19;i++){1L=(2T(A,5)+((B&C)|(~B&D))+E+W[i]+a7)&2S;E=D;D=C;C=2T(B,30);B=A;A=1L}1c(i=20;i<=39;i++){1L=(2T(A,5)+(B^C^D)+E+W[i]+a6)&2S;E=D;D=C;C=2T(B,30);B=A;A=1L}1c(i=40;i<=59;i++){1L=(2T(A,5)+((B&C)|(B&D)|(C&D))+E+W[i]+a5)&2S;E=D;D=C;C=2T(B,30);B=A;A=1L}1c(i=60;i<=79;i++){1L=(2T(A,5)+(B^C^D)+E+W[i]+a4)&2S;E=D;D=C;C=2T(B,30);B=A;A=1L}7f=(7f+A)&2S;7e=(7e+B)&2S;7d=(7d+C)&2S;7c=(7c+D)&2S;7b=(7b+E)&2S}18 1L=6G(7f)+6G(7e)+6G(7d)+6G(7c)+6G(7b);1d 1L.7L()}18 a3=1e(1i){1e 7a(76,7T){1d(76<<7T)|(76>>>(32-7T))}1e 1l(7w,7v){18 7u,7t,6F,6E,6z;6F=(7w&7S);6E=(7v&7S);7u=(7w&7s);7t=(7v&7s);6z=(7w&8l)+(7v&8l);1f(7u&7t){1d(6z^7S^6F^6E)}1f(7u|7t){1f(6z&7s){1d(6z^a2^6F^6E)}1n{1d(6z^7s^6F^6E)}}1n{1d(6z^6F^6E)}}1e F(x,y,z){1d(x&y)|((~x)&z)}1e G(x,y,z){1d(x&z)|(y&(~z))}1e H(x,y,z){1d(x^y^z)}1e I(x,y,z){1d(y^(x|(~z)))}1e 1w(a,b,c,d,x,s,ac){a=1l(a,1l(1l(F(b,c,d),x),ac));1d 1l(7a(a,s),b)};1e 1v(a,b,c,d,x,s,ac){a=1l(a,1l(1l(G(b,c,d),x),ac));1d 1l(7a(a,s),b)};1e 1u(a,b,c,d,x,s,ac){a=1l(a,1l(1l(H(b,c,d),x),ac));1d 1l(7a(a,s),b)};1e 1t(a,b,c,d,x,s,ac){a=1l(a,1l(1l(I(b,c,d),x),ac));1d 1l(7a(a,s),b)};1e 8e(1i){18 6y;18 77=1i.1h;18 7R=77+8;18 8k=(7R-(7R%64))/64;18 7q=(8k+1)*16;18 35=73(7q-1);18 78=0;18 2R=0;7r(2R<77){6y=(2R-(2R%4))/4;78=(2R%4)*8;35[6y]=(35[6y]|(1i.1E(2R)<<78));2R++}6y=(2R-(2R%4))/4;78=(2R%4)*8;35[6y]=35[6y]|(1x<<78);35[7q-2]=77<<3;35[7q-1]=77>>>29;1d 35};1e 6M(76){18 7o="",7p="",7Q,75;1c(75=0;75<=3;75++){7Q=(76>>>(75*8))&8j;7p="0"+7Q.74(16);7o=7o+7p.a1(7p.1h-2,2)}1d 7o};1e 7m(1i){1i=1i.7n(/\\r\\n/g,"\\n");18 1A="";1c(18 n=0;n<1i.1h;n++){18 c=1i.1E(n);1f(c<2Q){1A+=1N.1M(c)}1n 1f((c>8i)&&(c<8h)){1A+=1N.1M((c>>6)|8g);1A+=1N.1M((c&63)|2Q)}1n{1A+=1N.1M((c>>12)|8f);1A+=1N.1M(((c>>6)&63)|2Q);1A+=1N.1M((c&63)|2Q)}}1d 1A};18 x=73();18 k,7P,7O,7N,7M,a,b,c,d;18 72=7,71=12,70=17,6Z=22;18 6Y=5,6X=9,6W=14,6V=20;18 6U=4,6T=11,6S=16,6R=23;18 6Q=6,6P=10,6O=15,6N=21;1i=7m(1i);x=8e(1i);a=8d;b=8c;c=8b;d=8a;1c(k=0;k<x.1h;k+=16){7P=a;7O=b;7N=c;7M=d;a=1w(a,b,c,d,x[k+0],72,a0);d=1w(d,a,b,c,x[k+1],71,9Z);c=1w(c,d,a,b,x[k+2],70,9Y);b=1w(b,c,d,a,x[k+3],6Z,9X);a=1w(a,b,c,d,x[k+4],72,9W);d=1w(d,a,b,c,x[k+5],71,9V);c=1w(c,d,a,b,x[k+6],70,9U);b=1w(b,c,d,a,x[k+7],6Z,9T);a=1w(a,b,c,d,x[k+8],72,9S);d=1w(d,a,b,c,x[k+9],71,9R);c=1w(c,d,a,b,x[k+10],70,9Q);b=1w(b,c,d,a,x[k+11],6Z,9P);a=1w(a,b,c,d,x[k+12],72,9O);d=1w(d,a,b,c,x[k+13],71,9N);c=1w(c,d,a,b,x[k+14],70,9M);b=1w(b,c,d,a,x[k+15],6Z,9L);a=1v(a,b,c,d,x[k+1],6Y,9K);d=1v(d,a,b,c,x[k+6],6X,9J);c=1v(c,d,a,b,x[k+11],6W,9I);b=1v(b,c,d,a,x[k+0],6V,9H);a=1v(a,b,c,d,x[k+5],6Y,9G);d=1v(d,a,b,c,x[k+10],6X,9F);c=1v(c,d,a,b,x[k+15],6W,9E);b=1v(b,c,d,a,x[k+4],6V,9D);a=1v(a,b,c,d,x[k+9],6Y,9C);d=1v(d,a,b,c,x[k+14],6X,9B);c=1v(c,d,a,b,x[k+3],6W,9A);b=1v(b,c,d,a,x[k+8],6V,9z);a=1v(a,b,c,d,x[k+13],6Y,9y);d=1v(d,a,b,c,x[k+2],6X,9x);c=1v(c,d,a,b,x[k+7],6W,9w);b=1v(b,c,d,a,x[k+12],6V,9v);a=1u(a,b,c,d,x[k+5],6U,9u);d=1u(d,a,b,c,x[k+8],6T,9t);c=1u(c,d,a,b,x[k+11],6S,9s);b=1u(b,c,d,a,x[k+14],6R,9r);a=1u(a,b,c,d,x[k+1],6U,9q);d=1u(d,a,b,c,x[k+4],6T,9p);c=1u(c,d,a,b,x[k+7],6S,9o);b=1u(b,c,d,a,x[k+10],6R,9n);a=1u(a,b,c,d,x[k+13],6U,9m);d=1u(d,a,b,c,x[k+0],6T,9l);c=1u(c,d,a,b,x[k+3],6S,9k);b=1u(b,c,d,a,x[k+6],6R,9j);a=1u(a,b,c,d,x[k+9],6U,9i);d=1u(d,a,b,c,x[k+12],6T,9h);c=1u(c,d,a,b,x[k+15],6S,9g);b=1u(b,c,d,a,x[k+2],6R,9f);a=1t(a,b,c,d,x[k+0],6Q,9e);d=1t(d,a,b,c,x[k+7],6P,9d);c=1t(c,d,a,b,x[k+14],6O,9c);b=1t(b,c,d,a,x[k+5],6N,9b);a=1t(a,b,c,d,x[k+12],6Q,9a);d=1t(d,a,b,c,x[k+3],6P,99);c=1t(c,d,a,b,x[k+10],6O,98);b=1t(b,c,d,a,x[k+1],6N,97);a=1t(a,b,c,d,x[k+8],6Q,96);d=1t(d,a,b,c,x[k+15],6P,95);c=1t(c,d,a,b,x[k+6],6O,94);b=1t(b,c,d,a,x[k+13],6N,93);a=1t(a,b,c,d,x[k+4],6Q,92);d=1t(d,a,b,c,x[k+11],6P,91);c=1t(c,d,a,b,x[k+2],6O,90);b=1t(b,c,d,a,x[k+9],6N,8Z);a=1l(a,7P);b=1l(b,7O);c=1l(c,7N);d=1l(d,7M)}18 1L=6M(a)+6M(b)+6M(c)+6M(d);1d 1L.7L()}',62,665,'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||var||this|state|for|return|function|if|size|length|string|output|key|AddUnsigned|expandedKey|else|push|byteArray|mult|input|cpy|II|HH|GG|FF|0x80|flatArr|galois_multiplication|utftext|ciphertext|end|nbrRounds|charCodeAt|msg|start|firstRound|mode|0x1b|word|temp|fromCharCode|String|b64|0x8d|0x83|0x91|0x9f|0xef|0xc5|0xcb|0x63|0x1d|0x01|0x25||||||0x39|0x4a|0x72|0x3a||0x10|0x02|0xc6|0xd4|0x20|0x04|0x5e|0x66|0x74|0xe4|0x94|0x9a|0x97|0xb3|0xbd|0xcc|0xc2|0xfa|0xe8|0xbc|0x08|0x40|0x6a|0x2f|0x33|0x4d|0xd3|0x61|0x7d|0x35|0xab|0xd8|0x6c|0x36|iv|column|msg_len|0x0f|array|false|aes|encrypt|128|lByteCount|0x0ffffffff|rotate_left|block|isInv|word_array|chars|null|bytesIn||roundKey||statePointer|currentSize|lWordArray|break|true|modeOfOperation||0x100|0xb5|0xbb|0xa9|0xa7|0xfd|0xf3|0xe1|0xd9|0xd7|0x6d|0x71|0x7f|0x55|0x5b|0x49|0x47|0x13|0x2b|0x37|0x56|0x58|0x44|0x6e|0x60|0x7c|0x26|0x28|0x34|0x1e|0x0c|0xb6|0xb8|0xaa|0xa4|0x8e|0x92|0x9c|0xc8|0xda|0xfe|0xf0|0xe2|0xec|0x2e|0x3c|0x32|0x18|0x16|0x0a|0x50|0x4c||0x42|0x68|0x7a|0xc0|0xce|0xdc|0xd2|0xf8|0xf6|0xea|0xb0|0xbe|0xac|0xa2|0x88|0x86|0xfb|0xf5|0xe7|0xe9|0xc3|0xcd|0xdf|0xd1|0x8b|0x85|0x99|0xaf|0xa1|0x15|0x07|0x09|0x23|0x2d|0x3f|0x31|0x6b|0x65|0x77|0x79|0x53|0x5d|0x4f|0x41|0xd0|0xde|0xf4|0xe6|0xb2|0xa0|0xae|0x84|0x8a|0x98|0x96|0x2c|0x22|0x30|0x3e|0x14|0x1a|0x06|0x5c|0x52|0x4e|0x64|0x78|0x76|0x17|0x19||0x0b|0x05|0x21|0x3d|0x67|0x69|0x7b|0x75|0x5f|0x51|0x43|0xf7|0xf9|0xeb|0xe5|0xcf|0xc1|0xdd|0x87|0x89|0x9b|0x95|0xbf|0xb1|0xa3|0xad|0x6f|0x73|0x59|0x57|0x45|0x4b|0x11|0x1f|0x0d|0x03|0x29|0x27|0x3b|0x81|0x8f|0x9d|0x93|0xb9|0xb7|0xa5|0xf1|0xff|0xed|0xe3|0xc9|0xc7||0xd5|0xdb|||0xba|0xb4|0xa6|0xa8|0x82|0x8c|0x9e|0x90|0xca|0xc4|0xd6|0xf2|0xfc|0xee|0xe0|0x5a|0x54|0x46|0x48|0x62|0x7e|0x70|0x2a|0x24|0x38|0x12|0x1c|0x0e|0x00|lWordCount|lResult|case|throw|createRoundKey|addRoundKey|lY8|lX8|cvt_hex|str|Math|ret|bytesOut|cipherIn|WordToHex|S44|S43|S42|S41|S34|S33|S32|S31|S24|S23|S22|S21|S14|S13|S12|S11|Array|toString|lCount|lValue|lMessageLength|lBytePosition||RotateLeft|H4|H3|H2|H1|H0|blockstart|val|cipherOut|keySize|subBytes|shiftRows|Utf8Encode|replace|WordToHexValue|WordToHexValue_temp|lNumberOfWords|while|0x40000000|lY4|lX4|lY|lX|cryptoHelpers|charAt|indexOf|ceil|slice|len|min|max|arguments|originalsize|CBC|numberOfRounds|tmp|sbox|toLowerCase|DD|CC|BB|AA|lByte|lNumberOfWords_temp1|0x80000000|iShiftBits|vl|vh|base64|during|error|broken_b64||decrypt|OFB|CFB|getPaddedBlock|expandKey|SIZE_256|mixColumns|counter|expandedKeySize|0x10325476|0x98BADCFE|0xEFCDAB89|0x67452301|ConvertToWordArray|224|192|2048|127|255|lNumberOfWords_temp2|0x3FFFFFFF|switch|new|t4|decode|decoding|encode_line|sha|getRandom|decode_utf8|utf8|catch|try|encode_utf8|bits|be|must|specified|match|not|does|Key|cpad|invMain|main|SIZE_192|SIZE_128|invRound|round|mixColumn|hi_bit_set|nbr|shiftRow|rsbox|roundKeyPointer|rconIteration|core|iteration|Rcon|rotate|0xEB86D391|0x2AD7D2BB|0xBD3AF235|0xF7537E82|0x4E0811A1|0xA3014314|0xFE2CE6E0|0x6FA87E4F|0x85845DD1|0xFFEFF47D|0x8F0CCC92|0x655B59C3|0xFC93A039|0xAB9423A7|0x432AFF97|0xF4292244|0xC4AC5665|0x1FA27CF8|0xE6DB99E5|0xD9D4D039|0x4881D05|0xD4EF3085|0xEAA127FA|0x289B7EC6|0xBEBFBC70|0xF6BB4B60|0x4BDECFA9|0xA4BEEA44|0xFDE5380C|0x6D9D6122|0x8771F681|0xFFFA3942|0x8D2A4C8A|0x676F02D9|0xFCEFA3F8|0xA9E3E905|0x455A14ED|0xF4D50D87|0xC33707D6|0x21E1CDE6|0xE7D3FBC8|0xD8A1E681|0x2441453|0xD62F105D|0xE9B6C7AA|0x265E5A51|0xC040B340|0xF61E2562|0x49B40821|0xA679438E|0xFD987193|0x6B901122|0x895CD7BE|0xFFFF5BB1|0x8B44F7AF|0x698098D8|0xFD469501|0xA8304613|0x4787C62A|0xF57C0FAF|0xC1BDCEEE|0x242070DB|0xE8C7B756|0xD76AA478|substr|0xC0000000|MD5|0xCA62C1D6|0x8F1BBCDC|0x6ED9EBA1|0x5A827999|0x08000|0x0800000|0x080000000|0xC3D2E1F0||lsb_hex|SHA1|pos|encode|convertByteArrayToString|convertStringToByteArray|arr_sha256|sha2|jsHash|generatePrivateKey|generateSharedKey|random|floor|parseInt|toNumbers|constructor||toHex|escape|decodeURIComponent|encoding|encodeURIComponent|unescape|cipher|default|GEX|GDX|GBX|G9X|G3X|G2X|slowAES'.split('|'),0,{}))
diff --git a/javascript/jsPacker/jsPacker.pl b/javascript/jsPacker/jsPacker.pl
deleted file mode 100644
index 80f7236..0000000
--- a/javascript/jsPacker/jsPacker.pl
+++ /dev/null
@@ -1,163 +0,0 @@
-#!perl
-#jsPacker (July 2005)
-#
-use strict;
-use Pack;
-use vars qw($PROGNAME $VERSION
- $opt_h $opt_q $opt_v $opt_i $opt_o $opt_e $opt_f $opt_s);
-use Getopt::Std;
-
-$PROGNAME = $0;
-$VERSION = '1.00b';
-
-my $Description = 'A JavaScript Compressor/Obfuscator';
-my $Version = "v$VERSION\[p$Pack::VERSION-pm$Pack::PM_VERSION\]";
-
-# "English" versions of settings
-my %ENCODINGS = (0=>'None', 10=>'Decimal', 36=>'Normal', 62=>'Normal', 95=>'High-ascii');
-my %SETTINGS = (0=>'No', 1=>'Yes');
-
-exit(0) if &main();
-exit(1);
-
-################
-# Sub-routines #
-################
-# Main program
-sub main {
- # Get command line options
- &getopts('hqvfsi:o:e:');
- $opt_h ||= 0; # $opt_h shows usage and exits
- $opt_q ||= 0; # $opt_q sets quiet mode (no stdout output)
- $opt_v ||= 0; # $opt_v shows version and exits
- $opt_i ||= ''; # $opt_i is input file. Required!
- $opt_o ||= ''; # $opt_o is output file. If not set, use standard output
- $opt_e ||= 0; # $opt_e encoding level (0,10,36,62,95)
- $opt_f ||= 0; # $opt_f use fast decoding
- $opt_s ||= 0; # $opt_x use special characters
-
- # Display help or version if requested
- if ($opt_h) {&usage("help")}
- if ($opt_v) {&usage("version")}
-
- # Constrain encoding level, fastdecoding and specialcharacters to allowed limits
- $opt_e = ($opt_e > 0) ? ($opt_e > 10) ? ($opt_e > 36) ? ($opt_e > 62) ? 95 : 62 : 36 : 10 : 0;
- $opt_f = ($opt_f) ? 1 : 0;
- $opt_s = ($opt_s) ? 1 : 0;
-
- # Do the job if an input file is specified
- if ($opt_i) {
- # Read the source script
- my $script = &readInputFile($opt_i);
- # Pack the source script
- my $packedscript = &Pack::pack($script,$opt_e, $opt_f, $opt_s);
- # Show what happened (if not in quiet mode)
- if (!$opt_q) {showJobDetails($opt_i, $opt_o, $opt_e, $opt_f,$opt_s,\$script,\$packedscript)}
- # Output the packed script
- if ($opt_o) {&writeOutputFile($opt_o,\$packedscript)} # to output file if specifed
- else {print "$packedscript"} # otherwise to STDOUT
- }
- else { # If no input file is specified, display help
- &usage();
- }
- return(1);
-}
-
-######################
-sub showJobDetails { #
-######################
-# Show details of input/output files, settings and compression ratio
- my ($inputfile, $outputfile,
- $encoding, $fastdecode, $specialchars,
- $instringref, $outstringref) = @_;
- print "$PROGNAME $Version\n";
- print "\tSource file : ";
- print "\"$inputfile\"\n";
- print (($outputfile) ? ("\tOutput file : \"$outputfile\"\n") : ''); # Print only if output is going to a file
- print "\tSettings : encoding=$ENCODINGS{$encoding} fastdecode=$SETTINGS{$fastdecode} specialchars=$SETTINGS{$specialchars}\n";
- print "\tCompression : " . &compressionRatio($instringref, $outstringref). "\n\n";
-
-}
-
-#####################
-sub readInputFile { #
-#####################
-# Read content (source script) from input file
- my $filename = shift;
- open(FH, $filename) || die "Error!!! Problem opening input file \"$filename\"!\n";
- my @content = <FH>;
- close(FH);
- return join('',@content);
-}
-
-#######################
-sub writeOutputFile { #
-#######################
-# Write content (packed script) to output file
- my ($filename,$refcontent) = @_;
- open(FH, ">$filename") || die "Error!!! Problem opening output file \"$filename\"\n";
- print(FH $$refcontent);
- close(FH);
-}
-
-########################
-sub compressionRatio { #
-########################
-# Calculate the ratio of output string to input string
- my ($sref1,$sref2) = @_;
- my $ratio = (length($$sref2) / (length($$sref1)||1));
- $ratio = sprintf "%.2f", $ratio;
- return $ratio;
-}
-
-#############
-sub usage { #
-#############
-# Inform user about usage, version and exit
- my $showusage = 0;
- my $showversion = 0;
- my $params = shift;
- if (defined $params) {
- if ($params eq "help") {$showusage = 1;}
- elsif ($params eq "version") {$showversion = 1;}
- else {$showusage = 1;}
- }
- else {$showversion = 1;}
- if ($showversion) {
- print<<EOT;
-
-$PROGNAME $Version
- $Description
-\tBased on "Packer.js" by Dean Edwards <http://dean.edwards.name/>
-\tPorted to Perl by Rob Seiler, ELR Software Pty Ltd <http://www.elr.com.au>
-\tCopyright 2005. License <http://creativecommons.org/licenses/LGPL/2.1/>
- Use "$PROGNAME -h" for options
-EOT
- exit(1);
- }
- if ($showusage) {
- print<<EOT;
-
-$PROGNAME $Version
- $Description
- Usage:
-\t$PROGNAME -i inputfile [-o outputfile] [-eX] [-f] [-s] [-qvh]\n
-\t-i <inputfile> (eg -i myscript.js)
-\t-o <outputfile> (eg -o myscript-p.js)
-\t-eN <encoding> [0=None 10=Numeric 62=Normal(alphanumeric) 95=High-ascii]
-\t-f <fast decode>
-\t-s <special characters>
-\t-q quiet mode
-\t-v version
-\t-h help
-
- Examples:
-\t$PROGNAME -i myscript.js
-\t$PROGNAME -i myscript.js -o packed.js
-\t$PROGNAME -i myscript.js -o packed.js -e10 -f -s
-\t$PROGNAME -i myscript.js -e95 -fsq > packed.js
-
-EOT
- exit(1);
- }
-}
diff --git a/javascript/jsPacker/srp.min.js b/javascript/jsPacker/srp.min.js
deleted file mode 100644
index 77f4f20..0000000
--- a/javascript/jsPacker/srp.min.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('E 1A(s){D 2z=8;D 7r=0;E 1f(x,y){D 4o=(x&4n)+(y&4n);D 7z=(x>>16)+(y>>16)+(4o>>16);F(7z<<16)|(4o&4n)}E S(X,n){F(X>>>n)|(X<<(32-n))}E R(X,n){F(X>>>n)}E 7v(x,y,z){F((x&y)^((~x)&z))}E 7t(x,y,z){F((x&y)^(x&z)^(y&z))}E 7u(x){F(S(x,2)^S(x,13)^S(x,22))}E 7w(x){F(S(x,6)^S(x,11)^S(x,25))}E 7x(x){F(S(x,7)^S(x,18)^R(x,3))}E 7y(x){F(S(x,17)^S(x,19)^R(x,10))}E 7n(m,l){D K=V 1u(bI,bH,bG,bF,bE,bD,bC,bB,bA,bz,by,bx,bw,bv,bu,bt,br,bq,bp,bo,bn,bl,bk,bj,bi,bh,bg,bf,bd,bc,bb,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0,aZ,aY,aX,aW,aV,aU,aT,aS,aR,aQ,aP,aO,aN,aM,aL,aK,aJ,aI,aH,aG,aF,aE,aD);D 1a=V 1u(aC,aB,aA,az,ay,ax,aw,av);D W=V 1u(64);D a,b,c,d,e,f,g,h,i,j;D 3C,4m;m[l>>5]|=2W<<(24-l%32);m[((l+64>>9)<<4)+15]=l;P(D i=0;i<m.T;i+=16){a=1a[0];b=1a[1];c=1a[2];d=1a[3];e=1a[4];f=1a[5];g=1a[6];h=1a[7];P(D j=0;j<64;j++){C(j<16)W[j]=m[j+i];J W[j]=1f(1f(1f(7y(W[j-2]),W[j-7]),7x(W[j-15])),W[j-16]);3C=1f(1f(1f(1f(h,7w(e)),7v(e,f,g)),K[j]),W[j]);4m=1f(7u(a),7t(a,b,c));h=g;g=f;f=e;e=1f(d,3C);d=c;c=b;b=a;a=1f(3C,4m)}1a[0]=1f(a,1a[0]);1a[1]=1f(b,1a[1]);1a[2]=1f(c,1a[2]);1a[3]=1f(d,1a[3]);1a[4]=1f(e,1a[4]);1a[5]=1f(f,1a[5]);1a[6]=1f(g,1a[6]);1a[7]=1f(h,1a[7])}F 1a}E 7m(1R){D 4l=1u();D 7s=(1<<2z)-1;P(D i=0;i<1R.T*2z;i+=2z){4l[i>>5]|=(1R.2a(i/2z)&7s)<<(24-i%32)}F 4l}E 7p(2y){2y=2y.4E(/\\r\\n/g,"\\n");D 1V="";P(D n=0;n<2y.T;n++){D c=2y.2a(n);C(c<3B){1V+=2B.2A(c)}J C((c>69)&&(c<au)){1V+=2B.2A((c>>6)|at);1V+=2B.2A((c&63)|3B)}J{1V+=2B.2A((c>>12)|as);1V+=2B.2A(((c>>6)&63)|3B);1V+=2B.2A((c&63)|3B)}}F 1V}E 7o(3A){D 4k=7r?"ar":"aq";D 1R="";P(D i=0;i<3A.T*4;i++){1R+=4k.2d((3A[i>>2]>>((3-i%4)*8+4))&7q)+4k.2d((3A[i>>2]>>((3-i%4)*8))&7q)}F 1R}s=7p(s);F 7o(7n(7m(s),s.T*2z))}E 3z(){o.i=0;o.j=0;o.S=V 1u()}E 7l(1B){D i,j,t;P(i=0;i<1U;++i)o.S[i]=i;j=0;P(i=0;i<1U;++i){j=(j+o.S[i]+1B[i%1B.T])&1E;t=o.S[i];o.S[i]=o.S[j];o.S[j]=t}o.i=0;o.j=0}E 7k(){D t;o.i=(o.i+1)&1E;o.j=(o.j+o.S[o.i])&1E;t=o.S[o.i];o.S[o.i]=o.S[o.j];o.S[o.j]=t;F o.S[(t+o.S[o.i])&1E]}3z.H.7f=7l;3z.H.7e=7k;E 7g(){F V 3z()}D 3y=1U;D 33;D 1s;D 1g;E 7j(x){1s[1g++]^=x&1E;1s[1g++]^=(x>>8)&1E;1s[1g++]^=(x>>16)&1E;1s[1g++]^=(x>>24)&1E;C(1g>=3y)1g-=3y}E 4j(){7j(V ap().ao())}C(1s==1b){1s=V 1u();1g=0;D t;C(3x.4g=="77"&&3x.an<"5"&&1G.7i){D z=1G.7i.7h(32);P(t=0;t<z.T;++t)1s[1g++]=z.2a(t)&1E}L(1g<3y){t=1e.20(al*1e.7h());1s[1g++]=t>>>8;1s[1g++]=t&1E}1g=0;4j();}E 7d(){C(33==1b){4j();33=7g();33.7f(1s);P(1g=0;1g<1s.T;++1g)1s[1g]=0;1g=0;}F 33.7e()}E 7c(ba){D i;P(i=0;i<ba.T;++i)ba[i]=7d()}E 3P(){}3P.H.3G=7c;D 1N;D 7b=ak;D 4h=((7b&aj)==ai);E G(a,b,c){C(a!=1b)C("6l"==3m a)o.3T(a,b,c);J C(b==1b&&"2y"!=3m a)o.3s(a,1U);J o.3s(a,b)}E Q(){F V G(1b)}E 76(i,x,w,j,c,n){L(--n>=0){D v=x*o[i++]+w[j]+c;c=1e.20(v/ah);w[j++]=v&ag}F c}E 78(i,x,w,j,c,n){D 2x=x&2Y,2w=x>>15;L(--n>=0){D l=o[i]&2Y;D h=o[i++]>>15;D m=2w*l+h*2x;l=2x*l+((m&2Y)<<15)+w[j]+(c&7a);c=(l>>>30)+(m>>>15)+2w*h+(c>>>30);w[j++]=l&7a}F c}E 75(i,x,w,j,c,n){D 2x=x&4i,2w=x>>14;L(--n>=0){D l=o[i]&4i;D h=o[i++]>>14;D m=2w*l+h*2x;l=2x*l+((m&4i)<<14)+w[j]+c;c=(l>>28)+(m>>14)+2w*h;w[j++]=l&af}F c}C(4h&&(3x.4g=="4Z ae ad")){G.H.am=78;1N=30}J C(4h&&(3x.4g!="77")){G.H.am=76;1N=26}J{G.H.am=75;1N=28}G.H.O=1N;G.H.1h=((1<<1N)-1);G.H.1m=(1<<1N);D 3w=52;G.H.72=1e.2M(2,3w);G.H.4e=3w-1N;G.H.4c=2*1N-3w;D 74="ab";D 2Z=V 1u();D 2b,1r;2b="0".2a(0);P(1r=0;1r<=9;++1r)2Z[2b++]=1r;2b="a".2a(0);P(1r=10;1r<36;++1r)2Z[2b++]=1r;2b="A".2a(0);P(1r=10;1r<36;++1r)2Z[2b++]=1r;E 4f(n){F 74.2d(n)}E 46(s,i){D c=2Z[s.2a(i)];F(c==1b)?-1:c}E 6J(r){P(D i=o.t-1;i>=0;--i)r[i]=o[i];r.t=o.t;r.s=o.s}E 6I(x){o.t=1;o.s=(x<0)?-1:0;C(x>0)o[0]=x;J C(x<-1)o[0]=x+1m;J o.t=0}E 1K(i){D r=Q();r.2n(i);F r}E 6H(s,b){D k;C(b==16)k=4;J C(b==8)k=3;J C(b==1U)k=8;J C(b==2)k=1;J C(b==32)k=5;J C(b==4)k=2;J{o.5Z(s,b);F}o.t=0;o.s=0;D i=s.T,21=1v,1q=0;L(--i>=0){D x=(k==8)?s[i]&2V:46(s,i);C(x<0){C(s.2d(i)=="-")21=1H;6m}21=1v;C(1q==0)o[o.t++]=x;J C(1q+k>o.O){o[o.t-1]|=(x&((1<<(o.O-1q))-1))<<1q;o[o.t++]=(x>>(o.O-1q))}J o[o.t-1]|=x<<1q;1q+=k;C(1q>=o.O)1q-=o.O}C(k==8&&(s[0]&2W)!=0){o.s=-1;C(1q>0)o[o.t-1]|=((1<<(o.O-1q))-1)<<1q}o.1n();C(21)G.1x.Y(o,o)}E 6G(){D c=o.s&o.1h;L(o.t>0&&o[o.t-1]==c)--o.t}E 6t(b){C(o.s<0)F"-"+o.2P().1t(b);D k;C(b==16)k=4;J C(b==8)k=3;J C(b==2)k=1;J C(b==32)k=5;J C(b==4)k=2;J F o.62(b);D 2R=(1<<k)-1,d,m=1v,r="",i=o.t;D p=o.O-(i*o.O)%k;C(i-->0){C(p<o.O&&(d=o[i]>>p)>0){m=1H;r=4f(d)}L(i>=0){C(p<k){d=(o[i]&((1<<p)-1))<<(k-p);d|=o[--i]>>(p+=o.O-k)}J{d=(o[i]>>(p-=k))&2R;C(p<=0){p+=o.O;--i}}C(d>0)m=1H;C(m)r+=4f(d)}}F m?r:"0"}E 6s(){D r=Q();G.1x.Y(o,r);F r}E 6r(){F(o.s<0)?o.2P():o}E 6q(a){D r=o.s-a.s;C(r!=0)F r;D i=o.t;r=i-a.t;C(r!=0)F r;L(--i>=0)C((r=o[i]-a[i])!=0)F r;F 0}E 2S(x){D r=1,t;C((t=x>>>16)!=0){x=t;r+=16}C((t=x>>8)!=0){x=t;r+=8}C((t=x>>4)!=0){x=t;r+=4}C((t=x>>2)!=0){x=t;r+=2}C((t=x>>1)!=0){x=t;r+=1}F r}E 6p(){C(o.t<=0)F 0;F o.O*(o.t-1)+2S(o[o.t-1]^(o.s&o.1h))}E 6F(n,r){D i;P(i=o.t-1;i>=0;--i)r[i+n]=o[i];P(i=n-1;i>=0;--i)r[i]=0;r.t=o.t+n;r.s=o.s}E 6E(n,r){P(D i=n;i<o.t;++i)r[i-n]=o[i];r.t=1e.3Q(o.t-n,0);r.s=o.s}E 6D(n,r){D bs=n%o.O;D 2v=o.O-bs;D bm=(1<<2v)-1;D 1p=1e.20(n/o.O),c=(o.s<<bs)&o.1h,i;P(i=o.t-1;i>=0;--i){r[i+1p+1]=(o[i]>>2v)|c;c=(o[i]&bm)<<bs}P(i=1p-1;i>=0;--i)r[i]=0;r[1p]=c;r.t=o.t+1p+1;r.s=o.s;r.1n()}E 6C(n,r){r.s=o.s;D 1p=1e.20(n/o.O);C(1p>=o.t){r.t=0;F}D bs=n%o.O;D 2v=o.O-bs;D bm=(1<<bs)-1;r[0]=o[1p]>>bs;P(D i=1p+1;i<o.t;++i){r[i-1p-1]|=(o[i]&bm)<<2v;r[i-1p]=o[i]>>bs}C(bs>0)r[o.t-1p-1]|=(o.s&bm)<<2v;r.t=o.t-1p;r.1n()}E 6B(a,r){D i=0,c=0,m=1e.1P(a.t,o.t);L(i<m){c+=o[i]-a[i];r[i++]=c&o.1h;c>>=o.O}C(a.t<o.t){c-=a.s;L(i<o.t){c+=o[i];r[i++]=c&o.1h;c>>=o.O}c+=o.s}J{c+=o.s;L(i<a.t){c-=a[i];r[i++]=c&o.1h;c>>=o.O}c-=a.s}r.s=(c<0)?-1:0;C(c<-1)r[i++]=o.1m+c;J C(c>0)r[i++]=c;r.t=i;r.1n()}E 6A(a,r){D x=o.1J(),y=a.1J();D i=x.t;r.t=i+y.t;L(--i>=0)r[i]=0;P(i=0;i<y.t;++i)r[i+x.t]=x.am(0,y[i],r,i,0,x.t);r.s=0;r.1n();C(o.s!=a.s)G.1x.Y(r,r)}E 6z(r){D x=o.1J();D i=r.t=2*x.t;L(--i>=0)r[i]=0;P(i=0;i<x.t-1;++i){D c=x.am(i,x[i],r,2*i,0,1);C((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1))>=x.1m){r[i+x.t]-=x.1m;r[i+x.t+1]=1}}C(r.t>0)r[r.t-1]+=x.am(i,x[i],r,2*i,0,1);r.s=0;r.1n()}E 6y(m,q,r){D 27=m.1J();C(27.t<=0)F;D 3v=o.1J();C(3v.t<27.t){C(q!=1b)q.2n(0);C(r!=1b)o.1L(r);F}C(r==1b)r=Q();D y=Q(),4b=o.s,6Y=m.s;D 2u=o.O-2S(27[27.t-1]);C(2u>0){27.2o(2u,y);3v.2o(2u,r)}J{27.1L(y);3v.1L(r)}D 1D=y.t;D 3u=y[1D-1];C(3u==0)F;D 4d=3u*(1<<o.4e)+((1D>1)?y[1D-2]>>o.4c:0);D 70=o.72/4d,6Z=(1<<o.4e)/4d,e=1<<o.4c;D i=r.t,j=i-1D,t=(q==1b)?Q():q;y.2s(j,t);C(r.1d(t)>=0){r[r.t++]=1;r.Y(t,r)}G.1w.2s(1D,t);t.Y(y,y);L(y.t<1D)y[y.t++]=0;L(--j>=0){D 3t=(r[--i]==3u)?o.1h:1e.20(r[i]*70+(r[i-1]+e)*6Z);C((r[i]+=y.am(0,3t,r,j,0,1D))<3t){y.2s(j,t);r.Y(t,r);L(r[i]<--3t)r.Y(t,r)}}C(q!=1b){r.2U(1D,q);C(4b!=6Y)G.1x.Y(q,q)}r.t=1D;r.1n();C(2u>0)r.1j(2u,r);C(4b<0)G.1x.Y(r,r)}E 6o(a){D r=Q();o.1J().1M(a,1b,r);C(o.s<0&&r.1d(G.1x)>0)a.Y(r,r);F r}E 1T(m){o.m=m}E 6X(x){C(x.s<0||x.1d(o.m)>=0)F x.3n(o.m);J F x}E 6W(x){F x}E 6V(x){x.1M(o.m,1b,x)}E 6U(x,y,r){x.2r(y,r);o.1y(r)}E 6T(x,r){x.2T(r);o.1y(r)}1T.H.2q=6X;1T.H.2p=6W;1T.H.1y=6V;1T.H.1X=6U;1T.H.1C=6T;E 6w(){C(o.t<1)F 0;D x=o[0];C((x&1)==0)F 0;D y=x&3;y=(y*(2-(x&45)*y))&45;y=(y*(2-(x&2V)*y))&2V;y=(y*(2-(((x&3r)*y)&3r)))&3r;y=(y*(2-x*y%o.1m))%o.1m;F(y>0)?o.1m-y:-y}E 1S(m){o.m=m;o.4a=m.6x();o.49=o.4a&2Y;o.6R=o.4a>>15;o.6Q=(1<<(m.O-15))-1;o.6S=2*m.t}E 6O(x){D r=Q();x.1J().2s(o.m.t,r);r.1M(o.m,1b,r);C(x.s<0&&r.1d(G.1x)>0)o.m.Y(r,r);F r}E 6N(x){D r=Q();x.1L(r);o.1y(r);F r}E 6M(x){L(x.t<=o.6S)x[x.t++]=0;P(D i=0;i<o.m.t;++i){D j=x[i]&2Y;D 6P=(j*o.49+(((j*o.6R+(x[i]>>15)*o.49)&o.6Q)<<15))&x.1h;j=i+o.m.t;x[j]+=o.m.am(0,6P,x,i,0,o.m.t);L(x[j]>=x.1m){x[j]-=x.1m;x[++j]++}}x.1n();x.2U(o.m.t,x);C(x.1d(o.m)>=0)x.Y(o.m,x)}E 6K(x,r){x.2T(r);o.1y(r)}E 6L(x,y,r){x.2r(y,r);o.1y(r)}1S.H.2q=6O;1S.H.2p=6N;1S.H.1y=6M;1S.H.1X=6L;1S.H.1C=6K;E 6v(){F((o.t>0)?(o[0]&1):o.s)==0}E 6u(e,z){C(e>aa||e<1)F G.1w;D r=Q(),1c=Q(),g=z.2q(o),i=2S(e)-1;g.1L(r);L(--i>=0){z.1C(r,1c);C((e&(1<<i))>0)z.1X(1c,g,r);J{D t=r;r=1c;1c=t}}F z.2p(r)}E 6n(e,m){D z;C(e<1U||m.1l())z=V 1T(m);J z=V 1S(m);F o.3Z(e,z)}G.H.1L=6J;G.H.2n=6I;G.H.3s=6H;G.H.1n=6G;G.H.2s=6F;G.H.2U=6E;G.H.2o=6D;G.H.1j=6C;G.H.Y=6B;G.H.2r=6A;G.H.2T=6z;G.H.1M=6y;G.H.6x=6w;G.H.1l=6v;G.H.3Z=6u;G.H.1t=6t;G.H.2P=6s;G.H.1J=6r;G.H.1d=6q;G.H.3X=6p;G.H.3n=6o;G.H.66=6n;G.1x=1K(0);G.1w=1K(1);E 5J(){D r=Q();o.1L(r);F r}E 5I(){C(o.s<0){C(o.t==1)F o[0]-o.1m;J C(o.t==0)F-1}J C(o.t==1)F o[0];J C(o.t==0)F 0;F((o[1]&((1<<(32-o.O))-1))<<o.O)|o[0]}E 5H(){F(o.t==0)?o.s:(o[0]<<24)>>24}E 5G(){F(o.t==0)?o.s:(o[0]<<16)>>16}E 65(r){F 1e.20(1e.a9*o.O/1e.a8(r))}E 5F(){C(o.s<0)F-1;J C(o.t<=0||(o.t==1&&o[0]<=0))F 0;J F 1}E 60(b){C(b==1b)b=10;C(o.1I()==0||b<2||b>36)F"0";D 2X=o.3U(b);D a=1e.2M(b,2X);D d=1K(a),y=Q(),z=Q(),r="";o.1M(d,y,z);L(y.1I()>0){r=(a+z.3R()).1t(b).a7(1)+r;y.1M(d,y,z)}F z.3R().1t(b)+r}E 5Y(s,b){o.2n(0);C(b==1b)b=10;D 2X=o.3U(b);D d=1e.2M(b,2X),21=1v,j=0,w=0;P(D i=0;i<s.T;++i){D x=46(s,i);C(x<0){C(s.2d(i)=="-"&&o.1I()==0)21=1H;6m}w=b*w+x;C(++j>=2X){o.3S(d);o.2l(w,0);j=0;w=0}}C(j>0){o.3S(1e.2M(b,j));o.2l(w,0)}C(21)G.1x.Y(o,o)}E 5X(a,b,c){C("6l"==3m b){C(a<2)o.2n(1);J{o.3T(a,c);C(!o.5q(a-1))o.1W(G.1w.3o(a-1),3q,o);C(o.1l())o.2l(1,0);L(!o.5a(b)){o.2l(2,0);C(o.3X()>a)o.Y(G.1w.3o(a-1),o)}}}J{D x=V 1u(),t=a&7;x.T=(a>>3)+1;b.3G(x);C(t>0)x[0]&=((1<<t)-1);J x[0]=0;o.3s(x,1U)}}E 5E(){D i=o.t,r=V 1u();r[0]=o.s;D p=o.O-(i*o.O)%8,d,k=0;C(i-->0){C(p<o.O&&(d=o[i]>>p)!=(o.s&o.1h)>>p)r[k++]=d|(o.s<<(o.O-p));L(i>=0){C(p<8){d=(o[i]&((1<<p)-1))<<(8-p);d|=o[--i]>>(p+=o.O-8)}J{d=(o[i]>>(p-=8))&2V;C(p<=0){p+=o.O;--i}}C((d&2W)!=0)d|=-1U;C(k==0&&(o.s&2W)!=(d&2W))++k;C(k>0||d!=o.s)r[k++]=d}}F r}E 5D(a){F(o.1d(a)==0)}E 5C(a){F(o.1d(a)<0)?o:a}E 5B(a){F(o.1d(a)>0)?o:a}E 5W(a,1Z,r){D i,f,m=1e.1P(a.t,o.t);P(i=0;i<m;++i)r[i]=1Z(o[i],a[i]);C(a.t<o.t){f=a.s&o.1h;P(i=m;i<o.t;++i)r[i]=1Z(o[i],f);r.t=o.t}J{f=o.s&o.1h;P(i=m;i<a.t;++i)r[i]=1Z(f,a[i]);r.t=a.t}r.s=1Z(o.s,a.s);r.1n()}E 6k(x,y){F x&y}E 5A(a){D r=Q();o.1W(a,6k,r);F r}E 3q(x,y){F x|y}E 5z(a){D r=Q();o.1W(a,3q,r);F r}E 42(x,y){F x^y}E 5y(a){D r=Q();o.1W(a,42,r);F r}E 44(x,y){F x&~y}E 5x(a){D r=Q();o.1W(a,44,r);F r}E 5w(){D r=Q();P(D i=0;i<o.t;++i)r[i]=o.1h&~o[i];r.t=o.t;r.s=~o.s;F r}E 5v(n){D r=Q();C(n<0)o.1j(-n,r);J o.2o(n,r);F r}E 5t(n){D r=Q();C(n<0)o.2o(-n,r);J o.1j(n,r);F r}E 6j(x){C(x==0)F-1;D r=0;C((x&3r)==0){x>>=16;r+=16}C((x&2V)==0){x>>=8;r+=8}C((x&45)==0){x>>=4;r+=4}C((x&3)==0){x>>=2;r+=2}C((x&1)==0)++r;F r}E 5s(){P(D i=0;i<o.t;++i)C(o[i]!=0)F i*o.O+6j(o[i]);C(o.s<0)F o.t*o.O;F-1}E 6i(x){D r=0;L(x!=0){x&=x-1;++r}F r}E 5r(){D r=0,x=o.s&o.1h;P(D i=0;i<o.t;++i)r+=6i(o[i]^x);F r}E 5p(n){D j=1e.20(n/o.O);C(j>=o.t)F(o.s!=0);F((o[j]&(1<<(n%o.O)))!=0)}E 5V(n,1Z){D r=G.1w.3o(n);o.1W(r,1Z,r);F r}E 5o(n){F o.3p(n,3q)}E 5n(n){F o.3p(n,44)}E 5m(n){F o.3p(n,42)}E 5U(a,r){D i=0,c=0,m=1e.1P(a.t,o.t);L(i<m){c+=o[i]+a[i];r[i++]=c&o.1h;c>>=o.O}C(a.t<o.t){c+=a.s;L(i<o.t){c+=o[i];r[i++]=c&o.1h;c>>=o.O}c+=o.s}J{c+=o.s;L(i<a.t){c+=a[i];r[i++]=c&o.1h;c>>=o.O}c+=a.s}r.s=(c<0)?-1:0;C(c>0)r[i++]=c;J C(c<-1)r[i++]=o.1m+c;r.t=i;r.1n()}E 5l(a){D r=Q();o.2O(a,r);F r}E 5k(a){D r=Q();o.Y(a,r);F r}E 5j(a){D r=Q();o.2r(a,r);F r}E 5h(a){D r=Q();o.1M(a,r,1b);F r}E 5g(a){D r=Q();o.1M(a,1b,r);F r}E 5f(a){D q=Q(),r=Q();o.1M(a,q,r);F V 1u(q,r)}E 5T(n){o[o.t]=o.am(0,n-1,o,0,0,o.t);++o.t;o.1n()}E 5S(n,w){L(o.t<=w)o[o.t++]=0;o[w]+=n;L(o[w]>=o.1m){o[w]-=o.1m;C(++w>=o.t)o[o.t++]=0;++o[w]}}E 2t(){}E 40(x){F x}E 6h(x,y,r){x.2r(y,r)}E 6g(x,r){x.2T(r)}2t.H.2q=40;2t.H.2p=40;2t.H.1X=6h;2t.H.1C=6g;E 5c(e){F o.3Z(e,V 2t())}E 5Q(a,n,r){D i=1e.1P(o.t+a.t,n);r.s=0;r.t=i;L(i>0)r[--i]=0;D j;P(j=r.t-o.t;i<j;++i)r[i+o.t]=o.am(0,a[i],r,i,0,o.t);P(j=1e.1P(a.t,n);i<j;++i)o.am(0,a[i],r,i,0,n-i);r.1n()}E 5O(a,n,r){--n;D i=r.t=o.t+a.t-n;r.s=0;L(--i>=0)r[i]=0;P(i=1e.3Q(n-o.t,0);i<a.t;++i)r[o.t+i-n]=o.am(n-i,a[i],r,0,0,o.t+i-n);r.1n();r.2U(1,r)}E 1Y(m){o.1c=Q();o.3Y=Q();G.1w.2s(2*m.t,o.1c);o.6f=o.1c.5i(m);o.m=m}E 6e(x){C(x.s<0||x.t>2*o.m.t)F x.3n(o.m);J C(x.1d(o.m)<0)F x;J{D r=Q();x.1L(r);o.1y(r);F r}}E 6d(x){F x}E 6c(x){x.2U(o.m.t-1,o.1c);C(x.t>o.m.t+1){x.t=o.m.t+1;x.1n()}o.6f.5P(o.1c,o.m.t+1,o.3Y);o.m.5R(o.3Y,o.m.t+1,o.1c);L(x.1d(o.1c)<0)x.2l(1,o.m.t+1);x.Y(o.1c,x);L(x.1d(o.m)>=0)x.Y(o.m,x)}E 6a(x,r){x.2T(r);o.1y(r)}E 6b(x,y,r){x.2r(y,r);o.1y(r)}1Y.H.2q=6e;1Y.H.2p=6d;1Y.H.1y=6c;1Y.H.1X=6b;1Y.H.1C=6a;E 5e(e,m){D i=e.3X(),k,r=1K(1),z;C(i<=0)F r;J C(i<18)k=1;J C(i<48)k=3;J C(i<a6)k=4;J C(i<a5)k=5;J k=6;C(i<8)z=V 1T(m);J C(m.1l())z=V 1Y(m);J z=V 1S(m);D g=V 1u(),n=3,2Q=k-1,2R=(1<<k)-1;g[1]=z.2q(o);C(k>1){D 3W=Q();z.1C(g[1],3W);L(n<=2R){g[n]=Q();z.1X(3W,g[n-2],g[n]);n+=2}}D j=e.t-1,w,3V=1H,1c=Q(),t;i=2S(e[j])-1;L(j>=0){C(i>=2Q)w=(e[j]>>(i-2Q))&2R;J{w=(e[j]&((1<<(i+1))-1))<<(2Q-i);C(j>0)w|=e[j-1]>>(o.O+i-2Q)}n=k;L((w&1)==0){w>>=1;--n}C((i-=n)<0){i+=o.O;--j}C(3V){g[w].1L(r);3V=1v}J{L(n>1){z.1C(r,1c);z.1C(1c,r);n-=2}C(n>0)z.1C(r,1c);J{t=r;r=1c;1c=t}z.1X(1c,g[w],r)}L(j>=0&&(e[j]&(1<<i))==0){z.1C(r,1c);t=r;r=1c;1c=t;C(--i<0){i=o.O-1;--j}}}F z.2p(r)}E 5b(a){D x=(o.s<0)?o.2P():o.2N();D y=(a.s<0)?a.2P():a.2N();C(x.1d(y)<0){D t=x;x=y;y=t}D i=x.2k(),g=y.2k();C(g<0)F x;C(i<g)g=i;C(g>0){x.1j(g,x);y.1j(g,y)}L(x.1I()>0){C((i=x.2k())>0)x.1j(i,x);C((i=y.2k())>0)y.1j(i,y);C(x.1d(y)>=0){x.Y(y,x);x.1j(1,x)}J{y.Y(x,y);y.1j(1,y)}}C(g>0)y.2o(g,y);F y}E 5M(n){C(n<=0)F 0;D d=o.1m%n,r=(o.s<0)?n-1:0;C(o.t>0)C(d==0)r=o[0]%n;J P(D i=o.t-1;i>=0;--i)r=(d*r+o[i])%n;F r}E 5d(m){D ac=m.1l();C((o.1l()&&ac)||m.1I()==0)F G.1x;D u=m.2N(),v=o.2N();D a=1K(1),b=1K(0),c=1K(0),d=1K(1);L(u.1I()!=0){L(u.1l()){u.1j(1,u);C(ac){C(!a.1l()||!b.1l()){a.2O(o,a);b.Y(m,b)}a.1j(1,a)}J C(!b.1l())b.Y(m,b);b.1j(1,b)}L(v.1l()){v.1j(1,v);C(ac){C(!c.1l()||!d.1l()){c.2O(o,c);d.Y(m,d)}c.1j(1,c)}J C(!d.1l())d.Y(m,d);d.1j(1,d)}C(u.1d(v)>=0){u.Y(v,u);C(ac)a.Y(c,a);b.Y(d,b)}J{v.Y(u,v);C(ac)c.Y(a,c);d.Y(b,d)}}C(v.1d(G.1w)!=0)F G.1x;C(d.1d(m)>=0)F d.3l(m);C(d.1I()<0)d.2O(m,d);J F d;C(d.1I()<0)F d.3M(m);J F d}D 1k=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,a4,a3,a2,a1,a0,69,9Z,9Y,9X,9W,9V,9U,9T,9S,9R,9Q,9P,9O,9N,9M,9L,9K,9J,9I,9H,9G,9F,9E,9D,9C,9B,9A,9z,9y,9x,9w,9v,9u,9t,9s,9r,9q,9p,9o,9n,9m,9l,9k,9j,9i,9h,9g,9f,9e,9d,9c,9b,9a,99,98,96,95,94,93,92,91,90,8Z,8Y,8X,8W,8V];D 68=(1<<26)/1k[1k.T-1];E 58(t){D i,x=o.1J();C(x.t==1&&x[0]<=1k[1k.T-1]){P(i=0;i<1k.T;++i)C(x[0]==1k[i])F 1H;F 1v}C(x.1l())F 1v;i=1;L(i<1k.T){D m=1k[i],j=i+1;L(j<1k.T&&m<68)m*=1k[j++];m=x.5N(m);L(i<j)C(m%1k[i++]==0)F 1v}F x.5L(t)}E 5K(t){D 2m=o.3l(G.1w);D k=2m.2k();C(k<=0)F 1v;D r=2m.5u(k);t=(t+1)>>1;C(t>1k.T)t=1k.T;D a=Q();P(D i=0;i<t;++i){a.2n(1k[i]);D y=a.2j(r,o);C(y.1d(G.1w)!=0&&y.1d(2m)!=0){D j=1;L(j++<k&&y.1d(2m)!=0){y=y.66(2,o);C(y.1d(G.1w)==0)F 1v}C(y.1d(2m)!=0)F 1v}}F 1H}G.H.3U=65;G.H.62=60;G.H.5Z=5Y;G.H.3T=5X;G.H.1W=5W;G.H.3p=5V;G.H.2O=5U;G.H.3S=5T;G.H.2l=5S;G.H.5R=5Q;G.H.5P=5O;G.H.5N=5M;G.H.5L=5K;G.H.2N=5J;G.H.3R=5I;G.H.8U=5H;G.H.8T=5G;G.H.1I=5F;G.H.8S=5E;G.H.8R=5D;G.H.1P=5C;G.H.3Q=5B;G.H.8Q=5A;G.H.8P=5z;G.H.8O=5y;G.H.8N=5x;G.H.2c=5w;G.H.3o=5v;G.H.5u=5t;G.H.2k=5s;G.H.8M=5r;G.H.5q=5p;G.H.8L=5o;G.H.8K=5n;G.H.8J=5m;G.H.3M=5l;G.H.3l=5k;G.H.3L=5j;G.H.5i=5h;G.H.8I=5g;G.H.8H=5f;G.H.2j=5e;G.H.8G=5d;G.H.2M=5c;G.H.8F=5b;G.H.5a=58;E 4r(){D 57="8E";D N=V G(57,16);D g=V G("2");D k=V G("8D",16);D 3k=V 3P();D a=V G(32,3k);D A=g.2j(a,N);L(A.3n(N)==0){a=V G(32,3k);A=g.2j(a,N)}D 3N=A.1t(16);D S=1b;D K=1b;D M=1b;D 3h=1b;D 2i=1F.2D("8C").2C;D 56=1F.2D("8B").2C;D Z=o;D 34=1v;D I=1F.2D("8A").2C;D p=1F.2D("8z").2C;D U=1b;o.8y=E(){F I};o.8x=E(){F U};o.8w=E(){F 2i};o.8v=E(){F g};o.8u=E(){F N};o.8t=E(s){F V G(1A(s+1A(I+":"+p)),16)};o.2I=E(1R){C(56=="8s"){F 1R}};o.2G=E(55){F 55.8r.8q};E 2F(54){F(3m(1G[54])!="8p")};o.2H=E(4X,2L,4Y){C(1G.51)U=V 51();J C(1G.50){8o{U=V 50("4Z.8n")}8m(e){}}J{Z.1z("4V 2c 8l.");F}C(U){U.8k=4Y;U.8j("8i",4X,1H);U.3O("4W-4w","8h/x-8g-8f-8e");U.3O("4W-T",2L.T);U.3O("8d","8c");U.8b(2L)}J{Z.1z("4V 8a.")}};o.4x=E(){D 4U=2i+Z.2I("88/");D 2L="I="+I+"&A="+3N;Z.2H(4U,2L,4T)};E 4T(){C(U.3f==4&&U.3e==3d){C(U.1o.1i("r").T>0){D 1Q=U.1o.1i("r")[0];C(!1Q.1O("a")){3J(1Q.1O("s"),1Q.1O("B"),p);Z.2H(2i+Z.2I("4L/"),"M="+M,4N)}J 3g(1Q.1O("s"),1Q.1O("B"),1Q.1O("a"),1Q.1O("d"))}J C(U.1o.1i("2h").T>0)Z.1z(U.1o.1i("2h")[0])}};E 3J(s,2K,4R){D B=V G(2K,16);D 4S=2K;D u=V G(1A(3N+4S),16);D x=V G(1A(s+1A(I+":"+4R)),16);D 4Q=k.3L(g.2j(x,N));D 4P=a.3M(u.3L(x));S=B.3l(4Q).2j(4P,N);D 4O=A.1t(16)+B.1t(16)+S.1t(16);M=1A(4O);3h=1A(A.1t(16)+M+S.1t(16));};E 4N(){C(U.3f==4&&U.3e==3d){C(U.1o.1i("M").T>0){C(Z.2G(U.1o.1i("M")[0])==3h){34=1H;35()}J Z.1z("4B 1B 4A 2c 4z")}J C(U.1o.1i("2h").T>0)Z.1z(Z.2G(U.1o.1i("2h")[0]))}};E 3g(s,2K,3K,4M){4u();E 3H(){C(!2F("3a")||!2F("3b")){1G.4K(3H,10);F}C(3K=="87")3I=3a;J C(3K=="86")3I=3b;3J(s,2K,3I(4M+p));Z.2H(2i+Z.2I("3g/4L/"),"M="+M,4D)};1G.4K(3H,10)};E 3E(4J){D 1B=39.85(Z.1B());D 3F=39.84(4J);D 3i=V 1u(16);3k.3G(3i);D 4I=3j.82(3F,0,3F.T,3j.4H.4G);D 4F=3j.3E(4I,3j.4H.4G,1B,1B.T,3i).81;D 2J=39.80.7Z(3i.7Y(4F));L(2J.7X("+",0)>-1)2J=2J.4E("+","7W");F 2J};E 4D(){C(U.3f==4&&U.3e==3d){C(U.1o.1i("M").T>0){C(Z.2G(U.1o.1i("M")[0])==3h){K=1A(S.1t(16));D 4C=2i+Z.2I("3g/7V/");Z.2H(4C,"p="+3E(p)+"&l="+p.T,4y)}J Z.1z("4B 1B 4A 2c 4z")}J C(U.1o.1i("2h").T>0){Z.1z(Z.2G(U.1o.1i("2h")[0]))}}};E 4y(){C(U.3f==4&&U.3e==3d){K=1b;C(U.1o.1i("7U").T>0)Z.4x();J Z.1z("7T 7S 2c be 7R")}};E 2g(4v){D 3c=1F.7Q(\'3D\');3c.4w=\'7P/7O\';3c.4p=4v;1F.1i(\'7N\')[0].7M(3c)};E 4u(){C(2F("3a")&&2F("3b"))F;D 2E=Z.4q.7L("/");D 2f=2E.7K(0,2E.T-1).7J("/");C(2E[2E.T-1]=="7I.1P.2e")2g(2f+"/7H.1P.2e");J{2g(2f+"/3b.2e");2g(2f+"/3a.2e");2g(2f+"/39.2e");2g(2f+"/7G.2e")}}E 35(){D 38=1F.2D("7F").2C;C(38.2d(0)!="#")1G.4t=38;J{1G.4t=38;Z.35()}};o.35=E(){4s("7E 7D.")};o.1B=E(){C(K==1b)C(34){K=1A(S.1t(16));F K}J Z.1z("7C 7B 2c 7A 34.");J F K};o.1z=E(t){4s(t)}};4r.H.4q=1F.1i(\'3D\')[1F.1i(\'3D\').T-1].1O("4p");',62,727,'||||||||||||||||||||||||this||||||||||||||if|var|function|return|BigInteger|prototype||else||while|||DB|for|nbi|||length|xhr|new|||subTo|that|||||||||||HASH|null|r2|compareTo|Math|safe_add|rng_pptr|DM|getElementsByTagName|rShiftTo|lowprimes|isEven|DV|clamp|responseXML|ds|sh|vv|rng_pool|toString|Array|false|ONE|ZERO|reduce|error_message|SHA256|key|sqrTo|ys|255|document|window|true|signum|abs|nbv|copyTo|divRemTo|dbits|getAttribute|min|response|str|Montgomery|Classic|256|utftext|bitwiseTo|mulTo|Barrett|op|floor|mi||||||pm|||charCodeAt|rr|not|charAt|js|path|import_file|error|url|modPow|getLowestSetBit|dAddOffset|n1|fromInt|lShiftTo|revert|convert|multiplyTo|dlShiftTo|NullExp|nsh|cbs|xh|xl|string|chrsz|fromCharCode|String|value|getElementById|arr|isdefined|innerxml|ajaxRequest|paths|retstring|ephemeral|params|pow|clone|addTo|negate|k1|km|nbits|squareTo|drShiftTo|0xff|0x80|cs|0x7fff|BI_RC||||rng_state|authenticated|success|||forward_url|cryptoHelpers|SHA1|MD5|scriptElt|200|status|readyState|upgrade|M2|iv|slowAES|rng|subtract|typeof|mod|shiftLeft|changeBit|op_or|0xffff|fromString|qd|y0|pt|BI_FP|navigator|rng_psize|Arcfour|binarray|128|T1|script|encrypt|byteMessage|nextBytes|do_upgrade|hashfun|calculations|algo|multiply|add|Astr|setRequestHeader|SecureRandom|max|intValue|dMultiply|fromNumber|chunkSize|is1|g2|bitLength|q3|exp|nNop||op_xor||op_andnot|0xf|intAt|||mpl|mp|ts|F2|yt|F1|int2char|appName|j_lm|0x3fff|rng_seed_time|hex_tab|bin|T2|0xFFFF|lsw|src|srpPath|SRP|alert|location|import_hashes|fname|type|identify|confirm_verifier|match|does|Server|auth_url|confirm_upgrade|replace|ciphertext|CFB|modeOfOperation|paddedByteMessage|plaintext|setTimeout|authenticate|dsalt|confirm_authentication|Mstr|aux|kgx|pass|Bstr|receive_salts|handshake_url|Ajax|Content|full_url|callback|Microsoft|ActiveXObject|XMLHttpRequest|||variable|node|server|Nstr|bnIsProbablePrime||isProbablePrime|bnGCD|bnPow|bnModInverse|bnModPow|bnDivideAndRemainder|bnRemainder|bnDivide|divide|bnMultiply|bnSubtract|bnAdd|bnFlipBit|bnClearBit|bnSetBit|bnTestBit|testBit|bnBitCount|bnGetLowestSetBit|bnShiftRight|shiftRight|bnShiftLeft|bnNot|bnAndNot|bnXor|bnOr|bnAnd|bnMax|bnMin|bnEquals|bnToByteArray|bnSigNum|bnShortValue|bnByteValue|bnIntValue|bnClone|bnpMillerRabin|millerRabin|bnpModInt|modInt|bnpMultiplyUpperTo|multiplyUpperTo|bnpMultiplyLowerTo|multiplyLowerTo|bnpDAddOffset|bnpDMultiply|bnpAddTo|bnpChangeBit|bnpBitwiseTo|bnpFromNumber|bnpFromRadix|fromRadix|bnpToRadix||toRadix|||bnpChunkSize|modPowInt||lplim|127|barrettSqrTo|barrettMulTo|barrettReduce|barrettRevert|barrettConvert|mu|nSqrTo|nMulTo|cbit|lbit|op_and|number|continue|bnModPowInt|bnMod|bnBitLength|bnCompareTo|bnAbs|bnNegate|bnToString|bnpExp|bnpIsEven|bnpInvDigit|invDigit|bnpDivRemTo|bnpSquareTo|bnpMultiplyTo|bnpSubTo|bnpRShiftTo|bnpLShiftTo|bnpDRShiftTo|bnpDLShiftTo|bnpClamp|bnpFromString|bnpFromInt|bnpCopyTo|montSqrTo|montMulTo|montReduce|montRevert|montConvert|u0|um|mph|mt2|cSqrTo|cMulTo|cReduce|cRevert|cConvert|ms|d2|d1||FV||BI_RM|am3|am1|Netscape|am2||0x3fffffff|canary|rng_get_bytes|rng_get_byte|next|init|prng_newstate|random|crypto|rng_seed_int|ARC4next|ARC4init|str2binb|core_sha256|binb2hex|Utf8Encode|0xF|hexcase|mask|Maj|Sigma0256|Ch|Sigma1256|Gamma0256|Gamma1256|msw|been|has|User|successful|Login|srp_forward|aes|hash|srp|join|slice|split|appendChild|head|javascript|text|createElement|confirmed|could|Verifier|ok|verifier|_|indexOf|concat|encode|base64|cipher|getPaddedBlock||convertStringToByteArray|toNumbers|md5|sha1|handshake||failed|send|close|Connection|urlencoded|form|www|application|POST|open|onreadystatechange|supported|catch|XMLHTTP|try|undefined|nodeValue|firstChild|django|calcX|getN|getg|geturl|getxhr|getI|srp_password|srp_username|srp_server|srp_url|c46d46600d87fef149bd79b81119842f3c20241fda67d06ef412d8f6d9479c58|115b8b692e0e045692cf280b436735c77a5a9e8a9e7ed56c965f87db5b2a2ece3|gcd|modInverse|divideAndRemainder|remainder|flipBit|clearBit|setBit|bitCount|andNot|xor|or|and|equals|toByteArray|shortValue|byteValue|509|503|499|491|487|479|467|463|461|457|449|443||439|433|431|421|419|409|401|397|389|383|379|373|367|359|353|349|347|337|331|317|313|311|307|293|283|281|277|271|269|263|257|251|241|239|233|229|227|223|211|199|197|193|191|181|179|173|167|163|157|151|149|139|137|131|113|109|107|103|101|768|144|substr|log|LN2|0xffffffff|0123456789abcdefghijklmnopqrstuvwxyz||Explorer|Internet|0xfffffff|0x3ffffff|0x4000000|0xefcafe|0xffffff|0xdeadbeefcafe|65536||appVersion|getTime|Date|0123456789abcdef|0123456789ABCDEF|224|192|2048|0x5BE0CD19|0x1F83D9AB|0x9B05688C|0x510E527F|0xA54FF53A|0x3C6EF372|0xBB67AE85|0x6A09E667|0xC67178F2|0xBEF9A3F7|0xA4506CEB|0x90BEFFFA|0x8CC70208|0x84C87814|0x78A5636F|0x748F82EE|0x682E6FF3|0x5B9CCA4F|0x4ED8AA4A|0x391C0CB3|0x34B0BCB5|0x2748774C|0x1E376C08|0x19A4C116|0x106AA070|0xF40E3585|0xD6990624|0xD192E819|0xC76C51A3|0xC24B8B70|0xA81A664B|0xA2BFE8A1|0x92722C85|0x81C2C92E|0x766A0ABB|0x650A7354|0x53380D13|0x4D2C6DFC|0x2E1B2138|0x27B70A85|0x14292967||0x6CA6351|0xD5A79147|0xC6E00BF3||0xBF597FC7|0xB00327C8|0xA831C66D|0x983E5152|0x76F988DA|0x5CB0A9DC|0x4A7484AA||0x2DE92C6F|0x240CA1CC|0xFC19DC6|0xEFBE4786|0xE49B69C1||0xC19BF174|0x9BDC06A7|0x80DEB1FE|0x72BE5D74|0x550C7DC3|0x243185BE|0x12835B01|0xD807AA98|0xAB1C5ED5|0x923F82A4|0x59F111F1|0x3956C25B|0xE9B5DBA5|0xB5C0FBCF|0x71374491|0x428A2F98'.split('|'),0,{}))
diff --git a/javascript/jsPacker/srp_register.min.js b/javascript/jsPacker/srp_register.min.js
deleted file mode 100644
index 6c5a1d5..0000000
--- a/javascript/jsPacker/srp_register.min.js
+++ /dev/null
@@ -1 +0,0 @@
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('9 g(){3 1;b.a.e=9(){1=5;3 w=5.p()+5.o("e/f/");3 c="I="+5.K();5.n(w,c,5.u)};b.a.u=9(){3 2=1.k();8(2.j==4&&2.i==h){8(2.7.6("f").d>0){3 s=1.t(2.7.6("f")[0]);3 x=1.J(s);3 v=1.H().G(x,1.F());1.q(v.E(D))}C 8(2.7.6("r").d>0){1.B(1.t(2.7.6("r")[0]))}}};b.a.q=9(v){3 c="v="+v;3 m=1.p()+1.o("e/A/");1.n(m,c,1.l)};b.a.l=9(){3 2=1.k();8(2.j==4&&2.i==h){8(2.7.6("z").d>0){1.y()}}}};g();',47,47,'|that|xhr|var||this|getElementsByTagName|responseXML|if|function|prototype|SRP|params|length|register|salt|SRP_REGISTER|200|status|readyState|getxhr|register_user|auth_url|ajaxRequest|paths|geturl|register_send_verifier|error||innerxml|register_receive_salt||handshake_url||identify|ok|user|error_message|else|16|toString|getN|modPow|getg||calcX|getI'.split('|'),0,{}))