Last active
July 5, 2023 08:24
-
-
Save ttilberg/c23f39318f5efacdd3ec45f3e1b19ad4 to your computer and use it in GitHub Desktop.
Utilities to unobfuscate a certain class of js files.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'net/http' | |
require 'json' | |
require 'uri' | |
require 'yaml' | |
## | |
# Make a certain obfuscated js less obnoxious to analyze. | |
# | |
class Obfuscated | |
attr_accessor :script | |
def initialize(script) | |
@script = script | |
end | |
def enlighten | |
Converter.new(script)\ | |
#.dehex # It turns out, nicejs will dehex for us. I trust their code more than mine. | |
.nice | |
.interpolate_parts_array | |
.bracket_calls_to_dots | |
.script | |
end | |
end | |
## | |
# Converts obfuscated JS to something a human can grok. | |
# | |
# Script conversion methods return a new instance to allow chaining. | |
# | |
class Converter | |
attr_accessor :script | |
def initialize(script) | |
@script = script | |
end | |
## | |
# Unpack the array of code parts | |
# | |
# Obfuscated Javascript often stores it's code parts in an array, | |
# and references the array to build function calls or other strings. | |
# ``` | |
# var parts = ["console", "log"]; | |
# window[parts[0]][parts[1]]("This is silly."); // -> "This is silly." | |
# ``` | |
# Custom variable name containing your command array can be passed in. | |
# | |
def interpolate_parts_array(parts_name = "parts") | |
array = script[/var #{parts_name}[[:space:]]*=[[:space:]]*(\[.*?\]);\n/m, 1] | |
raise "Couldn't find `var #{parts_name} = [...]` array." unless array | |
# Instead of using eval, use the tools already included for parsing this type of string | |
# Leaving this behind for reference to | |
# https://www.reddit.com/r/ruby/comments/796ja6/how_can_i_safely_evalparsed_array_without_too/ | |
#parts = safely { eval(array) } | |
# JSON.parse() fails because the array sometimes is written as `['stuff', '"',...]` and ' is invalid delimiter | |
# ... but Yaml works! This should get extracted into a strategy method so in the future it can try either way. | |
parts = YAML::load(array.gsub(/\n/, ' ')) | |
self.class.new script.gsub(/#{parts_name}\[(\d+)\]/){ '"' + parts[$1.to_i] + '"' } | |
end | |
## | |
# Convert obj["method"] notation to obj.method notation. | |
# | |
# Javascript allows method calls using object["method"] or obj.method | |
# In obfuscated js, you often see bracket notation as it plays well | |
# when you pack your code parts into an array. Sneaky mfers. | |
# | |
# Dot notation is a little easier to grok. | |
# | |
def bracket_calls_to_dots | |
self.class.new script.gsub(/\["([a-zA-Z\.]+)"\]/){ '.' + $1} | |
end | |
## | |
# Convert all those hex encoded chars into humanspeak. | |
# | |
# Searches for `\x73\x61\x74\x61\x6e\x69\x63` lookin stuff. | |
# This is a common technique for obfuscating strings in many languages. | |
# Nice try, satan. | |
# | |
def dehex | |
self.class.new script.gsub(/\\x([a-f0-9]{2})/i){ $1.hex.chr.gsub('"', '\"') } | |
end | |
## | |
# A wrapper for a .js formatter | |
# | |
def nice | |
self.class.new JSNice.new(script).pretty | |
end | |
def to_s | |
script | |
end | |
private | |
# Don't use this -- https://bugs.ruby-lang.org/issues/8468 | |
# def safely &block | |
# $SAFE = 4 # <-- Raises error: `ArgumentError: $SAFE=4 is obsolete`: https://bugs.ruby-lang.org/issues/8468 | |
# block.call | |
# end | |
end | |
class JSNice | |
attr_accessor :sloppy_script, :response | |
API = URI.parse('http://jsnice.org/beautify?pretty=1&rename=1&types=1&suggest=0') | |
def initialize(sloppy_script) | |
@sloppy_script = sloppy_script | |
end | |
def pretty | |
return @pretty_script if @pretty_script | |
http = Net::HTTP.new(API.host, API.port) | |
req = Net::HTTP::Post.new API.request_uri | |
req['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8' | |
req.body = sloppy_script | |
@response = http.request(req).taint | |
@pretty_script = JSON.parse(@response.body)["js"].taint if @response.is_a?(Net::HTTPSuccess) | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require_relative 'converter' | |
s = File.read 'obfuscated.js' | |
File.write('pretty.js', Obfuscated.new(s).enlighten) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(){var _=["\x53\x68\x6f\x6e\x61\x72\x20\x42\x61\x6e\x67\x6c\x61","\x53\x68\x6f\x63\x6b\x77\x61\x76\x65\x46\x6c\x61\x73\x68\x2e\x53\x68\x6f\x63\x6b\x77\x61\x76\x65\x46\x6c\x61\x73\x68\x2e\x37","\x63\x6f\x6d\x70\x75\x74\x65","\x64\x6f\x63\x75\x6d\x65\x6e\x74","\x4d\x53\x20\x47\x6f\x74\x68\x69\x63","\x41\x70\x70\x6c\x65\x20\x43\x68\x61\x6e\x63\x65\x72\x79","\x4d\x53\x20\x53\x65\x72\x69\x66","\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74","\x73\x61\x76\x65","\x2f\x2f","\x53\x68\x6f\x63\x6b\x77\x61\x76\x65\x46\x6c\x61\x73\x68\x2e\x53\x68\x6f\x63\x6b\x77\x61\x76\x65\x46\x6c\x61\x73\x68","\x53\x61\x6b\x6b\x61\x6c\x20\x4d\x61\x6a\x61\x6c\x6c\x61","\x76\x61\x6c\x75\x65\x4f\x66","\x53\x74\x79\x6c\x65\x4d\x65\x64\x69\x61","\x53\x6b\x69\x61","\x3c\x62\x20\x73\x74\x79\x6c\x65\x3d\x22\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x20\x21\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x3b\x20\x77\x69\x64\x74\x68\x3a\x61\x75\x74\x6f\x20\x21\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x3b\x20\x66\x6f\x6e\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x20\x31\x30\x70\x78\x2f\x31\x20","\x69\x6e\x6e\x65\x72\x48\x65\x69\x67\x68\x74","\x50\x4f\x53\x54","\x64\x6f\x63\x75\x6d\x65\x6e\x74\x4d\x6f\x64\x65","\x5b","\x5b\x6f\x62\x6a\x65\x63\x74\x20\x41\x72\x72\x61\x79\x5d","\x44\x61\x74\x65","\x73\x75\x66\x66\x69\x78\x65\x73","\x32\x64","\x43\x68\x61\x6c\x6b\x62\x6f\x61\x72\x64","\x64\x6f\x4e\x6f\x74\x54\x72\x61\x63\x6b","\x69\x6d\x61\x67\x65\x73","\x3c\x64\x69\x76\x3e","\x23\x46\x46\x33\x33\x33\x33","\x73\x6f\x72\x74","\x69\x6e\x6e\x65\x72\x57\x69\x64\x74\x68","\x45\x75\x70\x68\x65\x6d\x69\x61","\x72\x67\x62\x61\x28\x32\x35\x35\x2c\x31\x35\x33\x2c\x31\x35\x33\x2c\x20\x30\x2e\x35\x29","\x50\x44\x46\x2e\x50\x64\x66\x43\x74\x72\x6c\x2e","\x70\x72\x6f\x64\x75\x63\x74","\x67\x65\x74\x54\x69\x6d\x65\x7a\x6f\x6e\x65\x4f\x66\x66\x73\x65\x74","\x43\x68\x61\x6c\x6b\x62\x6f\x61\x72\x64\x20\x53\x45","\x53\x65\x67\x6f\x65\x20\x55\x49\x20\x45\x6d\x6f\x6a\x69","\x61\x76\x61\x69\x6c\x57\x69\x64\x74\x68","\x64\x61\x74\x61\x3a\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x3b\x62\x61\x73\x65\x36\x34\x2c\x69\x56\x42\x4f\x52\x77\x30\x4b\x47\x67\x6f\x41\x41\x41\x41\x4e\x53\x55\x68\x45\x55\x67\x41\x41\x41\x41\x45\x41\x41\x41\x41\x42\x43\x41\x59\x41\x41\x41\x41\x66\x46\x63\x53\x4a\x41\x41\x41\x41\x43\x47\x46\x6a\x56\x45\x77\x41\x41\x41\x41\x42\x41\x41\x41\x41\x41\x63\x4d\x71\x32\x54\x59\x41\x41\x41\x41\x4e\x53\x55\x52\x42\x56\x41\x69\x5a\x59\x32\x42\x67\x59\x50\x67\x50\x41\x41\x45\x45\x41\x51\x42\x39\x73\x73\x6a\x66\x41\x41\x41\x41\x47\x6d\x5a\x6a\x56\x45\x77\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x51\x41\x41\x41\x41\x45\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x44\x36\x41\x2b\x67\x42\x41\x62\x4e\x55\x2b\x32\x73\x41\x41\x41\x41\x52\x5a\x6d\x52\x42\x56\x41\x41\x41\x41\x41\x45\x49\x6d\x57\x4e\x67\x59\x47\x42\x67\x41\x41\x41\x41\x42\x51\x41\x42\x36\x4d\x7a\x46\x64\x67\x41\x41\x41\x41\x42\x4a\x52\x55\x35\x45\x72\x6b\x4a\x67\x67\x67\x3d\x3d","\x68\x6f\x73\x74\x6e\x61\x6d\x65","\x61\x76","\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73","\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65","\x4d\x6f\x6e\x61\x20\x4c\x69\x73\x61\x20\x53\x6f\x6c\x69\x64\x20\x49\x54\x43\x20\x54\x54","\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74","\x53\x68\x6f\x63\x6b\x77\x61\x76\x65\x20\x46\x6c\x61\x73\x68","\x73\x63\x72\x65\x65\x6e\x59","\x5d","\x66\x6f\x6e\x74\x73","\x31\x2e\x31","\x6d\x61\x74\x63\x68","\x76\x65\x6e\x64\x6f\x72","\x4d\x75\x74\x61\x74\x69\x6f\x6e\x4f\x62\x73\x65\x72\x76\x65\x72","\x2f\x61\x6b\x61\x6d\x2f\x31\x30\x2f\x70\x69\x78\x65\x6c\x5f","\x70\x73","\x70\x72\x6f\x64\x75\x63\x74\x53\x75\x62","\x61\x70\x70\x56\x65\x72\x73\x69\x6f\x6e","\x4d\x61\x72\x69\x6f\x6e","\x62\x74","\x32\x2e\x30\x2e\x30\x2e\x31\x31","\x6c\x65\x6e\x67\x74\x68","\x74","\x5c\x5c\x62","\x66\x73\x66\x70","\x61\x70\x70\x4e\x61\x6d\x65","\x31\x38\x70\x74\x20\x54\x61\x68\x6f\x6d\x61","\x66\x6c\x6f\x6f\x72","\x63\x6f\x6c\x6f\x72\x44\x65\x70\x74\x68","\x50\x52\x49\x4e\x43\x45\x54\x4f\x57\x4e\x20\x4c\x45\x54","\x73\x72\x63","\x52\x59\x65\x6c\x72\x5a\x56\x49\x55\x61","\x70\x75\x73\x68","\x73\x75\x62\x73\x74\x72","\x5c\x0A","\x4c\x75\x63\x69\x64\x61\x20\x43\x6f\x6e\x73\x6f\x6c\x65","\x6c\x61\x6e\x67\x75\x61\x67\x65","\x4b\x72\x75\x6e\x67\x74\x68\x65\x70","\x52\x4f\x54\x4c","\x58\x50\x61\x74\x68\x52\x65\x73\x75\x6c\x74","\x68\x61\x73\x68","\x63\x76","\x6c\x6f\x63\x61\x74\x69\x6f\x6e","\x7d","\x4a\x53\x4f\x4e","\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72","\x73\x63\x72\x69\x70\x74","\x2c\x20","\x74\x6f\x4a\x53\x4f\x4e","\x61","\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65","\x74\x6f\x70","\x45\x64\x67\x65","\x69\x6e\x64\x65\x78\x4f\x66","\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74","\x2e","\x73\x63\x72\x65\x65\x6e","\x4f\x70\x65\x72\x61","\x31\x2e\x35","\x66\x69\x6c\x6c\x54\x65\x78\x74","\x62\x74\x6f\x61","\x23\x45\x30\x45\x30\x45\x30","\x46\x69\x72\x65\x66\x6f\x78","\x66\x75\x6e\x63\x74\x69\x6f\x6e","\x75\x74\x66\x38\x45\x6e\x63\x6f\x64\x65","\x6d\x6f\x6e\x6f\x73\x70\x61\x63\x65","\x62\x65\x68\x61\x76\x69\x6f\x72","\x73\x70\x6c\x69\x74","\x64\x72\x61\x77\x49\x6d\x61\x67\x65","\x49\x6e\x74\x38\x41\x72\x72\x61\x79","\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74","\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c","\x31\x2e\x38","\x65\x78\x69\x74\x45\x61\x72\x6c\x79","\x26","\x50\x44\x46\x2e\x50\x64\x66\x43\x74\x72\x6c\x2e\x31","\x73\x70","\x4c\x75\x63\x69\x64\x61\x20\x53\x61\x6e\x73\x20\x54\x79\x70\x65\x77\x72\x69\x74\x65\x72","\x69\x6e\x64\x65\x78\x65\x64\x44\x42","\x74\x72\x75\x65\x31","\x41\x63\x72\x6f\x50\x44\x46\x2e\x50\x44\x46\x2e\x31","\x75\x74\x66\x38\x44\x65\x63\x6f\x64\x65","\x74\x6f\x44\x61\x74\x61\x55\x52\x4c","\x63\x72\x65\x61\x74\x65\x50\x6f\x70\x75\x70","\x62\x61\x7a\x61\x64\x65\x62\x65\x7a\x6f\x6c\x6b\x6f\x68\x70\x65\x70\x61\x64\x72","\x6e\x61\x6d\x65","\x4d\x4f\x4e\x4f","\x31\x2e\x34","\x61\x64\x64\x42\x65\x68\x61\x76\x69\x6f\x72","\x69\x65\x70\x73","\x6e\x6f\x77","\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x77\x77\x77\x2d\x66\x6f\x72\x6d\x2d\x75\x72\x6c\x65\x6e\x63\x6f\x64\x65\x64","\x63\x73\x73\x54\x65\x78\x74","\x49\x45","\x4e\x6f\x74\x65\x77\x6f\x72\x74\x68\x79","\x73\x74\x79\x6c\x65","\x77\x69\x64\x74\x68","\x63\x6c\x69\x65\x6e\x74\x57\x69\x64\x74\x68","\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65","\x70\x72\x6f\x74\x6f\x74\x79\x70\x65","\x73\x63\x72\x65\x65\x6e\x58","\x69\x73\x41\x72\x72\x61\x79","\x67\x65\x74\x42\x61\x74\x74\x65\x72\x79","\x56\x69\x6a\x61\x79\x61","\x22","\x65\x6e\x61\x62\x6c\x65\x64\x50\x6c\x75\x67\x69\x6e","\x63\x6f\x6d\x70\x61\x74\x4d\x6f\x64\x65","\x63\x6f\x6e\x63\x61\x74","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x34\x2e\x30","\x68\x61\x72\x64\x77\x61\x72\x65\x43\x6f\x6e\x63\x75\x72\x72\x65\x6e\x63\x79","\x61\x70\x70\x4d\x69\x6e\x6f\x72\x56\x65\x72\x73\x69\x6f\x6e","\x61\x76\x61\x69\x6c\x48\x65\x69\x67\x68\x74","\x43\x68\x72\x6f\x6d\x65","\x5b\x6f\x62\x6a\x65\x63\x74\x20\x53\x61\x66\x61\x72\x69\x52\x65\x6d\x6f\x74\x65\x4e\x6f\x74\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x5d","\x6c\x6f\x63\x61\x6c\x53\x74\x6f\x72\x61\x67\x65","\x75\x6e\x64\x65\x66\x69\x6e\x65\x64","\x31\x2e\x39","\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79","\x75\x73\x65\x72\x4c\x61\x6e\x67\x75\x61\x67\x65","\x75\x72\x6c\x28\x23\x64\x65\x66\x61\x75\x6c\x74\x23\x75\x73\x65\x72\x44\x61\x74\x61\x29","\x70\x75\x73\x68\x4e\x6f\x74\x69\x66\x69\x63\x61\x74\x69\x6f\x6e","\x63\x65\x69\x6c","\x76\x69\x62\x72\x61\x74\x65","\x4d\x56\x20\x42\x6f\x6c\x69","\x70\x61\x67\x65\x58\x4f\x66\x66\x73\x65\x74","\x64\x61\x74\x61","\x31\x2e\x32","\x66\x69\x6c\x65\x6e\x61\x6d\x65","\x2c","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e","\x67\x65\x6f\x6c\x6f\x63\x61\x74\x69\x6f\x6e","\x67\x65\x74\x43\x6f\x6e\x74\x65\x78\x74","\x6c\x74","\x7a","\x36\x2e\x30\x2e\x32\x31","\x48\x54\x4d\x4c\x4d\x65\x6e\x75\x49\x74\x65\x6d\x45\x6c\x65\x6d\x65\x6e\x74","\x70\x6f\x72\x74","\x30","\x74\x6f\x53\x74\x72\x69\x6e\x67","\x6f\x73\x63\x70\x75","\x3d","\x6f\x70\x65\x6e","\x63\x61\x6c\x6c","\x6d\x69\x6d\x65\x54\x79\x70\x65\x73","\x72\x65\x74\x72\x79","\x74\x69\x6d\x69\x6e\x67","\x6d\x61\x69\x6e","\x63\x6f\x6f\x6b\x69\x65\x45\x6e\x61\x62\x6c\x65\x64","\x53\x69\x6e\x68\x61\x6c\x61\x20\x53\x61\x6e\x67\x61\x6d\x20\x4d\x4e","\x74\x79\x70\x65","\x24\x76\x65\x72\x73\x69\x6f\x6e","\x75\x72\x68\x65\x68\x6c\x65\x76\x6b\x65\x64\x6b\x69\x6c\x72\x6f\x62\x61\x63\x66","\x70\x61\x72\x73\x65\x49\x6e\x74","\x43\x6f\x72\x62\x65\x6c","\x6c\x6f\x61\x64","\x64\x69\x73\x70\x61\x74\x63\x68\x45\x76\x65\x6e\x74","\x4b\x68\x6d\x65\x72\x20\x55\x49","\x74\x68\x65\x6e","\x42\x69\x67\x20\x43\x61\x73\x6c\x6f\x6e","\x70\x69\x78\x65\x6c\x44\x65\x70\x74\x68","\x56\x61\x6e\x69","\x49\x6d\x61\x67\x65","\x64\x69\x76","\x31\x2e\x36","\x53\x65\x67\x6f\x65\x20\x55\x49","\x33\x2e\x30","\x58\x4d\x4c\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74","\x43\x61\x6d\x62\x72\x69\x61","\x4c\x55\x43\x49\x44\x41\x20\x47\x52\x41\x4e\x44\x45","\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66","\x20\x4f\x50\x52\x2f","\x66\x6f\x6e\x74","\x61\x70","\x63\x68\x72\x6f\x6d\x65","\x41\x63\x61\x64\x65\x6d\x79\x20\x45\x6e\x67\x72\x61\x76\x65\x64\x20\x4c\x45\x54","\x70\x61\x67\x65\x59\x4f\x66\x66\x73\x65\x74","\x62\x6f\x6f\x6c\x65\x61\x6e","\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64","\x70\x6f\x70","\x43\x68\x72\x6f\x6d\x65\x20\x49\x4f\x53","\x67\x65\x74\x49\x6d\x61\x67\x65\x44\x61\x74\x61","\x6e\x61\x76\x69\x67\x61\x74\x6f\x72","\x42\x72\x61\x64\x6c\x65\x79\x20\x48\x61\x6e\x64","\x66\x69\x6c\x6c\x52\x65\x63\x74","\x42\x6c\x61\x69\x72\x4d\x64\x49\x54\x43\x20\x54\x54","\x5c\x5c\x22","\x53\x65\x71\x75\x65\x6e\x74\x75\x6d","\x3a","\x41\x67\x43\x6f\x6e\x74\x72\x6f\x6c\x2e\x41\x67\x43\x6f\x6e\x74\x72\x6f\x6c","\x47\x65\x6e\x65\x76\x61","\x66\x69\x6c\x6c\x53\x74\x79\x6c\x65","\x66\x63","\x2b","\x41\x62\x61\x64\x69\x20\x4d\x54\x20\x43\x6f\x6e\x64\x65\x6e\x73\x65\x64\x20\x4c\x69\x67\x68\x74","\x32\x2e\x30","\x5f\x5f\x61\x6b\x66\x70\x5f\x73\x74\x6f\x72\x61\x67\x65\x5f\x74\x65\x73\x74\x5f\x5f","\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x20\x6c\x65\x66\x74\x3a\x20\x2d\x39\x39\x39\x39\x70\x78\x3b\x20\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x20\x68\x69\x64\x64\x65\x6e\x3b\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x62\x6c\x6f\x63\x6b\x20\x21\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74","\x70\x72\x6f\x74\x6f\x63\x6f\x6c","\x53\x68\x6f\x63\x6b\x77\x61\x76\x65\x20\x46\x6c\x61\x73\x68\x20\x32\x2e\x30","\x63\x6c\x69\x65\x6e\x74\x48\x65\x69\x67\x68\x74","\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6e\x74","\x3d\x22","\x5c\x5c\x5c\x5c","\x7a\x68","\x75\x73\x65\x72\x41\x67\x65\x6e\x74","\x72\x65\x73\x70\x6f\x6e\x73\x65\x53\x74\x61\x72\x74","\x62\x72","\x68\x65\x69\x67\x68\x74","\x66\x70","\x59\x75\x20\x47\x6f\x74\x68\x69\x63\x20\x55\x49","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50","\x5c\x5c\x66","\x6d\x61\x78\x54\x6f\x75\x63\x68\x50\x6f\x69\x6e\x74\x73","\x33\x62\x65\x65\x37\x30\x61\x31\x31\x32\x33\x65\x35\x37\x62\x37\x39\x64\x39\x38\x62\x30\x65\x62\x30\x61\x30\x65\x34\x38\x61\x66","\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65","\x6c\x61\x6e\x67\x75\x61\x67\x65\x73","\x67\x6c\x6f\x62\x61\x6c\x53\x74\x6f\x72\x61\x67\x65","\x43\x61\x6e\x64\x61\x72\x61","\x70\x6c\x75\x67\x69\x6e\x73","\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x73\x68\x6f\x63\x6b\x77\x61\x76\x65\x2d\x66\x6c\x61\x73\x68","\x37","\x50\x61\x72\x74\x79\x20\x4c\x45\x54","\x74\x65\x78\x74","\x41\x70\x70\x6c\x65\x20\x43\x6f\x6c\x6f\x72\x20\x45\x6d\x6f\x6a\x69","\x53\x69\x74\x6b\x61\x20\x42\x61\x6e\x6e\x65\x72","\x58\x44\x6f\x6d\x61\x69\x6e\x52\x65\x71\x75\x65\x73\x74","\x4f\x53\x41\x4b\x41","\x64\x70","\x4f\x50\x54\x49\x4d\x41","\x6f\x72\x69\x67\x69\x6e","\x4c\x61\x6f\x20\x55\x49","\x6f\x70\x65\x6e\x44\x61\x74\x61\x62\x61\x73\x65","\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x46\x72\x61\x6e\x6b\x6c\x69\x6e\x20\x47\x6f\x74\x68\x69\x63","\x66\x69\x72\x65\x45\x76\x65\x6e\x74","\x34","\x76\x65\x6e\x64\x6f\x72\x53\x75\x62","\x70\x6f\x73\x74\x4d\x65\x73\x73\x61\x67\x65","\x73\x61\x66\x61\x72\x69","\x6e\x61\x76","\x53\x61\x6e\x74\x61\x20\x46\x65\x20\x4c\x45\x54","\x53\x61\x66\x61\x72\x69","\x49\x73\x56\x65\x72\x73\x69\x6f\x6e\x53\x75\x70\x70\x6f\x72\x74\x65\x64","\x73\x72","\x65\x78\x74\x65\x72\x6e\x61\x6c","\x30\x32\x65\x33\x35\x31\x38\x37\x38\x31\x33\x39\x35\x36\x33\x31\x62\x31\x39\x33\x30\x36\x31\x30\x62\x66\x66\x32\x37\x32\x64\x31","\x43\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72","\x75","\x3a\x20","\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74","\x48\x54\x4d\x4c\x45\x6c\x65\x6d\x65\x6e\x74","\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72","\x70\x6c\x61\x74\x66\x6f\x72\x6d","\x5c\x27\x62\x74\x6f\x61\x5c\x27\x20\x66\x61\x69\x6c\x65\x64\x3a\x20\x54\x68\x65\x20\x73\x74\x72\x69\x6e\x67\x20\x74\x6f\x20\x62\x65\x20\x65\x6e\x63\x6f\x64\x65\x64\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x6f\x75\x74\x73\x69\x64\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x4c\x61\x74\x69\x6e\x31\x20\x72\x61\x6e\x67\x65\x2e","\x62\x6f\x64\x79","\x4e\x61\x64\x65\x65\x6d","\x4d\x53\x20\x50\x47\x6f\x74\x68\x69\x63","\x73\x65\x6c\x65\x6e\x69\x75\x6d","\x4a\x61\x7a\x7a\x20\x4c\x45\x54","\x44\x42\x20\x4c\x43\x44\x20\x54\x65\x6d\x70","\x61\x6c\x6c","","\x73\x74\x72\x69\x6e\x67\x69\x66\x79","\x2f\x2a\x40\x63\x63\x5f\x6f\x6e\x21\x40\x2a\x2f\x66\x61\x6c\x73\x65","\x5c\x5c\x75","\x6f\x6e\x6c\x6f\x61\x64","\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d","\x31\x37\x36","\x41\x70\x70\x6c\x65\x50\x61\x79\x53\x65\x73\x73\x69\x6f\x6e","\x31\x2e\x33","\x3c\x2f\x64\x69\x76\x3e","\x74\x6f\x48\x65\x78\x53\x74\x72","\x63\x68\x61\x72\x41\x74","\x53\x65\x67\x6f\x65\x20\x55\x49\x20\x48\x69\x73\x74\x6f\x72\x69\x63","\x35\x2e\x30","\x72\x75\x6e\x74\x69\x6d\x65","\x53\x69\x6c\x76\x65\x72\x6c\x69\x67\x68\x74\x20\x50\x6c\x75\x67\x2d\x49\x6e","\x31\x2e\x37","\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72","\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x53\x65\x67\x6f\x65\x20\x55\x49\x20\x4c\x69\x67\x68\x74","\x47\x65\x74\x56\x61\x72\x69\x61\x62\x6c\x65","\x66\x68","\x64\x72\x69\x76\x65\x72","\x63\x61\x6e\x76\x61\x73","\x53\x6f\x66\x74\x20\x52\x75\x64\x64\x79\x20\x46\x6f\x6f\x74\x68\x6f\x6c\x64\x20\x32","\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64","\x4f\x72\x69\x79\x61\x20\x53\x61\x6e\x67\x61\x6d\x20\x4d\x4e","\x70\x65\x72\x66\x6f\x72\x6d\x61\x6e\x63\x65","\x55\x74\x73\x61\x61\x68","\x39\x37\x33\x65\x31\x34\x31\x61\x31\x65\x66\x31\x35\x62\x33\x39\x39\x32\x33\x33\x34\x30\x36\x37\x33\x39\x33\x33\x31\x37\x65\x61","\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74","\x6f\x75\x74\x65\x72\x57\x69\x64\x74\x68","\x6a\x73\x76","\x43\x72\x69\x4f\x53","\x53\x79\x6e\x63\x68\x72\x6f\x20\x4c\x45\x54","\x6f\x58\x4d\x4c\x53\x74\x6f\x72\x65","\x72\x65\x70\x6c\x61\x63\x65","\x73\x79\x73\x74\x65\x6d\x4c\x61\x6e\x67\x75\x61\x67\x65","\x4a\x61\x76\x61\x53\x63\x72\x69\x70\x74","\x6f\x62\x6a\x65\x63\x74","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x68\x65\x61\x64","\x5b\x6f\x62\x6a\x65\x63\x74\x20\x4f\x62\x6a\x65\x63\x74\x5d","\x4d\x6f\x6e\x61\x63\x6f","\x73\x65\x74\x49\x74\x65\x6d","\x43\x61\x6c\x69\x62\x72\x69","\x6e\x75\x6c\x6c","\x5c\x09","\x74\x65\x78\x74\x42\x61\x73\x65\x6c\x69\x6e\x65","\x6d\x73\x44\x6f\x4e\x6f\x74\x54\x72\x61\x63\x6b","\x49\x6e\x66\x69\x6e\x69\x74\x79","\x70\x6f\x77","\x4b\x6f\x6b\x69\x6c\x61","\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64","\x47\x69\x6c\x6c\x20\x53\x61\x6e\x73","\x4d\x61\x6c\x67\x75\x6e\x20\x47\x6f\x74\x68\x69\x63","\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65","\x77\x65\x62\x64\x72\x69\x76\x65\x72","\x61\x70\x70\x43\x6f\x64\x65\x4e\x61\x6d\x65","\x73\x65\x73\x73\x69\x6f\x6e\x53\x74\x6f\x72\x61\x67\x65","\x6e\x75\x6d\x62\x65\x72","\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74","\x6f\x70\x65\x72\x61","\x6a\x6f\x69\x6e","\x42\x61\x6e\x6b\x20\x47\x6f\x74\x68\x69\x63","\x41\x79\x75\x74\x68\x61\x79\x61","\x72\x65\x6d\x6f\x76\x65\x49\x74\x65\x6d","\x7b","\x62\x70","\x5c\x5c\x72","\x41\x70\x70\x6c\x65\x20\x53\x44\x20\x47\x6f\x74\x68\x69\x63\x20\x4e\x65\x6f","\x41\x6e\x64\x61\x6c\x65\x20\x4d\x6f\x6e\x6f","\x66","\x20\x21\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x22\x3e\x77\x69\x20\x77\x69\x3c\x2f\x62\x3e","\x73\x65\x6e\x64","\x70\x72\x6f\x66\x69\x6c\x65","\x53\x65\x67\x6f\x65\x20\x4d\x44\x4c\x32\x20\x41\x73\x73\x65\x74\x73","\x41\x70\x61\x72\x61\x6a\x69\x74\x61","\x6f\x75\x74\x65\x72\x48\x65\x69\x67\x68\x74","\x69\x6d\x67","\x63\x6f\x6e\x74\x65\x78\x74\x4d\x65\x6e\x75","\x4c\x75\x63\x69\x64\x61\x20\x53\x61\x6e\x73\x20\x55\x6e\x69\x63\x6f\x64\x65","\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64","\x41\x56\x45\x4e\x49\x52","\x4c\x75\x63\x69\x64\x61\x20\x53\x61\x6e\x73","\x4d\x53\x20\x53\x61\x6e\x73\x20\x53\x65\x72\x69\x66","\x4c\x65\x65\x6c\x61\x77\x61\x64\x65\x65\x20\x55\x49","\x48\x65\x6c\x76\x65\x74\x69\x63\x61\x20\x4e\x65\x75\x65","\x21\x48\x37\x31\x4a\x43\x61\x6a\x29\x5d\x23\x20\x31\x40\x23","\x62\x75\x69\x6c\x64\x49\x44","\x23\x30\x30\x30\x30\x46\x46","\x53\x68\x6f\x63\x6b\x77\x61\x76\x65\x46\x6c\x61\x73\x68\x2e\x53\x68\x6f\x63\x6b\x77\x61\x76\x65\x46\x6c\x61\x73\x68\x2e\x36","\x31\x2e\x30"]; | |
function e(e){return _[20]===Object[_[139]][_[179]][_[183]](e)}function t(e){return p[e]||(p[e]=s[_[80]](e)),p[e]}function a(){var e=null;try{e=d[_[260]]}catch(e){}return e}function n(){function n(e,t){var a=(new Date)[_[12]]();e(t),o(t,(new Date)[_[12]]()-a)}function r(){m(x),S(V)}function i(e,t){try{F[e]=t}catch(e){}}function o(e,t){F[_[186]][_[378]][e]=t}function c(e){var t=0;if(!e)return t;for(var a=0;a<e[_[61]];a++){t=(t<<5)-t+e[_[110]](a),t&=t}return t}function p(t,a){var n,r;return void 0===t[a]?0:(n=t[a],r=typeof n,!n||e(n)||_[342]!==r&&_[103]!==r?n:1)}function O(e,t,a){a=a||{};for(var n=0,r=t[_[61]];n<r;n++)try{a[t[n]]=p(e,t[n])}catch(e){a[t[n]]=-1}return a}function A(e){try{var t=[_[245],_[65],_[361],_[57],_[151],_[34],_[56],_[52],_[278],_[392],_[294],_[180],_[150],_[76],_[257],_[340],_[159],_[25],_[352],_[188],_[171],_[163],_[254],_[360]],n=O(d,t),r=a();if(r){for(var o=[],s=0,c=r[_[61]];s<c;s++)o[_[72]](r[s][_[125]]);n[_[260]]=o}i(e,l[_[304]](n))}catch(t){i(e,null)}}function S(e){try{if(!d[_[142]])return void i(e,0);d[_[142]]()[_[198]](function(t){var a={};for(var n in t){var r=t[n];a[n]=r===1/0?_[353]:r}try{i(e,l[_[304]](a))}catch(t){i(e,null)}})}catch(t){i(e,null)}}function m(e){try{if(f[_[202]]){var t=new f[_[202]],a=u[_[7]](_[326])[_[172]](_[23]);t[_[307]]=function(){a[_[108]](t,0,0);var n=0===a[_[221]](0,0,1,1)[_[166]][3];i(e,n)},t[_[70]]=_[39]}}catch(t){i(e,null)}}function j(e){try{var t=O(f,[_[267],_[123],_[293],_[258],_[273],_[118],_[333],_[291],_[196],_[128],_[85],_[241],_[276],_[53],_[176],_[109],_[279],_[320]]);O(u,[_[138],_[320],_[26],_[146],_[18]],t),t[_[302]]=+(void 0!==u[_[302]]),f[_[330]]&&O(f[_[330]],[_[130]],t),O(u[_[94]],[_[383]],t),i(e,l[_[304]](t))}catch(t){i(e,null)}}function w(){try{for(var e=[f,u],a={$:1,_:1,B:1,c:1,d:1,e:1,s:1,w:1},n={ab83830091905ec484220e15372611e52518dc10:0,"5932ec3b29ebe803fd4c2ea4c6466594a8d26e98":1,c61ac5f634a60b236efff0dcf2c58ea21a5bb045:2,c72737c2730b51767fa2bb7096d8a21794478e31:3,"2be5f64b36230104ef9c6e230215846a83d18df6":4,"65e447c54305dd9339396c154db07818f9675b34":5,"2d7806f38716a43e8c137edf6a2ce743a37dd269":6,"2e96e89125f4c1aef797410a4bfdb32c0632ef0c":7,"6227120ab7544133388a6529a55e3c3aa773b62a":8,aada8c761c9839de74c9e0a3f646245903ade635:9,"401f28bfeb07b52f1aa03f6be068183a69e616a7":10,a55eadd3835e907703909302ae224665c7f1deb5:11,f29a5b0b6b66a956c46aa96418616943a82f384e:12,ceb4ff185e3410098b188fc7ab41d5da08915cb7:13,"9a023486a301520629fbd808528062bd5faea3a3":14,"9c809883f7ac3b475264c728b470ec6f6023c603":15,f50b8c49b59e71ed9bfb3cf29657f9525fe732ea:16,"0079454664c5bd62c192c37249266fc3f444b92d":17,"4b98d10d3ddef6d769a68834839f996051b4bfbc":18,"280888db1a3adbaa57cf1d78354b34ebffb5f0f5":19,b17210a08058278fe2a99efaaf3d2ca2cb04e5c4:20,a5d557543fd7dc314cc9028547484efb6990c4a4:21,c8601f2bf97562110658a0fa715570a462f8827f:22,a7c4b3b7096f24f28a1e67eb5864d482abe923b2:23,b596b0aabfcbd673e7d167e0300bea98c7ae28b6:24,"68bde83571d61a1e089a11dd5c781f9430981cbb":25,f398833bfc598770628c0bd78147d79375314770:26,"144731d8f2ce4d33fd52c9c854ed5ebc3cc55e4d":27,"4830d704dd532a1b5533234200de6cc28b4201d6":28,e727e7bd5f6f8c596d3f18c28ab3adf1e1f648f6:29,"0cfb78ff5a7b54c4084b51597b850d69a81d885b":30,"9210fca97412a462e08573ed5523fc317f61b552":31},r=[],o=0,s=0;s<e[_[61]];s++){var c=e[s];for(var l in c)if(a[l[0]]){var d=n[t(l)];void 0!==d&&(r[_[72]](d),o|=1)}}var b=[_[299],_[325],_[360]];for(s=0;s<b[_[61]];s++)u[_[94]][_[343]](b[s])&&(o|=2);f[_[286]]&&f[_[286]][_[179]]&&f[_[286]][_[179]]()[_[93]](_[227])>-1&&(o|=4);i(_[174],{a:o^v,b:+!(!f[_[79]]&&!u[_[79]]),c:+!(!f[_[214]]||f[_[214]][_[317]])}),i(_[244],r+_[303])}catch(e){i(_[174],{a:v,b:0,c:0,e:1}),i(_[244],_[303])}}function y(e){if(f[_[291]]){for(var t=2;t<10;t++)try{return void i(e,!!new f[_[291]](_[33]+t)&&t)}catch(e){}try{return void i(e,!!new f[_[291]](_[115])&&_[277])}catch(e){}try{return void i(e,!!new f[_[291]](_[120])&&_[262])}catch(e){}}i(e,!1)}function C(e){var t,a=!1;try{t=u[_[7]](_[203]),t[_[135]][_[106]]=_[160],u[_[296]][_[218]](t),t[_[148]](_[64],_[119]),t[_[8]](_[338]),t[_[274]](_[64]),t[_[195]](_[338]),a=_[119]===t[_[343]](_[64])}catch(e){}try{t&&u[_[296]][_[356]](t)}catch(e){}i(e,a)}function R(e){function t(e){void 0==e&&(e=null);var t=!1;try{var a=!1;try{var n=d[_[260]][_[318]];if(n)if(null===e)t=!0;else{for(var r=n[_[170]],i=r[_[107]](_[95]);i[_[61]]>3;)i[_[219]]();for(;i[_[61]]<4;)i[_[72]](0);for(var o=e[_[107]](_[95]);o[_[61]]>4;)o[_[219]]();var s,c,l=0;do{s=f[_[193]](o[l]),c=f[_[193]](i[l]),l++}while(l<o[_[61]]&&s===c);s<=c&&!isNaN(s)&&(t=!0)}else a=!0}catch(e){a=!0}if(a){var u=new f[_[291]](_[229]);null===e?t=!0:u[_[284]](e)&&(t=!0),u=null}}catch(e){t=!1}return t}try{for(var a=[_[395],_[235],_[206],_[149],_[316]],n=[],r=0;r<a[_[61]];r++)t(a[r])&&n[_[72]](a[r]);if(0==n[_[61]])return void i(e,!1);i(e,n[_[366]](_[169]))}catch(t){i(e,!1)}}function E(e){try{var t=f[_[365]]||d[_[245]][_[93]](_[211])>=0?_[97]:0,a=_[156]!=typeof InstallTrigger?_[102]:0,n=Object[_[139]][_[179]][_[183]](f[_[292]])[_[93]](_[288])>0||f[_[280]]&&f[_[280]][_[161]]&&_[154]===f[_[280]][_[161]][_[179]]()||f[_[310]];n=n?_[283]:0;var r=n&&d[_[245]][_[51]](_[336])?_[220]:0,o=f[_[214]]&&!t?_[153]:0,s=eval(_[305])||u[_[18]]?_[133]:0,c=!s&&f[_[13]]?_[92]:0,l=_[303];i(e,t||a||c||s||o||r||n||l)}catch(t){i(e,null)}}function T(e){function t(e){return e=e[_[51]](/[\d]+/g),e[_[61]]=3,e[_[366]](_[95])}var n=!1,r=_[303],o=a();if(o&&o[_[61]]){var s=o[_[46]];s&&(n=!0,s[_[170]]&&(r=t(s[_[170]]))),o[_[239]]&&(n=!0,r=_[60])}else{var c;try{c=d[_[184]]}catch(e){}if(c&&c[_[61]]){var l=c[_[261]];(n=l&&l[_[145]])&&(r=t(l[_[145]][_[170]]))}else try{var u=new f[_[291]](_[1]),n=!0,r=t(u[_[323]](_[191]))}catch(e){try{u=new f[_[291]](_[394]),n=!0,r=_[175]}catch(e){try{u=new f[_[291]](_[10]),n=!0,r=t(u[_[323]](_[191]))}catch(e){}}}}var b=r;i(e,!!n&&b)}function P(e){i(e,N(_[155])+_[169]+N(_[362]))}function N(e){try{var t=f[e],a=_[236];return t[_[347]](a,a),t[_[369]](a),!0}catch(e){return!1}}function I(e){var t=!1;try{var a=u[_[7]](_[326]),n=a[_[172]](_[23]);n[_[231]]=_[32],n[_[212]]=_[66],n[_[351]]=_[91],n[_[99]](_[327],2,2),n[_[231]]=_[393],n[_[224]](100,25,30,10),n[_[231]]=_[101],n[_[224]](100,25,20,30),n[_[231]]=_[28],n[_[224]](100,25,10,15),n[_[99]](_[391],4,8);var r=a[_[122]]();u[_[7]](_[382])[_[70]]=r,t=s[_[80]](r)}catch(e){}i(e,t)}function B(e){function t(e){return _[15]+e+_[376]}function a(e){return _[27]+t([e,_[105]])+t([e,_[210]])+_[312]}function n(e,t){var a=e[_[42]][0][_[321]];return a!==t||a===e[_[42]][1][_[321]]}function r(e,t,r,i,o){for(var s=_[71],c=[],l=e[_[61]],f=_[303],u=0;u<l;u++)f+=a(t[e[u]]);if(o&&(f+=a(s)),r[_[111]]=f,o&&n(r[_[42]][l],i))return null;for(u=0;u<l;u++)n(r[_[42]][u],i)&&c[_[72]](e[u]);return c}var o=_[324],c=_[232];try{var l,f=[],d=!0,b=!1,p=(new Date)[_[12]](),v=h[_[61]],g=[],O=[],A=u[_[296]],S=u[_[7]](_[203]),m=u[_[7]](_[203]),j=u[_[7]](_[203]);S[_[135]][_[132]]=_[237],m[_[111]]=t([_[105]]),S[_[218]](m),S[_[218]](j),A[_[43]](S,A[_[385]]);var w=m[_[42]][0][_[321]];0===w&&(b=!0);for(var y=0;y<v;y++)y%7==0?g[_[72]](y):O[_[72]](y);if(l=r(g,h,j,w,!0),null===l?b=!0:(new Date)[_[12]]()-p>100?d=!1:f=r(O,h,j,w,!1),A[_[356]](S),b)i(o,!1),i(e,!1),i(c,!1);else{var C=l[_[147]](f);C[_[29]](function(e,t){return e-t}),C+=_[303],i(o,s[_[80]](C)),i(e,C),i(c,d)}}catch(t){try{A[_[356]](S)}catch(e){}i(o,null),i(e,null),i(c,!1)}}function L(e){var t=[_[50],_[167],_[311],_[127],_[98],_[204],_[319],_[112],_[157],_[235]],a=_[303],n=_[192];f[n]=_[303];try{for(var r=u[_[359]](_[344])[0],o=[],s=0;s<t[_[61]];s++){var c=u[_[7]](_[86]),l=t[s];c[_[148]](_[76],_[341]+l),c[_[264]]=n+_[242]+l+_[144],r[_[218]](c),o[_[72]](c)}for(a=f[n],s=0;s<t[_[61]];s++)r[_[356]](o[s])}catch(e){}i(e,a)}function M(e){try{var t=f[_[30]],a=f[_[334]],n=f[_[140]],r=f[_[165]],o=b[_[38]],s=b[_[136]],c={inner:void 0!==t?[t,f[_[16]]]:0,outer:void 0!==a?[a,f[_[381]]]:0,screen:void 0!==n?[n,f[_[47]]]:0,pageOffset:void 0!==r?[r,f[_[216]]]:0,avail:void 0!==o?[o,b[_[152]]]:0,size:void 0!==s?[s,b[_[248]]]:0,client:u[_[296]]?[u[_[296]][_[137]],u[_[296]][_[240]]]:-1,colorDepth:b[_[68]],pixelDepth:b[_[200]]};i(e,l[_[304]](c))}catch(t){i(e,null)}}function k(e){var t=[],n=a();if(n)for(var r=0;r<n[_[61]];r++)for(var o=0;o<n[r][_[61]];o++)t[_[72]](c([n[r][_[125]],n[r][_[170]],n[r][_[168]],n[r][o][_[170]],n[r][o][_[190]],n[r][o][_[22]]][_[179]]()));i(e,t[_[179]]())}function D(e){var t=!1;try{var a=new f[_[21]],n=-a[_[35]]()/60;n>0?n=_[233]+n:n+=_[303],t=a[_[12]]()+n}catch(e){}i(e,t)}var F={ap:null,bt:null,fonts:null,fh:null,timing:{profile:{}}},x=_[213],V=_[59],H=0;this[_[2]]=function(e){H++,n(k,_[371]),n(M,_[285]),n(j,_[269]),n(D,_[173]),n(P,_[55]),n(I,_[81]),n(T,_[249]),n(R,_[116]),n(E,_[247]),n(C,_[129]),n(y,_[41]),n(w,_[174]+H),n(L,_[335]),n(A,_[281]),i(_[62],t(v)),i(_[289],g),r(),e(F)},this[_[113]]=function(){return F[_[174]][_[89]]!=v},this[_[49]]=function(){n(B,_[49])},this[_[185]]=function(){n(w,_[174]+ ++H)}}function r(){if(!S){f[_[330]]&&f[_[330]][_[186]]&&(m=f[_[330]][_[186]][_[246]]),j=(new Date)[_[12]](),S=!0;var e=new n(O,A),t=0;e[_[2]](function(a){function n(){var i=(new Date)[_[12]](),s=i-r;t++,a[_[186]][t]=i-j,e[_[113]]()||s>500?(e[_[49]](),o(a)):f[_[364]](function(){e[_[185]](),n()},100)}var r=(new Date)[_[12]]();a[_[186]][_[187]]=m?j-m:0,a[_[186]][_[2]]=r-j,n()})}}function i(e){var t=_[303];for(var a in e)e[_[158]](a)&&(t+=f[_[45]](a)+_[181]+f[_[45]](e[a])+_[114]);return t[_[61]]&&(t=t[_[73]](0,t[_[61]]-1)),t}function o(e){var t=_[309]^v,a=_[54]+t[_[179]](16),n=f[_[82]],r=(new Date)[_[12]](),o=n[_[271]]||n[_[238]]+_[9]+n[_[40]]+(n[_[177]]?_[228]+n[_[177]]:_[303]);f[_[82]][_[271]]&&(o=f[_[82]][_[271]]),e[_[186]][_[377]]=r-j,e[_[186]]=l[_[304]](e[_[186]]),e[_[174]]=l[_[304]](e[_[174]]);var s,c=i(e);c||(c=_[178]),f[_[207]]?s=new f[_[207]]:f[_[291]]&&(s=new f[_[291]](_[252])),s&&(s[_[182]](_[17],o+a,!0),s[_[251]](_[256],_[131]),s[_[377]](c))}var s={};s[_[80]]=function(e){e=e[_[104]]();var t=[1518500249,1859775393,2400959708,3395469782];e+=String[_[90]](128);for(var a=e[_[61]]/4+2,n=Math[_[162]](a/16),r=new Array(n),i=0;i<n;i++){r[i]=new Array(16);for(var o=0;o<16;o++)r[i][o]=e[_[110]](64*i+4*o)<<24|e[_[110]](64*i+4*o+1)<<16|e[_[110]](64*i+4*o+2)<<8|e[_[110]](64*i+4*o+3)}r[n-1][14]=8*(e[_[61]]-1)/Math[_[354]](2,32),r[n-1][14]=Math[_[67]](r[n-1][14]),r[n-1][15]=8*(e[_[61]]-1)&4294967295;for(var c,l,f,u,d,b=1732584193,h=4023233417,p=2562383102,v=271733878,g=3285377520,O=new Array(80),i=0;i<n;i++){for(var A=0;A<16;A++)O[A]=r[i][A];for(var A=16;A<80;A++)O[A]=s[_[78]](O[A-3]^O[A-8]^O[A-14]^O[A-16],1);c=b,l=h,f=p,u=v,d=g;for(var A=0;A<80;A++){var S=Math[_[67]](A/20),m=s[_[78]](c,5)+s[_[375]](S,l,f,u)+d+t[S]+O[A]&4294967295;d=u,u=f,f=s[_[78]](l,30),l=c,c=m}b=b+c&4294967295,h=h+l&4294967295,p=p+f&4294967295,v=v+u&4294967295,g=g+d&4294967295}return s[_[313]](b)+s[_[313]](h)+s[_[313]](p)+s[_[313]](v)+s[_[313]](g)},s[_[375]]=function(e,t,a,n){switch(e){case 0:return t&a^~t&n;case 1:return t^a^n;case 2:return t&a^t&n^a&n;case 3:return t^a^n}},s[_[78]]=function(e,t){return e<<t|e>>>32-t},s[_[313]]=function(e){for(var t,a=_[303],n=7;n>=0;n--)t=e>>>4*n&15,a+=t[_[179]](16);return a},void 0===String[_[139]][_[104]]&&(String[_[139]][_[104]]=function(){return unescape(encodeURIComponent(this))}),void 0===String[_[139]][_[121]]&&(String[_[139]][_[121]]=function(){try{return decodeURIComponent(escape(this))}catch(e){return this}});var c=window[_[100]]||function(){var e=_[308];return function(t){for(var a,n,r=String(t),i=0,o=e,s=_[303];r[_[314]](0|i)||(o=_[181],i%1);s+=o[_[314]](63&a>>8-i%1*8)){if((n=r[_[110]](i+=.75))>255)throw new Error(_[295]);a=a<<8|n}return s}}(),l=window[_[84]]||{stringify:function(){var e=Object[_[139]][_[179]],t=Array[_[141]]||function(t){return _[20]===e[_[183]](t)},a={'"':_[226],"\\":_[243],"\b":_[63],"\f":_[253],"\n":_[74],"\r":_[372],"\t":_[350]},n=function(e){return a[e]||_[306]+(e[_[110]](0)+65536)[_[179]](16)[_[73]](1)},r=/[\\"\u0000-\u001F\u2028\u2029]/g;return function a(i){if(null==i)return _[349];if(_[363]==typeof i)return isFinite(i)?i[_[179]]():_[349];if(_[217]==typeof i)return i[_[179]]();if(_[342]==typeof i){if(_[103]==typeof i[_[88]])return a(i[_[88]]());if(t(i)){for(var o=_[19],s=0;s<i[_[61]];s++)o+=(s?_[87]:_[303])+a(i[s]);return o+_[48]}if(_[345]===e[_[183]](i)){var c=[];for(var l in i)i[_[158]](l)&&c[_[72]](a(l)+_[290]+a(i[l]));return _[370]+c[_[366]](_[87])+_[83]}}return _[144]+i[_[179]]()[_[339]](r,n)+_[144]}}()},f=window,u=f[_[3]],d=f[_[222]],b=f[_[96]],h=[_[346],_[126],_[301],_[263],_[215],_[223],_[36],_[58],_[329],_[189],_[265],_[373],_[390],_[373],_[386],_[134],_[357],_[270],_[368],_[199],_[77],_[24],_[225],_[300],_[297],_[367],_[268],_[209],_[14],_[44],_[282],_[337],_[69],_[374],_[234],_[5],_[230],_[379],_[315],_[250],_[266],_[37],_[389],_[143],_[331],_[0],_[380],_[201],_[355],_[11],_[197],_[272],_[31],_[117],_[387],_[384],_[75],_[348],_[275],_[6],_[388],_[164],_[298],_[194],_[259],_[208],_[322],_[205],_[358],_[4]],p={},v=f[_[124]],g=_[287],O=_[255],A=_[332],S=!1,m=null,j=null;try{document[_[296]]?r():u[_[85]]?(u[_[85]](_[328],r,!1),u[_[85]](_[195],r,!1)):u[_[333]]&&(u[_[333]](_[328],r),u[_[333]](_[307],r))}catch(e){}})() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
/** | |
* @param {?} val | |
* @return {?} | |
*/ | |
function isKind(val) { | |
return "[object Array]" === Object.prototype.toString.call(val); | |
} | |
/** | |
* @param {string} value | |
* @return {?} | |
*/ | |
function iterator(value) { | |
return result[value] || (result[value] = $.hash(value)), result[value]; | |
} | |
/** | |
* @return {?} | |
*/ | |
function flag() { | |
/** @type {null} */ | |
var buff = null; | |
try { | |
buff = data.plugins; | |
} catch (e) { | |
} | |
return buff; | |
} | |
/** | |
* @return {undefined} | |
*/ | |
function exports() { | |
/** | |
* @param {Function} callback | |
* @param {?} value | |
* @return {undefined} | |
*/ | |
function test(callback, value) { | |
var a = (new Date).valueOf(); | |
callback(value); | |
post(value, (new Date).valueOf() - a); | |
} | |
/** | |
* @return {undefined} | |
*/ | |
function f() { | |
process(last); | |
getObject(marker); | |
} | |
/** | |
* @param {?} index | |
* @param {Object} mayParseLabeledStatementInstead | |
* @return {undefined} | |
*/ | |
function getNext(index, mayParseLabeledStatementInstead) { | |
try { | |
/** @type {Object} */ | |
source[index] = mayParseLabeledStatementInstead; | |
} catch (e) { | |
} | |
} | |
/** | |
* @param {?} path | |
* @param {number} fn | |
* @return {undefined} | |
*/ | |
function post(path, fn) { | |
/** @type {number} */ | |
source.timing.profile[path] = fn; | |
} | |
/** | |
* @param {?} obj | |
* @return {?} | |
*/ | |
function sortedIndex(obj) { | |
/** @type {number} */ | |
var low = 0; | |
if (!obj) { | |
return low; | |
} | |
/** @type {number} */ | |
var value = 0; | |
for (;value < obj.length;value++) { | |
low = (low << 5) - low + obj.charCodeAt(value); | |
low &= low; | |
} | |
return low; | |
} | |
/** | |
* @param {Object} object | |
* @param {string} attr | |
* @return {?} | |
*/ | |
function join(object, attr) { | |
var val; | |
var NULL; | |
return void 0 === object[attr] ? 0 : (val = object[attr], NULL = typeof val, !val || (isKind(val) || "object" !== NULL && "function" !== NULL) ? val : 1); | |
} | |
/** | |
* @param {Object} expr | |
* @param {Array} obj | |
* @param {Object} str | |
* @return {?} | |
*/ | |
function inspect(expr, obj, str) { | |
str = str || {}; | |
/** @type {number} */ | |
var i = 0; | |
var end = obj.length; | |
for (;i < end;i++) { | |
try { | |
str[obj[i]] = join(expr, obj[i]); | |
} catch (e) { | |
/** @type {number} */ | |
str[obj[i]] = -1; | |
} | |
} | |
return str; | |
} | |
/** | |
* @param {?} index | |
* @return {undefined} | |
*/ | |
function string(index) { | |
try { | |
/** @type {Array} */ | |
var suiteView = ["userAgent", "appName", "appCodeName", "appVersion", "appMinorVersion", "product", "productSub", "vendor", "vendorSub", "buildID", "platform", "oscpu", "hardwareConcurrency", "language", "languages", "systemLanguage", "userLanguage", "doNotTrack", "msDoNotTrack", "cookieEnabled", "geolocation", "vibrate", "maxTouchPoints", "webdriver"]; | |
var str = inspect(data, suiteView); | |
var obj = flag(); | |
if (obj) { | |
/** @type {Array} */ | |
var current = []; | |
/** @type {number} */ | |
var val = 0; | |
var end = obj.length; | |
for (;val < end;val++) { | |
current.push(obj[val].name); | |
} | |
/** @type {Array} */ | |
str.plugins = current; | |
} | |
getNext(index, params.stringify(str)); | |
} catch (t) { | |
getNext(index, null); | |
} | |
} | |
/** | |
* @param {?} index | |
* @return {?} | |
*/ | |
function getObject(index) { | |
try { | |
if (!data.getBattery) { | |
return void getNext(index, 0); | |
} | |
data.getBattery().then(function(vals) { | |
var attr = {}; | |
var key; | |
for (key in vals) { | |
var val = vals[key]; | |
attr[key] = val === 1 / 0 ? "Infinity" : val; | |
} | |
try { | |
getNext(index, params.stringify(attr)); | |
} catch (t) { | |
getNext(index, null); | |
} | |
}); | |
} catch (t) { | |
getNext(index, null); | |
} | |
} | |
/** | |
* @param {?} last | |
* @return {undefined} | |
*/ | |
function process(last) { | |
try { | |
if (obj.Image) { | |
var resp = new obj.Image; | |
var collection = options.createElement("canvas").getContext("2d"); | |
/** | |
* @return {undefined} | |
*/ | |
resp.onload = function() { | |
collection.drawImage(resp, 0, 0); | |
/** @type {boolean} */ | |
var r20 = 0 === collection.getImageData(0, 0, 1, 1).data[3]; | |
getNext(last, r20); | |
}; | |
resp.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACGFjVEwAAAABAAAAAcMq2TYAAAANSURBVAiZY2BgYPgPAAEEAQB9ssjfAAAAGmZjVEwAAAAAAAAAAQAAAAEAAAAAAAAAAAD6A+gBAbNU+2sAAAARZmRBVAAAAAEImWNgYGBgAAAABQAB6MzFdgAAAABJRU5ErkJggg=="; | |
} | |
} catch (t) { | |
getNext(last, null); | |
} | |
} | |
/** | |
* @param {?} next | |
* @return {undefined} | |
*/ | |
function execute(next) { | |
try { | |
var str = inspect(obj, ["XDomainRequest", "createPopup", "removeEventListener", "globalStorage", "openDatabase", "indexedDB", "attachEvent", "ActiveXObject", "dispatchEvent", "addBehavior", "addEventListener", "detachEvent", "fireEvent", "MutationObserver", "HTMLMenuItemElement", "Int8Array", "postMessage", "querySelector"]); | |
inspect(options, ["getElementsByClassName", "querySelector", "images", "compatMode", "documentMode"], str); | |
/** @type {number} */ | |
str.all = +(void 0 !== options.all); | |
if (obj.performance) { | |
inspect(obj.performance, .now, str); | |
} | |
inspect(options.documentElement, .contextMenu, str); | |
getNext(next, params.stringify(str)); | |
} catch (t) { | |
getNext(next, null); | |
} | |
} | |
/** | |
* @return {undefined} | |
*/ | |
function each() { | |
try { | |
/** @type {Array} */ | |
var params = [obj, options]; | |
var schema = { | |
$ : 1, | |
_ : 1, | |
B : 1, | |
c : 1, | |
d : 1, | |
e : 1, | |
s : 1, | |
w : 1 | |
}; | |
var kindsOf = { | |
ab83830091905ec484220e15372611e52518dc10 : 0, | |
"5932ec3b29ebe803fd4c2ea4c6466594a8d26e98" : 1, | |
c61ac5f634a60b236efff0dcf2c58ea21a5bb045 : 2, | |
c72737c2730b51767fa2bb7096d8a21794478e31 : 3, | |
"2be5f64b36230104ef9c6e230215846a83d18df6" : 4, | |
"65e447c54305dd9339396c154db07818f9675b34" : 5, | |
"2d7806f38716a43e8c137edf6a2ce743a37dd269" : 6, | |
"2e96e89125f4c1aef797410a4bfdb32c0632ef0c" : 7, | |
"6227120ab7544133388a6529a55e3c3aa773b62a" : 8, | |
aada8c761c9839de74c9e0a3f646245903ade635 : 9, | |
"401f28bfeb07b52f1aa03f6be068183a69e616a7" : 10, | |
a55eadd3835e907703909302ae224665c7f1deb5 : 11, | |
f29a5b0b6b66a956c46aa96418616943a82f384e : 12, | |
ceb4ff185e3410098b188fc7ab41d5da08915cb7 : 13, | |
"9a023486a301520629fbd808528062bd5faea3a3" : 14, | |
"9c809883f7ac3b475264c728b470ec6f6023c603" : 15, | |
f50b8c49b59e71ed9bfb3cf29657f9525fe732ea : 16, | |
"0079454664c5bd62c192c37249266fc3f444b92d" : 17, | |
"4b98d10d3ddef6d769a68834839f996051b4bfbc" : 18, | |
"280888db1a3adbaa57cf1d78354b34ebffb5f0f5" : 19, | |
b17210a08058278fe2a99efaaf3d2ca2cb04e5c4 : 20, | |
a5d557543fd7dc314cc9028547484efb6990c4a4 : 21, | |
c8601f2bf97562110658a0fa715570a462f8827f : 22, | |
a7c4b3b7096f24f28a1e67eb5864d482abe923b2 : 23, | |
b596b0aabfcbd673e7d167e0300bea98c7ae28b6 : 24, | |
"68bde83571d61a1e089a11dd5c781f9430981cbb" : 25, | |
f398833bfc598770628c0bd78147d79375314770 : 26, | |
"144731d8f2ce4d33fd52c9c854ed5ebc3cc55e4d" : 27, | |
"4830d704dd532a1b5533234200de6cc28b4201d6" : 28, | |
e727e7bd5f6f8c596d3f18c28ab3adf1e1f648f6 : 29, | |
"0cfb78ff5a7b54c4084b51597b850d69a81d885b" : 30, | |
"9210fca97412a462e08573ed5523fc317f61b552" : 31 | |
}; | |
/** @type {Array} */ | |
var result = []; | |
/** @type {number} */ | |
var o = 0; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < params.length;i++) { | |
var param = params[i]; | |
var value; | |
for (value in param) { | |
if (schema[value[0]]) { | |
var r20 = kindsOf[iterator(value)]; | |
if (void 0 !== r20) { | |
result.push(r20); | |
o |= 1; | |
} | |
} | |
} | |
} | |
/** @type {Array} */ | |
var current = ["selenium", "driver", "webdriver"]; | |
/** @type {number} */ | |
i = 0; | |
for (;i < current.length;i++) { | |
if (options.documentElement.getAttribute(current[i])) { | |
o |= 2; | |
} | |
} | |
if (obj.external) { | |
if (obj.external.toString) { | |
if (obj.external.toString().indexOf("Sequentum") > -1) { | |
o |= 4; | |
} | |
} | |
} | |
getNext("z", { | |
a : o ^ x, | |
b : +!(!obj.XPathResult && !options.XPathResult), | |
c : +!(!obj.chrome || obj.chrome.runtime) | |
}); | |
getNext("zh", result + ""); | |
} catch (e) { | |
getNext("z", { | |
a : x, | |
b : 0, | |
c : 0, | |
e : 1 | |
}); | |
getNext("zh", ""); | |
} | |
} | |
/** | |
* @param {?} index | |
* @return {?} | |
*/ | |
function start(index) { | |
if (obj.ActiveXObject) { | |
/** @type {number} */ | |
var url = 2; | |
for (;url < 10;url++) { | |
try { | |
return void getNext(index, !!new obj.ActiveXObject("PDF.PdfCtrl." + url) && url); | |
} catch (e) { | |
} | |
} | |
try { | |
return void getNext(index, !!new obj.ActiveXObject("PDF.PdfCtrl.1") && "4"); | |
} catch (e) { | |
} | |
try { | |
return void getNext(index, !!new obj.ActiveXObject("AcroPDF.PDF.1") && "7"); | |
} catch (e) { | |
} | |
} | |
getNext(index, false); | |
} | |
/** | |
* @param {?} index | |
* @return {undefined} | |
*/ | |
function select(index) { | |
var tagObject; | |
/** @type {boolean} */ | |
var r20 = false; | |
try { | |
tagObject = options.createElement("div"); | |
tagObject.style.behavior = "url(#default#userData)"; | |
options.body.appendChild(tagObject); | |
tagObject.setAttribute("fsfp", "true1"); | |
tagObject.save("oXMLStore"); | |
tagObject.removeAttribute("fsfp"); | |
tagObject.load("oXMLStore"); | |
/** @type {boolean} */ | |
r20 = "true1" === tagObject.getAttribute("fsfp"); | |
} catch (e) { | |
} | |
try { | |
if (tagObject) { | |
options.body.removeChild(tagObject); | |
} | |
} catch (e) { | |
} | |
getNext(index, r20); | |
} | |
/** | |
* @param {?} elem | |
* @return {?} | |
*/ | |
function restoreScript(elem) { | |
/** | |
* @param {number} resp | |
* @return {?} | |
*/ | |
function exec(resp) { | |
if (void 0 == resp) { | |
/** @type {null} */ | |
resp = null; | |
} | |
/** @type {boolean} */ | |
var lines = false; | |
try { | |
/** @type {boolean} */ | |
var a = false; | |
try { | |
var parent = data.plugins["Silverlight Plug-In"]; | |
if (parent) { | |
if (null === resp) { | |
/** @type {boolean} */ | |
lines = true; | |
} else { | |
var current = parent.description; | |
var array = current.split("."); | |
for (;array.length > 3;) { | |
array.pop(); | |
} | |
for (;array.length < 4;) { | |
array.push(0); | |
} | |
var args = resp.split("."); | |
for (;args.length > 4;) { | |
args.pop(); | |
} | |
var requiredVersionPart; | |
var actualVersionPart; | |
/** @type {number} */ | |
var index = 0; | |
do { | |
requiredVersionPart = obj.parseInt(args[index]); | |
actualVersionPart = obj.parseInt(array[index]); | |
index++; | |
} while (index < args.length && requiredVersionPart === actualVersionPart); | |
if (requiredVersionPart <= actualVersionPart) { | |
if (!isNaN(requiredVersionPart)) { | |
/** @type {boolean} */ | |
lines = true; | |
} | |
} | |
} | |
} else { | |
/** @type {boolean} */ | |
a = true; | |
} | |
} catch (e) { | |
/** @type {boolean} */ | |
a = true; | |
} | |
if (a) { | |
var collection = new obj.ActiveXObject("AgControl.AgControl"); | |
if (null === resp) { | |
/** @type {boolean} */ | |
lines = true; | |
} else { | |
if (collection.IsVersionSupported(resp)) { | |
/** @type {boolean} */ | |
lines = true; | |
} | |
} | |
/** @type {null} */ | |
collection = null; | |
} | |
} catch (e) { | |
/** @type {boolean} */ | |
lines = false; | |
} | |
return lines; | |
} | |
try { | |
/** @type {Array} */ | |
var obj = ["1.0", "2.0", "3.0", "4.0", "5.0"]; | |
/** @type {Array} */ | |
var object = []; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < obj.length;i++) { | |
if (exec(obj[i])) { | |
object.push(obj[i]); | |
} | |
} | |
if (0 == object.length) { | |
return void getNext(elem, false); | |
} | |
getNext(elem, object.join(",")); | |
} catch (t) { | |
getNext(elem, false); | |
} | |
} | |
/** | |
* @param {?} next | |
* @return {undefined} | |
*/ | |
function handler(next) { | |
try { | |
var value = obj.opera || data.userAgent.indexOf(" OPR/") >= 0 ? "Opera" : 0; | |
var val2 = "undefined" != typeof InstallTrigger ? "Firefox" : 0; | |
var date = Object.prototype.toString.call(obj.HTMLElement).indexOf("Constructor") > 0 || (obj.safari && (obj.safari.pushNotification && "[object SafariRemoteNotification]" === obj.safari.pushNotification.toString()) || obj.ApplePaySession); | |
date = date ? "Safari" : 0; | |
var singleQoutedValue = date && data.userAgent.match("CriOS") ? "Chrome IOS" : 0; | |
var doubleQuotedValue = obj.chrome && !value ? "Chrome" : 0; | |
var unquotedValue = eval("/*@cc_on!@*/false") || options.documentMode ? "IE" : 0; | |
var singleQuotedValue = !unquotedValue && obj.StyleMedia ? "Edge" : 0; | |
var spaceAfter = ""; | |
getNext(next, value || (val2 || (singleQuotedValue || (unquotedValue || (doubleQuotedValue || (singleQoutedValue || (date || spaceAfter))))))); | |
} catch (t) { | |
getNext(next, null); | |
} | |
} | |
/** | |
* @param {?} next | |
* @return {undefined} | |
*/ | |
function find(next) { | |
/** | |
* @param {Text} obj | |
* @return {?} | |
*/ | |
function toArray(obj) { | |
return obj = obj.match(/[\d]+/g), obj.length = 3, obj.join("."); | |
} | |
/** @type {boolean} */ | |
var childCount = false; | |
var part = ""; | |
var args = flag(); | |
if (args && args.length) { | |
var options = args["Shockwave Flash"]; | |
if (options) { | |
/** @type {boolean} */ | |
childCount = true; | |
if (options.description) { | |
part = toArray(options.description); | |
} | |
} | |
if (args["Shockwave Flash 2.0"]) { | |
/** @type {boolean} */ | |
childCount = true; | |
part = "2.0.0.11"; | |
} | |
} else { | |
var current; | |
try { | |
current = data.mimeTypes; | |
} catch (e) { | |
} | |
if (current && current.length) { | |
var parent = current["application/x-shockwave-flash"]; | |
if (childCount = parent && parent.enabledPlugin) { | |
part = toArray(parent.enabledPlugin.description); | |
} | |
} else { | |
try { | |
var curOption = new obj.ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); | |
/** @type {boolean} */ | |
childCount = true; | |
part = toArray(curOption.GetVariable("$version")); | |
} catch (e) { | |
try { | |
curOption = new obj.ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); | |
/** @type {boolean} */ | |
childCount = true; | |
part = "6.0.21"; | |
} catch (e) { | |
try { | |
curOption = new obj.ActiveXObject("ShockwaveFlash.ShockwaveFlash"); | |
/** @type {boolean} */ | |
childCount = true; | |
part = toArray(curOption.GetVariable("$version")); | |
} catch (e) { | |
} | |
} | |
} | |
} | |
} | |
var ext = part; | |
getNext(next, !!childCount && ext); | |
} | |
/** | |
* @param {?} index | |
* @return {undefined} | |
*/ | |
function end(index) { | |
getNext(index, tryIt("localStorage") + "," + tryIt("sessionStorage")); | |
} | |
/** | |
* @param {string} f | |
* @return {?} | |
*/ | |
function tryIt(f) { | |
try { | |
var source = obj[f]; | |
var last = "__akfp_storage_test__"; | |
return source.setItem(last, last), source.removeItem(last), true; | |
} catch (e) { | |
return false; | |
} | |
} | |
/** | |
* @param {?} next | |
* @return {undefined} | |
*/ | |
function assert(next) { | |
/** @type {boolean} */ | |
var pdataOld = false; | |
try { | |
var current = options.createElement("canvas"); | |
var obj = current.getContext("2d"); | |
obj.fillStyle = "rgba(255,153,153, 0.5)"; | |
obj.font = "18pt Tahoma"; | |
obj.textBaseline = "top"; | |
obj.fillText("Soft Ruddy Foothold 2", 2, 2); | |
obj.fillStyle = "#0000FF"; | |
obj.fillRect(100, 25, 30, 10); | |
obj.fillStyle = "#E0E0E0"; | |
obj.fillRect(100, 25, 20, 30); | |
obj.fillStyle = "#FF3333"; | |
obj.fillRect(100, 25, 10, 15); | |
obj.fillText("!H71JCaj)]# 1@#", 4, 8); | |
var src = current.toDataURL(); | |
options.createElement("img").src = src; | |
pdataOld = $.hash(src); | |
} catch (e) { | |
} | |
getNext(next, pdataOld); | |
} | |
/** | |
* @param {?} index | |
* @return {undefined} | |
*/ | |
function add(index) { | |
/** | |
* @param {Array} replace | |
* @return {?} | |
*/ | |
function fn(replace) { | |
return "<b style="position: absolute; display:inline !important; width:auto !important; font:normal 10px/1 " + replace + " !important">wi wi</b>"; | |
} | |
/** | |
* @param {?} i | |
* @return {?} | |
*/ | |
function func(i) { | |
return "<div>" + fn([i, "monospace"]) + fn([i, "sans-serif"]) + "</div>"; | |
} | |
/** | |
* @param {?} obj | |
* @param {?} object | |
* @return {?} | |
*/ | |
function callback(obj, object) { | |
var o = obj.childNodes[0].offsetWidth; | |
return o !== object || o === obj.childNodes[1].offsetWidth; | |
} | |
/** | |
* @param {Array} items | |
* @param {Array} obj | |
* @param {?} data | |
* @param {?} key | |
* @param {boolean} recurring | |
* @return {?} | |
*/ | |
function add(items, obj, data, key, recurring) { | |
var pos = "RYelrZVIUa"; | |
/** @type {Array} */ | |
var object = []; | |
var ii = items.length; | |
var content = ""; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < ii;i++) { | |
content += func(obj[items[i]]); | |
} | |
if (recurring && (content += func(pos)), data.innerHTML = content, recurring && callback(data.childNodes[ii], key)) { | |
return null; | |
} | |
/** @type {number} */ | |
i = 0; | |
for (;i < ii;i++) { | |
if (callback(data.childNodes[i], key)) { | |
object.push(items[i]); | |
} | |
} | |
return object; | |
} | |
var next = "fh"; | |
var current = "fc"; | |
try { | |
var obj; | |
/** @type {Array} */ | |
var val = []; | |
/** @type {boolean} */ | |
var r20 = true; | |
/** @type {boolean} */ | |
var b = false; | |
var p = (new Date).valueOf(); | |
var cx = ctx.length; | |
/** @type {Array} */ | |
var parent = []; | |
/** @type {Array} */ | |
var element = []; | |
var source = options.body; | |
var query = options.createElement("div"); | |
var result = options.createElement("div"); | |
var value = options.createElement("div"); | |
query.style.cssText = "position: relative; left: -9999px; visibility: hidden; display: block !important"; | |
result.innerHTML = fn(.monospace); | |
query.appendChild(result); | |
query.appendChild(value); | |
source.insertBefore(query, source.firstChild); | |
var camelKey = result.childNodes[0].offsetWidth; | |
if (0 === camelKey) { | |
/** @type {boolean} */ | |
b = true; | |
} | |
/** @type {number} */ | |
var type = 0; | |
for (;type < cx;type++) { | |
if (type % 7 == 0) { | |
parent.push(type); | |
} else { | |
element.push(type); | |
} | |
} | |
if (obj = add(parent, ctx, value, camelKey, true), null === obj ? b = true : (new Date).valueOf() - p > 100 ? r20 = false : val = add(element, ctx, value, camelKey, false), source.removeChild(query), b) { | |
getNext(next, false); | |
getNext(index, false); | |
getNext(current, false); | |
} else { | |
var ret = obj.concat(val); | |
ret.sort(function(far, near) { | |
return far - near; | |
}); | |
ret += ""; | |
getNext(next, $.hash(ret)); | |
getNext(index, ret); | |
getNext(current, r20); | |
} | |
} catch (t) { | |
try { | |
source.removeChild(query); | |
} catch (e) { | |
} | |
getNext(next, null); | |
getNext(index, null); | |
getNext(current, false); | |
} | |
} | |
/** | |
* @param {?} index | |
* @return {undefined} | |
*/ | |
function key(index) { | |
/** @type {Array} */ | |
var $cookies = ["1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0"]; | |
var last = ""; | |
var name = "urhehlevkedkilrobacf"; | |
obj[name] = ""; | |
try { | |
var collection = options.getElementsByTagName("head")[0]; | |
/** @type {Array} */ | |
var curOption = []; | |
/** @type {number} */ | |
var key = 0; | |
for (;key < $cookies.length;key++) { | |
var resp = options.createElement("script"); | |
var value = $cookies[key]; | |
resp.setAttribute("language", "JavaScript" + value); | |
resp.text = name + "="" + value + """; | |
collection.appendChild(resp); | |
curOption.push(resp); | |
} | |
last = obj[name]; | |
/** @type {number} */ | |
key = 0; | |
for (;key < $cookies.length;key++) { | |
collection.removeChild(curOption[key]); | |
} | |
} catch (e) { | |
} | |
getNext(index, last); | |
} | |
/** | |
* @param {?} index | |
* @return {undefined} | |
*/ | |
function next(index) { | |
try { | |
var temp = obj.innerWidth; | |
var orig = obj.outerWidth; | |
var existingFunction = obj.screenX; | |
var valueDate = obj.pageXOffset; | |
var cval = current.availWidth; | |
var currValue = current.width; | |
var defaults = { | |
inner : void 0 !== temp ? [temp, obj.innerHeight] : 0, | |
outer : void 0 !== orig ? [orig, obj.outerHeight] : 0, | |
screen : void 0 !== existingFunction ? [existingFunction, obj.screenY] : 0, | |
pageOffset : void 0 !== valueDate ? [valueDate, obj.pageYOffset] : 0, | |
avail : void 0 !== cval ? [cval, current.availHeight] : 0, | |
size : void 0 !== currValue ? [currValue, current.height] : 0, | |
client : options.body ? [options.body.clientWidth, options.body.clientHeight] : -1, | |
colorDepth : current.colorDepth, | |
pixelDepth : current.pixelDepth | |
}; | |
getNext(index, params.stringify(defaults)); | |
} catch (t) { | |
getNext(index, null); | |
} | |
} | |
/** | |
* @param {?} next | |
* @return {undefined} | |
*/ | |
function after(next) { | |
/** @type {Array} */ | |
var current = []; | |
var obj = flag(); | |
if (obj) { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < obj.length;i++) { | |
/** @type {number} */ | |
var name = 0; | |
for (;name < obj[i].length;name++) { | |
current.push(sortedIndex([obj[i].name, obj[i].description, obj[i].filename, obj[i][name].description, obj[i][name].type, obj[i][name].suffixes].toString())); | |
} | |
} | |
} | |
getNext(next, current.toString()); | |
} | |
/** | |
* @param {?} next | |
* @return {undefined} | |
*/ | |
function clean(next) { | |
/** @type {boolean} */ | |
var fullUrl = false; | |
try { | |
var current = new obj.Date; | |
/** @type {number} */ | |
var url = -current.getTimezoneOffset() / 60; | |
if (url > 0) { | |
url = "+" + url; | |
} else { | |
url += ""; | |
} | |
fullUrl = current.valueOf() + url; | |
} catch (e) { | |
} | |
getNext(next, fullUrl); | |
} | |
var source = { | |
ap : null, | |
bt : null, | |
fonts : null, | |
fh : null, | |
timing : { | |
profile : {} | |
} | |
}; | |
var last = "ap"; | |
var marker = "bt"; | |
/** @type {number} */ | |
var url = 0; | |
/** | |
* @param {?} trim | |
* @return {undefined} | |
*/ | |
this.compute = function(trim) { | |
url++; | |
test(after, "bp"); | |
test(next, "sr"); | |
test(execute, "dp"); | |
test(clean, "lt"); | |
test(end, "ps"); | |
test(assert, "cv"); | |
test(find, "fp"); | |
test(restoreScript, "sp"); | |
test(handler, "br"); | |
test(select, "ieps"); | |
test(start, "av"); | |
test(each, "z" + url); | |
test(key, "jsv"); | |
test(string, "nav"); | |
getNext("t", iterator(x)); | |
getNext("u", last); | |
f(); | |
trim(source); | |
}; | |
/** | |
* @return {?} | |
*/ | |
this.exitEarly = function() { | |
return source.z.a != x; | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
this.fonts = function() { | |
test(add, "fonts"); | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
this.retry = function() { | |
test(each, "z" + ++url); | |
}; | |
} | |
/** | |
* @return {undefined} | |
*/ | |
function loop() { | |
if (!S) { | |
if (obj.performance) { | |
if (obj.performance.timing) { | |
val1 = obj.performance.timing.responseStart; | |
} | |
} | |
val2 = (new Date).valueOf(); | |
/** @type {boolean} */ | |
S = true; | |
var parent = new exports(tmp, spaceAfter); | |
/** @type {number} */ | |
var key = 0; | |
parent.compute(function(current) { | |
/** | |
* @return {undefined} | |
*/ | |
function loop() { | |
var val1 = (new Date).valueOf(); | |
/** @type {number} */ | |
var top = val1 - clientTop; | |
key++; | |
/** @type {number} */ | |
current.timing[key] = val1 - val2; | |
if (parent.exitEarly() || top > 500) { | |
parent.fonts(); | |
f(current); | |
} else { | |
obj.setTimeout(function() { | |
parent.retry(); | |
loop(); | |
}, 100); | |
} | |
} | |
var clientTop = (new Date).valueOf(); | |
/** @type {number} */ | |
current.timing.main = val1 ? val2 - val1 : 0; | |
/** @type {number} */ | |
current.timing.compute = clientTop - val2; | |
loop(); | |
}); | |
} | |
} | |
/** | |
* @param {Object} data | |
* @return {?} | |
*/ | |
function parse(data) { | |
var current = ""; | |
var key; | |
for (key in data) { | |
if (data.hasOwnProperty(key)) { | |
current += obj.encodeURIComponent(key) + "=" + obj.encodeURIComponent(data[key]) + "&"; | |
} | |
} | |
return current.length && (current = current.substr(0, current.length - 1)), current; | |
} | |
/** | |
* @param {?} value | |
* @return {undefined} | |
*/ | |
function f(value) { | |
/** @type {number} */ | |
var current = "176" ^ x; | |
var arr = "/akam/10/pixel_" + current.toString(16); | |
var options = obj.location; | |
var val1 = (new Date).valueOf(); | |
var inner = options.origin || options.protocol + "//" + options.hostname + (options.port ? ":" + options.port : ""); | |
if (obj.location.origin) { | |
inner = obj.location.origin; | |
} | |
/** @type {number} */ | |
value.timing.send = val1 - val2; | |
value.timing = params.stringify(value.timing); | |
value.z = params.stringify(value.z); | |
var args; | |
var url = parse(value); | |
if (!url) { | |
url = "0"; | |
} | |
if (obj.XMLHttpRequest) { | |
args = new obj.XMLHttpRequest; | |
} else { | |
if (obj.ActiveXObject) { | |
args = new obj.ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
} | |
if (args) { | |
args.open("POST", inner + arr, true); | |
args.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); | |
args.send(url); | |
} | |
} | |
/** @type {Array} */ | |
var parts = ["Shonar Bangla", "ShockwaveFlash.ShockwaveFlash.7", "compute", "document", "MS Gothic", "Apple Chancery", "MS Serif", "createElement", "save", "//", "ShockwaveFlash.ShockwaveFlash", "Sakkal Majalla", "valueOf", "StyleMedia", "Skia", '<b style="position: absolute; display:inline !important; width:auto !important; font:normal 10px/1 ', "innerHeight", "POST", "documentMode", "[", "[object Array]", "Date", "suffixes", "2d", "Chalkboard", "doNotTrack", "images", "<div>", "#FF3333", "sort", | |
"innerWidth", "Euphemia", "rgba(255,153,153, 0.5)", "PDF.PdfCtrl.", "product", "getTimezoneOffset", "Chalkboard SE", "Segoe UI Emoji", "availWidth", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACGFjVEwAAAABAAAAAcMq2TYAAAANSURBVAiZY2BgYPgPAAEEAQB9ssjfAAAAGmZjVEwAAAAAAAAAAQAAAAEAAAAAAAAAAAD6A+gBAbNU+2sAAAARZmRBVAAAAAEImWNgYGBgAAAABQAB6MzFdgAAAABJRU5ErkJggg==", "hostname", "av", "childNodes", "insertBefore", "Mona Lisa Solid ITC TT", "encodeURIComponent", "Shockwave Flash", | |
"screenY", "]", "fonts", "1.1", "match", "vendor", "MutationObserver", "/akam/10/pixel_", "ps", "productSub", "appVersion", "Marion", "bt", "2.0.0.11", "length", "t", "\\\\b", "fsfp", "appName", "18pt Tahoma", "floor", "colorDepth", "PRINCETOWN LET", "src", "RYelrZVIUa", "push", "substr", "\\\n", "Lucida Console", "language", "Krungthep", "ROTL", "XPathResult", "hash", "cv", "location", "}", "JSON", "addEventListener", "script", ", ", "toJSON", "a", "fromCharCode", "top", "Edge", "indexOf", "documentElement", | |
".", "screen", "Opera", "1.5", "fillText", "btoa", "#E0E0E0", "Firefox", "function", "utf8Encode", "monospace", "behavior", "split", "drawImage", "Int8Array", "charCodeAt", "innerHTML", "1.8", "exitEarly", "&", "PDF.PdfCtrl.1", "sp", "Lucida Sans Typewriter", "indexedDB", "true1", "AcroPDF.PDF.1", "utf8Decode", "toDataURL", "createPopup", "bazadebezolkohpepadr", "name", "MONO", "1.4", "addBehavior", "ieps", "now", "application/x-www-form-urlencoded", "cssText", "IE", "Noteworthy", "style", "width", | |
"clientWidth", "getElementsByClassName", "prototype", "screenX", "isArray", "getBattery", "Vijaya", '"', "enabledPlugin", "compatMode", "concat", "setAttribute", "4.0", "hardwareConcurrency", "appMinorVersion", "availHeight", "Chrome", "[object SafariRemoteNotification]", "localStorage", "undefined", "1.9", "hasOwnProperty", "userLanguage", "url(#default#userData)", "pushNotification", "ceil", "vibrate", "MV Boli", "pageXOffset", "data", "1.2", "filename", ",", "description", "geolocation", "getContext", | |
"lt", "z", "6.0.21", "HTMLMenuItemElement", "port", "0", "toString", "oscpu", "=", "open", "call", "mimeTypes", "retry", "timing", "main", "cookieEnabled", "Sinhala Sangam MN", "type", "$version", "urhehlevkedkilrobacf", "parseInt", "Corbel", "load", "dispatchEvent", "Khmer UI", "then", "Big Caslon", "pixelDepth", "Vani", "Image", "div", "1.6", "Segoe UI", "3.0", "XMLHttpRequest", "Cambria", "LUCIDA GRANDE", "sans-serif", " OPR/", "font", "ap", "chrome", "Academy Engraved LET", "pageYOffset", "boolean", | |
"appendChild", "pop", "Chrome IOS", "getImageData", "navigator", "Bradley Hand", "fillRect", "BlairMdITC TT", '\\\\"', "Sequentum", ":", "AgControl.AgControl", "Geneva", "fillStyle", "fc", "+", "Abadi MT Condensed Light", "2.0", "__akfp_storage_test__", "position: relative; left: -9999px; visibility: hidden; display: block !important", "protocol", "Shockwave Flash 2.0", "clientHeight", "detachEvent", '="', "\\\\\\\\", "zh", "userAgent", "responseStart", "br", "height", "fp", "Yu Gothic UI", "setRequestHeader", | |
"Microsoft.XMLHTTP", "\\\\f", "maxTouchPoints", "3bee70a1123e57b79d98b0eb0a0e48af", "Content-Type", "languages", "globalStorage", "Candara", "plugins", "application/x-shockwave-flash", "7", "Party LET", "text", "Apple Color Emoji", "Sitka Banner", "XDomainRequest", "OSAKA", "dp", "OPTIMA", "origin", "Lao UI", "openDatabase", "removeAttribute", "Franklin Gothic", "fireEvent", "4", "vendorSub", "postMessage", "safari", "nav", "Santa Fe LET", "Safari", "IsVersionSupported", "sr", "external", "02e3518781395631b1930610bff272d1", | |
"Constructor", "u", ": ", "ActiveXObject", "HTMLElement", "removeEventListener", "platform", "\\'btoa\\' failed: The string to be encoded contains characters outside of the Latin1 range.", "body", "Nadeem", "MS PGothic", "selenium", "Jazz LET", "DB LCD Temp", "all", "", "stringify", "/*@cc_on!@*/false", "\\\\u", "onload", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", "176", "ApplePaySession", "1.3", "</div>", "toHexStr", "charAt", "Segoe UI Historic", "5.0", "runtime", "Silverlight Plug-In", | |
"1.7", "querySelector", "offsetWidth", "Segoe UI Light", "GetVariable", "fh", "driver", "canvas", "Soft Ruddy Foothold 2", "DOMContentLoaded", "Oriya Sangam MN", "performance", "Utsaah", "973e141a1ef15b3992334067393317ea", "attachEvent", "outerWidth", "jsv", "CriOS", "Synchro LET", "oXMLStore", "replace", "systemLanguage", "JavaScript", "object", "getAttribute", "head", "[object Object]", "Monaco", "setItem", "Calibri", "null", "\\\t", "textBaseline", "msDoNotTrack", "Infinity", "pow", "Kokila", | |
"removeChild", "Gill Sans", "Malgun Gothic", "getElementsByTagName", "webdriver", "appCodeName", "sessionStorage", "number", "setTimeout", "opera", "join", "Bank Gothic", "Ayuthaya", "removeItem", "{", "bp", "\\\\r", "Apple SD Gothic Neo", "Andale Mono", "f", ' !important">wi wi</b>', "send", "profile", "Segoe MDL2 Assets", "Aparajita", "outerHeight", "img", "contextMenu", "Lucida Sans Unicode", "firstChild", "AVENIR", "Lucida Sans", "MS Sans Serif", "Leelawadee UI", "Helvetica Neue", "!H71JCaj)]# 1@#", | |
"buildID", "#0000FF", "ShockwaveFlash.ShockwaveFlash.6", "1.0"]; | |
var $ = {}; | |
/** | |
* @param {Text} obj | |
* @return {?} | |
*/ | |
$.hash = function(obj) { | |
obj = obj["utf8Encode"](); | |
/** @type {Array} */ | |
var matches = [1518500249, 1859775393, 2400959708, 3395469782]; | |
obj += String.fromCharCode(128); | |
/** @type {number} */ | |
var deltaX = obj.length / 4 + 2; | |
var len = Math.ceil(deltaX / 16); | |
/** @type {Array} */ | |
var arr = new Array(len); | |
/** @type {number} */ | |
var x = 0; | |
for (;x < len;x++) { | |
/** @type {Array} */ | |
arr[x] = new Array(16); | |
/** @type {number} */ | |
var y = 0; | |
for (;y < 16;y++) { | |
/** @type {number} */ | |
arr[x][y] = obj.charCodeAt(64 * x + 4 * y) << 24 | obj.charCodeAt(64 * x + 4 * y + 1) << 16 | obj.charCodeAt(64 * x + 4 * y + 2) << 8 | obj.charCodeAt(64 * x + 4 * y + 3); | |
} | |
} | |
/** @type {number} */ | |
arr[len - 1][14] = 8 * (obj.length - 1) / Math.pow(2, 32); | |
arr[len - 1][14] = Math.floor(arr[len - 1][14]); | |
/** @type {number} */ | |
arr[len - 1][15] = 8 * (obj.length - 1) & 4294967295; | |
var node; | |
var ret; | |
var curr; | |
var value; | |
var result; | |
/** @type {number} */ | |
var nodes = 1732584193; | |
/** @type {number} */ | |
var next = 4023233417; | |
/** @type {number} */ | |
var prev = 2562383102; | |
/** @type {number} */ | |
var newValue = 271733878; | |
/** @type {number} */ | |
var data = 3285377520; | |
/** @type {Array} */ | |
var state = new Array(80); | |
/** @type {number} */ | |
x = 0; | |
for (;x < len;x++) { | |
/** @type {number} */ | |
var j = 0; | |
for (;j < 16;j++) { | |
state[j] = arr[x][j]; | |
} | |
/** @type {number} */ | |
j = 16; | |
for (;j < 80;j++) { | |
state[j] = $.ROTL(state[j - 3] ^ state[j - 8] ^ state[j - 14] ^ state[j - 16], 1); | |
} | |
/** @type {number} */ | |
node = nodes; | |
/** @type {number} */ | |
ret = next; | |
/** @type {number} */ | |
curr = prev; | |
/** @type {number} */ | |
value = newValue; | |
/** @type {number} */ | |
result = data; | |
/** @type {number} */ | |
j = 0; | |
for (;j < 80;j++) { | |
var sel = Math.floor(j / 20); | |
/** @type {number} */ | |
var fragment = $.ROTL(node, 5) + $.f(sel, ret, curr, value) + result + matches[sel] + state[j] & 4294967295; | |
result = value; | |
value = curr; | |
curr = $.ROTL(ret, 30); | |
/** @type {number} */ | |
ret = node; | |
/** @type {number} */ | |
node = fragment; | |
} | |
/** @type {number} */ | |
nodes = nodes + node & 4294967295; | |
/** @type {number} */ | |
next = next + ret & 4294967295; | |
/** @type {number} */ | |
prev = prev + curr & 4294967295; | |
/** @type {number} */ | |
newValue = newValue + value & 4294967295; | |
/** @type {number} */ | |
data = data + result & 4294967295; | |
} | |
return $.toHexStr(nodes) + $.toHexStr(next) + $.toHexStr(prev) + $.toHexStr(newValue) + $.toHexStr(data); | |
}; | |
/** | |
* @param {?} dataAndEvents | |
* @param {number} x | |
* @param {number} y | |
* @param {number} z | |
* @return {?} | |
*/ | |
$.f = function(dataAndEvents, x, y, z) { | |
switch(dataAndEvents) { | |
case 0: | |
return x & y ^ ~x & z; | |
case 1: | |
return x ^ y ^ z; | |
case 2: | |
return x & y ^ x & z ^ y & z; | |
case 3: | |
return x ^ y ^ z; | |
} | |
}; | |
/** | |
* @param {number} num | |
* @param {number} cnt | |
* @return {?} | |
*/ | |
$.ROTL = function(num, cnt) { | |
return num << cnt | num >>> 32 - cnt; | |
}; | |
/** | |
* @param {number} dataAndEvents | |
* @return {?} | |
*/ | |
$.toHexStr = function(dataAndEvents) { | |
var obj; | |
var spaceAfter = ""; | |
/** @type {number} */ | |
var n = 7; | |
for (;n >= 0;n--) { | |
/** @type {number} */ | |
obj = dataAndEvents >>> 4 * n & 15; | |
spaceAfter += obj.toString(16); | |
} | |
return spaceAfter; | |
}; | |
if (void 0 === String.prototype["utf8Encode"]) { | |
/** | |
* @return {?} | |
*/ | |
String.prototype["utf8Encode"] = function() { | |
return unescape(encodeURIComponent(this)); | |
}; | |
} | |
if (void 0 === String.prototype["utf8Decode"]) { | |
/** | |
* @return {?} | |
*/ | |
String.prototype["utf8Decode"] = function() { | |
try { | |
return decodeURIComponent(escape(this)); | |
} catch (e) { | |
return this; | |
} | |
}; | |
} | |
var c = window.btoa || function() { | |
var last = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; | |
return function(arg) { | |
var block; | |
var charCode; | |
/** @type {string} */ | |
var keyName = String(arg); | |
/** @type {number} */ | |
var i = 0; | |
var current = last; | |
var spaceAfter = ""; | |
for (;keyName.charAt(0 | i) || (current = "=", i % 1);spaceAfter += current.charAt(63 & block >> 8 - i % 1 * 8)) { | |
if ((charCode = keyName.charCodeAt(i += 0.75)) > 255) { | |
throw new Error("\'btoa\' failed: The string to be encoded contains characters outside of the Latin1 range."); | |
} | |
/** @type {number} */ | |
block = block << 8 | charCode; | |
} | |
return spaceAfter; | |
}; | |
}(); | |
var params = window.JSON || { | |
stringify : function() { | |
var _ = Object.prototype.toString; | |
var isUndefined = Array.isArray || function(obj) { | |
return "[object Array]" === _.call(obj); | |
}; | |
var a = { | |
'"' : "\\\\"", | |
"\\" : "\\\\", | |
"\b" : "\\b", | |
"\f" : "\\f", | |
"\n" : "\ | |
", | |
"\r" : "\\r", | |
"\t" : "\ " | |
}; | |
/** | |
* @param {?} prefix | |
* @return {?} | |
*/ | |
var buildParams = function(prefix) { | |
return a[prefix] || "\\u" + (prefix.charCodeAt(0) + 65536).toString(16).substr(1); | |
}; | |
/** @type {RegExp} */ | |
var r20 = /[\\"\u0000-\u001F\u2028\u2029]/g; | |
return function stringify(obj) { | |
if (null == obj) { | |
return "null"; | |
} | |
if ("number" == typeof obj) { | |
return isFinite(obj) ? obj.toString() : "null"; | |
} | |
if ("boolean" == typeof obj) { | |
return obj.toString(); | |
} | |
if ("object" == typeof obj) { | |
if ("function" == typeof obj.toJSON) { | |
return stringify(obj.toJSON()); | |
} | |
if (isUndefined(obj)) { | |
var prefix = "["; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < obj.length;i++) { | |
prefix += (i ? ", " : "") + stringify(obj[i]); | |
} | |
return prefix + "]"; | |
} | |
if ("[object Object]" === _.call(obj)) { | |
/** @type {Array} */ | |
var current = []; | |
var key; | |
for (key in obj) { | |
if (obj.hasOwnProperty(key)) { | |
current.push(stringify(key) + ": " + stringify(obj[key])); | |
} | |
} | |
return "{" + current.join(", ") + "}"; | |
} | |
} | |
return """ + obj.toString().replace(r20, buildParams) + """; | |
}; | |
}() | |
}; | |
/** @type {Window} */ | |
var obj = window; | |
var options = obj.document; | |
var data = obj.navigator; | |
var current = obj.screen; | |
/** @type {Array} */ | |
var ctx = ["Monaco", "MONO", "DB LCD Temp", "Party LET", "Academy Engraved LET", "Bradley Hand", "Chalkboard SE", "Marion", "Oriya Sangam MN", "Sinhala Sangam MN", "Apple Color Emoji", "Apple SD Gothic Neo", "Helvetica Neue", "Apple SD Gothic Neo", "AVENIR", "Noteworthy", "Gill Sans", "OPTIMA", "Ayuthaya", "Big Caslon", "Krungthep", "Chalkboard", "BlairMdITC TT", "Jazz LET", "Nadeem", "Bank Gothic", "OSAKA", "LUCIDA GRANDE", "Skia", "Mona Lisa Solid ITC TT", "Santa Fe LET", "Synchro LET", "PRINCETOWN LET", "Andale Mono", "Abadi MT Condensed Light", "Apple Chancery", "Geneva", "Segoe MDL2 Assets", "Segoe UI Historic", "Yu Gothic UI", "Sitka Banner", "Segoe UI Emoji", | |
"Leelawadee UI", "Vijaya", "Utsaah", "Shonar Bangla", "Aparajita", "Vani", "Kokila", "Sakkal Majalla", "Khmer UI", "Lao UI", "Euphemia", "Lucida Sans Typewriter", "Lucida Sans", "Lucida Sans Unicode", "Lucida Console", "Calibri", "Franklin Gothic", "MS Serif", "MS Sans Serif", "MV Boli", "MS PGothic", "Corbel", "Candara", "Cambria", "Segoe UI Light", "Segoe UI", "Malgun Gothic", "MS Gothic"]; | |
var result = {}; | |
var x = obj.bazadebezolkohpepadr; | |
var last = "02e3518781395631b1930610bff272d1"; | |
var tmp = "3bee70a1123e57b79d98b0eb0a0e48af"; | |
var spaceAfter = "973e141a1ef15b3992334067393317ea"; | |
/** @type {boolean} */ | |
var S = false; | |
/** @type {null} */ | |
var val1 = null; | |
/** @type {null} */ | |
var val2 = null; | |
try { | |
if (document.body) { | |
loop(); | |
} else { | |
if (options.addEventListener) { | |
options.addEventListener("DOMContentLoaded", loop, false); | |
options.addEventListener("load", loop, false); | |
} else { | |
if (options.attachEvent) { | |
options.attachEvent("DOMContentLoaded", loop); | |
options.attachEvent("onload", loop); | |
} | |
} | |
} | |
} catch (e) { | |
} | |
})(); |
Same problem.. How do you resolve it? Thanks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
$ ruby main.rb
'converter.rb:52:in
interpolate_parts_array': Couldn't find
var parts = [...]array. (RuntimeError) from /converter.rb:21:in
enlighten'from main.rb:5:in `
obfuscated.js downloaded from here is in same directory
sorry, not familiar with ruby. I used preinstall ruby in Mac