Skip to content

Instantly share code, notes, and snippets.

@HillLiu
Created May 8, 2015 10:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HillLiu/af1b6e632b9d083eef4b to your computer and use it in GitHub Desktop.
Save HillLiu/af1b6e632b9d083eef4b to your computer and use it in GitHub Desktop.
if (!window["googleNDT_"]) {
/** @type {number} */
window["googleNDT_"] = (new Date).getTime();
}
/** @type {number} */
window["_googCsaX"] = 4;
/** @type {number} */
window._googCsaRelSearch = 2631661;
/** @type {number} */
window.googleGws = 1;
(function() {
/**
* @param {?} str
* @return {?}
*/
function getComputedStyle(str) {
return parseFloat(str.replace("px", "")) || 0;
}
/**
* @param {string} obj
* @param {boolean} recurring
* @return {?}
*/
function setShortStyleProperty(obj, recurring) {
if ("string" == typeof obj) {
/** @type {(HTMLElement|null)} */
obj = document.getElementById(obj);
}
var current = document.defaultView || {};
var subtract = recurring ? obj.offsetHeight : obj.offsetWidth;
/** @type {Array} */
var tokens = recurring ? ["Top", "Bottom"] : ["Right", "Left"];
var resolveValues;
/** @type {Array} */
resolveValues = setFillAndStroke() ? ["margin"] : ["border", "margin", "padding"];
/** @type {number} */
var length = resolveValues.length;
/** @type {number} */
var nTokens = tokens.length;
if (current && current.getComputedStyle) {
var computedStyle = current.getComputedStyle(obj, false);
/** @type {number} */
current = 0;
for (;current < length;current++) {
/** @type {number} */
var ti = 0;
for (;ti < nTokens;ti++) {
subtract += getComputedStyle(computedStyle.getPropertyValue([resolveValues[current], tokens[ti].toLowerCase()].join("-")));
}
}
} else {
computedStyle = obj.currentStyle;
if (!setFillAndStroke()) {
/** @type {number} */
ti = 0;
for (;ti < nTokens;ti++) {
subtract += getComputedStyle(computedStyle[["border", tokens[ti], "Width"].join("")]);
}
}
/** @type {number} */
current = 0;
for (;current < length;current++) {
if ("border" != resolveValues[current]) {
/** @type {number} */
ti = 0;
for (;ti < nTokens;ti++) {
subtract += getComputedStyle(computedStyle[[resolveValues[current], tokens[ti]].join("")]);
}
}
}
}
return subtract;
}
/** @type {number} */
window.googleAltLoader = 4;
/** @type {string} */
var io = "3.0";
/** @type {string} */
var xformed = "8180cc552d14dcbcfafe6ec1162573e3bc809143";
/** @type {string} */
var offset = "ads";
/** @type {string} */
var SNAP_VERSION = "search";
/** @type {string} */
var firstByIndex = "//ajax.googleapis.com/ajax";
/** @type {string} */
var opts = "//www.google.com/uds";
/** @type {string} */
var name = "www.google.com";
var p;
var global = this;
/**
* @param {?} value
* @return {?}
*/
var isArray = function(value) {
/** @type {string} */
var $s = typeof value;
if ("object" == $s) {
if (value) {
if (value instanceof Array) {
return "array";
}
if (value instanceof Object) {
return $s;
}
/** @type {string} */
var isFunction = Object.prototype.toString.call(value);
if ("[object Window]" == isFunction) {
return "object";
}
if ("[object Array]" == isFunction || "number" == typeof value.length && ("undefined" != typeof value.splice && ("undefined" != typeof value.propertyIsEnumerable && !value.propertyIsEnumerable("splice")))) {
return "array";
}
if ("[object Function]" == isFunction || "undefined" != typeof value.call && ("undefined" != typeof value.propertyIsEnumerable && !value.propertyIsEnumerable("call"))) {
return "function";
}
} else {
return "null";
}
} else {
if ("function" == $s && "undefined" == typeof value.call) {
return "object";
}
}
return $s;
};
/**
* @param {string} depth
* @return {?}
*/
var spaces = function(depth) {
return null != depth;
};
/**
* @param {?} arg
* @return {?}
*/
var isObject = function(arg) {
return "string" == typeof arg;
};
/**
* @param {Function} fn
* @param {Object} obj
* @param {?} exports
* @return {?}
*/
var program = function(fn, obj, exports) {
return fn.call.apply(fn.bind, arguments);
};
/**
* @param {Function} fn
* @param {Object} obj
* @param {?} $var_args$$
* @return {?}
*/
var $goog$bindJs_$ = function(fn, obj, $var_args$$) {
if (!fn) {
throw Error();
}
if (2 < arguments.length) {
/** @type {Array.<?>} */
var args = Array.prototype.slice.call(arguments, 2);
return function() {
/** @type {Array.<?>} */
var newArgs = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(newArgs, args);
return fn.apply(obj, newArgs);
};
}
return function() {
return fn.apply(obj, arguments);
};
};
/**
* @param {Function} dataAndEvents
* @param {Object} obj
* @param {?} bytesRead
* @return {?}
*/
var wrapper = function(dataAndEvents, obj, bytesRead) {
/** @type {function (Function, Object, ?): ?} */
wrapper = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? program : $goog$bindJs_$;
return wrapper.apply(null, arguments);
};
/**
* @param {Function} fn
* @param {Function} name
* @return {?}
*/
var defer = function(fn, name) {
/** @type {Array.<?>} */
var args = Array.prototype.slice.call(arguments, 1);
return function() {
/** @type {Array.<?>} */
var newArgs = args.slice();
newArgs.push.apply(newArgs, arguments);
return fn.apply(this, newArgs);
};
};
/** @type {function (): number} */
var _randomVal = Date.now || function() {
return+new Date;
};
/**
* @param {Function} obj
* @param {Function} type
* @return {undefined}
*/
var isPlainObject = function(obj, type) {
/**
* @return {undefined}
*/
function Fn() {
}
Fn.prototype = type.prototype;
obj.pk = type.prototype;
obj.prototype = new Fn;
/** @type {Function} */
obj.prototype.constructor = obj;
/**
* @param {?} opt_context
* @param {?} method
* @param {?} dataAndEvents
* @return {?}
*/
obj.jk = function(opt_context, method, dataAndEvents) {
/** @type {Array} */
var args = Array(arguments.length - 2);
/** @type {number} */
var i = 2;
for (;i < arguments.length;i++) {
args[i - 2] = arguments[i];
}
return type.prototype[method].apply(opt_context, args);
};
};
/** @type {function (this:Function, (Object|null|undefined), ...[*]): Function} */
Function.prototype.bind = Function.prototype.bind || function(walkers, dataAndEvents) {
if (1 < arguments.length) {
/** @type {Array.<?>} */
var args = Array.prototype.slice.call(arguments, 1);
args.unshift(this, walkers);
return wrapper.apply(null, args);
}
return wrapper(this, walkers);
};
/** @type {Array} */
var codeSegments = ["iPhone OS 5_", "iPhone OS 4_", "SC-02C Build/GINGERBREAD"];
/** @type {string} */
var ua = window.navigator ? window.navigator.userAgent : "";
/**
* @return {?}
*/
var createTextNode = function() {
return 5 == rgbToHex(newRed) || (6 == rgbToHex(newRed) || 7 == rgbToHex(newRed));
};
/** @type {RegExp} */
var newRed = /MSIE\s+(\d+)\./;
/** @type {RegExp} */
var r = /Opera\/.*Version\/(\d+)\./;
/** @type {RegExp} */
var elems = /Firefox\/(\d+)\./;
/** @type {RegExp} */
var angle = /Version\/(\d+)\..*Safari/;
/**
* @param {Object} r
* @return {?}
*/
var rgbToHex = function(r) {
r = (r = r.exec(ua)) ? r[1] : "";
return 0 < r.length && (r = parseInt(r, 10)) ? r : null;
};
/**
* @return {?}
*/
var endsWith = function() {
/** @type {number} */
var i = 0;
for (;i < codeSegments.length;i++) {
if (-1 != ua.indexOf(codeSegments[i])) {
return true;
}
}
return false;
};
/**
* @param {string} text
* @return {?}
*/
var trim = function(text) {
/** @type {string} */
text = String(text);
if (/^\s*$/.test(text) ? 0 : /^[\],:{}\s\u2028\u2029]*$/.test(text.replace(/\\["\\\/bfnrtu]/g, "@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, ""))) {
try {
return eval("(" + text + ")");
} catch (b) {
}
}
throw Error("Invalid JSON string: " + text);
};
/**
* @return {undefined}
*/
var ke = function() {
this.zd = void 0;
};
/**
* @param {?} options
* @param {Object} value
* @param {Array} ret
* @return {undefined}
*/
var walk = function(options, value, ret) {
if (null == value) {
ret.push("null");
} else {
if ("object" == typeof value) {
if ("array" == isArray(value)) {
/** @type {Object} */
var text = value;
value = text.length;
ret.push("[");
/** @type {string} */
var c = "";
/** @type {number} */
var j = 0;
for (;j < value;j++) {
ret.push(c);
c = text[j];
walk(options, options.zd ? options.zd.call(text, String(j), c) : c, ret);
/** @type {string} */
c = ",";
}
ret.push("]");
return;
}
if (value instanceof String || (value instanceof Number || value instanceof Boolean)) {
/** @type {*} */
value = value.valueOf();
} else {
ret.push("{");
/** @type {string} */
j = "";
for (text in value) {
if (Object.prototype.hasOwnProperty.call(value, text)) {
c = value[text];
if ("function" != typeof c) {
ret.push(j);
encode(text, ret);
ret.push(":");
walk(options, options.zd ? options.zd.call(value, text, c) : c, ret);
/** @type {string} */
j = ",";
}
}
}
ret.push("}");
return;
}
}
switch(typeof value) {
case "string":
encode(value, ret);
break;
case "number":
ret.push(isFinite(value) && !isNaN(value) ? value : "null");
break;
case "boolean":
ret.push(value);
break;
case "function":
break;
default:
throw Error("Unknown type: " + typeof value);;
}
}
};
var flags = {
'"' : '\\"',
"\\" : "\\\\",
"/" : "\\/",
"\b" : "\\b",
"\f" : "\\f",
"\n" : "\\n",
"\r" : "\\r",
"\t" : "\\t",
"\x0B" : "\\u000b"
};
/** @type {RegExp} */
var nbspRegExp = /\uffff/.test("\uffff") ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g;
/**
* @param {string} text
* @param {Array} string
* @return {undefined}
*/
var encode = function(text, string) {
string.push('"', text.replace(nbspRegExp, function(key) {
var value = flags[key];
if (!value) {
/** @type {string} */
value = "\\u" + (key.charCodeAt(0) | 65536).toString(16).substr(1);
/** @type {string} */
flags[key] = value;
}
return value;
}), '"');
};
/**
* @param {string} path
* @param {Object} imageElement
* @return {undefined}
*/
var loadImage = function(path, imageElement) {
var source = imageElement || new Image;
source.onload = source.onerror = executeScript(source);
/** @type {string} */
source.src = path;
};
/**
* @param {Array} command
* @return {undefined}
*/
var execCommand = function(command) {
/** @type {number} */
var i = 0;
for (;i < command.length;i++) {
loadImage(command[i]);
}
};
/**
* @param {Node} source
* @return {?}
*/
var executeScript = function(source) {
return function() {
/** @type {null} */
source.onload = source.onerror = null;
};
};
/**
* @param {?} n
* @param {?} num
* @return {undefined}
*/
var plural = function(n, num) {
/** @type {number} */
this.qc = Math.ceil(n);
/** @type {number} */
this.oc = Math.floor(num);
};
/**
* @return {?}
*/
plural.prototype.da = function() {
return this.qc + "px - " + this.oc + "px";
};
/**
* @param {?} n
* @return {?}
*/
plural.prototype.S = function(n) {
/** @type {number} */
n = parseInt(n, 10);
return isNaN(n) ? null : Math.max(this.qc, Math.min(this.oc, n));
};
/**
* @param {string} c
* @return {?}
*/
plural.prototype.ca = function(c) {
return this.S(c);
};
/** @type {string} */
var url_or_hash = (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/uds";
/** @type {string} */
var parameter = (window._googCsaAlwaysHttps ? "https:" : "") + "//ads.google.com/uds";
/** @type {string} */
var reqUrl = (window._googCsaAlwaysHttps ? "https:" : "") + "//afs.googlesyndication.com/uds";
/**
* @return {?}
*/
var onload = function() {
if ("undefined" != typeof gwsHost_) {
return gwsHost_;
}
if ("undefined" != typeof name) {
return(window._googCsaAlwaysHttps ? "https://" : "//") + name;
}
/** @type {string} */
var url = "";
if ("undefined" != typeof opts) {
/** @type {string} */
url = opts;
} else {
if (window.google) {
if (window.google.loader) {
if (window.google.loader.ServiceBase) {
url = window.google.loader.ServiceBase;
}
}
}
}
if (1 == window.googleSynd) {
if (url == reqUrl) {
/** @type {string} */
url = parameter;
}
}
/** @type {string} */
url = url ? url : url_or_hash;
return url.match(/(.+)\/uds$/)[1];
};
/**
* @param {?} standalone
* @param {?} version
* @param {?} encoding
* @param {?} vn
* @param {?} dataAndEvents
* @return {undefined}
*/
var XMLDeclaration = function(standalone, version, encoding, vn, dataAndEvents) {
this.fj = standalone;
this.lj = version;
this.Ui = encoding;
this.version = vn;
this.Ie = dataAndEvents;
};
onload();
var oSpace = {};
/**
* @param {?} opt_attributes
* @param {string} str
* @return {?}
*/
XMLDeclaration.prototype.log = function(opt_attributes, str) {
var n;
if (true === window.IS_GOOGLE_AFS_IFRAME_ && window.parent == window) {
/** @type {boolean} */
n = false;
} else {
/** @type {string} */
n = (window.google && (window.google.loader && window.google.loader.GoogleApisBase) ? window.google.loader.GoogleApisBase : firstByIndex ? firstByIndex : (window._googCsaAlwaysHttps ? "https:" : "") + "//ajax.googleapis.com/ajax") + "/services/js/error";
var data = {};
/** @type {string} */
data.mn = this.fj + "." + this.lj;
data.vh = this.Ui;
data.v = this.version;
data.em = opt_attributes.message;
/** @type {string} */
data.cem = str;
/** @type {Array} */
var tagNameArr = [];
var name;
for (name in data) {
if (data.hasOwnProperty(name)) {
if (data[name]) {
tagNameArr.push([name, encodeURIComponent(data[name])].join("="));
}
}
}
/** @type {Element} */
data = document.createElement("img");
/** @type {string} */
n = n + "?" + tagNameArr.join("&");
if (oSpace[n]) {
/** @type {boolean} */
n = false;
} else {
/** @type {string} */
data.src = [n, "&nc", (new Date).getTime()].join("");
/** @type {boolean} */
n = oSpace[n] = true;
}
}
return n;
};
/**
* @param {Function} callback
* @param {string} obj
* @return {?}
*/
var _handle = function(callback, obj) {
var options = util;
return function() {
/** @type {Array.<?>} */
var err = Array.prototype.slice.call(arguments, 0) || [];
try {
return callback.apply(this, err);
} catch (backtrace) {
err = backtrace;
if ("string" == (typeof err).toLowerCase()) {
err = {
message : err
};
}
var data = err.message;
if (obj) {
if (-1 == data.indexOf(options.Ie)) {
options.log(err, obj);
}
}
throw-1 != data.indexOf(options.Ie) ? data : options.Ie + data;
}
};
};
/**
* @param {string} fn
* @return {?}
*/
var removeListener = function(fn) {
return "google.ads.search.Ads: " + fn;
};
/** @type {string} */
var expires = "unknown";
if (window.google && window.google.ads) {
var err = window.google.ads;
if (err && err.LoadArgs) {
var results = err.LoadArgs.match(/file=([^&]*)/);
expires = results && results[1] ? results[1] : "";
} else {
/** @type {string} */
expires = "";
}
} else {
if ("undefined" != typeof offset) {
/** @type {string} */
expires = offset;
}
}
/** @type {string} */
var version = "unknown";
if (window.google && window.google.ads) {
var er = window.google.ads;
if (er && er.LoadArgs) {
var arr = er.LoadArgs.match(/packages=([^&]*)/);
version = arr && arr[1] ? arr[1] : "";
} else {
/** @type {string} */
version = "";
}
} else {
if ("undefined" != typeof SNAP_VERSION) {
/** @type {string} */
version = SNAP_VERSION;
}
}
/** @type {string} */
var reason_start = "unknown";
if (window.google && window.google.ads) {
reason_start = window.google.ads.JSHash;
} else {
if ("undefined" != typeof xformed) {
/** @type {string} */
reason_start = xformed;
}
}
/** @type {string} */
var play_context = "unknown";
if (window.google && window.google.ads) {
play_context = window.google.ads.Version;
} else {
if ("undefined" != typeof io) {
/** @type {string} */
play_context = io;
}
}
var util = new XMLDeclaration(expires, version, reason_start, play_context, "google.ads.search.Ads: ");
/**
* @param {Function} obj
* @param {string} value
* @return {?}
*/
var cb = function(obj, value) {
return value ? _handle(obj, value) : _handle(obj);
};
/**
* @param {string} match
* @return {undefined}
*/
var token = function(match) {
/** @type {Array} */
this.Fd = [];
/** @type {Array} */
this.ce = [];
match = match.split("#");
this.gg = match[0];
/** @type {string} */
this.ad = 1 < match.length ? decodeURI(match[1]) : "";
/** @type {number} */
this.maxLength = 1999;
};
/**
* @param {?} object
* @param {string} data
* @param {number} msg
* @param {boolean} dataAndEvents
* @return {undefined}
*/
var callback = function(object, data, msg, dataAndEvents) {
if (msg || (0 === msg || false === msg)) {
(dataAndEvents ? object.Fd : object.ce).push([encodeURIComponent(data), encodeURIComponent("" + msg)]);
}
};
/**
* @param {?} options
* @return {?}
*/
var require = function(options) {
var res = options.gg;
/** @type {boolean} */
var c = -1 != options.gg.indexOf("?");
var i;
/** @type {number} */
i = 0;
for (;i < options.ce.length;i++) {
var number = (c ? "&" : "?") + options.ce[i].join("=");
if (number.length + res.length <= options.maxLength) {
res += number;
/** @type {boolean} */
c = true;
}
}
/** @type {number} */
i = 0;
for (;i < options.Fd.length;i++) {
if (options.Fd[i][0].length + 3 + res.length <= options.maxLength) {
res += (c ? "&" : "?") + options.Fd[i].join("=");
/** @type {boolean} */
c = true;
}
}
res = res.substring(0, options.maxLength);
res = res.replace(/%\w?$/, "");
if (options.ad) {
res += "#" + encodeURI(options.ad);
}
return res;
};
/** @type {string} */
var protocol = (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com";
/** @type {RegExp} */
var ignore = /^https?:\/\//;
/**
* @param {string} path
* @return {?}
*/
var resolveModule = function(path) {
return ignore.test(path) ? path : "/" == path.charAt(0) ? protocol + path : protocol + "/" + path;
};
/** @type {RegExp} */
var re = /\/aclk\?.*/;
var sorted = {
ads : 0,
plas : 1,
singleProduct : 2,
relatedsearch : 3
};
/** @type {string} */
var ret = (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/csi?s=csa&v=3&action=";
/** @type {boolean} */
var hasFocus = 42 == Math.floor(100 * Math.random());
var items = {};
/**
* @param {string} token
* @param {number} execAsap
* @return {undefined}
*/
var handler = function(token, execAsap) {
this.Zg = execAsap || (new Date).getTime();
/** @type {string} */
this.action = token;
};
/**
* @param {string} dataAndEvents
* @return {?}
*/
handler.prototype.clone = function(dataAndEvents) {
return new handler(dataAndEvents, this.Zg);
};
/**
* @param {Object} data
* @param {string} x
* @return {undefined}
*/
var process = function(data, x) {
if (delta) {
if (hasFocus) {
items[data.action] = items[data.action] || [];
items[data.action].push([x, (new Date).getTime() - data.Zg].join("."));
}
}
};
/**
* @param {string} name
* @return {undefined}
*/
var removeNode = function(name) {
var props = delta;
props.action = props.action ? props.action + ("," + name) : name;
};
/**
* @return {undefined}
*/
var restore = function() {
if (delta && (hasFocus && "//afs.googlesyndication.com" != onload())) {
var tests = items;
items = {};
var testName;
for (testName in tests) {
if (tests.hasOwnProperty(testName)) {
var test = tests[testName];
if (test) {
if (0 < test.length) {
loadImage([ret, testName, "&rt=", test.join(",")].join(""));
}
}
}
}
}
};
/** @type {null} */
var delta = null;
if (window._googCsa && window._googCsa.t) {
delta = new handler("ppla", window._googCsa.t);
} else {
if (window.googleNDT_ && !window.googleLT_) {
delta = new handler("pplnd", window.googleNDT_);
} else {
if (window.googleLT_) {
delta = new handler("pplal", window.googleLT_);
}
}
}
var arr2 = {
"google-hotels" : true
};
var nb = window.caps_ && window.caps_.largeFonts;
/** @type {number} */
var threshold = !window.IS_GOOGLE_AFS_IFRAME_ || nb ? 8 : 6;
/** @type {number} */
var pageCount = !window.IS_GOOGLE_AFS_IFRAME_ || nb ? 24 : 16;
var ELEMENT_NODE = new plural(8, pageCount);
/**
* @param {Object} value
* @param {string} sel
* @return {?}
*/
var matches = function(value, sel) {
var match = value.a.S(sel);
if (null == match && !value.K) {
throw removeListener(value.key + " has an invalid value. Valid input values: [" + value.a.da() + "].");
}
return match;
};
/**
* @param {Object} obj
* @param {Array} a
* @return {undefined}
*/
var win = function(obj, a) {
/** @type {number} */
var i = 0;
for (;i < a.length;i++) {
obj[a[i].key] = a[i];
}
};
/**
* @return {?}
*/
var detect = function() {
var suiteView = randomName();
var dateSQL = any();
return isUndefined(suiteView, function(dataAndEvents, word) {
return dateSQL.hasOwnProperty(word);
});
};
/**
* @param {?} value
* @return {?}
*/
var isFunction = function(value) {
/** @type {boolean} */
var b = 8 == rgbToHex(newRed);
var hex = rgbToHex(r);
var isArray = rgbToHex(elems);
var c = rgbToHex(angle);
return!!(obj.S(value.waitForAds) && (!b && ((null == hex || 11 < hex) && ((null == isArray || 3 < isArray) && (null == c || 4 < c)))));
};
/**
* @param {string} x
* @return {?}
*/
var round = function(x) {
return(x = x.match(/slave-(\d+)-/)) ? parseInt(x[1], 10) + 1 : 1;
};
/**
* @param {string} body
* @param {string} arg
* @param {Object} data
* @return {?}
*/
var send = function(body, arg, data) {
/** @type {Array} */
var _results = [];
/** @type {number} */
var root = 0;
var item;
for (;item = data[root];root++) {
item = new token(item);
callback(item, body, arg);
_results.push(require(item));
}
return _results;
};
/**
* @param {Array} text
* @return {?}
*/
var generate = function(text) {
/** @type {Array} */
var _results = [];
/** @type {number} */
var currentIndex = 0;
for (;currentIndex < text.length;currentIndex++) {
var view = new token(text[currentIndex]);
callback(view, "nc", [Math.round(9E6 * Math.random()), (new Date).getTime()].join(""));
_results.push(require(view));
}
return _results;
};
/**
* @param {Object} c
* @return {?}
*/
var tmpl = function(c) {
var i = c.pubId;
return/^pub-.*/.test(i) || ("gcsc" in c || i in arr2);
};
/** @type {null} */
var readyList = null;
/** @type {null} */
var all = null;
/**
* @param {string} from_instance
* @return {undefined}
*/
var copy = function(from_instance) {
/** @type {string} */
this.sessionId = from_instance;
this.state = {};
/** @type {null} */
this.Ka = null;
/** @type {boolean} */
this.P = false;
};
copy = cb(copy, "fsI");
p = copy.prototype;
/**
* @param {string} k
* @return {?}
*/
p.se = function(k) {
return this.state.hasOwnProperty(k) ? this.state[k].value : null;
};
p.se = cb(copy.prototype.se, "fsiGS");
/**
* @param {string} id
* @param {string} isXML
* @return {undefined}
*/
p.Dd = function(id, isXML) {
if (!this.state.hasOwnProperty(id)) {
this.state[id] = new e;
}
this.ub(id, isXML);
};
p.Dd = cb(copy.prototype.Dd, "fsiSS");
/**
* @param {string} k
* @return {?}
*/
p.le = function(k) {
return this.state[k].value;
};
p.le = cb(copy.prototype.le, "fsiGI");
/**
* @param {string} id
* @param {string} tag
* @return {undefined}
*/
p.Lb = function(id, tag) {
if (!this.state.hasOwnProperty(id)) {
this.state[id] = new node;
}
this.ub(id, tag);
};
p.Lb = cb(copy.prototype.Lb, "fsiSI");
/**
* @param {string} key
* @param {boolean} deepDataAndEvents
* @return {undefined}
*/
p.Kb = function(key, deepDataAndEvents) {
if (!this.state.hasOwnProperty(key)) {
this.state[key] = new C;
}
this.ub(key, deepDataAndEvents);
};
p.Kb = cb(copy.prototype.Kb, "fsiSB");
/**
* @param {string} id
* @param {Object} n
* @param {Function} obj
* @return {undefined}
*/
p.aa = function(id, n, obj) {
if (null == readyList) {
acc();
}
if (readyList != scope || n != e) {
if (!this.state.hasOwnProperty(id)) {
this.state[id] = new n;
}
n = this.state[id];
n.bb = obj || null;
if (n.bb) {
if (null != n.value) {
n.bb(this, this.sessionId, id, n.value);
}
}
}
};
p.aa = cb(copy.prototype.aa, "fsiSTC");
/**
* @return {?}
*/
p.Fb = function() {
return!!(this.Ka && (this.Ka.parentNode && this.Ka.contentWindow));
};
p.Fb = cb(copy.prototype.Fb, "fsiHVI");
/**
* @param {string} id
* @param {string} value
* @return {undefined}
*/
p.ub = function(id, value) {
var item = this.state[id];
value = item.xa(id, value);
if (null != value) {
if (item.value != value) {
item = this.state[id];
/** @type {string} */
item.value = value;
/** @type {boolean} */
this.P = item.P = true;
}
}
};
p.ub = cb(copy.prototype.ub, "fsiS");
/**
* @return {undefined}
*/
p.ud = function() {
if (this.P) {
var k;
for (k in this.state) {
if (this.state.hasOwnProperty(k)) {
var r = this.state[k];
if (r.P) {
/** @type {boolean} */
r.P = false;
if (r.bb) {
r.bb(this, this.sessionId, k, r.value);
}
}
}
}
/** @type {boolean} */
this.P = false;
}
};
p.ud = cb(copy.prototype.ud, "fsiNC");
/**
* @param {boolean} recurring
* @return {?}
*/
p.fd = function(recurring) {
/** @type {Array} */
var tagNameArr = ["FSXDC"];
var key;
for (key in this.state) {
if (this.state.hasOwnProperty(key)) {
var current = this.state[key];
if (recurring || current.P) {
var querystring = current.Ia();
tagNameArr.push([encodeURIComponent(key), current.Id, querystring].join(":"));
/** @type {boolean} */
current.P = false;
}
}
}
/** @type {boolean} */
this.P = false;
return tagNameArr.join(",");
};
p.fd = cb(copy.prototype.fd, "fsiGCM");
/**
* @param {(Array|string)} path
* @return {undefined}
*/
p.cd = function(path) {
if (path && (path.split && (path = path.split(","), "FSXDC" == path[0]))) {
/** @type {number} */
var i = 1;
for (;i < path.length;i++) {
var m = path[i].split(":");
/** @type {string} */
var key = decodeURIComponent(m[0]);
if (!this.state.hasOwnProperty(key)) {
this.state[key] = new (tmp[parseInt(m[1], 10)]);
}
m = this.state[key].Fa(m[2]);
this.ub(key, m);
}
this.ud();
}
};
p.cd = cb(copy.prototype.cd, "fsiECM");
/**
* @param {string} x
* @param {string} str
* @return {undefined}
*/
var out = function(x, str) {
util.log({
message : x
}, str);
};
out = cb(out, "fsLE");
/**
* @return {undefined}
*/
var C = function() {
/** @type {null} */
this.bb = this.value = null;
/** @type {boolean} */
this.P = false;
};
C = cb(C, "fsB");
p = C.prototype;
/** @type {number} */
p.Id = 0;
/** @type {number} */
p.Fc = 1;
/**
* @param {string} timer
* @param {string} putativeSpy
* @return {?}
*/
p.xa = function(timer, putativeSpy) {
return!!putativeSpy;
};
p.xa = cb(C.prototype.xa, "fsbGVV");
/**
* @return {?}
*/
p.yb = function() {
return this.value ? 1 : 0;
};
p.yb = cb(C.prototype.yb, "fsbTB");
/**
* @param {number} dataAndEvents
* @return {?}
*/
p.Ib = function(dataAndEvents) {
return!!dataAndEvents;
};
p.Ib = cb(C.prototype.Ib, "fsbPFB");
/**
* @return {?}
*/
p.Ia = function() {
return this.value ? "t" : "f";
};
p.Ia = cb(C.prototype.Ia, "fsbTES");
/**
* @param {string} reset
* @return {?}
*/
p.Fa = function(reset) {
return "t" == reset;
};
p.Fa = cb(C.prototype.Fa, "fsbPES");
/**
* @return {undefined}
*/
var node = function() {
/** @type {null} */
this.bb = this.value = null;
/** @type {boolean} */
this.P = false;
};
node = cb(node, "fsSI");
p = node.prototype;
/** @type {number} */
p.Id = 1;
/** @type {number} */
p.Fc = 14;
/** @type {number} */
p.xf = (1 << node.prototype.Fc) - 1;
/**
* @param {string} timer
* @param {string} b
* @return {?}
*/
p.xa = function(timer, b) {
/** @type {number} */
var num2 = parseInt(b, 10);
if (isNaN(num2)) {
return out("Tried to set int value to a non-number ( " + timer + " = " + b + ")", "sIGVV"), null;
}
if (num2 > this.xf) {
out("Tried to set int value to a number too large ( " + timer + " = " + b + ")", "sIGVV");
num2 = this.xf;
}
if (0 > num2) {
out("Tried to set int value to a number too small ( " + timer + " = " + b + ")", "sIGVV");
/** @type {number} */
num2 = 0;
}
return num2;
};
p.xa = cb(node.prototype.xa, "fssiGVV");
/**
* @return {?}
*/
p.yb = function() {
return this.value || 0;
};
p.yb = cb(node.prototype.yb, "fssiTB");
/**
* @param {number} dataAndEvents
* @return {?}
*/
p.Ib = function(dataAndEvents) {
return dataAndEvents;
};
p.Ib = cb(node.prototype.Ib, "fssiPFB");
/**
* @return {?}
*/
p.Ia = function() {
return this.value + "";
};
p.Ia = cb(node.prototype.Ia, "fssiTES");
/**
* @param {?} m1
* @return {?}
*/
p.Fa = function(m1) {
return parseInt(m1, 10);
};
p.Fa = cb(node.prototype.Fa, "fssiPES");
/**
* @return {undefined}
*/
var e = function() {
/** @type {null} */
this.bb = this.value = null;
/** @type {boolean} */
this.P = false;
};
e = cb(e, "fsES");
p = e.prototype;
/** @type {number} */
p.Id = 2;
/**
* @param {string} timer
* @param {boolean} right
* @return {?}
*/
p.xa = function(timer, right) {
return right = right ? right.toString() : "";
};
p.xa = cb(e.prototype.xa, "fsesGVV");
/**
* @return {?}
*/
p.Ia = function() {
return this.value ? encodeURIComponent(this.value) : "";
};
p.Ia = cb(e.prototype.Ia, "fsesTES");
/**
* @param {?} part
* @return {?}
*/
p.Fa = function(part) {
return decodeURIComponent(part);
};
p.Fa = cb(e.prototype.Fa, "fsesPES");
/** @type {Array} */
var tmp = [C, node, e];
/**
* @param {Object} obj
* @return {?}
*/
var _ = function(obj) {
if (null == readyList) {
acc();
}
return readyList.Ha(obj);
};
_ = cb(_, "fsSC");
/**
* @param {Object} obj
* @param {Function} deepDataAndEvents
* @return {undefined}
*/
var formatted = function(obj, deepDataAndEvents) {
if (null == readyList) {
acc();
}
if (null == all) {
all = {};
errors();
}
/** @type {Function} */
obj.Ka = deepDataAndEvents;
/** @type {Object} */
all[obj.sessionId] = obj;
};
formatted = cb(formatted, "fsLFC");
/**
* @return {undefined}
*/
var errors = function() {
window.setInterval(foo, 500);
readyList.za();
};
errors = cb(errors, "fsIL");
/**
* @return {undefined}
*/
var foo = function() {
var id;
for (id in all) {
if (all.hasOwnProperty(id)) {
var target = all[id];
if (!target.Fb()) {
/** @type {null} */
target.Ka = null;
delete all[id];
}
}
}
};
foo = cb(foo, "fsCDI");
/**
* @return {undefined}
*/
var acc = function() {
that.Ee();
/** @type {({Cd: function (string): undefined, Ha: ?, Ud: function (HTMLElement): undefined, ba: function (): undefined, cf: function (Object, string, Text): undefined, qe: function (Object, string): ?, uf: string, za: function (): undefined}|{Ee: function (): undefined, Ha: ?, Qe: (Document|Window), ba: function (Event): undefined, za: function (): undefined}|{Ha: ?, Zd: function (string, string): undefined, ba: function (): undefined, be: function (Node, number): undefined, me: function (?): ?, za: function (): undefined})} */
readyList = that.Qe ? that : createTextNode() ? scope : _this;
};
acc = cb(acc, "fsLT");
var scope = {
uf : "exists",
/**
* @param {Object} parent
* @return {?}
*/
Ha : function(parent) {
if (!parent.P) {
return true;
}
var k;
for (k in parent.state) {
if (parent.state.hasOwnProperty(k)) {
var p = parent.state[k];
if (p.P && p.yb) {
var pl = p.Fc;
var b = p.yb();
/** @type {string} */
var name = k + ":";
scope.Cd(name + scope.uf);
/** @type {number} */
var extension = 0;
/** @type {number} */
var c = 1;
for (;extension < pl;extension++, c <<= 1) {
/** @type {string} */
var newName = name + extension;
if (b & c) {
scope.Cd(newName);
} else {
scope.Ud(newName);
}
}
/** @type {boolean} */
p.P = false;
}
}
}
/** @type {boolean} */
parent.P = false;
return true;
}
};
scope.Ha = cb(scope.Ha, "fsnbtSC");
/**
* @return {undefined}
*/
scope.za = function() {
window.setInterval(scope.ba, 50);
};
scope.za = cb(scope.za, "fsnbtIL");
/**
* @return {undefined}
*/
scope.ba = function() {
var id;
for (id in all) {
if (all.hasOwnProperty(id)) {
var e = all[id];
if (e.Fb()) {
var udataCur = e.Ka.contentWindow;
var i;
for (i in e.state) {
if (e.state.hasOwnProperty(i)) {
scope.cf(e, i, udataCur);
}
}
e.ud();
}
}
}
};
scope.ba = cb(scope.ba, "fsnbtEC");
/**
* @param {Object} e
* @param {string} k
* @param {Text} value
* @return {undefined}
*/
scope.cf = function(e, k, value) {
/** @type {function (Object, string): ?} */
var lookupIterator = scope.qe;
/** @type {string} */
var startPage = k + ":";
if (lookupIterator(value, startPage + scope.uf)) {
var input = e.state[k];
var il = input.Fc;
/** @type {number} */
var node = 0;
/** @type {number} */
var i = 0;
/** @type {number} */
var n = 1;
for (;i < il;i++, n <<= 1) {
var iterator = lookupIterator(value, startPage + i);
if (null === iterator) {
return;
}
if (iterator) {
node += n;
}
}
value = input.Ib(node);
e.ub(k, value);
}
};
scope.cf = cb(scope.cf, "fsnbtSV");
/**
* @param {Object} obj
* @param {string} key
* @return {?}
*/
scope.qe = function(obj, key) {
/** @type {null} */
var rv = null;
try {
/** @type {boolean} */
rv = key in obj;
} catch (d) {
out(key, "fsnbtGSB2");
}
return rv;
};
scope.qe = cb(scope.qe, "fsnbtGSB");
/**
* @param {string} name
* @return {undefined}
*/
scope.Cd = function(name) {
if (!document.getElementById(name)) {
/** @type {Element} */
var img = document.createElement("img");
/** @type {string} */
img.name = name;
/** @type {string} */
img.id = name;
/** @type {number} */
img.height = 0;
/** @type {number} */
img.width = 0;
document.body.appendChild(img);
}
};
scope.Cd = cb(scope.Cd, "fsnbtSSB");
/**
* @param {HTMLElement} table
* @return {undefined}
*/
scope.Ud = function(table) {
if (table = document.getElementById(table)) {
table.parentNode.removeChild(table);
}
};
scope.Ud = cb(scope.Ud, "fsnbtCSB");
var that = {
/**
* @param {Object} stream
* @return {?}
*/
Ha : function(stream) {
if (stream.P) {
if (!that.Qe) {
return false;
}
that.Qe.postMessage(stream.fd(false), "*");
}
return true;
}
};
that.Ha = cb(that.Ha, "fspmtSC");
/**
* @return {undefined}
*/
that.za = function() {
if (window.attachEvent) {
window.attachEvent("onmessage", that.ba);
} else {
if (window.addEventListener) {
window.addEventListener("message", that.ba, false);
}
}
};
that.za = cb(that.za, "fspmtIL");
/**
* @param {Event} e
* @return {undefined}
*/
that.ba = function(e) {
if (e = e ? e : window.event) {
var id;
for (id in all) {
if (all.hasOwnProperty(id)) {
var t = all[id];
if (t.Fb() && e.source == t.Ka.contentWindow) {
t.cd(e.data);
break;
}
}
}
}
};
that.ba = cb(that.ba, "fspmtEC");
/**
* @return {undefined}
*/
that.Ee = function() {
/** @type {Window} */
var win = window.parent;
try {
/** @type {(Document|Window|null)} */
var root = win.postMessage ? win : win.document.postMessage ? win.document : null;
if (root) {
if (root.postMessage) {
/** @type {(Document|Window)} */
that.Qe = root;
}
}
} catch (c) {
}
};
that.Ee = cb(that.Ee, "fspmtLPM");
var _this = {
/**
* @param {Object} stream
* @return {?}
*/
Ha : function(stream) {
if (stream.P) {
if (!window.relay) {
return false;
}
_this.Zd(window.relay, stream.fd(true));
}
return true;
}
};
_this.Ha = cb(_this.Ha, "fsnitSC");
/**
* @return {undefined}
*/
_this.za = function() {
window.setInterval(_this.ba, 5);
};
_this.za = cb(_this.za, "fsnitIL");
/**
* @return {undefined}
*/
_this.ba = function() {
var id;
for (id in all) {
if (all.hasOwnProperty(id)) {
var e = all[id];
var start = _this.me(e);
if (start) {
e.cd(start);
}
}
}
};
_this.ba = cb(_this.ba, "fsnitEC");
/**
* @param {?} e
* @return {?}
*/
_this.me = function(e) {
try {
if (e.Fb()) {
var win = e.Ka.contentWindow;
if (win.frames && (win.frames.length && (0 < win.frames.length && win.frames[win.frames.length - 1].name))) {
return win.frames[win.frames.length - 1].name;
}
}
} catch (c) {
}
return null;
};
_this.me = cb(_this.me, "fsnitGM");
/**
* @param {string} uri
* @param {string} name
* @return {undefined}
*/
_this.Zd = function(uri, name) {
/** @type {Element} */
var iframe = document.createElement("iframe");
/** @type {string} */
iframe.style.position = "absolute";
/** @type {string} */
iframe.style.top = "0";
/** @type {string} */
iframe.style.left = "0";
/** @type {string} */
iframe.style.display = "none";
/** @type {string} */
iframe.width = "0";
/** @type {string} */
iframe.height = "0";
/** @type {string} */
iframe.src = uri + "crossdomain.xml";
/** @type {string} */
iframe.name = name;
/**
* @return {undefined}
*/
iframe.onload = function() {
_this.be(this, 100);
};
document.body.appendChild(iframe);
};
_this.Zd = cb(_this.Zd, "fsnitCRI");
/**
* @param {Node} t
* @param {number} milliseconds
* @return {undefined}
*/
_this.be = function(t, milliseconds) {
window.setTimeout(function() {
t.parentNode.removeChild(t);
}, milliseconds);
};
_this.be = cb(_this.be, "fsnitDMI");
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Object} done
* @return {?}
*/
var scale = function(done) {
return function(id, dataAndEvents) {
return "undefined" == typeof done[id] ? dataAndEvents || null : done[id];
};
};
/**
* @param {Object} arg
* @return {?}
*/
var _filter = function(arg) {
return function(x, elt) {
if (arg.hasOwnProperty(x)) {
var codeSegments = arg[x].split(",");
/** @type {number} */
var i = 0;
for (;i < codeSegments.length;i++) {
if (codeSegments[i] == elt) {
return true;
}
}
return false;
}
return true;
};
};
/**
* @param {string} data
* @param {Object} b
* @return {?}
*/
var equals = function(data, b) {
return!b.clickBg && !b.mclickBg || (!data.clickableBackgrounds || b.isHighendMobile && !b.mclickBg) ? false : true;
};
/**
* @param {Object} expr
* @return {?}
*/
var eval = function(expr) {
return 6 == rgbToHex(newRed) ? true : "_blank" == (expr.linkTarget ? expr.linkTarget : "_top");
};
/**
* @param {Object} actual
* @param {Function} message
* @return {?}
*/
var equal = function(actual, message) {
return 1 == (true === actual.heightConstrained && !!message.mayLimitHeight);
};
}
if (window.IS_GOOGLE_AFS_IFRAME_) {
/** @type {number} */
var Rb = 1;
/**
* @return {?}
*/
var min = function() {
return "e" + Rb++;
};
/**
* @param {?} dataAndEvents
* @return {undefined}
*/
var TemplateClass = function(dataAndEvents) {
this.vb = dataAndEvents;
};
/**
* @return {?}
*/
TemplateClass.prototype.f = function() {
return this.vb;
};
var result = new TemplateClass("");
}
var hasMembers;
/** @type {function (string): ?} */
var pad = String.prototype.trim ? function(buf) {
return buf.trim();
} : function(lastLine) {
return lastLine.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "");
};
/**
* @param {string} requestUrl
* @return {?}
*/
var complete = function(requestUrl) {
if (!rhtml.test(requestUrl)) {
return requestUrl;
}
if (-1 != requestUrl.indexOf("&")) {
requestUrl = requestUrl.replace(rreturn, "&amp;");
}
if (-1 != requestUrl.indexOf("<")) {
requestUrl = requestUrl.replace(rCurrLoc, "&lt;");
}
if (-1 != requestUrl.indexOf(">")) {
requestUrl = requestUrl.replace(rclass, "&gt;");
}
if (-1 != requestUrl.indexOf('"')) {
requestUrl = requestUrl.replace(badChars, "&quot;");
}
if (-1 != requestUrl.indexOf("'")) {
requestUrl = requestUrl.replace(normalizr, "&#39;");
}
if (-1 != requestUrl.indexOf("\x00")) {
requestUrl = requestUrl.replace(newlineRe, "&#0;");
}
return requestUrl;
};
/** @type {RegExp} */
var rreturn = /&/g;
/** @type {RegExp} */
var rCurrLoc = /</g;
/** @type {RegExp} */
var rclass = />/g;
/** @type {RegExp} */
var badChars = /"/g;
/** @type {RegExp} */
var normalizr = /'/g;
/** @type {RegExp} */
var newlineRe = /\x00/g;
/** @type {RegExp} */
var rhtml = /[\x00&<>"']/;
/**
* @return {?}
*/
var randomColor = function() {
return Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ _randomVal()).toString(36);
};
/**
* @param {(boolean|number|string)} a
* @param {(boolean|number|string)} b
* @return {?}
*/
var cmp = function(a, b) {
return a < b ? -1 : a > b ? 1 : 0;
};
var aProt = Array.prototype;
/** @type {function (?, number, ?): ?} */
var promote = aProt.indexOf ? function(object, mapper, graphics) {
return aProt.indexOf.call(object, mapper, graphics);
} : function(arr, obj, fromIndex) {
fromIndex = null == fromIndex ? 0 : 0 > fromIndex ? Math.max(0, arr.length + fromIndex) : fromIndex;
if (isObject(arr)) {
return isObject(obj) && 1 == obj.length ? arr.indexOf(obj, fromIndex) : -1;
}
for (;fromIndex < arr.length;fromIndex++) {
if (fromIndex in arr && arr[fromIndex] === obj) {
return fromIndex;
}
}
return-1;
};
/** @type {function (Array, Function, ?): ?} */
var repeat = aProt.filter ? function(next_scope, mapper, graphics) {
return aProt.filter.call(next_scope, mapper, graphics);
} : function(arr, f, opt_this) {
var e = arr.length;
/** @type {Array} */
var res = [];
/** @type {number} */
var resLength = 0;
var arr2 = isObject(arr) ? arr.split("") : arr;
/** @type {number} */
var i = 0;
for (;i < e;i++) {
if (i in arr2) {
var val = arr2[i];
if (f.call(opt_this, val, i, arr)) {
res[resLength++] = val;
}
}
}
return res;
};
/** @type {function (?, Function, ?): ?} */
var connect = aProt.map ? function(next_scope, mapper, graphics) {
return aProt.map.call(next_scope, mapper, graphics);
} : function(arr, f, opt_obj) {
var e = arr.length;
/** @type {Array} */
var res = Array(e);
var arr2 = isObject(arr) ? arr.split("") : arr;
/** @type {number} */
var i = 0;
for (;i < e;i++) {
if (i in arr2) {
res[i] = f.call(opt_obj, arr2[i], i, arr);
}
}
return res;
};
/**
* @param {Object} obj
* @param {Function} f
* @return {?}
*/
var isUndefined = function(obj, f) {
var copy = {};
var key;
for (key in obj) {
if (f.call(void 0, obj[key], key, obj)) {
copy[key] = obj[key];
}
}
return copy;
};
/**
* @param {Array} ev
* @return {?}
*/
var _fn = function(ev) {
/** @type {number} */
var argLength = arguments.length;
if (1 == argLength && "array" == isArray(arguments[0])) {
return _fn.apply(null, arguments[0]);
}
var wkw = {};
/** @type {number} */
var i = 0;
for (;i < argLength;i++) {
/** @type {boolean} */
wkw[arguments[i]] = true;
}
return wkw;
};
_fn("area base br col command embed hr img input keygen link meta param source track wbr".split(" "));
/** @type {RegExp} */
var _problemUrlChars = /<[^>]*>|&[^;]+;/g;
/**
* @param {string} url
* @param {?} opt_attributes
* @return {?}
*/
var getQuery = function(url, opt_attributes) {
return opt_attributes ? url.replace(_problemUrlChars, "") : url;
};
/** @type {RegExp} */
var regex = RegExp("[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]");
/** @type {RegExp} */
var regexp = RegExp("^[^A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]*[\u0591-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc]");
/** @type {RegExp} */
var STACK_TRACE_REGEXP = /^http:\/\/.*/;
/** @type {RegExp} */
var rspace = /\s+/;
/** @type {RegExp} */
var reParent = /\d/;
/**
* @return {undefined}
*/
var current = function() {
/** @type {string} */
this.wj = "";
this.Ih = ParseUser;
};
var ParseUser = {};
/**
* @return {undefined}
*/
var Sprite = function() {
/** @type {string} */
this.Se = "";
this.Jh = random;
};
/**
* @return {?}
*/
Sprite.prototype.kg = function() {
return 1;
};
var random = {};
/**
* @return {undefined}
*/
var type = function() {
/** @type {string} */
this.Se = "";
this.Hh = listener;
/** @type {null} */
this.vi = null;
};
/**
* @return {?}
*/
type.prototype.kg = function() {
return this.vi;
};
var listener = {};
/**
* @return {?}
*/
var tryIt = function() {
return null;
};
/**
* @param {Function} func
* @return {?}
*/
var once = function(func) {
/** @type {Arguments} */
var functions = arguments;
/** @type {number} */
var length = functions.length;
return function() {
var memo;
/** @type {number} */
var i = 0;
for (;i < length;i++) {
memo = functions[i].apply(this, arguments);
}
return memo;
};
};
/**
* @param {?} a
* @param {?} b
* @param {number} x
* @return {?}
*/
var Number = function(a, b, x) {
return a + x * (b - a);
};
var userAgent;
a: {
var nav = global.navigator;
if (nav) {
var originalUserAgent = nav.userAgent;
if (originalUserAgent) {
userAgent = originalUserAgent;
break a;
}
}
/** @type {string} */
userAgent = "";
}
/**
* @return {?}
*/
var isBogus = function() {
return-1 != userAgent.indexOf("Edge");
};
/** @type {boolean} */
var os = -1 != userAgent.indexOf("Opera") || -1 != userAgent.indexOf("OPR");
/** @type {boolean} */
var isValid = -1 != userAgent.indexOf("Edge") || (-1 != userAgent.indexOf("Trident") || -1 != userAgent.indexOf("MSIE"));
/** @type {boolean} */
var strict = -1 != userAgent.indexOf("Gecko") && (!(-1 != userAgent.toLowerCase().indexOf("webkit") && !isBogus()) && (!(-1 != userAgent.indexOf("Trident") || -1 != userAgent.indexOf("MSIE")) && !isBogus()));
/** @type {boolean} */
var documentElement = -1 != userAgent.toLowerCase().indexOf("webkit") && !isBogus();
/**
* @return {?}
*/
var valueAccessor = function() {
var ua = userAgent;
if (strict) {
return/rv\:([^\);]+)(\)|;)/.exec(ua);
}
if (isValid && isBogus()) {
return/Edge\/([\d\.]+)/.exec(ua);
}
if (isValid) {
return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(ua);
}
if (documentElement) {
return/WebKit\/(\S+)/.exec(ua);
}
};
/**
* @return {?}
*/
var iframeCssFixes = function() {
var doc = global.document;
return doc ? doc.documentMode : void 0;
};
var cDigit = function() {
if (os && global.opera) {
var v = global.opera.version;
return "function" == isArray(v) ? v() : v;
}
/** @type {string} */
v = "";
var value = valueAccessor();
if (value) {
v = value ? value[1] : "";
}
return isValid && (!isBogus() && (value = iframeCssFixes(), value > parseFloat(v))) ? String(value) : v;
}();
var opt_nodes = {};
/**
* @param {string} ms
* @return {?}
*/
var format = function(ms) {
var node;
if (!(node = opt_nodes[ms])) {
/** @type {number} */
node = 0;
var v1Subs = pad(String(cDigit)).split(".");
var v2Subs = pad(String(ms)).split(".");
/** @type {number} */
var subCount = Math.max(v1Subs.length, v2Subs.length);
/** @type {number} */
var subIdx = 0;
for (;0 == node && subIdx < subCount;subIdx++) {
var value = v1Subs[subIdx] || "";
var v2Sub = v2Subs[subIdx] || "";
/** @type {RegExp} */
var re = RegExp("(\\d*)(\\D*)", "g");
/** @type {RegExp} */
var regex = RegExp("(\\d*)(\\D*)", "g");
do {
/** @type {Array} */
var a = re.exec(value) || ["", "", ""];
/** @type {Array} */
var b = regex.exec(v2Sub) || ["", "", ""];
if (0 == a[0].length && 0 == b[0].length) {
break;
}
node = cmp(0 == a[1].length ? 0 : parseInt(a[1], 10), 0 == b[1].length ? 0 : parseInt(b[1], 10)) || (cmp(0 == a[2].length, 0 == b[2].length) || cmp(a[2], b[2]));
} while (0 == node);
}
/** @type {boolean} */
node = opt_nodes[ms] = 0 <= node;
}
return node;
};
var DOC = global.document;
var checkStart = iframeCssFixes();
var Pc = !DOC || (!isValid || !checkStart && isBogus()) ? void 0 : checkStart || ("CSS1Compat" == DOC.compatMode ? parseInt(cDigit, 10) : 5);
/**
* @param {number} x
* @param {number} y
* @return {undefined}
*/
var Rect = function(x, y) {
this.x = void 0 !== x ? x : 0;
this.y = void 0 !== y ? y : 0;
};
/**
* @return {?}
*/
Rect.prototype.clone = function() {
return new Rect(this.x, this.y);
};
/**
* @return {?}
*/
Rect.prototype.ceil = function() {
/** @type {number} */
this.x = Math.ceil(this.x);
/** @type {number} */
this.y = Math.ceil(this.y);
return this;
};
/**
* @return {?}
*/
Rect.prototype.floor = function() {
/** @type {number} */
this.x = Math.floor(this.x);
/** @type {number} */
this.y = Math.floor(this.y);
return this;
};
/**
* @return {?}
*/
Rect.prototype.round = function() {
/** @type {number} */
this.x = Math.round(this.x);
/** @type {number} */
this.y = Math.round(this.y);
return this;
};
/**
* @param {?} w
* @param {?} h
* @return {undefined}
*/
var Node = function(w, h) {
this.width = w;
this.height = h;
};
/**
* @return {?}
*/
Node.prototype.clone = function() {
return new Node(this.width, this.height);
};
/**
* @return {?}
*/
Node.prototype.ceil = function() {
/** @type {number} */
this.width = Math.ceil(this.width);
/** @type {number} */
this.height = Math.ceil(this.height);
return this;
};
/**
* @return {?}
*/
Node.prototype.floor = function() {
/** @type {number} */
this.width = Math.floor(this.width);
/** @type {number} */
this.height = Math.floor(this.height);
return this;
};
/**
* @return {?}
*/
Node.prototype.round = function() {
/** @type {number} */
this.width = Math.round(this.width);
/** @type {number} */
this.height = Math.round(this.height);
return this;
};
if (!(!strict && !isValid)) {
if (!(isValid && (isValid && (isBogus() || 9 <= Pc)))) {
if (strict) {
format("1.9.1");
}
}
}
if (isValid) {
format("9");
}
/**
* @param {Error} el
* @return {?}
*/
var isNode = function(el) {
return el ? new target(getWindow(el)) : hasMembers || (hasMembers = new target);
};
/**
* @param {Object} el
* @return {?}
*/
var getWindow = function(el) {
return 9 == el.nodeType ? el : el.ownerDocument || el.document;
};
/**
* @param {(Document|string)} el
* @return {undefined}
*/
var target = function(el) {
this.Rb = el || (global.document || document);
};
/**
* @param {?} value
* @return {?}
*/
target.prototype.lg = function(value) {
return isObject(value) ? this.Rb.getElementById(value) : value;
};
/**
* @param {string} name
* @return {?}
*/
target.prototype.createElement = function(name) {
return this.Rb.createElement(name);
};
/**
* @param {?} text
* @param {string} val
* @return {?}
*/
var toDom = function(text, val) {
var fragment = text.Rb;
var node = fragment.createElement("DIV");
if (isValid) {
/** @type {string} */
node.innerHTML = "<br>" + val;
node.removeChild(node.firstChild);
} else {
/** @type {string} */
node.innerHTML = val;
}
if (1 == node.childNodes.length) {
node = node.removeChild(node.firstChild);
} else {
fragment = fragment.createDocumentFragment();
for (;node.firstChild;) {
fragment.appendChild(node.firstChild);
}
node = fragment;
}
return node;
};
/**
* @param {Element} element
* @param {Element} child
* @return {undefined}
*/
target.prototype.appendChild = function(element, child) {
element.appendChild(child);
};
/**
* @param {Object} parent
* @param {Object} descendant
* @return {?}
*/
target.prototype.contains = function(parent, descendant) {
if (parent.contains && 1 == descendant.nodeType) {
return parent == descendant || parent.contains(descendant);
}
if ("undefined" != typeof parent.compareDocumentPosition) {
return parent == descendant || Boolean(parent.compareDocumentPosition(descendant) & 16);
}
for (;descendant && parent != descendant;) {
descendant = descendant.parentNode;
}
return descendant == parent;
};
if (isValid) {
format(8);
}
var lowerTagName = {};
var n = {};
var me = {};
var elem = {};
var wildcardName = {};
/**
* @return {?}
*/
var fun = function() {
throw Error("Do not instantiate directly");
};
/** @type {null} */
fun.prototype.Na = null;
/**
* @return {?}
*/
fun.prototype.toString = function() {
return this.content;
};
/**
* @param {string} object
* @param {?} elt
* @return {?}
*/
var indexOf = function(object, elt) {
return null != object && object.fb === elt;
};
/**
* @param {string} putativeSpy
* @return {?}
*/
var sorter = function(putativeSpy) {
if (null != putativeSpy) {
switch(putativeSpy.Na) {
case 1:
return 1;
case -1:
return-1;
case 0:
return 0;
}
}
return null;
};
/**
* @return {undefined}
*/
var src = function() {
fun.call(this);
};
isPlainObject(src, fun);
src.prototype.fb = lowerTagName;
/**
* @param {?} value
* @return {?}
*/
var $ = function(value) {
return null != value && value.fb === lowerTagName ? value : value instanceof type ? func(value instanceof type && (value.constructor === type && value.Hh === listener) ? value.Se : "type_error:SafeHtml", value.kg()) : func(complete(String(String(value))), sorter(value));
};
/**
* @return {undefined}
*/
var model = function() {
fun.call(this);
};
isPlainObject(model, fun);
model.prototype.fb = {};
/** @type {number} */
model.prototype.Na = 1;
/**
* @return {undefined}
*/
var value = function() {
fun.call(this);
};
isPlainObject(value, fun);
value.prototype.fb = n;
/** @type {number} */
value.prototype.Na = 1;
/**
* @return {undefined}
*/
var req = function() {
fun.call(this);
};
isPlainObject(req, fun);
req.prototype.fb = me;
/** @type {number} */
req.prototype.Na = 1;
/**
* @return {undefined}
*/
var source = function() {
fun.call(this);
};
isPlainObject(source, fun);
source.prototype.fb = elem;
/** @type {number} */
source.prototype.Na = 1;
/**
* @param {?} obj
* @param {number} silent
* @return {undefined}
*/
var view = function(obj, silent) {
/** @type {string} */
this.content = String(obj);
this.Na = null != silent ? silent : null;
};
isPlainObject(view, fun);
view.prototype.fb = wildcardName;
/**
* @param {Function} fn
* @return {?}
*/
var when = function(fn) {
/**
* @param {?} c
* @return {undefined}
*/
function handler(c) {
this.content = c;
}
handler.prototype = fn.prototype;
return function(opt_message) {
return new handler(String(opt_message));
};
};
var func = function(b) {
/**
* @param {?} value
* @return {undefined}
*/
function __(value) {
this.content = value;
}
__.prototype = b.prototype;
return function(opt_message, lvl) {
var o = new __(String(opt_message));
if (void 0 !== lvl) {
/** @type {number} */
o.Na = lvl;
}
return o;
};
}(src);
when(model);
when(value);
var fix_xhr = when(req);
var log = when(source);
/**
* @param {Object} o
* @param {?} iterable
* @return {?}
*/
var beget = function(o, iterable) {
/**
* @return {undefined}
*/
function F() {
}
/** @type {Object} */
F.prototype = o;
var object = new F;
var key;
for (key in iterable) {
object[key] = iterable[key];
}
return object;
};
/**
* @param {Function} o
* @return {?}
*/
var validator = function(o) {
/**
* @param {?} content
* @return {undefined}
*/
function node(content) {
this.content = content;
}
node.prototype = o.prototype;
return function(data) {
return(data = String(data)) ? new node(data) : "";
};
};
/**
* @param {string} str
* @return {?}
*/
var is = function(str) {
return(str = String(str)) ? new view(str, void 0) : "";
};
var apply = function(b) {
/**
* @param {?} count
* @return {undefined}
*/
function c(count) {
this.content = count;
}
c.prototype = b.prototype;
return function(obj, lvl) {
/** @type {string} */
var o = String(obj);
if (!o) {
return "";
}
o = new c(o);
if (void 0 !== lvl) {
/** @type {number} */
o.Na = lvl;
}
return o;
};
}(src);
validator(model);
validator(value);
validator(req);
var valid = validator(source);
/**
* @param {?} selector
* @return {?}
*/
var parent = function(selector) {
return $(selector);
};
/**
* @param {?} values
* @return {?}
*/
var start = function(values) {
return indexOf(values, lowerTagName) ? (values = String(values.content).replace(rLt, "").replace(rQuot, "&lt;"), String(values).replace(rApos, boundary)) : complete(String(values));
};
/**
* @param {Object} a
* @return {?}
*/
var slice = function(a) {
if (indexOf(a, me)) {
return a.content.replace(/([^"'\s])$/, "$1 ");
}
/** @type {string} */
a = String(a);
/** @type {string} */
a = exclude.test(a) ? a : "zSoyz";
return a;
};
/**
* @param {?} content
* @return {?}
*/
var replace = function(content) {
if (indexOf(content, n)) {
return String(content).replace(r20, block);
}
if (content instanceof Sprite) {
content = content instanceof Sprite && (content.constructor === Sprite && content.Jh === random) ? content.Se : "type_error:SafeUrl";
/** @type {string} */
content = String(content).replace(r20, block);
} else {
/** @type {string} */
content = String(content);
/** @type {string} */
content = supportedTransforms.test(content) ? content.replace(r20, block) : "#zSoyz";
}
return content;
};
/**
* @param {string} type
* @return {?}
*/
var toString = function(type) {
if (indexOf(type, elem)) {
return type.content;
}
if (null == type) {
/** @type {string} */
type = "";
} else {
if (type instanceof current) {
type = type instanceof current && (type.constructor === current && type.Ih === ParseUser) ? type.wj : "type_error:SafeStyle";
} else {
/** @type {string} */
type = String(type);
/** @type {string} */
type = manipulation_rcheckableType.test(type) ? type : "zSoyz";
}
}
return type;
};
/**
* @param {string} value
* @return {?}
*/
var quote = function(value) {
var key = sorter(value);
if (null == key) {
/** @type {number} */
var string = key = 0;
/** @type {boolean} */
var multiple = false;
value = getQuery(value + "", indexOf(value, lowerTagName)).split(rspace);
/** @type {number} */
var index = 0;
for (;index < value.length;index++) {
var url = value[index];
if (regexp.test(getQuery(url, void 0))) {
key++;
string++;
} else {
if (STACK_TRACE_REGEXP.test(url)) {
/** @type {boolean} */
multiple = true;
} else {
if (regex.test(getQuery(url, void 0))) {
string++;
} else {
if (reParent.test(url)) {
/** @type {boolean} */
multiple = true;
}
}
}
}
}
/** @type {number} */
key = 0 == string ? multiple ? 1 : 0 : 0.4 < key / string ? -1 : 1;
}
return key;
};
var _entryCharToButtonIdMap = {
"\x00" : "&#0;",
"\t" : "&#9;",
"\n" : "&#10;",
"\x0B" : "&#11;",
"\f" : "&#12;",
"\r" : "&#13;",
" " : "&#32;",
'"' : "&quot;",
"&" : "&amp;",
"'" : "&#39;",
"-" : "&#45;",
"/" : "&#47;",
"<" : "&lt;",
"=" : "&#61;",
">" : "&gt;",
"`" : "&#96;",
"\u0085" : "&#133;",
"\u00a0" : "&#160;",
"\u2028" : "&#8232;",
"\u2029" : "&#8233;"
};
/**
* @param {?} timeoutKey
* @return {?}
*/
var boundary = function(timeoutKey) {
return _entryCharToButtonIdMap[timeoutKey];
};
var special = {
"\x00" : "%00",
"\u0001" : "%01",
"\u0002" : "%02",
"\u0003" : "%03",
"\u0004" : "%04",
"\u0005" : "%05",
"\u0006" : "%06",
"\u0007" : "%07",
"\b" : "%08",
"\t" : "%09",
"\n" : "%0A",
"\x0B" : "%0B",
"\f" : "%0C",
"\r" : "%0D",
"\u000e" : "%0E",
"\u000f" : "%0F",
"\u0010" : "%10",
"\u0011" : "%11",
"\u0012" : "%12",
"\u0013" : "%13",
"\u0014" : "%14",
"\u0015" : "%15",
"\u0016" : "%16",
"\u0017" : "%17",
"\u0018" : "%18",
"\u0019" : "%19",
"\u001a" : "%1A",
"\u001b" : "%1B",
"\u001c" : "%1C",
"\u001d" : "%1D",
"\u001e" : "%1E",
"\u001f" : "%1F",
" " : "%20",
'"' : "%22",
"'" : "%27",
"(" : "%28",
")" : "%29",
"<" : "%3C",
">" : "%3E",
"\\" : "%5C",
"{" : "%7B",
"}" : "%7D",
"\u007f" : "%7F",
"\u0085" : "%C2%85",
"\u00a0" : "%C2%A0",
"\u2028" : "%E2%80%A8",
"\u2029" : "%E2%80%A9",
"\uff01" : "%EF%BC%81",
"\uff03" : "%EF%BC%83",
"\uff04" : "%EF%BC%84",
"\uff06" : "%EF%BC%86",
"\uff07" : "%EF%BC%87",
"\uff08" : "%EF%BC%88",
"\uff09" : "%EF%BC%89",
"\uff0a" : "%EF%BC%8A",
"\uff0b" : "%EF%BC%8B",
"\uff0c" : "%EF%BC%8C",
"\uff0f" : "%EF%BC%8F",
"\uff1a" : "%EF%BC%9A",
"\uff1b" : "%EF%BC%9B",
"\uff1d" : "%EF%BC%9D",
"\uff1f" : "%EF%BC%9F",
"\uff20" : "%EF%BC%A0",
"\uff3b" : "%EF%BC%BB",
"\uff3d" : "%EF%BC%BD"
};
/**
* @param {?} type
* @return {?}
*/
var block = function(type) {
return special[type];
};
/** @type {RegExp} */
var rApos = /[\x00\x22\x27\x3c\x3e]/g;
/** @type {RegExp} */
var r20 = /[\x00- \x22\x27-\x29\x3c\x3e\\\x7b\x7d\x7f\x85\xa0\u2028\u2029\uff01\uff03\uff04\uff06-\uff0c\uff0f\uff1a\uff1b\uff1d\uff1f\uff20\uff3b\uff3d]/g;
/** @type {RegExp} */
var manipulation_rcheckableType = /^(?!-*(?:expression|(?:moz-)?binding))(?:[.#]?-?(?:[_a-z0-9-]+)(?:-[_a-z0-9-]+)*-?|-?(?:[0-9]+(?:\.[0-9]*)?|\.[0-9]+)(?:[a-z]{1,2}|%)?|!important|)$/i;
/** @type {RegExp} */
var supportedTransforms = /^(?![^#?]*\/(?:\.|%2E){2}(?:[\/?#]|$))(?:(?:https?|mailto):|[^&:\/?#]*(?:[\/?#]|$))/i;
/** @type {RegExp} */
var exclude = /^(?!style|on|action|archive|background|cite|classid|codebase|data|dsync|href|longdesc|src|usemap)(?:[a-z0-9_$:-]*)$/i;
/** @type {RegExp} */
var rLt = /<(?:!|\/?([a-zA-Z][a-zA-Z0-9:\-]*))(?:[^>'"]|"[^"]*"|'[^']*')*>/g;
/** @type {RegExp} */
var rQuot = /</g;
/**
* @param {?} opt_attributes
* @return {?}
*/
var animate = function(opt_attributes) {
return func("<span class='individualLabel " + (opt_attributes.X ? start(opt_attributes.X) : "") + "'>" + $(opt_attributes.text) + "</span>");
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} clear
* @param {Function} opt_rightAlign
* @return {undefined}
*/
var Renderer = function(clear, opt_rightAlign) {
this.Yh = clear;
this.C = opt_rightAlign || animate;
};
/**
* @return {?}
*/
Renderer.prototype.f = function() {
return this.C({
text : this.Yh,
X : null
});
};
}
/**
* @param {?} opt_attributes
* @return {?}
*/
var getStyle = function(opt_attributes) {
/** @type {string} */
var later = "";
opt_attributes = opt_attributes.elements;
var valuesLen = opt_attributes.length;
/** @type {number} */
var i = 0;
for (;i < valuesLen;i++) {
later += $(opt_attributes[i]);
}
return func(later);
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} lb
* @param {Function} value
* @return {undefined}
*/
var Float32Array = function(lb, value) {
this.D = min();
this.lb = lb;
this.C = value || createSvgElement_;
};
/**
* @return {?}
*/
Float32Array.prototype.f = function() {
/** @type {Array} */
var eventPath = [];
/** @type {number} */
var l = 0;
for (;l < this.lb.length;l++) {
eventPath.push(this.lb[l].f());
}
return this.C({
uid : this.D,
yd : eventPath
});
};
/**
* @param {?} d
* @return {?}
*/
Float32Array.prototype.G = function(d) {
/** @type {Array} */
var vars = [];
/** @type {number} */
var j = 0;
for (;j < this.lb.length;j++) {
if (this.lb[j].G) {
/** @type {Array} */
vars = vars.concat(this.lb[j].G(d));
}
}
return vars;
};
/**
* @param {Window} d
* @param {Object} opts
* @return {undefined}
*/
Float32Array.prototype.W = function(d, opts) {
/** @type {number} */
var i = 0;
for (;i < this.lb.length;i++) {
var t = this.lb[i];
if (t.W) {
t.W(d, opts);
}
}
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var createSvgElement_ = function(opt_attributes) {
return getStyle({
elements : opt_attributes.yd
});
};
}
/**
* @return {?}
*/
var innerHeight = function() {
return log("display: -moz-inline-box; display:inline-block; zoom: 1; *display: inline;");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var errorHandler = function(opt_attributes) {
return log("-webkit-box-shadow: " + toString(opt_attributes.value) + "; -moz-box-shadow: " + toString(opt_attributes.value) + "; box-shadow: " + toString(opt_attributes.value) + ";");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var reject = function(opt_attributes) {
return fix_xhr('target="' + (opt_attributes.j ? "_blank" : "_top") + '"');
};
/**
* @param {Text} params
* @return {?}
*/
var load = function(params) {
/** @type {string} */
var direction = params.Tb ? "right" : "left";
/** @type {string} */
params = "" + ('<div style="overflow: hidden;"><div style="float: ' + start(toString(direction)) + "; width: " + start(toString(params.oa + "px")) + ';">' + $(params.Pa) + '</div><div style="margin-' + start(toString(direction)) + ": " + start(toString(params.oa + params.$a + "px")) + ';">' + $(params.Qa) + "</div></div>");
return func(params);
};
/**
* @param {Text} options
* @return {?}
*/
var bind = function(options) {
/** @type {string} */
var corners = options.Tb ? "right" : "left";
return options = "" + ('<div style="overflow: hidden;"><div style="float: ' + corners + "; width: " + (options.oa + "px") + ';">' + options.Pa + '</div><div style="margin-' + corners + ": " + (options.oa + options.$a + "px") + ';">' + options.Qa + "</div></div>");
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} endRow
* @param {?} endColumn
* @param {?} isInt
* @param {?} R
* @param {Function} success
* @return {undefined}
*/
var Range = function(endRow, endColumn, isInt, R, success) {
this.D = min();
this.ma = endRow;
this.Yb = endColumn;
this.vb = isInt;
this.R = R;
this.C = success || fail;
};
/**
* @return {?}
*/
Range.prototype.f = function() {
return this.C({
uid : this.D,
url : this.ma,
ya : this.Yb,
text : this.vb,
j : this.R
});
};
/**
* @param {string} self
* @param {Object} pos
* @return {?}
*/
var contains = function(self, pos) {
/** @type {Array} */
var configList = [];
if (self.ctc) {
configList.push(new Range(self.ctc.u, (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/images/afs/mobile/button_ctc.png", self.ctc.bt, pos.j, void 0));
}
if (self.ctd) {
configList.push(new Range(self.u, (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/images/afs/mobile/ctd-dl-icon.png", self.ctd.ps, pos.j, void 0));
}
if (1 <= configList.length) {
if (!(self.ctc && self.ctc.coa || self.ctd)) {
configList.push(new Range(self.u, (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/images/afs/mobile/button_visit_site.png", pos.ek, pos.j, void 0));
}
}
return configList;
};
/**
* @param {string} value
* @param {Object} m
* @return {?}
*/
var h = function(value, m) {
var left = contains(value, m);
return 1 < left.length ? new Float32Array(left, decode) : result;
};
}
/**
* @param {Element} item
* @param {string} className
* @return {?}
*/
var addClass = function(item, className) {
if (item.classList) {
return item.classList.contains(className);
}
var codeSegments = item.className.split(" ");
/** @type {number} */
var i = 0;
for (;i < codeSegments.length;i++) {
if (codeSegments[i] == className) {
return true;
}
}
return false;
};
/**
* @param {Element} elem
* @param {string} c
* @return {undefined}
*/
var removeClass = function(elem, c) {
if (elem.classList) {
elem.classList.remove(c);
} else {
var tail = elem.className.split(" ");
/** @type {Array} */
var context = [];
/** @type {number} */
var i = 0;
for (;i < tail.length;i++) {
if (tail[i] != c) {
context.push(tail[i]);
}
}
/** @type {string} */
elem.className = context.join(" ");
}
};
/**
* @param {Element} elem
* @param {string} name
* @return {undefined}
*/
var close = function(elem, name) {
if (elem.classList) {
elem.classList.add(name);
} else {
if (elem.className) {
if (!addClass(elem, name)) {
elem.className += " " + name;
}
} else {
/** @type {string} */
elem.className = name;
}
}
};
/**
* @param {Object} node
* @param {string} selector
* @param {string} className
* @return {?}
*/
var qsa = function(node, selector, className) {
/** @type {Array} */
var paragraph = [];
if ("getElementsByClassName" in document) {
node = node.getElementsByClassName(className);
/** @type {number} */
var _i = 0;
var child;
for (;child = node[_i];_i++) {
if (child.nodeName) {
if (child.nodeName.toLowerCase() == selector) {
paragraph.push(child);
}
}
}
} else {
node = node.getElementsByTagName(selector);
/** @type {number} */
_i = 0;
for (;child = node[_i];_i++) {
if (addClass(child, className)) {
paragraph.push(child);
}
}
}
return paragraph;
};
/**
* @param {?} v23
* @param {?} id
* @return {?}
*/
var parseFloat = function(v23, id) {
var ret = v23.getElementById(id);
if (!ret) {
throw "Could not find element with id: " + id;
}
return ret;
};
/**
* @param {Object} element
* @param {?} id
* @return {?}
*/
var visit = function(element, id) {
for (;element.parentNode;) {
if (element = element.parentNode, element.id == id) {
return true;
}
}
return false;
};
/**
* @param {Object} result
* @return {?}
*/
var fragment = function(result) {
/** @type {Element} */
var tip = document.createElement("div");
result = isObject(result) ? result : result.content;
/** @type {string} */
tip.innerHTML = "<table><tbody>" + result + "</tbody></table>";
var elem;
try {
/** @type {(Node|null)} */
elem = tip.firstChild.firstChild.firstChild;
} catch (d) {
return null;
}
return 1 == elem.nodeType && "tr" == elem.tagName.toLowerCase() ? elem : null;
};
/**
* @param {Element} element
* @return {?}
*/
var runTest = function(element) {
var parent = element.parentNode;
var next = element.nextSibling;
/** @type {Element} */
var d = document.createElement("div");
d.appendChild(element);
if (parent) {
if (next) {
parent.insertBefore(d, next);
} else {
parent.appendChild(d);
}
}
return d;
};
/**
* @param {Window} target
* @param {?} scope
* @param {?} attr
* @return {?}
*/
var link = function(target, scope, attr) {
return function() {
if (300 <= target.innerWidth) {
/** @type {string} */
parseFloat(target.document, scope).style.display = "block";
/** @type {string} */
parseFloat(target.document, attr).style.display = "none";
} else {
/** @type {string} */
parseFloat(target.document, scope).style.display = "none";
/** @type {string} */
parseFloat(target.document, attr).style.display = "block";
}
};
};
/**
* @param {Object} el
* @param {string} type
* @param {Function} eventName
* @return {undefined}
*/
var addEvent = function(el, type, eventName) {
if (el.addEventListener) {
el.addEventListener(type, eventName, false);
} else {
if (el.attachEvent) {
el.attachEvent("on" + type, eventName);
} else {
var postfix = el["on" + type];
el["on" + type] = null != postfix ? once(eventName, postfix) : eventName;
}
}
};
/**
* @param {Object} el
* @param {Function} fn
* @return {undefined}
*/
var attach = function(el, fn) {
addEvent(el, "mousedown", fn);
addEvent(el, "mousedown", function(el, sType, fn) {
/** @type {boolean} */
var f = false;
return function() {
if (!f) {
if (el.removeEventListener) {
el.removeEventListener(sType, fn, false);
} else {
if (el.detachEvent) {
el.detachEvent("on" + sType, fn);
}
}
/** @type {boolean} */
f = true;
}
};
}(el, "mousedown", fn));
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var loop = function(opt_attributes) {
return func('<div id="' + start(opt_attributes.Bc) + '" style="display:' + start(toString(opt_attributes.yc ? "none" : "block")) + ';"><div>' + $(opt_attributes.Ba) + "</div>" + parent(load({
Pa : apply("" + (opt_attributes.ea && opt_attributes.ga ? '<div class="ctd-itd"><a class="ctd-il" href="' + start(replace(opt_attributes.jc)) + '"><span class="ctd-ico-s"></span><img class="ctd-ico' + (opt_attributes.dc ? " rc" : "") + '" ' + slice(opt_attributes.ga) + '="45" src="' + start(replace(opt_attributes.ea)) + '" alt></a>' + (opt_attributes.I && opt_attributes.L ? end({
I : opt_attributes.I,
L : opt_attributes.L,
fc : false
}) : "") + "</div>" : "")),
Qa : apply('<div class="ctd-td-cr">' + (!opt_attributes.I || (!opt_attributes.L || opt_attributes.ea && opt_attributes.ga) ? "" : end({
I : opt_attributes.I,
L : opt_attributes.L,
fc : true
})) + $(opt_attributes.Ca) + '<div class="ctd-text" id="' + start(opt_attributes.Qb) + '">' + $(opt_attributes.od) + "</div></div>"),
oa : opt_attributes.ea && opt_attributes.ga ? 45 : 0,
$a : 0,
Tb : opt_attributes.g
})) + "</div>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var push = function(opt_attributes) {
return func('<div id="' + start(opt_attributes.Bc) + '" style="display:' + start(toString(opt_attributes.yc ? "none" : "block")) + ';"><div>' + $(opt_attributes.Ba) + "</div>" + parent(load({
Pa : apply("" + (opt_attributes.ea && opt_attributes.ga ? '<div class="ctd-itd"><a class="ctd-il" href="' + start(replace(opt_attributes.jc)) + '"><span class="ctd-ico-s"></span><img class="ctd-ico' + (opt_attributes.dc ? " rc" : "") + '" ' + slice(opt_attributes.ga) + '="45" src="' + start(replace(opt_attributes.ea)) + '" alt></a>' + (opt_attributes.I && opt_attributes.L ? end({
I : opt_attributes.I,
L : opt_attributes.L,
fc : false
}) : "") + "</div>" : "")),
Qa : apply('<div class="ctd-td-cr">' + (!opt_attributes.I || (!opt_attributes.L || opt_attributes.ea && opt_attributes.ga) ? "" : end({
I : opt_attributes.I,
L : opt_attributes.L,
fc : true
})) + '<div class="ctd-text" id="' + start(opt_attributes.Qb) + '">' + $(opt_attributes.Ca) + "</div></div>"),
oa : opt_attributes.ea && opt_attributes.ga ? 45 : 0,
$a : 0,
Tb : opt_attributes.g
})) + "</div>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var ready = function(opt_attributes) {
return func("<div>" + (opt_attributes.ea && opt_attributes.ga ? '<a class="ctd-i-mini" href="' + start(replace(opt_attributes.jc)) + '"><img class="ctd-ico' + (opt_attributes.dc ? " rc-mini" : "") + '" style="' + start(toString(opt_attributes.ga)) + ': inherit; vertical-align: text-bottom;" src="' + start(replace(opt_attributes.ea)) + '"></a>' : "") + $(opt_attributes.Wi) + (opt_attributes.I && opt_attributes.L ? " " + end({
I : opt_attributes.I,
L : opt_attributes.L,
fc : true
}) : "") + $(opt_attributes.Xi) + "</div>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var end = function(opt_attributes) {
return func('<div class="ctd-rate"><div class="ctd-rate-bg"><div class="ctd-rate-fg" style="width: ' + start(toString(opt_attributes.I / 5 * 100)) + '%;"></div></div><div class="ctd-rate-txt' + (opt_attributes.fc ? " inline" : "") + '">(<span class="ctd-usr-ico"></span>' + $(opt_attributes.L) + ")</div></div>");
};
/**
* @param {?} res
* @return {?}
*/
var loaded = function(res) {
return func('<img class="adIcon" src="' + start(replace(res.sa)) + '"/>');
};
/**
* @param {?} rest
* @return {?}
*/
var parseStartTag = function(rest) {
return func('<iframe class="adIcon" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowTransparency="true" sandbox="" src="' + start(replace(rest.sa)) + '"></iframe>');
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} opt_vars
* @param {?} opt_size
* @return {undefined}
*/
var Player = function(opt_vars, opt_size) {
this.Pj = opt_vars;
this.C = opt_size;
};
/**
* @return {?}
*/
Player.prototype.f = function() {
return this.C({
sa : this.Pj
});
};
}
/**
* @param {Object} doc
* @return {?}
*/
var getOffset = function(doc) {
var el = getWindow(doc);
var pos = new Rect(0, 0);
var node;
node = el ? getWindow(el) : document;
var opt_useFirstChild;
if (!(opt_useFirstChild = !isValid || isValid && (isBogus() || 9 <= Pc))) {
/** @type {boolean} */
opt_useFirstChild = "CSS1Compat" == isNode(node).Rb.compatMode;
}
if (doc == (opt_useFirstChild ? node.documentElement : node.body)) {
return pos;
}
var viewport;
a: {
try {
viewport = doc.getBoundingClientRect();
} catch (g) {
viewport = {
left : 0,
top : 0,
right : 0,
bottom : 0
};
break a;
}
if (isValid) {
if (doc.ownerDocument.body) {
doc = doc.ownerDocument;
viewport.left -= doc.documentElement.clientLeft + doc.body.clientLeft;
viewport.top -= doc.documentElement.clientTop + doc.body.clientTop;
}
}
}
doc = isNode(el).Rb;
el = documentElement || "CSS1Compat" != doc.compatMode ? doc.body || doc.documentElement : doc.documentElement;
doc = doc.parentWindow || doc.defaultView;
el = isValid && (format("10") && doc.pageYOffset != el.scrollTop) ? new Rect(el.scrollLeft, el.scrollTop) : new Rect(doc.pageXOffset || el.scrollLeft, doc.pageYOffset || el.scrollTop);
pos.x = viewport.left + el.x;
pos.y = viewport.top + el.y;
return pos;
};
if (isValid) {
format(12);
}
/**
* @param {?} opt_attributes
* @return {?}
*/
var createDocument = function(opt_attributes) {
return func(g({
text : opt_attributes.text.c,
Aa : opt_attributes.text.rtl,
g : opt_attributes.g
}));
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var forEach = function(opt_attributes) {
return func(g({
text : opt_attributes.text,
Aa : 0 > quote(opt_attributes.text),
g : opt_attributes.g
}));
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var g = function(opt_attributes) {
return func(0 < opt_attributes.text.toString().length ? '<span dir="' + (opt_attributes.Aa ? "rtl" : "ltr") + '">' + $(opt_attributes.text) + "</span>" + (opt_attributes.g ? "&rlm;" : "&lrm;") : "");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var exports = function(opt_attributes) {
return func('<a id="' + start(opt_attributes.uid) + '" href="' + start(replace(opt_attributes.url)) + '" class="titleLink"' + slice(reject(opt_attributes)) + ">" + parent(createDocument(opt_attributes)) + "</a>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var test = function(opt_attributes) {
return func('<div class="ctcT"><img src="//www.google.com/images/mobile_ad/phone_icon-lb32.png" class="ctcCOI" /><a id="' + start(opt_attributes.uid) + '" href="' + start(replace(opt_attributes.url)) + '"' + slice(reject(opt_attributes)) + ">" + parent(g({
text : opt_attributes.rj,
Aa : false,
g : opt_attributes.g
})) + "</a>" + (opt_attributes.cg ? '<span class="ctcLD"> (' + parent(forEach({
text : opt_attributes.cg,
g : opt_attributes.g
})) + ")</span>" : "") + "</div>" + (opt_attributes.Oi ? "" : '<span class="ctcCO">' + parent(createDocument(opt_attributes)) + "</span>"));
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var execute = function(opt_attributes) {
return func('<a id="' + start(opt_attributes.uid) + '" href="' + start(replace(opt_attributes.url)) + '" class="domainLink"' + slice(reject(opt_attributes)) + ">" + parent(g({
text : opt_attributes.text,
Aa : false,
g : opt_attributes.g
})) + "</a>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var flush = function(opt_attributes) {
var props = func;
var config;
config = opt_attributes.ah;
var o = opt_attributes.bh;
opt_attributes = opt_attributes.g;
/** @type {string} */
var name = "";
if (o && 0 < o.c.toString().length) {
var green = config.rtl || o.rtl;
/** @type {string} */
name = name + g({
Aa : green,
g : opt_attributes,
text : apply(createDocument({
text : config,
g : green
}) + " " + createDocument({
text : o,
g : green
}))
});
} else {
name += createDocument({
text : config,
g : opt_attributes
});
}
config = func(name);
return props('<span class="descText">' + $(config) + "</span>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var write = function(opt_attributes) {
return func('<a id="' + start(opt_attributes.uid) + '" href="' + start(replace(opt_attributes.url)) + '" class="textLink"' + slice(reject(opt_attributes)) + ">" + flush(opt_attributes) + "</a>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var use = function(opt_attributes) {
return func("<div>" + $(opt_attributes.Ba) + "</div>" + $(opt_attributes.Ca) + "<br />" + $(opt_attributes.od));
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var limit = function(opt_attributes) {
return func("<div>" + $(opt_attributes.Ba) + "</div>" + $(opt_attributes.Ca));
};
/**
* @param {Object} data
* @return {?}
*/
var onSuccess = function(data) {
/** @type {string} */
var options = "";
switch(data.rc) {
case 1:
options += "oneLine";
break;
case 2:
options += "twoLine";
break;
case 3:
options += "threeLine";
}
options = is(options);
/** @type {string} */
data = "" + ('<div class="adStd ' + start(options) + '"' + (data.cb ? 'data-click-s="' + start(data.url) + '"' + slice(fix_xhr('data-click-trg="' + (data.j ? "_blank" : "_top") + '"')) : "") + ">" + $(data.content) + "</div>");
return func(data);
};
/**
* @param {?} object
* @return {?}
*/
var freeze = function(object) {
freeze[" "](object);
return object;
};
/**
* @return {undefined}
*/
freeze[" "] = function() {
};
if (isValid) {
format("9");
}
if (!!documentElement) {
format("528");
}
if (!(strict && format("1.9b"))) {
if (!(isValid && format("8"))) {
if (!(os && format("9.5"))) {
if (documentElement) {
format("528");
}
}
}
}
if (!(strict && !format("8"))) {
if (isValid) {
format("9");
}
}
/**
* @param {?} y
* @param {?} x
* @param {?} node
* @param {?} ypos
* @param {?} mass
* @param {?} xpos
* @param {?} coordinates
* @param {?} round
* @return {undefined}
*/
var Point = function(y, x, node, ypos, mass, xpos, coordinates, round) {
this.Dc = y;
this.pf = x;
this.nf = node;
this.qf = ypos;
this.of = mass;
this.rf = xpos;
this.Gd = coordinates;
this.sf = round;
};
/**
* @return {?}
*/
Point.prototype.clone = function() {
return new Point(this.Dc, this.pf, this.nf, this.qf, this.of, this.rf, this.Gd, this.sf);
};
/**
* @param {Object} options
* @param {number} a
* @return {?}
*/
var number = function(options, a) {
if (0 == a) {
return options.Dc;
}
if (1 == a) {
return options.Gd;
}
var c = Number(options.Dc, options.nf, a);
var b = Number(options.nf, options.of, a);
var y = Number(options.of, options.Gd, a);
c = Number(c, b, a);
b = Number(b, y, a);
return Number(c, b, a);
};
/**
* @param {?} b
* @return {?}
*/
var loadConfig = function(b) {
var x = point;
/** @type {number} */
var args = (b - x.Dc) / (x.Gd - x.Dc);
if (0 >= args) {
return 0;
}
if (1 <= args) {
return 1;
}
/** @type {number} */
var triggerArguments = 0;
/** @type {number} */
var lastArgs = 1;
/** @type {number} */
var f = 0;
for (;8 > f;f++) {
var a = number(x, args);
/** @type {number} */
var c = (number(x, args + 1E-6) - a) / 1E-6;
if (1E-6 > Math.abs(a - b)) {
return args;
}
if (1E-6 > Math.abs(c)) {
break;
} else {
if (a < b) {
/** @type {number} */
triggerArguments = args;
} else {
/** @type {number} */
lastArgs = args;
}
args -= (a - b) / c;
}
}
/** @type {number} */
f = 0;
for (;1E-6 < Math.abs(a - b) && 8 > f;f++) {
if (a < b) {
/** @type {number} */
triggerArguments = args;
/** @type {number} */
args = (args + lastArgs) / 2;
} else {
/** @type {number} */
lastArgs = args;
/** @type {number} */
args = (args + triggerArguments) / 2;
}
a = number(x, args);
}
return args;
};
var point = new Point(0, 0, 0.25, 0.1, 0.25, 1, 1, 1);
/**
* @param {?} config
* @return {?}
*/
var route = function(config) {
config = loadConfig(config);
if (0 == config) {
config = point.pf;
} else {
if (1 == config) {
config = point.sf;
} else {
var c = Number(point.pf, point.qf, config);
var val = Number(point.qf, point.rf, config);
var b = Number(point.rf, point.sf, config);
c = Number(c, val, config);
val = Number(val, b, config);
config = Number(c, val, config);
}
}
return config;
};
/**
* @param {Element} node
* @param {number} a
* @param {number} e
* @return {?}
*/
var increment = function(node, a, e) {
/** @type {number} */
var d = e - a;
return function(x) {
/** @type {string} */
node.style.left = a + x * d + "px";
};
};
/**
* @param {number} failing_message
* @return {undefined}
*/
var report = function(failing_message) {
this.Cc = void 0;
/** @type {number} */
this.eg = failing_message;
/** @type {boolean} */
this.rb = false;
/** @type {function (?): ?} */
this.Vj = route;
/** @type {number} */
this.ug = 0;
};
/**
* @param {Object} options
* @return {?}
*/
var tick = function(options) {
if (options.rb || !options.Cc) {
return false;
}
/** @type {boolean} */
options.rb = true;
var remove = options.Cc;
var css = wrapper(function(func, dataAndEvents) {
var node = this.Vj(func);
if (dataAndEvents) {
/** @type {number} */
node = 0;
} else {
if (1 <= func) {
/** @type {number} */
node = 1;
}
}
remove(node);
}, options);
if (window.requestAnimationFrame && window.performance) {
/** @type {number} */
var source = window.performance.now();
/** @type {boolean} */
var cssObj = true;
var func = wrapper(function(target) {
/** @type {number} */
target = (target - source) / this.eg;
css(target, cssObj);
/** @type {boolean} */
cssObj = false;
if (1 <= target) {
remove(1);
/** @type {boolean} */
this.rb = false;
} else {
window.requestAnimationFrame(func);
}
}, options);
window.requestAnimationFrame(func);
} else {
/** @type {number} */
source = (new Date).getTime();
/** @type {boolean} */
cssObj = true;
func = wrapper(function() {
/** @type {number} */
var ol = ((new Date).getTime() - source) / this.eg;
css(ol, cssObj);
/** @type {boolean} */
cssObj = false;
if (1 <= ol) {
remove(1);
/** @type {boolean} */
this.rb = false;
window.clearInterval(this.ug);
}
}, options);
/** @type {number} */
options.ug = window.setInterval(func, 1E3 / 60);
}
return true;
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var getElementById = function(opt_attributes) {
return func('<a href="' + start(replace(opt_attributes.href)) + '" target="' + (opt_attributes.j ? "_blank" : "_top") + '"' + (opt_attributes.Oa ? 'id="' + start(opt_attributes.Oa) + '"' : "") + " " + (opt_attributes.na ? 'class="' + start(opt_attributes.na) + '"' : "") + ">" + $(opt_attributes.content) + "</a>");
};
/**
* @param {Object} data
* @return {?}
*/
var decode = function(data) {
/** @type {string} */
var fn = "";
if (data.yd) {
/** @type {string} */
fn = fn + ('<div class="buttonsWrapper" id="' + start(data.uid) + '">');
var arr = data.yd;
var e = arr.length;
/** @type {number} */
var i = 0;
for (;i < e;i++) {
var val = arr[i];
/** @type {string} */
fn = fn + ('<div style="width: ' + start(toString(Math.floor(1 / data.yd.length * 100))) + '%;" class="inlineButton' + (0 == i ? " firstButton" : "") + '">' + $(val) + "</div>");
}
fn += "</div>";
}
return func(fn);
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var fail = function(opt_attributes) {
return func('<div class="button" id="' + start(opt_attributes.uid) + '"><div class="buttonImageWrapper"><a href="' + start(replace(opt_attributes.url)) + '" ' + slice(reject(opt_attributes)) + '><img class="buttonImage" src="' + start(replace(opt_attributes.ya)) + '" width="28" height="28"></a></div><div class="buttonTextWrapper"><a href="' + start(replace(opt_attributes.url)) + '" class="buttonText" ' + slice(reject(opt_attributes)) + ">" + $(opt_attributes.text) + "</a></div></div>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var text = function(opt_attributes) {
return "" + emit({
text : opt_attributes.text.c,
Aa : opt_attributes.text.rtl,
g : opt_attributes.g
});
};
/**
* @param {Object} data
* @return {?}
*/
var emit = function(data) {
return'<span dir="' + (data.Aa ? "rtl" : "ltr") + '">' + data.text + "</span>" + (data.g ? "&rlm;" : "&lrm;");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var after = function(opt_attributes) {
return func(opt_attributes.De ? "<div class='location'>" + parent(forEach({
text : opt_attributes.De,
g : opt_attributes.g
})) + "</div>" : "");
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} vertexShader
* @param {?} vertex
* @param {Function} displayName
* @return {undefined}
*/
var Program = function(vertexShader, vertex, displayName) {
this.D = min();
this.vb = vertexShader;
this.H = vertex;
this.C = displayName || after;
};
/**
* @return {?}
*/
Program.prototype.f = function() {
return this.C({
uid : this.D,
De : this.vb,
g : this.H
});
};
/**
* @param {Object} value
* @param {Object} t
* @return {?}
*/
var calc = function(value, t) {
return value.location ? new Program(value.location, t.g) : result;
};
}
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} filterFn
* @param {?} o
* @param {string} onFinished
* @param {?} stream
* @return {undefined}
*/
var Loader = function(filterFn, o, onFinished, stream) {
this.D = min();
this.ra = filterFn;
this.ue = o;
/** @type {string} */
this.hk = onFinished;
this.C = stream || _set;
};
/**
* @return {?}
*/
Loader.prototype.f = function() {
return this.C({
uid : this.D,
vd : this.ra,
nb : this.ue,
kh : this.hk
});
};
/**
* @param {string} obj
* @param {Object} val
* @return {?}
*/
var getter = function(obj, val) {
var isLarge = obj.gt && ("oh" == obj.gt.r && obj.gt.t) ? obj.gt.t : null;
return obj.oh && 0 < obj.oh.length || isLarge ? new Loader(obj.oh, isLarge, val.ij) : result;
};
}
/**
* @param {?} opt_attributes
* @return {?}
*/
var each = function(opt_attributes) {
/** @type {string} */
var fn = "";
if (opt_attributes.Pe) {
/** @type {string} */
fn = fn + "<div class='plus-ones'>";
var values = opt_attributes.Pe;
var valuesLen = values.length;
/** @type {number} */
var i = 0;
for (;i < valuesLen;i++) {
var val = values[i];
/** @type {string} */
fn = fn + ("TARGET" == val ? parent(func('target="' + (opt_attributes.j ? "_blank" : "_top") + '"')) : $(val));
}
fn += "</div>";
}
return func(fn);
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} compute
* @param {?} R
* @param {?} t
* @param {Function} Var
* @return {undefined}
*/
var X = function(compute, R, t, Var) {
this.D = min();
this.Tj = compute;
this.R = R;
this.H = t;
this.C = Var || each;
};
/**
* @return {?}
*/
X.prototype.f = function() {
return this.C({
uid : this.D,
Pe : this.Tj,
j : this.R,
g : this.H
});
};
/**
* @param {string} value
* @param {Object} options
* @return {?}
*/
var validate = function(value, options) {
return value.plus_ones ? new X(step(value), options.j, options.g) : result;
};
/**
* @param {string} value
* @return {?}
*/
var step = function(value) {
/** @type {Array} */
var ret = [];
if (value.plus_ones) {
/** @type {number} */
var i = 0;
var valuesLen = value.plus_ones.length;
for (;i < valuesLen;i++) {
ret.push(func(value.plus_ones[i]));
}
}
return ret;
};
}
/**
* @param {?} args
* @return {?}
*/
var constructor = function(args) {
return func(args.zc ? template({
I : args.zc.r,
dk : true
}) + '<span class="sr-p">&nbsp;</span><span class="sr-gt">&nbsp;(' + parent(getElementById({
href : args.zc.u,
content : Math.round(10 * args.zc.r) / 10,
j : args.j,
na : "sr-gt sr-gl"
})) + ")</span>" : "");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var check = function(opt_attributes) {
/** @type {string} */
var point = '<div class="sr-div">';
var resultItems = opt_attributes.Sj;
var valuesLen = resultItems.length;
/** @type {number} */
var i = 0;
for (;i < valuesLen;i++) {
var result = resultItems[i];
/** @type {string} */
point = point + ("RATING" == result ? template({
I : opt_attributes.r
}) + '<span class="sr-p">&nbsp;</span>' : "LINK_START" == result ? '<a href="' + start(replace(opt_attributes.ck)) + '" class="sr-rl"' + slice(reject(opt_attributes)) + ">" : "LINK_END" == result ? "</a>" : "NUM_START" == result ? '<span class="sr-number">' : "NUM_END" == result ? "</span>&nbsp;" : parent(forEach({
text : result,
g : opt_attributes.g
})));
}
return func(point + "</div>");
};
/**
* @param {?} data
* @return {?}
*/
var template = function(data) {
return func('<div class="sr-nsc"><img src="//www.google.com/images/sr-star-off.png" class="sr-star"/><img src="//www.google.com/images/sr-star-on' + (data.dk ? "-gray" : "") + '.png" class="sr-star" style="clip: rect(0px, ' + start(toString(13.2 * data.I)) + 'px, 13px, 0px);"/></div>');
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} initialState
* @param {string} R
* @param {?} debugMode
* @param {?} round
* @param {?} sock
* @param {Function} rootModel
* @return {undefined}
*/
var Game = function(initialState, R, debugMode, round, sock, rootModel) {
this.D = min();
this.vb = initialState;
/** @type {string} */
this.R = R;
this.Ga = debugMode;
this.ma = round;
this.H = sock;
this.C = rootModel || check;
};
/**
* @return {?}
*/
Game.prototype.f = function() {
return this.C({
uid : this.D,
Sj : this.vb,
j : this.R,
r : this.Ga,
ck : this.ma,
g : this.H
});
};
/**
* @param {string} d
* @param {Object} v
* @return {?}
*/
var val = function(d, v) {
return d.sr && (d.sr.nt && (d.sr.r && d.sr.u)) ? new Game(d.sr.nt, v.j, d.sr.r, d.sr.u, v.g) : result;
};
}
/**
* @param {?} opt_attributes
* @return {?}
*/
var toggle = function(opt_attributes) {
/** @type {string} */
var fn = "";
if (opt_attributes.af && 0 < opt_attributes.af.length) {
/** @type {string} */
fn = fn + ('<table class="sl-table" cellspacing="0" cellpadding="0" id="' + start(opt_attributes.uid) + '"><tbody><tr><td>');
var employees = opt_attributes.af;
var l = employees.length;
/** @type {number} */
var i = 0;
for (;i < l;i++) {
fn += show({
position : "left",
Ed : employees[i],
j : opt_attributes.j,
g : opt_attributes.g
});
}
fn += "</td><td>";
employees = opt_attributes.Nj;
l = employees.length;
/** @type {number} */
i = 0;
for (;i < l;i++) {
fn += show({
position : "right",
Ed : employees[i],
j : opt_attributes.j,
g : opt_attributes.g
});
}
fn += "</td></tr></tbody></table>";
if (opt_attributes.Je && (opt_attributes.ha && 0 < opt_attributes.ha.length)) {
fn += '<div class="c_">';
employees = opt_attributes.ha;
l = employees.length;
/** @type {number} */
i = 0;
for (;i < l;i++) {
fn += show({
position : "left",
Ed : employees[i],
j : opt_attributes.j,
g : opt_attributes.g
});
}
fn += "</div>";
}
}
return func(fn);
};
/**
* @param {?} e
* @return {?}
*/
var show = function(e) {
return func("<div class='sl-" + start(e.position) + "'><a href=\"" + start(replace(e.Ed.u)) + '" class="sl" ' + slice(reject(e)) + ">" + parent(forEach({
text : e.Ed.t,
g : e.g
})) + "</a></div>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var off = function(opt_attributes) {
/** @type {string} */
var point = '<ul class="sitelinks">';
var codeSegments = opt_attributes.ha;
var valuesLen = codeSegments.length;
/** @type {number} */
var i = 0;
for (;i < valuesLen;i++) {
var options = codeSegments[i];
/** @type {string} */
point = point + ('<li class="' + (2 == opt_attributes.Zf ? "twoColSitelink " : "") + start(opt_attributes.$e) + '"><div class="sitelink-spacer"><div class="sitelink-nowrap" style="direction: ' + (0 > quote(options.t) ? "rtl" : "ltr") + ';"><a href="' + start(replace(options.u)) + '" class="' + start(opt_attributes.$e) + '" ' + slice(reject(opt_attributes)) + ">" + $(options.t) + "</a></div></div></li>");
}
return func(point + "</ul>");
};
/**
* @param {Object} args
* @return {?}
*/
var remove = function(args) {
return func('<div class="sitelinksWrapper_js ' + start(args.nh) + '" ' + (args.uid ? ' id="' + start(args.uid) + '" ' : "") + '><div class="wideSitelinksWrapper_js">' + off({
ha : args.ha,
j : args.j,
Zf : 2,
$e : args.Wg
}) + '</div><div class="narrowSitelinksWrapper_js" style="display: none;">' + off({
ha : args.ha.slice(0, 3),
j : args.j,
Zf : 1,
$e : args.Vg
}) + "</div></div>");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var removeModel = function(opt_attributes) {
return func(remove({
uid : opt_attributes.uid,
ha : opt_attributes.ha,
j : opt_attributes.j,
Wg : "sitelinksTruncatedWide",
Vg : "sitelinksTruncatedNarrow",
nh : "nonSfblSitelinksWrapper"
}));
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Array} consumerKey
* @param {string} R
* @param {Array} realm
* @param {?} nonceSize
* @param {Function} a
* @return {undefined}
*/
var OAuth = function(consumerKey, R, realm, nonceSize, a) {
this.D = min();
/** @type {Array} */
this.Nb = consumerKey;
/** @type {string} */
this.R = R;
/** @type {Array} */
this.Aj = realm;
this.H = nonceSize;
this.C = a || toggle;
};
/**
* @return {?}
*/
OAuth.prototype.f = function() {
/** @type {Array} */
var arrayOfArgs = [];
/** @type {Array} */
var matched = [];
/** @type {number} */
var i = 0;
for (;i < this.Nb.length;i++) {
if (0 == i % 2) {
arrayOfArgs.push(this.Nb[i]);
} else {
matched.push(this.Nb[i]);
}
}
return this.C({
uid : this.D,
ha : this.Nb,
af : arrayOfArgs,
Nj : matched,
j : this.R,
Je : this.Aj,
g : this.H
});
};
/**
* @param {?} v23
* @return {?}
*/
OAuth.prototype.G = function(v23) {
return addLink(v23, this.D);
};
/**
* @param {?} v23
* @param {?} url
* @return {?}
*/
var addLink = function(v23, url) {
/** @type {Array} */
var value = [];
var items = parseFloat(v23, url).getElementsByTagName("a");
/** @type {number} */
var i = 0;
var item;
for (;item = items[i];i++) {
value.push(new Resource(item, "&nb=6"));
}
return value;
};
/**
* @param {string} value
* @param {Object} options
* @return {?}
*/
var build = function(value, options) {
return value.sls && 0 < value.sls.length ? options.Mj ? new ctor(value.sls, options.j) : new OAuth(value.sls, options.j, options.Je, options.g) : result;
};
/**
* @param {Array} maxNum
* @param {?} R
* @param {Function} initiator
* @return {undefined}
*/
var ctor = function(maxNum, R, initiator) {
this.D = min();
/** @type {Array} */
this.Nb = maxNum;
this.R = R;
this.C = initiator || removeModel;
};
/**
* @return {?}
*/
ctor.prototype.f = function() {
return this.C({
uid : this.D,
ha : this.Nb,
j : this.R
});
};
/**
* @param {?} v23
* @return {?}
*/
ctor.prototype.G = function(v23) {
return addLink(v23, this.D);
};
}
var _ColorsRef = {
aliceblue : "#f0f8ff",
antiquewhite : "#faebd7",
aqua : "#00ffff",
aquamarine : "#7fffd4",
azure : "#f0ffff",
beige : "#f5f5dc",
bisque : "#ffe4c4",
black : "#000000",
blanchedalmond : "#ffebcd",
blue : "#0000ff",
blueviolet : "#8a2be2",
brown : "#a52a2a",
burlywood : "#deb887",
cadetblue : "#5f9ea0",
chartreuse : "#7fff00",
chocolate : "#d2691e",
coral : "#ff7f50",
cornflowerblue : "#6495ed",
cornsilk : "#fff8dc",
crimson : "#dc143c",
cyan : "#00ffff",
darkblue : "#00008b",
darkcyan : "#008b8b",
darkgoldenrod : "#b8860b",
darkgray : "#a9a9a9",
darkgreen : "#006400",
darkgrey : "#a9a9a9",
darkkhaki : "#bdb76b",
darkmagenta : "#8b008b",
darkolivegreen : "#556b2f",
darkorange : "#ff8c00",
darkorchid : "#9932cc",
darkred : "#8b0000",
darksalmon : "#e9967a",
darkseagreen : "#8fbc8f",
darkslateblue : "#483d8b",
darkslategray : "#2f4f4f",
darkslategrey : "#2f4f4f",
darkturquoise : "#00ced1",
darkviolet : "#9400d3",
deeppink : "#ff1493",
deepskyblue : "#00bfff",
dimgray : "#696969",
dimgrey : "#696969",
dodgerblue : "#1e90ff",
firebrick : "#b22222",
floralwhite : "#fffaf0",
forestgreen : "#228b22",
fuchsia : "#ff00ff",
gainsboro : "#dcdcdc",
ghostwhite : "#f8f8ff",
gold : "#ffd700",
goldenrod : "#daa520",
gray : "#808080",
green : "#008000",
greenyellow : "#adff2f",
grey : "#808080",
honeydew : "#f0fff0",
hotpink : "#ff69b4",
indianred : "#cd5c5c",
indigo : "#4b0082",
ivory : "#fffff0",
khaki : "#f0e68c",
lavender : "#e6e6fa",
lavenderblush : "#fff0f5",
lawngreen : "#7cfc00",
lemonchiffon : "#fffacd",
lightblue : "#add8e6",
lightcoral : "#f08080",
lightcyan : "#e0ffff",
lightgoldenrodyellow : "#fafad2",
lightgray : "#d3d3d3",
lightgreen : "#90ee90",
lightgrey : "#d3d3d3",
lightpink : "#ffb6c1",
lightsalmon : "#ffa07a",
lightseagreen : "#20b2aa",
lightskyblue : "#87cefa",
lightslategray : "#778899",
lightslategrey : "#778899",
lightsteelblue : "#b0c4de",
lightyellow : "#ffffe0",
lime : "#00ff00",
limegreen : "#32cd32",
linen : "#faf0e6",
magenta : "#ff00ff",
maroon : "#800000",
mediumaquamarine : "#66cdaa",
mediumblue : "#0000cd",
mediumorchid : "#ba55d3",
mediumpurple : "#9370db",
mediumseagreen : "#3cb371",
mediumslateblue : "#7b68ee",
mediumspringgreen : "#00fa9a",
mediumturquoise : "#48d1cc",
mediumvioletred : "#c71585",
midnightblue : "#191970",
mintcream : "#f5fffa",
mistyrose : "#ffe4e1",
moccasin : "#ffe4b5",
navajowhite : "#ffdead",
navy : "#000080",
oldlace : "#fdf5e6",
olive : "#808000",
olivedrab : "#6b8e23",
orange : "#ffa500",
orangered : "#ff4500",
orchid : "#da70d6",
palegoldenrod : "#eee8aa",
palegreen : "#98fb98",
paleturquoise : "#afeeee",
palevioletred : "#db7093",
papayawhip : "#ffefd5",
peachpuff : "#ffdab9",
peru : "#cd853f",
pink : "#ffc0cb",
plum : "#dda0dd",
powderblue : "#b0e0e6",
purple : "#800080",
red : "#ff0000",
rosybrown : "#bc8f8f",
royalblue : "#4169e1",
saddlebrown : "#8b4513",
salmon : "#fa8072",
sandybrown : "#f4a460",
seagreen : "#2e8b57",
seashell : "#fff5ee",
sienna : "#a0522d",
silver : "#c0c0c0",
skyblue : "#87ceeb",
slateblue : "#6a5acd",
slategray : "#708090",
slategrey : "#708090",
snow : "#fffafa",
springgreen : "#00ff7f",
steelblue : "#4682b4",
tan : "#d2b48c",
teal : "#008080",
thistle : "#d8bfd8",
tomato : "#ff6347",
turquoise : "#40e0d0",
violet : "#ee82ee",
wheat : "#f5deb3",
white : "#ffffff",
whitesmoke : "#f5f5f5",
yellow : "#ffff00",
yellowgreen : "#9acd32"
};
/**
* @param {string} str
* @return {?}
*/
var parseTime = function(str) {
var result = {};
/** @type {string} */
str = String(str);
/** @type {string} */
var value = "#" == str.charAt(0) ? str : "#" + str;
if (rchecked.test(value)) {
return result.jd = match(value), result.type = "hex", result;
}
a: {
/** @type {(Array.<string>|null)} */
var pos = str.match(pat);
if (pos) {
/** @type {number} */
value = Number(pos[1]);
/** @type {number} */
var month = Number(pos[2]);
/** @type {number} */
pos = Number(pos[3]);
if (0 <= value && (255 >= value && (0 <= month && (255 >= month && (0 <= pos && 255 >= pos))))) {
/** @type {Array} */
value = [value, month, pos];
break a;
}
}
/** @type {Array} */
value = [];
}
if (value.length) {
return result.jd = serialize(value[0], value[1], value[2]), result.type = "rgb", result;
}
if (_ColorsRef && (value = _ColorsRef[str.toLowerCase()])) {
return result.jd = value, result.type = "named", result;
}
throw Error(str + " is not a valid color string");
};
/** @type {RegExp} */
var cx = /#(.)(.)(.)/;
/**
* @param {string} text
* @return {?}
*/
var match = function(text) {
if (!rchecked.test(text)) {
throw Error("'" + text + "' is not a valid hex color");
}
if (4 == text.length) {
text = text.replace(cx, "#$1$1$2$2$3$3");
}
return text.toLowerCase();
};
/**
* @param {number} val
* @param {number} index
* @param {number} number
* @return {?}
*/
var serialize = function(val, index, number) {
/** @type {number} */
val = Number(val);
/** @type {number} */
index = Number(index);
/** @type {number} */
number = Number(number);
if (isNaN(val) || (0 > val || (255 < val || (isNaN(index) || (0 > index || (255 < index || (isNaN(number) || (0 > number || 255 < number)))))))) {
throw Error('"(' + val + "," + index + "," + number + '") is not a valid RGB color');
}
val = arrayIndexOf(val.toString(16));
index = arrayIndexOf(index.toString(16));
number = arrayIndexOf(number.toString(16));
return "#" + val + index + number;
};
/** @type {RegExp} */
var rchecked = /^#(?:[0-9a-f]{3}){1,2}$/i;
/** @type {RegExp} */
var pat = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;
/**
* @param {string} a
* @return {?}
*/
var arrayIndexOf = function(a) {
return 1 == a.length ? "0" + a : a;
};
/**
* @param {Array} x
* @param {Array} obj
* @return {?}
*/
var _get = function(x, obj) {
/** @type {Array} */
var results = [];
/** @type {number} */
var i = 0;
for (;i < obj.length;i++) {
results.push({
color : obj[i],
bg : isEmpty(obj[i], x) + makeStructured(obj[i], x)
});
}
results.sort(function(b, a) {
return a.bg - b.bg;
});
return results[0].color;
};
/**
* @param {Array} value
* @param {Array} str
* @return {?}
*/
var isEmpty = function(value, str) {
return Math.abs(Math.round((299 * value[0] + 587 * value[1] + 114 * value[2]) / 1E3) - Math.round((299 * str[0] + 587 * str[1] + 114 * str[2]) / 1E3));
};
/**
* @param {Array} obj
* @param {Array} v00
* @return {?}
*/
var makeStructured = function(obj, v00) {
return Math.abs(obj[0] - v00[0]) + Math.abs(obj[1] - v00[1]) + Math.abs(obj[2] - v00[2]);
};
/**
* @param {?} obj
* @return {undefined}
*/
var objectType = function(obj) {
this.Nf = obj;
};
/**
* @return {?}
*/
objectType.prototype.da = function() {
/** @type {string} */
var da = "A CSS color";
if (this.Nf) {
da += " including 'transparent'";
}
return da;
};
/**
* @param {string} n
* @return {?}
*/
objectType.prototype.S = function(n) {
if (this.Nf && (isObject(n) && "transparent" == n.toLowerCase())) {
return "transparent";
}
try {
return parseTime("" + n).jd;
} catch (b) {
return null;
}
};
/** @type {function (): ?} */
objectType.prototype.ca = tryIt;
var docCount = new objectType(false);
/**
* @param {Array} array
* @return {?}
*/
var clean = function(array) {
/** @type {string} */
var ret = "";
array = array.Bj;
var ln = array.length;
/** @type {number} */
var i = 0;
for (;i < ln;i++) {
ret += '<div class="ad' + (0 == i ? " f" : "") + (i == ln - 1 ? " l" : "") + ' adUnit_js">' + array[i] + "</div>";
}
return ret;
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var onLoad = function(opt_attributes) {
return "" + (opt_attributes.B.adIconUrl && ("ad-left" == opt_attributes.B.adIconLocation && opt_attributes.B.img) ? (opt_attributes.Tc ? '<a href="' + opt_attributes.B.u + '" ' + reject(opt_attributes) + 'id="' + opt_attributes.Zi + '">' : "") + '<img class="adIcon" src="' + opt_attributes.B.adIconUrl + '"/>' + (opt_attributes.Tc ? "</a>" : "") : "");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var call = function(opt_attributes) {
return "" + (opt_attributes.B.adIconUrl && ("ad-left" == opt_attributes.B.adIconLocation && !opt_attributes.B.img) ? '<iframe class="adIcon" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowTransparency="true" sandbox="" src="' + opt_attributes.B.adIconUrl + '"></iframe>' : "");
};
/**
* @param {?} o
* @return {?}
*/
var def = function(o) {
return "" + (o.Rd ? '<span class="' + (o.X ? $(o.X) : "") + '" id="attribution">' + (o.Pc ? '<a href="' + $(o.Pc) + '" target="_blank">' : "") + $(o.Rd) + (o.Pc ? "</a>" : "") + "</span>" : "");
};
/**
* @param {(Object|string)} o
* @return {?}
*/
var toArray = function(o) {
var id;
if (o.gc) {
/** @type {string} */
id = '<span class="' + (o.X ? $(o.X) : "") + '" id="' + $(o.id) + '">';
o = o.gc;
o = indexOf(o, wildcardName) ? "zSoyz" : o;
/** @type {string} */
id = id + o + "</span>";
} else {
/** @type {string} */
id = "";
}
return "" + id;
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var onReadyStateChange = function(opt_attributes) {
/** @type {string} */
var a = (opt_attributes.Tg ? "" : call(opt_attributes)) + '<div class="a_ b_' + (opt_attributes.B.rais && 0 < opt_attributes.B.rais.length ? " raiDiv" : "") + '" id="' + opt_attributes.uid + '">' + (opt_attributes.Tg ? "" : onLoad({
B : opt_attributes.B,
Tc : opt_attributes.Vd,
j : opt_attributes.j,
Zi : opt_attributes.Sh
})) + '<div class="adD' + (opt_attributes.nk ? " nesWrapper" : "") + (opt_attributes.B.topad ? " g_" : "") + '">';
var b;
b = opt_attributes.Uj ? func('<a href="' + start(replace(opt_attributes.B.u)) + '" class="thumbicon" style="background-image:url(\'' + start(replace(opt_attributes.B.kodachrome.u)) + "');\"" + slice(reject(opt_attributes)) + "></a>") : "";
return a + b + opt_attributes.Th + opt_attributes.ai + "</div></div>" + ("" + (opt_attributes.B.adIconUrl && ("ad-left" == opt_attributes.B.adIconLocation && !opt_attributes.B.img) ? '<div style="clear: both;"></div>' : ""));
};
/**
* @param {Object} data
* @return {?}
*/
var trigger = function(data) {
return func(data.text ? '<div class="l_">' + $(data.text) + "</div>" : "");
};
/**
* @param {?} opt_attributes
* @return {?}
*/
var fn = function(opt_attributes) {
/** @type {string} */
var url = "";
if (opt_attributes.Ad && 0 < opt_attributes.Ad.length) {
/** @type {string} */
url = url + '<div class="apareviews">';
var codeSegments = opt_attributes.Ad;
var valuesLen = codeSegments.length;
/** @type {number} */
var i = 0;
for (;i < valuesLen;i++) {
var data = codeSegments[i];
data = {
text : data.t,
source : data.s,
Xg : data.su,
g : opt_attributes.g
};
data = func(data.text ? '<div class="apareview">' + parent(forEach(data)) + "&nbsp;-&nbsp;" + (data.Xg ? '<a href="' + start(replace(data.Xg)) + '" class="reviewlink"' + slice(reject({
j : true
})) + ">" + parent(forEach({
text : data.source,
g : data.g
})) + "</a>" : parent(forEach({
text : data.source,
g : data.g
}))) + "</div>" : "");
/** @type {string} */
url = url + data;
}
url += "</div>";
} else {
if (opt_attributes.nb) {
url += parent(trigger({
text : opt_attributes.nb
}));
}
}
return func(url);
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} line
* @param {?} _arg
* @param {?} parentEl
* @param {Function} context
* @return {undefined}
*/
var Text = function(line, _arg, parentEl, context) {
this.D = min();
this.Dj = line;
this.ue = _arg;
this.H = parentEl;
this.C = context || fn;
};
/**
* @return {?}
*/
Text.prototype.f = function() {
return this.C({
uid : this.D,
Ad : this.Dj,
nb : this.ue,
g : this.H
});
};
/**
* @param {string} options
* @param {Object} settings
* @return {?}
*/
var animation = function(options, settings) {
var _x = options.gt && ("ar" == options.gt.r && options.gt.t) ? options.gt.t : null;
return options.ar && 0 < options.ar.length || _x ? new Text(options.ar, _x, settings.g) : result;
};
}
/**
* @param {?} opt_attributes
* @return {?}
*/
var _set = function(opt_attributes) {
/** @type {string} */
var later = "";
if (opt_attributes.vd && 0 < opt_attributes.vd.length) {
later += '<div class="m_">' + (opt_attributes.kh ? '<img class="p_" src="//www.google.com/images/afs/offer_tag_light.png" />' : "");
opt_attributes = opt_attributes.vd;
var valuesLen = opt_attributes.length;
/** @type {number} */
var i = 0;
for (;i < valuesLen;i++) {
later += '<span class="n_">' + (0 != i ? "&#183;&nbsp;" : "") + '<span class="o_">' + $(opt_attributes[i].t) + "</span> </span>";
}
later += "</div>";
} else {
if (opt_attributes.nb) {
later += parent(trigger({
text : opt_attributes.nb
}));
}
}
return func(later);
};
/** @type {null} */
var bool = null;
/**
* @return {?}
*/
var setFillAndStroke = function() {
if (null != bool) {
return bool;
}
/** @type {Element} */
var container = document.createElement("div");
/** @type {string} */
container.style.width = "1px";
/** @type {string} */
container.style.height = "1px";
/** @type {string} */
container.style.border = "1px solid black";
/** @type {string} */
container.style.padding = "1px";
/** @type {string} */
container.style.visibility = "hidden";
document.body.appendChild(container);
var width = container.offsetWidth;
document.body.removeChild(container);
return bool = 5 == width;
};
/**
* @param {string} obj
* @return {?}
*/
var isNaN = function(obj) {
return setShortStyleProperty(obj, true);
};
/**
* @param {string} value
* @return {?}
*/
var stringify = function(value) {
return value.replace(/<[^>^<]*>/g, "");
};
/**
* @param {Object} style
* @return {?}
*/
var style = function(style) {
var value = style.offsetWidth;
if (!setFillAndStroke()) {
return value;
}
var doc = document.defaultView || {};
if (doc && doc.getComputedStyle) {
style = doc.getComputedStyle(style, false);
value -= getComputedStyle(style.getPropertyValue("padding-left")) + getComputedStyle(style.getPropertyValue("padding-right"));
} else {
style = style.currentStyle;
value -= getComputedStyle(style.paddingLeft) + getComputedStyle(style.paddingRight);
}
return value;
};
/**
* @param {Node} node
* @return {?}
*/
var createElement = function(node) {
var n = node.cloneNode(true);
/** @type {string} */
n.style.visibility = "hidden";
/** @type {string} */
n.style.position = "absolute";
if (createTextNode()) {
var el = node.ownerDocument.createElement("div");
/** @type {string} */
el.style.visibility = "hidden";
/** @type {string} */
el.style.position = "relative";
/** @type {string} */
el.style.width = "9999px";
el.appendChild(n);
node.parentNode.appendChild(el);
} else {
/** @type {string} */
n.style.top = "0";
/** @type {string} */
n.style.whiteSpace = "nowrap";
node.parentNode.appendChild(n);
}
node = new Node(n.offsetWidth, n.offsetHeight);
if (createTextNode()) {
el.parentNode.removeChild(el);
} else {
n.parentNode.removeChild(n);
}
return node;
};
/** @type {RegExp} */
var percentPattern = /([?|&]{1}nm=)([\d]{1,})/;
/** @type {RegExp} */
var cjsRequireRegExp = /(\?|&)clkt=-?[\d]*/g;
/** @type {RegExp} */
var rxhtmlTag = /[&\?]nb=\d/;
/** @type {RegExp} */
var rSlash = /(\?|&)nx=-?[\d]+/g;
/** @type {RegExp} */
var trimReplace = /(\?|&)ny=-?[\d]+/g;
/**
* @param {Array} ca
* @return {?}
*/
var create = function(ca) {
return function() {
/** @type {number} */
var i = 0;
for (;i < ca.length;i++) {
var c = ca[i];
var value = c.element.href;
var reqVerArray = value.match(percentPattern);
if (reqVerArray) {
if (3 == reqVerArray.length) {
value = value.replace(percentPattern, reqVerArray[1] + (parseInt(reqVerArray[2], 10) + 1));
}
} else {
value += (-1 == value.indexOf("?") ? "?" : "&") + "nm=1";
}
append(c, value);
}
};
};
/**
* @param {?} el
* @return {?}
*/
var compile = function(el) {
return function() {
if (el.He) {
/** @type {string} */
var post = "&clkt=" + ((new Date).getTime() - el.He);
var base = el.element.href;
base = base.replace(cjsRequireRegExp, "");
append(el, base + post);
}
};
};
/**
* @param {?} el
* @return {?}
*/
var postLink = function(el) {
return function(e) {
/** @type {number} */
el.He = (new Date).getTime();
var pos = getOffset(el.element);
var y = e.clientY;
/** @type {number} */
e = Math.round(e.clientX - pos.x);
/** @type {number} */
pos = Math.round(y - pos.y);
y = el.element.href;
y = y.replace(rSlash, "");
y = y.replace(trimReplace, "");
/** @type {string} */
y = y + ("&nx=" + e) + ("&ny=" + pos);
append(el, y);
};
};
/**
* @param {string} result
* @param {string} prefix
* @param {string} v
* @return {?}
*/
var getName = function(result, prefix, v) {
return-1 == result.indexOf(prefix) && (1950 > result.length + prefix.length && (result += prefix + encodeURIComponent(v), 1950 < result.length)) ? result.substring(0, 1950) : result;
};
/**
* @param {?} el
* @param {(number|string)} o
* @return {undefined}
*/
var insert = function(el, o) {
attach(el.element, function() {
var a;
var b;
try {
a = isNaN(o);
b = setShortStyleProperty(o, false);
} catch (e) {
}
if (a && b) {
var value = el.element.href;
value = getName(value, "&is=", [b, a].join("x"));
append(el, value);
}
});
};
/**
* @param {Element} element
* @param {?} resource_id
* @return {undefined}
*/
var Resource = function(element, resource_id) {
this.mi = resource_id;
/** @type {Element} */
this.element = element;
/** @type {null} */
this.He = null;
};
/**
* @param {?} container
* @param {?} value
* @return {undefined}
*/
var append = function(container, value) {
var el = container.element;
if (!(2E3 < value.length)) {
/** @type {Array} */
var codeSegments = [];
var i = el.innerHTML;
var first = el.firstChild;
for (;first;first = first.nextSibling) {
codeSegments.push(first.cloneNode(true));
}
el.href = value;
if (isValid && el.innerHTML != i) {
/** @type {string} */
el.innerHTML = "";
/** @type {number} */
i = 0;
for (;i < codeSegments.length;i++) {
el.appendChild(codeSegments[i]);
}
}
}
};
/**
* @return {undefined}
*/
Resource.prototype.Qd = function() {
addEvent(this.element, "mouseover", create([this]));
addEvent(this.element, "mousedown", postLink(this));
addEvent(this.element, "mouseup", compile(this));
var value = this.element.href;
value = value.replace(rxhtmlTag, "");
value = value + this.mi;
append(this, value);
};
/**
* @param {(Array|string)} data
* @param {Object} e
* @param {number} target
* @param {Object} options
* @return {undefined}
*/
var refresh = function(data, e, target, options) {
/** @type {number} */
var i = 0;
for (;i < data.length;i++) {
var el = data[i];
el.Qd();
insert(el, target);
if (void 0 != options.resultUrl) {
var val = options.resultUrl;
val = void 0 == val ? document.location.href : val;
if ("" != val) {
var value = el.element.href;
value = getName(value, "&res_url=", val);
append(el, value);
}
}
if (void 0 != options.refererUrl) {
val = options.refererUrl;
val = void 0 == val ? document.referrer : val;
if ("" != val) {
value = el.element.href;
value = getName(value, "&rurl=", val);
append(el, value);
}
}
}
if (0 < data.length) {
addEvent(e, "mouseover", create(data));
}
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/** @type {RegExp} */
var isSimple = /^https?:\/\/afs.googleusercontent.com\//;
/**
* @param {Array} images
* @param {string} qualifier
* @param {?} x
* @param {string} recurring
* @return {undefined}
*/
var formatter = function(images, qualifier, x, recurring) {
if (!recurring || isSimple.test(qualifier)) {
/** @type {number} */
var i = 0;
for (;i < images.length;i++) {
/** @type {string} */
images[i].adIconUrl = qualifier;
images[i].adIconLocation = x;
/** @type {string} */
images[i].img = recurring;
}
}
};
formatter = cb(formatter, "aiIID");
}
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} data
* @param {number} element
* @param {?} obj
* @param {Object} elements
* @return {undefined}
*/
var register = function(data, element, obj, elements) {
if ((data = concatCall(data, elements)) && 0 < data.length) {
if (elements.adClicktracking) {
obj = send("block", "" + obj, data);
elements = qsa(element, "div", "b_");
elements = elements.concat(qsa(element, "tr", "b_"));
/** @type {number} */
element = 0;
var instance;
for (;instance = elements[element];element++) {
data = obj;
data = send("ad", "" + (element + 1), data);
bindEvents(instance, data);
}
} else {
bindEvents(element, data);
}
}
};
/**
* @param {?} data
* @param {Object} elements
* @return {?}
*/
var concatCall = function(data, elements) {
return elements.clicktracking && (data.clicktrackUrl && 0 < data.clicktrackUrl.length) ? data.clicktrackUrl : null;
};
/**
* @param {Object} element
* @param {?} el
* @return {undefined}
*/
var bindEvents = function(element, el) {
var codeSegments = element.getElementsByTagName("a");
/** @type {number} */
var i = 0;
for (;i < codeSegments.length;i++) {
var e = codeSegments[i];
if (re.test(e.href)) {
if ("ontouchstart" in document.documentElement) {
addEvent(e, "touchstart", touchstart);
addEvent(e, "touchmove", touchmove);
addEvent(e, "touchend", function() {
if (Zf) {
execCommand(generate(el));
}
/** @type {boolean} */
Zf = false;
});
} else {
addEvent(e, "mousedown", function(event) {
/** @type {boolean} */
var c = false;
if (c = event.which ? 2 > event.which : 2 > event.button) {
execCommand(generate(el));
}
});
}
}
}
};
var x;
var y;
/** @type {boolean} */
var Zf = false;
/**
* @param {Object} e
* @return {undefined}
*/
var touchstart = function(e) {
/** @type {boolean} */
Zf = false;
e = e.touches;
if (1 == e.length) {
e = e[0];
x = e.clientX;
y = e.clientY;
/** @type {boolean} */
Zf = true;
}
};
/**
* @param {Object} event
* @return {undefined}
*/
var touchmove = function(event) {
event = event.touches[0];
if (10 < Math.abs(event.clientX - x) || 10 < Math.abs(event.clientY - y)) {
/** @type {boolean} */
Zf = false;
}
};
}
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Object} done
* @return {?}
*/
var transform = function(done) {
/** @type {Array} */
var out = [];
done = qsa(done, "div", "adUnit_js");
/** @type {number} */
var id = 0;
var matches;
for (;matches = done[id];id++) {
matches = qsa(matches, "div", "adStd");
/** @type {number} */
var sel = 0;
var copies;
for (;copies = matches[sel];sel++) {
out.push(copies);
}
}
return out;
};
transform = cb(transform, "fCE");
/**
* @param {HTMLElement} e
* @param {number} index
* @param {string} data
* @return {undefined}
*/
var click = function(e, index, data) {
var udataCur = e.getAttribute("data-click-s");
var suiteView = e.getAttribute("data-click-trg");
if (udataCur) {
if (suiteView) {
addEvent(e, "click", select(udataCur, suiteView, data && 0 < data.length ? generate(send("ad", "" + (index + 1), data)) : null));
}
}
};
click = cb(click, "aCB");
/**
* @param {Object} v
* @param {string} data
* @param {(number|string)} index
* @return {undefined}
*/
var enter = function(v, data, index) {
if (data) {
if (0 < data.length) {
data = send("block", "" + index, data);
}
}
v = transform(v);
/** @type {number} */
index = 0;
var e;
for (;e = v[index];index++) {
click(e, index, data);
}
};
enter = cb(enter, "cbACB");
/**
* @param {string} value
* @param {string} obj
* @param {Array} data
* @return {?}
*/
var select = function(value, obj, data) {
return function(e) {
if (e) {
if (e = e.target || e.srcElement) {
if (3 == e.nodeType) {
e = e.parentNode;
}
if (!focus(e)) {
if (data) {
execCommand(data);
}
value += "&nb=2";
if ("_blank" == obj) {
window.open(value);
} else {
/** @type {string} */
window.top.location.href = value;
}
}
}
}
};
};
select = cb(select, "cbBCH");
/**
* @param {Object} elm
* @return {?}
*/
var focus = function(elm) {
for (;elm && !addClass(elm, "adStd");) {
if ("a" == elm.nodeName.toLowerCase()) {
return true;
}
elm = elm.parentNode;
}
return false;
};
focus = cb(focus, "cbLTOCH");
}
/**
* @param {Node} node
* @param {boolean} code
* @return {?}
*/
var highlight = function(node, code) {
if (!node) {
return false;
}
if (3 == node.nodeType && (node.nodeValue && (code && (node.nodeValue += " ..."), 4 < node.nodeValue.length))) {
var text = node.nodeValue;
/** @type {number} */
var availableTextChars = node.nodeValue.length - 1;
if (text.length > availableTextChars) {
/** @type {string} */
text = text.substring(0, availableTextChars - 3) + "...";
}
node.nodeValue = text;
return false;
}
text = node.textContent || node.innerText;
if (!text || text.length <= (code ? 0 : 4)) {
return node.parentNode.removeChild(node), true;
}
text = highlight(node.lastChild, code);
for (;text;) {
text = highlight(node.lastChild, text);
}
return false;
};
/**
* @param {Element} node
* @param {number} h
* @return {undefined}
*/
var hide = function(node, h) {
if (!(0 >= h)) {
var cnl = node.innerHTML.length;
for (;0 < cnl && node.offsetHeight > h;cnl--) {
/** @type {Element} */
var startNode = node;
var code = highlight(startNode.lastChild, false);
for (;code;) {
code = highlight(startNode.lastChild, code);
}
}
if (node.offsetHeight > h) {
/** @type {string} */
node.innerHTML = "";
}
}
};
/**
* @param {Element} node
* @param {number} opt_attributes
* @return {undefined}
*/
var slide = function(node, opt_attributes) {
var whiteSpace = node.style.whiteSpace;
var wordWrap = node.style.wordWrap;
/** @type {string} */
node.style.whiteSpace = "nowrap";
/** @type {string} */
node.style.wordWrap = "normal";
var height = node.offsetHeight;
node.style.whiteSpace = whiteSpace;
node.style.wordWrap = wordWrap;
hide(node, height * opt_attributes + opt_attributes);
};
/**
* @param {Element} a
* @param {undefined} y
* @param {?} content
* @param {?} xhtml
* @param {?} c
* @return {undefined}
*/
var f = function(a, y, content, xhtml, c) {
var h = a.offsetHeight;
if (!(h <= y)) {
var t = runTest(a);
a = runTest(t);
/** @type {string} */
t.style.overflow = "hidden";
/** @type {string} */
t.style.position = "relative";
/** @type {Element} */
var e = document.createElement("div");
try {
/** @type {string} */
e.style.backgroundImage = "linear-gradient(to bottom, rgba(255,255,255,0), #ffffff)";
} catch (p) {
}
/** @type {string} */
e.style.height = "30px";
/** @type {string} */
e.style.position = "absolute";
/** @type {number} */
e.style.bottom = 0;
/** @type {string} */
e.style.width = "100%";
/** @type {string} */
e.style.pointerEvents = "none";
t.appendChild(e);
/** @type {Element} */
var element = document.createElement("div");
element.innerHTML = content;
/** @type {string} */
element.className = "expander";
/** @type {string} */
element.style.textAlign = "center";
element.style.color = c;
/** @type {string} */
element.style.cursor = "pointer";
/** @type {string} */
element.style.fontSize = "11px";
a.appendChild(element);
/** @type {number} */
var bottom = y - element.offsetHeight;
/** @type {string} */
t.style.height = bottom + "px";
/** @type {number} */
var i = h - bottom;
/** @type {(HTMLElement|null)} */
var n = document.getElementById("adBlock");
/**
* @param {number} dataAndEvents
* @return {undefined}
*/
var init = function(dataAndEvents) {
/** @type {(null|number)} */
var h = n ? n.offsetHeight : null;
/** @type {string} */
t.style.height = bottom + dataAndEvents * i + "px";
if (0.8 <= dataAndEvents) {
element.innerHTML = xhtml;
/** @type {string} */
e.style.background = "";
}
if (n) {
if (h) {
if (n.offsetHeight > h) {
if (n) {
if (0.2 >= dataAndEvents) {
/** @type {string} */
n.style.paddingBottom = "4px";
}
}
if (n && 0.98 <= dataAndEvents) {
/** @type {string} */
n.style.paddingBottom = "1px";
} else {
if (n && 0.97 <= dataAndEvents) {
/** @type {string} */
n.style.paddingBottom = "2px";
} else {
if (n) {
if (0.96 <= dataAndEvents) {
/** @type {string} */
n.style.paddingBottom = "3px";
}
}
}
}
}
}
}
if (n) {
if (1 == dataAndEvents) {
/** @type {string} */
n.style.paddingBottom = "";
}
}
if (window.onresize) {
window.onresize();
}
};
/**
* @param {number} dataAndEvents
* @return {undefined}
*/
var drawScroll = function(dataAndEvents) {
/** @type {string} */
t.style.height = h - dataAndEvents * i + "px";
if (0.2 >= dataAndEvents) {
try {
/** @type {string} */
e.style.backgroundImage = "linear-gradient(to bottom, rgba(255,255,255,0), #ffffff)";
} catch (b) {
}
}
if (0.8 <= dataAndEvents) {
element.innerHTML = content;
}
if (window.onresize) {
window.onresize();
}
};
var memory = new report(400);
addEvent(element, "click", function() {
if (memory.rb || element.innerHTML != content) {
if (!memory.rb) {
/** @type {function (number): undefined} */
memory.Cc = drawScroll;
tick(memory);
}
} else {
/** @type {function (number): undefined} */
memory.Cc = init;
tick(memory);
}
});
}
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Window} b
* @param {?} message
* @param {?} xhtml
* @return {undefined}
*/
var assertEquals = function(b, message, xhtml) {
slide(parseFloat(b.document, message), 2);
addEvent(b, "resize", function() {
var e = parseFloat(b.document, message);
e.innerHTML = xhtml;
slide(e, 2);
});
};
/**
* @param {?} escape
* @param {string} i
* @param {?} page
* @param {?} val
* @param {?} index
* @param {?} data
* @param {string} list
* @param {?} nc
* @param {?} x
* @param {string} n
* @param {?} error
* @param {?} selection
* @param {?} v
* @param {Function} row_id
* @return {undefined}
*/
var item = function(escape, i, page, val, index, data, list, nc, x, n, error, selection, v, row_id) {
this.D = min();
this.J = escape;
/** @type {string} */
this.O = i;
this.ib = min();
this.N = page;
this.cc = val;
this.pb = index;
this.ia = data;
/** @type {string} */
this.Xb = list;
this.nc = nc;
this.kc = x;
/** @type {string} */
this.ec = n;
this.Ga = error;
this.sb = selection;
this.H = v;
this.$ = row_id || loop;
this.Ab = min();
this.va = min();
};
/**
* @return {?}
*/
item.prototype.f = function() {
var value = getStyle({
elements : [this.ia.f(), this.N.f()]
});
var elements = getStyle({
elements : [this.J.f(), this.pb.f()]
});
var arr = this.cc ? value : this.O.f();
var computed = this.cc ? this.O.f() : value;
value = this.$({
Ba : elements,
Ca : arr,
od : computed,
Bc : this.D,
Qb : this.ib,
ea : this.Xb,
ga : this.nc,
jc : this.kc,
dc : this.ec,
I : this.Ga,
L : this.sb,
yc : false,
g : this.H
});
elements = this.$({
Ba : elements,
Ca : arr,
od : computed,
Bc : this.Ab,
Qb : this.va,
I : this.Ga,
L : this.sb,
yc : true,
g : this.H
});
return getStyle({
elements : [value, elements]
});
};
/**
* @param {Window} input
* @return {undefined}
*/
item.prototype.W = function(input) {
var html = parseFloat(input.document, this.ib).innerHTML;
assertEquals(input, this.ib, html);
if (this.va) {
html = parseFloat(input.document, this.va).innerHTML;
assertEquals(input, this.va, html);
}
if (this.Ab) {
addEvent(input, "resize", link(input, this.D, this.Ab));
}
};
/**
* @param {?} d
* @return {?}
*/
item.prototype.G = function(d) {
return this.J.G(d).concat(this.N.G(d));
};
/**
* @param {?} key
* @param {string} module
* @param {?} node
* @param {?} exports
* @param {?} newValue
* @param {string} sel
* @param {string} nc
* @param {?} force
* @param {string} localScope
* @param {?} scope
* @param {?} blank
* @param {?} t
* @param {?} code
* @return {undefined}
*/
var a = function(key, module, node, exports, newValue, sel, nc, force, localScope, scope, blank, t, code) {
this.D = min();
this.J = key;
/** @type {string} */
this.O = module;
this.ib = min();
this.N = node;
this.pb = exports;
this.ia = newValue;
/** @type {string} */
this.Xb = sel;
/** @type {string} */
this.nc = nc;
this.kc = force;
/** @type {string} */
this.ec = localScope;
this.Ga = scope;
this.sb = blank;
this.H = t;
this.$ = code || push;
this.Ab = min();
this.va = min();
};
/**
* @return {?}
*/
a.prototype.f = function() {
var elements = getStyle({
elements : [this.J.f(), this.pb.f()]
});
var style = getStyle({
elements : [this.ia.f(), " ", this.N.f(), " ", this.O.f()]
});
var element = this.$({
Ba : elements,
Ca : style,
Bc : this.D,
Qb : this.ib,
ea : this.Xb,
ga : this.nc,
jc : this.kc,
dc : this.ec,
I : this.Ga,
L : this.sb,
yc : false,
g : this.H
});
elements = this.$({
Ba : elements,
Ca : style,
Bc : this.Ab,
Qb : this.va,
I : this.Ga,
L : this.sb,
yc : true,
g : this.H
});
return getStyle({
elements : [element, elements]
});
};
/**
* @param {Window} input
* @return {undefined}
*/
a.prototype.W = function(input) {
var html = parseFloat(input.document, this.ib).innerHTML;
assertEquals(input, this.ib, html);
if (this.va) {
html = parseFloat(input.document, this.va).innerHTML;
assertEquals(input, this.va, html);
}
if (this.Ab) {
addEvent(input, "resize", link(input, this.D, this.Ab));
}
};
/**
* @param {?} d
* @return {?}
*/
a.prototype.G = function(d) {
return this.J.G(d).concat(this.N.G(d));
};
/**
* @param {?} tileHeight
* @param {string} book
* @param {?} inputStr
* @param {?} author
* @param {?} image
* @param {string} nc
* @param {?} dataAndEvents
* @param {string} path
* @param {?} tileWidth
* @param {?} PREFIX
* @param {?} o
* @return {undefined}
*/
var Type = function(tileHeight, book, inputStr, author, image, nc, dataAndEvents, path, tileWidth, PREFIX, o) {
this.J = tileHeight;
/** @type {string} */
this.O = book;
this.N = inputStr;
this.ia = author;
this.Xb = image;
/** @type {string} */
this.nc = nc;
this.kc = dataAndEvents;
/** @type {string} */
this.ec = path;
this.Ga = tileWidth;
this.sb = PREFIX;
this.$ = o || ready;
};
/**
* @return {?}
*/
Type.prototype.f = function() {
var style = getStyle({
elements : [this.ia.f(), " ", this.J.f(), " "]
});
var elem_styles = getStyle({
elements : [" ", this.O.f(), " ", this.N.f()]
});
return this.$({
Wi : style,
Xi : elem_styles,
ea : this.Xb,
ga : this.nc,
jc : this.kc,
dc : this.ec,
I : this.Ga,
L : this.sb
});
};
/**
* @param {?} d
* @return {?}
*/
Type.prototype.G = function(d) {
return this.J.G(d).concat(this.N.G(d));
};
}
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {string} data
* @param {boolean} recurring
* @param {Object} o
* @param {string} object
* @param {string} type
* @return {undefined}
*/
var draw = function(data, recurring, o, object, type) {
this.D = min();
/** @type {string} */
this.Lc = data;
/** @type {boolean} */
this.caps_ = recurring;
/** @type {Object} */
this.o = o;
this.C = type || onReadyStateChange;
object = data.ctc && data.ctc.coa ? new R(func(data.tr.c), data.ctc.u, o.j, data.tr.rtl, o.g, data.ctc.ph, !!data.ctc.ht, data.ctc.d, void 0) : new SwaggerOperation(func(data.tr.c), data.u, o.j, data.tr.rtl, o.g, void 0);
var options;
options = new Ellipse(func(data.v), data.u, o.j, o.g, void 0);
type = func(data.l1r && data.l1r.c ? data.l1r.c : "");
var actual = func(data.l2r && data.l2r.c ? data.l2r.c : "");
var attrs = data.l1r && data.l1r.rtl ? data.l1r.rtl : false;
type = o.ni && !o.cb ? new Color(type, actual, attrs, o.g, data.u, o.j, void 0) : new Event(type, actual, attrs, o.g, void 0);
actual = data.adIconUrl && "title-right" == data.adIconLocation ? new Player(data.adIconUrl, data.img ? loaded : parseStartTag) : result;
if (data.ctd) {
options = "" != data.ctd.as ? new Ellipse(data.ctd.as, data.u, o.j, o.g) : options;
if (attrs = data.ctd.iu) {
/** @type {string} */
var ref = data.ctd.ih > data.ctd.iw ? "height" : "width";
var u = data.u;
var radius = data.ctd.ir;
} else {
radius = u = ref = void 0;
}
var r = data.ctd.r;
var nr = data.ctd.nr;
switch(o.rc) {
case 1:
object = new Type(object, type, options, o.Gb, attrs, ref, u, radius, r, nr);
break;
case 2:
object = new a(object, type, options, actual, o.Gb, attrs, ref, u, radius, r, nr, o.g);
break;
default:
object = new item(object, type, options, o.dg, actual, o.Gb, attrs, ref, u, radius, r, nr, o.g);
}
} else {
switch(o.rc) {
case 1:
object = new Item(object, type, options, o.Gb);
break;
case 2:
object = new LonLat(object, type, options, actual, o.Gb);
break;
default:
object = new anonymous(object, type, options, o.dg, actual, o.Gb);
}
}
this.ta = new Validator(object, data, o);
/** @type {Array} */
data = recurring.isHighendMobile ? recurring.reviewUnderSellerRating ? [build(data, o), val(data, o), animation(data, o), validate(data, o), calc(data, o), getter(data, o), h(data, o)] : [animation(data, o), build(data, o), val(data, o), validate(data, o), calc(data, o), getter(data, o), h(data, o)] : recurring.reviewUnderSellerRating ? [validate(data, o), calc(data, o), build(data, o), val(data, o), animation(data, o), getter(data, o)] : [animation(data, o), validate(data, o), calc(data, o),
build(data, o), val(data, o), getter(data, o)];
this.Qc = new Float32Array(data);
this.Mf = min();
};
/**
* @return {?}
*/
draw.prototype.f = function() {
var attributes = {
uid : this.D,
B : this.Lc,
j : this.o.j,
Th : this.ta.f(),
ai : this.Qc.f(),
Vd : this.o.cb || this.o.Vd,
Sh : this.Mf,
Uj : null,
Tg : null
};
return this.C(attributes);
};
/**
* @param {Window} d
* @param {Object} opts
* @return {undefined}
*/
draw.prototype.W = function(d, opts) {
var memory = this.ta.G(d.document).concat(this.Qc.G(d.document));
/** @type {(HTMLElement|null)} */
var current = document.getElementById(this.Mf);
if (current) {
memory.push(new Resource(current, "&nb=18"));
}
current = parseFloat(d.document, this.D);
for (;null != current && !addClass(current, "adUnit_js");) {
current = current.parentElement;
}
if (current) {
refresh(memory, current, parseFloat(d.document, "adBlock"), opts);
}
if (this.ta.W) {
this.ta.W(d, opts);
}
if (this.Qc.W) {
this.Qc.W(d, opts);
}
};
/**
* @param {?} yy
* @param {string} yylineno
* @param {?} yyleng
* @param {?} yystate
* @param {?} yytext
* @param {?} YY_START
* @param {Function} $avoiding_name_collisions
* @return {undefined}
*/
var anonymous = function(yy, yylineno, yyleng, yystate, yytext, YY_START, $avoiding_name_collisions) {
this.J = yy;
/** @type {string} */
this.O = yylineno;
this.N = yyleng;
this.cc = yystate;
this.pb = yytext;
this.ia = YY_START;
this.$ = $avoiding_name_collisions || use;
};
/**
* @return {?}
*/
anonymous.prototype.f = function() {
var cc = getStyle({
elements : [this.ia.f(), this.N.f()]
});
return this.$({
Ba : getStyle({
elements : [this.J.f(), this.pb.f()]
}),
Ca : this.cc ? cc : this.O.f(),
od : this.cc ? this.O.f() : cc
});
};
/**
* @param {?} d
* @return {?}
*/
anonymous.prototype.G = function(d) {
return this.J.G(d).concat(this.N.G(d).concat(this.O.G(d)));
};
/**
* @param {?} dataAndEvents
* @param {?} lon
* @param {?} lat
* @param {?} deepDataAndEvents
* @param {?} ignoreMethodDoesntExist
* @param {?} alt
* @return {undefined}
*/
var LonLat = function(dataAndEvents, lon, lat, deepDataAndEvents, ignoreMethodDoesntExist, alt) {
this.J = dataAndEvents;
this.O = lon;
this.N = lat;
this.pb = deepDataAndEvents;
this.ia = ignoreMethodDoesntExist;
this.$ = alt || limit;
};
/**
* @return {?}
*/
LonLat.prototype.f = function() {
var style = getStyle({
elements : [this.J.f(), this.pb.f()]
});
var elem_styles = getStyle({
elements : [this.ia.f(), this.N.f(), this.O.f()]
});
return this.$({
Ba : style,
Ca : elem_styles
});
};
/**
* @param {?} d
* @return {?}
*/
LonLat.prototype.G = function(d) {
return this.J.G(d).concat(this.N.G(d).concat(this.O.G(d)));
};
/**
* @param {?} opt_renderer
* @param {?} notCreate
* @param {?} quantity
* @param {?} field
* @return {undefined}
*/
var Item = function(opt_renderer, notCreate, quantity, field) {
this.J = opt_renderer;
this.O = notCreate;
this.N = quantity;
this.ia = field;
};
/**
* @return {?}
*/
Item.prototype.f = function() {
return getStyle({
elements : [this.ia.f(), this.J.f(), this.O.f(), func("<wbr>"), this.N.f()]
});
};
/**
* @param {?} d
* @return {?}
*/
Item.prototype.G = function(d) {
return this.J.G(d).concat(this.N.G(d).concat(this.O.G(d)));
};
/**
* @param {?} el
* @param {?} model
* @param {?} data
* @param {?} featureId
* @return {undefined}
*/
var Validator = function(el, model, data, featureId) {
this.ta = el;
this.Lc = model;
this.xd = data;
this.$ = featureId || onSuccess;
};
/**
* @return {?}
*/
Validator.prototype.f = function() {
var code = this.ta.f();
var right = this.xd;
var items = contains(this.Lc, right);
if (1 == items.length) {
items = items[0].f();
/** @type {string} */
var direction = (right = right.g) ? "right" : "left";
/** @type {string} */
code = "" + ('<table style="border-collapse: collapse; border-spacing: 0; width: 100%; table-layout: fixed;"><tr><td style="vertical-align: middle; padding-' + start(toString(right ? "left" : "right")) + ": " + start(toString(12)) + 'px;">' + $(code) + '</td><td style="width: ' + start(toString(78)) + "px; vertical-align: middle;" + ("border-" + start(toString(direction)) + ": 1px solid " + start(toString("#DDDDDD"))) + '">' + $(items) + "</td></tr></table>");
code = func(code);
}
return this.$({
content : code,
url : this.Lc.u,
cb : this.xd.cb,
j : this.xd.j,
rc : this.xd.rc
});
};
/**
* @param {?} d
* @return {?}
*/
Validator.prototype.G = function(d) {
return this.ta.G(d);
};
/**
* @param {Window} d
* @param {Object} opts
* @return {undefined}
*/
Validator.prototype.W = function(d, opts) {
if (this.ta.W) {
this.ta.W(d, opts);
}
};
/**
* @param {?} consumes
* @param {?} errorResponses
* @param {?} R
* @param {?} responseClass
* @param {?} responseMessages
* @param {Function} authorizations
* @return {undefined}
*/
var SwaggerOperation = function(consumes, errorResponses, R, responseClass, responseMessages, authorizations) {
this.D = min();
this.hf = consumes;
this.ma = errorResponses;
this.R = R;
this.Be = responseClass;
this.H = responseMessages;
this.C = authorizations || exports;
};
/**
* @return {?}
*/
SwaggerOperation.prototype.f = function() {
return this.C({
uid : this.D,
text : {
c : this.hf,
rtl : this.Be
},
url : this.ma,
j : this.R,
g : this.H
});
};
/**
* @param {?} v23
* @return {?}
*/
SwaggerOperation.prototype.G = function(v23) {
return[new Resource(parseFloat(v23, this.D), "&nb=0")];
};
/**
* @param {?} n
* @param {?} a
* @param {string} r
* @param {?} err
* @param {string} t
* @param {?} mod
* @param {string} m
* @param {string} extra
* @param {Function} er
* @return {undefined}
*/
var R = function(n, a, r, err, t, mod, m, extra, er) {
this.D = min();
this.hf = n;
this.ma = a;
/** @type {string} */
this.R = r;
this.Be = err;
/** @type {string} */
this.H = t;
this.sj = mod;
/** @type {string} */
this.Pi = m;
this.wi = extra || "";
this.C = er || test;
};
/**
* @return {?}
*/
R.prototype.f = function() {
return this.C({
uid : this.D,
text : {
c : this.hf,
rtl : this.Be
},
rj : this.sj,
cg : this.wi,
url : this.ma,
j : this.R,
g : this.H,
Oi : this.Pi
});
};
/**
* @param {?} v23
* @return {?}
*/
R.prototype.G = function(v23) {
return[new Resource(parseFloat(v23, this.D), "&nb=0")];
};
/**
* @param {?} radiusX
* @param {?} radiusY
* @param {?} R
* @param {?} y
* @param {Function} x
* @return {undefined}
*/
var Ellipse = function(radiusX, radiusY, R, y, x) {
this.D = min();
this.N = radiusX;
this.ma = radiusY;
this.R = R;
this.H = y;
this.C = x || execute;
};
/**
* @return {?}
*/
Ellipse.prototype.f = function() {
return this.C({
uid : this.D,
text : this.N,
url : this.ma,
j : this.R,
g : this.H
});
};
/**
* @param {?} v23
* @return {?}
*/
Ellipse.prototype.G = function(v23) {
return[new Resource(parseFloat(v23, this.D), "&nb=1")];
};
/**
* @param {?} opt_target
* @param {?} type
* @param {?} target
* @param {?} eventType
* @param {Function} options
* @return {undefined}
*/
var Event = function(opt_target, type, target, eventType, options) {
this.ef = opt_target;
this.gf = type;
this.ze = target;
this.H = eventType;
this.C = options || flush;
};
/**
* @return {?}
*/
Event.prototype.f = function() {
return this.C({
ah : {
c : this.ef,
rtl : this.ze
},
bh : {
c : this.gf
},
g : this.H
});
};
/**
* @return {?}
*/
Event.prototype.G = function() {
return[];
};
/**
* @param {?} a
* @param {?} green
* @param {?} rgb
* @param {?} b
* @param {?} r
* @param {string} R
* @param {?} blue
* @return {undefined}
*/
var Color = function(a, green, rgb, b, r, R, blue) {
this.D = min();
this.ef = a;
this.gf = green;
this.ze = rgb;
this.H = b;
this.ma = r;
/** @type {string} */
this.R = R;
this.C = blue || write;
};
/**
* @return {?}
*/
Color.prototype.f = function() {
return this.C({
ah : {
c : this.ef,
rtl : this.ze
},
bh : {
c : this.gf
},
g : this.H,
uid : this.D,
url : this.ma,
j : this.R
});
};
/**
* @param {?} v23
* @return {?}
*/
Color.prototype.G = function(v23) {
return[new Resource(parseFloat(v23, this.D), "&nb=7")];
};
/**
* @param {?} n
* @param {string} cb
* @param {?} size
* @param {string} errorcallback
* @param {string} dirEntry
* @param {Array} recursive
* @param {string} inIt
* @param {?} dataAndEvents
* @param {?} g
* @param {?} j
* @param {?} buffer
* @param {?} isText
* @return {undefined}
*/
var _read = function(n, cb, size, errorcallback, dirEntry, recursive, inIt, dataAndEvents, g, j, buffer, isText) {
this.rc = n;
/** @type {string} */
this.cb = cb;
this.ni = size;
/** @type {string} */
this.Vd = errorcallback;
/** @type {string} */
this.dg = dirEntry;
/** @type {Array} */
this.Je = recursive;
/** @type {string} */
this.Gb = inIt;
this.ek = dataAndEvents;
this.g = g;
this.j = j;
this.ij = buffer;
this.Mj = isText;
};
}
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} buffer
* @param {?} bigEndian
* @return {undefined}
*/
var Buffer = function(buffer, bigEndian) {
this.Mc = buffer;
this.Rj = bigEndian;
};
/**
* @return {?}
*/
Buffer.prototype.f = function() {
/** @type {Array} */
var eventPath = [];
/** @type {number} */
var l = 0;
for (;l < this.Mc.length;l++) {
eventPath.push(this.Mc[l].f());
}
return this.Rj({
Bj : eventPath
});
};
/**
* @param {Window} d
* @param {Object} opts
* @return {undefined}
*/
Buffer.prototype.W = function(d, opts) {
/** @type {number} */
var conditionIndex = 0;
for (;conditionIndex < this.Mc.length;conditionIndex++) {
this.Mc[conditionIndex].W(d, opts);
}
};
}
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Object} o
* @param {Object} node
* @param {number} el
* @param {string} d
* @param {string} b
* @return {undefined}
*/
var render = function(o, node, el, d, b) {
var template = scale(d);
var margin = _filter(d);
var direction = template("type") || "ads";
var html = template("colorDomainLink", o.sellerFirstBoxLeft ? "#4272db" : o.linkColorSchemeVisUrlLinkColor || "#008000");
var frag = template("colorTitleLink", o.sellerFirstBoxLeft ? "#4272db" : o.linkColorSchemeTitleLinkColor || "#0000CC");
var size = d.width;
size = size && "auto" != size ? size : "100%";
var tapOpts = {
Eb : false,
Gf : null,
Rf : null
};
if (d.verticalSpacing) {
/** @type {number} */
var f = Math.min(d.verticalSpacing, 12) / 2;
/** @type {boolean} */
tapOpts.Eb = true;
/** @type {number} */
tapOpts.Gf = Math.floor(f);
/** @type {number} */
tapOpts.Rf = Math.ceil(f);
}
f = (f = template("colorAdSeparator")) ? f : o.isHighendMobile || o.isTablet ? "#E6E6E6" : null;
var result = template("colorAdBackground");
var t = template("colorAdBorder");
var eb = template("colorText");
var frag1 = template("colorBackground");
var ua = template("colorBorder");
var Uc = template("colorAttribution");
var Xc = template("colorPlusOnes");
var Yf = template("colorKeyword");
var Wc = template("colorLocation");
var T = template("colorAnnotation");
var optlist;
/** @type {Array} */
optlist = [[0, 0, 0], [255, 255, 255]];
if (html) {
var fn;
fn = match(html);
optlist = _get([parseInt(fn.substr(1, 2), 16), parseInt(fn.substr(3, 2), 16), parseInt(fn.substr(5, 2), 16)], optlist);
optlist = serialize(optlist[0], optlist[1], optlist[2]);
} else {
/** @type {null} */
optlist = null;
}
o = {
A : o,
fi : size,
Bb : tapOpts,
Pb : f,
Wf : result,
La : t,
eb : eb,
Yc : frag,
Vc : html,
Xf : frag1,
ua : ua,
Uc : Uc,
Xc : Xc,
Yf : Yf,
Wc : Wc,
T : T,
pi : optlist,
fontFamily : template("fontFamily"),
de : template("fontFamilyAttribution"),
mb : template("fontSizeTitle"),
Ra : template("fontSizeDescription"),
Ub : template("fontSizeDomainLink"),
Db : template("fontSizeAttribution"),
ed : template("fontSizePlusOnes"),
dd : template("fontSizeLocation"),
M : template("fontSizeAnnotation"),
Wj : template("titleBold"),
ak : b,
Ej : template("rolloverLinkBold"),
Rg : template("rolloverLinkColor"),
Qg : template("rolloverLinkBackgroundColor"),
Fj : template("rolloverLinkUnderline"),
Pg : template("rolloverAdBackgroundColor"),
Ag : template("noTitleUnderline"),
eh : translate(o),
Oh : margin("adBorderSelections", "left"),
If : margin("adBorderSelections", "right"),
Ph : margin("adBorderSelections", "top"),
Nh : margin("adBorderSelections", "bottom"),
ci : margin("borderSelections", "left"),
Sf : margin("borderSelections", "right"),
di : margin("borderSelections", "top"),
bi : margin("borderSelections", "bottom"),
cb : equals(d, o),
xg : template("lineHeightTitle"),
Ce : template("lineHeightDescription"),
wg : template("lineHeightDomainLink"),
Pf : template("attributionSpacingBelow")
};
if (template("adIconUrl")) {
o.Jc = template("adIconWidth");
o.Jd = template("adIconHeight");
o.Kd = template("adIconLocation");
o.Jf = template("adIconSpacingAbove");
o.Lf = template("adIconSpacingBefore");
o.Kf = template("adIconSpacingAfter");
o.Rh = template("adIconSpacingBelow");
/** @type {boolean} */
o.Ld = true;
} else {
if (template("adIconPageUrl")) {
o.Jc = template("adIconPageWidth");
o.Jd = template("adIconPageHeight");
o.Kd = template("adIconPageLocation");
o.Jf = template("adIconPageSpacingAbove");
o.Lf = template("adIconPageSpacingBefore");
o.Kf = template("adIconPageSpacingAfter");
/** @type {boolean} */
o.Ld = false;
}
}
if ("relatedsearch" == direction) {
/** @type {string} */
o.type = "relatedsearch";
o.Cb = template("columnSpacing");
o.kd = template("horizontalFlow");
o.ob = template("horizontalAlignment");
}
var value;
var scope;
/** @type {string} */
direction = o.A.isRtl ? "right" : "left";
/** @type {string} */
d = o.A.isRtl ? "left" : "right";
/** @type {string} */
template = "";
/** @type {string} */
direction = "<style>body {" + (o.A.isHighendMobile ? "-webkit-text-size-adjust: 100%;" : "") + "color: " + (o.eb ? o.eb : "black") + "; font-family: " + (o.fk ? "'" + o.fk + "'," : "") + (o.fontFamily ? o.fontFamily : "arial") + ", sans-serif; font-size: " + (o.A.isHighendMobile || o.A.isTablet ? "14" : "12") + "px; width: " + o.fi + "; padding: 0px; margin: 0px;" + (o.ua && (o.Sf || o.If) ? "padding-right: 2px;" : "") + "}.ad {padding: 2px 0; margin: 0px; word-wrap: break-word;" + (o.Bb.Eb ?
"padding-top: " + o.Bb.Gf + "px; padding-bottom: " + o.Bb.Rf + "px;" : o.A.isHighendMobile || o.A.isTablet ? "padding-top: 7px;" : "") + (o.Pb ? "border-bottom: 1px solid " + o.Pb + ";" : "") + "}" + (o.Pg ? ".a_:hover {background-color: " + o.Pg + ";}" : "") + ".ad.f {" + (o.Bb.Eb ? "padding-top:2px;" : "") + "}.ad.fr {" + (o.Bb.Eb ? "padding-top:2px;" : "") + "}.ad.l {" + (o.Bb.Eb ? "padding-bottom:2px;" : "") + (o.Pb ? "border-bottom: 0px;" : "") + "}.ad.lr {" + (o.Bb.Eb ? "padding-bottom:2px;" :
"") + "}#adBlock b {" + (o.A.adbold ? "" : "font-weight: normal;") + (o.A.keywordColor && o.Yf ? "color: " + o.Yf + ";" : "") + "}.descText, .ctcCO {" + (o.Ra ? "font-size: " + o.Ra + "px;" : "") + "}.sr-div, .sl-table-ol td, .sl-table td, .c_ {" + (o.M ? "font-size: " + o.M + "px;" : o.Ra ? "font-size: " + o.Ra + "px;" : "") + "}" + (o.Ce || (o.A.isHighendMobile || o.A.isTablet) ? ".descText {line-height: " + (o.Ce ? o.Ce + "px" : "1.5em") + ";}" : "") + ".a_ {padding: 4px 4px; position: relative;" +
(o.Wf ? "background-color: " + o.Wf + ";" : "") + (o.La && o.Oh ? "border-left: 1px solid " + o.La + ";" : "") + (o.La && o.If ? "border-right: 1px solid " + o.La + ";" : "") + (o.La && o.Ph ? "border-top: 1px solid " + o.La + ";" : "") + (o.La && o.Nh ? "border-bottom: 1px solid " + o.La + ";" : "") + "}.ad span {_width: 99%;}" + (o.cb ? ".adStd {cursor: pointer; width: 100%;}" : "") + "#adBlock {background: #FFFFFF none repeat scroll 0 0; margin: 0; padding: 0;" + (o.Xf ? "background-color: " +
o.Xf + ";" : "") + (o.ua && o.ci ? "border-left: 1px solid " + o.ua + ";" : "") + (o.ua && o.Sf ? "border-right: 1px solid " + o.ua + ";" : "") + (o.ua && o.di ? "border-top: 1px solid " + o.ua + ";" : "") + (o.ua && o.bi ? "border-bottom: 1px solid " + o.ua + ";" : "") + "}#adBlock h2 {font-size: " + (o.Db ? o.Db : o.A.isTablet ? "15" : "13") + "px; font-weight: normal;" + (o.Pf ? "padding-bottom: " + o.Pf + "px;" : "padding: 0;") + "margin: 0;" + (o.de || o.jh ? "font-family: " + (o.jh ?
"'" + o.jh + "'," : "") + (o.de ? o.de + "," : "") + " sans-serif;" : "") + (o.A.isCse ? "text-align: " + direction + ";" : "") + "}#adBlock span.lhHeader {margin: 3px 4px 0;}#adBlock span.rhHeader {margin: 0 4px; float: " + d + ";" + (o.A.isHighendMobile ? "display: inline;" : "") + "position: relative; z-index: 1;}#adBlock h2 a, #adBlock h2 {color: " + (o.Uc ? o.Uc : "#676767") + "; text-decoration: none;}.titleLink, .sl-table a, .sl-table-ol a, .c_ a {color: " + o.Yc + ";}.titleLink, .ctcT a {" +
(o.mb ? "font-size: " + o.mb + "px;" : o.A.isHighendMobile ? "font-size: 18px;" : "") + "font-weight: " + (o.Wj ? "bold" : "normal") + ";}.titleLink {" + (o.ak ? innerHeight() : "") + "line-height: " + (o.xg ? o.xg + "px" : "1.4em") + ";" + (o.Ag ? "text-decoration: none;" : "") + (o.eh ? "letter-spacing: " + o.eh + ";" : "") + "margin: 0; padding: 0;}" + (o.Fj ? ".titleLink:hover, .domainLink:hover, .sr-rl:hover {text-decoration: underline;}a {text-decoration: none;}" : "") + "h2 a:hover {color: " +
(o.Uc ? o.Uc : "#676767") + "; text-decoration: none; font-weight: normal; background-color: transparent;}.domainLink {" + (o.wg ? "line-height: " + o.wg + "px;" : o.A.isHighendMobile || o.A.isTablet ? "line-height: 1.5em;" : "") + "color: " + o.Vc + "; font-style: normal; font-weight: normal;" + (o.Ub ? "font-size: " + o.Ub + "px;" : "") + "text-decoration: none;}.invisible {display: none;}.adStd.oneLine .descText {margin: 0 4px;}.adStd.twoLine .domainLink {margin-" + d + ": 8px;}.textLink {color: " +
(o.eb ? o.eb : "black") + "; text-decoration: none;}.individualLabel {background-color: " + o.Vc + ";" + (o.Ub ? "font-size: " + o.Ub + "px;" : "") + "color: " + o.pi + "; border-radius: 2px; padding: 0 2px; margin-" + d + ": 3px; vertical-align: baseline;}.sl-table, .c_ {visibility: hidden; margin-top: " + (o.A.isHighendMobile ? "0px" : "4px") + ";}.sl-table-ol a, .sl-table a, .c_ a {text-decoration: none;}.sl-table-ol td {vertical-align: top; padding: 0px;}.sl-table a:hover, .c_ a:hover, .sl-table-ol a:hover {text-decoration: underline;}.sl-table td {vertical-align: top; padding: 0px;}.sl-right {" +
(o.A.isHighendMobile ? "margin: 4px 0 4px; margin-" + direction + ": 8px;" : "margin-" + direction + ": 13px;") + "}.sl-left {" + (o.A.isHighendMobile ? "margin: 4px 0 4px; margin-" + d + ": 8px;" : "margin-" + direction + ": 12px;") + "}" + (o.A.isTablet ? "" : ".sl-table, .c_ {line-height: 1.5;}") + (o.A.isHighendMobile || o.A.isTablet ? ".sl.l {margin-" + d + ": 5px;}.sl.r {margin-" + direction + ": 5px;}" : "") + ".sitelinks {margin: 0; padding: 0; list-style-type: none; overflow: hidden;}.twoColSitelink {float: " +
direction + "; width: 49%;}.sitelink-spacer {padding-" + d + ": 10px;}.sitelink-nowrap {white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: " + direction + ";}.plus-ones, .plus-ones a {text-decoration: none; color: " + (o.Xc ? o.Xc : o.T ? o.T : "#666666") + ";" + (o.ed ? "font-size: " + o.ed + "px;" : o.M ? "font-size: " + o.M + "px;" : "") + "}.plus-ones a:hover {text-decoration: underline;}.apareview, .reviewlink {" + (o.M ? "font-size: " + o.M + "px;" : "") + "color: " +
(null == (value = o.T) ? "#666666" : value) + ";}.reviewlink {text-decoration: none;}.reviewlink:hover {text-decoration: underline;}.sr-div, .sr-rl {color: " + (o.T ? o.T : o.eb ? o.eb : "#666666") + ";}.sr-rl {text-decoration: none;}.sr-rl:hover {text-decoration: underline;}.sr-gt {color: " + (null == (value = o.T) ? "#777777" : value) + ";}.sr-gl {text-decoration: none;}.sr-gl:hover {text-decoration: underline;}.sr-p {padding-right: 62px;}.sr-nsc {display: inline; position: relative;}.sr-star {position: absolute;}.sr-number {color: #F99B00;}a:hover {" +
(o.Ej ? "font-weight: bold;" : "") + (o.Rg ? "color: " + o.Rg + ";" : "") + (o.Qg ? "background-color: " + o.Qg + ";" : "") + "}.ctcLD {color: #676767; font-size: 80%;}.ctcI {width: 10px; height: 10px; margin-" + d + ": 1px;}.ctcCOI {width: 16px; height:16px;" + (o.A.isRtl ? '-moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; -ms-filter: "FlipH";' : "") + "}.ctcT {margin: 4px 0px 2px;}.ctcT a {" + (o.A.isHighendMobile &&
!o.Ag ? "text-decoration: underline;" : "text-decoration: none;") + "}.ctcCO {font-weight: bold;}.ctd-tbl {border-collapse: collapse; border-spacing: 0; width: 100%; table-layout: fixed;}.ctd-td-cr {vertical-align: top; padding-" + d + ": 12px; padding-" + direction + ": 6px;}.ctd-itd {width: 45px;}.ctd-i-mini {margin-top: 5px; margin-" + d + ": 1px; margin-bottom: 0px; margin-" + direction + ": 1px; width: 16px; height: 16px;}.ctd-il {width: 45px; height: 45px; display: block; margin: auto;}.ctd-ico {border:none; vertical-align: middle;}.ctd-ico-s {" +
innerHeight() + "height: 100%; vertical-align: middle;}.ctd-ico.rc {border-radius:8px;}.ctd-ico.rc-mini {border-radius:4px;}.ctd-rate {color: #8d8d8d;" + innerHeight() + "font-weight: 300; margin-top:2px;}.ctd-rate-bg {background: url(//www.google.com/images/afs/mobile/ctd-star-off.png); height: 13px; width: 65px;" + innerHeight() + "vertical-align: top; white-space: nowrap;}.ctd-rate-fg {background: url(//www.google.com/images/afs/mobile/ctd-star-on.png) " + direction + " bottom; height: 13px;}.ctd-rate-txt {" +
innerHeight() + "vertical-align: top; white-space: nowrap;}.ctd-rate-txt.inline {margin-" + direction + ": 4px; margin-" + d + ": 4px;}.ctd-usr-ico {background: url(//www.google.com/images/afs/mobile/ctd-user-icon.png); background-position: center; background-repeat: no-repeat;" + innerHeight() + "width: 13px; height: 13px; position: relative; top: 1px; margin-" + direction + ":2px; margin-" + d + ":4px;}" + (o.Jc && (o.Jd && o.A.customAdIcons) ? ".adIcon {visibility: visible; width: " + o.Jc +
"px; height: " + o.Jd + "px; border: none;" + ("title-right" == o.Kd ? "padding-left: 2px; padding-right: 2px;" : "float: " + direction + "; margin-" + direction + ": " + (null == (value = o.Lf) ? 0 : value) + "px; margin-" + d + ": " + (null == (value = o.Kf) ? 4 : value) + "px; margin-top: " + (null == (value = o.Jf) ? 4 : value) + "px; margin-bottom: " + (null == (value = o.Rh) ? 0 : value) + "px;") + "}" + ("ad-left" == o.Kd ? (o.Ld ? ".adD, " : "") + ".a_ {display: block; overflow: hidden;" +
(o.Ld ? "" : "margin-" + direction + ": " + o.Jc + "px;") + "}" : "") : "") + ".location {color: " + (o.Wc ? o.Wc : o.T ? o.T : "#666666") + ";" + (o.dd ? "font-size: " + o.dd + "px;" : o.M ? "font-size: " + o.M + "px;" : "") + "}" + (o.A.isHighendMobile || o.A.isTablet ? ".adStd {margin-bottom: " + (o.A.isTablet ? "5" : "10") + "px;}.sr-div, .sl-table-ol, .sl-left, .sl-right, .apareview {margin-bottom: 12px;}.location, .plus-ones, .l_, .m_ {margin-bottom: 10px;}" : "") + (o.A.isHighendMobile &&
o.A.uiExp1 ? ".adStd {clear: " + d + ";}" : "") + ".m_ {overflow: hidden; height: 1.2em; white-space: nowrap; text-overflow: ellipsis; word-wrap: normal; color: " + (null == (value = o.T) ? "#666666" : value) + ";" + (o.M ? "font-size: " + o.M + "px;" : "") + "}.n_ {white-space: normal;}.o_ {white-space: nowrap;}.p_ {width: 1em; height: 1em; vertical-align: text-bottom; margin-bottom: 1px; margin-" + d + ": 5px;}.l_ {color: " + (null == (value = o.T) ? "#666666" : value) + ";" + (o.M ? "font-size: " +
o.M + "px;" : "") + "}" + ("relatedsearch" == o.type ? ".radlinkC {" + (o.kd && o.mb < o.Db ? "padding: " + (1 + (o.Db - o.mb)) + "px 4px;" : "padding: 1px 4px;") + "}.col {" + (o.ob ? "text-align:" + ("right" == direction && "left" == o.ob ? "right" : "right" == direction && "right" == o.ob ? "left" : o.ob) + ";" : "") + (o.kd ? "border-" + d + ": 1px solid " + o.Pb + ";" : "") + "vertical-align: top;" + (o.Cb ? o.kd && o.ob ? "center" == o.ob ? "padding-right: " + Math.floor(o.Cb / 2) + "px; padding-left: " +
Math.floor(o.Cb / 2) + "px;" : "right" == o.ob ? "padding-" + direction + ": " + o.Cb + "px;" : "padding-" + d + ": " + o.Cb + "px;" : "padding-right: " + o.Cb + "px;" : "") + "}" + (o.kd ? "#adBlock h2 {float: " + direction + "; line-height: 1.4em; vertical-align: top;" + (o.mb >= o.Db ? "padding: " + (3 + (o.mb - o.Db)) + "px 4px;" : "padding: 3px 4px;") + "}.ad {border-bottom: none;}.col.l {border-" + d + ": none;}" : "#adBlock h2 {text-align: " + direction + ";}") : "") + ".raiDiv {margin-bottom: 20px;}.raiImg {margin-right: 5px; margin-top: 10px; margin-bottom: 0px; border: 1px solid #CCCCCC;}.nowrap {white-space: nowrap;}";
/** @type {string} */
d = (value = o.A.isRtl) ? "right" : "left";
/** @type {string} */
value = "" + (".buttonsWrapper {margin: 10px 0 13px; white-space: nowrap;}.inlineButton {" + parent(innerHeight()) + "box-sizing: border-box; text-align: center; border-" + $(d) + ": 1px solid #DDDDDD; vertical-align: top;}.inlineButton.firstButton {border-" + $(d) + ": none;}.button {text-align: center;}.buttonImageWrapper {margin-top: 10px; line-height: 0;}.buttonTextWrapper {margin-top: 7px;}.buttonText {text-decoration: none; color: #5897F1; font-size: 12px;}" + (value ? '.buttonImage {-moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; -ms-filter: "FlipH";}' :
""));
value = func(value);
/** @type {string} */
value = direction + value;
/** @type {string} */
direction = o.A.sellerFirstBoxLeft ? ".sfblAd {padding: 17px 0;}.sfblAd.notLast {border-bottom: 1px solid " + parent(null == (scope = o.Pb) ? "#E1E1E1" : scope) + ";}.sfblNarrowPadder {padding-top: 4px;}.sfblFavicon {vertical-align: top; width: 16px; height: 16px; padding: 0 1px;}.sfblSellerNameWrapper {overflow: hidden; text-overflow: ellipsis; color: " + $(o.Vc) + "; font-size: " + parent(null == (scope = o.Ub) ? "13" : scope) + "px;}.sfblSellerNameLink {text-decoration: none; color: " +
$(o.Vc) + ";}.sfblSellerNameLink:hover {text-decoration: underline;}.sfblSellerRatingsWrapper {padding-top: 3px;}.sfblTitleLink {font-size: " + parent(null == (scope = o.mb) ? "15" : scope) + "px; font-weight: bold; text-decoration: none; color: " + $(o.Yc) + ";}.sfblTitleLink:hover {text-decoration: underline;}.sfblDescriptionWrapper {padding-top: 3px; color: " + parent(null == (scope = o.eb) ? "#333333" : scope) + "; font-size: " + parent(null == (scope = o.Ra) ? "13" : scope) + "px;}.sfblSitelinksWrapper {padding-top: 4px; max-width: 450px; font-size: " +
parent(null == (scope = o.Ra) ? "13" : scope) + "px;}.sfblSitelink {text-decoration: none; line-height: 17px; color: " + $(o.Yc) + ";}.sfblSitelink:hover {text-decoration: underline;}.plus-ones, .plus-ones a {color: " + (o.Xc ? $(o.Xc) : o.T ? $(o.T) : "#777777") + "; font-size: " + (o.ed ? $(o.ed) : o.M ? $(o.M) : "13") + "px; line-height: 1.3;}.location {color: " + (o.Wc ? $(o.Wc) : o.T ? $(o.T) : "#777777") + "; font-size: " + (o.dd ? $(o.dd) : o.M ? $(o.M) : "13") + "px; line-height: 1.3;}.apareview, .l_, .m_ {font-size: " +
parent(null == (scope = o.M) ? "13" : scope) + "px; color: " + parent(null == (scope = o.T) ? "#777777" : scope) + "; line-height: 1.3;}.a_ {padding: 0;}" : "";
/** @type {string} */
scope = template + (value + direction + ".nonSfblSitelinksWrapper {" + (o.A.isHighendMobile || o.A.isTablet ? "margin-top: 0px;" : "margin-top: 4px;") + (o.A.isHighendMobile ? "" : "margin-left: 12px;") + "max-width: 450px;}.sitelinksTruncatedNarrow, .sitelinksTruncatedWide {" + (o.M ? "font-size: " + o.M + "px;" : o.Ra ? "font-size: " + o.Ra + "px;" : "") + "text-decoration: none; line-height: 1.5; color: " + o.Yc + ";" + (o.A.isHighendMobile || o.A.isTablet ? "margin-bottom: 12px;" : "margin-bottom: 0px;") +
"word-wrap: normal;}.sitelinksTruncatedWide {" + (o.A.isTablet || o.A.isHighendMobile ? "line-height: normal;" : "") + "}</style>");
appendChild(scope, node, el);
};
/**
* @param {Object} obj
* @param {string} array
* @param {string} callback
* @param {Array} key
* @param {?} value
* @param {?} elem
* @param {Object} from
* @param {number} el
* @param {boolean} selector
* @return {undefined}
*/
var first = function(obj, array, callback, key, value, elem, from, el, selector) {
/** @type {string} */
obj = "<h2 " + (selector ? ' class="' + $(selector) + '" ' : "") + " id='attrHeader'>" + (elem ? obj ? animate({
text : obj,
X : "rhHeader"
}) + "<br />" : def({
Rd : callback,
Pc : array,
X : "rhHeader"
}) + (value ? toArray({
gc : value,
X : "rhHeader",
id : "megaLabel"
}) : toArray({
gc : key,
X : "lhHeader",
id : "adsLabel"
})) : obj ? animate({
text : obj,
X : "lhHeader"
}) : (value ? toArray({
gc : value,
X : "lhHeader",
id : "megaLabel"
}) : toArray({
gc : key,
X : "rhHeader",
id : "adsLabel"
})) + def({
Rd : callback,
Pc : array,
X : "lhHeader"
})) + "</h2>";
appendChild(obj, from, el);
};
/**
* @param {?} child
* @param {?} node
* @param {number} clicked
* @return {undefined}
*/
var appendChild = function(child, node, clicked) {
if (!isObject(child)) {
child = child.toString();
}
if (createTextNode()) {
node.populate(child);
} else {
clicked.appendChild(toDom(isNode(), child));
}
};
}
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {string} path
* @param {?} global
* @param {?} typeName
* @param {string} dependencies
* @param {?} variadic
* @param {?} sc
* @param {?} dataAndEvents
* @return {undefined}
*/
var Definition = function(path, global, typeName, dependencies, variadic, sc, dataAndEvents) {
this.ic = resolveModule(path);
this.Ge = global;
this.wc = typeName;
/** @type {string} */
this.Mb = dependencies;
this.Ob = variadic;
this.sc = sc;
this.C = dataAndEvents;
this.rd = min();
};
/**
* @return {?}
*/
Definition.prototype.f = function() {
return this.C({
la : this.ic,
Ya : this.wc,
td : this.Ge,
sd : this.rd,
V : this.Mb,
Y : this.Ob,
Da : this.sc
});
};
}
/**
* @param {?} data
* @return {?}
*/
var restart = function(data) {
return func(data.zg ? '<table style="width: 100%"><tr class="e_"><td class="f_">' + $(data.zg) + "</td></tr></table>" : '<div id="' + start(data.jj) + '" class="kb_"><div id="' + start(data.Ij) + '" class="lb_"></div><div class="mb_" id="' + start(data.nj) + '"><span class="nb_" id="' + start(data.oj) + '"></span><div class="left ob_ fb_" id="' + start(data.Gj) + '"><img width="21" height="21" class="pb_" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAXklEQVQ4y2P4//8/A7Uxw6ih2CWwAwMgvg+iqWUoyMD3QAySvE8NQ5ENfE8Nl2IYCBKkxFCsBlJiKE4DKTH0PtRAEE5AD+RB5VKahCnNYp9m6ZRmOYo6eX+0kCYbAwBPgxTnnBag1wAAAABJRU5ErkJggg==" /></div><div class="right ob_ fb_" id="' +
start(data.Hj) + '"><img width="21" height="21" class="pb_" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAXElEQVQ4y2P4//8/A7Uxw6ihuCUZGAyA+D6UxgDkGgoyEMR4j81gSlz6HpfB5BqK12BKDMVpMKWGYjWYGoaCQALUUBC+PyhdSvUwpXrs0ySd0ixHUTfvjxbSZGEA/QcU5yLp498AAAAASUVORK5CYII=" /></div></div></div>');
};
/**
* @param {?} obj
* @return {?}
*/
var max = function(obj) {
return log(".mb_ {padding-top: 10px; text-align: right; height: 29px; font-size: 12px; color: #666666; line-height: 29px; margin-bottom: 2px;}.nb_ {padding-right: 10px; height: 100%; display: inline-block;}.fb_ {display: inline-block; text-align: center; border-radius: 2px; background: white; border: 1px solid #f3f3f3; cursor: default; white-space: nowrap; text-decoration: none; color: #444444; font-size: 11px; font-weight: bold; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;}.ob_.fb_ {height: 100%; width: 34px; font-size: inherit; position: relative;}.fb_.k_ {border: 1px solid #dcdcdc; background: #f5f5f5; z-index: 10;}.fb_.k_:active {-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); box-shadow: inset 0 1px 2px rgba(0,0,0,.1); background: #f8f8f8; color: #333;}.fb_.k_:hover {border: 1px solid #c6c6c6; z-index: 20;}.left.fb_ {border-top-right-radius: 0; border-bottom-right-radius: 0;}.right.fb_ {border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px;}.pb_ {margin-top: -3px; vertical-align: middle; filter: alpha(opacity=33); opacity: .333;}.fb_.k_:hover > .pb_ {filter: alpha(opacity=90); opacity: .9;}.fb_.k_ > .pb_ {filter: alpha(opacity=55); opacity: .55;}table {font-size: " +
toString(obj.fontSize) + "px; border-collapse: collapse; display: inline-table; white-space: normal; margin-right: 10px; vertical-align: top; border-top: 1px solid #ebebeb;}.kb_ {position: relative; overflow: hidden;}.lb_ {white-space: nowrap; position: relative; left: 0px;}.f_ {color: #777777;}");
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} book
* @param {?} opt_label
* @param {?} chapters
* @param {?} index
* @param {?} deepCopy
* @param {?} opt
* @return {undefined}
*/
var Component = function(book, opt_label, chapters, index, deepCopy, opt) {
this.ra = book;
this.pj = opt_label;
this.Lj = chapters;
this.hj = index;
this.Ni = deepCopy;
/** @type {number} */
this.gb = 0;
/** @type {Array} */
this.vc = [];
this.C = opt;
this.Pd = new report(300);
this.Bg = min();
this.We = min();
this.Dg = min();
this.Ue = min();
this.Ve = min();
this.Eg = min();
};
p = Component.prototype;
/**
* @return {?}
*/
p.f = function() {
return this.C({
jj : this.Bg,
Ij : this.We,
nj : this.Dg,
Gj : this.Ue,
Hj : this.Ve,
oj : this.Eg,
zg : 0 == this.ra.length ? this.hj : ""
});
};
/**
* @param {number} state
* @param {number} val
* @return {?}
*/
p.jg = function(state, val) {
return state == val ? this.Lj.replace("%1$d", "" + state).replace("%2$d", "" + this.ra.length) : this.pj.replace("%1$d", "" + state).replace("%2$d", "" + val).replace("%3$d", "" + this.ra.length);
};
/**
* @param {Document} d
* @param {number} h
* @return {undefined}
*/
p.mj = function(d, h) {
if (0 != this.ra.length) {
var w = parseFloat(d, this.Bg);
h -= w.offsetHeight;
var r = parseFloat(d, this.We);
w = w.offsetWidth;
var el = d.createElement("table");
/** @type {string} */
el.style.width = w + "px";
r.appendChild(el);
/** @type {number} */
var type = 0;
/** @type {number} */
var j = 0;
for (;j < this.ra.length;j++) {
if (el.appendChild(fragment(this.ra[j].f())), el.offsetHeight > h) {
var childEl = el.removeChild(el.lastChild);
if (0 == type) {
h = el.offsetHeight;
}
this.vc.push(this.jg(type + 1, j));
el = d.createElement("table");
/** @type {string} */
el.style.width = w + "px";
r.appendChild(el);
el.appendChild(childEl);
/** @type {number} */
type = j;
}
}
this.vc.push(this.jg(type + 1, this.ra.length));
this.hh(d);
}
};
/**
* @return {?}
*/
p.Uf = function() {
return 0 < this.gb;
};
/**
* @return {?}
*/
p.Vf = function() {
return this.gb < this.vc.length - 1;
};
/**
* @param {Document} d
* @return {undefined}
*/
p.hh = function(d) {
if (this.Ni && 1 == this.vc.length) {
/** @type {string} */
parseFloat(d, this.Dg).style.display = "none";
} else {
var key = parseFloat(d, this.Ue);
if (this.Uf()) {
close(key, "k_");
} else {
removeClass(key, "k_");
}
key = parseFloat(d, this.Ve);
if (this.Vf()) {
close(key, "k_");
} else {
removeClass(key, "k_");
}
parseFloat(d, this.Eg).innerHTML = this.vc[this.gb];
}
};
/**
* @param {Object} d
* @param {boolean} recurring
* @return {undefined}
*/
p.Sg = function(d, recurring) {
if (!this.Pd.rb && 0 < d.getElementsByTagName("table").length) {
var n = parseFloat(d, this.We);
var gb = setShortStyleProperty(d.getElementsByTagName("table")[0], false);
/** @type {number} */
var QUnit = gb * this.gb * -1;
if (recurring) {
this.gb--;
} else {
this.gb++;
}
this.Pd.Cc = increment(n, QUnit, gb * this.gb * -1);
if (!tick(this.Pd)) {
throw "Animator got out of sync with page state.";
}
this.hh(d);
}
};
/**
* @param {Object} dir
* @return {?}
*/
p.Gi = function(dir) {
return wrapper(function() {
if (this.Uf()) {
this.Sg(dir, true);
}
}, this);
};
/**
* @param {Object} dir
* @return {?}
*/
p.Ii = function(dir) {
return wrapper(function() {
if (this.Vf()) {
this.Sg(dir, false);
}
}, this);
};
/**
* @param {Object} d
* @return {undefined}
*/
p.Qd = function(d) {
if (0 != this.ra.length) {
var b = parseFloat(d, this.Ue);
addEvent(b, "click", this.Gi(d));
b = parseFloat(d, this.Ve);
addEvent(b, "click", this.Ii(d));
}
};
}
/**
* @param {Element} options
* @return {?}
*/
var next = function(options) {
/** @type {string} */
var str = '<div style="display: none;" id="_googAFShSingleProduct"></div><style>';
var value = options.$g;
var len = value.length;
/** @type {number} */
var i = 0;
for (;i < len;i++) {
str += toString(value[i]);
}
str += '</style><div class="ra_"><div id="' + start(options.Ef) + '">';
/** @type {string} */
value = '<div class="d_" id="' + start(options.xb) + '">' + $(options.title) + "</div>" + (options.U ? '<div class="wa_">' + $(options.U) + "</div>" : "");
value = apply(value);
str += (options.ya ? parent(load({
Pa : apply('<div class="ta_"><img class="ua_" src="' + start(replace(options.ya)) + '"></div>'),
Qa : apply("" + $(value)),
oa : 69,
$a : 10
})) : $(value)) + '<div class="va_">' + $(options.Yg) + "</div></div>" + $(options.Ng) + "</div>";
return func(str);
};
/**
* @param {Object} options
* @return {?}
*/
var update = function(options) {
/** @type {string} */
var str = '<div style="display: none;" id="_googAFShSingleProduct"></div><style>#adBlock {width: ' + toString(options.ei) + "px;}";
var value = options.$g;
var len = value.length;
/** @type {number} */
var i = 0;
for (;i < len;i++) {
str += toString(value[i]);
}
str += '</style><div class="ra_">';
/** @type {string} */
value = '<div id="' + start(options.Li) + '"><div id="' + start(options.Ef) + '"><div class="xa_"><div class="d_" id="' + start(options.xb) + '">' + $(options.title) + '</div><div class="wa_">' + $(options.U) + '</div></div><div class="va_">' + $(options.Yg) + "</div></div>" + $(options.Ng) + "</div>";
value = apply(value);
str += (options.ya ? parent(load({
Pa : apply('<div class="ta_" id="' + start(options.Mh) + '"><img src="' + start(replace(options.ya)) + '" class="ua_"/></div>' + (options.description ? '<div class="ya_" id="' + start(options.ui) + '">' + $(options.description) + "</div>" : "")),
Qa : apply("" + $(value)),
oa : 224,
$a : 20
})) : $(value)) + "</div>";
return func(str);
};
/**
* @param {?} a
* @return {?}
*/
var up = function(a) {
var ln;
return func('<tr class="e_">' + successCallback(a) + "<td>" + parent(null == (ln = a.V) ? "" : ln) + '</td><td class="za_">' + $(a.Ya) + "</td></tr>");
};
/**
* @param {?} data
* @return {?}
*/
var successCallback = function(data) {
return func('<td class="ab_"><div style="position: relative;"><div style="position: absolute; max-width: 100%; white-space: nowrap;">' + parent(getElementById({
href : data.la,
content : data.td,
j : data.Da,
na : is("bb_"),
Oa : data.sd
})) + "</div><div>&nbsp;</div></div></td>");
};
/**
* @param {Object} data
* @return {?}
*/
var _callback = function(data) {
var dataText;
return func('<tr class="e_">' + successCallback(data) + "<td>" + parent(null == (dataText = data.V) ? "" : dataText) + "</td><td><div>" + $(data.Ya) + '</div><div class="cb_">' + $(data.Y) + '</div></td><td class="db_">' + parent(getElementById({
href : data.la,
content : "Buy",
j : data.Da,
na : is("k_ eb_ fb_")
})) + "</td></tr>");
};
/**
* @param {?} options
* @return {?}
*/
var setValue = function(options) {
return log(".e_ {border-bottom: 1px solid #ebebeb; vertical-align: middle;}.e_ td {padding: 7px 4px 7px 0;}.ab_ {width: 40%;}.e_ .za_ {text-align: right; padding: 7px 0; font-weight: bold;}.bb_ {text-decoration: none; color: " + toString(options.linkColor) + "; display: block; overflow: hidden; text-overflow: ellipsis;}.bb_:hover {text-decoration: underline;}");
};
/**
* @param {Object} that
* @return {?}
*/
var download = function(that) {
var newY;
that = that || {};
return func('<tr class="e_">' + successCallback(that) + '<td class="za_"><div class="gb_">' + $(that.Ya) + '</div><div class="cb_">' + parent(null == (newY = that.Y) ? "" : newY) + '</div></td><td class="hb_"><div class="ib_">' + parent(null == (newY = that.V) ? "" : newY) + "</div></td></tr>");
};
/**
* @param {?} options
* @return {?}
*/
var startsWith = function(options) {
return log(".e_ {border-bottom: 1px solid #ebebeb; vertical-align: middle;}.e_ td {height: 50px; padding-right: 4px;}.ab_ {width: 40%;}.e_ .db_ {text-align: right; padding-right: 0;}.eb_.fb_ {padding: 0 8px; min-width: 54px; height: 27px; line-height: 27px;}.bb_ {text-decoration: none; color: " + toString(options.linkColor) + "; display: block; overflow: hidden; text-overflow: ellipsis;}.bb_:hover {text-decoration: underline;}.cb_ {color: #7d7d7d; font-size: 80%;}");
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {number} obj
* @param {?} height
* @return {undefined}
*/
var size = function(obj, height) {
/** @type {number} */
this.Tf = obj;
this.maxHeight = height;
};
var initialN = new size(10, 350);
var newN = new size(20, 700);
/**
* @param {?} opt_acc
* @param {?} interpolationPass
* @param {?} blendAlpha
* @param {?} useWebWorker
* @param {?} opt_height
* @param {?} end
* @param {string} time
* @param {string} element
* @param {?} new_emitter
* @param {?} heightOriginal
* @param {(HTMLElement|boolean)} widthOriginal
* @param {(Array|string)} start
* @param {?} resizeCallback
* @return {undefined}
*/
var Resize = function(opt_acc, interpolationPass, blendAlpha, useWebWorker, opt_height, end, time, element, new_emitter, heightOriginal, widthOriginal, start, resizeCallback) {
this.Yb = opt_acc;
this.J = interpolationPass;
this.O = blendAlpha;
this.Sb = useWebWorker;
this.Yi = opt_height;
this.Oj = end;
/** @type {string} */
this.gj = time + " \u25bc";
/** @type {string} */
this.Vi = element + " \u25b2";
this.ee = new_emitter;
this.Me = heightOriginal;
/** @type {(Array|string)} */
this.Qj = start;
this.C = resizeCallback;
/** @type {(HTMLElement|boolean)} */
this.tb = widthOriginal;
/** @type {number} */
this.tb.height = Math.min(this.tb.height, this.ee.maxHeight);
/** @type {number} */
this.tb.width = Math.min(this.tb.width, 1E3);
this.dh = min();
this.ag = min();
this.Ff = min();
this.Df = min();
this.mg = min();
};
/**
* @return {?}
*/
Resize.prototype.f = function() {
return this.C({
ya : this.Yb,
title : this.J,
description : this.O,
U : this.Sb,
Yg : this.Oj,
Ng : this.Me.f(),
ei : this.tb.width,
$g : this.Qj,
xb : this.dh,
ui : this.ag,
Ef : this.Ff,
Mh : this.Df,
Li : this.mg
});
};
/**
* @param {?} d
* @return {?}
*/
Resize.prototype.Ki = function(d) {
return parseFloat(d, "adBlock").offsetWidth;
};
/**
* @param {Object} d
* @return {undefined}
*/
Resize.prototype.xj = function(d) {
this.bk(d);
var targetHeight = parseFloat(d, this.Ff).offsetHeight;
targetHeight = targetHeight + 2 * this.ee.Tf;
this.Me.mj(d, this.tb.height - targetHeight);
this.Me.Qd(d);
};
/**
* @param {Object} c
* @return {undefined}
*/
Resize.prototype.bk = function(c) {
var item = parseFloat(c, this.dh);
slide(item, 3);
if (item = c.getElementById(this.ag)) {
var targetHeight = isNaN(parseFloat(c, this.Df));
targetHeight = targetHeight + 2 * this.ee.Tf;
isNaN(parseFloat(c, this.mg));
f(item, this.tb.height - targetHeight - 50, this.gj, this.Vi, this.Yi);
}
};
/**
* @param {Element} self
* @param {Object} data
* @param {?} evt
* @param {?} type
* @param {boolean} models
* @return {?}
*/
var reset = function(self, data, evt, type, models) {
var callback;
var args;
var action;
/** @type {Array} */
var _results = [];
/** @type {null} */
var n = null;
var linkColor = self.lc || "#0651cf";
switch(self.id) {
case 1:
;
case "SMALL_FORMAT":
/** @type {function (?): ?} */
callback = up;
/** @type {function (?): ?} */
args = restart;
/** @type {function (Element): ?} */
action = next;
_results.push(setValue({
linkColor : linkColor
}));
_results.push(log(max({
fontSize : 12
})));
_results.push(log("#adBlock {font-family: arial; font-size: 0; width: 300px; background: white;}.d_ {font-size: 18px; font-weight: bold; color: #222222; word-wrap: break-word;}.ra_ {padding: 9px; border: 1px solid #e0e0e0;}.ua_ {max-width: 67px; max-height: 67px; vertical-align: middle;}.ta_ {width: 67px; height: 67px; border: 1px solid #eeeeee; text-align: center; line-height: 67px;}.va_ {padding: 10px 0; font-size: 12px; font-weight: bold; color: #222222;}.wa_ {color: #787878; font-size: 13px;}"));
if (type) {
/** @type {function (Object): ?} */
callback = download;
_results.push(log(".e_ .hb_ {padding: 7px 0; width: 46px;}.e_ .za_ {text-align: left; padding-right: 4px;}.cb_ {color: #7d7d7d; font-size: 90%; font-weight: normal;}"));
}
n = initialN;
break;
case 3:
;
case "WIDE_FORMAT":
/** @type {function (Object): ?} */
callback = _callback;
/** @type {function (?): ?} */
args = restart;
/** @type {function (Object): ?} */
action = update;
_results.push(startsWith({
linkColor : linkColor
}));
_results.push(log(max({
fontSize : 14
})));
_results.push(log("#adBlock {font-family: arial; font-size: 0; background: white;}.ra_ {padding: 19px; border: 1px solid #e0e0e0;}.ua_ {max-width: 222px; max-height: 222px; vertical-align: middle;}.ta_ {width: 222px; height: 222px; border: 1px solid #eeeeee; text-align: center; line-height: 222px; margin-bottom: 20px;}.ya_ {font-size: 12px; line-height: 18px; color: #222222; word-wrap: break-word;}.xa_ {padding-bottom: 20px;}.d_ {font-size: 18px; font-weight: bold; color: #222222; word-wrap: break-word;}.wa_ {color: #7d7d7d; font-size: 13px;}.va_ {font-size: 14px; font-weight: bold; color: #222222; padding-bottom: 8px;}"));
n = newN;
break;
default:
return util.log({
message : "Jackpot block json failed to provide a known format."
}, "crjc"), null;
}
/** @type {Array} */
var app = [];
if (self.offers) {
app = connect(self.offers, function(data) {
return new Definition(data.u, data.m, data.pr, data.s, type && data.ppu ? data.ppu : "", evt, callback);
});
}
models = new Component(app, data.pt, data.sipt, data.nl, models, args);
return new Resize(self.pd.i, self.pd.t, self.pd.d, type && self.pd.er ? self.pd.er : "", linkColor, data.sl, data.m, data.l, n, models, new Node(self.mw, self.mh), _results, action);
};
}
/**
* @param {?} opt_attributes
* @return {?}
*/
var createDom = function(opt_attributes) {
return func('<div class="button" id="' + start(opt_attributes.li) + '">' + $(opt_attributes.ji) + '<div class="q_ j_" id="' + start(opt_attributes.hi) + '"><div class="r_ s_"><div class="t_"><div class="u_">' + $(opt_attributes.gi) + '</div></div><div class="r_ v_"> </div></div></div></div>');
};
/**
* @param {?} o
* @return {?}
*/
var positionTooltip = function(o) {
return log(".button {position: relative;" + toString(innerHeight()) + "}.t_ {position: absolute;" + toString(errorHandler({
value : valid("0 4px 16px rgba(0, 0, 0, 0.2)")
})) + "width: " + toString(o.Sc) + "px; bottom: " + toString(o.ja ? o.Of : 9) + "px; right: " + toString(o.ja ? 8 : o.Of) + "px; background: white;}.u_ {border: 1px solid #CCCCCC; padding: 10px; word-wrap: break-word;}.q_ {position: absolute; cursor: default;}.q_.j_ {visibility: hidden;}.r_ {width: 0; border-style: solid; border-" + toString(o.ja ? "left" : "top") + "-color: #CCCCCC; border-" + toString(o.ja ? "top" : "left") + "-color: transparent; border-right-color: transparent; border-bottom-color: transparent;}.r_.s_ {border-width: 10px; border-" +
toString(o.ja ? "right" : "bottom") + "-width: 0; position: absolute; bottom: " + toString(o.ja ? 17 : 41) + "px; left: " + toString(o.ja ? -5 : 2) + "px;}.r_.v_ {border-width: 9px; border-" + toString(o.ja ? "right" : "bottom") + "-width: 0; border-" + toString(o.ja ? "left" : "top") + "-color: white; position: absolute; margin-" + toString(o.ja ? "left" : "top") + ": -10px; margin-" + toString(o.ja ? "top" : "left") + ": -9px;}");
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} pseudoQuote
* @param {?} ua
* @param {number} inError
* @param {number} pseudoMarker
* @param {string} strict
* @param {Function} rawMatch
* @param {string} attributeQuote
* @return {undefined}
*/
var parser = function(pseudoQuote, ua, inError, pseudoMarker, strict, rawMatch, attributeQuote) {
this.Td = min();
this.Rc = min();
this.ki = pseudoQuote;
this.Sd = ua;
/** @type {number} */
this.ii = inError;
/** @type {number} */
this.Wh = pseudoMarker;
/** @type {string} */
this.Xh = strict;
this.C = rawMatch || createDom;
this.bf = attributeQuote || positionTooltip;
};
p = parser.prototype;
/**
* @return {?}
*/
p.f = function() {
return this.C({
li : this.Td,
hi : this.Rc,
ji : this.ki.f(),
gi : this.Sd.f()
});
};
/**
* @return {?}
*/
p.te = function() {
return this.bf({
Sc : this.ii,
Of : this.Wh,
ja : this.Xh
});
};
/**
* @param {Object} context
* @return {?}
*/
p.Ei = function(context) {
var args = this;
return function(obj) {
if (!visit(obj.target || obj.srcElement, args.Rc)) {
if (obj = context.getElementById(args.Rc)) {
if (obj.classList) {
obj.classList.toggle("j_");
} else {
if (addClass(obj, "j_")) {
removeClass(obj, "j_");
} else {
close(obj, "j_");
}
}
}
}
};
};
/**
* @param {Object} context
* @return {?}
*/
p.Fi = function(context) {
var args = this;
return function(obj) {
if (!visit(obj.target || obj.srcElement, args.Td)) {
if (obj = context.getElementById(args.Rc)) {
close(obj, "j_");
}
}
};
};
/**
* @param {Object} context
* @return {undefined}
*/
p.Md = function(context) {
var failuresLink = context.getElementById(this.Td);
if (failuresLink) {
addEvent(failuresLink, "click", this.Ei(context));
addEvent(context.body, "click", this.Fi(context));
}
};
/**
* @param {?} deepDataAndEvents
* @return {?}
*/
p.Wb = function(deepDataAndEvents) {
return this.Sd.Wb(deepDataAndEvents);
};
/**
* @param {?} win
* @return {undefined}
*/
p.Ac = function(win) {
this.Sd.Ac(win);
};
}
/**
* @param {?} opt_attributes
* @return {?}
*/
var onComplete = function(opt_attributes) {
return func('<div style="font-size: 14px;"><div><a href="' + start(replace(opt_attributes.la)) + '" style="color: #281ab3; text-decoration: none" id="' + start(opt_attributes.xb) + '" ' + slice(reject(opt_attributes)) + ">" + $(opt_attributes.title) + '</a></div><div id="' + start(opt_attributes.zi) + '"><div style="color: #222222; font-weight: bold;">' + $(opt_attributes.Ya) + '</div><div style="color: #777777; font-size: 13px;">' + (opt_attributes.V ? "<div>" + $(opt_attributes.V) + "</div>" :
"") + (opt_attributes.Y ? "<div>" + $(opt_attributes.Y) + "</div>" : "") + (opt_attributes.U ? "<div>" + $(opt_attributes.U) + "</div>" : "") + "</div></div></div>");
};
/**
* @return {?}
*/
var err2 = function() {
return func('<div style="width: 30px; height: 42px;"><div style="cursor: pointer; width: 15px; padding-left: 5px;"><div style="width: 5px; padding-left: 5px; padding-top: 7px;"><div style="height: 5px; background: gray; margin-bottom: 2px; border-radius: 50%;"> </div><div style="height: 5px; background: gray; margin-bottom: 2px; border-radius: 50%;"> </div><div style="height: 5px; background: gray; border-radius: 50%;"> </div></div></div></div>');
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} node
* @param {?} partialText
* @param {?} clonePartiallySelectedTextNodes
* @param {?} dataAndEvents
* @param {?} deepDataAndEvents
* @param {?} ignoreMethodDoesntExist
* @param {?} sc
* @param {?} textAlt
* @param {Function} opt_reverse
* @return {undefined}
*/
var RangeIterator = function(node, partialText, clonePartiallySelectedTextNodes, dataAndEvents, deepDataAndEvents, ignoreMethodDoesntExist, sc, textAlt, opt_reverse) {
this.ic = node;
this.J = partialText;
this.wc = clonePartiallySelectedTextNodes;
this.Mb = dataAndEvents;
this.Ob = deepDataAndEvents;
this.Sb = ignoreMethodDoesntExist;
this.sc = sc;
this.bj = textAlt;
this.C = opt_reverse || onComplete;
this.wb = min();
this.ig = min();
};
/**
* @return {?}
*/
RangeIterator.prototype.f = function() {
return this.C({
la : this.ic,
title : this.J,
xb : this.wb,
Ya : this.wc,
V : this.Mb,
Y : this.Ob,
U : this.Sb,
j : this.sc,
zi : this.ig
});
};
/**
* @param {?} deepDataAndEvents
* @return {?}
*/
RangeIterator.prototype.Wb = function(deepDataAndEvents) {
return[new Resource(parseFloat(deepDataAndEvents, this.wb), "&nb=0")];
};
/**
* @param {?} win
* @return {undefined}
*/
RangeIterator.prototype.Ac = function(win) {
var node = win.document.getElementById(this.ig);
if (node) {
hide(win.document.getElementById(this.wb), this.bj - node.offsetHeight);
}
};
/**
* @param {Function} err
* @return {undefined}
*/
var IdentityMatrix = function(err) {
this.C = err || err2;
};
/**
* @return {?}
*/
IdentityMatrix.prototype.f = function() {
return this.C({});
};
/**
* @param {Object} data
* @param {number} quat
* @param {number} scopes
* @param {string} val
* @param {number} v23
* @param {number} opt_attributes
* @param {boolean} recurring
* @return {?}
*/
var inverse = function(data, quat, scopes, val, v23, opt_attributes, recurring) {
data = new RangeIterator(val, data.t, data.pr, data.s, data.ppu, data.er, v23, scopes);
return new parser(new IdentityMatrix, data, quat, opt_attributes, recurring);
};
}
/**
* @param {Object} data
* @return {?}
*/
var initialize = function(data) {
/** @type {string} */
var copies = '<div class="tb_ b_" id="' + start(data.Fg) + '"><div class="ub_">';
/** @type {string} */
var frame = '<div class="yb_"><div style="position: absolute;" class="zb_">' + parent(getElementById({
href : data.la,
content : data.title,
j : data.Da,
na : is("ac_"),
Oa : data.xb
})) + '</div><div id="' + start(data.Gg) + '" style="position: absolute; bottom: 0;">';
/** @type {string} */
frame = frame + ('<div class="bc_" style="padding-bottom: ' + start(toString(data.wd && (data.V || (data.U || data.Y)) ? 2 : 4)) + 'px;"><span class="gb_" title="' + start(data.Jg) + '">' + $(data.Ya) + "</span></div>" + (data.wd ? (data.V ? '<div class="cc_" title="' + start(data.V) + '">' + $(data.V) + "</div>" : "") + (data.U ? '<div class="cc_" title="' + start(data.U) + '">' + $(data.U) + "</div>" : "") + (data.Y ? '<div class="cc_" title="' + start(data.Y) + '">' + $(data.Y) + "</div>" :
"") : "") + '<div class="dc_">' + parent(getElementById({
href : data.la,
content : data.td,
j : data.Da,
na : is("ec_"),
Oa : data.sd
})) + "</div></div></div>");
/** @type {string} */
copies = copies + parent(load({
Pa : apply("<div>" + parent(getElementById({
href : data.la,
content : apply('<div class="vb_" style="background-image:url(' + start(replace(data.ya)) + ');"><div class="va_">' + $(data.Qf) + "</div></div>"),
j : data.Da,
na : is("xb_"),
Oa : data.qg
})) + "</div>"),
Qa : apply(frame),
oa : data.ve,
$a : data.$b
}));
/** @type {string} */
copies = copies + ('<div style="position: absolute; bottom: -8px; right: -6px;">' + $(data.Mg) + "</div></div></div>");
return func(copies);
};
/**
* @param {Object} d
* @return {?}
*/
var s = function(d) {
return log(".tb_ {background: white; margin-right: " + toString(d.ac) + "px; margin-bottom: " + toString(d.ac) + "px;" + (d.fg ? toString(errorHandler({
value : valid("1px 2px 1px rgba(0, 0, 0, 0.1)")
})) + "border: 1px solid #E0E0E0; box-sizing: border-box; border-radius: 3px;" : toString(errorHandler({
value : valid("0 2px 1px rgba(0, 0, 0, 0.1), 0 0 1px rgba(0, 0, 0, 0.1)")
})) + "border-radius: 2px;") + "width: " + toString(d.Uh) + "px; height: " + toString(d.Qh) + "px;" + toString(innerHeight()) + "}.ub_ {" + (d.fg ? "padding: " + toString(d.$b - 1) + "px;" : "padding: " + toString(d.$b) + "px;") + "position: relative;}.xb_ {text-decoration: none;}.vb_ {width: " + toString(d.ve) + "px; height: " + toString(d.Qi) + "px; background-repeat: no-repeat; background-position: center; background-size: contain; cursor: pointer; position: relative;}.yb_ {position: relative; height: " +
toString(d.si) + "px;}.ac_ {color: " + toString(d.Xj) + "; font-size: " + toString(d.Zj) + "px; text-decoration: none;}.zb_ {width: " + toString(d.Zc) + "px; word-wrap: break-word;}.gb_ {font-size: " + toString(d.uj) + "px; font-weight: bold; color: " + toString(d.Ig) + ";}.bc_ {color: " + toString(d.Ig) + "; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: " + toString(d.Zc - d.Sc) + "px;}.ec_ {color: " + toString(d.yg) + "; text-decoration: none;}.dc_ {font-size: " + toString(d.dj) +
"px; padding-bottom: 2px; color: " + toString(d.yg) + "; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: " + toString(d.Zc - d.Sc) + "px;}.va_ {font-size: 13px;" + toString(innerHeight()) + "text-decoration: none; background-color: #555555; position: absolute; bottom: 1px; left: 1px; padding: 0 3px; color: white; border-radius: 2px;}.cc_ {font-size: 12px; color: #777777; padding-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: " + toString(d.Zc) +
"px;}" + toString(d.yi));
};
/**
* @param {Object} data
* @return {?}
*/
var assert = function(data) {
/** @type {string} */
var copies = '<div class="tb_ b_" id="' + start(data.Fg) + '"><div class="ub_"><div>' + parent(getElementById({
href : data.la,
content : apply('<div class="vb_" style="background-image:url(' + start(replace(data.ya)) + ');"><div class="va_">' + $(data.Qf) + "</div></div>"),
j : data.Da,
na : is("xb_"),
Oa : data.qg
})) + '</div><div class="yb_"><div style="position: absolute;" class="zb_">' + parent(getElementById({
href : data.la,
content : data.title,
j : data.Da,
na : is("ac_"),
Oa : data.xb
})) + '</div><div id="' + start(data.Gg) + '" style="position: absolute; bottom: 0;">';
/** @type {string} */
copies = copies + ('<div class="bc_" style="padding-bottom: ' + start(toString(data.wd && (data.V || (data.U || data.Y)) ? 2 : 4)) + 'px;"><span class="gb_" title="' + start(data.Jg) + '">' + $(data.Ya) + "</span></div>" + (data.wd ? (data.V ? '<div class="cc_" title="' + start(data.V) + '">' + $(data.V) + "</div>" : "") + (data.U ? '<div class="cc_" title="' + start(data.U) + '">' + $(data.U) + "</div>" : "") + (data.Y ? '<div class="cc_" title="' + start(data.Y) + '">' + $(data.Y) + "</div>" :
"") : "") + '<div class="dc_">' + parent(getElementById({
href : data.la,
content : data.td,
j : data.Da,
na : is("ec_"),
Oa : data.sd
})) + '</div></div><div style="position: absolute; bottom: -14px; right: -14px;">' + $(data.Mg) + "</div></div></div></div>");
return func(copies);
};
/**
* @param {Object} a
* @return {?}
*/
var wrap = function(a) {
return log(toString(s(a)) + ".vb_ {margin-bottom: " + toString(a.$b) + "px;}");
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Object} data
* @param {Object} self
* @param {?} allBindingsAccessor
* @param {?} depMaps
* @param {?} rootjQuery
* @param {?} opt_setup
* @param {?} mojitSpec
* @param {?} mojitProxy
* @param {?} viewModel
* @param {string} opt_handler
* @param {string} bindingContext
* @param {string} curVal
* @param {?} apiKey
* @param {?} allBindings
* @return {undefined}
*/
var init = function(data, self, allBindingsAccessor, depMaps, rootjQuery, opt_setup, mojitSpec, mojitProxy, viewModel, opt_handler, bindingContext, curVal, apiKey, allBindings) {
this.Zh = allBindingsAccessor;
this.ic = depMaps;
this.J = data.t;
this.Ge = data.m;
this.wc = data.pr;
this.Yb = data.i;
this.Mb = data.s;
this.Ob = data.ppu;
this.Sb = data.er;
/** @type {string} */
this.zj = curVal;
this.Mi = self.h;
this.gk = self.w;
this.ye = rootjQuery;
this.tg = opt_setup;
this.Ri = self.ih;
this.rg = self.iw;
this.$f = mojitSpec;
this.ti = mojitProxy;
this.$j = self.ts;
this.ej = self.ms;
this.vj = self.ps;
this.Yj = self.tc;
this.cj = self.mc;
this.tj = self.pc;
this.sc = viewModel;
/** @type {string} */
this.xi = opt_handler;
/** @type {string} */
this.ka = bindingContext;
this.bf = apiKey;
this.C = allBindings;
this.ng = min();
this.pg = min();
this.wb = min();
this.rd = min();
this.Hg = min();
};
p = init.prototype;
/**
* @return {?}
*/
p.f = function() {
var failureMessage = this.ka ? this.ka.f() : "";
return this.C({
Fg : this.ng,
Qf : this.Zh,
la : this.ic,
ya : this.Yb,
qg : this.pg,
title : this.J,
xb : this.wb,
Ya : this.wc,
td : this.Ge,
sd : this.rd,
Gg : this.Hg,
ve : this.rg,
$b : this.tg,
Jg : this.ri(),
Da : this.sc,
Mg : failureMessage,
V : this.Mb,
Y : this.Ob,
U : this.Sb,
wd : this.zj
});
};
/**
* @return {?}
*/
p.te = function() {
var failureMessage = this.ka ? this.ka.te() : "";
return this.bf({
Uh : this.gk,
Qh : this.Mi,
ac : this.ye,
$b : this.tg,
Qi : this.Ri,
ve : this.rg,
si : this.$f,
Zc : this.ti,
Zj : this.$j,
dj : this.ej,
uj : this.vj,
Xj : this.Yj,
yg : this.cj,
Ig : this.tj,
fg : this.xi,
Sc : this.ka ? 20 : 0,
yi : failureMessage
});
};
/**
* @return {?}
*/
p.ri = function() {
return repeat([this.Ob, this.Mb], spaces).join("\n");
};
/**
* @param {?} win
* @return {undefined}
*/
p.Ac = function(win) {
var node = win.document.getElementById(this.Hg);
if (node) {
hide(win.document.getElementById(this.wb), this.$f - (node.offsetHeight + 4));
}
if (this.ka) {
this.ka.Ac(win);
}
};
/**
* @param {Object} fragment
* @return {undefined}
*/
p.Md = function(fragment) {
if (this.ka) {
this.ka.Md(fragment);
}
};
/**
* @param {?} d
* @return {?}
*/
p.lg = function(d) {
return parseFloat(d, this.ng);
};
/**
* @param {?} deepDataAndEvents
* @return {?}
*/
p.Wb = function(deepDataAndEvents) {
var caseSensitive = this.ka ? this.ka.Wb(deepDataAndEvents) : [];
return[new Resource(parseFloat(deepDataAndEvents, this.wb), "&nb=0"), new Resource(parseFloat(deepDataAndEvents, this.rd), "&nb=1"), new Resource(parseFloat(deepDataAndEvents, this.pg), "&nb=9")].concat(caseSensitive);
};
/**
* @param {Object} args
* @param {string} n
* @param {number} var_args
* @param {string} y
* @param {number} v23
* @param {string} charOffset
* @param {string} width
* @param {boolean} el
* @return {?}
*/
var drawImage = function(args, n, var_args, y, v23, charOffset, width, el) {
var indents = resolveModule(args.u);
var c = new Node(n.w, n.h);
var p = new Node(n.iw, n.ih);
/** @type {number} */
var defaultMargin = Math.floor((c.height - p.height) / 2);
var pl = p.height;
/** @type {number} */
p = c.width - (3 * defaultMargin + p.width);
width = width ? inverse(args, c.width - 90, c.height - 20, indents, v23, -22, true) : null;
return new init(args, n, var_args, indents, y, defaultMargin, pl, p, v23, charOffset, width, el, s, initialize);
};
/**
* @param {string} packet
* @param {string} n
* @param {number} opt_arr
* @param {string} v11
* @param {number} v23
* @param {string} charOffset
* @param {string} options
* @param {boolean} el
* @return {?}
*/
var onWindowResize = function(packet, n, opt_arr, v11, v23, charOffset, options, el) {
var indents = resolveModule(packet.u);
var c = new Node(n.w, n.h);
var text = new Node(n.iw, n.ih);
/** @type {number} */
var margin = Math.floor((c.width - text.width) / 2);
/** @type {number} */
var v = c.height - (3 * margin + text.height);
text = text.width;
options = options ? inverse(packet, c.width, c.height - 50, indents, v23, -19, false) : null;
return new init(packet, n, opt_arr, indents, v11, margin, v, text, v23, charOffset, options, el, wrap, assert);
};
}
/**
* @param {Object} options
* @return {?}
*/
var flow = function(options) {
/** @type {string} */
var point = '<div style="display: none;" id="_googAFShPLAs"></div><style>' + log("#adBlock {width: " + toString(options.width) + "px; font-size: 0;}.rb_ {background-color: " + toString(options.backgroundColor) + "; font-family: " + toString(options.fontFamily) + ";}.sb_ {padding-top: " + toString(options.ac) + "px; padding-left: " + toString(options.ac) + "px;}" + toString(options.Si)) + '</style><div class="rb_"><div class="sb_">';
options = options.Cj;
var len = options.length;
/** @type {number} */
var idx = 0;
for (;idx < len;idx++) {
point += $(options[idx]);
}
return func(point + "</div></div>");
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} canvs
* @param {?} dataAndEvents
* @param {?} deepDataAndEvents
* @param {?} ignoreMethodDoesntExist
* @param {string} textAlt
* @param {?} keepData
* @param {?} opt_attributes
* @return {undefined}
*/
var Processing = function(canvs, dataAndEvents, deepDataAndEvents, ignoreMethodDoesntExist, textAlt, keepData, opt_attributes) {
this.Jb = canvs;
this.Ug = dataAndEvents;
this.ye = deepDataAndEvents;
this.$h = ignoreMethodDoesntExist;
/** @type {string} */
this.Ai = textAlt;
this.Ti = keepData;
this.C = opt_attributes;
};
/**
* @return {?}
*/
Processing.prototype.f = function() {
/** @type {Array} */
var eventPath = [];
/** @type {number} */
var l = 0;
for (;l < this.Jb.length;l++) {
eventPath.push(this.Jb[l].f());
}
return this.C({
Cj : eventPath,
width : this.Ug.width,
Si : this.Ti,
ac : this.ye,
backgroundColor : this.$h,
fontFamily : this.Ai
});
};
/**
* @return {?}
*/
Processing.prototype.Ji = function() {
return this.Ug;
};
/**
* @return {?}
*/
Processing.prototype.Hi = function() {
return this.Jb;
};
/**
* @param {?} win
* @return {undefined}
*/
Processing.prototype.Vh = function(win) {
/** @type {number} */
var conditionIndex = 0;
for (;conditionIndex < this.Jb.length;conditionIndex++) {
this.Jb[conditionIndex].Ac(win);
this.Jb[conditionIndex].Md(win.document);
}
};
}
/**
* @param {?} route
* @return {?}
*/
var clone_geometry = function(route) {
var b;
/** @type {number} */
var c = 0;
/** @type {string} */
b = '<div class="SponsoredLinksBoxNoBorder"><div style="margin-left:2px"><div class="SponsoredLinksContentWrapper" id="A9AdsWidgetAdsWrapper"><div class="SponsoredLinksAdBox"><table id="SponsoredLinksTable" class="SponsoredLinkColumnAds"><tbody>';
var keys = route.ads;
var il = keys.length;
/** @type {number} */
var i = 0;
for (;i < il;i++) {
var key = keys[i];
b += '<tr class="adUnit_js b_"><td valign="top"><span style="white-space:nowrap; padding-right:18px">' + (1 == route.ads.length ? '<span class="SponsoredLinkYellowBlockEnclosure"><span class="SponsoredLinkYellowBlock">&nbsp;</span>&nbsp;</span>' : '<span class="SponsoredLinkNumberItem">' + ++c + ".&nbsp;</span>") + '<span class="SponsoredLinkTitle"> <a target="_blank" href="' + key.u + '" rel="nofollow" class="titleLink"><b>' + key.cleanTitle + '</b></a> <a rel="nofollow" href="' + key.u +
'" target="_blank" class="amazonExternalLinkImage_js"><img width="23" height="20" border="0" align="absbottom" style="padding-bottom:0px; margin-bottom:0px; display:inline;" alt="opens new browser window" src="//afs.googleusercontent.com/amazon/icon-offsite-sl-7069-t4._V171196157_.png"></a></span></span></td><td><span class="SponsoredLinkDescription" style="white-space:normal; padding-left:0px"><span style="padding-right:10px;" class="SponsoredLinkDescriptionText">' + key.l1 + "&nbsp;" + key.l2 +
'</span></span> <span class="SponsoredLinkDescription" style="padding-left:0px"><a class="SponsoredLinkDescriptionUrlLink" rel="nofollow" href="' + key.u + '" target="_blank" class="domainLink">' + key.v + "</a></span></td></tr>";
}
return b + "</tbody></table></div></div></div></div><style>#adBlock {font-size: 13px;}#adBlock a:hover {text-decoration: none;}#SponsoredLinksTable {width: 100%;}#sponsoredLinks {font-family: verdana,arial,helvetica,sans-serif;}.SponsoredLinksBoxNoBorder td, .SponsoredLinksBoxNoBorder th{font-family: verdana,arial,helvetica,sans-serif;}.SponsoredLinksBoxNoBorder a {color: #004B91; font-family: verdana, arial,helvetica,sans-serif;}.SponsoredLinksBox td, .SponsoredLinksBox th{font-family: verdana,arial,helvetica,sans-serif;}.SponsoredLinksBox a {color: #004B91; font-family: verdana, arial,helvetica,sans-serif;}.SponsoredFeedbackDiv{display: block; font-size: 90%; padding-left: 2px; padding-top: 5px;}.SponsoredLinkDescriptionUrlLink:link, #sponsoredLinks .SponsoredLinkDescriptionUrlLink:link {color: black; font-weight: normal; text-decoration: none;}.SponsoredLinkDescriptionUrlLink:visited, #sponsoredLinks .SponsoredLinkDescriptionUrlLink:visited {color: black; font-weight: normal; text-decoration: none;}.SponsoredLinkDescriptionUrlLink:hover, #sponsoredLinks .SponsoredLinkDescriptionUrlLink:hover {color: black; font-weight: normal; text-decoration: none;}.SponsoredLinksBox{height: auto; padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 10px; margin-top: 0px; margin-bottom: 10px; border: 1px solid #D0EAF8;}.SponsoredLinksBoxNoBorder{height: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px; margin-top: 0px; border: none;}.SponsoredLinkYellowBlock {position: absolute; background-color: #db9234; width: 4px; height: 4px; margin-right: 2px; margin-left: 2px; margin-top: 9px; left: 0px; line-height: 1px;}#sponsoredLinks {width: 100%; padding-top: 4px;}.SponsoredLinkYellowBlockEnclosure {position: relative; margin-right: 2px;}.SponsoredLinkContentDeclaration {text-align: right; padding-right: 20px; color: #C2C2C2}.SponsoredLinksBottomBox {padding-top: 5px; padding-right: 20px;}.SponsoredLinksAdvertiseYourServices {font-size: 90%; float: right;}#sponsoredLinks a:link, #sponsoredLinks a:visited {text-decoration: underline;}.SponsoredLinksSearchSeperator {margin-top: 6px; border-bottom: 1px dotted gray;}.SponsoredLinkDescriptionUrlLink {white-space: nowrap;}.SponsoredLinkNumberItem {font-family: verdana; color: #666666; font-size: 110%;}.SponsoredLinkNumberItemEnclose {padding-top: 3px;}.SponsoredLinksAdBox{padding: 0px; margin: 0px;}.SponsoredLinksAdBox ul {list-style-type: none; padding-left: 0px; margin-left: 0px;}.SponsoredLinksAdBox ul li {clear: both; margin-top: 10px; padding-left: 5px; border: 0px solid #ffcc00;}.SponsoredLinksAdBox ul li span{float: left; padding: 0 0 0 0}.SponsoredLinksAdBox ul li div{float: left; padding: 0 10px 0 0}.SponsoredLinksAdBox .SponsoredLinkTitle {font-size: 125%; white-space: nowrap; min-width: 250px; padding-left: 0px; padding-bottom: 5px}.SponsoredLinksAdBox .SponsoredLinkTitle a:hover {color: #CC6600;}.SponsoredLinksAdBox .SponsoredLinkTitle a {font-family: arial;}.SponsoredLinksAdBox .SponsoredLinkDescription{font-size: 115%; color: #000; min-width: 240px; white-space: nowrap; padding-left: 18px; padding-top: 3px; font-family: arial;}.SponsoredLinksAdBox .SponsoredLinkDescription a:link {color: black; text-decoration: none; font-family: arial;}table.SponsoredLinkColumnAds td {padding-bottom: 12px;}</style>";
};
/**
* @param {Element} file
* @return {?}
*/
var _forEach = function(file) {
/** @type {string} */
var copies = '<div id="AUI_A9AdsWidgetAdsWrapper"><table class="AUI_SponsoredLinkColumnAds" style="width:auto; margin-right:40px;"><tbody>';
var ca = file.ads;
var len = ca.length;
/** @type {number} */
var i = 0;
for (;i < len;i++) {
var c = ca[i];
/** @type {string} */
copies = copies + ('<tr class="adUnit_js b_"><td><ul><li><div class="AUI_SponsoredLinkTitle"><a class="a-size-medium" style="font-size:15px; padding-top:3px; display:inline-block;" target="_blank" href="' + c.u + '" rel="nofollow">' + (file.options.amazonGrayBullets ? "<b>" + c.t + "</b>" : "<b>" + c.cleanTitle + "</b>") + '</a> <a target="_blank" href="' + c.u + '" rel="nofollow"><img src="//afs.googleusercontent.com/amazon/icon-offsite-sl-7069-t4._V171196157_.png" width="23" alt="opens new browser window" align="absbottom" style="padding-bottom:0px; margin-bottom:0px;" height="20" border="0"></a></div></li></ul></td><td><div class="AUI_SponsoredLinkDescriptionDIV"><span style="padding-top:2px; display:inline-block;">&nbsp;&nbsp;-&nbsp;&nbsp;</span></div></td><td><div class="AUI_SponsoredLinkDescriptionDIV"><span class="a-size-base" style="padding-top:2px; display:inline-block;">' +
c.l1 + "&nbsp;" + c.l2 + '</span></div></td><td style="padding-left: 10px;"><div class="AUI_SponsoredLinkDescriptionDIV"><a class="a-size-base" style="padding-top:2px; display:inline-block;" target="_blank" href="' + c.u + '" rel="nofollow"><span class="a-color-secondary">' + c.v + "</span></a></div></td></tr>");
}
return copies += "</tbody></table></div><style>#adBlock {margin-top: 10px;}* {-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;}body {font-size: 13px; line-height: 19px; color: #333; font-family: Arial,sans-serif;}" + (file.options.amazonGrayBullets ? "" : "#AUI_A9AdsWidgetAdsWrapper table {margin-left: 27px; font-family: verdana,arial,helvetica,sans-serif;}") + "table:last-child {margin-bottom: 0!important;}table {margin-bottom: 18px; border-collapse: collapse; width: 100%;}tr:first-child td, tr:first-child th {padding-top: 0;}td:first-child, th:first-child {padding-left: 0;}td, th {padding: 3px;}td, th {vertical-align: top;}td:last-child, th:last-child {padding-right: 0;}ul:last-child, ol:last-child {margin-bottom: 0!important;}ul, ol {padding: 0;}ul {margin: 0 0 18px 18px; color: #aaa;}ul li {" +
(file.options.amazonGrayBullets ? "" : "color: #db9234;") + "}ul li, ol li {word-wrap: break-word; margin: 0;}ul li {list-style: disc;}a, a:visited, a:active, a:link {text-decoration: none; color: #0066c0;}.a-size-medium {font-size: 17px!important; line-height: 1.255!important; font-family: Arial,sans-serif; text-rendering: optimizeLegibility;}a:hover {text-decoration: underline; cursor: pointer; color: #e47911;}.a-size-base {font-size: 13px!important; line-height: 19px!important;}.a-color-secondary {color: #888!important;}img {vertical-align: top;}img {max-width: 100%; border: 0; -ms-interpolation-mode: bicubic;}</style>";
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Window} context
* @param {number} max
* @return {undefined}
*/
var layout = function(context, max) {
max = max || 130;
/** @type {number} */
var min = Math.max(1.5 * max, 160);
min = max + min;
var elements = context.document.getElementById("wideSfbl");
var span = context.document.getElementById("narrowSfbl");
if (elements) {
if (span) {
if (setShortStyleProperty(context.document.body, false) < min) {
/** @type {string} */
elements.style.display = "none";
/** @type {string} */
span.style.display = "block";
} else {
/** @type {string} */
elements.style.display = "block";
/** @type {string} */
span.style.display = "none";
}
}
}
min = qsa(context.document, "div", "wideSitelinksWrapper_js");
elements = qsa(context.document, "div", "narrowSitelinksWrapper_js");
span = qsa(context.document, "div", "sitelinksWrapper_js");
/** @type {null} */
var suiteView = null;
/** @type {number} */
var i = 0;
var el;
for (;el = span[i];i++) {
if (0 < el.offsetWidth) {
suiteView = el;
break;
}
}
if (suiteView && 260 > setShortStyleProperty(suiteView, false)) {
/** @type {number} */
i = 0;
for (;el = min[i];i++) {
/** @type {string} */
el.style.display = "none";
}
/** @type {number} */
i = 0;
for (;el = elements[i];i++) {
/** @type {string} */
el.style.display = "block";
}
} else {
/** @type {number} */
i = 0;
for (;el = min[i];i++) {
/** @type {string} */
el.style.display = "block";
}
/** @type {number} */
i = 0;
for (;el = elements[i];i++) {
/** @type {string} */
el.style.display = "none";
}
}
}
}
/**
* @param {?} self
* @return {?}
*/
var listen = function(self) {
return'<div class="sfblSellerNameWrapper" title="' + $(self.B.visDomain) + '"><a class="sfblSellerNameLink" href="' + $(self.B.u) + '"' + reject(self) + ">" + emit({
text : self.B.nonBreakingVisDomain,
Aa : false,
g : self.A.isRtl
}) + "</a></div>" + (self.sg ? '<div class="sfblSellerRatingsWrapper">' + constructor({
zc : self.B.sr
}) + "</div>" : "");
};
/**
* @param {Object} item
* @return {?}
*/
var has = function(item) {
return "" + (item.A.disableSellerFirstFavicon ? listen({
B : item.B,
A : item.A,
j : item.j,
sg : item.ld
}) : bind({
Pa : '<img src="' + $(item.B.furl) + '" class="sfblFavicon"/>',
Qa : "" + listen({
B : item.B,
A : item.A,
j : item.j,
sg : item.ld
}),
oa : 18,
$a : 3,
Tb : item.A.isRtl
})) + (item.ld ? "" : '<div class="sfblSellerRatingsWrapper">' + constructor({
zc : item.B.sr
}) + "</div>");
};
/**
* @param {Object} self
* @return {?}
*/
var map = function(self) {
/** @type {string} */
var prefix = '<div class="sfblTitleWrapper"><a href="' + self.B.u + '" class="sfblTitleLink" ' + reject(self) + ">" + text({
text : self.B.tr,
g : self.A.isRtl
}) + '</a></div><div class="sfblDescriptionWrapper">';
var config = self.B.l1r;
var options = self.B.l2r;
var green = self.A.isRtl;
/** @type {string} */
var code = "";
if (options && options.c) {
var gval = config.rtl || options.rtl;
/** @type {string} */
code = code + emit({
Aa : gval,
g : green,
text : text({
text : config,
g : gval
}) + " " + text({
text : options,
g : gval
})
});
} else {
code += text({
text : config,
g : green
});
}
/** @type {string} */
prefix = prefix + code + "</div>" + fn({
Ad : self.B.ar,
nb : self.B.gt && "ar" == self.B.gt.r ? self.B.gt.t : null,
g : self.A.isRtl
}) + each({
Pe : self.B.plus_ones,
j : self.j
}) + after({
De : self.B.location,
g : self.A.isRtl
}) + _set({
vd : self.B.oh,
nb : self.B.gt && "oh" == self.B.gt.r ? self.B.gt.t : null,
kh : self.A.offerHighlightWithIcon
});
self = self.B.sls && 0 < self.B.sls.length ? func(remove({
uid : "",
ha : self.B.sls,
j : self.j,
Wg : "sfblSitelink",
Vg : "sfblSitelink",
nh : "sfblSitelinksWrapper"
})) : "";
return prefix + self;
};
/** @type {Window} */
var context = window;
/**
* @param {boolean} recurring
* @param {Object} element
* @return {?}
*/
var getWindowSize = function(recurring, element) {
var win = element || context;
if (recurring) {
if (win.top != win) {
win = win.top;
}
}
try {
var d;
if (win.document && !win.document.body) {
d = new Node(-1, -1);
} else {
var doc = (win || window).document;
var n = "CSS1Compat" == doc.compatMode ? doc.documentElement : doc.body;
d = new Node(n.clientWidth, n.clientHeight);
}
return d;
} catch (g) {
return new Node(-12245933, -12245933);
}
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
var pdataCur = new handler("ijsp");
var defs = {};
/** @type {null} */
var tok = null;
var self = new copy("iframe");
var ecConfig = {
zf : 0,
Gh : 2,
Hc : 3,
Ec : 6
};
var vals = {
ads : ecConfig.zf,
rss : ecConfig.Gh,
pbs : ecConfig.Hc,
jb : ecConfig.Ec
};
var collection = {
/** @type {function (Element): ?} */
bulleted : _forEach,
/** @type {function (?): ?} */
numbered : clone_geometry
};
var message = {
0 : "ad-left",
1 : "title-right"
};
var els = {
0 : "off",
1 : "low",
2 : "med",
3 : "high"
};
var json = {};
var files = {};
/**
* @param {Object} b
* @return {?}
*/
var expect = function(b) {
if (!tok) {
if (b.name) {
tok = (b = b.name.match(/master-(\d+)/)) && b[1] ? b[1] : null;
}
}
if (!tok) {
/** @type {number} */
tok = -1;
}
return tok;
};
expect = cb(expect, "gMN");
/**
* @param {Window} ctx
* @param {string} n
* @return {?}
*/
var t = function(ctx, n) {
try {
return isNaN(ctx.document.getElementById(n));
} catch (c) {
return null;
}
};
t = cb(t, "gBH");
/**
* @param {Window} ctx
* @param {string} id
* @return {?}
*/
var id = function(ctx, id) {
try {
return setShortStyleProperty(ctx.document.getElementById(id), false);
} catch (c) {
return null;
}
};
id = cb(id, "gBW");
/**
* @param {Object} a
* @param {?} key
* @return {?}
*/
var make = function(a, key) {
/** @type {Array} */
var buf = [];
/** @type {Array} */
var eventPath = [];
var prefix;
for (prefix in a) {
var cur = ok(prefix, key);
if (null == cur) {
delete a[prefix];
} else {
buf.push(prefix);
eventPath.push(cur);
}
}
return{
frames : eventPath,
names : buf
};
};
make = cb(make, "cFr");
/**
* @param {?} context
* @return {undefined}
*/
var base = function(context) {
var testSource = make(defs, context).names;
var name;
for (name in testSource) {
clear(ok(testSource[name], context), testSource[name]);
var revisionCheckbox = sort(testSource[name], context);
layout(ok(testSource[name], context), revisionCheckbox.sellerColumnWidth);
}
};
base = cb(base, "aPE");
/**
* @param {?} name
* @return {undefined}
*/
var el = function(name) {
var f = make(defs, name);
var files = f.names;
name = content(f.frames, defer(el, name));
/** @type {number} */
f = 0;
for (;f < name.length;f++) {
if (null != name[f]) {
self.Lb(files[f] + ".h", name[f]);
}
}
_(self);
};
el = cb(el, "sPH");
/**
* @param {?} node
* @param {Object} args
* @return {undefined}
*/
var params = function(node, args) {
base(node, args);
el(node);
};
params = cb(params, "oR");
var testSource = {
titleLink : "&nb=0",
sfblTitleLink : "&nb=0",
domainLink : "&nb=1",
sfblSellerNameLink : "&nb=1",
sl : "&nb=6",
sfblSitelink : "&nb=6",
textLink : "&nb=7",
nArr : "&nb=8",
ctcBtnLink : "&nb=14",
amazonExternalLinkImage_js : "&nb=9"
};
/**
* @param {Element} list
* @return {?}
*/
var _showElement = function(list) {
/** @type {Array} */
var value = [];
list = list.getElementsByTagName("a");
/** @type {number} */
var _i = 0;
var item;
for (;item = list[_i];_i++) {
var e;
/** @type {HTMLDocument} */
var doc = document;
try {
var y;
var node = item;
var view = doc.defaultView || {};
if (view && view.getComputedStyle) {
var style = view.getComputedStyle(node, false);
y = style ? style.getPropertyValue("display") : null;
} else {
var s = node.currentStyle;
y = s ? s.display : null;
}
/** @type {boolean} */
e = null != y && "none" != y;
} catch (w) {
/** @type {boolean} */
e = false;
}
if (e) {
var name;
for (name in testSource) {
if (addClass(item, name)) {
value.push(new Resource(item, testSource[name]));
break;
}
}
}
}
return value;
};
_showElement = cb(_showElement, "gTASSL");
/**
* @param {Window} obj
* @param {string} name
* @return {undefined}
*/
var clear = function(obj, name) {
var iframe = obj.document.getElementById("attribution");
var label = obj.document.getElementById("adsLabel");
var node = obj.document.getElementById("megaLabel");
if (label || node) {
var file;
if (files[name]) {
file = files[name];
} else {
/** @type {number} */
file = 20;
if (node) {
file += createElement(node).width;
} else {
if (label) {
file += createElement(label).width;
if (iframe) {
file += createElement(iframe).width;
file += 20;
}
}
}
/** @type {number} */
files[name] = file;
}
var ret = parseFloat(obj.document, "adBlock");
ret = style(ret);
if (file > ret) {
if (node) {
/** @type {string} */
node.style.display = "none";
if (iframe) {
/** @type {string} */
iframe.style.display = "";
} else {
/** @type {string} */
node.parentNode.style.display = "none";
}
} else {
/** @type {string} */
label.style.display = "none";
if (!iframe) {
/** @type {string} */
label.parentNode.style.display = "none";
}
}
} else {
if (node) {
/** @type {string} */
node.style.display = "";
/** @type {string} */
node.parentNode.style.display = "";
if (iframe) {
/** @type {string} */
iframe.style.display = "none";
}
} else {
/** @type {string} */
label.style.display = "";
/** @type {string} */
label.parentNode.style.display = "";
}
}
}
};
clear = cb(clear, "aH");
/**
* @param {Object} el
* @param {?} resp
* @param {Object} options
* @return {undefined}
*/
var query = function(el, resp, options) {
el = el.document.getElementsByTagName("table");
var len = el.length;
/** @type {number} */
var i = 0;
for (;i < len;i++) {
var e = el[i];
if (addClass(e, "sl-table")) {
if (!addClass(e.parentNode, "invisible")) {
success(e, resp, options);
}
}
}
};
query = cb(query, "aSL");
/**
* @param {Object} node
* @return {?}
*/
var empty = function(node) {
if (node instanceof Array) {
/** @type {number} */
var t = 0;
for (;t < node.length;t++) {
if (empty(node[t])) {
return true;
}
}
return false;
}
return node.offsetHeight > createElement(node).height;
};
empty = cb(empty, "iW");
/**
* @param {Array} body
* @return {undefined}
*/
var pop = function(body) {
for (;0 < body.length;) {
var tabPage = body.pop();
if (tabPage) {
tabPage.parentNode.removeChild(tabPage);
}
}
};
pop = cb(pop, "rLON");
/**
* @param {Element} el
* @param {?} status
* @param {Object} resp
* @return {undefined}
*/
var success = function(el, status, resp) {
var data = el.getElementsByTagName("div");
/** @type {Array} */
var parts = [];
/** @type {Array} */
var toread = [];
/** @type {number} */
var name = 0;
var src;
for (;src = data[name];name++) {
if ("sl-left" == src.className && 3 > parts.length) {
parts.push(src);
} else {
if ("sl-right" == src.className) {
if (3 > toread.length) {
toread.push(src);
}
}
}
}
/** @type {Array} */
data = [];
for (;0 < parts.length;) {
if (0 < toread.length) {
data.push([parts.shift(), toread.shift()]);
} else {
data.push([parts.shift()]);
}
}
if (status) {
finish(el, data);
} else {
destroy(el, data, resp);
}
css(el, "visibility", "visible");
};
success = cb(success, "aSL");
/**
* @param {Element} e
* @param {Array} data
* @return {undefined}
*/
var destroy = function(e, data) {
var valuesLen = e.getElementsByTagName("a").length;
for (;1 < data.length && empty(data);) {
pop(data.pop());
}
if (1 == data.length) {
finish(e, data);
}
var el = qsa(e.parentNode, "div", "c_");
if (1 == el.length) {
el = el[0];
var i = e.getElementsByTagName("a").length;
if (i < valuesLen && 3 > i) {
/** @type {number} */
valuesLen = style(el) - 15;
if (125 > valuesLen) {
/** @type {number} */
valuesLen = 125;
}
var elem = el.getElementsByTagName("div");
/** @type {number} */
var l = 0;
/** @type {number} */
var pos = 0;
var node;
for (;node = elem[pos];pos++) {
if (createElement(node).width <= valuesLen && 3 > l) {
l++;
} else {
/** @type {string} */
node.style.display = "none";
}
}
if (l > i) {
css(el, "visibility", "visible");
/** @type {string} */
e.style.display = "none";
} else {
/** @type {string} */
el.style.display = "none";
}
} else {
/** @type {string} */
el.style.display = "none";
}
}
};
destroy = cb(destroy, "uS");
/**
* @param {Element} e
* @param {Array} r
* @return {undefined}
*/
var finish = function(e, r) {
var node = r.shift();
for (;0 < r.length;) {
pop(r.pop());
}
if (node[1]) {
if (!empty(node)) {
close(node[0].firstChild, "l");
close(node[1].firstChild, "r");
node[0].innerHTML += " - " + node[1].innerHTML;
}
node[1].parentNode.removeChild(node[1]);
node.pop();
}
/** @type {string} */
e.className = "sl-table-ol";
/** @type {string} */
node[0].className = "sl-left-ol";
if (empty(node[0])) {
pop(node);
}
};
finish = cb(finish, "hSLS");
/**
* @param {number} el
* @param {number} opt_attributes
* @return {?}
*/
var one = function(el, opt_attributes) {
return style(el) < opt_attributes;
};
one = cb(one, "sHNE");
/**
* @param {boolean} text
* @return {?}
*/
var info = function(text) {
return createTextNode() && !text;
};
info = cb(info, "rCS");
/**
* @param {string} text
* @return {?}
*/
var merge = function(text) {
/** @type {Array} */
var r = [];
var lineEnd = text.indexOf("<a");
if (-1 != lineEnd) {
/** @type {Array} */
r = r.concat([text.substring(0, lineEnd + 3), "TARGET", text.substring(lineEnd + 2)]);
} else {
r.push(text);
}
return r;
};
merge = cb(merge, "pPSTA");
/**
* @param {Object} elem
* @return {undefined}
*/
var children = function(elem) {
/** @type {number} */
var pos = 0;
var node;
for (;node = elem[pos];pos++) {
if (node.plus_ones) {
node.plus_ones = merge(node.plus_ones);
}
}
};
children = cb(children, "aPOT");
/**
* @param {string} e
* @param {Object} d
* @return {?}
*/
var sort = function(e, d) {
var data = d[e];
if (!data) {
util.log({
message : "frameOptions is undefined for " + e
}, "fAU");
data = {};
}
return data;
};
sort = cb(sort, "gFO");
/**
* @param {?} obj
* @param {string} value
* @param {number} el
* @param {Object} cfg
* @param {Object} data
* @param {Object} name
* @param {Object} val
* @return {undefined}
*/
var _init = function(obj, value, el, cfg, data, name, val) {
data = sort(value, data);
/** @type {boolean} */
var i = !!name.fillEuData && !name.fillPlaEuData;
/** @type {boolean} */
var failuresLink = !!name.fillPlaEuData;
var d = (0,eval)(data);
if (cfg.hasOwnProperty("gbrs")) {
b: {
var arr = val.ipa;
/** @type {null} */
var fn = null;
/** @type {null} */
var n = null;
val = cfg.gbrs;
if (val.hasOwnProperty("scrs")) {
/** @type {function (string, string, number, string, number, string, string, boolean): ?} */
fn = onWindowResize;
n = val.scrs;
} else {
if (val.hasOwnProperty("fcrs")) {
/** @type {function (Object, string, number, string, number, string, string, boolean): ?} */
fn = drawImage;
n = val.fcrs;
} else {
util.log({
message : "PLA grid render spec failed to provide a valid format."
}, "crpGc");
cfg = result;
break b;
}
}
var u = n.bc;
var charOffset = u && "#ffffff" == u.toLowerCase();
var info = log(n.ff);
var y = val.i;
/** @type {Array} */
var ret = [];
/** @type {number} */
var prop = 0;
for (;prop < cfg.plas.length;prop++) {
ret.push(fn(cfg.plas[prop], n, arr, y, d, charOffset, i, failuresLink));
}
cfg = new Node(n.w, n.h);
cfg = 0 == ret.length ? result : new Processing(ret, new Node(y + val.c * (cfg.width + y), y + val.r * (cfg.height + y)), y, u, info, ret[0].te(), flow);
}
} else {
util.log({
message : "PLA block json failed to provide a known render spec."
}, "crpBc");
cfg = result;
}
appendChild(cfg.f(), obj, el);
cfg.Vh(obj);
self.Lb(value + ".w", cfg.Ji().width);
cfg = cfg.Hi();
/** @type {number} */
i = 0;
for (;i < cfg.length;i++) {
refresh(cfg[i].Wb(obj.document), cfg[i].lg(obj.document), el, name);
}
obj = round(value);
register(data, el, obj, name);
};
_init = cb(_init, "fP");
/**
* @param {Element} s
* @param {string} x
* @param {number} el
* @param {Element} m
* @param {Object} data
* @param {Object} name
* @param {Object} options
* @return {undefined}
*/
var warn = function(s, x, el, m, data, name, options) {
data = sort(x, data);
var camelKey = {};
output(options.msgs, camelKey);
if (m = reset(m, camelKey, (0,eval)(data), !!name.fillSingleProductEuData, !!name.uiExp2)) {
appendChild(m.f(), s, el);
m.xj(s.document);
self.Lb(x + ".w", m.Ki(s.document));
s = round(x);
register(data, el, s, name);
}
};
warn = cb(warn, "fJ");
/**
* @param {?} node
* @param {string} x
* @param {number} el
* @param {?} dataAndEvents
* @param {Object} data
* @param {Object} name
* @return {?}
*/
var getValue = function(node, x, el, dataAndEvents, data, name) {
if (!name.uiExp1 && !name.amazonTemplateEnabled) {
return false;
}
data = sort(x, data);
var method = data.amazonTheme;
if (!collection.hasOwnProperty(method)) {
return false;
}
appendChild((0, collection[method])({
ads : dataAndEvents,
options : data
}), node, el);
element(el, name);
node = round(x);
register(data, el, node, name);
return true;
};
getValue = cb(getValue, "fAA");
/**
* @param {Window} context
* @param {string} value
* @param {number} el
* @param {Element} parent
* @param {Object} data
* @param {Object} item
* @param {Object} options
* @return {undefined}
*/
var setup = function(context, value, el, parent, data, item, options) {
data = sort(value, data);
var row = options.attr;
/** @type {null} */
var rv = null;
/** @type {null} */
var restoreScript = null;
/** @type {null} */
var camelKey = null;
var later = item.rhsAttribution && data.rightHandAttribution || item.isHighendMobile && false !== data.rightHandAttribution;
var oldconfig = later && !(item.isHighendMobile && item.uiExp1);
/** @type {boolean} */
var typePattern = 0 != data.domainLinkAboveDescription;
var udataCur = data.type || "ads";
/** @type {boolean} */
var text = false;
var obj = options.iaa;
/** @type {null} */
var scripts = null;
/** @type {null} */
var suiteView = null;
/** @type {null} */
var res = null;
res = options.vw;
if (null != obj) {
scripts = obj.t;
suiteView = obj.b;
/** @type {boolean} */
oldconfig = false;
}
if (item.isRtl) {
/** @type {string} */
context.document.dir = "rtl";
}
if (data.adsLabel) {
camelKey = options.ads_label || null;
}
if ("relatedsearch" == udataCur) {
if (row) {
if ("ads" == udataCur) {
rv = row.u;
var key = data.attributionText;
restoreScript = row.alt_t && row.alt_t[key] ? row.alt_t[key] : "Ads" == data.attributionText ? "Ads" : row.t;
} else {
if ("relatedsearch" == udataCur) {
restoreScript = options.rs_attr.t;
rv = options.rs_attr.u;
if (data.horizontalFlow) {
restoreScript += ":";
}
}
}
}
if (restoreScript || camelKey) {
first(null, rv, restoreScript, camelKey, null, later, context, el);
/** @type {boolean} */
text = true;
} else {
(void 0)(context);
}
} else {
/** @type {null} */
udataCur = null;
if (item.suppliedAttribution && data.attributionText) {
obj = {
t : data.attributionText
};
if (data.attributionHref) {
obj.u = data.attributionHref;
}
} else {
/** @type {null} */
obj = null;
}
if (null != obj) {
row = obj;
} else {
/** @type {(string|undefined)} */
key = data.position ? "ad-block-position-" + data.position : void 0;
}
if (null != row) {
if (data.detailedAttribution || 0 != data.detailedAttribution && item.megaLabelExp) {
udataCur = row.t2;
}
rv = row.u;
restoreScript = row.t;
}
if (suiteView || (restoreScript || (camelKey || udataCur))) {
first(suiteView, rv, restoreScript, camelKey, udataCur, later, context, el, key);
/** @type {boolean} */
text = true;
}
}
children(parent);
if (!(row = info(text))) {
render(item, context, el, data, oldconfig);
}
rv = one(el, 300);
scripts = scripts && !rv ? new Renderer(scripts) : result;
res = run(parent, context, value, el, data, equals(data, item), !!item.clickableText, typePattern, scripts, res, item, options);
if (row) {
render(item, context, el, data, oldconfig);
}
if (parent = context.document.getElementById("attrHeader")) {
if (scripts != result) {
css(parent, "display", "none");
}
}
clear(context, value);
query(context, equal(data, item), item);
value = round(value);
register(data, el, value, item);
if (equals(data, item)) {
enter(el, concatCall(data, item), value);
}
if (res) {
res.W(context, item);
} else {
element(el, item);
}
layout(context, data.sellerColumnWidth);
};
setup = cb(setup, "fA");
/**
* @param {number} element
* @param {Object} o
* @return {undefined}
*/
var element = function(element, o) {
var result = qsa(element, "div", "adUnit_js");
result = result.concat(qsa(element, "tr", "adUnit_js"));
/** @type {number} */
var _i = 0;
var x;
for (;x = result[_i];_i++) {
refresh(_showElement(x), x, element, o);
}
};
element = cb(element, "aSSTATU");
/**
* @param {Object} el
* @param {Object} record
* @param {Object} p
* @return {undefined}
*/
var find = function(el, record, p) {
var props = {};
if (p.bs) {
/** @type {number} */
var j = 0;
var route;
for (;route = p.bs[j];j++) {
if (route.container == el.container) {
props = route;
break;
}
}
}
if (p = p.ps) {
var i;
for (i in p) {
if (p.hasOwnProperty(i)) {
props[i] = p[i];
}
}
}
for (i in props) {
if (props.hasOwnProperty(i)) {
if ("" !== props[i]) {
/** @type {string} */
p = i.replace(/_(.)/g, function(dataAndEvents, letter) {
return letter.toUpperCase();
});
if (!!record[p]) {
if (!("clicktrackUrl" == p && el[p])) {
el[p] = props[i];
}
}
}
}
}
if ("boolean" == typeof el.linkTarget) {
/** @type {string} */
el.linkTarget = el.linkTarget ? "_blank" : "_top";
}
if ("number" == typeof el.adIconLocation) {
el.adIconLocation = message[el.adIconLocation];
}
if ("number" == typeof el.adsafe) {
el.adsafe = els[el.adsafe];
}
html(el, "adBorderSelections");
html(el, "borderSelections");
html(el, "fontFamily");
html(el, "fontFamilyAttribution");
};
find = cb(find, "fSSS");
/**
* @param {Object} object
* @param {string} index
* @return {undefined}
*/
var html = function(object, index) {
if (object[index] instanceof Array) {
if (0 == object[index].length) {
delete object[index];
} else {
object[index] = object[index].join(",");
}
}
};
html = cb(html, "cSLSTS");
/**
* @param {string} name
* @param {Function} value
* @return {?}
*/
var ok = function(name, value) {
if (name == value.name) {
return window;
}
/** @type {null} */
var src = null;
try {
if (src = window.parent.frames[name + "|" + window.name]) {
return src;
}
} catch (d) {
}
try {
if (src = window.parent.frames[name]) {
return src;
}
} catch (e) {
}
return null;
};
ok = cb(ok, "gFBN");
/**
* @param {Object} s
* @param {Object} res
* @param {Object} names
* @return {undefined}
*/
var list = function(s, res, names) {
var key;
for (key in json) {
var node = json[key];
if (0 == node.length) {
util.log({
message : key
}, "mPAASH2");
} else {
var e = ok(key, s);
if (null != e) {
/** @type {null} */
var failuresLink = null;
try {
failuresLink = e.document.getElementById("adBlock");
} catch (h) {
}
if (null != failuresLink) {
if (node[0].type == ecConfig.Hc) {
_init(e, key, failuresLink, node[0], s, res, names);
} else {
if (node[0].type == ecConfig.Ec) {
warn(e, key, failuresLink, node[0], s, res, names);
} else {
if (!getValue(e, key, failuresLink, node, s, res)) {
setup(e, key, failuresLink, node, s, res, names);
}
}
}
/** @type {boolean} */
defs[key] = true;
delete json[key];
}
}
}
}
params(s, res);
};
list = cb(list, "mPAASH");
/**
* @param {Element} ctx
* @param {number} node
* @param {number} value
* @return {?}
*/
var post = function(ctx, node, value) {
return("number" == typeof node && 16 > node || "number" == typeof value && 16 > value) && ((ctx = ctx.document.getElementById("adBlock")) && "" != ctx.innerHTML) ? true : false;
};
post = cb(post, "iCSI");
/**
* @param {Array} codeSegments
* @param {?} callback
* @return {?}
*/
var content = function(codeSegments, callback) {
/** @type {boolean} */
var c = false;
/** @type {Array} */
var assigns = [];
/** @type {number} */
var i = 0;
for (;i < codeSegments.length;i++) {
var test = codeSegments[i];
var vvar = t(test, "adBlock");
var tests = id(test, "adBlock");
if (post(test, vvar, tests)) {
/** @type {null} */
vvar = null;
/** @type {boolean} */
c = true;
}
assigns.push(vvar);
}
if (c) {
window.setTimeout(callback, 10);
}
return assigns;
};
content = cb(content, "gFH");
/**
* @param {number} i
* @param {Array} x
* @param {Object} result
* @return {?}
*/
var bound = function(i, x, result) {
var value;
/** @type {number} */
value = Math.max.apply(Math, i);
/** @type {number} */
i = Math.min.apply(Math, i);
if (value - i > threshold) {
/** @type {number} */
i = 0;
for (;i < x.length;i++) {
value = x[i];
/** @type {null} */
result[value] = null;
}
}
return result;
};
bound = cb(bound, "pBDF");
/**
* @param {Object} o
* @param {Object} obj
* @return {?}
*/
var event = function(o, obj) {
var result = {};
/** @type {boolean} */
var valid = false;
/** @type {Array} */
var classNames = [];
/** @type {Array} */
var c = [];
var key;
for (key in obj) {
if (key in o) {
var element = obj[key];
var value = o[key];
if ("undefined" != typeof value) {
value = matches(element, value);
if (null != value) {
result[key] = value;
if (element.a == ELEMENT_NODE) {
classNames.push(value);
c.push(key);
}
/** @type {boolean} */
valid = true;
}
}
}
}
if (0 < classNames.length) {
result = bound(classNames, c, result);
}
return valid ? result : null;
};
event = cb(event, "vO");
/**
* @param {string} name
* @param {Object} selector
* @return {?}
*/
var jQuery = function(name, selector) {
return name ? event(name, selector) : null;
};
jQuery = cb(jQuery, "vCO");
/**
* @param {Object} o
* @param {Object} c
* @return {undefined}
*/
var color = function(o, c) {
var p;
for (p in c) {
o[p] = c[p];
}
};
color = cb(color, "iCO");
/**
* @param {?} eventName
* @param {?} arg
* @return {?}
*/
var define = function(eventName, arg) {
return(/^slave-\d+-\d+$/.test(eventName) || /^master-\d+$/.test(eventName)) && "object" == typeof arg;
};
define = cb(define, "iPABO");
/**
* @param {string} value
* @return {?}
*/
var iterator = function(value) {
return trim(value) || {};
};
iterator = cb(iterator, "pNAO");
/**
* @param {Object} item
* @param {Object} root
* @param {Object} nodes
* @return {?}
*/
var attr = function(item, root, nodes) {
var c = jQuery(window.CSE_OPTIONS_, root);
var attrs = {};
var key;
for (key in item) {
var name = item[key];
if ("name" == key) {
attrs[key] = /^slave-\d+-\d+$/.test(name) || /^master-\d+$/.test(name) ? name : null;
} else {
if (define(key, name)) {
if (name.adPageId) {
find(name, root, nodes);
}
name = event(name, root);
if (c) {
color(name, c);
}
attrs[key] = name;
/** @type {Array} */
json[key] = [];
}
}
}
return attrs;
};
attr = cb(attr, "vNAO");
/**
* @param {Element} el
* @param {string} property
* @param {string} value
* @return {undefined}
*/
var css = function(el, property, value) {
/** @type {string} */
el.style[property] = value;
};
css = cb(css, "sS");
/**
* @param {Object} t
* @return {?}
*/
var translate = function(t) {
return t.titleLetterSpacing || "";
};
translate = cb(translate, "gTLS");
/**
* @param {Object} event
* @param {Array} data
* @return {undefined}
*/
var error = function(event, data) {
var type = event.resultsPageBaseUrl;
var files = event.resultsPageQueryParam;
/** @type {number} */
var i = 0;
for (;i < data.length;i++) {
var arg = data[i].t;
var photo = data[i].afdt;
if (null != arg && null != photo) {
if (!type) {
throw removeListener("resultsPageBaseUrl resultsPageBaseUrl needs to be set.");
}
var result = new token(type);
callback(result, files, arg);
callback(result, "rsToken", photo);
data[i].l = require(result);
data[i].u = require(result);
}
}
};
error = cb(error, "fRSCL");
/**
* @param {Object} msg
* @param {number} i
* @param {boolean} value
* @param {string} obj
* @param {Object} length
* @return {?}
*/
var save = function(msg, i, value, obj, length) {
var l = i.horizontalFlow ? -1 : i.columns;
if (2 <= l) {
/** @type {Object} */
var message = msg;
if (0 >= l) {
msg = message;
} else {
/** @type {Array} */
msg = [];
/** @type {number} */
var n = 0;
/** @type {number} */
var c = 0;
for (;c < l;c++) {
/** @type {number} */
var z = Math.ceil((message.length - n) / (l - c));
/** @type {number} */
var y = 0;
for (;y < z;y++) {
msg[y * l + c] = message[n++];
}
}
}
}
/** @type {Object} */
message = msg;
/** @type {boolean} */
i = !i.horizontalFlow;
if (length && (length.mk && (1 == l || 2 <= l && length.lk))) {
value = (void 0)(length, msg.length);
l = obj.g;
/** @type {string} */
obj = '<div class="la_">';
length = message.length;
/** @type {number} */
i = 0;
for (;i < length;i++) {
msg = message[i];
obj += '<div class="ma_" style="border-' + (l ? "right" : "left") + "-color: " + start(toString(value[i])) + '"><a href="' + start(replace(msg.l)) + '" class="titleLink popstripeRs" target="_top">' + parent(forEach({
text : msg.t,
g : l
}));
obj += '<div class="na_" style="background-image: url(' + start(replace(msg.adIconUrl && ("ad-left" == msg.adIconLocation && msg.img) ? msg.adIconUrl : "//www.gstatic.com/domainads/images/chevron-white.png")) + ')"></div></a></div>';
}
value = func(obj + "</div>");
} else {
/** @type {string} */
obj = "" + ('<table cellspacing="0" cellpadding="0"' + (2 <= l || i ? ' width="100%"' : "") + "><tbody><tr>");
length = message.length;
/** @type {number} */
i = 0;
for (;i < length;i++) {
msg = message[i];
/** @type {boolean} */
n = 0 > l || 2 <= l && i < l;
obj += (0 != i && (0 < l && 0 == i % l) ? "</tr><tr>" : "") + '<td class="col' + (i == length - 1 ? " l" : "") + '"' + (2 <= l ? ' width="' + 100 / l + '%"' : "") + ">";
c = message.length % l || l;
obj += '<div class="ad' + (0 == i ? " f" : "") + (n ? " fr" : "") + (i == length - 1 ? " l" : "") + (!n && (2 <= l && i >= message.length - c) ? " lr" : "") + '">' + call({
B : msg,
Tc : false,
$i : "_top"
}) + '<div class="a_ b_ radlinkC">' + onLoad({
B : msg,
Tc : false,
$i : "_top"
}) + '<div class="adD"><div class="adStd" ' + (value ? 'data-click-s="' + msg.l + '" data-click-trg="_top"' : "") + '><a href="' + msg.l + '" class="titleLink" target="_top">' + msg.t + "</a></div></div></div></div></td>";
}
/** @type {string} */
value = obj + "</tr></tbody></table>";
}
return value;
};
save = cb(save, "cRSN");
/**
* @param {Object} e
* @param {Object} block
* @param {Object} chunk
* @param {number} el
* @param {Object} data
* @param {string} i
* @param {string} id
* @param {string} args
* @param {string} callback
* @param {string} o
* @param {(Function|string)} options
* @return {?}
*/
var run = function(e, block, chunk, el, data, i, id, args, callback, o, options) {
if (0 >= e.length) {
return null;
}
var m = (0,eval)(data);
/** @type {string} */
var r = "";
/** @type {null} */
chunk = null;
if (options.customAdIcons) {
if (null != data.adIconUrl && (0 < data.adIconHeight && 0 < data.adIconWidth)) {
formatter(e, data.adIconUrl, data.adIconLocation, true);
} else {
if (null != data.adIconPageUrl) {
if (0 < data.adIconPageHeight) {
if (0 < data.adIconPageWidth) {
formatter(e, data.adIconPageUrl, data.adIconPageLocation, false);
}
}
}
}
}
error(data, e);
var matches = equal(data, options);
id = new _read(data.lines, i, id, !!options.clickableIcon, args, !matches, callback, o, !!options.isRtl, m, !!options.offerHighlightWithIcon, !!options.sitelinkTruncate && !matches);
args = data.type || "ads";
if ("ads" == args) {
if (options.sellerFirstBoxLeft) {
data = data.sellerColumnWidth;
if (e) {
/** @type {number} */
i = 0;
r = e.length;
for (;i < r;i++) {
if (e[i].plus_ones) {
e[i].plus_ones = step(e[i]);
}
}
}
e = {
ads : e,
A : options,
Jj : data,
j : m
};
var self;
/** @type {string} */
m = '<div id="wideSfbl">';
data = e.ads;
i = data.length;
/** @type {number} */
r = 0;
for (;r < i;r++) {
id = data[r];
m += '<div class="a_ b_ adUnit_js"><div class="sfblAd' + (r != i - 1 ? " notLast" : "") + (id.topad ? " g_" : "") + '">' + bind({
Pa : "" + has(beget(e, {
B : id,
ld : true
})),
Qa : "" + map(beget(e, {
B : id
})),
oa : null == (self = e.Jj) ? 130 : self,
$a : 10,
Tb : e.A.isRtl
}) + "</div></div>";
}
m += '</div><div id="narrowSfbl" style="display: none;">';
self = e.ads;
data = self.length;
/** @type {number} */
i = 0;
for (;i < data;i++) {
r = self[i];
m += '<div class="a_ b_ adUnit_js"><div class="sfblAd' + (i != data - 1 ? " notLast" : "") + (r.topad ? " g_" : "") + '">' + has(beget(e, {
B : r,
ld : false
})) + '<div class="sfblNarrowPadder">' + map(beget(e, {
B : r,
kk : true
})) + "</div></div></div>";
}
/** @type {string} */
r = m + "</div>";
} else {
/** @type {Array} */
chunk = [];
/** @type {function (string, boolean, Object, string, string): undefined} */
self = draw;
/** @type {number} */
m = 0;
for (;m < e.length;++m) {
chunk.push(new self(e[m], options, id));
}
chunk = new Buffer(chunk, clean);
r = chunk.f();
}
} else {
if ("relatedsearch" == args) {
r = save(e, data, i, id, null);
}
}
options = func('<div style="display: none;" id="_googAFS_' + start(options.pubId || "unknown_pubId") + '"></div>');
appendChild(options, block, el);
appendChild(r, block, el);
return chunk;
};
run = cb(run, "cAN");
/**
* @param {string} pattern
* @return {?}
*/
var add = function(pattern) {
/** @type {Array} */
var list = [{
index : pattern.indexOf("{{NUM_START}}"),
Hb : 13
}, {
index : pattern.indexOf("{{NUM_END}}"),
Hb : 11
}, {
index : pattern.indexOf("{{LINK_START}}"),
Hb : 14
}, {
index : pattern.indexOf("{{LINK_END}}"),
Hb : 12
}, {
index : pattern.indexOf("{{RATING}}"),
Hb : 10
}];
list.sort(function(a, b) {
return a.index - b.index;
});
/** @type {Array} */
var acc = [];
/** @type {number} */
var i = 0;
/** @type {number} */
var p = 0;
for (;-1 == list[p].index;) {
p++;
}
for (;p < list.length;p++) {
if (i < list[p].index) {
acc.push(pattern.substring(i, list[p].index));
}
i = pattern.substring(list[p].index, list[p].index + list[p].Hb);
i = i.replace("{{", "").replace("}}", "");
acc.push(i);
i = list[p].index + list[p].Hb;
}
if (i < pattern.length) {
acc.push(pattern.substring(i));
}
return acc;
};
add = cb(add, "pSSTA");
/**
* @param {?} key
* @return {undefined}
*/
var length = function(key) {
if (key.u && (key.u = resolveModule(key.u), key.ctc && (key.ctc.u = resolveModule(key.ctc.u)), key.sls)) {
/** @type {number} */
var j = 0;
for (;j < key.sls.length;j++) {
key.sls[j].u = resolveModule(key.sls[j].u);
}
}
};
length = cb(length, "aDTU");
/**
* @param {?} fn
* @return {undefined}
*/
var param = function(fn) {
if (fn.sr) {
fn.sr.wt = add(fn.sr.wt);
fn.sr.nt = add(fn.sr.nt);
}
};
param = cb(param, "fSRD");
/**
* @param {Function} url
* @param {Object} event
* @return {?}
*/
var resize = function(url, event) {
if (!event.isHighendMobile || !endsWith()) {
return null;
}
/** @type {string} */
var currentValue = "100%";
return cb(function() {
var value = getWindowSize(false, window).width;
/** @type {number} */
var result = window.screen.width;
/** @type {string} */
value = value > result && value < 2 * result ? result + "px" : "100%";
if (value != currentValue) {
/** @type {string} */
currentValue = value;
var i;
for (i in defs) {
result = ok(i, url);
if (null == result) {
delete defs[i];
} else {
css(result.document.body, "width", value);
}
}
setTimeout(defer(el, url), 10);
}
}, "mWS");
};
resize = cb(resize, "gMWS");
/**
* @param {Array} array
* @param {string} name
* @param {?} obj
* @return {undefined}
*/
var get = function(array, name, obj) {
/** @type {boolean} */
var f = false;
name = expect(name);
if (obj.isRtl) {
self.Kb("rtl", true);
}
if (obj.queryId) {
self.Dd("qi", obj.queryId);
}
var context = {};
/** @type {number} */
var d = 0;
for (;d < array.length;d++) {
var data = array[d];
var key = data.fn;
if ("slave-0" == key) {
/** @type {boolean} */
f = true;
}
/** @type {string} */
key = key + "-" + name;
if (!json[key]) {
var msg = {
message : key
};
util.log(msg, "pAJ2");
/** @type {Array} */
json[key] = [];
}
json[key].push(data);
if (data.type != ecConfig.Hc) {
if (data.type != ecConfig.Ec) {
if (data.ctc) {
if (data.ctc.coa) {
if (!data.u) {
data.u = data.ctc.u;
}
}
}
length(data);
if (data.t) {
data.cleanTitle = stringify(data.t);
}
if (data.v) {
data.visDomain = stringify(data.v).replace(/\/.*$/, "").replace(/^www\./, "");
data.nonBreakingVisDomain = data.visDomain.replace(/-/g, "&#8209;");
}
if (data.type == ecConfig.zf) {
param(data);
}
if (obj.getVisUrls) {
if (data) {
if (data.v) {
/** @type {number} */
context[stringify(data.v)] = 1;
}
}
}
}
}
}
if (obj.getVisUrls) {
/** @type {Array} */
array = [];
var match;
for (match in context) {
array.push(match);
}
self.Dd("v." + name, array.sort().join("|"));
}
var i;
for (i in json) {
match = json[i].length;
/** @type {boolean} */
array = false;
if (0 < match && json[i][0].type == ecConfig.Hc) {
match = json[i][0].plas ? json[i][0].plas.length : 0;
} else {
if (0 < match) {
if (json[i][0].type == ecConfig.Ec) {
match = json[i][0].offers ? json[i][0].offers.length : 0;
if (0 == match) {
if (json[i][0].pd) {
/** @type {boolean} */
array = true;
}
}
}
}
}
if (f && /^master/.test(i)) {
if (0 < match) {
msg = {
message : json[i].length
};
util.log(msg, "pAJ3");
}
delete json[i];
} else {
self.Kb(i + ".hA", 0 < match);
if (obj.getNumAds) {
self.Lb(i + ".aC", match);
}
if (1 > match) {
if (!array) {
delete json[i];
}
}
}
}
if (obj.getNumAds) {
self.Kb("aD." + name, true);
}
self.Kb("r." + name, !!obj.isRejected);
_(self);
};
get = cb(get, "pAJ");
/**
* @param {Object} stop
* @return {?}
*/
var change = function(stop) {
/** @type {Array} */
var ret = [];
var key;
for (key in vals) {
var elems = stop[key];
if (elems) {
var val = vals[key];
/** @type {number} */
var i = 0;
for (;i < elems.length;i++) {
elems[i].type = val;
}
/** @type {Array} */
ret = ret.concat(elems);
}
}
return ret;
};
change = cb(change, "cAA");
/**
* @param {Object} options
* @param {Object} res
* @param {string} type
* @return {undefined}
*/
var request = function(options, res, type) {
/** @type {null} */
var req = null;
if (window.XMLHttpRequest) {
/** @type {XMLHttpRequest} */
req = new XMLHttpRequest;
} else {
if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if (req) {
req.open("GET", "/afs/ads?" + type, true);
req.setRequestHeader("Duplicate", "1");
/**
* @return {undefined}
*/
req.onreadystatechange = function() {
if (4 == req.readyState) {
var title = trim(req.responseText.substr(req.responseText.indexOf("//") + 2));
if (!title) {
throw Error("Unable to use waitForAds");
}
window.ad_json = title;
handle(options, res);
}
};
req.send();
} else {
throw Error("Unable to create the HTTP request object.");
}
};
request = cb(request, "rCAAC");
/**
* @param {Array} ca
* @param {?} key
* @return {undefined}
*/
var output = function(ca, key) {
/** @type {number} */
var i = 0;
for (;i < ca.length;i++) {
var c = ca[i];
var n = c.n;
c = c.v;
if ("t" == c) {
/** @type {boolean} */
key[n] = true;
} else {
if ("f" != c) {
key[n] = c;
}
}
}
};
output = cb(output, "cPATO");
/**
* @param {?} config
* @return {?}
*/
var reply = function(config) {
var camelKey = window.caps_ || {};
if (config.hasOwnProperty("caps")) {
output(config.caps, camelKey);
}
if (window.relay) {
camelKey.relay = window.relay;
}
if (window.resultUrl) {
camelKey.resultUrl = window.resultUrl;
}
if (window.refererUrl) {
camelKey.refererUrl = window.refererUrl;
}
return camelKey;
};
reply = cb(reply, "pCFJPD");
/**
* @param {Object} options
* @param {Object} fn
* @param {Object} c
* @return {undefined}
*/
var method = function(options, fn, c) {
/**
* @param {?} $sanitize
* @return {undefined}
*/
window.cMF_ = function($sanitize) {
if (/Opera/i.test(ua)) {
setTimeout(function() {
$sanitize();
}, 0);
} else {
$sanitize();
}
};
/**
* @return {undefined}
*/
window.sPH = function() {
window.cMF_(defer(el, options));
};
/**
* @return {undefined}
*/
window.mPAASH = function() {
window.cMF_(defer(list, options, fn, c));
};
list(options, fn, c);
var args = resize(options, fn);
if (args) {
setInterval(args, 500);
}
};
method = cb(method, "sCFC");
/**
* @param {Object} namespace
* @param {Object} obj
* @return {undefined}
*/
var handle = function(namespace, obj) {
var val = window.ad_json || {};
if ("string" == typeof val) {
val = trim(val);
}
var fn = reply(val);
var name = attr(obj, namespace, val);
get(change(val), name, fn);
window.onresize = defer(params, name, fn);
method(name, fn, val);
setTimeout(function() {
el(name);
}, 1);
};
handle = cb(handle, "raa");
/**
* @param {Object} options
* @param {Object} args
* @return {undefined}
*/
var fetch = function(options, args) {
var method = args.name;
if (args && (args[method] && isFunction(args[method]))) {
request(options, args, args[method].adRequestUrlParams);
} else {
handle(options, args);
}
};
fetch = cb(fetch, "init");
/**
* @return {?}
*/
var cache = function() {
return function() {
if (window.startTime) {
process(new handler("ipl", window.startTime), "ol");
}
};
};
cache = cb(cache, "onload");
addEvent(window, "load", cache());
/**
* @return {undefined}
*/
var action = function() {
restore();
};
action = cb(action, "istats");
if (delta) {
addEvent(window, "unload", action);
setTimeout(action, 15E3);
process(delta.clone("ipl"), "jlt");
}
process(pdataCur, "pt");
}
/**
* @param {?} kb
* @param {number} require
* @return {undefined}
*/
var game = function(kb, require) {
this.kb = kb;
/** @type {number} */
this.nd = require;
};
/**
* @return {?}
*/
game.prototype.da = function() {
var a = this.kb.da() + " (one by itself, or multiple in an Array";
if (this.nd) {
a += " with fewer than " + (this.nd + 1) + " elements";
}
return a + ")";
};
/**
* @param {string} n
* @return {?}
*/
game.prototype.S = function(n) {
n = "array" == isArray(n) ? n : [n];
if (this.nd && n.length > this.nd) {
return null;
}
/** @type {Array} */
var out = [];
/** @type {number} */
var i = 0;
for (;i < n.length;i++) {
var copies = this.kb.S(n[i]);
if (null == copies) {
return null;
}
out.push(copies);
}
return 0 == out.length ? null : out;
};
/**
* @param {string} c
* @return {?}
*/
game.prototype.ca = function(c) {
c = this.S(c);
return null == c || 1 > c.length ? null : this.kb.ca(c[0]);
};
/**
* @return {undefined}
*/
var constr = function() {
};
/**
* @return {?}
*/
constr.prototype.da = function() {
return "true, false";
};
/**
* @param {string} n
* @return {?}
*/
constr.prototype.S = function(n) {
return "true" == n || 1 == n ? true : "false" == n || false === n ? false : null;
};
/**
* @param {string} c
* @return {?}
*/
constr.prototype.ca = function(c) {
c = this.S(c);
return null == c ? null : c ? 1 : 0;
};
var obj = new constr;
/**
* @param {?} from
* @param {?} v
* @return {undefined}
*/
var move = function(from, v) {
/** @type {number} */
this.qc = Math.ceil(from);
/** @type {number} */
this.oc = Math.floor(v);
};
/**
* @return {?}
*/
move.prototype.da = function() {
return this.qc + " - " + this.oc;
};
/**
* @param {string} n
* @return {?}
*/
move.prototype.S = function(n) {
/** @type {number} */
n = parseInt(n, 10);
return n >= this.qc && n <= this.oc ? n : null;
};
/**
* @param {string} c
* @return {?}
*/
move.prototype.ca = function(c) {
return this.S(c);
};
/**
* @param {?} cli
* @return {undefined}
*/
var config = function(cli) {
this.kb = cli;
};
/**
* @return {?}
*/
config.prototype.da = function() {
return this.kb.da() + " (one or more, comma separated)";
};
/**
* @param {string} n
* @return {?}
*/
config.prototype.S = function(n) {
n = getText(n);
/** @type {Array} */
var out = [];
/** @type {number} */
var i = 0;
for (;i < n.length;i++) {
var copies = this.kb.S(n[i]);
if (null != copies) {
out.push(copies);
}
}
return 0 == out.length ? null : out.join(",");
};
/**
* @param {(Array|string)} data
* @return {?}
*/
config.prototype.ca = function(data) {
data = getText(data);
/** @type {number} */
var byteIndex = 0;
for (;byteIndex < data.length;byteIndex++) {
var ca = this.kb.ca(data[byteIndex]);
if (null != ca) {
return ca;
}
}
return null;
};
/**
* @param {string} key
* @return {?}
*/
var getText = function(key) {
if (!isObject(key)) {
return[];
}
key = key.split(",");
/** @type {Array} */
var ret = [];
/** @type {number} */
var i = 0;
for (;i < key.length;i++) {
ret.push(pad(key[i]));
}
return ret;
};
/**
* @param {Array} var_args
* @param {number} target
* @return {undefined}
*/
var extend = function(var_args, target) {
/** @type {Array} */
this.jf = var_args;
var result = target || 0;
this.kf = {};
/** @type {number} */
var i = 0;
for (;i < this.jf.length;i++) {
var part = this.jf[i];
this.kf[part.toLowerCase()] = new clone(part, result + i);
}
};
/**
* @param {?} dataAndEvents
* @param {?} deepDataAndEvents
* @return {undefined}
*/
var clone = function(dataAndEvents, deepDataAndEvents) {
this.kj = dataAndEvents;
this.id = deepDataAndEvents;
};
var nodeHook = new clone(null, null);
/**
* @return {?}
*/
extend.prototype.da = function() {
return this.jf.join(", ") + " (case insensitive)";
};
/**
* @param {?} self
* @param {string} name
* @return {?}
*/
var search = function(self, name) {
if (!isObject(name)) {
return nodeHook;
}
name = name.toLowerCase();
return self.kf.hasOwnProperty(name) ? self.kf[name] : nodeHook;
};
/**
* @param {string} n
* @return {?}
*/
extend.prototype.S = function(n) {
return search(this, n).kj;
};
/**
* @param {string} n
* @return {?}
*/
extend.prototype.ca = function(n) {
return search(this, n).id;
};
/**
* @return {undefined}
*/
var EventEmitter2 = function() {
};
/** @type {RegExp} */
var rRadial = /^\d+px$/i;
/** @type {RegExp} */
var host = /^\d+%$/;
/**
* @return {?}
*/
EventEmitter2.prototype.da = function() {
return "Width in px (e.g. '500px') or 'auto'";
};
/**
* @param {string} n
* @return {?}
*/
EventEmitter2.prototype.S = function(n) {
var c = isNumber(n);
return null != c ? c + "px" : isObject(n) && ("auto" == n || host.test(n)) ? n : null;
};
/**
* @param {?} i
* @return {?}
*/
EventEmitter2.prototype.ca = function(i) {
return isNumber(i);
};
/**
* @param {?} value
* @return {?}
*/
var isNumber = function(value) {
return "number" == typeof value || isObject(value) && (!/[^0-9]/.test(value) || rRadial.test(value)) ? (value = parseInt(value, 10), isNaN(value) ? null : value) : null;
};
var emitter = new EventEmitter2;
/**
* @return {undefined}
*/
var Contact = function() {
};
/**
* @return {?}
*/
Contact.prototype.da = function() {
return "A string";
};
/**
* @param {string} n
* @return {?}
*/
Contact.prototype.S = function(n) {
return isObject(n) ? n : null;
};
/** @type {function (): ?} */
Contact.prototype.ca = tryIt;
var contact = new Contact;
/**
* @return {undefined}
*/
var Position = function() {
};
/** @type {RegExp} */
var numbers = /^((https?):)?\/\/([a-zA-Z0-9\~\!\@\#\$\&\*\(\)_\+\-\=\:\;\'\,\.\?\/\%]*)$/;
/**
* @return {?}
*/
Position.prototype.da = function() {
return "An http(s) url";
};
/**
* @param {string} n
* @return {?}
*/
Position.prototype.S = function(n) {
return isObject(n) && numbers.test(n) ? n : null;
};
/** @type {function (): ?} */
Position.prototype.ca = tryIt;
var _position = new Position;
var alphaVar = new move(2, 400);
var qtruntimeobject = new move(0, 400);
var appCount = new extend(["title-right", "ad-left"]);
var order = new move(8, 50);
var aP1 = new config(new extend("verdana;arial;tahoma;times new roman;georgia;trebuchet ms".split(";"), 1));
var cos = new config(new extend(["right", "left", "top", "bottom"]));
var targetRow = new extend(["off", "low", "med", "high"]);
var m = new extend(["_top", "_blank"]);
var sample_json = {
key : "container",
a : contact
};
var options = {
key : "adtest",
a : obj,
F : "at",
qa : true
};
var doc = {
key : "adsafe",
a : targetRow,
F : "as",
qa : true
};
var extra = {
key : "clicktrackUrl",
a : new game(_position)
};
var expr = {
key : "linkTarget",
a : m,
hb : "_top",
K : true
};
/**
* @param {Object} o
* @param {Object} obj
* @return {undefined}
*/
var isString = function(o, obj) {
var k;
for (k in obj) {
if (obj.hasOwnProperty(k)) {
if (!o.hasOwnProperty(k)) {
o[k] = obj[k];
}
}
}
};
var reversed = {
role : 2,
slaveNumber : 1,
masterNumber : 1,
cx : 1,
cref : 1,
bgresponse : 1,
sbsignals : 1,
gcsc : 1,
fexp : 1,
forceEx : 1,
expflags : 1,
userAgent : 1,
domainName : 1,
adRequestUrlParams : 1,
deb : 1,
uideb : 1,
debug : 1,
fcap : 1,
adsRejectedCallback : 1,
fakeads : 1,
uuld : 1,
jsSrc : 1,
iframeFromScs : 1
};
var suiteView = {
pubId : 1,
propertyCode : 1,
container : 2,
channel : 1,
hl : 1,
adtest : 1,
adsafe : 1,
clicktrackUrl : 1,
adLoadedCallback : 1,
adsResponseCallback : 1,
linkTarget : 1,
type : 1
};
var defaults = {
lines : 1,
width : 1,
verticalSpacing : 1,
colorAdBackground : 1,
colorAdBorder : 1,
colorAdSeparator : 1,
colorText : 1,
colorTitleLink : 1,
colorDomainLink : 1,
colorBackground : 1,
colorBorder : 1,
colorAttribution : 1,
colorPlusOnes : 1,
colorLocation : 1,
colorAnnotation : 1,
fontFamily : 1,
fontFamilyAttribution : 1,
fontSizeTitle : 1,
fontSizeDescription : 1,
fontSizeDomainLink : 1,
fontSizeAttribution : 1,
fontSizePlusOnes : 1,
fontSizeLocation : 1,
fontSizeAnnotation : 1,
titleBold : 1,
rolloverLinkBold : 1,
rolloverLinkColor : 1,
rolloverLinkBackgroundColor : 1,
rolloverLinkUnderline : 1,
rolloverAdBackgroundColor : 1,
noTitleUnderline : 1,
attributionSpacingBelow : 1,
rightHandAttribution : 1,
attributionText : 1,
attributionHref : 1,
adsLabel : 1,
adBorderSelections : 1,
borderSelections : 1,
position : 1,
adIconPageUrl : 1,
adIconPageWidth : 1,
adIconPageHeight : 1,
adIconPageLocation : 1,
adIconPageSpacingAbove : 1,
adIconPageSpacingBefore : 1,
adIconPageSpacingAfter : 1,
adIconUrl : 1,
adIconWidth : 1,
adIconHeight : 1,
adIconLocation : 1,
adIconSpacingAbove : 1,
adIconSpacingBefore : 1,
adIconSpacingAfter : 1,
adIconSpacingBelow : 1,
lineHeightTitle : 1,
lineHeightDescription : 1,
lineHeightDomainLink : 1,
domainLinkAboveDescription : 1,
detailedAttribution : 1,
columns : 1,
columnSpacing : 1,
horizontalFlow : 1,
horizontalAlignment : 1,
maxTermLength : 1,
sellerColumnWidth : 1,
amazonTheme : 1,
amazonGrayBullets : 1
};
var fromIndex = {
query : 2,
number : 1,
oe : 1,
ie : 1,
maxTop : 1,
minTop : 1,
gcse_nc : 1,
queryLink : 1,
queryContext : 1,
siteLinks : 1,
location : 1,
sellerRatings : 1,
reviewExtension : 1,
adPage : 1,
adpage : 1,
clickToCall : 1,
adstyle : 1,
numRepeated : 1,
gl : 1,
gcs : 1,
gr : 1,
gm : 1,
longerHeadlines : 1,
afdToken : 1,
plusOnes : 1,
colorKeyword : 1,
relatedSearches : 1,
offerHighlight : 1,
adPageId : 1,
heightConstrained : 1,
referrer : 1,
plas : 1,
topPlas : 1,
plaFormat : 1,
noAdLoadedCallback : 1,
iframeHeightCallback : 1,
visibleUrlsCallback : 1,
clickableBackgrounds : 1,
cseGoogleHosting : 1,
waitForAds : 1,
resultsPageBaseUrl : 1,
resultsPageQueryParam : 1
};
/**
* @return {?}
*/
var randomName = function() {
var suiteView = {};
win(suiteView, [doc, options, extra, sample_json, expr, {
key : "verticalSpacing",
a : new move(2, 30)
}, {
key : "lines",
a : new move(1, 3),
F : "af",
hb : 3
}, {
key : "colorAdBackground",
a : docCount
}, {
key : "colorAdBorder",
a : docCount
}, {
key : "colorAdSeparator",
a : docCount
}, {
key : "colorText",
a : docCount,
K : true
}, {
key : "colorTitleLink",
a : docCount,
K : true
}, {
key : "colorDomainLink",
a : docCount,
K : true
}, {
key : "colorBackground",
a : docCount,
K : true
}, {
key : "colorBorder",
a : docCount,
K : true
}, {
key : "colorAttribution",
a : docCount
}, {
key : "colorPlusOnes",
a : docCount
}, {
key : "colorKeyword",
a : docCount
}, {
key : "colorLocation",
a : docCount
}, {
key : "colorAnnotation",
a : docCount
}, {
key : "fontFamily",
a : aP1,
F : "ff",
K : true
}, {
key : "fontFamilyAttribution",
a : aP1,
F : "fa"
}, {
key : "fontSizeTitle",
a : ELEMENT_NODE,
F : "st",
K : true
}, {
key : "fontSizeDescription",
a : ELEMENT_NODE,
F : "sd",
K : true
}, {
key : "fontSizeDomainLink",
a : ELEMENT_NODE,
F : "sv",
K : true
}, {
key : "fontSizeAttribution",
a : ELEMENT_NODE,
F : "sa",
K : true
}, {
key : "fontSizePlusOnes",
a : ELEMENT_NODE,
F : "so",
K : true
}, {
key : "fontSizeLocation",
a : ELEMENT_NODE,
F : "sc",
K : true
}, {
key : "fontSizeAnnotation",
a : ELEMENT_NODE,
F : "sn",
K : true
}, {
key : "titleBold",
a : obj,
K : true
}, {
key : "rolloverLinkBold",
a : obj,
K : true
}, {
key : "rolloverLinkColor",
a : docCount,
K : true
}, {
key : "rolloverLinkBackgroundColor",
a : docCount,
K : true
}, {
key : "rolloverLinkUnderline",
a : obj,
K : true
}, {
key : "rolloverAdBackgroundColor",
a : docCount,
K : true
}, {
key : "noTitleUnderline",
a : obj
}, {
key : "rightHandAttribution",
a : obj
}, {
key : "clickableBackgrounds",
a : obj
}, {
key : "attributionText",
a : contact
}, {
key : "attributionHref",
a : _position
}, {
key : "adsLabel",
a : obj
}, {
key : "adBorderSelections",
a : cos
}, {
key : "borderSelections",
a : cos
}, {
key : "position",
a : new extend(["top", "right", "bottom"])
}, {
key : "cseGoogleHosting",
a : new extend(["full", "iframe", "partner"])
}, {
key : "adIconPageUrl",
a : _position
}, {
key : "adIconPageWidth",
a : alphaVar
}, {
key : "adIconPageHeight",
a : alphaVar
}, {
key : "adIconPageLocation",
a : appCount
}, {
key : "adIconPageSpacingAbove",
a : qtruntimeobject
}, {
key : "adIconPageSpacingBefore",
a : qtruntimeobject
}, {
key : "adIconPageSpacingAfter",
a : qtruntimeobject
}, {
key : "adIconUrl",
a : _position
}, {
key : "adIconWidth",
a : alphaVar
}, {
key : "adIconHeight",
a : alphaVar
}, {
key : "adIconLocation",
a : appCount,
hb : "ad-left"
}, {
key : "adIconSpacingAbove",
a : qtruntimeobject,
K : true
}, {
key : "adIconSpacingBefore",
a : qtruntimeobject
}, {
key : "adIconSpacingAfter",
a : qtruntimeobject
}, {
key : "adIconSpacingBelow",
a : qtruntimeobject
}, {
key : "lineHeightTitle",
a : order,
F : "lt"
}, {
key : "lineHeightDescription",
a : order,
F : "ld"
}, {
key : "lineHeightDomainLink",
a : order,
F : "lv"
}, {
key : "domainLinkAboveDescription",
a : obj,
F : "va"
}, {
key : "plaFormat",
a : new extend(["horizontal", "twoColumn", "threeColumn"]),
hb : "twoColumn"
}, {
key : "adRequestUrlParams",
a : contact
}, {
key : "waitForAds",
a : obj,
F : "wa"
}, {
key : "heightConstrained",
a : obj,
F : "hc"
}, {
key : "width",
a : emitter,
F : "wi",
K : true
}, {
key : "detailedAttribution",
a : obj,
F : "da"
}, {
key : "attributionSpacingBelow",
a : new move(0, 40)
}, {
key : "siteLinks",
a : obj,
F : "sl",
qa : true
}, {
key : "sellerRatings",
a : obj,
F : "sr",
qa : true
}, {
key : "location",
a : obj,
F : "lo",
qa : true
}, {
key : "clickToCall",
a : obj,
F : "cc",
qa : true
}, {
key : "longerHeadlines",
a : obj,
F : "lh",
qa : true
}, {
key : "plusOnes",
a : obj,
F : "po",
qa : true
}, {
key : "resultsPageBaseUrl",
a : _position
}, {
key : "offerHighlight",
a : obj,
F : "oh",
qa : true
}, {
key : "type",
a : new extend(["ads", "relatedsearch"])
}, {
key : "columns",
a : new move(1, 20),
hb : 1
}, {
key : "columnSpacing",
a : new move(2, 100)
}, {
key : "horizontalFlow",
a : obj
}, {
key : "horizontalAlignment",
a : new extend(["center", "left", "right"]),
hb : "left"
}, {
key : "resultsPageQueryParam",
a : contact,
hb : "query"
}, {
key : "adPageId",
a : new move(0, 4294967295)
}, {
key : "reviewExtension",
a : obj,
F : "ap",
qa : true
}, {
key : "sellerColumnWidth",
a : new move(130, 200)
}, {
key : "amazonTheme",
a : new extend(["numbered", "bulleted"])
}, {
key : "amazonGrayBullets",
a : obj
}]);
return suiteView;
};
/**
* @return {?}
*/
var any = function() {
var result = {};
isString(result, fromIndex);
isString(result, defaults);
isString(result, reversed);
isString(result, suiteView);
return result;
};
if (window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @return {undefined}
*/
var i = function() {
var memory = detect();
fetch(memory, iterator(window.name));
};
if (0 == ua.indexOf("Opera") || -1 == ua.indexOf("MSIE") && -1 == ua.indexOf("Trident")) {
i();
} else {
/** @type {function (): undefined} */
window.onload = i;
}
}
if (!window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @return {undefined}
*/
var DOMHandler = function() {
};
p = DOMHandler.prototype;
/**
* @return {?}
*/
p.he = function() {
return new token(onload() + "/afs/ads");
};
/**
* @return {?}
*/
p.re = function() {
return new token(onload() + "/uds/afs/i");
};
/**
* @return {?}
*/
p.pe = function() {
return new token(onload() + "/afs/ads/i/iframe.html");
};
/**
* @return {?}
*/
p.ne = function() {
return "uds_ads_only";
};
/**
* @return {?}
*/
p.Ke = function() {
return false;
};
/**
* @return {undefined}
*/
var file = function() {
};
p = file.prototype;
/**
* @return {?}
*/
p.he = function() {
return new token((window.dafeBase_ || (window._googCsaAlwaysHttps ? "https:" : "") + "//domains.googlesyndication.com") + "/apps/domainpark/domainpark.cgi?");
};
/**
* @return {?}
*/
p.re = function() {
return null;
};
/**
* @return {?}
*/
p.pe = function() {
return null;
};
/**
* @return {?}
*/
p.ne = function() {
return "caf";
};
/**
* @return {?}
*/
p.Ke = function() {
return true;
};
/**
* @return {undefined}
*/
var Callbacks = function() {
};
p = Callbacks.prototype;
/**
* @return {?}
*/
p.he = function() {
return new token((window._googCsaAlwaysHttps ? "https:" : "") + "//" + (window.google && (window.google.loader && window.google.loader.GoogleLocale) ? window.google.loader.GoogleLocale : "www.google.com") + "/cse");
};
/**
* @return {?}
*/
p.re = function() {
return null;
};
/**
* @return {?}
*/
p.pe = function() {
return null;
};
/**
* @return {?}
*/
p.ne = function() {
return "uds_ads_only";
};
/**
* @return {?}
*/
p.Ke = function() {
return false;
};
}
/**
* @param {?} index
* @return {undefined}
*/
var go = function(index) {
/** @type {function (): number} */
var nativeRandom = Math.random;
this.oi = index;
/** @type {function (): ?} */
this.Di = randomColor;
/** @type {function (string, Object): undefined} */
this.Kj = loadImage;
/** @type {function (): number} */
this.yj = nativeRandom;
};
if (!window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Object} i
* @param {?} name
* @param {Object} data
* @param {Object} key
* @param {?} dataName
* @param {?} deepDataAndEvents
* @param {(Function|string)} obj
* @param {Object} customTags
* @return {undefined}
*/
var data = function(i, name, data, key, dataName, deepDataAndEvents, obj, customTags) {
/** @type {Object} */
this.Ea = i;
this.Nc = name;
this.we(data, key, dataName, deepDataAndEvents, obj, customTags);
};
data = cb(data, "ab");
data.qj = new handler("pjsp");
/** @type {string} */
data.xh = "gcsc";
/** @type {string} */
data.qh = "21404";
/** @type {string} */
data.Ch = "4031211";
/** @type {string} */
data.wh = "20606";
/** @type {Array} */
data.vf = ["", "7000105", "7000106", "7000107", "7000108"];
/** @type {string} */
data.ab = "longerHeadlines";
/** @type {string} */
data.Hd = "n";
/** @type {string} */
data.Cf = "w";
/** @type {string} */
data.wf = "p";
/** @type {string} */
data.Bh = "a";
/** @type {string} */
data.yf = "pn";
/** @type {string} */
data.Af = "pt";
/** @type {number} */
data.Lh = 6E4;
/** @type {string} */
data.zh = "on";
/** @type {boolean} */
data.prototype.qd = false;
/** @type {string} */
data.fh = "";
/** @type {number} */
data.Kg = Math.floor(100 * Math.random());
/** @type {string} */
data.Dh = "7000126";
/** @type {string} */
data.Eh = "7000127";
/** @type {string} */
data.Kh = "7000128";
/** @type {RegExp} */
data.Fh = /(^|,|\+)csa_(use|no)_rs(_aa)?($|,|\+)/;
data.Gc = {
query : "q",
type : "type",
format : "format",
ads : "ad",
pubId : "client",
channel : "channel",
adtest : "adtest",
hl : "hl",
adsafe : "adsafe",
adPage : "adpage",
adpage : "adpage",
oe : "oe",
ie : "ie",
output : "output",
role : "r",
referer : "referer",
rurl : "rurl",
res_url : "res_url",
v : "v",
source : "source",
safe : "safe",
num : "num",
fexp : "fexp",
jsei : "jsei",
nocache : "nocache",
cx : "cx",
cref : "cref",
bgresponse : "bgresponse",
sbsignals : "sbsignals",
gcse_nc : "gcse_nc",
queryLink : "qry_lnk",
queryContext : "qry_ctxt",
adExtensions : {
arg : "adext",
siteLinks : "as1",
location : "l1",
sellerRatings : "sr1",
clickToCall : "ctc1"
},
allwcallad : "allwcallad",
adstyle : "adstyle",
adlh : "adlh",
numRepeated : "adrep",
gl : "gl",
uuld : "uuld",
gcs : "gcs",
gr : "gr",
gm : "gm",
preload : "preload",
forceEx : "expid",
e : "e",
expflags : "expflags",
userAgent : "useragent",
fcap : "fcap",
afdToken : "afdt",
plusOnes : "po",
colorKeyword : "clkwd",
deb : "deb",
uideb : "uideb",
debug : "debug",
fakeads : "fakeads",
jsSrc : "csa_js_src",
location : "lo",
domainName : "domain_name",
maxTermLength : "max_radlink_len",
adPageId : "apid",
theme : "theme",
textColorPalette : "tcpal",
merchantFilter : "cmf",
gtin : "gtin",
brand : "brand",
mpn : "mpn",
priceCurrency : "pfcrncy",
priceMin : "pfmin",
priceMax : "pfmax"
};
/** @type {string} */
data.uh = "UTF-8";
/** @type {string} */
data.sh = "UTF-8";
/** @type {number} */
data.tf = 2;
/** @type {number} */
data.ik = 2;
/** @type {string} */
data.Bf = "googleSynd";
data.gh = {};
/** @type {number} */
data.Ah = 80;
p = data.prototype;
/**
* @param {(Function|string)} b
* @return {?}
*/
p.Wd = function(b) {
if (this.fa) {
return data.Hd + "0";
}
var zoom = b.minTop + this.Ta;
var mz = b.maxTop + this.Sa;
var l = b.narrow + this.Va;
var r = b.wide + this.Xa;
var c = b.plas + this.Ua;
var m = b.topPlas + this.Wa;
b = 0 < zoom ? data.Bh + zoom : "";
var g = 0 < mz ? data.wf + mz : "";
l = 0 < l ? data.Hd + l : "";
r = 0 < r ? data.Cf + r : "";
c = 0 < c ? data.yf + c : "";
m = 0 < m ? data.Af + m : "";
if (mz && zoom > mz) {
throw removeListener("Cannot request more minTop ads than maxTop.");
}
return r + l + g + b + c + m;
};
p.Wd = cb(data.prototype.Wd, "cAA");
/**
* @param {string} args
* @param {Array} namespaces
* @return {?}
*/
p.Yd = function(args, namespaces) {
var block = this.Z(args);
if (namespaces) {
if (0 < namespaces.length) {
namespaces.splice(0, 0, block);
block = namespaces.join("|");
}
}
return block;
};
p.Yd = cb(data.prototype.Yd, "cFAM");
/**
* @param {Object} args
* @return {?}
*/
p.Z = function(args) {
this.Va = args.number && !args[data.ab] ? args.number : 0;
this.Xa = args.number && args[data.ab] ? args.number : 0;
this.Ta = args.minTop;
this.Sa = args.maxTop;
this.Ua = args.plas;
this.Wa = args.topPlas;
if (!this.Va) {
if (!this.Ta) {
if (!this.Sa) {
if (!this.Xa) {
if (!this.Ua) {
if (!this.Wa) {
if (args[data.ab]) {
this.Xa = data.tf;
} else {
this.Va = data.tf;
}
}
}
}
}
}
}
var a = this.Va || this.Xa;
var b = this.Sa || this.Ta;
var c = this.Ua || this.Wa;
if (a && b) {
throw removeListener("Cannot request standard and top ads in the same ad block.");
}
if (a && c) {
throw removeListener("Cannot request standard and PLA ads in the same ad block.");
}
if (b && c) {
throw removeListener("Cannot request top and PLA ads in the same ad block.");
}
if (this.Ua && this.Wa) {
throw removeListener("Cannot request top PLAs and standard PLAs in the same ad block.");
}
if (this.fa && (0 != args.slaveNumber && (!args.firstAdBlock && (this.Sa || this.Ta)))) {
throw removeListener("Only the first ad block can have top ads.");
}
var dataText;
if (this.Sa || this.Ta) {
dataText = data.wf;
} else {
if (this.Va) {
dataText = data.Hd;
} else {
if (this.Xa) {
dataText = data.Cf;
} else {
if (this.Ua) {
dataText = data.yf;
} else {
if (this.Wa) {
dataText = data.Af;
}
}
}
}
}
return dataText + (this.Sa || (this.Ta || (this.Va || (this.Xa || (this.Ua || (this.Wa || 0))))));
};
p.Z = cb(data.prototype.Z, "cFA");
/**
* @return {?}
*/
p.je = function() {
return this.Bi;
};
p.je = cb(data.prototype.je, "gFA");
/**
* @param {Object} v
* @return {?}
*/
p.Bd = function(v) {
if (tmpl(v)) {
/** @type {boolean} */
v.siteLinks = 0 != v.siteLinks;
/** @type {boolean} */
v.sellerRatings = 0 != v.sellerRatings;
/** @type {boolean} */
v.clickToCall = 0 != v.clickToCall;
}
return v = data.mf(v);
};
p.Bd = cb(data.prototype.Bd, "sDIUP");
/**
* @return {undefined}
*/
p.Ja = function() {
};
p.Ja = cb(data.prototype.Ja, "vAURSO");
/**
* @param {Object} args
* @param {?} deepDataAndEvents
* @param {(Function|string)} key
* @param {Object} tags
* @return {?}
*/
p.lf = function(args, deepDataAndEvents, key, tags) {
var options = {};
var i;
for (i in this.Nc) {
if (this.Nc.hasOwnProperty(i)) {
if (2 != this.Nc[i] || args[i]) {
if ("undefined" != typeof args[i]) {
if (null != args[i]) {
options[i] = args[i];
}
}
} else {
throw removeListener("Missing option '" + i + "'.");
}
}
}
/** @type {boolean} */
this.fa = "m" != args.role;
if (!this.fa) {
var c;
a: {
/** @type {(Array.<string>|null)} */
var m = window.location.href.match(/[?&]rsToken=([^&]*)/);
if (m && m[1]) {
try {
/** @type {string} */
c = decodeURIComponent(m[1]);
break a;
} catch (p) {
}
}
/** @type {null} */
c = null;
}
if (c) {
/** @type {string} */
options.afdToken = c;
}
}
options.adLoadedCallback = args.adLoadedCallback || (args.callback || null);
options.adsRejectedCallback = args.adsRejectedCallback || null;
options.oe = options.oe || data.uh;
options.ie = options.ie || data.sh;
options.number = data.zb(options.number, 0);
options.minTop = data.zb(options.minTop, 0);
options.maxTop = data.zb(options.maxTop, 0);
options.plas = data.zb(options.plas, 0);
options.topPlas = data.zb(options.topPlas, 0);
if (1 == options.slaveNumber) {
if (options.numRepeated) {
if (options.longerHeadlines) {
/** @type {boolean} */
options.longerHeadlines = false;
}
}
}
/** @type {string} */
options.fexp = (options.fexp ? options.fexp + "," : "") + (options.gcsc ? data.wh : data.qh);
if (!window.postMessage) {
options.fexp += "," + data.Ch;
}
if (c = window.googlev3ex) {
if (!isNaN(parseInt(c, 10))) {
options.fexp += "," + c;
}
}
/** @type {number} */
c = parseInt(window._googCsaX, 10) || 0;
if (0 < c) {
if (c < data.vf.length) {
/** @type {number} */
options.jsei = c;
options.fexp += "," + data.vf[c];
}
}
/** @type {number} */
c = parseInt(window._googCsaExp, 10) || 0;
if (0 < c) {
options.fexp += "," + c;
}
/** @type {number} */
c = parseInt(window._googCsaJsLoad, 10) || 0;
if (0 < c) {
options.fexp += "," + c;
if (delta) {
if (7000615 == c || 7000637 == c) {
removeNode("pplsc");
} else {
if (!(7000616 != c && 7000638 != c)) {
removeNode("pplse");
}
}
}
}
/** @type {number} */
c = parseInt(window._googCsaRelSearch, 10) || 0;
if (0 < c) {
options.fexp += "," + c;
}
if (options.channel) {
if ("string" == typeof options.channel) {
if (c = options.channel.match(data.Fh)) {
options.fexp += "," + ("use" == c[2] ? data.Kh : "_aa" == c[3] ? data.Eh : data.Dh);
}
}
}
if (options.forceEx) {
/** @type {string} */
options.e = "ForceExperiment";
} else {
if (0 === options.forceEx) {
/** @type {string} */
options.e = "0";
}
}
if (options.gcsc) {
if (5 > data.Kg) {
options.fexp += ",37108";
} else {
if (10 > data.Kg) {
options.fexp += ",37109";
}
}
if ("top" == args.position) {
options.maxTop = args.number;
/** @type {boolean} */
options.longerHeadlines = false;
/** @type {null} */
options.number = null;
}
}
options.format = this.fa ? this.Z(options) : this.Yd(options, deepDataAndEvents);
this.Bi = options.format;
options.ads = this.Wd(key);
/** @type {string} */
options.nocache = [Math.floor(1E3 * Math.random()), (new Date).getTime()].join("");
/** @type {string} */
options.num = "0";
options.output = this.xc.ne();
if (this.xc.Ke()) {
if (!options.domainName) {
/** @type {string} */
options.domainName = window.document.domain;
}
options.domainName = options.domainName.substring(0, data.Ah);
} else {
/** @type {string} */
options.domainName = "";
}
if (options.gcsc) {
options.source = data.xh;
}
/** @type {string} */
options.v = isFunction(options) ? "4" : "3";
if (options.adPageId) {
options.pubId = options.propertyCode;
options.adPageId = matches(this.Ea.adPageId, options.adPageId);
}
if (!isObject(options.pubId)) {
/** @type {string} */
options.pubId = "" + options.pubId;
}
if (0 == options.pubId.indexOf("partner-")) {
options.pubId = options.pubId.substring(8);
}
options = this.Bd(options);
if (!options.titleBold || true !== options.titleBold && 1 != options.titleBold) {
if (options.titleBold) {
delete options.titleBold;
}
} else {
/** @type {number} */
options.titleBold = 1;
}
if (tmpl(options)) {
if (!(!options.maxTop && !options.minTop)) {
if (!options.hasOwnProperty(data.ab)) {
/** @type {boolean} */
options[data.ab] = true;
}
}
}
if (!this.fa) {
args = options[data.ab] || false;
for (i in tags) {
if (tags.hasOwnProperty(i)) {
args = args || tags[i].o[data.ab];
}
}
if (args) {
options.adlh = data.zh;
}
}
if (options.clickToCall) {
/** @type {number} */
options.allwcallad = 1;
}
this.Ja(options);
return options;
};
p.lf = cb(data.prototype.lf, "vASDO");
/**
* @param {?} b
* @param {number} mayParseLabeledStatementInstead
* @return {?}
*/
data.zb = function(b, mayParseLabeledStatementInstead) {
/** @type {number} */
var num2 = parseInt(b, 10);
return!isNaN(num2) && 0 <= num2 ? num2 : mayParseLabeledStatementInstead;
};
data.zb = cb(data.zb, "tNNIOD");
/**
* @param {number} mode
* @return {?}
*/
data.md = function(mode) {
/** @type {number} */
mode = parseInt(mode, 10);
return!isNaN(mode) && 0 <= mode;
};
data.md = cb(data.md, "iNNN");
data.yh = {
hc : 1,
lh : 1,
oh : 1,
pa : 1
};
/**
* @param {string} l
* @param {Node} params
* @return {?}
*/
data.gd = function(l, params) {
var p = params.F;
var s = params.a.ca(l);
return null != s && data.md(s) ? data.yh.hasOwnProperty(p) ? s ? p.charAt(0) + p.charAt(1).toUpperCase() : p : p + s : "";
};
data.gd = cb(data.gd, "gPFO");
p = data.prototype;
/**
* @param {Object} fields
* @return {?}
*/
p.Ne = function(fields) {
/** @type {Array} */
var tagNameArr = [];
var k;
for (k in fields) {
if (fields.hasOwnProperty(k)) {
if (k in this.Ea) {
if (this.Ea[k].F) {
tagNameArr.push(data.gd(fields[k], this.Ea[k]));
}
}
}
}
return tagNameArr.join("");
};
p.Ne = cb(data.prototype.Ne, "oTPP");
/**
* @param {Object} o
* @param {Object} arr2
* @return {?}
*/
p.uc = function(o, arr2) {
/** @type {Array} */
var tagNameArr = [];
var i;
for (i in o) {
if (!!(o.hasOwnProperty(i) && (i in this.Ea && this.Ea[i].F))) {
if (!(i in arr2 && arr2[i] == o[i])) {
tagNameArr.push(data.gd(o[i], this.Ea[i]));
}
}
}
return tagNameArr.join("");
};
p.uc = cb(data.prototype.uc, "oTBP");
/**
* @param {Object} data
* @param {Object} args
* @param {Object} value
* @return {?}
*/
p.$d = function(data, args, value) {
var output = data.v ? data.v : "3";
var result = this.Xd(data, args, value);
if (0 == args.length) {
return["uv", output, result, this.uc(data, {}), "-"].join("");
}
value.pubId = data.pubId;
value = this.Bd(value);
var key = this.Ne(value);
/** @type {string} */
key = ["uv", output, result, key].join("");
/** @type {Array} */
output = [];
output.push(this.uc(data, value));
/** @type {number} */
data = 0;
for (;result = args[data];data++) {
if (result.o.slaveNumber) {
if (0 != result.o.slaveNumber) {
output.push(this.uc(result.o, value));
}
}
}
return[key, output.join("-")].join("-");
};
p.$d = cb(data.prototype.$d, "cUIP");
/**
* @param {?} key
* @param {Object} children
* @param {Object} child
* @return {?}
*/
p.Xd = function(key, children, child) {
if (key.colorTitleLink || (key.colorDomainLink || (child.colorTitleLink || child.colorDomainLink))) {
return "cs1";
}
/** @type {number} */
key = 0;
for (;child = children[key];key++) {
if (child.o.colorTitleLink || child.o.colorDomainLink) {
return "cs1";
}
}
return "";
};
p.Xd = cb(data.prototype.Xd, "cCTPP");
/**
* @param {Object} style
* @return {?}
*/
data.mf = function(style) {
/** @type {Array} */
var diffs = ["fontSizeTitle", "fontSizeDescription", "fontSizeDomainLink", "fontSizeAttribution"];
/** @type {number} */
var x = 0;
for (;x < diffs.length;x++) {
var i = diffs[x];
if (style[i]) {
var n = "string" == typeof style[i] ? parseInt(style[i].replace("px", ""), 10) : style[i];
n = n > pageCount ? pageCount : n;
n = 8 > n ? 8 : n;
/** @type {string} */
style[i] = n + "px";
}
}
return style;
};
data.mf = cb(data.mf, "vFS");
p = data.prototype;
/**
* @param {Object} options
* @param {Window} global
* @return {?}
*/
p.ae = function(options, global) {
var e;
var doc;
var which = this.xc.he();
if (which) {
this.Nd(options, which);
/** @type {boolean} */
var win = 2 == window.googleAltLoader || 4 == window.googleAltLoader;
/** @type {boolean} */
doc = 1 == window[data.Bf];
if (3 == window.googleAltLoader && doc) {
callback(which, "bsl", 9);
} else {
if (3 == window.googleAltLoader) {
callback(which, "bsl", 8);
} else {
if (4 == window.googleAltLoader && doc) {
callback(which, "bsl", 11);
} else {
if (4 == window.googleAltLoader) {
callback(which, "bsl", 10);
} else {
if (doc) {
callback(which, "bsl", win ? 7 : 3);
} else {
if (15 == global.googleAltLoader) {
callback(which, "bsl", 2);
} else {
if (win) {
callback(which, "bsl", 6);
}
}
}
}
}
}
}
if (!this.fa) {
/** @type {Window} */
win = window;
/** @type {HTMLDocument} */
doc = document;
/** @type {Date} */
var relative_to = new Date;
/** @type {Window} */
var env = win || window;
try {
/** @type {number} */
e = env.history.length;
} catch (p) {
/** @type {number} */
e = 0;
}
callback(which, "u_his", e);
callback(which, "u_tz", -relative_to.getTimezoneOffset());
callback(which, "dt", relative_to.getTime());
callback(which, "u_w", win.screen.width);
callback(which, "u_h", win.screen.height);
e = getWindowSize(true, win);
callback(which, "biw", e.width);
callback(which, "bih", e.height);
if (win.top != win) {
e = getWindowSize(false, win);
callback(which, "isw", e.width);
callback(which, "ish", e.height);
}
if (doc.body) {
/** @type {number} */
e = (relative_to = !win.scrollY && "CSS1Compat" != doc.compatMode) ? doc.body.scrollWidth : doc.body.offsetWidth;
/** @type {number} */
doc = relative_to ? doc.body.scrollHeight : doc.body.offsetHeight;
} else {
/** @type {number} */
doc = e = -1;
}
callback(which, "psw", e);
callback(which, "psh", doc);
var msg;
if (win.top == win) {
/** @type {number} */
msg = 0;
} else {
/** @type {Window} */
win = win.top;
try {
var type;
if (type = !!win && null != win.location.href) {
b: {
try {
freeze(win.foo);
/** @type {boolean} */
type = true;
break b;
} catch (w) {
}
/** @type {boolean} */
type = false;
}
}
/** @type {boolean} */
msg = type;
} catch (v) {
/** @type {boolean} */
msg = false;
}
/** @type {number} */
msg = msg ? 1 : 2;
}
callback(which, "frm", msg);
}
callback(which, "uio", this.fh);
callback(which, "rurl", global.location.href, true);
callback(which, data.Gc.referer, global.document.referrer, true);
if (options.referrer) {
callback(which, "optref", options.referrer, true);
}
}
return which;
};
p.ae = cb(data.prototype.ae, "cU");
/**
* @param {Object} params
* @param {Object} parameters
* @param {?} which
* @return {undefined}
*/
p.Od = function(params, parameters, which) {
var ex = params.arg;
/** @type {Array} */
var args = [];
var key;
for (key in params) {
if ("arg" != key) {
if (params.hasOwnProperty(key)) {
if (parameters.hasOwnProperty(key)) {
if (parameters[key]) {
args.push(params[key]);
}
}
}
}
}
if (0 < args.length) {
callback(which, ex, args.join(","));
}
};
p.Od = cb(data.prototype.Od, "aSCSA");
/**
* @param {Object} parameters
* @param {?} which
* @return {undefined}
*/
p.Nd = function(parameters, which) {
var key;
for (key in parameters) {
if (parameters.hasOwnProperty(key) && data.Gc.hasOwnProperty(key)) {
var k = data.Gc[key];
var p = parameters[key];
if ("clkwd" == k) {
/** @type {string} */
p = "t";
}
if ("mvtb" != k || ("low" == p || ("medium" == p || "high" == p))) {
if ("type" == k) {
p = sorted[parameters[key]];
}
callback(which, k, p);
}
}
}
this.Od(data.Gc.adExtensions, parameters, which);
};
p.Nd = cb(data.prototype.Nd, "aOTU");
/**
* @return {?}
*/
p.wa = function() {
return "s" == this.o.role ? ["slave", this.o.slaveNumber, this.o.masterNumber].join("-") : ["master", this.o.masterNumber].join("-");
};
p.wa = cb(data.prototype.wa, "gFN");
/**
* @param {Array} value
* @param {Object} method
* @param {Array} data
* @param {?} j
* @return {?}
*/
p.ke = function(value, method, data, j) {
var fn = {};
/** @type {Object} */
fn.name = method;
value = data.concat([value]);
method = j.concat([method]);
/** @type {number} */
j = 0;
for (;j < value.length;j++) {
data = value[j];
var nameToAliasesMap = this.Ea;
var benchmarks = {};
var name = void 0;
for (name in nameToAliasesMap) {
if (nameToAliasesMap.hasOwnProperty(name) && !nameToAliasesMap[name].qa) {
var prop = data[name];
var ref = nameToAliasesMap[name].hb;
if ("undefined" == typeof prop || "container" == name && "object" == typeof prop) {
if ("undefined" != typeof ref) {
benchmarks[name] = ref;
}
} else {
benchmarks[name] = prop;
}
}
}
fn[method[j]] = benchmarks;
}
/** @type {Array} */
value = [];
walk(new ke, fn, value);
return value.join("");
};
p.ke = cb(data.prototype.ke, "gFNAOAJ");
/**
* @param {string} id
* @param {?} name
* @param {string} path
* @return {?}
*/
p.fe = function(id, name, path) {
if (document.getElementById(id)) {
util.log({
message : id
}, "dI");
}
/** @type {Element} */
var iframe = document.createElement("iframe");
/** @type {number} */
iframe.frameBorder = 0;
/** @type {number} */
iframe.marginWidth = 0;
/** @type {number} */
iframe.marginHeight = 0;
/** @type {number} */
iframe.vspace = 0;
/** @type {number} */
iframe.hspace = 0;
iframe.setAttribute("allowTransparency", "true");
/** @type {string} */
iframe.scrolling = "no";
/** @type {string} */
iframe.style.visibility = "hidden";
/** @type {string} */
iframe.width = "100%";
/** @type {string} */
iframe.style.height = "0px";
iframe.name = name;
/** @type {string} */
iframe.id = id;
if (createTextNode()) {
/** @type {string} */
iframe.style.display = "none";
this.Oc(iframe);
/** @type {string} */
iframe.src = path;
/** @type {string} */
iframe.style.display = "";
} else {
/** @type {string} */
iframe.src = path;
this.Oc(iframe);
}
try {
iframe.contentWindow.name = name;
} catch (e) {
}
return iframe;
};
p.fe = cb(data.prototype.fe, "gAI");
/**
* @param {Object} callback
* @param {?} serviceName
* @param {string} attr
* @return {undefined}
*/
p.Zb = function(callback, serviceName, attr) {
callback = this.fe(callback, serviceName, attr);
this.og = new handler(this.fa ? "sipl" : "mipl");
addEvent(callback, "load", this.ge());
if (!this.fa) {
this.xe(callback);
}
};
p.Zb = cb(data.prototype.Zb, "iAI");
/**
* @param {string} dataAndEvents
* @return {undefined}
*/
p.df = function(dataAndEvents) {
document.write('<script src="' + dataAndEvents + '">\x3c/script>');
};
p.df = cb(data.prototype.df, "sAP");
/**
* @param {Element} element
* @return {undefined}
*/
p.Oc = function(element) {
/** @type {string} */
this.Ma.style.fontWeight = "normal";
/** @type {string} */
this.Ma.style.textAlign = "center";
/** @type {string} */
this.Ma.innerHTML = "";
this.Ma.appendChild(element);
};
p.Oc = cb(data.prototype.Oc, "aI");
/**
* @return {undefined}
*/
p.Re = function() {
var tmp = {};
var key;
for (key in this.o) {
if (this.o.hasOwnProperty(key)) {
tmp[key] = this.o[key];
}
}
/** @type {string} */
tmp.ads = "n0";
/** @type {string} */
tmp[""] = "";
/** @type {string} */
tmp.slaveNumber = "0";
/** @type {string} */
tmp.role = "s";
tmp = on(this.Ea, this.Nc, tmp);
fields[tmp.wa()] = tmp;
this.Za.splice(0, 0, tmp);
/** @type {Element} */
tmp = document.createElement("div");
document.body.appendChild(tmp);
/** @type {string} */
tmp.style.height = "0px";
/** @type {string} */
tmp.style.visibility = "hidden";
/** @type {Element} */
this.o.container = tmp;
/** @type {boolean} */
this.vg = this.o.preload = true;
};
p.Re = cb(data.prototype.Re, "pM");
/**
* @return {?}
*/
p.Ae = function() {
self.hg = self.hg || (new Date).getTime();
return(new Date).getTime() - self.hg > data.Lh ? true : false;
};
p.Ae = cb(data.prototype.Ae, "iTU");
/**
* @return {?}
*/
p.hd = function() {
return this.o.iframeFromScs && this.xc.pe() || this.xc.re();
};
p.hd = cb(data.prototype.hd, "gSIU");
/**
* @param {Array} r
* @param {Array} bytes
* @param {?} i
* @param {?} deepDataAndEvents
* @param {(Function|string)} subKey
* @param {Object} customTags
* @return {undefined}
*/
p.we = function(r, bytes, i, deepDataAndEvents, subKey, customTags) {
/** @type {number} */
this.Wa = this.Ua = this.Xa = this.Ta = this.Sa = this.Va = 0;
/** @type {Array} */
this.xc = bytes;
this.Za = customTags || null;
this.Cg = i || null;
this.o = this.lf(r, deepDataAndEvents, subKey, customTags);
this.Ci = new go(this.o.pubId);
if (!this.bd()) {
if (!this.fa) {
if (!!document.body) {
if (!done()) {
this.Re();
}
}
}
}
this.fh = null == this.Cg ? "" : this.$d(this.o, this.Za, this.Cg);
if (this.Kc = this.fa && this.hd() || this.ae(this.o, window)) {
if (this.qb = this.id = this.Vb = this.wa(), this.Kc.ad = this.Vb, this.sa = require(this.Kc), !this.fa) {
/** @type {Array} */
r = [];
/** @type {Array} */
bytes = [];
/** @type {number} */
i = 0;
for (;i < this.Za.length;i++) {
r.push(this.Za[i].wa());
bytes.push(this.Za[i].o);
}
if (isFunction(this.o)) {
this.o.adRequestUrlParams = this.sa.substr(this.sa.indexOf("?") + 1);
}
this.qb = this.ke(this.o, this.Vb, bytes, r);
if (data.gh[this.sa]) {
util.log({
message : this.sa
}, "dAU");
} else {
/** @type {boolean} */
data.gh[this.sa] = true;
}
}
}
};
p.we = cb(data.prototype.we, "i");
/**
* @return {undefined}
*/
p.$c = function() {
var _this = this;
_this.Ic = new handler("plabl");
var throttledUpdate = cb(function() {
if (!_this.bd()) {
return false;
}
_this.Ic = _this.Ic.clone("iabl");
_this.Ye(_this.o.container);
if (_this.o.width) {
if (!_this.vg) {
if ("auto" == _this.o.width) {
/** @type {string} */
_this.Ma.style.width = "100%";
} else {
if (data.md(_this.o.width)) {
_this.Ma.style.width = _this.o.width;
}
}
}
}
_this.Fe();
return true;
}, "mA");
if (!throttledUpdate()) {
/** @type {number} */
this.Og = window.setInterval(function() {
if (throttledUpdate()) {
clearInterval(_this.Og);
} else {
if (_this.Ae()) {
throw clearInterval(_this.Og), removeListener('container "' + _this.o.container + '" does not exist.');
}
}
}, 5);
}
};
p.$c = cb(data.prototype.$c, "cI");
/**
* @return {undefined}
*/
p.Fe = function() {
if (this.Kc) {
var view = this.hd();
if (view && (require(view) && isFunction(this.o))) {
if (true === this.o.debug) {
callback(view, "debug", true);
}
if ("1" == window[data.Bf]) {
callback(view, "bsl", "3");
}
view.ad = this.Vb;
var v = require(view);
if (this.fa) {
this.Zb(this.id, this.qb, v);
} else {
var that = this;
/**
* @return {undefined}
*/
window.google.renderCsaAds = function() {
that.Zb(that.id, that.qb, v);
};
this.df(this.sa);
}
} else {
this.Zb(this.id, this.qb, this.sa);
}
}
};
p.Fe = cb(data.prototype.Fe, "mA");
/**
* @return {?}
*/
p.ge = function() {
var col = this;
return cb(function() {
if (col.og) {
process(col.og, "ol");
}
}, "iLC");
};
p.ge = cb(data.prototype.ge, "gILC");
/**
* @param {Function} deepDataAndEvents
* @return {undefined}
*/
p.xe = function(deepDataAndEvents) {
/** @type {string} */
var num = "" + this.o.masterNumber;
var console = new copy(num);
console.aa("aD." + num, C, code);
console.aa("qi", e);
/** @type {null} */
var text = null;
if (!this.vg) {
text = this.wa();
console.aa(text + ".hA", C, c);
console.aa(text + ".h", node, args);
console.aa(text + ".w", node, headers);
console.aa(text + ".aC", node);
}
console.aa("v." + num, e, rgb);
if (this.o.hasOwnProperty("gcsc")) {
if (this.o.gcsc) {
console.aa("r." + num, C, tag);
}
}
if (this.Za) {
/** @type {number} */
num = 0;
for (;num < this.Za.length;num++) {
text = this.Za[num].wa();
console.aa(text + ".hA", C, c);
console.aa(text + ".h", node, args);
console.aa(text + ".aC", node);
}
}
formatted(console, deepDataAndEvents);
};
p.xe = cb(data.prototype.xe, "iFS");
/**
* @return {undefined}
*/
p.Le = function() {
if (!this.qd) {
/** @type {boolean} */
this.qd = true;
var suiteView = this.o.container;
var restoreScript = this.o.noAdLoadedCallback;
if (restoreScript) {
values(restoreScript, suiteView, false);
}
if (restoreScript = this.o.adLoadedCallback) {
values(restoreScript, suiteView, false);
}
}
};
p.Le = cb(data.prototype.Le, "nNA");
/**
* @param {HTMLElement} el
* @param {number} deepDataAndEvents
* @return {undefined}
*/
p.Ze = function(el, deepDataAndEvents) {
/** @type {string} */
el.width = "100%";
/** @type {string} */
el.style.visibility = 0 < deepDataAndEvents ? "visible" : "hidden";
/** @type {string} */
el.style.height = deepDataAndEvents + "px";
/** @type {string} */
this.Ma.style.height = deepDataAndEvents + "px";
};
p.Ze = cb(data.prototype.Ze, "sIH");
/**
* @param {number} deepDataAndEvents
* @return {undefined}
*/
p.Xe = function(deepDataAndEvents) {
/** @type {string} */
this.Ma.style.width = deepDataAndEvents + "px";
};
p.Xe = cb(data.prototype.Xe, "sCW");
/**
* @param {number} deepDataAndEvents
* @param {?} result
* @return {undefined}
*/
p.Te = function(deepDataAndEvents, result) {
var obj = this.wa();
var body = filter(obj, true);
if (body && (this.Ze(body, deepDataAndEvents), !this.qd && 0 < deepDataAndEvents)) {
/** @type {boolean} */
this.qd = true;
if (this.Ic) {
process(this.Ic, "alt");
}
if (window.googleNDT_) {
if (!Hj) {
if (delta) {
/** @type {boolean} */
Hj = true;
process(delta, "palt");
}
}
}
var pos = getOffset(body);
var self = this.Ci;
var p = pos.y;
pos = pos.x;
var height = body.offsetHeight;
body = body.offsetWidth;
var photo = result.se("qi");
if (!(0.01 < self.yj())) {
var a = new token("https:" + onload() + "/afs/gen_204");
callback(a, "client", self.oi);
callback(a, "output", "uds_ads_only");
callback(a, "zx", self.Di());
callback(a, "adbx", pos);
callback(a, "adby", p);
callback(a, "adbh", height);
callback(a, "adbw", body);
callback(a, "adbn", obj);
callback(a, "aqid", photo);
self.Kj(require(a));
}
if (obj = this.o.adLoadedCallback) {
values(obj, this.o.container, true);
}
}
};
p.Te = cb(data.prototype.Te, "rIS");
/**
* @return {?}
*/
p.bd = function() {
var cont = this.o.container;
return "string" == typeof cont ? (cont = document.getElementById(cont), !!cont) : "string" == typeof cont.innerHTML ? true : false;
};
p.bd = cb(data.prototype.bd, "dCE");
/**
* @param {Element} opt_id
* @return {undefined}
*/
p.Ye = function(opt_id) {
if ("string" == typeof opt_id) {
/** @type {(HTMLElement|null)} */
opt_id = document.getElementById(opt_id);
}
/** @type {Element} */
this.Ma = opt_id;
};
p.Ye = cb(data.prototype.Ye, "sC");
}
var keys = {
key : "textColorPalette",
a : new game(docCount, 5)
};
/**
* @param {Array} values
* @return {?}
*/
var combine = function(values) {
if (!("array" == isArray(values))) {
/** @type {Array} */
values = [values];
}
values = matches(keys, values);
/** @type {number} */
var i = 0;
for (;i < values.length;i++) {
values[i] = parseTime(values[i]).jd.substr(1);
}
return values.join(",");
};
if (!window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} list
* @param {?} conf
* @param {?} opt_scope
* @param {?} callback
* @param {?} opt_acc
* @param {?} settings
* @param {?} cb_
* @param {?} cb
* @return {undefined}
*/
var Test = function(list, conf, opt_scope, callback, opt_acc, settings, cb_, cb) {
data.call(this, list, conf, opt_scope, callback, opt_acc, settings, cb_, cb);
};
Test = cb(Test, "JB");
isPlainObject(Test, data);
/**
* @return {?}
*/
Test.prototype.Z = function() {
return "";
};
Test.prototype.Z = cb(Test.prototype.Z, "cFA_cJB");
/**
* @param {Object} data
* @return {undefined}
*/
Test.prototype.Ja = function(data) {
if (!data.brand && data.mpn || data.brand && !data.mpn) {
throw removeListener("Both brand and mpn should be present in the request.");
}
if (data.gtin) {
data.query = data.gtin;
} else {
if (data.brand) {
if (data.mpn) {
/** @type {string} */
data.query = data.brand + " " + data.mpn;
}
}
}
if (data.textColorPalette) {
data.textColorPalette = combine(data.textColorPalette);
}
};
Test.prototype.Ja = cb(Test.prototype.Ja, "vURSO_cJB");
}
if (!window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} n
* @param {?} start
* @param {?} obj
* @param {?} method
* @param {?} t
* @param {?} o
* @param {?} props
* @param {?} protos
* @return {undefined}
*/
var methods = function(n, start, obj, method, t, o, props, protos) {
data.call(this, n, start, obj, method, t, o, props, protos);
};
methods = cb(methods, "pb");
isPlainObject(methods, data);
/**
* @return {?}
*/
methods.prototype.Z = function() {
return "";
};
methods.prototype.Z = cb(methods.prototype.Z, "cFA_PB");
/**
* @param {?} requestOptions
* @return {undefined}
*/
methods.prototype.Ja = function(requestOptions) {
if (requestOptions.textColorPalette) {
requestOptions.textColorPalette = combine(requestOptions.textColorPalette);
}
};
methods.prototype.Ja = cb(methods.prototype.Ja, "vAURSO_PB");
}
if (!window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {?} next
* @param {?} start
* @param {?} value
* @param {?} a
* @param {?} val
* @param {?} callback
* @param {?} stop
* @param {?} cb
* @return {undefined}
*/
var input = function(next, start, value, a, val, callback, stop, cb) {
data.call(this, next, start, value, a, val, callback, stop, cb);
};
input = cb(input, "rsb");
isPlainObject(input, data);
/** @type {string} */
input.rh = "r";
/** @type {number} */
input.th = 10;
/**
* @param {string} args
* @return {?}
*/
input.prototype.Z = function(args) {
var val = args.relatedSearches;
if (!val) {
if (!(0 === val)) {
val = args.number;
if (!val) {
if (!(0 === val)) {
val = input.th;
}
}
}
}
return input.rh + val;
};
input.prototype.Z = cb(input.prototype.Z, "cFA_RS");
}
if (!window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {string} name
* @param {string} fn
* @param {string} cb
* @param {string} callback
* @param {string} el
* @param {string} id
* @param {string} type
* @return {?}
*/
var on = function(name, fn, cb, callback, el, id, type) {
if (cb.relatedSearches) {
/** @type {string} */
cb.type = "relatedsearch";
} else {
if (!cb.type) {
/** @type {string} */
cb.type = "ads";
}
}
if ("relatedsearch" == cb.type) {
return new input(name, fn, cb, new file, callback, el, id, type);
}
if ("ads" == cb.type) {
return new data(name, fn, cb, cb.gcsc ? new Callbacks : new DOMHandler, callback, el, id, type);
}
if ("plas" == cb.type) {
return new methods(name, fn, cb, new DOMHandler, callback, el, id, type);
}
if ("singleProduct" == cb.type) {
return new Test(name, fn, cb, new DOMHandler, callback, el, id, type);
}
throw removeListener("invalid block type: " + cb.type);
};
on = cb(on, "nAB");
}
/**
* @return {undefined}
*/
var Model = function() {
this.options = {};
};
/**
* @return {undefined}
*/
var File = function() {
this.Oe = {};
/** @type {Array} */
this.Hf = [];
/** @type {Array} */
this.Lg = [];
};
if (!window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {Array} obj
* @return {?}
*/
var proxy = function(obj) {
if (2 > obj.length) {
throw removeListener("No options specified.");
}
return 1 < obj.length && obj[1] instanceof Array ? [obj[0]].concat(obj[1]) : Array.prototype.slice.call(obj, 0);
};
proxy = cb(proxy, "ppata");
/**
* @param {string} val
* @param {?} parent
* @param {Object} result
* @param {(Object|string)} model
* @return {undefined}
*/
var resolve = function(val, parent, result, model) {
result = proxy(result);
/** @type {string} */
var flags = ua.toLowerCase();
if (-1 == flags.indexOf("series60") && -1 == flags.indexOf("series 60")) {
if (model) {
/** @type {(Object|string)} */
result[0].type = model;
}
model = new File;
flags = result[0];
/** @type {null} */
var test = null;
/** @type {number} */
var n = 1;
for (;n < result.length;n++) {
var elem = test = new Model;
var info = flags;
var old = result[n];
var name = void 0;
for (name in old) {
if (old.hasOwnProperty(name)) {
elem.options[name] = old[name];
}
}
for (name in info) {
if (info.hasOwnProperty(name)) {
if ("longerHeadlines" != name || (elem.options.maxTop || elem.options.minTop)) {
elem.options[name] = info[name];
}
}
}
if (test.options.relatedSearches) {
model.Lg.push(test);
} else {
model.Hf.push(test);
}
}
var flag;
for (flag in flags) {
if (flags.hasOwnProperty(flag)) {
model.Oe[flag] = flags[flag];
}
}
parse(val, parent, model.Oe, model.Hf, {});
parse(val, parent, model.Oe, model.Lg);
}
};
resolve = cb(resolve, "aasi");
/**
* @param {string} field
* @param {string} prop
* @param {string} opt
* @param {Object} token
* @return {undefined}
*/
var parse = function(field, prop, opt, token) {
if (0 != token.length) {
/** @type {Array} */
var failuresLink = [];
/** @type {Array} */
var cookie = [];
var is = {
maxTop : 0,
narrow : 0,
minTop : 0,
wide : 0,
plas : 0,
topPlas : 0
};
var ret = done();
if (!ret) {
path++;
}
/** @type {number} */
var p = token.length - 1;
for (;0 <= p;p--) {
var options = token[p].options;
var o = options;
var lvl;
/** @type {boolean} */
lvl = 0 <= promote(events, 4031803);
/** @type {boolean} */
o.iframeFromScs = lvl;
if (0 == p || ret) {
if (ret) {
/** @type {Array} */
failuresLink = [];
is = {
maxTop : 0,
narrow : 0,
minTop : 0,
wide : 0,
plas : 0,
topPlas : 0
};
path++;
}
/** @type {string} */
options.role = "m";
options.masterNumber = path;
options.fexp = events.join(",");
options = on(field, prop, options, opt, failuresLink, is, cookie);
} else {
/** @type {string} */
options.role = "s";
/** @type {number} */
options.slaveNumber = p;
options.masterNumber = path;
options = on(field, prop, options);
failuresLink.splice(0, 0, options.je());
cookie.splice(0, 0, options);
is.narrow += options.Va;
is.maxTop += options.Sa;
is.minTop += options.Ta;
is.wide += options.Xa;
is.plas += options.Ua;
is.topPlas += options.Wa;
}
fields[options.wa()] = options;
}
field = "master-" + path;
/** @type {RegExp} */
p = new RegExp("slave-[0-9]+-" + path);
var name;
for (name in fields) {
if (p.test(name)) {
fields[name].qb += "|" + fields[field].qb;
}
}
/** @type {number} */
p = token.length - 1;
for (;0 <= p;p--) {
/** @type {string} */
token = ["slave", p, path].join("-");
if (fields.hasOwnProperty(token)) {
fields[token].$c();
}
}
if (fields.hasOwnProperty(field)) {
fields[field].$c();
} else {
util.log({
message : "Missing ad block for " + field
}, "cAFOMM");
}
}
};
parse = cb(parse, "cAFO");
/**
* @param {string} name
* @param {boolean} inplace
* @return {?}
*/
var filter = function(name, inplace) {
/** @type {(HTMLElement|null)} */
var event = document.getElementById(name);
if (!event && inplace) {
/** @type {Array} */
var tagNameArr = [];
try {
/** @type {NodeList} */
var resultItems = document.getElementsByTagName("iframe");
/** @type {number} */
var i = 0;
for (;i < resultItems.length;i++) {
var result = resultItems[i];
try {
tagNameArr.push(["N=" + result.name + "ID=" + result.id]);
} catch (h) {
}
}
} catch (p) {
}
util.log({
message : "iframe name: " + name + ". existing frames: " + tagNameArr.join(",") + ". num masters: " + path
}, "gAFBN2");
}
return event;
};
filter = cb(filter, "gAFBN");
/**
* @param {?} m3
* @param {?} force
* @param {string} sel
* @param {?} scope
* @return {undefined}
*/
var c = function(m3, force, sel, scope) {
if (!scope) {
fields[sel.split(".")[0]].Le();
}
};
c = cb(c, "hAC");
/**
* @param {Object} el
* @param {string} i
* @param {?} tagMap
* @param {?} content
* @return {undefined}
*/
var tag = function(el, i, tagMap, content) {
if (el = fields["master-" + i]) {
if (el.o) {
if (el = el.o.adsRejectedCallback) {
prop(el, content);
}
}
}
};
tag = cb(tag, "aRC");
/**
* @param {?} callback
* @param {Object} a
* @param {string} arg
* @param {number} deepDataAndEvents
* @return {undefined}
*/
var args = function(callback, a, arg, deepDataAndEvents) {
a = fields[arg.split(".")[0]];
a.Te(deepDataAndEvents, callback);
if (a) {
if (a.o) {
if (a.o.iframeHeightCallback) {
client(a.o.iframeHeightCallback, 0 < deepDataAndEvents ? deepDataAndEvents : 0);
}
}
}
};
args = cb(args, "hC");
/**
* @param {?} get
* @param {?} headers
* @param {string} token
* @param {number} deepDataAndEvents
* @return {undefined}
*/
var headers = function(get, headers, token, deepDataAndEvents) {
fields[token.split(".")[0]].Xe(deepDataAndEvents);
};
headers = cb(headers, "wC");
/**
* @param {?} style
* @param {string} baseName
* @return {?}
*/
var normalize = function(style, baseName) {
var normalized = {};
var prop;
for (prop in fields) {
if (fields.hasOwnProperty(prop)) {
var field = fields[prop];
if (field.o) {
if (field.o.masterNumber == baseName) {
if ("string" == typeof field.o.container) {
normalized[field.o.container] = style.le(prop + ".aC");
}
}
}
}
}
return normalized;
};
normalize = cb(normalize, "gAC");
/**
* @param {?} style
* @param {string} parentName
* @return {undefined}
*/
var code = function(style, parentName) {
var m = fields["master-" + parentName];
if (m && (m.o && m.o.adsResponseCallback)) {
var target = normalize(style, parentName);
v(m.o.adsResponseCallback, target);
}
};
code = cb(code, "aCC");
/**
* @param {Object} v
* @param {string} b
* @param {?} g
* @param {string} r
* @return {undefined}
*/
var rgb = function(v, b, g, r) {
if (v = fields["master-" + b]) {
if (v.o) {
if (v.o.visibleUrlsCallback) {
wrapped(v.o.visibleUrlsCallback, r ? r.split("|") : []);
}
}
}
};
rgb = cb(rgb, "vUC");
/** @type {null} */
var _done = null;
/**
* @return {?}
*/
var done = function() {
if (null != _done) {
return _done;
}
if (6 != rgbToHex(newRed)) {
return _done = false;
}
var name;
if (2 < window.location.host.split(".").length) {
/** @type {string} */
name = window.location.host.split(".").slice(1).join(".");
/** @type {string} */
name = name.replace(/:\d*/, "");
} else {
return _done = true;
}
/** @type {boolean} */
window.google.disallowedSameDomain_ = false;
/** @type {Element} */
var iframe = document.createElement("iframe");
/** @type {Element} */
var node = document.createElement("iframe");
/** @type {string} */
iframe.style.display = "none";
/** @type {string} */
node.style.display = "none";
var parent = document.getElementsByTagName("head")[0];
parent.appendChild(iframe);
parent.appendChild(node);
try {
var c = iframe.contentWindow.document;
var doc = node.contentWindow.document;
} catch (g) {
/** @type {(Document|null)} */
c = iframe.document;
/** @type {(Document|null)} */
doc = node.document;
}
if (c.domain == name) {
return _done = true;
}
c.open();
/** @type {string} */
c.domain = name;
c.write("<script>function test() {}\x3c/script>");
c.close();
doc.open();
doc.write("<script>var theParent = window.parent;\x3c/script>");
/** @type {string} */
doc.domain = name;
doc.write("<script>try{window.parent.frames[" + (window.frames.length - 2) + "].location} catch(e){theParent.google.disallowedSameDomain_ = true;}\x3c/script>");
doc.close();
/** @type {boolean} */
_done = window.google.disallowedSameDomain_;
iframe.parentNode.removeChild(iframe);
node.parentNode.removeChild(node);
return _done;
};
done = cb(done, "dBDSDIC");
/** @type {number} */
var path = 0;
var fields = {};
/** @type {boolean} */
var Hj = false;
/**
* @param {Array} fileExtensions
* @param {string} opt_attributes
* @param {number} p
* @return {?}
*/
var key = function(fileExtensions, opt_attributes, p) {
/** @type {number} */
p = 1 - (p || Math.random)();
if (p < opt_attributes * fileExtensions.length) {
try {
/** @type {Uint16Array} */
var buf = new Uint16Array(1);
window.crypto.getRandomValues(buf);
/** @type {number} */
p = buf[0] / 65536;
} catch (e) {
/** @type {number} */
p = Math.random();
}
return fileExtensions[Math.floor(p * fileExtensions.length)];
}
return null;
};
key = cb(key, "pE");
var events = repeat([key([2631601, 2631602], 0.05), key([4031801, 4031802, 4031803], 0.1)], spaces);
/**
* @param {?} callback
* @param {?} obj
* @param {boolean} recurring
* @return {undefined}
*/
var values = function(callback, obj, recurring) {
callback(obj, recurring);
};
values = cb(values);
/**
* @param {Object} setter
* @param {?} node
* @return {undefined}
*/
var prop = function(setter, node) {
setter(node);
};
prop = cb(prop);
/**
* @param {?} n
* @param {?} a
* @return {undefined}
*/
var v = function(n, a) {
n(a);
};
v = cb(v);
/**
* @param {?} fn
* @param {?} err
* @return {undefined}
*/
var wrapped = function(fn, err) {
fn(err);
};
wrapped = cb(wrapped);
/**
* @param {?} callback
* @param {?} basis
* @return {undefined}
*/
var client = function(callback, basis) {
callback(basis);
};
client = cb(client);
/**
* @return {undefined}
*/
var baz = function() {
if (delta) {
process(delta, "ol");
}
};
baz = cb(baz, "rCPL");
/**
* @return {undefined}
*/
var initial = function() {
if (delta) {
if (!delta.aj) {
/** @type {boolean} */
delta.aj = true;
addEvent(window, "load", baz);
setTimeout(actual, 15E3);
}
}
addEvent(window, "unload", actual);
};
initial = cb(initial, "sCEL");
/**
* @return {undefined}
*/
var actual = function() {
restore();
};
actual = cb(actual, "sCS");
/**
* @param {?} fn
* @return {undefined}
*/
var plugin = function(fn) {
if (fn) {
fn();
}
};
plugin = cb(plugin);
/**
* @return {undefined}
*/
var line = function() {
if (delta) {
initial();
process(data.qj, "pt");
process(delta, "jlt");
}
};
line = cb(line, "sCOLT");
}
/**
* @param {?} fn
* @return {undefined}
*/
var watch = function(fn) {
var result;
result = {};
win(result, [doc, options, extra, sample_json, expr, {
key : "width",
a : new move(0, 1E4),
F : "wi"
}, {
key : "height",
a : new move(0, 1E4),
F : "he"
}]);
var d = {
query : 1,
gtin : 1,
brand : 1,
mpn : 1,
width : 2,
height : 2,
priceMin : 1,
priceMax : 1,
priceCurrency : 1,
textColorPalette : 1
};
isString(d, reversed);
isString(d, suiteView);
resolve(result, d, arguments, "singleProduct");
};
watch = cb(watch, "jmpMJ");
/**
* @param {?} replace
* @return {undefined}
*/
var hash = function(replace) {
var result;
result = {};
win(result, [doc, options, extra, sample_json, expr, {
key : "width",
a : new move(0, 1E4),
F : "wi"
}, {
key : "height",
a : new move(0, 1E4),
F : "he"
}, {
key : "promoted",
a : obj,
F : "pa"
}]);
var config = {
query : 2,
width : 2,
height : 2,
promoted : 1,
theme : 1,
priceMin : 1,
priceMax : 1,
priceCurrency : 1,
textColorPalette : 1,
merchantFilter : 1
};
isString(config, reversed);
isString(config, suiteView);
resolve(result, config, arguments, "plas");
};
hash = cb(hash, "cmpp");
if (!window.IS_GOOGLE_AFS_IFRAME_) {
/**
* @param {string} object
* @return {undefined}
*/
var promise = function(object) {
var name = randomName();
var parent = any();
resolve(name, parent, arguments);
};
promise = cb(promise, "cmpc");
var object = {
ads : promise,
plas : hash,
"single-product" : watch
};
/**
* @return {undefined}
*/
var store = function() {
/** @type {function (): undefined} */
var i = window._googCsa;
/** @type {null} */
var codeSegments = null;
/** @type {null} */
var t = null;
if (i) {
codeSegments = i.q;
t = i.t;
}
/**
* @return {undefined}
*/
window._googCsa = function() {
set(arguments);
};
if (t) {
window._googCsa.t = t;
}
if (codeSegments && 0 < codeSegments.length) {
/** @type {number} */
i = 0;
for (;i < codeSegments.length;i++) {
set(codeSegments[i]);
}
}
};
store = cb(store, "cmps");
/**
* @param {Array} properties
* @return {undefined}
*/
var set = function(properties) {
if (properties && 1 < properties.length) {
if (object.hasOwnProperty(properties[0])) {
var type = object[properties[0]];
if (3 == properties.length) {
new type(properties[1], properties[2]);
} else {
new type(properties[1], Array.prototype.slice.call(properties, 2));
}
} else {
if ("jsLoadedCallback" == properties[0]) {
plugin(properties[1]);
}
}
}
};
set = cb(set, "cmpe");
window.google = window.google || {};
window.google.ads = window.google.ads || {};
window.google.ads.search = window.google.ads.search || {};
if (!window.google.ads.search.Ads) {
window.google.ads.search.Ads = promise;
line();
store();
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment