Created
September 18, 2020 15:51
-
-
Save kasparsd/a89bd7c93c9c488a9a96a3cf1aad0e9a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
! function(s) { | |
function e(e) { | |
for (var t, n, r = e[0], i = e[1], a = 0, o = []; a < r.length; a++) n = r[a], Object.prototype.hasOwnProperty.call(d, n) && d[n] && o.push(d[n][0]), d[n] = 0; | |
for (t in i) Object.prototype.hasOwnProperty.call(i, t) && (s[t] = i[t]); | |
for (u && u(e); o.length;) o.shift()() | |
} | |
var n = {}, | |
d = { | |
0: 0 | |
}; | |
function c(e) { | |
if (n[e]) return n[e].exports; | |
var t = n[e] = { | |
i: e, | |
l: !1, | |
exports: {} | |
}; | |
return s[e].call(t.exports, t, t.exports, c), t.l = !0, t.exports | |
} | |
c.e = function(i) { | |
var e, a, o, t, s, n = [], | |
r = d[i]; | |
return 0 !== r && (r ? n.push(r[2]) : (e = new Promise(function(e, t) { | |
r = d[i] = [e, t] | |
}), n.push(r[2] = e), (a = document.createElement("script")).charset = "utf-8", a.timeout = 120, c.nc && a.setAttribute("nonce", c.nc), a.src = c.p + "" + i + ".ad-manager.min.js", o = new Error, t = function(e) { | |
a.onerror = a.onload = null, clearTimeout(s); | |
var t, n, r = d[i]; | |
0 !== r && (r && (t = e && ("load" === e.type ? "missing" : e.type), n = e && e.target && e.target.src, o.message = "Loading chunk " + i + " failed.\n(" + t + ": " + n + ")", o.name = "ChunkLoadError", o.type = t, o.request = n, r[1](o)), d[i] = void 0) | |
}, s = setTimeout(function() { | |
t({ | |
type: "timeout", | |
target: a | |
}) | |
}, 12e4), a.onerror = a.onload = t, document.head.appendChild(a))), Promise.all(n) | |
}, c.m = s, c.c = n, c.d = function(exports, e, t) { | |
c.o(exports, e) || Object.defineProperty(exports, e, { | |
enumerable: !0, | |
get: t | |
}) | |
}, c.r = function(exports) { | |
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, { | |
value: "Module" | |
}), Object.defineProperty(exports, "__esModule", { | |
value: !0 | |
}) | |
}, c.t = function(t, e) { | |
if (1 & e && (t = c(t)), 8 & e) return t; | |
if (4 & e && "object" == typeof t && t && t.__esModule) return t; | |
var n = Object.create(null); | |
if (c.r(n), Object.defineProperty(n, "default", { | |
enumerable: !0, | |
value: t | |
}), 2 & e && "string" != typeof t) | |
for (var r in t) c.d(n, r, function(e) { | |
return t[e] | |
}.bind(null, r)); | |
return n | |
}, c.n = function(e) { | |
var t = e && e.__esModule ? function() { | |
return e.default | |
} : function() { | |
return e | |
}; | |
return c.d(t, "a", t), t | |
}, c.o = function(e, t) { | |
return Object.prototype.hasOwnProperty.call(e, t) | |
}, c.p = "https://hb.vntsm.com/v3/live/", c.oe = function(e) { | |
throw console.error(e), e | |
}; | |
var t = window.webpackJsonp = window.webpackJsonp || [], | |
r = t.push.bind(t); | |
t.push = e, t = t.slice(); | |
for (var i = 0; i < t.length; i++) e(t[i]); | |
var u = r; | |
c(c.s = 27) | |
}([function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return m | |
}); | |
var r, i, a = n(16), | |
o = n(5), | |
s = n(2), | |
d = n(22), | |
c = function(e, o, s, d) { | |
return new(s = s || Promise)(function(n, t) { | |
function r(e) { | |
try { | |
a(d.next(e)) | |
} catch (e) { | |
t(e) | |
} | |
} | |
function i(e) { | |
try { | |
a(d.throw(e)) | |
} catch (e) { | |
t(e) | |
} | |
} | |
function a(e) { | |
var t; | |
e.done ? n(e.value) : ((t = e.value) instanceof s ? t : new s(function(e) { | |
e(t) | |
})).then(r, i) | |
} | |
a((d = d.apply(e, o || [])).next()) | |
}) | |
}, | |
u = function(n, r) { | |
var i, a, o, s = { | |
label: 0, | |
sent: function() { | |
if (1 & o[0]) throw o[1]; | |
return o[1] | |
}, | |
trys: [], | |
ops: [] | |
}, | |
e = { | |
next: t(0), | |
throw: t(1), | |
return: t(2) | |
}; | |
return "function" == typeof Symbol && (e[Symbol.iterator] = function() { | |
return this | |
}), e; | |
function t(t) { | |
return function(e) { | |
return function(t) { | |
if (i) throw new TypeError("Generator is already executing."); | |
for (; s;) try { | |
if (i = 1, a && (o = 2 & t[0] ? a.return : t[0] ? a.throw || ((o = a.return) && o.call(a), 0) : a.next) && !(o = o.call(a, t[1])).done) return o; | |
switch (a = 0, o && (t = [2 & t[0], o.value]), t[0]) { | |
case 0: | |
case 1: | |
o = t; | |
break; | |
case 4: | |
return s.label++, { | |
value: t[1], | |
done: !1 | |
}; | |
case 5: | |
s.label++, a = t[1], t = [0]; | |
continue; | |
case 7: | |
t = s.ops.pop(), s.trys.pop(); | |
continue; | |
default: | |
if (!(o = 0 < (o = s.trys).length && o[o.length - 1]) && (6 === t[0] || 2 === t[0])) { | |
s = 0; | |
continue | |
} | |
if (3 === t[0] && (!o || t[1] > o[0] && t[1] < o[3])) { | |
s.label = t[1]; | |
break | |
} | |
if (6 === t[0] && s.label < o[1]) { | |
s.label = o[1], o = t; | |
break | |
} | |
if (o && s.label < o[2]) { | |
s.label = o[2], s.ops.push(t); | |
break | |
} | |
o[2] && s.ops.pop(), s.trys.pop(); | |
continue | |
} | |
t = r.call(n, s) | |
} catch (e) { | |
t = [6, e], a = 0 | |
} finally { | |
i = o = 0 | |
} | |
if (5 & t[0]) throw t[1]; | |
return { | |
value: t[0] ? t[1] : void 0, | |
done: !0 | |
} | |
}([t, e]) | |
} | |
} | |
}, | |
p = function() { | |
for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; | |
for (var r = Array(e), i = 0, t = 0; t < n; t++) | |
for (var a = arguments[t], o = 0, s = a.length; o < s; o++, i++) r[i] = a[o]; | |
return r | |
}; | |
(i = r = r || {}).Error = "error", i.Info = "info", i.Warn = "warn", i.Debug = "debug", i.Verbose = "verbose", i.A9 = "a9"; | |
var l = (f.prototype.getName = function() { | |
return this.name | |
}, f.prototype.getTS = function() { | |
return this.date.getTime() | |
}, f.prototype.getDate = function() { | |
return this.date | |
}, f); | |
function f(e) { | |
this.name = e, this.date = new Date | |
} | |
var m = (g.event = function(e) { | |
this.events.push(new l(e)) | |
}, g.getEvents = function() { | |
return this.events | |
}, g.printEvents = function() { | |
this.printTable(this.events.asArray().reduce(function(e, t) { | |
var n = t.getName(); | |
return void 0 === e[n] ? e[n] = 1 : e[n]++, e | |
}, {})) | |
}, g.isDebugMode = function() { | |
return this.debugMode | |
}, g.isVerboseDebugMode = function() { | |
return this.verboseDebugMode | |
}, g.isA9DebugMode = function() { | |
return this.a9DebugMode | |
}, g.getColor = function(e) { | |
switch (e) { | |
case r.Error: | |
return this.errorColor; | |
case r.Info: | |
return this.infoColor; | |
case r.Warn: | |
return this.warnColor; | |
case r.A9: | |
return this.a9debugColor; | |
case r.Verbose: | |
return this.verboseDebugColor; | |
default: | |
return this.debugColor | |
} | |
}, g.print = function(e) { | |
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; | |
console.log.apply(console, p(["%c VM HBv3 [" + e.toUpperCase() + "] [" + (new Date).toISOString() + "]: ", "color:" + this.getColor(e) + ";font-weight:bold"], t)) | |
}, g.printSettings = function() { | |
var e, t, n = s.a, | |
r = {}; | |
for (e in n) { | |
n.hasOwnProperty(e) && ("boolean" != (t = typeof n[e]) && "number" != t && "string" != t || (r["" + e.replace(/([a-z]{1})([A-Z]{1})/g, "$1 $2").toUpperCase()] = n[e])) | |
} | |
this.printTable(r) | |
}, g.printTable = function(e) { | |
this.isDebugMode() && console.table(e) | |
}, g.error = function() { | |
for (var e = this, t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n]; | |
s.a.isAirbrakeEnabled && this.airbrakeNotify(p(t)[0]).then(function() { | |
e.debug("Logged error to Airbrake...") | |
}), this.isDebugMode() && g.print.apply(this, p([r.Error], t)) | |
}, g.info = function() { | |
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; | |
this.isDebugMode() && g.print.apply(this, p([r.Info], e)) | |
}, g.warn = function() { | |
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; | |
this.isDebugMode() && g.print.apply(this, p([r.Warn], e)) | |
}, g.debug = function() { | |
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; | |
this.isDebugMode() && g.print.apply(this, p([r.Debug], e)) | |
}, g.verbose = function() { | |
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; | |
this.isVerboseDebugMode() && g.print.apply(this, p([r.Verbose], e)) | |
}, g.a9 = function() { | |
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; | |
this.isA9DebugMode() && g.print.apply(this, p([r.A9], e)) | |
}, g.airbrakeNotify = function(t) { | |
return c(this, void 0, void 0, function() { | |
return u(this, function(e) { | |
switch (e.label) { | |
case 0: | |
return [4, Promise.all([n.e(2), n.e(5)]).then(n.bind(null, 36))]; | |
case 1: | |
return e.sent().Airbrake.notify(t), [2, Promise.resolve()] | |
} | |
}) | |
}) | |
}, g.errorColor = "#aa091b", g.infoColor = "#0068e3", g.warnColor = "#e39c00", g.debugColor = "#171717", g.verboseDebugColor = "#9d9d9d", g.a9debugColor = "#e35500", g.debugMode = o.a.has("vdbg") || null !== a.a.get("vdbg"), g.verboseDebugMode = o.a.has("vvdbg") || null !== a.a.get("vvdbg"), g.a9DebugMode = o.a.has("a9dbg"), g.events = new d.a, g); | |
function g() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var r = (i.isInView = function(e) { | |
if (!this.hasTopWindowAccess()) return !1; | |
try { | |
var t = this.getTopMostParentWindow(), | |
n = t.document, | |
r = n.documentElement, | |
i = n.getElementsByTagName("body")[0], | |
a = t.innerHeight || r.clientHeight || i.clientHeight, | |
o = (t.pageYOffset || r.scrollTop) - (r.clientTop || 0), | |
s = o + e.getBoundingClientRect().top + Math.floor(Math.max(e.clientHeight, 50) / 2); | |
return 10 + o < s && s < a + o - 10 | |
} catch (r) {} | |
return !1 | |
}, i.hasFocus = function() { | |
if (this.hasTopWindowAccess()) { | |
var e = this.getTopMostParentDocument(); | |
return "function" == typeof e.hasFocus && e.hasFocus() | |
} | |
return !1 | |
}, i.isViewable = function(e) { | |
return this.isInView(e) && this.hasFocus() | |
}, i.hasTopWindowAccess = function() { | |
var e = this.getTopMostParentWindow(); | |
try { | |
return e.top === e.self | |
} catch (e) { | |
return !1 | |
} | |
}, i.isTop = function() { | |
try { | |
return window.top === window.self | |
} catch (e) { | |
return !1 | |
} | |
}, i.getTopMostParentWindow = function() { | |
var e, t, n = window; | |
do { | |
e = n; | |
try { | |
(t = n.parent).location.href && (n = t) | |
} catch (e) { | |
return n | |
} | |
} while (e != n); | |
return n | |
}, i.getTopMostParentDocument = function() { | |
return this.getTopMostParentWindow().document | |
}, i.getTopMostParentBody = function() { | |
return this.getTopMostParentDocument().body | |
}, i); | |
function i() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return g | |
}); | |
var r, i, a = n(12), | |
o = n(19), | |
s = n(4), | |
d = n(1), | |
c = n(8), | |
u = n(6), | |
p = n(5), | |
l = n(20), | |
f = n(21), | |
m = n(17); | |
(i = r = r || {})[i.LIVE = 0] = "LIVE", i[i.STAGING = 1] = "STAGING"; | |
var g, h, b = (y.prototype.getEndpoint = function(e) { | |
return this.isDirectCDNLink ? g.defaultProtocol + "://" + this.endpointPrefix + e + ".enc?q=" + l.a.getHash(f.a.getTopURL()) : g.defaultProtocol + "://" + this.endpointPrefix + e + ".enc" | |
}, y.prototype.hasAlternativeEndpointConfig = function() { | |
return null != this.next | |
}, y.prototype.getAlternativeEndpoint = function() { | |
return this.next | |
}, y); | |
function y(e, t, n, r) { | |
void 0 === r && (r = null), this.endpointPrefix = e, this.isDirectCDNLink = t, this.environment = n, this.next = r | |
}(h = g = g || {}).version = "3-(" + "d2d57cd".trim() + ")", h.isShowcaseMode = p.a.has("showcase-mode"), h.a9PublisherId = "70247b00-ff8f-4016-b3ab-8344daf96e09", h.dfpPublisherId = "21726375739", h.isUponitTestMode = new s.a([ | |
["5a8460b346e0fb0001fc3bac", !0] | |
]).getOrElse(u.a.get("data-site-id"), !1), h.airbrakeProjectId = 226149, h.airbrakeProjectKey = "d11c11515f8cd786cb4b6b0852900df9", h.isAirbrakeEnabled = 5e3 === a.a.numberBetween(1, 1e4), h.bypassPrebid = new s.a([ | |
["58e515dc46e0fb0001c45588", c.a.isiOS()] | |
]).getOrElse(u.a.get("data-site-id"), !1), h.enablePerformanceMonitoring = new s.a([ | |
["58d2538946e0fb0001e4b3e5", !0], | |
["58db8c1b46e0fb0001b87c4f", !0], | |
["5ba11c5446e0fb0001b212ac", !0] | |
]).has(u.a.get("data-site-id")), h.useNetworkLevelConsentStorage = new s.a([ | |
["5c75224646e0fb00018c077f", !0] | |
]).has(u.a.get("data-site-id")), h.dfpExcludedPlacementIds = new s.a([ | |
["5b19474946e0fb0001aa0c82", !0], | |
["5c6d8d2446e0fb00018c070a", !0], | |
["5bfbe90446e0fb00018ea970", !0], | |
["5bfbe7ba46e0fb0001aad935", !0], | |
["5bfbe9af46e0fb0001b8cc8f", !0], | |
["5d15e28d1b4e4f4b1786fb01", !0], | |
["5d1f572e94d28942ff98aa92", !0], | |
["5d55894a9ad51d436ff8dac1", !0], | |
["5d5c3583b6718b40677d76a9", !0] | |
]), h.prebidTargetMajor = "1", h.prebidEndpoint = "https://hb.vntsm.com/v3/prebid/prebid-3.15.js", h.prebidVersion = "3.15", h.prebidTestEndpoint = "https://hb.vntsm.com/v3/prebid/prebid-3.23.js", h.prebidTestVersion = "3.23", h.ABPrebidTest = [ | |
["58d925be46e0fb0001790515", .5], | |
["58d923da46e0fb00017904ed", .5] | |
], h.prebidUseS2S = !1, h.env = -1 === d.a.getTopMostParentWindow().location.href.indexOf(":8443") ? "live" : "dev", h.loadId = a.a.createGUID(), h.defaultProtocol = "https", h.adPreloadStyling = h.isShowcaseMode ? new s.a : new s.a([ | |
["5b151c0546e0fb00011b425f", new s.a([ | |
["background", "#F2F2F2 url('https://hb.vntsm.com/assets/op_loader.gif')"], | |
["backgroundRepeat", "no-repeat"], | |
["backgroundPosition", "center"], | |
["border", "1px solid #d5d8d8"] | |
])], | |
["5a8460b346e0fb0001fc3bac", new s.a([ | |
["background", "#F2F2F2 url('https://hb.vntsm.com/assets/op_loader.gif')"], | |
["backgroundRepeat", "no-repeat"], | |
["backgroundPosition", "center"], | |
["border", "1px solid #d5d8d8"] | |
])], | |
["5b44831446e0fb0001c50344", new s.a([ | |
["background", "#F2F2F2 url('https://hb.vntsm.com/assets/op_loader.gif')"], | |
["backgroundRepeat", "no-repeat"], | |
["backgroundPosition", "center"], | |
["border", "1px solid #d5d8d8"] | |
])], | |
["5b44832e46e0fb000190a6fa", new s.a([ | |
["background", "#F2F2F2 url('https://hb.vntsm.com/assets/op_loader.gif')"], | |
["backgroundRepeat", "no-repeat"], | |
["backgroundPosition", "center"], | |
["border", "1px solid #d5d8d8"] | |
])], | |
["58d923da46e0fb00017904ed", new s.a([ | |
["background", "#ffd864"], | |
["backgroundRepeat", "no-repeat"], | |
["backgroundPosition", "center"], | |
["border", "1px solid #333333"] | |
])] | |
]).getOrElse(u.a.get("data-site-id"), new s.a), h.rotateDefaults = !1, h.usePageProtect = !0, h.gdprPreferences = new s.a([ | |
["5a8460b346e0fb0001fc3bac", { | |
styleChanges: { | |
primaryButtonStyle: { | |
background: "#1ea1f7" | |
} | |
}, | |
copyChanges: {}, | |
functionalList: [] | |
}], | |
["58d2538946e0fb0001e4b3e5", { | |
styleChanges: { | |
primaryButtonStyle: { | |
background: "#d72f2e" | |
} | |
}, | |
copyChanges: {}, | |
functionalList: [] | |
}], | |
["58d925be46e0fb0001790515", { | |
styleChanges: { | |
primaryButtonStyle: { | |
background: "#275495" | |
} | |
}, | |
copyChanges: {}, | |
functionalList: [] | |
}], | |
["5a12e09946e0fb00011074f3", { | |
styleChanges: { | |
primaryButtonStyle: { | |
background: "#1bb76e" | |
} | |
}, | |
copyChanges: { | |
opening_title: "A Message From Imgur's Partners", | |
opening_desc: "\n In order to keep this site running, various third parties set cookies and access and store information on your device.\n These third parties also collect data to show you personalized ad content.\n Some third parties require your consent to collect data to serve you personalized content and ads.\n For information on how Imgur uses your data, see Imgur's privacy policy.\n " | |
}, | |
functionalList: [] | |
}] | |
]).getOrElse(u.a.get("data-site-id"), { | |
styleChanges: { | |
primaryButtonStyle: {} | |
}, | |
copyChanges: {}, | |
functionalList: [] | |
}), h.assistFrameCleanup = !0, h.euCountryCodes = new s.a([ | |
["BE", "Belgium"], | |
["BG", "Bulgaria"], | |
["CZ", "Czech Republic"], | |
["DK", "Denmark"], | |
["DE", "Germany"], | |
["EE", "Estonia"], | |
["IE", "Ireland"], | |
["GR", "Greece"], | |
["ES", "Spain"], | |
["FR", "France"], | |
["HR", "Croatia"], | |
["IT", "Italy"], | |
["CY", "Cyprus"], | |
["LV", "Latvia"], | |
["LT", "Lithuania"], | |
["LU", "Luxembourg"], | |
["HU", "Hungary"], | |
["MT", "Malta"], | |
["NL", "Netherlands"], | |
["AT", "Austria"], | |
["PL", "Poland"], | |
["PT", "Portugal"], | |
["RO", "Romania"], | |
["SI", "Slovenia"], | |
["SK", "Slovakia"], | |
["FI", "Finland"], | |
["SE", "Sweden"], | |
["GB", "United Kingdom"] | |
]), h.adManagerEndpoint = "dev" === h.env ? "ad-manager.js" : h.defaultProtocol + "://hb.vntsm.com/v3/live/ad-manager.min.js", h.cmpAwaitTimeoutMS = 4e3, h.cmpPollIntervalMS = 100, h.cmpEndpoint = h.defaultProtocol + "://hb.vntsm.com/cmp/cmp.complete.bundle.js?upapi=true", h.cmpPortalEndpoint = h.defaultProtocol + "://hb.vntsm.com/cmp/docs/portal.html?upapi=true", h.adManagerCSSEndpoint = "dev" === h.env ? "ad-manager.css" : h.defaultProtocol + "://hb.vntsm.com/v3/live/ad-manager.min.css", h.refreshInViewOnly = !1, h.defaultRefreshRateMS = 61e3, h.enableBidStashing = !1, h.maxPlacementRefreshes = 1e3, h.configTimeoutMS = 2e4, h.packingLength = 24, h.prebidBidderTimeoutMS = 1500, h.prebidGlobalTimeoutMS = 3500, h.prebidGlobalExtendedTimeoutMS = 5e3, h.prebidEnableIframeUserSync = !1, h.prebidEnableCommonUserId = !0, h.minBidCPM = .001, h.dfpAdServingCost = .0137, h.prebidCMPTimeoutMS = 5e3, h.apiCheckIntervalMS = 100, h.defaultBidTTLMS = 3e4, h.maxBidTTLMS = 3e5, h.dynamicPlacementsCheckInterval = 100, h.bidRequestInterval = 100, h.deferredLoadingCheckInterval = 100, h.bidRequestUnlockDelay = 1e3, h.lkqdDefaultRefreshMS = 6e4, h.schedulerIntervalMS = 100, h.landscapePushIntervalMS = 250, h.incrementLoopIntervalMS = 2e4, h.bidderNetValuesRatio = new s.a([ | |
["sharethrough", .9], | |
["yieldmo", .8], | |
["sovern", .95], | |
["rubicon", .82], | |
["rubiconAU", .82], | |
["brealtime", .8], | |
["aol", .8], | |
["sonobi", .85], | |
["pubmatic", .85], | |
["pubmaticAU", .85], | |
["districtmDMX", .85], | |
["districtm", .85], | |
["improvedigital", .9], | |
["conversant", .85], | |
["criteo", .75], | |
["audiencenetwork", .95], | |
["justpremium", .9], | |
["jpmediated", .9], | |
["nasmediaAdmixer", .5], | |
["teads", .9] | |
]), h.mediationBidders = new s.a([ | |
["GUMGUM", !0], | |
["JPMEDIATED", !0], | |
["JUSTPREMIUM", !0], | |
["TRION", !0] | |
]), h.bidderLimitingDefaultWaitTimes = [0, 0, 0], h.abBidderTargeting = new s.a([ | |
["APPNEXUS", [{}]], | |
["RUBICON", [{}]], | |
["INDEXEXCHANGE", [{}]], | |
["OPENX", [{ | |
includedCountryCodes: ["US", "GB", "CA", "DE", "CN", "FR", "JP", "AU", "ES", "HK", "SG", "PH", "CO", "NL", "IT", "BR", "BE", "SE", "MX", "VN"] | |
}]] | |
]), h.bidderTargeting = new s.a([ | |
["GOOGLE", [{}]], | |
["TEADS", [{ | |
inView: !0 | |
}]], | |
["APPNEXUS", [{}]], | |
["GRID", [{}]], | |
["SUBLIME", [{}]], | |
["RUBICON", [{ | |
geoBidLimiterConfig: [{ | |
countryCodes: ["PH", "GR", "VN", "TH", "BG", "UA", "RS"], | |
waitTimes: [0, 500] | |
}] | |
}]], | |
["INDEXEXCHANGE", [{}]], | |
["DISTRICTMDMX", [{}]], | |
["OPENX", [{ | |
includedCountryCodes: ["US", "GB", "CA", "DE", "CN", "FR", "JP", "AU", "ES", "HK", "SG", "PH", "CO", "NL", "IT", "BR", "BE", "SE", "MX", "VN"] | |
}]], | |
["SONOBI", [{ | |
includedCountryCodes: ["US", "GB", "AU", "DE", "FR", "CH", "HK", "MX"] | |
}]], | |
["SOVRN", [{ | |
excludedCountryCodes: ["RU", "PL", "TR", "RO", "GR", "KR", "JP", "CN", "TW", "BR"] | |
}]], | |
["JUSTPREMIUM", [{ | |
includedCountryCodes: ["US", "GB", "IE", "ES", "FR", "NL", "IT", "BE", "DE", "DZ", "BH", "DJ", "EG", "IR", "IQ", "IL", "JO", "KW", "LB", "LY", "MT", "MA", "OM", "QA", "SA", "SY", "TN", "AE", "PS", "YE", "ET", "SD", "DK", "FI", "IS", "NO", "SE", "GL", "FO", "CA", "BR", "MX", "CN", "AU", "JP", "PL"] | |
}]], | |
["VISX", [{}]], | |
["JPMEDIATED", [{ | |
includedCountryCodes: ["US", "GB", "IE", "ES", "FR", "NL", "IT", "BE", "DE", "DZ", "BH", "DJ", "EG", "IR", "IQ", "IL", "JO", "KW", "LB", "LY", "MT", "MA", "OM", "QA", "SA", "SY", "TN", "AE", "PS", "YE", "ET", "SD", "DK", "FI", "IS", "NO", "SE", "GL", "FO", "CA", "BR", "MX", "CN", "AU", "JP", "PL"] | |
}]], | |
["ADYOULIKE", [{ | |
excludedCountryCodes: ["KR", "SE", "BR", "JP", "TR", "TH", "PH", "VN", "PT", "AR", "MX", "NO", "TW", "SG", "RO"] | |
}]], | |
["TRION", [{ | |
includedCountryCodes: ["US"], | |
includedDevices: [o.a.MOBILE] | |
}]], | |
["TPMN", [{ | |
includedDevices: [o.a.MOBILE] | |
}]], | |
["TRIPLELIFT", [{}]], | |
["INSKIN", [{}]], | |
["PULSEPOINT", [{}]], | |
["PUBMATIC", [{ | |
excludedCountryCodes: ["AU"] | |
}]], | |
["SHARETHROUGH", [{ | |
includedCountryCodes: ["US"] | |
}]], | |
["WIDESPACE", [{}]], | |
["LOCKERDOME", [{}]], | |
["RICHAUDIENCE", [{}]], | |
["DISTRICTM", [{}]], | |
["33ACROSS", [{ | |
includedCountryCodes: ["US", "CA"], | |
tabActive: !0, | |
inView: !0 | |
}]], | |
["SMART", [{ | |
includedCountryCodes: ["US", "DE", "GB", "FR", "ES", "RU", "CA", "AU", "IT", "MX", "BE", "BR", "NL", "CH", "PL", "SE", "MA", "AT"] | |
}]], | |
["NANOINTERACTIVE", [{ | |
adapterTest: !0 | |
}]], | |
["PULSEPOINT", [{ | |
adapterTest: !0 | |
}]], | |
["COX", [{ | |
adapterTest: !0 | |
}]], | |
["ADFORM", [{ | |
adapterTest: !0 | |
}]], | |
["RHYTHMONE", [{ | |
adapterTest: !0 | |
}]], | |
["COX", [{ | |
adapterTest: !0 | |
}]], | |
["IMPROVEDIGITAL", [{ | |
adapterTest: !0 | |
}]], | |
["UNDERTONE", [{ | |
adapterTest: !1 | |
}]], | |
["MEDIANET", [{ | |
adapterTest: !1 | |
}]], | |
["YIELDMO", [{ | |
adapterTest: !1 | |
}]], | |
["AUDIENCENETWORK", [{ | |
adapterTest: !0 | |
}]], | |
["MANTIS", [{ | |
adapterTest: !0 | |
}]], | |
["NASMEDIAADMIXER", [{ | |
adapterTest: !0 | |
}]], | |
["CONVERSANT", [{ | |
adapterTest: !0 | |
}]], | |
["PLAYGROUNDXYZ", [{ | |
adapterTest: !0 | |
}]], | |
["OFTMEDIA", [{ | |
adapterTest: !0 | |
}]], | |
["BRIGHTCOM", [{ | |
adapterTest: !0 | |
}]], | |
["PUBMATICAU", [{ | |
adapterTest: !0 | |
}]], | |
["RUBICONAU", [{ | |
adapterTest: !0 | |
}]], | |
["CRITEO", [{ | |
adapterTest: !0 | |
}]] | |
]), h.landscapeEndpoint = h.defaultProtocol + "://track.venatusmedia.com/dual/track", h.configEndpoints = new b("hb.vntsm.com/v2/live/", !1, r.LIVE, new b("w4t7i8d6.stackpathcdn.com/v2/live/", !0, r.LIVE, new b("vmhb.b-cdn.net/v2/live/", !1, r.LIVE, new b("hb.vntsm.com/v2/staging/", !1, r.STAGING)))), h.creativeBlocklistEndpoint = h.defaultProtocol + "://hb.vntsm.com/creative-block-list.json", h.placementEndpoint = h.defaultProtocol + "://ui.venatusmedia.com/admin/placement/", h.iconMap = new s.a([ | |
["GOOGLE", "https://www.google.com/favicon.ico"], | |
["TEADS", "https://www.teads.tv/wp-content/themes/teads/favicon.ico"], | |
["APPNEXUS", "https://www.appnexus.com/themes/custom/appnexus/img/favicon.ico"], | |
["RUBICON", "https://rubiconproject.com/favicon.ico"], | |
["RUBICONAU", "https://rubiconproject.com/favicon.ico"], | |
["INDEXEXCHANGE", "https://system.indexexchange.com/favicon.ico"], | |
["IX", "https://system.indexexchange.com/favicon.ico"], | |
["CRITEO", "https://www.criteo.com/wp-content/themes/criteo2017/img/favicon.ico"], | |
["DISTRICTMDMX", "https://www.districtm.net/wp-content/uploads/2019/09/cropped-cropped-DM_Symbol_Color-32x32.png"], | |
["DISTRICTM", "https://www.districtm.net/wp-content/uploads/2019/09/cropped-cropped-DM_Symbol_Color-32x32.png"], | |
["AOL", "https://www.onebyaol.com/sites/aolplatforms.com/files/favicon.ico"], | |
["RHYTHMONE", "https://www.rhythmone.com/assets/images/favicon.png"], | |
["CONVERSANT", "https://www.conversantmedia.com/hubfs/US%20Conversant/Images/logos/favicon_64_8bit.png"], | |
["OPENX", "https://s3.amazonaws.com/openx-prod/assets/favicon.ico"], | |
["SONOBI", "https://sonobi.com/wp-content/themes/sonobi/assets/images/icon/favicon-32x32.png"], | |
["SOVRN", "https://www.sovrn.com/wp-content/themes/sovrn-2019/favicon.png"], | |
["IMPROVEDIGITAL", "https://www.improvedigital.com/favicon.ico"], | |
["PUBMATIC", "https://pubmatic.com/favicon-16x16.png"], | |
["PUBMATICAU", "https://pubmatic.com/favicon-16x16.png"], | |
["COX", "https://www.coxenterprises.com/CoxEnterprises/media/CoxEnterprises/favicon.ico"], | |
["AUDIENCENETWORK", "https://facebook.com/favicon.ico"], | |
["JUSTPREMIUM", "https://justpremium.com/wp-content/uploads/2018/03/cropped-jp-fav-32x32.png"], | |
["JPMEDIATED", "https://justpremium.com/wp-content/uploads/2018/03/cropped-jp-fav-32x32.png"], | |
["GUMGUM", "https://gumgum.com/favicon.ico"], | |
["33ACROSS", "https://platform.33across.com/favicon.ico"], | |
["PLAYGROUNDXYZ", "https://playground.xyz/favicon/favicon-16x16.png"], | |
["NANOINTERACTIVE", "https://www.nanointeractive.com/favicon.ico"], | |
["ADYOULIKE", "https://www.adyoulike.com/favicon.ico"], | |
["VISX", "https://yoc.com/wp-content/themes/yoc/assets/img/favicon-32x32.png"], | |
["NASMEDIAADMIXER", "https://admixer.net/favicon.ico"], | |
["TRIPLELIFT", "https://triplelift.com/wp-content/uploads/2019/10/cropped-fav-icon-32x32.png"], | |
["INSKIN", "http://www.inskinmedia.com/favicon-16x16.png"], | |
["WIDESPACE", "https://www.widespace.com/wp-content/uploads/2017/02/favicon_widespace.png"], | |
["LOCKERDOME", "https://lockerdome.com/_images/favicon-32x32.png"], | |
["RICHAUDIENCE", "https://richaudience.com/images/fav16x16.png"], | |
["MANTIS", "https://www.mantisadnetwork.com/favicon.ico"], | |
["TRION", "https://trioninteractive.com/assets/images/favicon.png"], | |
["SMART", "https://smartadserver.com/content/uploads/2018/09/cropped-favicon-32x32.png"], | |
["BRIGHTCOM", "https://www.brightcom.com/wp-content/themes/brightcom/assets/images/favicon.png"], | |
["SUBLIME", "https://www.sublime.xyz/favicon-32x32.png"], | |
["GRID", "https://www.themediagrid.com/wp-content/uploads/2019/03/TMG-Brand-Mood_V7-FavIcon_32x32.png"], | |
["SHARETHROUGH", "https://www.sharethrough.com/img/favicon.png"], | |
["UNDERTONE", "https://www.undertone.com/wp-content/themes/undertone/dist/img/favicon.png"], | |
["MEDIANET", "https://s31073.pcdn.co/wp-content/themes/media.net/favicon.ico"], | |
["YIELDMO", "https://ds4u0ts8zy2oj.cloudfront.net/app/uploads/2019/09/cropped-favicon-32x32.png?x84892"] | |
]), h.defaultIcon = "https://www.venatusmedia.com/favicon.ico", h.psaMap = new s.a([ | |
["728x90", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:728px;height:90px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/728x90.jpg" /></a>'], | |
["160x600", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:160px;height:600px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/160x600.jpg" /></a>'], | |
["300x250", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:300px;height:250px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/300x250.jpg" /></a>'], | |
["300x600", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:300px;height:600px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/300x600.jpg" /></a>'], | |
["120x600", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:120px;height:600px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/120x600.jpg" /></a>'], | |
["300x50", '<a href="https://www.videogamer.com/?utm_source=psa" target="_blank"><img style="width:300px;height:50px;" src="https://hb.vntsm.com/psa/vg_300x50.jpg" /></a>'] | |
]), h.mediationMultiAcceptance = new s.a([ | |
["justpremium", ["lkqd", "teads", "streamspread"]], | |
["lkqd", ["justpremium", "venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "jpmediated"]], | |
["teads", ["justpremium", "trion", "venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "venatus-footer"]], | |
["streamspread", ["justpremium", "trion", "venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "venatus-footer"]], | |
["lkqd-inread", ["lkqd", "venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "venatus-footer", "trion", "jpmediated", "teads"]], | |
["venatus", ["lkqd-inread", "lkqd", "venatus-footer", "gumgum", "trion", "jpmediated", "teads", "streamspread"]], | |
["venatus-op", ["lkqd-inread", "lkqd", "venatus-footer", "gumgum", "trion", "jpmediated", "teads", "streamspread"]], | |
["venatus-vertical-sticky", ["lkqd-inread", "lkqd", "venatus-footer", "gumgum", "trion", "jpmediated", "teads", "streamspread"]], | |
["venatus-vertical-sticky-op", ["lkqd-inread", "lkqd", "venatus-footer", "gumgum", "trion", "jpmediated", "teads", "streamspread"]], | |
["venatus-footer", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "streamspread"]], | |
["taboola", []], | |
["trion", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "lkqd", "teads", "streamspread"]], | |
["jpmediated", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "lkqd", "teads", "streamspread"]] | |
]), h.siteLevelMediationMultiAcceptanceChanges = new s.a([ | |
["5a8460b346e0fb0001fc3bac", new s.a([ | |
["lkqd", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op"]], | |
["venatus-footer", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op"]] | |
])] | |
]).getOrElse(u.a.get("data-site-id"), new s.a), h.A9ABTestSiteIds = [ | |
["5a8460b346e0fb0001fc3bac", 1], | |
["58d925be46e0fb0001790515", 1], | |
["58d2538946e0fb0001e4b3e5", 1], | |
["58d923da46e0fb00017904ed", 1], | |
["58d8ed2646e0fb0001b87391", 1] | |
], h.GoogleRangeSizingSiteIds = [ | |
["58d925be46e0fb0001790515", 1], | |
["58d923da46e0fb00017904ed", 1] | |
], h.GoogleRangeSizingFooterFloatTest = [ | |
[m.a.getSiteId(), .5] | |
], h.LegacyRefreshLogicABTestAccountIds = ["58da6ee846e0fb00017909b8"], h.DFPNoThrottlingABTestSiteIds = [ | |
["58d925be46e0fb0001790515", 1] | |
], h.CustomLinksQCLabelsABTestSiteIds = [ | |
["5e79f53e963d0e25e62b5f4f", 1] | |
] | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(24); | |
t.a = r.noConflict(!0) | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var r = (i.prototype.set = function(e, t) { | |
this.data[e] = t | |
}, i.prototype.setIfNotExists = function(e, t) { | |
return void 0 === this.data[e] && (this.data[e] = t, !0) | |
}, i.prototype.get = function(e) { | |
return this.data[e] | |
}, i.prototype.getOrElse = function(e, t) { | |
return this.data[e] ? this.data[e] : t | |
}, i.prototype.has = function(e) { | |
return void 0 !== this.data[e] | |
}, i.prototype.forEach = function(e) { | |
for (var t in this.data) this.data.hasOwnProperty(t) && e(this.data[t], t) | |
}, i.prototype.mapToArrayOf = function(e) { | |
var t, n = []; | |
for (t in this.data) this.data.hasOwnProperty(t) && n.push(e(this.data[t], t)); | |
return n | |
}, i.prototype.filter = function(e) { | |
var t, n = new i; | |
for (t in this.data) this.data.hasOwnProperty(t) && e(this.data[t], t) && n.set(t, this.data[t]); | |
return n | |
}, i.prototype.filterToArrayOf = function(e) { | |
var t, n = []; | |
for (t in this.data) this.data.hasOwnProperty(t) && e(this.data[t], t) && n.push(this.data[t]); | |
return n | |
}, i.prototype.values = function() { | |
var e, t = []; | |
for (e in this.data) this.data.hasOwnProperty(e) && t.push(this.data[e]); | |
return t | |
}, i.prototype.keys = function() { | |
var e, t = []; | |
for (e in this.data) this.data.hasOwnProperty(e) && t.push(e); | |
return t | |
}, i.prototype.size = function() { | |
var e, t = 0; | |
for (e in this.data) this.data.hasOwnProperty(e) && t++; | |
return t | |
}, i.prototype.length = function() { | |
return this.size() | |
}, i.prototype.remove = function(e) { | |
delete this.data[e] | |
}, i.prototype.clear = function() { | |
this.data = {} | |
}, i); | |
function i(e) { | |
var t = this; | |
this.data = {}, void 0 !== e && e.forEach(function(e) { | |
return t.data[e[0]] = e[1] | |
}) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return i | |
}); | |
var o = n(1), | |
r = n(16), | |
i = (a.has = function(e) { | |
return -1 !== o.a.getTopMostParentWindow().location.href.indexOf(e) || null !== r.a.get("vm_" + e) | |
}, a.getValue = function(e) { | |
var t = o.a.getTopMostParentWindow().location.href.match(/[a-z\-]+\=[a-z0-9A-Z]+/g); | |
if (null === t) return null; | |
for (var n = 0; n < t.length; n++) { | |
var r = t[n].split("="), | |
i = r[0], | |
a = r[1]; | |
if (i === e) return a | |
} | |
return null | |
}, a); | |
function a() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var i = n(1), | |
a = n(7), | |
r = (o.get = function(e) { | |
var t, n, r; | |
if ("string" == typeof window.vm_site_id) return window.vm_site_id; | |
if (i.a.isTop() ? (n = window.document.getElementsByTagName("head")[0], a.a.getChildrenElementsOfParentElement(n).forEach(function(e) { | |
e.getAttribute("data-site-id") && (r = e) | |
}), void 0 !== r && (t = r.getAttribute(e))) : t = window.frameElement.getAttribute(e), "string" == typeof t) return t; | |
throw "Unable to find frame setting '" + e + "'" | |
}, o); | |
function o() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var r = (i.getElementsByClassName = function(e, t) { | |
return Array.from(t.querySelectorAll("." + e)) | |
}, i.getChildrenElementsOfParentElement = function(e) { | |
for (var t = [], n = e.children, r = 0; r < n.length; r++) t.push(n[r]); | |
return t | |
}, i); | |
function i() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var r = (i.isiOS = function() { | |
return /iPhone|iPad|iPod/i.test(navigator.userAgent) | |
}, i.isMobile = function() { | |
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) | |
}, i.isDesktop = function() { | |
return !this.isMobile() | |
}, i); | |
function i() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var r = (i.prototype.getWidth = function() { | |
return this.width | |
}, i.prototype.getHeight = function() { | |
return this.height | |
}, i.prototype.getSize = function() { | |
return this.size | |
}, i.prototype.getDims = function() { | |
return [this.width, this.height] | |
}, i); | |
function i(e) { | |
var t; | |
this.size = e, this.size ? (t = this.size.split("x").map(function(e) { | |
return parseInt(e) | |
}), this.width = t[0], this.height = t[1]) : (this.size = "0x0", this.width = 0, this.height = 0) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var s = n(7), | |
r = (i.loadJSIn = function(e, t, n, r) { | |
void 0 === n && (n = function() {}), void 0 === r && (r = function() {}); | |
var i, a = e.document.getElementsByTagName("head")[0], | |
o = !1; | |
s.a.getChildrenElementsOfParentElement(a).forEach(function(e) { | |
e.getAttribute("src") === t && (o = !0) | |
}), o ? n() : ((i = e.document.createElement("script")).type = "text/javascript", i.src = t, i.async = !0, i.readyState ? i.onreadystatechange = function() { | |
"loaded" !== i.readyState && "complete" !== i.readyState || (i.onreadystatechange = null, n()) | |
} : i.onload = function() { | |
return n() | |
}, i.onerror = function() { | |
return r() | |
}, a.appendChild(i)) | |
}, i.loadJS = function(e, t, n) { | |
void 0 === t && (t = function() {}), void 0 === n && (n = function() {}), this.loadJSIn(window, e, t, n) | |
}, i.loadCSSIn = function(e, t) { | |
var n, r = e.document.getElementsByTagName("head")[0], | |
i = !1; | |
s.a.getChildrenElementsOfParentElement(r).forEach(function(e) { | |
e.getAttribute("href") === t && (i = !0) | |
}), i || ((n = e.document.createElement("link")).rel = "stylesheet", n.href = t, r.appendChild(n)) | |
}, i.loadCSS = function(e) { | |
this.loadCSSIn(window, e) | |
}, i); | |
function i() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return x | |
}); | |
var r = n(15), | |
s = n(1), | |
o = n(10), | |
d = n(0), | |
i = n(5), | |
a = n(2), | |
c = (u.prototype.pollForThirdPartyCMP = function() { | |
var e = this; | |
this.isReady() ? this.cmpLoaded() : setTimeout(function() { | |
return e.pollForThirdPartyCMP() | |
}, 1e3) | |
}, u.prototype.isReady = function() { | |
return "function" == typeof s.a.getTopMostParentWindow().__cmp | |
}, u.prototype.isGDPRRequired = function() { | |
return this.gdprApplies | |
}, u.prototype.isUsingThirdPartyCMP = function() { | |
return this.useThirdPartyCMP | |
}, u.prototype.showCMP = function() { | |
var e = this; | |
this.isReady() ? s.a.getTopMostParentWindow().__cmp("showConsentTool", null, function() {}) : setTimeout(function() { | |
e.showCMP() | |
}, 500) | |
}, u.prototype.getConsentData = function(t, e) { | |
var n = this; | |
void 0 === e && (e = 0); | |
var r, i, a = { | |
gdprApplies: this.gdprApplies, | |
hasGlobalScope: !0, | |
consentData: "" | |
}; | |
!this.gdprApplies || 30 < e ? t(a) : (r = s.a.getTopMostParentWindow(), this.isReady() ? (i = setTimeout(function() { | |
t(a) | |
}, 1e3), r.__cmp("getConsentData", null, function(e) { | |
clearTimeout(i), t({ | |
gdprApplies: e.gdprApplies, | |
hasGlobalScope: e.hasGlobalScope, | |
consentData: e.consentData | |
}) | |
})) : setTimeout(function() { | |
n.getConsentData(t, e + 1) | |
}, 100)) | |
}, u.prototype.getVendorConsent = function(a, e) { | |
var t = this; | |
void 0 === e && (e = 0); | |
var n, o, r = { | |
allowed: 0, | |
total: 0 | |
}; | |
!this.gdprApplies || 30 < e ? a(r) : (n = s.a.getTopMostParentWindow(), this.isReady() ? (o = setTimeout(function() { | |
a(r) | |
}, 1e3), n.__cmp("getVendorConsents", null, function(e) { | |
clearTimeout(o); | |
var t = 0, | |
n = 0; | |
if (e.created) { | |
var r, i = e.vendorConsents; | |
for (r in i) i.hasOwnProperty(r) && (!0 === i[r] && t++, n++) | |
} | |
a({ | |
allowed: t, | |
total: n | |
}) | |
})) : setTimeout(function() { | |
t.getVendorConsent(a, e + 1) | |
}, 100)) | |
}, u); | |
function u(e, t) { | |
this.cmpLoaded = e, this.gdprApplies = t.gdprApplies, this.useThirdPartyCMP = t.cmpOption === r.a.CMP_3rd_PARTY, this.gdprApplies ? this.useThirdPartyCMP ? this.pollForThirdPartyCMP() : this.load(t) : this.cmpLoaded() | |
} | |
var p, l, f = ((p = function(e, t) { | |
return (p = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
p(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(m, l = c), m.prototype.load = function(e) { | |
var n = this; | |
d.a.info("CMP - Requesting and deferring load callbacks..."); | |
var r = s.a.getTopMostParentWindow(), | |
t = { | |
config: e || { | |
globalConsentLocation: a.a.cmpPortalEndpoint, | |
storeConsentGlobally: !1, | |
enableKidsMode: !1, | |
styleChanges: a.a.gdprPreferences.styleChanges, | |
copyChanges: a.a.gdprPreferences.copyChanges, | |
functionalList: a.a.gdprPreferences.functionalList, | |
gdprApplies: e.gdprApplies, | |
cmpOption: e.cmpOption, | |
domain: e.domain | |
} | |
}; | |
d.a.debug("CMP - Config: ", t), i.a.has("cdbg") && (t.config.logging = "debug"), void 0 === r.__cmp && (r.__cmp = t), o.a.loadJSIn(r, a.a.cmpEndpoint, function() { | |
var t = function(e) { | |
n.isReady() ? (i.a.has("open-cmp") && n.showCMP(), d.a.info("CMP - Loaded, processing load callbacks..."), n.cmpLoaded(), r.__cmp("addEventListener", "onSubmit", function(e) { | |
d.a.event("an-cmp-updated"), d.a.debug(e) | |
})) : e < 100 ? (d.a.warn("CMP - Awaiting CMP constructor..."), setTimeout(function() { | |
t(e + 1) | |
}, 100)) : (d.a.error("CMP - Failed to get CMP constructor..."), d.a.error(r.__cmp), n.cmpLoaded()) | |
}; | |
t(0) | |
}) | |
}, m); | |
function m() { | |
return null !== l && l.apply(this, arguments) || this | |
} | |
var g, h, b = n(14), | |
y = ((g = function(e, t) { | |
return (g = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
g(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(v, h = c), v.get = function(t, e) { | |
var n = this; | |
return void 0 === this.cmp ? (this.cmp = new v(function() {}, e), this.cmp.makeStub(), this.cmp.injectQCScript(e.domain, function() { | |
n.cmp.pollForReady(function(e) { | |
e ? d.a.info("CMP loaded") : d.a.warn("CMP not ready after " + a.a.cmpAwaitTimeoutMS + " ms"), n.cmp.customizeQCDialog(), t() | |
}, a.a.cmpPollIntervalMS, a.a.cmpAwaitTimeoutMS), n.cmp.loadTCDataAsync() | |
}, function(e) { | |
d.a.airbrakeNotify("Failed to load QC CMP: " + e), t() | |
})) : t(), this.cmp | |
}, v.prototype.customizeQCDialog = function() { | |
var e = s.a.getTopMostParentWindow(); | |
this.abTest.runOnEnabledSites(function() { | |
e.__tcfapi && e.__tcfapi("getConfig", 2, function(e) { | |
e.premiumUiLabels.initScreenCustomLinks = [{ | |
label: "HLTV : Cookie Policy", | |
link: "https://www.hltv.org/cookie-policy" | |
}, { | |
label: "HLTV : Privacy Policy", | |
link: "https://www.hltv.org/privacy" | |
}] | |
}) | |
}, function() {}) | |
}, v.prototype.isReady = function() { | |
var e = s.a.getTopMostParentWindow(), | |
t = !1; | |
return e.__tcfapi && e.__tcfapi("ping", 2, function(e) { | |
t = e.cmpLoaded | |
}), t | |
}, v.prototype.loadTCDataAsync = function() { | |
var n = this; | |
s.a.getTopMostParentWindow().__tcfapi("addEventListener", 2, function(e, t) { | |
t && ("tcloaded" !== e.eventStatus && "useractioncomplete" !== e.eventStatus || !e.tcString || (v.cmp.tcData = e), "tcloaded" === e.eventStatus && i.a.has("open-cmp") && n.showCMP(), "useractioncomplete" === e.eventStatus && d.a.event("qc-cmp-updated")) | |
}) | |
}, v.prototype.pollForReady = function(e, t, n) { | |
var r = this; | |
n <= 0 ? e(!1) : this.isReady() ? e(!0) : setTimeout(function() { | |
return r.pollForReady(e, t, n - t) | |
}, t) | |
}, v.prototype.showCMP = function() { | |
this.isReady() && s.a.getTopMostParentWindow().__tcfapi("displayConsentUi", 2, function() {}) | |
}, v.prototype.load = function(e) { | |
this.cmpLoaded() | |
}, v.prototype.getConsentData = function(e, t) { | |
void 0 === t && (t = 0), e({ | |
gdprApplies: this.gdprApplies, | |
hasGlobalScope: !0, | |
consentData: void 0 === this.tcData ? "" : this.tcData.tcString | |
}) | |
}, v.prototype.getVendorConsent = function(e, t) { | |
void 0 === t && (t = 0); | |
e({ | |
allowed: 0, | |
total: 0 | |
}) | |
}, v.prototype.injectQCScript = function(e, t, n) { | |
d.a.info("CMP - Loading Quantcast V2 CMP..."); | |
var r = s.a.getTopMostParentWindow(), | |
i = (new Date).getTime(), | |
a = "https://quantcast.mgr.consensu.org".concat("/choice/", "Hwnr8j7tWA3Nu", "/", e, "/choice.js").concat("?timestamp=", i.toString()); | |
o.a.loadJSIn(r, a, t, function() { | |
n(a) | |
}) | |
}, v.prototype.makeStub = function() { | |
var e, i = "__tcfapiLocator", | |
r = [], | |
a = s.a.getTopMostParentWindow(); | |
for (; a;) { | |
try { | |
if (a.frames[i]) { | |
e = a; | |
break | |
} | |
} catch (e) {} | |
if (a === window.top) break; | |
a = a.parent | |
} | |
e || (! function e() { | |
var t, n = s.a.getTopMostParentDocument(), | |
r = !!a.frames[i]; | |
return r || (n.body ? ((t = n.createElement("iframe")).style.cssText = "display:none", t.name = i, n.body.appendChild(t)) : setTimeout(e, 5)), !r | |
}(), a.__tcfapi = function() { | |
var e, t, n = arguments; | |
if (!n.length) return r; | |
"setGdprApplies" === n[0] ? 3 < n.length && 2 === n[2] && "boolean" == typeof n[3] && (e = n[3], "function" == typeof n[2] && n[2]("set", !0)) : "ping" === n[0] ? (t = { | |
gdprApplies: e, | |
cmpLoaded: !1, | |
cmpStatus: "stub" | |
}, "function" == typeof n[2] && n[2](t)) : r.push(n) | |
}, a.addEventListener("message", function(r) { | |
var i = "string" == typeof r.data, | |
e = {}; | |
try { | |
e = i ? JSON.parse(r.data) : r.data | |
} catch (e) {} | |
var a = e.__tcfapiCall; | |
a && s.a.getTopMostParentWindow().__tcfapi(a.command, a.version, function(e, t) { | |
var n = { | |
__tcfapiReturn: { | |
returnValue: e, | |
success: t, | |
callId: a.callId | |
} | |
}; | |
i && (n = JSON.stringify(n)), r.source.postMessage(n, "*") | |
}, a.parameter) | |
}, !1)) | |
}, v); | |
function v() { | |
var e = null !== h && h.apply(this, arguments) || this; | |
return e.abTest = new b.b(a.a.CustomLinksQCLabelsABTestSiteIds), e | |
} | |
var w, I, T, S = (w = function(e, t) { | |
return (w = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
w(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
}); | |
(T = I = I || {})[T.UNKNOWN = 0] = "UNKNOWN", T[T.CMP_TCF_1_3 = 1] = "CMP_TCF_1_3", T[T.CMP_TCF_2_0 = 2] = "CMP_TCF_2_0"; | |
var k, j = (S(A, k = c), A.get = function(t, e) { | |
return void 0 === this.cmp ? (this.cmp = new A(function() {}, e), this.cmp.pollForReady(function(e) { | |
e ? d.a.info("CMP loaded") : d.a.warn("CMP not ready after " + a.a.cmpAwaitTimeoutMS + " ms"), t() | |
}, a.a.cmpPollIntervalMS, a.a.cmpAwaitTimeoutMS)) : t(), this.cmp | |
}, A.prototype.pollForThirdPartyCMP = function() {}, A.prototype.load = function(e) { | |
this.cmpLoaded() | |
}, A.prototype.pollForReady = function(e, t, n) { | |
var r = this; | |
n <= 0 ? (e(!1), this.loadTCDataAsync(!1)) : this.isTCF1Ready() ? (this.tcfVersion = I.CMP_TCF_1_3, e(!0)) : this.isTCF2Ready() ? (this.tcfVersion = I.CMP_TCF_2_0, e(!0)) : setTimeout(function() { | |
return r.pollForReady(e, t, n - t) | |
}, t) | |
}, A.prototype.isTCF1Ready = function() { | |
return "function" == typeof s.a.getTopMostParentWindow().__cmp | |
}, A.prototype.loadTCDataAsync = function(n) { | |
var r = this; | |
void 0 === n && (n = !0); | |
var i = s.a.getTopMostParentWindow(); | |
i.__tcfapi && i.__tcfapi("addEventListener", 2, function(e, t) { | |
!t || "tcloaded" !== e.eventStatus && "useractioncomplete" !== e.eventStatus || (n && i.__tcfapi("removeEventListener", 2, function(e) {}, e.listenerId), e.tcString && (r.tcData = e, r.tcfVersion = I.CMP_TCF_2_0)) | |
}) | |
}, A.prototype.isTCF2Ready = function() { | |
var t = this, | |
e = s.a.getTopMostParentWindow(); | |
return e.__tcfapi && e.__tcfapi("ping", 2, function(e) { | |
e.cmpLoaded && t.loadTCDataAsync() | |
}), this.tcData && this.tcData.tsString | |
}, A.prototype.getConsentData = function(e, t) { | |
void 0 === t && (t = 0), this.tcfVersion === I.CMP_TCF_1_3 ? k.prototype.getConsentData.call(this, e, t) : this.tcfVersion === I.CMP_TCF_2_0 && e({ | |
gdprApplies: !0, | |
hasGlobalScope: !0, | |
consentData: void 0 === this.tcData ? "" : this.tcData.tcString | |
}) | |
}, A.prototype.getVendorConsent = function(e, t) { | |
void 0 === t && (t = 0), this.tcfVersion === I.CMP_TCF_1_3 ? k.prototype.getVendorConsent.call(this, e, t) : this.tcfVersion === I.CMP_TCF_2_0 && e({ | |
allowed: 0, | |
total: 0 | |
}) | |
}, A); | |
function A() { | |
var e = null !== k && k.apply(this, arguments) || this; | |
return e.tcfVersion = I.UNKNOWN, e | |
} | |
var E, O, _ = ((E = function(e, t) { | |
return (E = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
E(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(C, O = c), C.get = function(e, t) { | |
return void 0 === this.cmp ? this.cmp = new C(e, t) : e(), this.cmp | |
}, C.prototype.load = function(e) { | |
this.cmpLoaded() | |
}, C); | |
function C() { | |
return null !== O && O.apply(this, arguments) || this | |
} | |
var x = (R.register = function(e, t) { | |
if (i.a.has("use-an")) this.cmp = new f(e, t); | |
else if (i.a.has("use-qc")) this.cmp = y.get(e, t); | |
else if (t.gdprApplies) switch (t.cmpOption) { | |
case r.a.CMP_TCF_2_0: | |
this.cmp = y.get(e, t); | |
break; | |
case r.a.CMP_3rd_PARTY: | |
this.cmp = j.get(e, t); | |
break; | |
case r.a.CMP_TCF_1_3: | |
this.cmp = new f(e, t) | |
} else this.cmp = _.get(e, t) | |
}, R.get = function() { | |
if (void 0 === this.cmp) throw "Failed to register a CMP"; | |
return this.cmp | |
}, R); | |
function R() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var r = (i.seg = function() { | |
return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) | |
}, i.createGUID = function(e) { | |
return ("string" == typeof e ? e : "") + this.seg() + this.seg() + this.seg() + this.seg() + this.seg() + this.seg() + this.seg() + this.seg() | |
}, i.createShortGUID = function(e) { | |
return ("string" == typeof e ? e : "") + this.seg() + this.seg() + this.seg() | |
}, i.numberBetween = function(e, t) { | |
return Math.floor(Math.random() * (t - e + 1) + e) | |
}, i); | |
function i() {} | |
}, function(e, t, n) { | |
"use strict"; | |
var r, i, a; | |
n.d(t, "a", function() { | |
return r | |
}), i = r = r || {}, (a = i.RequestMethod || (i.RequestMethod = {})).GET = "GET", a.POST = "POST", a.PUT = "PUT", a.DELETE = "DELETE", i.go = function(e) { | |
var n = new XMLHttpRequest; | |
if (n.open(e.method, e.url, !0), !0 === e.withCredentials && (n.withCredentials = !0), "string" == typeof e.contentType && n.setRequestHeader("Content-Type", e.contentType), void 0 !== e.headers && e.headers.forEach(function(e, t) { | |
return n.setRequestHeader(t, e) | |
}), "number" == typeof e.timeout && (n.timeout = e.timeout), n.onload = function() { | |
200 <= n.status && n.status < 400 ? e.success(n.status, n.responseText, n) : e.error(n.status, n.responseText, n), "function" == typeof e.complete && e.complete(n.status, n.responseText, n) | |
}, n.onerror = function() { | |
e.error(404, "Failed to load resource") | |
}, "POST" === e.method || "PUT" === e.method) { | |
if (void 0 === e.payload) throw "Expecting a payload with a " + e.method + " request!"; | |
n.send(e.payload) | |
} else n.send() | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return d | |
}), n.d(t, "b", function() { | |
return u | |
}); | |
var r = n(17), | |
i = (a.prototype.underTest = function(e) { | |
return -1 < this.enabledAccounts.indexOf(e.getAccountId()) | |
}, a); | |
function a(e) { | |
this.enabledAccounts = e | |
} | |
var o = (s.prototype.mapIdsToRatio = function(e) { | |
return e.reduce(function(e, t) { | |
return e[t[0]] = t[1], e | |
}, {}) | |
}, s.prototype.underTest = function(e) { | |
var t = this.siteIdRatioMap[e.getSiteId()]; | |
return t && s.randSeed < t | |
}, s.randSeed = Math.random(), s); | |
function s(e) { | |
this.siteIdRatioMap = this.mapIdsToRatio(e) | |
} | |
var d = (c.forSitesWithRatio = function(e) { | |
return new c(new o(e)) | |
}, c.forAccounts = function(e) { | |
return new c(new i(e)) | |
}, c.prototype.runOnEnabledSites = function(e, t, n) { | |
return this.underTestPredicate.underTest(e) ? t() : this.isFunction(n) ? n() : void 0 | |
}, c.prototype.isFunction = function(e) { | |
return "function" == typeof e | |
}, c); | |
function c(e) { | |
this.underTestPredicate = e | |
} | |
var u = (p.prototype.runOnEnabledSites = function(e, t) { | |
var n = this.siteIdRatioMap[this.currentSiteId]; | |
if (n) { | |
if (p.randSeed < n) return e(); | |
if (this.isFunction(t)) return t() | |
} | |
if (this.isFunction(t)) return t() | |
}, p.prototype.isFunction = function(e) { | |
return "function" == typeof e | |
}, p.prototype.mapIdsToRatio = function(e) { | |
return e.reduce(function(e, t) { | |
return e[t[0]] = t[1], e | |
}, {}) | |
}, p.randSeed = Math.random(), p); | |
function p(e) { | |
this.currentSiteId = r.a.getSiteId(), this.siteIdRatioMap = this.mapIdsToRatio(e) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r, i; | |
n.d(t, "a", function() { | |
return r | |
}), (i = r = r || {}).CMP_TCF_1_3 = "cmp_tcf_1.3", i.CMP_TCF_2_0 = "cmp_tcf_2.0", i.CMP_3rd_PARTY = "cmp_3rd_party" | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var r = (i.set = function(e, t, n) { | |
var r; | |
void 0 === n && (n = 0), 0 === n ? document.cookie = e + "=" + encodeURIComponent(t) + ";expires=0;path=" + encodeURIComponent("/") : ((r = new Date).setTime((new Date).getTime() + 1e3 * n), document.cookie = e + "=" + encodeURIComponent(t) + ";expires=" + r.toUTCString() + ";path=" + encodeURIComponent("/")) | |
}, i.get = function(e) { | |
for (var t, n, r = document.cookie.split(";"), i = 0; i < r.length; i++) | |
if (t = r[i].substr(0, r[i].indexOf("=")), n = r[i].substr(r[i].indexOf("=") + 1), (t = t.replace(/^\s+|\s+$/g, "")) == e) return decodeURIComponent(n); | |
return null | |
}, i); | |
function i() {} | |
}, function(e, t, o) { | |
"use strict"; | |
o.d(t, "a", function() { | |
return W | |
}); | |
var n = o(9), | |
r = (i.prototype.getOrderIndex = function() { | |
return this.orderIndex | |
}, i.prototype.getPaymentFixed = function() { | |
return this.paymentFixed | |
}, i.prototype.getPaymentFloor = function() { | |
return this.paymentFloor | |
}, i.prototype.getPaymentShare = function() { | |
return this.paymentShare | |
}, i.prototype.getPaymentType = function() { | |
return this.paymentType | |
}, i.prototype.getTargetCountryCode = function() { | |
return this.targetCountryCode | |
}, i.prototype.getTargetImpressionType = function() { | |
return this.targetImpressionType | |
}, i.prototype.getTargetSize = function() { | |
return this.targetSize | |
}, i); | |
function i(e) { | |
this.orderIndex = e.order_index, this.paymentFixed = e.payment_fixed, this.paymentFloor = e.payment_floor, this.paymentShare = e.payment_share, this.paymentType = e.payment_type, this.targetCountryCode = e.target_geo, this.targetImpressionType = e.target_impression_type, this.targetSize = new n.a(e.target_size) | |
} | |
var a = o(12), | |
s = (d.prototype.isAdblockTargeted = function() { | |
return "adblocked" === this.targetTrafficType | |
}, d.prototype.getAdapterFloor = function() { | |
return this.adapterFloor | |
}, d.prototype.getAdapterName = function() { | |
return this.adapterName | |
}, d.prototype.getPrebidConnectorName = function() { | |
return "indexExchange" === this.adapterName ? "ix" : this.adapterName | |
}, d.prototype.getAdapterParameters = function() { | |
return this.adapterParameters | |
}, d.prototype.getOrderIndex = function() { | |
return this.orderIndex | |
}, d.prototype.getTargetDomain = function() { | |
return this.targetDomain | |
}, d.prototype.getTargetCountryCode = function() { | |
return this.targetCountryCode | |
}, d.prototype.getTargetSize = function() { | |
return this.targetSize | |
}, d.prototype.isCompressable = function() { | |
return !1 | |
}, d.prototype.getCompressionKey = function() { | |
return a.a.createGUID() | |
}, d.prototype.getSizeTargets = function(e) { | |
var t = "0x0" === this.getTargetSize().getSize() || this.isCompressable() ? e.getPlacementSizes().map(function(e) { | |
return [e.getWidth(), e.getHeight()] | |
}) : [ | |
[this.getTargetSize().getWidth(), this.getTargetSize().getHeight()] | |
]; | |
return t.sort(), t | |
}, d.prototype.getSizeTargetsKey = function(e) { | |
return this.getSizeTargets(e).map(function(e) { | |
return e[0] + "x" + e[1] | |
}).join(",") | |
}, d); | |
function d(e) { | |
this.adapterFloor = e.adapter_floor, e.adapter_name.match(/^ab\-/) ? (this.adapterName = e.adapter_name.replace(/^ab-/, ""), this.targetTrafficType = "adblocked") : (this.adapterName = e.adapter_name, this.targetTrafficType = "standard"), this.adapterParameters = e.adapter_parameters, this.targetSize = new n.a(e.target_size), this.adapterName.match(/^rubicon/) ? delete this.adapterParameters.sizeId : "justpremium" === this.adapterName || "jpmediated" === this.adapterName ? this.adapterParameters.allow = this.adapterParameters.allow.split(",").map(function(e) { | |
return e.trim() | |
}) : "indexExchange" === this.adapterName ? (delete this.adapterParameters.id, this.adapterParameters.size = [this.targetSize.getWidth(), this.targetSize.getHeight()], this.adapterParameters.siteId = this.adapterParameters.siteID, delete this.adapterParameters.siteID) : "aol" === this.adapterName && (void 0 !== this.adapterParameters.ext && "" !== this.adapterParameters.ext && "{}" !== this.adapterParameters.ext ? this.adapterParameters.ext = JSON.parse(this.adapterParameters.ext) : delete this.adapterParameters.ext), this.orderIndex = e.order_index, this.targetDomain = e.target_domain, this.targetCountryCode = e.target_geo | |
} | |
var c = o(18), | |
g = o(0), | |
u = (p.prototype.isBanner = function() { | |
return "banner" === this.placementType | |
}, p.prototype.isRichMedia = function() { | |
return "rich_media" === this.placementType | |
}, p.prototype.getSmallestSize = function() { | |
return this.placementSizes.sort(function(e, t) { | |
return e.getWidth() * e.getHeight() <= t.getWidth() * t.getHeight() ? -1 : 1 | |
})[0] | |
}, p.prototype.getLargestSize = function() { | |
return this.placementSizes.sort(function(e, t) { | |
return e.getWidth() * e.getHeight() >= t.getWidth() * t.getHeight() ? -1 : 1 | |
})[0] | |
}, p.prototype.getMaximumSize = function() { | |
if (0 === this.placementSizes.length) return null; | |
var i = 0, | |
a = 0; | |
return this.placementSizes.forEach(function(e, t) { | |
var n = e.getWidth(), | |
r = e.getHeight(); | |
i < n && (i = n), a < r && (a = r) | |
}), new n.a(i + "x" + a) | |
}, p.prototype.getDefaultCreative = function() { | |
return this.defaultCreative | |
}, p.prototype.getEnableRefresh = function() { | |
return this.enableRefresh | |
}, p.prototype.isActive = function() { | |
return this.active | |
}, p.prototype.getPlacementContent = function() { | |
return this.placementContent | |
}, p.prototype.getPlacementId = function() { | |
return this.placementId | |
}, p.prototype.getPlacementName = function() { | |
return this.placementName | |
}, p.prototype.getPlacementType = function() { | |
return this.placementType | |
}, p.prototype.getPlacementSizes = function(e) { | |
return void 0 !== e && e.hasAttribute("data-fixed-size") ? [new n.a(e.getAttribute("data-fixed-size"))] : this.placementSizes | |
}, p.prototype.getPaymentRules = function() { | |
return this.paymentRules | |
}, p.prototype.getConnectors = function() { | |
return this.connectors.filter(function(e) { | |
return !e.isAdblockTargeted() | |
}) | |
}, p.prototype.getAdBlockedConnectors = function() { | |
return this.connectors.filter(function(e) { | |
return e.isAdblockTargeted() | |
}) | |
}, p.prototype.getBestMatchingConnectorFromAdapterBid = function(t) { | |
var n, r, e = t.getSizeTargetingKey(); | |
return e && (r = e.split(","), this.connectors.forEach(function(e) { | |
t.getBidder() === e.getAdapterName() && -1 !== r.indexOf(e.getTargetSize().getSize()) && (n = e) | |
})), void 0 === n && this.connectors.forEach(function(e) { | |
(t.getBidder() === e.getAdapterName() && "0x0" === e.getTargetSize().getSize() || t.getBidder() === e.getAdapterName() && e.getTargetSize().getSize() === t.getSize().getSize()) && (n = e) | |
}), void 0 === n && this.connectors.forEach(function(e) { | |
t.getBidder() === e.getAdapterName() && (n = e) | |
}), void 0 === n && g.a.error("Failed to match bid from " + t.getBidder() + " with size " + t.getSize().getSize() + " to a connector"), n | |
}, p.prototype.getMediationRules = function() { | |
return this.mediationRules | |
}, p); | |
function p(e) { | |
this.defaultCreative = e.default_creative, this.enableRefresh = e.enable_refresh, this.active = e.is_active, this.placementContent = e.placement_content, this.placementId = e.placement_id, this.placementName = e.placement_name, this.placementType = e.placement_type, this.placementSizes = e.placement_sizes.map(function(e) { | |
return new n.a(e) | |
}), this.paymentRules = e.payment_rules.map(function(e) { | |
return new r(e) | |
}), this.connectors = e.connectors.map(function(e) { | |
return new s(e) | |
}), this.mediationRules = e.mediation_rules.map(function(e) { | |
return new c.a(e) | |
}) | |
} | |
var h = o(2), | |
b = o(1), | |
l = o(19), | |
f = o(8), | |
m = o(21), | |
y = o(5), | |
v = (w.prototype.isTabActive = function() { | |
return b.a.hasFocus() | |
}, w.prototype.getDevice = function() { | |
return f.a.isDesktop() ? l.a.DESKTOP : l.a.MOBILE | |
}, w.prototype.getURL = function() { | |
return m.a.getTopURL() | |
}, w.prototype.isAdapterTest = function() { | |
return y.a.has("adapter-test") | |
}, w); | |
function w() {} | |
var I, T, S = ((I = function(e, t) { | |
return (I = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
I(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(k, T = v), k.prototype.getAdapterName = function() { | |
return this.adapterName | |
}, k.prototype.getPositionalId = function() { | |
return this.positionalId | |
}, k.prototype.getSizeTargetingKey = function() { | |
return this.sizeTargetingKey | |
}, k.prototype.getCountryCode = function() { | |
return this.countryCode | |
}, k.prototype.isUnrestrictedCountry = function() { | |
return -1 !== ["GB", "FR", "DE", "ES", "US", "CA", "AU", "IT", "SE", "BE", "JP"].indexOf(this.countryCode) | |
}, k.prototype.getAccountId = function() { | |
return this.accountId | |
}, k.prototype.getSiteId = function() { | |
return this.siteId | |
}, k.prototype.getLoopIndex = function() { | |
return this.loopIndex | |
}, k.prototype.getInView = function() { | |
return this.inView | |
}, k); | |
function k(e, t, n, r, i, a, o, s) { | |
var d = T.call(this) || this; | |
return d.adapterName = e, d.positionalId = t, d.sizeTargetingKey = n, d.countryCode = r, d.accountId = i, d.siteId = a, d.loopIndex = o, d.inView = s, d | |
} | |
function j() {} | |
var A, E, O = ((A = function(e, t) { | |
return (A = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
A(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(_, E = j), _.prototype.getCurrentEnvironment = function() { | |
return this.currentEnvironment | |
}, _.prototype.getTargetingGroups = function() { | |
return this.targetingGroups | |
}, _.prototype.isSatisfied = function() { | |
var t = this.currentEnvironment; | |
return 0 === this.targetingGroups.length || this.targetingGroups.some(function(e) { | |
return t.getAdapterName().match(/appnexus|openx/i) || t.isUnrestrictedCountry() || (h.a.bidderLimitingDefaultWaitTimes, void 0 !== e.bidLimiterWaitTimes && e.bidLimiterWaitTimes, void 0 !== e.geoBidLimiterConfig && e.geoBidLimiterConfig.forEach(function(e) { | |
-1 !== e.countryCodes.indexOf(t.getCountryCode()) && e.waitTimes | |
})), (void 0 === e.includedCountryCodes || -1 !== e.includedCountryCodes.indexOf(t.getCountryCode())) && ((void 0 === e.excludedCountryCodes || -1 === e.excludedCountryCodes.indexOf(t.getCountryCode())) && (!(void 0 !== e.includedDevices && !e.includedDevices.some(function(e) { | |
return e === t.getDevice() | |
})) && ((void 0 === e.excludedDevices || !e.excludedDevices.some(function(e) { | |
return e === t.getDevice() | |
})) && ((void 0 === e.includedAccountIds || -1 !== e.includedAccountIds.indexOf(t.getAccountId())) && ((void 0 === e.excludedAccountIds || -1 === e.excludedAccountIds.indexOf(t.getAccountId())) && ((void 0 === e.includedSiteIds || -1 !== e.includedSiteIds.indexOf(t.getSiteId())) && ((void 0 === e.excludedSiteIds || -1 === e.excludedSiteIds.indexOf(t.getAccountId())) && (!(void 0 !== e.includedDomains && !e.includedDomains.some(function(e) { | |
return !!t.getURL().match(e) | |
})) && ((void 0 === e.excludedDomains || !e.excludedDomains.some(function(e) { | |
return !!t.getURL().match(e) | |
})) && (!(void 0 !== e.maxLoopIndex && t.getLoopIndex() > e.maxLoopIndex) && (!(void 0 !== e.minLoopIndex && t.getLoopIndex() < e.minLoopIndex) && ((void 0 === e.tabActive || e.tabActive === t.isTabActive()) && ((void 0 === e.inView || e.inView === t.getInView()) && (void 0 === e.adapterTest || e.adapterTest === t.isAdapterTest())))))))))))))) | |
}) | |
}, _); | |
function _(e, t) { | |
var n = E.call(this) || this; | |
return n.currentEnvironment = e, n.targetingGroups = t, n | |
} | |
var C, x, R = o(4), | |
D = ((C = function(e, t) { | |
return (C = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
C(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(P, x = j), P.prototype.getCurrentEnvironment = function() { | |
return this.currentEnvironment | |
}, P.prototype.getTargetingGroups = function() { | |
return this.targetingGroups | |
}, P.prototype.isSatisfied = function() { | |
var t = this.currentEnvironment; | |
return 0 === this.targetingGroups.length || this.targetingGroups.some(function(e) { | |
return (void 0 === e.includedCountryCodes || -1 !== e.includedCountryCodes.indexOf(t.getCountryCode())) && ((void 0 === e.excludedCountryCodes || -1 === e.excludedCountryCodes.indexOf(t.getCountryCode())) && (!(void 0 !== e.includedDevices && !e.includedDevices.some(function(e) { | |
return e === t.getDevice() | |
})) && ((void 0 === e.excludedDevices || !e.excludedDevices.some(function(e) { | |
return e === t.getDevice() | |
})) && ((void 0 === e.includedAccountIds || -1 !== e.includedAccountIds.indexOf(t.getAccountId())) && ((void 0 === e.excludedAccountIds || -1 === e.excludedAccountIds.indexOf(t.getAccountId())) && ((void 0 === e.includedSiteIds || -1 !== e.includedSiteIds.indexOf(t.getSiteId())) && ((void 0 === e.excludedSiteIds || -1 === e.excludedSiteIds.indexOf(t.getAccountId())) && (void 0 === e.adapterTest || e.adapterTest === t.isAdapterTest())))))))) | |
}) | |
}, P); | |
function P(e, t) { | |
var n = x.call(this) || this; | |
return n.currentEnvironment = e, n.targetingGroups = t, n | |
} | |
var U, N, B = ((U = function(e, t) { | |
return (U = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
U(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(q, N = v), q.prototype.getAdapterName = function() { | |
return this.adapterName | |
}, q.prototype.getCountryCode = function() { | |
return this.countryCode | |
}, q.prototype.getAccountId = function() { | |
return this.accountId | |
}, q.prototype.getSiteId = function() { | |
return this.siteId | |
}, q); | |
function q(e, t, n, r) { | |
var i = N.call(this) || this; | |
return i.adapterName = e, i.countryCode = t, i.accountId = n, i.siteId = r, i | |
} | |
var z = o(15), | |
M = (V.prototype.isYandexEnabled = function() { | |
return "" != this.yandexTagId && this.yandexEnabled | |
}, V.prototype.isSPAMode = function() { | |
return this.spaEnabled | |
}, V.prototype.isCOPPACompliant = function() { | |
return this.coppaCompliant && "US" == this.countryCode | |
}, V.prototype.useLazyLoadAds = function() { | |
return this.lazyLoadAds | |
}, V.prototype.getCMPOption = function() { | |
return this.cmpOption | |
}, V.prototype.useThirdPartyCMP = function() { | |
return this.cmpOption === z.a.CMP_3rd_PARTY | |
}, V.prototype.getDomain = function() { | |
return this.domain | |
}, V.prototype.getYandexTagId = function() { | |
return this.yandexTagId | |
}, V.prototype.getYandexDelay = function() { | |
return this.yandexDelay | |
}, V.prototype.getLastBuilt = function() { | |
return this.built | |
}, V.prototype.getAccountId = function() { | |
return this.accountId | |
}, V.prototype.getSiteId = function() { | |
return this.siteId | |
}, V.prototype.isDFPMobileEnabled = function() { | |
return this.dfpMobileEnabled | |
}, V.prototype.isDFPDesktopEnabled = function() { | |
return this.dfpDesktopEnabled | |
}, V.prototype.isDFPEnabled = function() { | |
return f.a.isMobile() && this.dfpMobileEnabled || !f.a.isMobile() && this.dfpDesktopEnabled | |
}, V.prototype.isAdblockRecoveryEnabled = function() { | |
return this.adblockRecoveryEnabled | |
}, V.prototype.isA9Enabled = function() { | |
return !!this.isDFPEnabled() && (!!new R.a([ | |
["US", !0], | |
["JP", !0], | |
["CA", !0], | |
["GB", !0], | |
["DE", !0], | |
["ES", !0], | |
["FR", !0], | |
["IT", !0], | |
["AU", !0] | |
]).has(this.countryCode) && this.a9Enabled) | |
}, V.prototype.getDirectRatio = function() { | |
return this.directRatio | |
}, V.prototype.getRTBRatio = function() { | |
return this.rtbRatio | |
}, V.prototype.isRefreshEnabled = function() { | |
return this.enableRefresh | |
}, V.prototype.getRefreshAfter = function() { | |
return this.refreshAfter | |
}, V.prototype.getMaxRefreshes = function() { | |
return this.maxRefreshes | |
}, V.prototype.getSiteCategory = function() { | |
return this.siteCategory | |
}, V.prototype.getPlacements = function() { | |
return this.placements | |
}, V.prototype.getPlacement = function(e) { | |
return this.placements.get(e) | |
}, V.prototype.getCurrentCountryCode = function() { | |
return this.countryCode | |
}, V.prototype.isEUCountry = function() { | |
return h.a.euCountryCodes.has(this.countryCode) | |
}, V.prototype.isKidsMode = function() { | |
return "kids" === this.siteCategory | |
}, V.prototype.isUsePlacementPreloader = function() { | |
return this.usePlacementPreloader | |
}, V.prototype.getAdblockPrebidConfigForPlacements = function(e) { | |
var s = this, | |
d = new R.a, | |
c = this.getPlacements(); | |
return e.forEach(function(e, t) { | |
var n, r, i = [], | |
a = t + "-1", | |
o = t.replace(/^[\d]+\-/, ""); | |
c.has(o) && ((n = c.get(o)).getAdBlockedConnectors().forEach(function(e) { | |
var t = e.getPrebidConnectorName().toUpperCase(), | |
n = h.a.abBidderTargeting.has(t) ? h.a.abBidderTargeting.get(t) : [], | |
r = new B(e.getPrebidConnectorName().toUpperCase(), s.countryCode, s.accountId, s.siteId); | |
new D(r, n).isSatisfied() && i.push({ | |
bidder: e.getPrebidConnectorName(), | |
params: e.getAdapterParameters() | |
}) | |
}), r = n.getPlacementSizes(e).map(function(e) { | |
return [e.getWidth(), e.getHeight()] | |
}), (n.isBanner() || n.isRichMedia()) && 0 < i.length && d.set(a, { | |
code: a, | |
sizes: r, | |
mediaTypes: { | |
banner: { | |
sizes: r | |
} | |
}, | |
bids: i | |
})) | |
}), d.mapToArrayOf(function(e) { | |
return e | |
}) | |
}, V.prototype.getPrebidConfigForPlacements = function(e, u) { | |
void 0 === u && (u = 1); | |
var i = new R.a, | |
p = this.accountId, | |
l = this.siteId, | |
f = this.countryCode, | |
a = this.getPlacements(), | |
m = b.a.hasFocus(); | |
return e.forEach(function(e, o) { | |
var s, t, d = b.a.isInView(e), | |
c = [], | |
n = o + "-" + u, | |
r = o.replace(/^[\d]+\-/, ""); | |
a.has(r) ? (s = a.get(r), 1 !== u && !s.isBanner() || (s.getConnectors().forEach(function(e) { | |
var t = e.getAdapterName(), | |
n = e.getPrebidConnectorName(), | |
r = h.a.bidderTargeting.has(n.toUpperCase()) ? h.a.bidderTargeting.get(n.toUpperCase()) : [], | |
i = e.getAdapterParameters(); | |
e.getPrebidConnectorName().match(/appnexus/) && (i.keywords = { | |
hp: b.a.getTopMostParentWindow().location.pathname.match(/^[\/]?$/) ? 1 : 0, | |
"in-view": d ? 1 : 0, | |
"in-focus": m ? 1 : 0, | |
"is-viewable": d && m ? 1 : 0, | |
"loop-index": u | |
}); | |
var a = e.getSizeTargetsKey(s); | |
new O(new S(t, o, a, f, p, l, u, d), r).isSatisfied() ? c.push({ | |
bidder: n, | |
params: i, | |
_sizeTargetingKey: a | |
}) : g.a.debug("Connector " + n + " failed targeting", r) | |
}), t = s.getPlacementSizes(e).map(function(e) { | |
return [e.getWidth(), e.getHeight()] | |
}), s.isBanner() || s.isRichMedia() ? i.set(n, { | |
code: n, | |
sizes: t, | |
mediaTypes: { | |
banner: { | |
sizes: t | |
} | |
}, | |
bids: c | |
}) : i.set(n, { | |
code: n, | |
sizes: t, | |
bids: c | |
}))) : g.a.error("Placement config not found for " + r) | |
}), i.mapToArrayOf(function(e) { | |
return e | |
}) | |
}, V); | |
function V(e, t, n) { | |
void 0 === n && (n = !1), this.built = t.built, this.countryCode = e, this.accountId = t.account_id, this.siteId = t.site_id, n ? (this.dfpEnabled = !1, this.dfpMobileEnabled = !1, this.dfpDesktopEnabled = !1) : (this.dfpEnabled = void 0 !== t.dfp_enabled && t.dfp_enabled, this.dfpMobileEnabled = void 0 === t.dfp_mobile_enabled ? this.dfpEnabled : t.dfp_mobile_enabled, this.dfpDesktopEnabled = void 0 === t.dfp_desktop_enabled ? this.dfpEnabled : t.dfp_desktop_enabled), this.adblockRecoveryEnabled = void 0 !== t.adblock_recovery_enabled && t.adblock_recovery_enabled, this.a9Enabled = void 0 !== t.a9_enabled && t.a9_enabled, this.directRatio = t.direct_ratio, this.rtbRatio = t.rtb_ratio, this.enableRefresh = t.enable_refresh, this.refreshAfter = t.refresh_after, this.maxRefreshes = t.max_refreshes, this.siteCategory = t.site_category; | |
var r, i, a = new R.a; | |
t.placements.forEach(function(e) { | |
a.set(e.placement_id, new u(e)) | |
}), this.placements = a, this.yandexTagId = void 0 === t.yandex_tag_id ? "" : t.yandex_tag_id, this.yandexEnabled = void 0 !== t.yandex_enabled && t.yandex_enabled, this.yandexDelay = void 0 === t.yandex_delay ? 0 : t.yandex_delay, this.spaEnabled = void 0 !== t.is_spa && t.is_spa, this.coppaCompliant = void 0 !== t.is_coppa_compliant && t.is_coppa_compliant, this.cmpEnabled = void 0 !== t.cmp_enabled && t.cmp_enabled, void 0 === t.cmp_option ? this.cmpOption = this.cmpEnabled ? z.a.CMP_TCF_1_3 : z.a.CMP_3rd_PARTY : this.cmpOption = t.cmp_option, t.domain ? this.domain = t.domain : (r = o(28), i = b.a.getTopMostParentWindow(), this.domain = r.parse(i.location.hostname).domain), this.domain = this.domain ? this.domain.toLowerCase() : "", this.lazyLoadAds = void 0 !== t.lazy_load_ads && t.lazy_load_ads, this.usePlacementPreloader = void 0 !== t.use_placement_preloader && t.use_placement_preloader | |
} | |
var L = o(6), | |
F = o(13), | |
W = (G.getSiteId = function() { | |
return L.a.get("data-site-id") | |
}, G.getEnvironment = function() { | |
return this.environment | |
}, G.get = function(e, t) { | |
return this.headerBiddingConfig instanceof M ? e(this.headerBiddingConfig) : this.fetchHeaderBiddingConfig(e, t) | |
}, G.fetchHeaderBiddingConfig = function(o, r, s) { | |
var d = this; | |
void 0 === s && (s = h.a.configEndpoints), g.a.info("Fetching header-bidding config"); | |
var e = s.getEndpoint(G.getSiteId()); | |
F.a.go({ | |
method: F.a.RequestMethod.GET, | |
url: e, | |
timeout: h.a.configTimeoutMS, | |
success: function(e, t, n) { | |
var r = "ALL", | |
i = "1" == n.getResponseHeader("x-bl"); | |
null !== n.getResponseHeader("X-Geo") && n.getResponseHeader("X-Geo").match(/^[A-Z]{2}$/) ? r = n.getResponseHeader("X-Geo") : null !== n.getResponseHeader("cdn-requestcountrycode") && n.getResponseHeader("cdn-requestcountrycode").match(/^[A-Z]{2}$/) && (r = n.getResponseHeader("cdn-requestcountrycode")); | |
var a = JSON.parse(atob(t.slice(h.a.packingLength))); | |
d.environment = s.environment, o(new M(r, a, i)) | |
}, | |
error: function(e, t, n) { | |
s.hasAlternativeEndpointConfig() ? d.fetchHeaderBiddingConfig(o, r, s.getAlternativeEndpoint()) : (g.a.error("Failed to fetch header bidding config"), r()) | |
} | |
}) | |
}, G); | |
function G() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return i | |
}); | |
var r = n(9), | |
i = (a.prototype.getAdapterCPM = function() { | |
return this.adapterCPM | |
}, a.prototype.getAdapterName = function() { | |
return this.adapterName | |
}, a.prototype.getAdapterTag = function() { | |
return this.adapterTag | |
}, a.prototype.getLinkedPlacementId = function() { | |
return this.linkedPlacementId | |
}, a.prototype.getOrderIndex = function() { | |
return this.orderIndex | |
}, a.prototype.getTargetDevice = function() { | |
return this.targetDevice | |
}, a.prototype.isTargetingMobileOnly = function() { | |
return "mobile" === this.targetDevice | |
}, a.prototype.isTargetingDesktopOnly = function() { | |
return "desktop" === this.targetDevice | |
}, a.prototype.isTargetingAnyDevice = function() { | |
return "all" === this.targetDevice | |
}, a.prototype.getTargetCountryCode = function() { | |
return this.targetCountryCode | |
}, a.prototype.getTargetSize = function() { | |
return this.targetSize | |
}, a); | |
function a(e) { | |
this.adapterCPM = Number(e.adapter_cpm), this.adapterName = e.adapter_name, this.adapterTag = e.adapter_tag, this.linkedPlacementId = e.linked_placement_id, this.orderIndex = Number(e.order_index), this.targetDevice = e.target_device, this.targetCountryCode = e.target_geo, this.targetSize = new r.a(e.target_size) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r, i; | |
n.d(t, "a", function() { | |
return r | |
}), (i = r = r || {}).ALL = "ALL", i.MOBILE = "MOBILE", i.DESKTOP = "DESKTOP" | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}); | |
var r = (i.getHashCode = function(e) { | |
if (0 === e.length) return 0; | |
for (var t = 0, n = 0; n < e.length; n++) { | |
t = (t << 5) - t + e.charCodeAt(n); | |
t |= 0 | |
} | |
return t | |
}, i.getHash = function(e) { | |
return this.getHashCode(e).toString(16) | |
}, i); | |
function i() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return i | |
}); | |
var r = n(1), | |
i = (a.getTopURL = function() { | |
return r.a.getTopMostParentWindow().location.href | |
}, a); | |
function a() {} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return i | |
}); | |
var r = function() { | |
for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; | |
for (var r = Array(e), i = 0, t = 0; t < n; t++) | |
for (var a = arguments[t], o = 0, s = a.length; o < s; o++, i++) r[i] = a[o]; | |
return r | |
}, | |
i = (a.prototype.sort = function(o) { | |
var s = r(this.data); | |
if (this.length() < 1) return new a(s); | |
var d = function(e, t) { | |
if (!(t - e < 1)) { | |
for (var n, r = s[t], i = e, a = e; a < t; a++) { | |
-1 === o(s[a], r) && (i !== a && (n = s[i], s[i] = s[a], s[a] = n), i++) | |
} | |
s[t] = s[i], s[i] = r, d(e, i - 1), d(i + 1, t) | |
} | |
}; | |
return d(0, this.length() - 1), this.data = s, new a(s) | |
}, a.prototype.findOne = function(e) { | |
for (var t = 0; t < this.length(); t++) | |
if (e(this.data[t])) return this.data[t]; | |
return null | |
}, a.prototype.get = function(e) { | |
return this.data[e] | |
}, a.prototype.push = function(e) { | |
this.data.push(e) | |
}, a.prototype.pop = function() { | |
return this.data.shift() | |
}, a.prototype.clear = function() { | |
this.data = [] | |
}, a.prototype.length = function() { | |
return this.data.length | |
}, a.prototype.asArray = function() { | |
return r(this.data) | |
}, a); | |
function a(e) { | |
var t = this; | |
this.data = [], void 0 !== e && e.forEach(function(e) { | |
return t.data.push(e) | |
}) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return i | |
}); | |
var r = n(1), | |
i = (a.emit = function(e, t) { | |
var n = new CustomEvent(e, { | |
bubbles: !0, | |
detail: t | |
}); | |
this.rootElement.dispatchEvent(n) | |
}, a.on = function(e, t) { | |
this.rootElement.addEventListener(e, function(e) { | |
return t(e.detail) | |
}) | |
}, a.removeListener = function(e, t) { | |
this.rootElement.removeEventListener(e, function(e) { | |
return t(e.detail) | |
}) | |
}, a.rootElement = r.a.getTopMostParentBody(), a); | |
function a() {} | |
}, function(sn, exports, e) { | |
var dn; | |
/*! | |
* jQuery JavaScript Library v3.5.1 | |
* https://jquery.com/ | |
* | |
* Includes Sizzle.js | |
* https://sizzlejs.com/ | |
* | |
* Copyright JS Foundation and other contributors | |
* Released under the MIT license | |
* https://jquery.org/license | |
* | |
* Date: 2020-05-04T22:49Z | |
*/ | |
! function(e, t) { | |
"use strict"; | |
"object" == typeof sn.exports ? sn.exports = e.document ? t(e, !0) : function(e) { | |
if (!e.document) throw new Error("jQuery requires a window with a document"); | |
return t(e) | |
} : t(e) | |
}("undefined" != typeof window ? window : this, function(S, e) { | |
"use strict"; | |
function g(e) { | |
return null != e && e === e.window | |
} | |
var t = [], | |
r = Object.getPrototypeOf, | |
s = t.slice, | |
h = t.flat ? function(e) { | |
return t.flat.call(e) | |
} : function(e) { | |
return t.concat.apply([], e) | |
}, | |
d = t.push, | |
i = t.indexOf, | |
n = {}, | |
a = n.toString, | |
b = n.hasOwnProperty, | |
o = b.toString, | |
c = o.call(Object), | |
y = {}, | |
v = function(e) { | |
return "function" == typeof e && "number" != typeof e.nodeType | |
}, | |
k = S.document, | |
u = { | |
type: !0, | |
src: !0, | |
nonce: !0, | |
noModule: !0 | |
}; | |
function w(e, t, n) { | |
var r, i, a = (n = n || k).createElement("script"); | |
if (a.text = e, t) | |
for (r in u)(i = t[r] || t.getAttribute && t.getAttribute(r)) && a.setAttribute(r, i); | |
n.head.appendChild(a).parentNode.removeChild(a) | |
} | |
function I(e) { | |
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[a.call(e)] || "object" : typeof e | |
} | |
var j = function(e, t) { | |
return new j.fn.init(e, t) | |
}; | |
function p(e) { | |
var t = !!e && "length" in e && e.length, | |
n = I(e); | |
return !v(e) && !g(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e) | |
} | |
j.fn = j.prototype = { | |
jquery: "3.5.1", | |
constructor: j, | |
length: 0, | |
toArray: function() { | |
return s.call(this) | |
}, | |
get: function(e) { | |
return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e] | |
}, | |
pushStack: function(e) { | |
var t = j.merge(this.constructor(), e); | |
return t.prevObject = this, t | |
}, | |
each: function(e) { | |
return j.each(this, e) | |
}, | |
map: function(n) { | |
return this.pushStack(j.map(this, function(e, t) { | |
return n.call(e, t, e) | |
})) | |
}, | |
slice: function() { | |
return this.pushStack(s.apply(this, arguments)) | |
}, | |
first: function() { | |
return this.eq(0) | |
}, | |
last: function() { | |
return this.eq(-1) | |
}, | |
even: function() { | |
return this.pushStack(j.grep(this, function(e, t) { | |
return (t + 1) % 2 | |
})) | |
}, | |
odd: function() { | |
return this.pushStack(j.grep(this, function(e, t) { | |
return t % 2 | |
})) | |
}, | |
eq: function(e) { | |
var t = this.length, | |
n = +e + (e < 0 ? t : 0); | |
return this.pushStack(0 <= n && n < t ? [this[n]] : []) | |
}, | |
end: function() { | |
return this.prevObject || this.constructor() | |
}, | |
push: d, | |
sort: t.sort, | |
splice: t.splice | |
}, j.extend = j.fn.extend = function() { | |
var e, t, n, r, i, a, o = arguments[0] || {}, | |
s = 1, | |
d = arguments.length, | |
c = !1; | |
for ("boolean" == typeof o && (c = o, o = arguments[s] || {}, s++), "object" == typeof o || v(o) || (o = {}), s === d && (o = this, s--); s < d; s++) | |
if (null != (e = arguments[s])) | |
for (t in e) r = e[t], "__proto__" !== t && o !== r && (c && r && (j.isPlainObject(r) || (i = Array.isArray(r))) ? (n = o[t], a = i && !Array.isArray(n) ? [] : i || j.isPlainObject(n) ? n : {}, i = !1, o[t] = j.extend(c, a, r)) : void 0 !== r && (o[t] = r)); | |
return o | |
}, j.extend({ | |
expando: "jQuery" + ("3.5.1" + Math.random()).replace(/\D/g, ""), | |
isReady: !0, | |
error: function(e) { | |
throw new Error(e) | |
}, | |
noop: function() {}, | |
isPlainObject: function(e) { | |
var t, n; | |
return !(!e || "[object Object]" !== a.call(e)) && (!(t = r(e)) || "function" == typeof(n = b.call(t, "constructor") && t.constructor) && o.call(n) === c) | |
}, | |
isEmptyObject: function(e) { | |
for (var t in e) return !1; | |
return !0 | |
}, | |
globalEval: function(e, t, n) { | |
w(e, { | |
nonce: t && t.nonce | |
}, n) | |
}, | |
each: function(e, t) { | |
var n, r = 0; | |
if (p(e)) | |
for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++); | |
else | |
for (r in e) | |
if (!1 === t.call(e[r], r, e[r])) break; | |
return e | |
}, | |
makeArray: function(e, t) { | |
var n = t || []; | |
return null != e && (p(Object(e)) ? j.merge(n, "string" == typeof e ? [e] : e) : d.call(n, e)), n | |
}, | |
inArray: function(e, t, n) { | |
return null == t ? -1 : i.call(t, e, n) | |
}, | |
merge: function(e, t) { | |
for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; | |
return e.length = i, e | |
}, | |
grep: function(e, t, n) { | |
for (var r = [], i = 0, a = e.length, o = !n; i < a; i++) !t(e[i], i) != o && r.push(e[i]); | |
return r | |
}, | |
map: function(e, t, n) { | |
var r, i, a = 0, | |
o = []; | |
if (p(e)) | |
for (r = e.length; a < r; a++) null != (i = t(e[a], a, n)) && o.push(i); | |
else | |
for (a in e) null != (i = t(e[a], a, n)) && o.push(i); | |
return h(o) | |
}, | |
guid: 1, | |
support: y | |
}), "function" == typeof Symbol && (j.fn[Symbol.iterator] = t[Symbol.iterator]), j.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) { | |
n["[object " + t + "]"] = t.toLowerCase() | |
}); | |
var l = | |
/*! | |
* Sizzle CSS Selector Engine v2.3.5 | |
* https://sizzlejs.com/ | |
* | |
* Copyright JS Foundation and other contributors | |
* Released under the MIT license | |
* https://js.foundation/ | |
* | |
* Date: 2020-03-14 | |
*/ | |
function(n) { | |
function p(e, t) { | |
var n = "0x" + e.slice(1) - 65536; | |
return t || (n < 0 ? String.fromCharCode(65536 + n) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320)) | |
} | |
function i() { | |
T() | |
} | |
var e, f, w, a, o, m, l, g, I, d, c, T, S, s, k, h, u, b, y, j = "sizzle" + +new Date, | |
v = n.document, | |
A = 0, | |
r = 0, | |
E = ce(), | |
O = ce(), | |
_ = ce(), | |
C = ce(), | |
x = function(e, t) { | |
return e === t && (c = !0), 0 | |
}, | |
R = {}.hasOwnProperty, | |
t = [], | |
D = t.pop, | |
P = t.push, | |
U = t.push, | |
N = t.slice, | |
B = function(e, t) { | |
for (var n = 0, r = e.length; n < r; n++) | |
if (e[n] === t) return n; | |
return -1 | |
}, | |
q = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", | |
z = "[\\x20\\t\\r\\n\\f]", | |
M = "(?:\\\\[\\da-fA-F]{1,6}" + z + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", | |
V = "\\[" + z + "*(" + M + ")(?:" + z + "*([*^$|!~]?=)" + z + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + M + "))|)" + z + "*\\]", | |
L = ":(" + M + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + V + ")*)|.*)\\)|)", | |
F = new RegExp(z + "+", "g"), | |
W = new RegExp("^" + z + "+|((?:^|[^\\\\])(?:\\\\.)*)" + z + "+$", "g"), | |
G = new RegExp("^" + z + "*," + z + "*"), | |
H = new RegExp("^" + z + "*([>+~]|" + z + ")" + z + "*"), | |
J = new RegExp(z + "|>"), | |
Y = new RegExp(L), | |
K = new RegExp("^" + M + "$"), | |
X = { | |
ID: new RegExp("^#(" + M + ")"), | |
CLASS: new RegExp("^\\.(" + M + ")"), | |
TAG: new RegExp("^(" + M + "|[*])"), | |
ATTR: new RegExp("^" + V), | |
PSEUDO: new RegExp("^" + L), | |
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + z + "*(even|odd|(([+-]|)(\\d*)n|)" + z + "*(?:([+-]|)" + z + "*(\\d+)|))" + z + "*\\)|)", "i"), | |
bool: new RegExp("^(?:" + q + ")$", "i"), | |
needsContext: new RegExp("^" + z + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + z + "*((?:-\\d)?\\d*)" + z + "*\\)|)(?=[^-]|$)", "i") | |
}, | |
Q = /HTML$/i, | |
Z = /^(?:input|select|textarea|button)$/i, | |
ee = /^h\d$/i, | |
te = /^[^{]+\{\s*\[native \w/, | |
ne = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, | |
re = /[+~]/, | |
ie = new RegExp("\\\\[\\da-fA-F]{1,6}" + z + "?|\\\\([^\\r\\n\\f])", "g"), | |
ae = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, | |
oe = function(e, t) { | |
return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e | |
}, | |
se = ve(function(e) { | |
return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase() | |
}, { | |
dir: "parentNode", | |
next: "legend" | |
}); | |
try { | |
U.apply(t = N.call(v.childNodes), v.childNodes), t[v.childNodes.length].nodeType | |
} catch (e) { | |
U = { | |
apply: t.length ? function(e, t) { | |
P.apply(e, N.call(t)) | |
} : function(e, t) { | |
for (var n = e.length, r = 0; e[n++] = t[r++];); | |
e.length = n - 1 | |
} | |
} | |
} | |
function de(t, e, n, r) { | |
var i, a, o, s, d, c, u, p = e && e.ownerDocument, | |
l = e ? e.nodeType : 9; | |
if (n = n || [], "string" != typeof t || !t || 1 !== l && 9 !== l && 11 !== l) return n; | |
if (!r && (T(e), e = e || S, k)) { | |
if (11 !== l && (d = ne.exec(t))) | |
if (i = d[1]) { | |
if (9 === l) { | |
if (!(o = e.getElementById(i))) return n; | |
if (o.id === i) return n.push(o), n | |
} else if (p && (o = p.getElementById(i)) && y(e, o) && o.id === i) return n.push(o), n | |
} else { | |
if (d[2]) return U.apply(n, e.getElementsByTagName(t)), n; | |
if ((i = d[3]) && f.getElementsByClassName && e.getElementsByClassName) return U.apply(n, e.getElementsByClassName(i)), n | |
} if (f.qsa && !C[t + " "] && (!h || !h.test(t)) && (1 !== l || "object" !== e.nodeName.toLowerCase())) { | |
if (u = t, p = e, 1 === l && (J.test(t) || H.test(t))) { | |
for ((p = re.test(t) && he(e.parentNode) || e) === e && f.scope || ((s = e.getAttribute("id")) ? s = s.replace(ae, oe) : e.setAttribute("id", s = j)), a = (c = m(t)).length; a--;) c[a] = (s ? "#" + s : ":scope") + " " + ye(c[a]); | |
u = c.join(",") | |
} | |
try { | |
return U.apply(n, p.querySelectorAll(u)), n | |
} catch (e) { | |
C(t, !0) | |
} finally { | |
s === j && e.removeAttribute("id") | |
} | |
} | |
} | |
return g(t.replace(W, "$1"), e, n, r) | |
} | |
function ce() { | |
var n = []; | |
function r(e, t) { | |
return n.push(e + " ") > w.cacheLength && delete r[n.shift()], r[e + " "] = t | |
} | |
return r | |
} | |
function ue(e) { | |
return e[j] = !0, e | |
} | |
function pe(e) { | |
var t = S.createElement("fieldset"); | |
try { | |
return !!e(t) | |
} catch (e) { | |
return !1 | |
} finally { | |
t.parentNode && t.parentNode.removeChild(t), t = null | |
} | |
} | |
function le(e, t) { | |
for (var n = e.split("|"), r = n.length; r--;) w.attrHandle[n[r]] = t | |
} | |
function fe(e, t) { | |
var n = t && e, | |
r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; | |
if (r) return r; | |
if (n) | |
for (; n = n.nextSibling;) | |
if (n === t) return -1; | |
return e ? 1 : -1 | |
} | |
function me(t) { | |
return function(e) { | |
return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && se(e) === t : e.disabled === t : "label" in e && e.disabled === t | |
} | |
} | |
function ge(o) { | |
return ue(function(a) { | |
return a = +a, ue(function(e, t) { | |
for (var n, r = o([], e.length, a), i = r.length; i--;) e[n = r[i]] && (e[n] = !(t[n] = e[n])) | |
}) | |
}) | |
} | |
function he(e) { | |
return e && void 0 !== e.getElementsByTagName && e | |
} | |
for (e in f = de.support = {}, o = de.isXML = function(e) { | |
var t = e.namespaceURI, | |
n = (e.ownerDocument || e).documentElement; | |
return !Q.test(t || n && n.nodeName || "HTML") | |
}, T = de.setDocument = function(e) { | |
var t, n, r = e ? e.ownerDocument || e : v; | |
return r != S && 9 === r.nodeType && r.documentElement && (s = (S = r).documentElement, k = !o(S), v != S && (n = S.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", i, !1) : n.attachEvent && n.attachEvent("onunload", i)), f.scope = pe(function(e) { | |
return s.appendChild(e).appendChild(S.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length | |
}), f.attributes = pe(function(e) { | |
return e.className = "i", !e.getAttribute("className") | |
}), f.getElementsByTagName = pe(function(e) { | |
return e.appendChild(S.createComment("")), !e.getElementsByTagName("*").length | |
}), f.getElementsByClassName = te.test(S.getElementsByClassName), f.getById = pe(function(e) { | |
return s.appendChild(e).id = j, !S.getElementsByName || !S.getElementsByName(j).length | |
}), f.getById ? (w.filter.ID = function(e) { | |
var t = e.replace(ie, p); | |
return function(e) { | |
return e.getAttribute("id") === t | |
} | |
}, w.find.ID = function(e, t) { | |
if (void 0 !== t.getElementById && k) { | |
var n = t.getElementById(e); | |
return n ? [n] : [] | |
} | |
}) : (w.filter.ID = function(e) { | |
var n = e.replace(ie, p); | |
return function(e) { | |
var t = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); | |
return t && t.value === n | |
} | |
}, w.find.ID = function(e, t) { | |
if (void 0 !== t.getElementById && k) { | |
var n, r, i, a = t.getElementById(e); | |
if (a) { | |
if ((n = a.getAttributeNode("id")) && n.value === e) return [a]; | |
for (i = t.getElementsByName(e), r = 0; a = i[r++];) | |
if ((n = a.getAttributeNode("id")) && n.value === e) return [a] | |
} | |
return [] | |
} | |
}), w.find.TAG = f.getElementsByTagName ? function(e, t) { | |
return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : f.qsa ? t.querySelectorAll(e) : void 0 | |
} : function(e, t) { | |
var n, r = [], | |
i = 0, | |
a = t.getElementsByTagName(e); | |
if ("*" !== e) return a; | |
for (; n = a[i++];) 1 === n.nodeType && r.push(n); | |
return r | |
}, w.find.CLASS = f.getElementsByClassName && function(e, t) { | |
if (void 0 !== t.getElementsByClassName && k) return t.getElementsByClassName(e) | |
}, u = [], h = [], (f.qsa = te.test(S.querySelectorAll)) && (pe(function(e) { | |
var t; | |
s.appendChild(e).innerHTML = "<a id='" + j + "'></a><select id='" + j + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && h.push("[*^$]=" + z + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || h.push("\\[" + z + "*(?:value|" + q + ")"), e.querySelectorAll("[id~=" + j + "-]").length || h.push("~="), (t = S.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || h.push("\\[" + z + "*name" + z + "*=" + z + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || h.push(":checked"), e.querySelectorAll("a#" + j + "+*").length || h.push(".#.+[+~]"), e.querySelectorAll("\\\f"), h.push("[\\r\\n\\f]") | |
}), pe(function(e) { | |
e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; | |
var t = S.createElement("input"); | |
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && h.push("name" + z + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && h.push(":enabled", ":disabled"), s.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && h.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), h.push(",.*:") | |
})), (f.matchesSelector = te.test(b = s.matches || s.webkitMatchesSelector || s.mozMatchesSelector || s.oMatchesSelector || s.msMatchesSelector)) && pe(function(e) { | |
f.disconnectedMatch = b.call(e, "*"), b.call(e, "[s!='']:x"), u.push("!=", L) | |
}), h = h.length && new RegExp(h.join("|")), u = u.length && new RegExp(u.join("|")), t = te.test(s.compareDocumentPosition), y = t || te.test(s.contains) ? function(e, t) { | |
var n = 9 === e.nodeType ? e.documentElement : e, | |
r = t && t.parentNode; | |
return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))) | |
} : function(e, t) { | |
if (t) | |
for (; t = t.parentNode;) | |
if (t === e) return !0; | |
return !1 | |
}, x = t ? function(e, t) { | |
if (e === t) return c = !0, 0; | |
var n = !e.compareDocumentPosition - !t.compareDocumentPosition; | |
return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !f.sortDetached && t.compareDocumentPosition(e) === n ? e == S || e.ownerDocument == v && y(v, e) ? -1 : t == S || t.ownerDocument == v && y(v, t) ? 1 : d ? B(d, e) - B(d, t) : 0 : 4 & n ? -1 : 1) | |
} : function(e, t) { | |
if (e === t) return c = !0, 0; | |
var n, r = 0, | |
i = e.parentNode, | |
a = t.parentNode, | |
o = [e], | |
s = [t]; | |
if (!i || !a) return e == S ? -1 : t == S ? 1 : i ? -1 : a ? 1 : d ? B(d, e) - B(d, t) : 0; | |
if (i === a) return fe(e, t); | |
for (n = e; n = n.parentNode;) o.unshift(n); | |
for (n = t; n = n.parentNode;) s.unshift(n); | |
for (; o[r] === s[r];) r++; | |
return r ? fe(o[r], s[r]) : o[r] == v ? -1 : s[r] == v ? 1 : 0 | |
}), S | |
}, de.matches = function(e, t) { | |
return de(e, null, null, t) | |
}, de.matchesSelector = function(e, t) { | |
if (T(e), f.matchesSelector && k && !C[t + " "] && (!u || !u.test(t)) && (!h || !h.test(t))) try { | |
var n = b.call(e, t); | |
if (n || f.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n | |
} catch (e) { | |
C(t, !0) | |
} | |
return 0 < de(t, S, null, [e]).length | |
}, de.contains = function(e, t) { | |
return (e.ownerDocument || e) != S && T(e), y(e, t) | |
}, de.attr = function(e, t) { | |
(e.ownerDocument || e) != S && T(e); | |
var n = w.attrHandle[t.toLowerCase()], | |
r = n && R.call(w.attrHandle, t.toLowerCase()) ? n(e, t, !k) : void 0; | |
return void 0 !== r ? r : f.attributes || !k ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null | |
}, de.escape = function(e) { | |
return (e + "").replace(ae, oe) | |
}, de.error = function(e) { | |
throw new Error("Syntax error, unrecognized expression: " + e) | |
}, de.uniqueSort = function(e) { | |
var t, n = [], | |
r = 0, | |
i = 0; | |
if (c = !f.detectDuplicates, d = !f.sortStable && e.slice(0), e.sort(x), c) { | |
for (; t = e[i++];) t === e[i] && (r = n.push(i)); | |
for (; r--;) e.splice(n[r], 1) | |
} | |
return d = null, e | |
}, a = de.getText = function(e) { | |
var t, n = "", | |
r = 0, | |
i = e.nodeType; | |
if (i) { | |
if (1 === i || 9 === i || 11 === i) { | |
if ("string" == typeof e.textContent) return e.textContent; | |
for (e = e.firstChild; e; e = e.nextSibling) n += a(e) | |
} else if (3 === i || 4 === i) return e.nodeValue | |
} else | |
for (; t = e[r++];) n += a(t); | |
return n | |
}, (w = de.selectors = { | |
cacheLength: 50, | |
createPseudo: ue, | |
match: X, | |
attrHandle: {}, | |
find: {}, | |
relative: { | |
">": { | |
dir: "parentNode", | |
first: !0 | |
}, | |
" ": { | |
dir: "parentNode" | |
}, | |
"+": { | |
dir: "previousSibling", | |
first: !0 | |
}, | |
"~": { | |
dir: "previousSibling" | |
} | |
}, | |
preFilter: { | |
ATTR: function(e) { | |
return e[1] = e[1].replace(ie, p), e[3] = (e[3] || e[4] || e[5] || "").replace(ie, p), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) | |
}, | |
CHILD: function(e) { | |
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || de.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && de.error(e[0]), e | |
}, | |
PSEUDO: function(e) { | |
var t, n = !e[6] && e[2]; | |
return X.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && Y.test(n) && (t = m(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) | |
} | |
}, | |
filter: { | |
TAG: function(e) { | |
var t = e.replace(ie, p).toLowerCase(); | |
return "*" === e ? function() { | |
return !0 | |
} : function(e) { | |
return e.nodeName && e.nodeName.toLowerCase() === t | |
} | |
}, | |
CLASS: function(e) { | |
var t = E[e + " "]; | |
return t || (t = new RegExp("(^|" + z + ")" + e + "(" + z + "|$)")) && E(e, function(e) { | |
return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "") | |
}) | |
}, | |
ATTR: function(n, r, i) { | |
return function(e) { | |
var t = de.attr(e, n); | |
return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(F, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-")) | |
} | |
}, | |
CHILD: function(m, e, t, g, h) { | |
var b = "nth" !== m.slice(0, 3), | |
y = "last" !== m.slice(-4), | |
v = "of-type" === e; | |
return 1 === g && 0 === h ? function(e) { | |
return !!e.parentNode | |
} : function(e, t, n) { | |
var r, i, a, o, s, d, c = b != y ? "nextSibling" : "previousSibling", | |
u = e.parentNode, | |
p = v && e.nodeName.toLowerCase(), | |
l = !n && !v, | |
f = !1; | |
if (u) { | |
if (b) { | |
for (; c;) { | |
for (o = e; o = o[c];) | |
if (v ? o.nodeName.toLowerCase() === p : 1 === o.nodeType) return !1; | |
d = c = "only" === m && !d && "nextSibling" | |
} | |
return !0 | |
} | |
if (d = [y ? u.firstChild : u.lastChild], y && l) { | |
for (f = (s = (r = (i = (a = (o = u)[j] || (o[j] = {}))[o.uniqueID] || (a[o.uniqueID] = {}))[m] || [])[0] === A && r[1]) && r[2], o = s && u.childNodes[s]; o = ++s && o && o[c] || (f = s = 0) || d.pop();) | |
if (1 === o.nodeType && ++f && o === e) { | |
i[m] = [A, s, f]; | |
break | |
} | |
} else if (l && (f = s = (r = (i = (a = (o = e)[j] || (o[j] = {}))[o.uniqueID] || (a[o.uniqueID] = {}))[m] || [])[0] === A && r[1]), !1 === f) | |
for (; | |
(o = ++s && o && o[c] || (f = s = 0) || d.pop()) && ((v ? o.nodeName.toLowerCase() !== p : 1 !== o.nodeType) || !++f || (l && ((i = (a = o[j] || (o[j] = {}))[o.uniqueID] || (a[o.uniqueID] = {}))[m] = [A, f]), o !== e));); | |
return (f -= h) === g || f % g == 0 && 0 <= f / g | |
} | |
} | |
}, | |
PSEUDO: function(e, a) { | |
var t, o = w.pseudos[e] || w.setFilters[e.toLowerCase()] || de.error("unsupported pseudo: " + e); | |
return o[j] ? o(a) : 1 < o.length ? (t = [e, e, "", a], w.setFilters.hasOwnProperty(e.toLowerCase()) ? ue(function(e, t) { | |
for (var n, r = o(e, a), i = r.length; i--;) e[n = B(e, r[i])] = !(t[n] = r[i]) | |
}) : function(e) { | |
return o(e, 0, t) | |
}) : o | |
} | |
}, | |
pseudos: { | |
not: ue(function(e) { | |
var r = [], | |
i = [], | |
s = l(e.replace(W, "$1")); | |
return s[j] ? ue(function(e, t, n, r) { | |
for (var i, a = s(e, null, r, []), o = e.length; o--;)(i = a[o]) && (e[o] = !(t[o] = i)) | |
}) : function(e, t, n) { | |
return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop() | |
} | |
}), | |
has: ue(function(t) { | |
return function(e) { | |
return 0 < de(t, e).length | |
} | |
}), | |
contains: ue(function(t) { | |
return t = t.replace(ie, p), | |
function(e) { | |
return -1 < (e.textContent || a(e)).indexOf(t) | |
} | |
}), | |
lang: ue(function(n) { | |
return K.test(n || "") || de.error("unsupported lang: " + n), n = n.replace(ie, p).toLowerCase(), | |
function(e) { | |
var t; | |
do { | |
if (t = k ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") | |
} while ((e = e.parentNode) && 1 === e.nodeType); | |
return !1 | |
} | |
}), | |
target: function(e) { | |
var t = n.location && n.location.hash; | |
return t && t.slice(1) === e.id | |
}, | |
root: function(e) { | |
return e === s | |
}, | |
focus: function(e) { | |
return e === S.activeElement && (!S.hasFocus || S.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) | |
}, | |
enabled: me(!1), | |
disabled: me(!0), | |
checked: function(e) { | |
var t = e.nodeName.toLowerCase(); | |
return "input" === t && !!e.checked || "option" === t && !!e.selected | |
}, | |
selected: function(e) { | |
return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected | |
}, | |
empty: function(e) { | |
for (e = e.firstChild; e; e = e.nextSibling) | |
if (e.nodeType < 6) return !1; | |
return !0 | |
}, | |
parent: function(e) { | |
return !w.pseudos.empty(e) | |
}, | |
header: function(e) { | |
return ee.test(e.nodeName) | |
}, | |
input: function(e) { | |
return Z.test(e.nodeName) | |
}, | |
button: function(e) { | |
var t = e.nodeName.toLowerCase(); | |
return "input" === t && "button" === e.type || "button" === t | |
}, | |
text: function(e) { | |
var t; | |
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) | |
}, | |
first: ge(function() { | |
return [0] | |
}), | |
last: ge(function(e, t) { | |
return [t - 1] | |
}), | |
eq: ge(function(e, t, n) { | |
return [n < 0 ? n + t : n] | |
}), | |
even: ge(function(e, t) { | |
for (var n = 0; n < t; n += 2) e.push(n); | |
return e | |
}), | |
odd: ge(function(e, t) { | |
for (var n = 1; n < t; n += 2) e.push(n); | |
return e | |
}), | |
lt: ge(function(e, t, n) { | |
for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r); | |
return e | |
}), | |
gt: ge(function(e, t, n) { | |
for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r); | |
return e | |
}) | |
} | |
}).pseudos.nth = w.pseudos.eq, { | |
radio: !0, | |
checkbox: !0, | |
file: !0, | |
password: !0, | |
image: !0 | |
}) w.pseudos[e] = function(t) { | |
return function(e) { | |
return "input" === e.nodeName.toLowerCase() && e.type === t | |
} | |
}(e); | |
for (e in { | |
submit: !0, | |
reset: !0 | |
}) w.pseudos[e] = function(n) { | |
return function(e) { | |
var t = e.nodeName.toLowerCase(); | |
return ("input" === t || "button" === t) && e.type === n | |
} | |
}(e); | |
function be() {} | |
function ye(e) { | |
for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; | |
return r | |
} | |
function ve(s, e, t) { | |
var d = e.dir, | |
c = e.next, | |
u = c || d, | |
p = t && "parentNode" === u, | |
l = r++; | |
return e.first ? function(e, t, n) { | |
for (; e = e[d];) | |
if (1 === e.nodeType || p) return s(e, t, n); | |
return !1 | |
} : function(e, t, n) { | |
var r, i, a, o = [A, l]; | |
if (n) { | |
for (; e = e[d];) | |
if ((1 === e.nodeType || p) && s(e, t, n)) return !0 | |
} else | |
for (; e = e[d];) | |
if (1 === e.nodeType || p) | |
if (i = (a = e[j] || (e[j] = {}))[e.uniqueID] || (a[e.uniqueID] = {}), c && c === e.nodeName.toLowerCase()) e = e[d] || e; | |
else { | |
if ((r = i[u]) && r[0] === A && r[1] === l) return o[2] = r[2]; | |
if ((i[u] = o)[2] = s(e, t, n)) return !0 | |
} return !1 | |
} | |
} | |
function we(i) { | |
return 1 < i.length ? function(e, t, n) { | |
for (var r = i.length; r--;) | |
if (!i[r](e, t, n)) return !1; | |
return !0 | |
} : i[0] | |
} | |
function Ie(e, t, n, r, i) { | |
for (var a, o = [], s = 0, d = e.length, c = null != t; s < d; s++)(a = e[s]) && (n && !n(a, r, i) || (o.push(a), c && t.push(s))); | |
return o | |
} | |
function Te(f, m, g, h, b, e) { | |
return h && !h[j] && (h = Te(h)), b && !b[j] && (b = Te(b, e)), ue(function(e, t, n, r) { | |
var i, a, o, s = [], | |
d = [], | |
c = t.length, | |
u = e || function(e, t, n) { | |
for (var r = 0, i = t.length; r < i; r++) de(e, t[r], n); | |
return n | |
}(m || "*", n.nodeType ? [n] : n, []), | |
p = !f || !e && m ? u : Ie(u, s, f, n, r), | |
l = g ? b || (e ? f : c || h) ? [] : t : p; | |
if (g && g(p, l, n, r), h) | |
for (i = Ie(l, d), h(i, [], n, r), a = i.length; a--;)(o = i[a]) && (l[d[a]] = !(p[d[a]] = o)); | |
if (e) { | |
if (b || f) { | |
if (b) { | |
for (i = [], a = l.length; a--;)(o = l[a]) && i.push(p[a] = o); | |
b(null, l = [], i, r) | |
} | |
for (a = l.length; a--;)(o = l[a]) && -1 < (i = b ? B(e, o) : s[a]) && (e[i] = !(t[i] = o)) | |
} | |
} else l = Ie(l === t ? l.splice(c, l.length) : l), b ? b(null, t, l, r) : U.apply(t, l) | |
}) | |
} | |
function Se(h, b) { | |
function e(e, t, n, r, i) { | |
var a, o, s, d = 0, | |
c = "0", | |
u = e && [], | |
p = [], | |
l = I, | |
f = e || v && w.find.TAG("*", i), | |
m = A += null == l ? 1 : Math.random() || .1, | |
g = f.length; | |
for (i && (I = t == S || t || i); c !== g && null != (a = f[c]); c++) { | |
if (v && a) { | |
for (o = 0, t || a.ownerDocument == S || (T(a), n = !k); s = h[o++];) | |
if (s(a, t || S, n)) { | |
r.push(a); | |
break | |
} i && (A = m) | |
} | |
y && ((a = !s && a) && d--, e && u.push(a)) | |
} | |
if (d += c, y && c !== d) { | |
for (o = 0; s = b[o++];) s(u, p, t, n); | |
if (e) { | |
if (0 < d) | |
for (; c--;) u[c] || p[c] || (p[c] = D.call(r)); | |
p = Ie(p) | |
} | |
U.apply(r, p), i && !e && 0 < p.length && 1 < d + b.length && de.uniqueSort(r) | |
} | |
return i && (A = m, I = l), u | |
} | |
var y = 0 < b.length, | |
v = 0 < h.length; | |
return y ? ue(e) : e | |
} | |
return be.prototype = w.filters = w.pseudos, w.setFilters = new be, m = de.tokenize = function(e, t) { | |
var n, r, i, a, o, s, d, c = O[e + " "]; | |
if (c) return t ? 0 : c.slice(0); | |
for (o = e, s = [], d = w.preFilter; o;) { | |
for (a in n && !(r = G.exec(o)) || (r && (o = o.slice(r[0].length) || o), s.push(i = [])), n = !1, (r = H.exec(o)) && (n = r.shift(), i.push({ | |
value: n, | |
type: r[0].replace(W, " ") | |
}), o = o.slice(n.length)), w.filter) !(r = X[a].exec(o)) || d[a] && !(r = d[a](r)) || (n = r.shift(), i.push({ | |
value: n, | |
type: a, | |
matches: r | |
}), o = o.slice(n.length)); | |
if (!n) break | |
} | |
return t ? o.length : o ? de.error(e) : O(e, s).slice(0) | |
}, l = de.compile = function(e, t) { | |
var n, r = [], | |
i = [], | |
a = _[e + " "]; | |
if (!a) { | |
for (n = (t = t || m(e)).length; n--;)(a = function e(t) { | |
for (var i, n, r, a = t.length, o = w.relative[t[0].type], s = o || w.relative[" "], d = o ? 1 : 0, c = ve(function(e) { | |
return e === i | |
}, s, !0), u = ve(function(e) { | |
return -1 < B(i, e) | |
}, s, !0), p = [function(e, t, n) { | |
var r = !o && (n || t !== I) || ((i = t).nodeType ? c : u)(e, t, n); | |
return i = null, r | |
}]; d < a; d++) | |
if (n = w.relative[t[d].type]) p = [ve(we(p), n)]; | |
else { | |
if ((n = w.filter[t[d].type].apply(null, t[d].matches))[j]) { | |
for (r = ++d; r < a && !w.relative[t[r].type]; r++); | |
return Te(1 < d && we(p), 1 < d && ye(t.slice(0, d - 1).concat({ | |
value: " " === t[d - 2].type ? "*" : "" | |
})).replace(W, "$1"), n, d < r && e(t.slice(d, r)), r < a && e(t = t.slice(r)), r < a && ye(t)) | |
} | |
p.push(n) | |
} return we(p) | |
}(t[n]))[j] ? r.push(a) : i.push(a); | |
(a = _(e, Se(i, r))).selector = e | |
} | |
return a | |
}, g = de.select = function(e, t, n, r) { | |
var i, a, o, s, d, c = "function" == typeof e && e, | |
u = !r && m(e = c.selector || e); | |
if (n = n || [], 1 === u.length) { | |
if (2 < (a = u[0] = u[0].slice(0)).length && "ID" === (o = a[0]).type && 9 === t.nodeType && k && w.relative[a[1].type]) { | |
if (!(t = (w.find.ID(o.matches[0].replace(ie, p), t) || [])[0])) return n; | |
c && (t = t.parentNode), e = e.slice(a.shift().value.length) | |
} | |
for (i = X.needsContext.test(e) ? 0 : a.length; i-- && (o = a[i], !w.relative[s = o.type]);) | |
if ((d = w.find[s]) && (r = d(o.matches[0].replace(ie, p), re.test(a[0].type) && he(t.parentNode) || t))) { | |
if (a.splice(i, 1), !(e = r.length && ye(a))) return U.apply(n, r), n; | |
break | |
} | |
} | |
return (c || l(e, u))(r, t, !k, n, !t || re.test(e) && he(t.parentNode) || t), n | |
}, f.sortStable = j.split("").sort(x).join("") === j, f.detectDuplicates = !!c, T(), f.sortDetached = pe(function(e) { | |
return 1 & e.compareDocumentPosition(S.createElement("fieldset")) | |
}), pe(function(e) { | |
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") | |
}) || le("type|href|height|width", function(e, t, n) { | |
if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) | |
}), f.attributes && pe(function(e) { | |
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") | |
}) || le("value", function(e, t, n) { | |
if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue | |
}), pe(function(e) { | |
return null == e.getAttribute("disabled") | |
}) || le(q, function(e, t, n) { | |
var r; | |
if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null | |
}), de | |
}(S); | |
j.find = l, j.expr = l.selectors, j.expr[":"] = j.expr.pseudos, j.uniqueSort = j.unique = l.uniqueSort, j.text = l.getText, j.isXMLDoc = l.isXML, j.contains = l.contains, j.escapeSelector = l.escape; | |
function f(e, t, n) { | |
for (var r = [], i = void 0 !== n; | |
(e = e[t]) && 9 !== e.nodeType;) | |
if (1 === e.nodeType) { | |
if (i && j(e).is(n)) break; | |
r.push(e) | |
} return r | |
} | |
function m(e, t) { | |
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); | |
return n | |
} | |
var T = j.expr.match.needsContext; | |
function A(e, t) { | |
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() | |
} | |
var E = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; | |
function O(e, n, r) { | |
return v(n) ? j.grep(e, function(e, t) { | |
return !!n.call(e, t, e) !== r | |
}) : n.nodeType ? j.grep(e, function(e) { | |
return e === n !== r | |
}) : "string" != typeof n ? j.grep(e, function(e) { | |
return -1 < i.call(n, e) !== r | |
}) : j.filter(n, e, r) | |
} | |
j.filter = function(e, t, n) { | |
var r = t[0]; | |
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? j.find.matchesSelector(r, e) ? [r] : [] : j.find.matches(e, j.grep(t, function(e) { | |
return 1 === e.nodeType | |
})) | |
}, j.fn.extend({ | |
find: function(e) { | |
var t, n, r = this.length, | |
i = this; | |
if ("string" != typeof e) return this.pushStack(j(e).filter(function() { | |
for (t = 0; t < r; t++) | |
if (j.contains(i[t], this)) return !0 | |
})); | |
for (n = this.pushStack([]), t = 0; t < r; t++) j.find(e, i[t], n); | |
return 1 < r ? j.uniqueSort(n) : n | |
}, | |
filter: function(e) { | |
return this.pushStack(O(this, e || [], !1)) | |
}, | |
not: function(e) { | |
return this.pushStack(O(this, e || [], !0)) | |
}, | |
is: function(e) { | |
return !!O(this, "string" == typeof e && T.test(e) ? j(e) : e || [], !1).length | |
} | |
}); | |
var _, C = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; | |
(j.fn.init = function(e, t, n) { | |
var r, i; | |
if (!e) return this; | |
if (n = n || _, "string" != typeof e) return e.nodeType ? (this[0] = e, this.length = 1, this) : v(e) ? void 0 !== n.ready ? n.ready(e) : e(j) : j.makeArray(e, this); | |
if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : C.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); | |
if (r[1]) { | |
if (t = t instanceof j ? t[0] : t, j.merge(this, j.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : k, !0)), E.test(r[1]) && j.isPlainObject(t)) | |
for (r in t) v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); | |
return this | |
} | |
return (i = k.getElementById(r[2])) && (this[0] = i, this.length = 1), this | |
}).prototype = j.fn, _ = j(k); | |
var x = /^(?:parents|prev(?:Until|All))/, | |
R = { | |
children: !0, | |
contents: !0, | |
next: !0, | |
prev: !0 | |
}; | |
function D(e, t) { | |
for (; | |
(e = e[t]) && 1 !== e.nodeType;); | |
return e | |
} | |
j.fn.extend({ | |
has: function(e) { | |
var t = j(e, this), | |
n = t.length; | |
return this.filter(function() { | |
for (var e = 0; e < n; e++) | |
if (j.contains(this, t[e])) return !0 | |
}) | |
}, | |
closest: function(e, t) { | |
var n, r = 0, | |
i = this.length, | |
a = [], | |
o = "string" != typeof e && j(e); | |
if (!T.test(e)) | |
for (; r < i; r++) | |
for (n = this[r]; n && n !== t; n = n.parentNode) | |
if (n.nodeType < 11 && (o ? -1 < o.index(n) : 1 === n.nodeType && j.find.matchesSelector(n, e))) { | |
a.push(n); | |
break | |
} return this.pushStack(1 < a.length ? j.uniqueSort(a) : a) | |
}, | |
index: function(e) { | |
return e ? "string" == typeof e ? i.call(j(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 | |
}, | |
add: function(e, t) { | |
return this.pushStack(j.uniqueSort(j.merge(this.get(), j(e, t)))) | |
}, | |
addBack: function(e) { | |
return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) | |
} | |
}), j.each({ | |
parent: function(e) { | |
var t = e.parentNode; | |
return t && 11 !== t.nodeType ? t : null | |
}, | |
parents: function(e) { | |
return f(e, "parentNode") | |
}, | |
parentsUntil: function(e, t, n) { | |
return f(e, "parentNode", n) | |
}, | |
next: function(e) { | |
return D(e, "nextSibling") | |
}, | |
prev: function(e) { | |
return D(e, "previousSibling") | |
}, | |
nextAll: function(e) { | |
return f(e, "nextSibling") | |
}, | |
prevAll: function(e) { | |
return f(e, "previousSibling") | |
}, | |
nextUntil: function(e, t, n) { | |
return f(e, "nextSibling", n) | |
}, | |
prevUntil: function(e, t, n) { | |
return f(e, "previousSibling", n) | |
}, | |
siblings: function(e) { | |
return m((e.parentNode || {}).firstChild, e) | |
}, | |
children: function(e) { | |
return m(e.firstChild) | |
}, | |
contents: function(e) { | |
return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (A(e, "template") && (e = e.content || e), j.merge([], e.childNodes)) | |
} | |
}, function(r, i) { | |
j.fn[r] = function(e, t) { | |
var n = j.map(this, i, e); | |
return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = j.filter(t, n)), 1 < this.length && (R[r] || j.uniqueSort(n), x.test(r) && n.reverse()), this.pushStack(n) | |
} | |
}); | |
var P = /[^\x20\t\r\n\f]+/g; | |
function U(e) { | |
return e | |
} | |
function N(e) { | |
throw e | |
} | |
function B(e, t, n, r) { | |
var i; | |
try { | |
e && v(i = e.promise) ? i.call(e).done(t).fail(n) : e && v(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)) | |
} catch (e) { | |
n.apply(void 0, [e]) | |
} | |
} | |
j.Callbacks = function(r) { | |
var e, n; | |
r = "string" == typeof r ? (e = r, n = {}, j.each(e.match(P) || [], function(e, t) { | |
n[t] = !0 | |
}), n) : j.extend({}, r); | |
function i() { | |
for (s = s || r.once, o = a = !0; c.length; u = -1) | |
for (t = c.shift(); ++u < d.length;) !1 === d[u].apply(t[0], t[1]) && r.stopOnFalse && (u = d.length, t = !1); | |
r.memory || (t = !1), a = !1, s && (d = t ? [] : "") | |
} | |
var a, t, o, s, d = [], | |
c = [], | |
u = -1, | |
p = { | |
add: function() { | |
return d && (t && !a && (u = d.length - 1, c.push(t)), function n(e) { | |
j.each(e, function(e, t) { | |
v(t) ? r.unique && p.has(t) || d.push(t) : t && t.length && "string" !== I(t) && n(t) | |
}) | |
}(arguments), t && !a && i()), this | |
}, | |
remove: function() { | |
return j.each(arguments, function(e, t) { | |
for (var n; - 1 < (n = j.inArray(t, d, n));) d.splice(n, 1), n <= u && u-- | |
}), this | |
}, | |
has: function(e) { | |
return e ? -1 < j.inArray(e, d) : 0 < d.length | |
}, | |
empty: function() { | |
return d = d && [], this | |
}, | |
disable: function() { | |
return s = c = [], d = t = "", this | |
}, | |
disabled: function() { | |
return !d | |
}, | |
lock: function() { | |
return s = c = [], t || a || (d = t = ""), this | |
}, | |
locked: function() { | |
return !!s | |
}, | |
fireWith: function(e, t) { | |
return s || (t = [e, (t = t || []).slice ? t.slice() : t], c.push(t), a || i()), this | |
}, | |
fire: function() { | |
return p.fireWith(this, arguments), this | |
}, | |
fired: function() { | |
return !!o | |
} | |
}; | |
return p | |
}, j.extend({ | |
Deferred: function(e) { | |
var a = [ | |
["notify", "progress", j.Callbacks("memory"), j.Callbacks("memory"), 2], | |
["resolve", "done", j.Callbacks("once memory"), j.Callbacks("once memory"), 0, "resolved"], | |
["reject", "fail", j.Callbacks("once memory"), j.Callbacks("once memory"), 1, "rejected"] | |
], | |
i = "pending", | |
o = { | |
state: function() { | |
return i | |
}, | |
always: function() { | |
return s.done(arguments).fail(arguments), this | |
}, | |
catch: function(e) { | |
return o.then(null, e) | |
}, | |
pipe: function() { | |
var i = arguments; | |
return j.Deferred(function(r) { | |
j.each(a, function(e, t) { | |
var n = v(i[t[4]]) && i[t[4]]; | |
s[t[1]](function() { | |
var e = n && n.apply(this, arguments); | |
e && v(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments) | |
}) | |
}), i = null | |
}).promise() | |
}, | |
then: function(t, n, r) { | |
var d = 0; | |
function c(i, a, o, s) { | |
return function() { | |
function e() { | |
var e, t; | |
if (!(i < d)) { | |
if ((e = o.apply(n, r)) === a.promise()) throw new TypeError("Thenable self-resolution"); | |
t = e && ("object" == typeof e || "function" == typeof e) && e.then, v(t) ? s ? t.call(e, c(d, a, U, s), c(d, a, N, s)) : (d++, t.call(e, c(d, a, U, s), c(d, a, N, s), c(d, a, U, a.notifyWith))) : (o !== U && (n = void 0, r = [e]), (s || a.resolveWith)(n, r)) | |
} | |
} | |
var n = this, | |
r = arguments, | |
t = s ? e : function() { | |
try { | |
e() | |
} catch (e) { | |
j.Deferred.exceptionHook && j.Deferred.exceptionHook(e, t.stackTrace), d <= i + 1 && (o !== N && (n = void 0, r = [e]), a.rejectWith(n, r)) | |
} | |
}; | |
i ? t() : (j.Deferred.getStackHook && (t.stackTrace = j.Deferred.getStackHook()), S.setTimeout(t)) | |
} | |
} | |
return j.Deferred(function(e) { | |
a[0][3].add(c(0, e, v(r) ? r : U, e.notifyWith)), a[1][3].add(c(0, e, v(t) ? t : U)), a[2][3].add(c(0, e, v(n) ? n : N)) | |
}).promise() | |
}, | |
promise: function(e) { | |
return null != e ? j.extend(e, o) : o | |
} | |
}, | |
s = {}; | |
return j.each(a, function(e, t) { | |
var n = t[2], | |
r = t[5]; | |
o[t[1]] = n.add, r && n.add(function() { | |
i = r | |
}, a[3 - e][2].disable, a[3 - e][3].disable, a[0][2].lock, a[0][3].lock), n.add(t[3].fire), s[t[0]] = function() { | |
return s[t[0] + "With"](this === s ? void 0 : this, arguments), this | |
}, s[t[0] + "With"] = n.fireWith | |
}), o.promise(s), e && e.call(s, s), s | |
}, | |
when: function(e) { | |
function t(t) { | |
return function(e) { | |
i[t] = this, a[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(i, a) | |
} | |
} | |
var n = arguments.length, | |
r = n, | |
i = Array(r), | |
a = s.call(arguments), | |
o = j.Deferred(); | |
if (n <= 1 && (B(e, o.done(t(r)).resolve, o.reject, !n), "pending" === o.state() || v(a[r] && a[r].then))) return o.then(); | |
for (; r--;) B(a[r], t(r), o.reject); | |
return o.promise() | |
} | |
}); | |
var q = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; | |
j.Deferred.exceptionHook = function(e, t) { | |
S.console && S.console.warn && e && q.test(e.name) && S.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t) | |
}, j.readyException = function(e) { | |
S.setTimeout(function() { | |
throw e | |
}) | |
}; | |
var z = j.Deferred(); | |
function M() { | |
k.removeEventListener("DOMContentLoaded", M), S.removeEventListener("load", M), j.ready() | |
} | |
j.fn.ready = function(e) { | |
return z.then(e).catch(function(e) { | |
j.readyException(e) | |
}), this | |
}, j.extend({ | |
isReady: !1, | |
readyWait: 1, | |
ready: function(e) { | |
(!0 === e ? --j.readyWait : j.isReady) || (j.isReady = !0) !== e && 0 < --j.readyWait || z.resolveWith(k, [j]) | |
} | |
}), j.ready.then = z.then, "complete" === k.readyState || "loading" !== k.readyState && !k.documentElement.doScroll ? S.setTimeout(j.ready) : (k.addEventListener("DOMContentLoaded", M), S.addEventListener("load", M)); | |
var V = function(e, t, n, r, i, a, o) { | |
var s = 0, | |
d = e.length, | |
c = null == n; | |
if ("object" === I(n)) | |
for (s in i = !0, n) V(e, t, s, n[s], !0, a, o); | |
else if (void 0 !== r && (i = !0, v(r) || (o = !0), c && (t = o ? (t.call(e, r), null) : (c = t, function(e, t, n) { | |
return c.call(j(e), n) | |
})), t)) | |
for (; s < d; s++) t(e[s], n, o ? r : r.call(e[s], s, t(e[s], n))); | |
return i ? e : c ? t.call(e) : d ? t(e[0], n) : a | |
}, | |
L = /^-ms-/, | |
F = /-([a-z])/g; | |
function W(e, t) { | |
return t.toUpperCase() | |
} | |
function G(e) { | |
return e.replace(L, "ms-").replace(F, W) | |
} | |
function H(e) { | |
return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType | |
} | |
function J() { | |
this.expando = j.expando + J.uid++ | |
} | |
J.uid = 1, J.prototype = { | |
cache: function(e) { | |
var t = e[this.expando]; | |
return t || (t = {}, H(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { | |
value: t, | |
configurable: !0 | |
}))), t | |
}, | |
set: function(e, t, n) { | |
var r, i = this.cache(e); | |
if ("string" == typeof t) i[G(t)] = n; | |
else | |
for (r in t) i[G(r)] = t[r]; | |
return i | |
}, | |
get: function(e, t) { | |
return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)] | |
}, | |
access: function(e, t, n) { | |
return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t) | |
}, | |
remove: function(e, t) { | |
var n, r = e[this.expando]; | |
if (void 0 !== r) { | |
if (void 0 !== t) { | |
n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(P) || []).length; | |
for (; n--;) delete r[t[n]] | |
} | |
void 0 !== t && !j.isEmptyObject(r) || (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) | |
} | |
}, | |
hasData: function(e) { | |
var t = e[this.expando]; | |
return void 0 !== t && !j.isEmptyObject(t) | |
} | |
}; | |
var Y = new J, | |
K = new J, | |
X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, | |
Q = /[A-Z]/g; | |
function Z(e, t, n) { | |
var r, i; | |
if (void 0 === n && 1 === e.nodeType) | |
if (r = "data-" + t.replace(Q, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(r))) { | |
try { | |
n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : X.test(i) ? JSON.parse(i) : i) | |
} catch (e) {} | |
K.set(e, t, n) | |
} else n = void 0; | |
return n | |
} | |
j.extend({ | |
hasData: function(e) { | |
return K.hasData(e) || Y.hasData(e) | |
}, | |
data: function(e, t, n) { | |
return K.access(e, t, n) | |
}, | |
removeData: function(e, t) { | |
K.remove(e, t) | |
}, | |
_data: function(e, t, n) { | |
return Y.access(e, t, n) | |
}, | |
_removeData: function(e, t) { | |
Y.remove(e, t) | |
} | |
}), j.fn.extend({ | |
data: function(n, e) { | |
var t, r, i, a = this[0], | |
o = a && a.attributes; | |
if (void 0 !== n) return "object" == typeof n ? this.each(function() { | |
K.set(this, n) | |
}) : V(this, function(e) { | |
var t; | |
return a && void 0 === e ? void 0 !== (t = K.get(a, n)) || void 0 !== (t = Z(a, n)) ? t : void 0 : void this.each(function() { | |
K.set(this, n, e) | |
}) | |
}, null, e, 1 < arguments.length, null, !0); | |
if (this.length && (i = K.get(a), 1 === a.nodeType && !Y.get(a, "hasDataAttrs"))) { | |
for (t = o.length; t--;) o[t] && 0 === (r = o[t].name).indexOf("data-") && (r = G(r.slice(5)), Z(a, r, i[r])); | |
Y.set(a, "hasDataAttrs", !0) | |
} | |
return i | |
}, | |
removeData: function(e) { | |
return this.each(function() { | |
K.remove(this, e) | |
}) | |
} | |
}), j.extend({ | |
queue: function(e, t, n) { | |
var r; | |
if (e) return t = (t || "fx") + "queue", r = Y.get(e, t), n && (!r || Array.isArray(n) ? r = Y.access(e, t, j.makeArray(n)) : r.push(n)), r || [] | |
}, | |
dequeue: function(e, t) { | |
t = t || "fx"; | |
var n = j.queue(e, t), | |
r = n.length, | |
i = n.shift(), | |
a = j._queueHooks(e, t); | |
"inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete a.stop, i.call(e, function() { | |
j.dequeue(e, t) | |
}, a)), !r && a && a.empty.fire() | |
}, | |
_queueHooks: function(e, t) { | |
var n = t + "queueHooks"; | |
return Y.get(e, n) || Y.access(e, n, { | |
empty: j.Callbacks("once memory").add(function() { | |
Y.remove(e, [t + "queue", n]) | |
}) | |
}) | |
} | |
}), j.fn.extend({ | |
queue: function(t, n) { | |
var e = 2; | |
return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? j.queue(this[0], t) : void 0 === n ? this : this.each(function() { | |
var e = j.queue(this, t, n); | |
j._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && j.dequeue(this, t) | |
}) | |
}, | |
dequeue: function(e) { | |
return this.each(function() { | |
j.dequeue(this, e) | |
}) | |
}, | |
clearQueue: function(e) { | |
return this.queue(e || "fx", []) | |
}, | |
promise: function(e, t) { | |
function n() { | |
--i || a.resolveWith(o, [o]) | |
} | |
var r, i = 1, | |
a = j.Deferred(), | |
o = this, | |
s = this.length; | |
for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; s--;)(r = Y.get(o[s], e + "queueHooks")) && r.empty && (i++, r.empty.add(n)); | |
return n(), a.promise(t) | |
} | |
}); | |
var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, | |
te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"), | |
ne = ["Top", "Right", "Bottom", "Left"], | |
re = k.documentElement, | |
ie = function(e) { | |
return j.contains(e.ownerDocument, e) | |
}, | |
ae = { | |
composed: !0 | |
}; | |
re.getRootNode && (ie = function(e) { | |
return j.contains(e.ownerDocument, e) || e.getRootNode(ae) === e.ownerDocument | |
}); | |
var oe = function(e, t) { | |
return "none" === (e = t || e).style.display || "" === e.style.display && ie(e) && "none" === j.css(e, "display") | |
}; | |
function se(e, t, n, r) { | |
var i, a, o = 20, | |
s = r ? function() { | |
return r.cur() | |
} : function() { | |
return j.css(e, t, "") | |
}, | |
d = s(), | |
c = n && n[3] || (j.cssNumber[t] ? "" : "px"), | |
u = e.nodeType && (j.cssNumber[t] || "px" !== c && +d) && te.exec(j.css(e, t)); | |
if (u && u[3] !== c) { | |
for (d /= 2, c = c || u[3], u = +d || 1; o--;) j.style(e, t, u + c), (1 - a) * (1 - (a = s() / d || .5)) <= 0 && (o = 0), u /= a; | |
u *= 2, j.style(e, t, u + c), n = n || [] | |
} | |
return n && (u = +u || +d || 0, i = n[1] ? u + (n[1] + 1) * n[2] : +n[2], r && (r.unit = c, r.start = u, r.end = i)), i | |
} | |
var de = {}; | |
function ce(e, t) { | |
for (var n, r, i, a, o, s, d, c = [], u = 0, p = e.length; u < p; u++)(r = e[u]).style && (n = r.style.display, t ? ("none" === n && (c[u] = Y.get(r, "display") || null, c[u] || (r.style.display = "")), "" === r.style.display && oe(r) && (c[u] = (d = s = o = a = void 0, o = (i = r).ownerDocument, s = i.nodeName, (d = de[s]) || (a = o.body.appendChild(o.createElement(s)), d = j.css(a, "display"), a.parentNode.removeChild(a), "none" === d && (d = "block"), de[s] = d)))) : "none" !== n && (c[u] = "none", Y.set(r, "display", n))); | |
for (u = 0; u < p; u++) null != c[u] && (e[u].style.display = c[u]); | |
return e | |
} | |
j.fn.extend({ | |
show: function() { | |
return ce(this, !0) | |
}, | |
hide: function() { | |
return ce(this) | |
}, | |
toggle: function(e) { | |
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() { | |
oe(this) ? j(this).show() : j(this).hide() | |
}) | |
} | |
}); | |
var ue, pe, le = /^(?:checkbox|radio)$/i, | |
fe = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, | |
me = /^$|^module$|\/(?:java|ecma)script/i; | |
ue = k.createDocumentFragment().appendChild(k.createElement("div")), (pe = k.createElement("input")).setAttribute("type", "radio"), pe.setAttribute("checked", "checked"), pe.setAttribute("name", "t"), ue.appendChild(pe), y.checkClone = ue.cloneNode(!0).cloneNode(!0).lastChild.checked, ue.innerHTML = "<textarea>x</textarea>", y.noCloneChecked = !!ue.cloneNode(!0).lastChild.defaultValue, ue.innerHTML = "<option></option>", y.option = !!ue.lastChild; | |
var ge = { | |
thead: [1, "<table>", "</table>"], | |
col: [2, "<table><colgroup>", "</colgroup></table>"], | |
tr: [2, "<table><tbody>", "</tbody></table>"], | |
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], | |
_default: [0, "", ""] | |
}; | |
function he(e, t) { | |
var n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : []; | |
return void 0 === t || t && A(e, t) ? j.merge([e], n) : n | |
} | |
function be(e, t) { | |
for (var n = 0, r = e.length; n < r; n++) Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval")) | |
} | |
ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, y.option || (ge.optgroup = ge.option = [1, "<select multiple='multiple'>", "</select>"]); | |
var ye = /<|&#?\w+;/; | |
function ve(e, t, n, r, i) { | |
for (var a, o, s, d, c, u, p = t.createDocumentFragment(), l = [], f = 0, m = e.length; f < m; f++) | |
if ((a = e[f]) || 0 === a) | |
if ("object" === I(a)) j.merge(l, a.nodeType ? [a] : a); | |
else if (ye.test(a)) { | |
for (o = o || p.appendChild(t.createElement("div")), s = (fe.exec(a) || ["", ""])[1].toLowerCase(), d = ge[s] || ge._default, o.innerHTML = d[1] + j.htmlPrefilter(a) + d[2], u = d[0]; u--;) o = o.lastChild; | |
j.merge(l, o.childNodes), (o = p.firstChild).textContent = "" | |
} else l.push(t.createTextNode(a)); | |
for (p.textContent = "", f = 0; a = l[f++];) | |
if (r && -1 < j.inArray(a, r)) i && i.push(a); | |
else if (c = ie(a), o = he(p.appendChild(a), "script"), c && be(o), n) | |
for (u = 0; a = o[u++];) me.test(a.type || "") && n.push(a); | |
return p | |
} | |
var we = /^key/, | |
Ie = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, | |
Te = /^([^.]*)(?:\.(.+)|)/; | |
function Se() { | |
return !0 | |
} | |
function ke() { | |
return !1 | |
} | |
function je(e, t) { | |
return e === function() { | |
try { | |
return k.activeElement | |
} catch (e) {} | |
}() == ("focus" === t) | |
} | |
function Ae(e, t, n, r, i, a) { | |
var o, s; | |
if ("object" == typeof t) { | |
for (s in "string" != typeof n && (r = r || n, n = void 0), t) Ae(e, s, n, r, t[s], a); | |
return e | |
} | |
if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = ke; | |
else if (!i) return e; | |
return 1 === a && (o = i, (i = function(e) { | |
return j().off(e), o.apply(this, arguments) | |
}).guid = o.guid || (o.guid = j.guid++)), e.each(function() { | |
j.event.add(this, t, i, r, n) | |
}) | |
} | |
function Ee(e, i, a) { | |
a ? (Y.set(e, i, !1), j.event.add(e, i, { | |
namespace: !1, | |
handler: function(e) { | |
var t, n, r = Y.get(this, i); | |
if (1 & e.isTrigger && this[i]) { | |
if (r.length)(j.event.special[i] || {}).delegateType && e.stopPropagation(); | |
else if (r = s.call(arguments), Y.set(this, i, r), t = a(this, i), this[i](), r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n.value | |
} else r.length && (Y.set(this, i, { | |
value: j.event.trigger(j.extend(r[0], j.Event.prototype), r.slice(1), this) | |
}), e.stopImmediatePropagation()) | |
} | |
})) : void 0 === Y.get(e, i) && j.event.add(e, i, Se) | |
} | |
j.event = { | |
global: {}, | |
add: function(t, e, n, r, i) { | |
var a, o, s, d, c, u, p, l, f, m, g, h = Y.get(t); | |
if (H(t)) | |
for (n.handler && (n = (a = n).handler, i = a.selector), i && j.find.matchesSelector(re, i), n.guid || (n.guid = j.guid++), (d = h.events) || (d = h.events = Object.create(null)), (o = h.handle) || (o = h.handle = function(e) { | |
return void 0 !== j && j.event.triggered !== e.type ? j.event.dispatch.apply(t, arguments) : void 0 | |
}), c = (e = (e || "").match(P) || [""]).length; c--;) f = g = (s = Te.exec(e[c]) || [])[1], m = (s[2] || "").split(".").sort(), f && (p = j.event.special[f] || {}, f = (i ? p.delegateType : p.bindType) || f, p = j.event.special[f] || {}, u = j.extend({ | |
type: f, | |
origType: g, | |
data: r, | |
handler: n, | |
guid: n.guid, | |
selector: i, | |
needsContext: i && j.expr.match.needsContext.test(i), | |
namespace: m.join(".") | |
}, a), (l = d[f]) || ((l = d[f] = []).delegateCount = 0, p.setup && !1 !== p.setup.call(t, r, m, o) || t.addEventListener && t.addEventListener(f, o)), p.add && (p.add.call(t, u), u.handler.guid || (u.handler.guid = n.guid)), i ? l.splice(l.delegateCount++, 0, u) : l.push(u), j.event.global[f] = !0) | |
}, | |
remove: function(e, t, n, r, i) { | |
var a, o, s, d, c, u, p, l, f, m, g, h = Y.hasData(e) && Y.get(e); | |
if (h && (d = h.events)) { | |
for (c = (t = (t || "").match(P) || [""]).length; c--;) | |
if (f = g = (s = Te.exec(t[c]) || [])[1], m = (s[2] || "").split(".").sort(), f) { | |
for (p = j.event.special[f] || {}, l = d[f = (r ? p.delegateType : p.bindType) || f] || [], s = s[2] && new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)"), o = a = l.length; a--;) u = l[a], !i && g !== u.origType || n && n.guid !== u.guid || s && !s.test(u.namespace) || r && r !== u.selector && ("**" !== r || !u.selector) || (l.splice(a, 1), u.selector && l.delegateCount--, p.remove && p.remove.call(e, u)); | |
o && !l.length && (p.teardown && !1 !== p.teardown.call(e, m, h.handle) || j.removeEvent(e, f, h.handle), delete d[f]) | |
} else | |
for (f in d) j.event.remove(e, f + t[c], n, r, !0); | |
j.isEmptyObject(d) && Y.remove(e, "handle events") | |
} | |
}, | |
dispatch: function(e) { | |
var t, n, r, i, a, o, s = new Array(arguments.length), | |
d = j.event.fix(e), | |
c = (Y.get(this, "events") || Object.create(null))[d.type] || [], | |
u = j.event.special[d.type] || {}; | |
for (s[0] = d, t = 1; t < arguments.length; t++) s[t] = arguments[t]; | |
if (d.delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, d)) { | |
for (o = j.event.handlers.call(this, d, c), t = 0; | |
(i = o[t++]) && !d.isPropagationStopped();) | |
for (d.currentTarget = i.elem, n = 0; | |
(a = i.handlers[n++]) && !d.isImmediatePropagationStopped();) d.rnamespace && !1 !== a.namespace && !d.rnamespace.test(a.namespace) || (d.handleObj = a, d.data = a.data, void 0 !== (r = ((j.event.special[a.origType] || {}).handle || a.handler).apply(i.elem, s)) && !1 === (d.result = r) && (d.preventDefault(), d.stopPropagation())); | |
return u.postDispatch && u.postDispatch.call(this, d), d.result | |
} | |
}, | |
handlers: function(e, t) { | |
var n, r, i, a, o, s = [], | |
d = t.delegateCount, | |
c = e.target; | |
if (d && c.nodeType && !("click" === e.type && 1 <= e.button)) | |
for (; c !== this; c = c.parentNode || this) | |
if (1 === c.nodeType && ("click" !== e.type || !0 !== c.disabled)) { | |
for (a = [], o = {}, n = 0; n < d; n++) void 0 === o[i = (r = t[n]).selector + " "] && (o[i] = r.needsContext ? -1 < j(i, this).index(c) : j.find(i, this, null, [c]).length), o[i] && a.push(r); | |
a.length && s.push({ | |
elem: c, | |
handlers: a | |
}) | |
} return c = this, d < t.length && s.push({ | |
elem: c, | |
handlers: t.slice(d) | |
}), s | |
}, | |
addProp: function(t, e) { | |
Object.defineProperty(j.Event.prototype, t, { | |
enumerable: !0, | |
configurable: !0, | |
get: v(e) ? function() { | |
if (this.originalEvent) return e(this.originalEvent) | |
} : function() { | |
if (this.originalEvent) return this.originalEvent[t] | |
}, | |
set: function(e) { | |
Object.defineProperty(this, t, { | |
enumerable: !0, | |
configurable: !0, | |
writable: !0, | |
value: e | |
}) | |
} | |
}) | |
}, | |
fix: function(e) { | |
return e[j.expando] ? e : new j.Event(e) | |
}, | |
special: { | |
load: { | |
noBubble: !0 | |
}, | |
click: { | |
setup: function(e) { | |
var t = this || e; | |
return le.test(t.type) && t.click && A(t, "input") && Ee(t, "click", Se), !1 | |
}, | |
trigger: function(e) { | |
var t = this || e; | |
return le.test(t.type) && t.click && A(t, "input") && Ee(t, "click"), !0 | |
}, | |
_default: function(e) { | |
var t = e.target; | |
return le.test(t.type) && t.click && A(t, "input") && Y.get(t, "click") || A(t, "a") | |
} | |
}, | |
beforeunload: { | |
postDispatch: function(e) { | |
void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) | |
} | |
} | |
} | |
}, j.removeEvent = function(e, t, n) { | |
e.removeEventListener && e.removeEventListener(t, n) | |
}, j.Event = function(e, t) { | |
if (!(this instanceof j.Event)) return new j.Event(e, t); | |
e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Se : ke, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && j.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[j.expando] = !0 | |
}, j.Event.prototype = { | |
constructor: j.Event, | |
isDefaultPrevented: ke, | |
isPropagationStopped: ke, | |
isImmediatePropagationStopped: ke, | |
isSimulated: !1, | |
preventDefault: function() { | |
var e = this.originalEvent; | |
this.isDefaultPrevented = Se, e && !this.isSimulated && e.preventDefault() | |
}, | |
stopPropagation: function() { | |
var e = this.originalEvent; | |
this.isPropagationStopped = Se, e && !this.isSimulated && e.stopPropagation() | |
}, | |
stopImmediatePropagation: function() { | |
var e = this.originalEvent; | |
this.isImmediatePropagationStopped = Se, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation() | |
} | |
}, j.each({ | |
altKey: !0, | |
bubbles: !0, | |
cancelable: !0, | |
changedTouches: !0, | |
ctrlKey: !0, | |
detail: !0, | |
eventPhase: !0, | |
metaKey: !0, | |
pageX: !0, | |
pageY: !0, | |
shiftKey: !0, | |
view: !0, | |
char: !0, | |
code: !0, | |
charCode: !0, | |
key: !0, | |
keyCode: !0, | |
button: !0, | |
buttons: !0, | |
clientX: !0, | |
clientY: !0, | |
offsetX: !0, | |
offsetY: !0, | |
pointerId: !0, | |
pointerType: !0, | |
screenX: !0, | |
screenY: !0, | |
targetTouches: !0, | |
toElement: !0, | |
touches: !0, | |
which: function(e) { | |
var t = e.button; | |
return null == e.which && we.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Ie.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which | |
} | |
}, j.event.addProp), j.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(e, t) { | |
j.event.special[e] = { | |
setup: function() { | |
return Ee(this, e, je), !1 | |
}, | |
trigger: function() { | |
return Ee(this, e), !0 | |
}, | |
delegateType: t | |
} | |
}), j.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout", | |
pointerenter: "pointerover", | |
pointerleave: "pointerout" | |
}, function(e, i) { | |
j.event.special[e] = { | |
delegateType: i, | |
bindType: i, | |
handle: function(e) { | |
var t, n = e.relatedTarget, | |
r = e.handleObj; | |
return n && (n === this || j.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t | |
} | |
} | |
}), j.fn.extend({ | |
on: function(e, t, n, r) { | |
return Ae(this, e, t, n, r) | |
}, | |
one: function(e, t, n, r) { | |
return Ae(this, e, t, n, r, 1) | |
}, | |
off: function(e, t, n) { | |
var r, i; | |
if (e && e.preventDefault && e.handleObj) return r = e.handleObj, j(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; | |
if ("object" != typeof e) return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ke), this.each(function() { | |
j.event.remove(this, e, n, t) | |
}); | |
for (i in e) this.off(i, t, e[i]); | |
return this | |
} | |
}); | |
var Oe = /<script|<style|<link/i, | |
_e = /checked\s*(?:[^=]|=\s*.checked.)/i, | |
Ce = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; | |
function xe(e, t) { | |
return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && j(e).children("tbody")[0] || e | |
} | |
function Re(e) { | |
return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e | |
} | |
function De(e) { | |
return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e | |
} | |
function Pe(e, t) { | |
var n, r, i, a, o, s; | |
if (1 === t.nodeType) { | |
if (Y.hasData(e) && (s = Y.get(e).events)) | |
for (i in Y.remove(t, "handle events"), s) | |
for (n = 0, r = s[i].length; n < r; n++) j.event.add(t, i, s[i][n]); | |
K.hasData(e) && (a = K.access(e), o = j.extend({}, a), K.set(t, o)) | |
} | |
} | |
function Ue(n, r, i, a) { | |
r = h(r); | |
var e, t, o, s, d, c, u = 0, | |
p = n.length, | |
l = p - 1, | |
f = r[0], | |
m = v(f); | |
if (m || 1 < p && "string" == typeof f && !y.checkClone && _e.test(f)) return n.each(function(e) { | |
var t = n.eq(e); | |
m && (r[0] = f.call(this, e, t.html())), Ue(t, r, i, a) | |
}); | |
if (p && (t = (e = ve(r, n[0].ownerDocument, !1, n, a)).firstChild, 1 === e.childNodes.length && (e = t), t || a)) { | |
for (s = (o = j.map(he(e, "script"), Re)).length; u < p; u++) d = e, u !== l && (d = j.clone(d, !0, !0), s && j.merge(o, he(d, "script"))), i.call(n[u], d, u); | |
if (s) | |
for (c = o[o.length - 1].ownerDocument, j.map(o, De), u = 0; u < s; u++) d = o[u], me.test(d.type || "") && !Y.access(d, "globalEval") && j.contains(c, d) && (d.src && "module" !== (d.type || "").toLowerCase() ? j._evalUrl && !d.noModule && j._evalUrl(d.src, { | |
nonce: d.nonce || d.getAttribute("nonce") | |
}, c) : w(d.textContent.replace(Ce, ""), d, c)) | |
} | |
return n | |
} | |
function Ne(e, t, n) { | |
for (var r, i = t ? j.filter(t, e) : e, a = 0; null != (r = i[a]); a++) n || 1 !== r.nodeType || j.cleanData(he(r)), r.parentNode && (n && ie(r) && be(he(r, "script")), r.parentNode.removeChild(r)); | |
return e | |
} | |
j.extend({ | |
htmlPrefilter: function(e) { | |
return e | |
}, | |
clone: function(e, t, n) { | |
var r, i, a, o, s, d, c, u = e.cloneNode(!0), | |
p = ie(e); | |
if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || j.isXMLDoc(e))) | |
for (o = he(u), r = 0, i = (a = he(e)).length; r < i; r++) s = a[r], d = o[r], c = void 0, "input" === (c = d.nodeName.toLowerCase()) && le.test(s.type) ? d.checked = s.checked : "input" !== c && "textarea" !== c || (d.defaultValue = s.defaultValue); | |
if (t) | |
if (n) | |
for (a = a || he(e), o = o || he(u), r = 0, i = a.length; r < i; r++) Pe(a[r], o[r]); | |
else Pe(e, u); | |
return 0 < (o = he(u, "script")).length && be(o, !p && he(e, "script")), u | |
}, | |
cleanData: function(e) { | |
for (var t, n, r, i = j.event.special, a = 0; void 0 !== (n = e[a]); a++) | |
if (H(n)) { | |
if (t = n[Y.expando]) { | |
if (t.events) | |
for (r in t.events) i[r] ? j.event.remove(n, r) : j.removeEvent(n, r, t.handle); | |
n[Y.expando] = void 0 | |
} | |
n[K.expando] && (n[K.expando] = void 0) | |
} | |
} | |
}), j.fn.extend({ | |
detach: function(e) { | |
return Ne(this, e, !0) | |
}, | |
remove: function(e) { | |
return Ne(this, e) | |
}, | |
text: function(e) { | |
return V(this, function(e) { | |
return void 0 === e ? j.text(this) : this.empty().each(function() { | |
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) | |
}) | |
}, null, e, arguments.length) | |
}, | |
append: function() { | |
return Ue(this, arguments, function(e) { | |
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || xe(this, e).appendChild(e) | |
}) | |
}, | |
prepend: function() { | |
return Ue(this, arguments, function(e) { | |
var t; | |
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (t = xe(this, e)).insertBefore(e, t.firstChild) | |
}) | |
}, | |
before: function() { | |
return Ue(this, arguments, function(e) { | |
this.parentNode && this.parentNode.insertBefore(e, this) | |
}) | |
}, | |
after: function() { | |
return Ue(this, arguments, function(e) { | |
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) | |
}) | |
}, | |
empty: function() { | |
for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (j.cleanData(he(e, !1)), e.textContent = ""); | |
return this | |
}, | |
clone: function(e, t) { | |
return e = null != e && e, t = null == t ? e : t, this.map(function() { | |
return j.clone(this, e, t) | |
}) | |
}, | |
html: function(e) { | |
return V(this, function(e) { | |
var t = this[0] || {}, | |
n = 0, | |
r = this.length; | |
if (void 0 === e && 1 === t.nodeType) return t.innerHTML; | |
if ("string" == typeof e && !Oe.test(e) && !ge[(fe.exec(e) || ["", ""])[1].toLowerCase()]) { | |
e = j.htmlPrefilter(e); | |
try { | |
for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (j.cleanData(he(t, !1)), t.innerHTML = e); | |
t = 0 | |
} catch (e) {} | |
} | |
t && this.empty().append(e) | |
}, null, e, arguments.length) | |
}, | |
replaceWith: function() { | |
var n = []; | |
return Ue(this, arguments, function(e) { | |
var t = this.parentNode; | |
j.inArray(this, n) < 0 && (j.cleanData(he(this)), t && t.replaceChild(e, this)) | |
}, n) | |
} | |
}), j.each({ | |
appendTo: "append", | |
prependTo: "prepend", | |
insertBefore: "before", | |
insertAfter: "after", | |
replaceAll: "replaceWith" | |
}, function(e, o) { | |
j.fn[e] = function(e) { | |
for (var t, n = [], r = j(e), i = r.length - 1, a = 0; a <= i; a++) t = a === i ? this : this.clone(!0), j(r[a])[o](t), d.apply(n, t.get()); | |
return this.pushStack(n) | |
} | |
}); | |
function Be(e, t, n) { | |
var r, i, a = {}; | |
for (i in t) a[i] = e.style[i], e.style[i] = t[i]; | |
for (i in r = n.call(e), t) e.style[i] = a[i]; | |
return r | |
} | |
var qe, ze, Me, Ve, Le, Fe, We, Ge, He = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"), | |
Je = function(e) { | |
var t = e.ownerDocument.defaultView; | |
return t && t.opener || (t = S), t.getComputedStyle(e) | |
}, | |
Ye = new RegExp(ne.join("|"), "i"); | |
function Ke() { | |
var e; | |
Ge && (We.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", Ge.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", re.appendChild(We).appendChild(Ge), e = S.getComputedStyle(Ge), qe = "1%" !== e.top, Fe = 12 === Xe(e.marginLeft), Ge.style.right = "60%", Ve = 36 === Xe(e.right), ze = 36 === Xe(e.width), Ge.style.position = "absolute", Me = 12 === Xe(Ge.offsetWidth / 3), re.removeChild(We), Ge = null) | |
} | |
function Xe(e) { | |
return Math.round(parseFloat(e)) | |
} | |
function Qe(e, t, n) { | |
var r, i, a, o, s = e.style; | |
return (n = n || Je(e)) && ("" !== (o = n.getPropertyValue(t) || n[t]) || ie(e) || (o = j.style(e, t)), !y.pixelBoxStyles() && He.test(o) && Ye.test(t) && (r = s.width, i = s.minWidth, a = s.maxWidth, s.minWidth = s.maxWidth = s.width = o, o = n.width, s.width = r, s.minWidth = i, s.maxWidth = a)), void 0 !== o ? o + "" : o | |
} | |
function $e(e, t) { | |
return { | |
get: function() { | |
if (!e()) return (this.get = t).apply(this, arguments); | |
delete this.get | |
} | |
} | |
} | |
We = k.createElement("div"), (Ge = k.createElement("div")).style && (Ge.style.backgroundClip = "content-box", Ge.cloneNode(!0).style.backgroundClip = "", y.clearCloneStyle = "content-box" === Ge.style.backgroundClip, j.extend(y, { | |
boxSizingReliable: function() { | |
return Ke(), ze | |
}, | |
pixelBoxStyles: function() { | |
return Ke(), Ve | |
}, | |
pixelPosition: function() { | |
return Ke(), qe | |
}, | |
reliableMarginLeft: function() { | |
return Ke(), Fe | |
}, | |
scrollboxSize: function() { | |
return Ke(), Me | |
}, | |
reliableTrDimensions: function() { | |
var e, t, n, r; | |
return null == Le && (e = k.createElement("table"), t = k.createElement("tr"), n = k.createElement("div"), e.style.cssText = "position:absolute;left:-11111px", t.style.height = "1px", n.style.height = "9px", re.appendChild(e).appendChild(t).appendChild(n), r = S.getComputedStyle(t), Le = 3 < parseInt(r.height), re.removeChild(e)), Le | |
} | |
})); | |
var Ze = ["Webkit", "Moz", "ms"], | |
et = k.createElement("div").style, | |
tt = {}; | |
function nt(e) { | |
var t = j.cssProps[e] || tt[e]; | |
return t || (e in et ? e : tt[e] = function(e) { | |
for (var t = e[0].toUpperCase() + e.slice(1), n = Ze.length; n--;) | |
if ((e = Ze[n] + t) in et) return e | |
}(e) || e) | |
} | |
var rt = /^(none|table(?!-c[ea]).+)/, | |
it = /^--/, | |
at = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, | |
ot = { | |
letterSpacing: "0", | |
fontWeight: "400" | |
}; | |
function st(e, t, n) { | |
var r = te.exec(t); | |
return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t | |
} | |
function dt(e, t, n, r, i, a) { | |
var o = "width" === t ? 1 : 0, | |
s = 0, | |
d = 0; | |
if (n === (r ? "border" : "content")) return 0; | |
for (; o < 4; o += 2) "margin" === n && (d += j.css(e, n + ne[o], !0, i)), r ? ("content" === n && (d -= j.css(e, "padding" + ne[o], !0, i)), "margin" !== n && (d -= j.css(e, "border" + ne[o] + "Width", !0, i))) : (d += j.css(e, "padding" + ne[o], !0, i), "padding" !== n ? d += j.css(e, "border" + ne[o] + "Width", !0, i) : s += j.css(e, "border" + ne[o] + "Width", !0, i)); | |
return !r && 0 <= a && (d += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - a - d - s - .5)) || 0), d | |
} | |
function ct(e, t, n) { | |
var r = Je(e), | |
i = (!y.boxSizingReliable() || n) && "border-box" === j.css(e, "boxSizing", !1, r), | |
a = i, | |
o = Qe(e, t, r), | |
s = "offset" + t[0].toUpperCase() + t.slice(1); | |
if (He.test(o)) { | |
if (!n) return o; | |
o = "auto" | |
} | |
return (!y.boxSizingReliable() && i || !y.reliableTrDimensions() && A(e, "tr") || "auto" === o || !parseFloat(o) && "inline" === j.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === j.css(e, "boxSizing", !1, r), (a = s in e) && (o = e[s])), (o = parseFloat(o) || 0) + dt(e, t, n || (i ? "border" : "content"), a, r, o) + "px" | |
} | |
function ut(e, t, n, r, i) { | |
return new ut.prototype.init(e, t, n, r, i) | |
} | |
j.extend({ | |
cssHooks: { | |
opacity: { | |
get: function(e, t) { | |
if (t) { | |
var n = Qe(e, "opacity"); | |
return "" === n ? "1" : n | |
} | |
} | |
} | |
}, | |
cssNumber: { | |
animationIterationCount: !0, | |
columnCount: !0, | |
fillOpacity: !0, | |
flexGrow: !0, | |
flexShrink: !0, | |
fontWeight: !0, | |
gridArea: !0, | |
gridColumn: !0, | |
gridColumnEnd: !0, | |
gridColumnStart: !0, | |
gridRow: !0, | |
gridRowEnd: !0, | |
gridRowStart: !0, | |
lineHeight: !0, | |
opacity: !0, | |
order: !0, | |
orphans: !0, | |
widows: !0, | |
zIndex: !0, | |
zoom: !0 | |
}, | |
cssProps: {}, | |
style: function(e, t, n, r) { | |
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { | |
var i, a, o, s = G(t), | |
d = it.test(t), | |
c = e.style; | |
if (d || (t = nt(s)), o = j.cssHooks[t] || j.cssHooks[s], void 0 === n) return o && "get" in o && void 0 !== (i = o.get(e, !1, r)) ? i : c[t]; | |
"string" === (a = typeof n) && (i = te.exec(n)) && i[1] && (n = se(e, t, i), a = "number"), null != n && n == n && ("number" !== a || d || (n += i && i[3] || (j.cssNumber[s] ? "" : "px")), y.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (c[t] = "inherit"), o && "set" in o && void 0 === (n = o.set(e, n, r)) || (d ? c.setProperty(t, n) : c[t] = n)) | |
} | |
}, | |
css: function(e, t, n, r) { | |
var i, a, o, s = G(t); | |
return it.test(t) || (t = nt(s)), (o = j.cssHooks[t] || j.cssHooks[s]) && "get" in o && (i = o.get(e, !0, n)), void 0 === i && (i = Qe(e, t, r)), "normal" === i && t in ot && (i = ot[t]), "" === n || n ? (a = parseFloat(i), !0 === n || isFinite(a) ? a || 0 : i) : i | |
} | |
}), j.each(["height", "width"], function(e, d) { | |
j.cssHooks[d] = { | |
get: function(e, t, n) { | |
if (t) return !rt.test(j.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? ct(e, d, n) : Be(e, at, function() { | |
return ct(e, d, n) | |
}) | |
}, | |
set: function(e, t, n) { | |
var r, i = Je(e), | |
a = !y.scrollboxSize() && "absolute" === i.position, | |
o = (a || n) && "border-box" === j.css(e, "boxSizing", !1, i), | |
s = n ? dt(e, d, n, o, i) : 0; | |
return o && a && (s -= Math.ceil(e["offset" + d[0].toUpperCase() + d.slice(1)] - parseFloat(i[d]) - dt(e, d, "border", !1, i) - .5)), s && (r = te.exec(t)) && "px" !== (r[3] || "px") && (e.style[d] = t, t = j.css(e, d)), st(0, t, s) | |
} | |
} | |
}), j.cssHooks.marginLeft = $e(y.reliableMarginLeft, function(e, t) { | |
if (t) return (parseFloat(Qe(e, "marginLeft")) || e.getBoundingClientRect().left - Be(e, { | |
marginLeft: 0 | |
}, function() { | |
return e.getBoundingClientRect().left | |
})) + "px" | |
}), j.each({ | |
margin: "", | |
padding: "", | |
border: "Width" | |
}, function(i, a) { | |
j.cssHooks[i + a] = { | |
expand: function(e) { | |
for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + ne[t] + a] = r[t] || r[t - 2] || r[0]; | |
return n | |
} | |
}, "margin" !== i && (j.cssHooks[i + a].set = st) | |
}), j.fn.extend({ | |
css: function(e, t) { | |
return V(this, function(e, t, n) { | |
var r, i, a = {}, | |
o = 0; | |
if (Array.isArray(t)) { | |
for (r = Je(e), i = t.length; o < i; o++) a[t[o]] = j.css(e, t[o], !1, r); | |
return a | |
} | |
return void 0 !== n ? j.style(e, t, n) : j.css(e, t) | |
}, e, t, 1 < arguments.length) | |
} | |
}), (j.Tween = ut).prototype = { | |
constructor: ut, | |
init: function(e, t, n, r, i, a) { | |
this.elem = e, this.prop = n, this.easing = i || j.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = a || (j.cssNumber[n] ? "" : "px") | |
}, | |
cur: function() { | |
var e = ut.propHooks[this.prop]; | |
return e && e.get ? e.get(this) : ut.propHooks._default.get(this) | |
}, | |
run: function(e) { | |
var t, n = ut.propHooks[this.prop]; | |
return this.options.duration ? this.pos = t = j.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : ut.propHooks._default.set(this), this | |
} | |
}, ut.prototype.init.prototype = ut.prototype, ut.propHooks = { | |
_default: { | |
get: function(e) { | |
var t; | |
return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = j.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 | |
}, | |
set: function(e) { | |
j.fx.step[e.prop] ? j.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !j.cssHooks[e.prop] && null == e.elem.style[nt(e.prop)] ? e.elem[e.prop] = e.now : j.style(e.elem, e.prop, e.now + e.unit) | |
} | |
} | |
}, ut.propHooks.scrollTop = ut.propHooks.scrollLeft = { | |
set: function(e) { | |
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) | |
} | |
}, j.easing = { | |
linear: function(e) { | |
return e | |
}, | |
swing: function(e) { | |
return .5 - Math.cos(e * Math.PI) / 2 | |
}, | |
_default: "swing" | |
}, j.fx = ut.prototype.init, j.fx.step = {}; | |
var pt, lt, ft, mt, gt = /^(?:toggle|show|hide)$/, | |
ht = /queueHooks$/; | |
function bt() { | |
lt && (!1 === k.hidden && S.requestAnimationFrame ? S.requestAnimationFrame(bt) : S.setTimeout(bt, j.fx.interval), j.fx.tick()) | |
} | |
function yt() { | |
return S.setTimeout(function() { | |
pt = void 0 | |
}), pt = Date.now() | |
} | |
function vt(e, t) { | |
var n, r = 0, | |
i = { | |
height: e | |
}; | |
for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = ne[r])] = i["padding" + n] = e; | |
return t && (i.opacity = i.width = e), i | |
} | |
function wt(e, t, n) { | |
for (var r, i = (It.tweeners[t] || []).concat(It.tweeners["*"]), a = 0, o = i.length; a < o; a++) | |
if (r = i[a].call(n, t, e)) return r | |
} | |
function It(a, e, t) { | |
var n, o, r = 0, | |
i = It.prefilters.length, | |
s = j.Deferred().always(function() { | |
delete d.elem | |
}), | |
d = function() { | |
if (o) return !1; | |
for (var e = pt || yt(), t = Math.max(0, c.startTime + c.duration - e), n = 1 - (t / c.duration || 0), r = 0, i = c.tweens.length; r < i; r++) c.tweens[r].run(n); | |
return s.notifyWith(a, [c, n, t]), n < 1 && i ? t : (i || s.notifyWith(a, [c, 1, 0]), s.resolveWith(a, [c]), !1) | |
}, | |
c = s.promise({ | |
elem: a, | |
props: j.extend({}, e), | |
opts: j.extend(!0, { | |
specialEasing: {}, | |
easing: j.easing._default | |
}, t), | |
originalProperties: e, | |
originalOptions: t, | |
startTime: pt || yt(), | |
duration: t.duration, | |
tweens: [], | |
createTween: function(e, t) { | |
var n = j.Tween(a, c.opts, e, t, c.opts.specialEasing[e] || c.opts.easing); | |
return c.tweens.push(n), n | |
}, | |
stop: function(e) { | |
var t = 0, | |
n = e ? c.tweens.length : 0; | |
if (o) return this; | |
for (o = !0; t < n; t++) c.tweens[t].run(1); | |
return e ? (s.notifyWith(a, [c, 1, 0]), s.resolveWith(a, [c, e])) : s.rejectWith(a, [c, e]), this | |
} | |
}), | |
u = c.props; | |
for (! function(e, t) { | |
var n, r, i, a, o; | |
for (n in e) | |
if (i = t[r = G(n)], a = e[n], Array.isArray(a) && (i = a[1], a = e[n] = a[0]), n !== r && (e[r] = a, delete e[n]), (o = j.cssHooks[r]) && "expand" in o) | |
for (n in a = o.expand(a), delete e[r], a) n in e || (e[n] = a[n], t[n] = i); | |
else t[r] = i | |
}(u, c.opts.specialEasing); r < i; r++) | |
if (n = It.prefilters[r].call(c, a, u, c.opts)) return v(n.stop) && (j._queueHooks(c.elem, c.opts.queue).stop = n.stop.bind(n)), n; | |
return j.map(u, wt, c), v(c.opts.start) && c.opts.start.call(a, c), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always), j.fx.timer(j.extend(d, { | |
elem: a, | |
anim: c, | |
queue: c.opts.queue | |
})), c | |
} | |
j.Animation = j.extend(It, { | |
tweeners: { | |
"*": [function(e, t) { | |
var n = this.createTween(e, t); | |
return se(n.elem, e, te.exec(t), n), n | |
}] | |
}, | |
tweener: function(e, t) { | |
for (var n, r = 0, i = (e = v(e) ? (t = e, ["*"]) : e.match(P)).length; r < i; r++) n = e[r], It.tweeners[n] = It.tweeners[n] || [], It.tweeners[n].unshift(t) | |
}, | |
prefilters: [function(e, t, n) { | |
var r, i, a, o, s, d, c, u, p = "width" in t || "height" in t, | |
l = this, | |
f = {}, | |
m = e.style, | |
g = e.nodeType && oe(e), | |
h = Y.get(e, "fxshow"); | |
for (r in n.queue || (null == (o = j._queueHooks(e, "fx")).unqueued && (o.unqueued = 0, s = o.empty.fire, o.empty.fire = function() { | |
o.unqueued || s() | |
}), o.unqueued++, l.always(function() { | |
l.always(function() { | |
o.unqueued--, j.queue(e, "fx").length || o.empty.fire() | |
}) | |
})), t) | |
if (i = t[r], gt.test(i)) { | |
if (delete t[r], a = a || "toggle" === i, i === (g ? "hide" : "show")) { | |
if ("show" !== i || !h || void 0 === h[r]) continue; | |
g = !0 | |
} | |
f[r] = h && h[r] || j.style(e, r) | |
} if ((d = !j.isEmptyObject(t)) || !j.isEmptyObject(f)) | |
for (r in p && 1 === e.nodeType && (n.overflow = [m.overflow, m.overflowX, m.overflowY], null == (c = h && h.display) && (c = Y.get(e, "display")), "none" === (u = j.css(e, "display")) && (c ? u = c : (ce([e], !0), c = e.style.display || c, u = j.css(e, "display"), ce([e]))), ("inline" === u || "inline-block" === u && null != c) && "none" === j.css(e, "float") && (d || (l.done(function() { | |
m.display = c | |
}), null == c && (u = m.display, c = "none" === u ? "" : u)), m.display = "inline-block")), n.overflow && (m.overflow = "hidden", l.always(function() { | |
m.overflow = n.overflow[0], m.overflowX = n.overflow[1], m.overflowY = n.overflow[2] | |
})), d = !1, f) d || (h ? "hidden" in h && (g = h.hidden) : h = Y.access(e, "fxshow", { | |
display: c | |
}), a && (h.hidden = !g), g && ce([e], !0), l.done(function() { | |
for (r in g || ce([e]), Y.remove(e, "fxshow"), f) j.style(e, r, f[r]) | |
})), d = wt(g ? h[r] : 0, r, l), r in h || (h[r] = d.start, g && (d.end = d.start, d.start = 0)) | |
}], | |
prefilter: function(e, t) { | |
t ? It.prefilters.unshift(e) : It.prefilters.push(e) | |
} | |
}), j.speed = function(e, t, n) { | |
var r = e && "object" == typeof e ? j.extend({}, e) : { | |
complete: n || !n && t || v(e) && e, | |
duration: e, | |
easing: n && t || t && !v(t) && t | |
}; | |
return j.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in j.fx.speeds ? r.duration = j.fx.speeds[r.duration] : r.duration = j.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() { | |
v(r.old) && r.old.call(this), r.queue && j.dequeue(this, r.queue) | |
}, r | |
}, j.fn.extend({ | |
fadeTo: function(e, t, n, r) { | |
return this.filter(oe).css("opacity", 0).show().end().animate({ | |
opacity: t | |
}, e, n, r) | |
}, | |
animate: function(t, e, n, r) { | |
function i() { | |
var e = It(this, j.extend({}, t), o); | |
(a || Y.get(this, "finish")) && e.stop(!0) | |
} | |
var a = j.isEmptyObject(t), | |
o = j.speed(e, n, r); | |
return i.finish = i, a || !1 === o.queue ? this.each(i) : this.queue(o.queue, i) | |
}, | |
stop: function(i, e, a) { | |
function o(e) { | |
var t = e.stop; | |
delete e.stop, t(a) | |
} | |
return "string" != typeof i && (a = e, e = i, i = void 0), e && this.queue(i || "fx", []), this.each(function() { | |
var e = !0, | |
t = null != i && i + "queueHooks", | |
n = j.timers, | |
r = Y.get(this); | |
if (t) r[t] && r[t].stop && o(r[t]); | |
else | |
for (t in r) r[t] && r[t].stop && ht.test(t) && o(r[t]); | |
for (t = n.length; t--;) n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(a), e = !1, n.splice(t, 1)); | |
!e && a || j.dequeue(this, i) | |
}) | |
}, | |
finish: function(o) { | |
return !1 !== o && (o = o || "fx"), this.each(function() { | |
var e, t = Y.get(this), | |
n = t[o + "queue"], | |
r = t[o + "queueHooks"], | |
i = j.timers, | |
a = n ? n.length : 0; | |
for (t.finish = !0, j.queue(this, o, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;) i[e].elem === this && i[e].queue === o && (i[e].anim.stop(!0), i.splice(e, 1)); | |
for (e = 0; e < a; e++) n[e] && n[e].finish && n[e].finish.call(this); | |
delete t.finish | |
}) | |
} | |
}), j.each(["toggle", "show", "hide"], function(e, r) { | |
var i = j.fn[r]; | |
j.fn[r] = function(e, t, n) { | |
return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(vt(r, !0), e, t, n) | |
} | |
}), j.each({ | |
slideDown: vt("show"), | |
slideUp: vt("hide"), | |
slideToggle: vt("toggle"), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function(e, r) { | |
j.fn[e] = function(e, t, n) { | |
return this.animate(r, e, t, n) | |
} | |
}), j.timers = [], j.fx.tick = function() { | |
var e, t = 0, | |
n = j.timers; | |
for (pt = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1); | |
n.length || j.fx.stop(), pt = void 0 | |
}, j.fx.timer = function(e) { | |
j.timers.push(e), j.fx.start() | |
}, j.fx.interval = 13, j.fx.start = function() { | |
lt || (lt = !0, bt()) | |
}, j.fx.stop = function() { | |
lt = null | |
}, j.fx.speeds = { | |
slow: 600, | |
fast: 200, | |
_default: 400 | |
}, j.fn.delay = function(r, e) { | |
return r = j.fx && j.fx.speeds[r] || r, e = e || "fx", this.queue(e, function(e, t) { | |
var n = S.setTimeout(e, r); | |
t.stop = function() { | |
S.clearTimeout(n) | |
} | |
}) | |
}, ft = k.createElement("input"), mt = k.createElement("select").appendChild(k.createElement("option")), ft.type = "checkbox", y.checkOn = "" !== ft.value, y.optSelected = mt.selected, (ft = k.createElement("input")).value = "t", ft.type = "radio", y.radioValue = "t" === ft.value; | |
var Tt, St = j.expr.attrHandle; | |
j.fn.extend({ | |
attr: function(e, t) { | |
return V(this, j.attr, e, t, 1 < arguments.length) | |
}, | |
removeAttr: function(e) { | |
return this.each(function() { | |
j.removeAttr(this, e) | |
}) | |
} | |
}), j.extend({ | |
attr: function(e, t, n) { | |
var r, i, a = e.nodeType; | |
if (3 !== a && 8 !== a && 2 !== a) return void 0 === e.getAttribute ? j.prop(e, t, n) : (1 === a && j.isXMLDoc(e) || (i = j.attrHooks[t.toLowerCase()] || (j.expr.match.bool.test(t) ? Tt : void 0)), void 0 !== n ? null === n ? void j.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : !(i && "get" in i && null !== (r = i.get(e, t))) && null == (r = j.find.attr(e, t)) ? void 0 : r) | |
}, | |
attrHooks: { | |
type: { | |
set: function(e, t) { | |
if (!y.radioValue && "radio" === t && A(e, "input")) { | |
var n = e.value; | |
return e.setAttribute("type", t), n && (e.value = n), t | |
} | |
} | |
} | |
}, | |
removeAttr: function(e, t) { | |
var n, r = 0, | |
i = t && t.match(P); | |
if (i && 1 === e.nodeType) | |
for (; n = i[r++];) e.removeAttribute(n) | |
} | |
}), Tt = { | |
set: function(e, t, n) { | |
return !1 === t ? j.removeAttr(e, n) : e.setAttribute(n, n), n | |
} | |
}, j.each(j.expr.match.bool.source.match(/\w+/g), function(e, t) { | |
var o = St[t] || j.find.attr; | |
St[t] = function(e, t, n) { | |
var r, i, a = t.toLowerCase(); | |
return n || (i = St[a], St[a] = r, r = null != o(e, t, n) ? a : null, St[a] = i), r | |
} | |
}); | |
var kt = /^(?:input|select|textarea|button)$/i, | |
jt = /^(?:a|area)$/i; | |
function At(e) { | |
return (e.match(P) || []).join(" ") | |
} | |
function Et(e) { | |
return e.getAttribute && e.getAttribute("class") || "" | |
} | |
function Ot(e) { | |
return Array.isArray(e) ? e : "string" == typeof e && e.match(P) || [] | |
} | |
j.fn.extend({ | |
prop: function(e, t) { | |
return V(this, j.prop, e, t, 1 < arguments.length) | |
}, | |
removeProp: function(e) { | |
return this.each(function() { | |
delete this[j.propFix[e] || e] | |
}) | |
} | |
}), j.extend({ | |
prop: function(e, t, n) { | |
var r, i, a = e.nodeType; | |
if (3 !== a && 8 !== a && 2 !== a) return 1 === a && j.isXMLDoc(e) || (t = j.propFix[t] || t, i = j.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t] | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function(e) { | |
var t = j.find.attr(e, "tabindex"); | |
return t ? parseInt(t, 10) : kt.test(e.nodeName) || jt.test(e.nodeName) && e.href ? 0 : -1 | |
} | |
} | |
}, | |
propFix: { | |
for: "htmlFor", | |
class: "className" | |
} | |
}), y.optSelected || (j.propHooks.selected = { | |
get: function(e) { | |
var t = e.parentNode; | |
return t && t.parentNode && t.parentNode.selectedIndex, null | |
}, | |
set: function(e) { | |
var t = e.parentNode; | |
t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) | |
} | |
}), j.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { | |
j.propFix[this.toLowerCase()] = this | |
}), j.fn.extend({ | |
addClass: function(t) { | |
var e, n, r, i, a, o, s, d = 0; | |
if (v(t)) return this.each(function(e) { | |
j(this).addClass(t.call(this, e, Et(this))) | |
}); | |
if ((e = Ot(t)).length) | |
for (; n = this[d++];) | |
if (i = Et(n), r = 1 === n.nodeType && " " + At(i) + " ") { | |
for (o = 0; a = e[o++];) r.indexOf(" " + a + " ") < 0 && (r += a + " "); | |
i !== (s = At(r)) && n.setAttribute("class", s) | |
} return this | |
}, | |
removeClass: function(t) { | |
var e, n, r, i, a, o, s, d = 0; | |
if (v(t)) return this.each(function(e) { | |
j(this).removeClass(t.call(this, e, Et(this))) | |
}); | |
if (!arguments.length) return this.attr("class", ""); | |
if ((e = Ot(t)).length) | |
for (; n = this[d++];) | |
if (i = Et(n), r = 1 === n.nodeType && " " + At(i) + " ") { | |
for (o = 0; a = e[o++];) | |
for (; - 1 < r.indexOf(" " + a + " ");) r = r.replace(" " + a + " ", " "); | |
i !== (s = At(r)) && n.setAttribute("class", s) | |
} return this | |
}, | |
toggleClass: function(i, t) { | |
var a = typeof i, | |
o = "string" == a || Array.isArray(i); | |
return "boolean" == typeof t && o ? t ? this.addClass(i) : this.removeClass(i) : v(i) ? this.each(function(e) { | |
j(this).toggleClass(i.call(this, e, Et(this), t), t) | |
}) : this.each(function() { | |
var e, t, n, r; | |
if (o) | |
for (t = 0, n = j(this), r = Ot(i); e = r[t++];) n.hasClass(e) ? n.removeClass(e) : n.addClass(e); | |
else void 0 !== i && "boolean" != a || ((e = Et(this)) && Y.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", !e && !1 !== i && Y.get(this, "__className__") || "")) | |
}) | |
}, | |
hasClass: function(e) { | |
for (var t, n = 0, r = " " + e + " "; t = this[n++];) | |
if (1 === t.nodeType && -1 < (" " + At(Et(t)) + " ").indexOf(r)) return !0; | |
return !1 | |
} | |
}); | |
var _t = /\r/g; | |
j.fn.extend({ | |
val: function(n) { | |
var r, e, i, t = this[0]; | |
return arguments.length ? (i = v(n), this.each(function(e) { | |
var t; | |
1 === this.nodeType && (null == (t = i ? n.call(this, e, j(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = j.map(t, function(e) { | |
return null == e ? "" : e + "" | |
})), (r = j.valHooks[this.type] || j.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t)) | |
})) : t ? (r = j.valHooks[t.type] || j.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof(e = t.value) ? e.replace(_t, "") : null == e ? "" : e : void 0 | |
} | |
}), j.extend({ | |
valHooks: { | |
option: { | |
get: function(e) { | |
var t = j.find.attr(e, "value"); | |
return null != t ? t : At(j.text(e)) | |
} | |
}, | |
select: { | |
get: function(e) { | |
for (var t, n, r = e.options, i = e.selectedIndex, a = "select-one" === e.type, o = a ? null : [], s = a ? i + 1 : r.length, d = i < 0 ? s : a ? i : 0; d < s; d++) | |
if (((n = r[d]).selected || d === i) && !n.disabled && (!n.parentNode.disabled || !A(n.parentNode, "optgroup"))) { | |
if (t = j(n).val(), a) return t; | |
o.push(t) | |
} return o | |
}, | |
set: function(e, t) { | |
for (var n, r, i = e.options, a = j.makeArray(t), o = i.length; o--;)((r = i[o]).selected = -1 < j.inArray(j.valHooks.option.get(r), a)) && (n = !0); | |
return n || (e.selectedIndex = -1), a | |
} | |
} | |
} | |
}), j.each(["radio", "checkbox"], function() { | |
j.valHooks[this] = { | |
set: function(e, t) { | |
if (Array.isArray(t)) return e.checked = -1 < j.inArray(j(e).val(), t) | |
} | |
}, y.checkOn || (j.valHooks[this].get = function(e) { | |
return null === e.getAttribute("value") ? "on" : e.value | |
}) | |
}), y.focusin = "onfocusin" in S; | |
function Ct(e) { | |
e.stopPropagation() | |
} | |
var xt = /^(?:focusinfocus|focusoutblur)$/; | |
j.extend(j.event, { | |
trigger: function(e, t, n, r) { | |
var i, a, o, s, d, c, u, p = [n || k], | |
l = b.call(e, "type") ? e.type : e, | |
f = b.call(e, "namespace") ? e.namespace.split(".") : [], | |
m = u = a = n = n || k; | |
if (3 !== n.nodeType && 8 !== n.nodeType && !xt.test(l + j.event.triggered) && (-1 < l.indexOf(".") && (l = (f = l.split(".")).shift(), f.sort()), s = l.indexOf(":") < 0 && "on" + l, (e = e[j.expando] ? e : new j.Event(l, "object" == typeof e && e)).isTrigger = r ? 2 : 3, e.namespace = f.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : j.makeArray(t, [e]), c = j.event.special[l] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) { | |
if (!r && !c.noBubble && !g(n)) { | |
for (o = c.delegateType || l, xt.test(o + l) || (m = m.parentNode); m; m = m.parentNode) p.push(m), a = m; | |
a === (n.ownerDocument || k) && p.push(a.defaultView || a.parentWindow || S) | |
} | |
for (i = 0; | |
(m = p[i++]) && !e.isPropagationStopped();) u = m, e.type = 1 < i ? o : c.bindType || l, (d = (Y.get(m, "events") || Object.create(null))[e.type] && Y.get(m, "handle")) && d.apply(m, t), (d = s && m[s]) && d.apply && H(m) && (e.result = d.apply(m, t), !1 === e.result && e.preventDefault()); | |
return e.type = l, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !H(n) || s && v(n[l]) && !g(n) && ((a = n[s]) && (n[s] = null), j.event.triggered = l, e.isPropagationStopped() && u.addEventListener(l, Ct), n[l](), e.isPropagationStopped() && u.removeEventListener(l, Ct), j.event.triggered = void 0, a && (n[s] = a)), e.result | |
} | |
}, | |
simulate: function(e, t, n) { | |
var r = j.extend(new j.Event, n, { | |
type: e, | |
isSimulated: !0 | |
}); | |
j.event.trigger(r, null, t) | |
} | |
}), j.fn.extend({ | |
trigger: function(e, t) { | |
return this.each(function() { | |
j.event.trigger(e, t, this) | |
}) | |
}, | |
triggerHandler: function(e, t) { | |
var n = this[0]; | |
if (n) return j.event.trigger(e, t, n, !0) | |
} | |
}), y.focusin || j.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(n, r) { | |
function i(e) { | |
j.event.simulate(r, e.target, j.event.fix(e)) | |
} | |
j.event.special[r] = { | |
setup: function() { | |
var e = this.ownerDocument || this.document || this, | |
t = Y.access(e, r); | |
t || e.addEventListener(n, i, !0), Y.access(e, r, (t || 0) + 1) | |
}, | |
teardown: function() { | |
var e = this.ownerDocument || this.document || this, | |
t = Y.access(e, r) - 1; | |
t ? Y.access(e, r, t) : (e.removeEventListener(n, i, !0), Y.remove(e, r)) | |
} | |
} | |
}); | |
var Rt = S.location, | |
Dt = { | |
guid: Date.now() | |
}, | |
Pt = /\?/; | |
j.parseXML = function(e) { | |
var t; | |
if (!e || "string" != typeof e) return null; | |
try { | |
t = (new S.DOMParser).parseFromString(e, "text/xml") | |
} catch (e) { | |
t = void 0 | |
} | |
return t && !t.getElementsByTagName("parsererror").length || j.error("Invalid XML: " + e), t | |
}; | |
var Ut = /\[\]$/, | |
Nt = /\r?\n/g, | |
Bt = /^(?:submit|button|image|reset|file)$/i, | |
qt = /^(?:input|select|textarea|keygen)/i; | |
j.param = function(e, t) { | |
function n(e, t) { | |
var n = v(t) ? t() : t; | |
i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n) | |
} | |
var r, i = []; | |
if (null == e) return ""; | |
if (Array.isArray(e) || e.jquery && !j.isPlainObject(e)) j.each(e, function() { | |
n(this.name, this.value) | |
}); | |
else | |
for (r in e) ! function n(r, e, i, a) { | |
if (Array.isArray(e)) j.each(e, function(e, t) { | |
i || Ut.test(r) ? a(r, t) : n(r + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, i, a) | |
}); | |
else if (i || "object" !== I(e)) a(r, e); | |
else | |
for (var t in e) n(r + "[" + t + "]", e[t], i, a) | |
}(r, e[r], t, n); | |
return i.join("&") | |
}, j.fn.extend({ | |
serialize: function() { | |
return j.param(this.serializeArray()) | |
}, | |
serializeArray: function() { | |
return this.map(function() { | |
var e = j.prop(this, "elements"); | |
return e ? j.makeArray(e) : this | |
}).filter(function() { | |
var e = this.type; | |
return this.name && !j(this).is(":disabled") && qt.test(this.nodeName) && !Bt.test(e) && (this.checked || !le.test(e)) | |
}).map(function(e, t) { | |
var n = j(this).val(); | |
return null == n ? null : Array.isArray(n) ? j.map(n, function(e) { | |
return { | |
name: t.name, | |
value: e.replace(Nt, "\r\n") | |
} | |
}) : { | |
name: t.name, | |
value: n.replace(Nt, "\r\n") | |
} | |
}).get() | |
} | |
}); | |
var zt = /%20/g, | |
Mt = /#.*$/, | |
Vt = /([?&])_=[^&]*/, | |
Lt = /^(.*?):[ \t]*([^\r\n]*)$/gm, | |
Ft = /^(?:GET|HEAD)$/, | |
Wt = /^\/\//, | |
Gt = {}, | |
Ht = {}, | |
Jt = "*/".concat("*"), | |
Yt = k.createElement("a"); | |
function Kt(a) { | |
return function(e, t) { | |
"string" != typeof e && (t = e, e = "*"); | |
var n, r = 0, | |
i = e.toLowerCase().match(P) || []; | |
if (v(t)) | |
for (; n = i[r++];) "+" === n[0] ? (n = n.slice(1) || "*", (a[n] = a[n] || []).unshift(t)) : (a[n] = a[n] || []).push(t) | |
} | |
} | |
function Xt(t, i, a, o) { | |
var s = {}, | |
d = t === Ht; | |
function c(e) { | |
var r; | |
return s[e] = !0, j.each(t[e] || [], function(e, t) { | |
var n = t(i, a, o); | |
return "string" != typeof n || d || s[n] ? d ? !(r = n) : void 0 : (i.dataTypes.unshift(n), c(n), !1) | |
}), r | |
} | |
return c(i.dataTypes[0]) || !s["*"] && c("*") | |
} | |
function Qt(e, t) { | |
var n, r, i = j.ajaxSettings.flatOptions || {}; | |
for (n in t) void 0 !== t[n] && ((i[n] ? e : r = r || {})[n] = t[n]); | |
return r && j.extend(!0, e, r), e | |
} | |
Yt.href = Rt.href, j.extend({ | |
active: 0, | |
lastModified: {}, | |
etag: {}, | |
ajaxSettings: { | |
url: Rt.href, | |
type: "GET", | |
isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Rt.protocol), | |
global: !0, | |
processData: !0, | |
async: !0, | |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", | |
accepts: { | |
"*": Jt, | |
text: "text/plain", | |
html: "text/html", | |
xml: "application/xml, text/xml", | |
json: "application/json, text/javascript" | |
}, | |
contents: { | |
xml: /\bxml\b/, | |
html: /\bhtml/, | |
json: /\bjson\b/ | |
}, | |
responseFields: { | |
xml: "responseXML", | |
text: "responseText", | |
json: "responseJSON" | |
}, | |
converters: { | |
"* text": String, | |
"text html": !0, | |
"text json": JSON.parse, | |
"text xml": j.parseXML | |
}, | |
flatOptions: { | |
url: !0, | |
context: !0 | |
} | |
}, | |
ajaxSetup: function(e, t) { | |
return t ? Qt(Qt(e, j.ajaxSettings), t) : Qt(j.ajaxSettings, e) | |
}, | |
ajaxPrefilter: Kt(Gt), | |
ajaxTransport: Kt(Ht), | |
ajax: function(e, t) { | |
"object" == typeof e && (t = e, e = void 0), t = t || {}; | |
var u, p, l, n, f, r, m, g, i, a, h = j.ajaxSetup({}, t), | |
b = h.context || h, | |
y = h.context && (b.nodeType || b.jquery) ? j(b) : j.event, | |
v = j.Deferred(), | |
w = j.Callbacks("once memory"), | |
I = h.statusCode || {}, | |
o = {}, | |
s = {}, | |
d = "canceled", | |
T = { | |
readyState: 0, | |
getResponseHeader: function(e) { | |
var t; | |
if (m) { | |
if (!n) | |
for (n = {}; t = Lt.exec(l);) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2]); | |
t = n[e.toLowerCase() + " "] | |
} | |
return null == t ? null : t.join(", ") | |
}, | |
getAllResponseHeaders: function() { | |
return m ? l : null | |
}, | |
setRequestHeader: function(e, t) { | |
return null == m && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, o[e] = t), this | |
}, | |
overrideMimeType: function(e) { | |
return null == m && (h.mimeType = e), this | |
}, | |
statusCode: function(e) { | |
if (e) | |
if (m) T.always(e[T.status]); | |
else | |
for (var t in e) I[t] = [I[t], e[t]]; | |
return this | |
}, | |
abort: function(e) { | |
var t = e || d; | |
return u && u.abort(t), c(0, t), this | |
} | |
}; | |
if (v.promise(T), h.url = ((e || h.url || Rt.href) + "").replace(Wt, Rt.protocol + "//"), h.type = t.method || t.type || h.method || h.type, h.dataTypes = (h.dataType || "*").toLowerCase().match(P) || [""], null == h.crossDomain) { | |
r = k.createElement("a"); | |
try { | |
r.href = h.url, r.href = r.href, h.crossDomain = Yt.protocol + "//" + Yt.host != r.protocol + "//" + r.host | |
} catch (e) { | |
h.crossDomain = !0 | |
} | |
} | |
if (h.data && h.processData && "string" != typeof h.data && (h.data = j.param(h.data, h.traditional)), Xt(Gt, h, t, T), m) return T; | |
for (i in (g = j.event && h.global) && 0 == j.active++ && j.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !Ft.test(h.type), p = h.url.replace(Mt, ""), h.hasContent ? h.data && h.processData && 0 === (h.contentType || "").indexOf("application/x-www-form-urlencoded") && (h.data = h.data.replace(zt, "+")) : (a = h.url.slice(p.length), h.data && (h.processData || "string" == typeof h.data) && (p += (Pt.test(p) ? "&" : "?") + h.data, delete h.data), !1 === h.cache && (p = p.replace(Vt, "$1"), a = (Pt.test(p) ? "&" : "?") + "_=" + Dt.guid++ + a), h.url = p + a), h.ifModified && (j.lastModified[p] && T.setRequestHeader("If-Modified-Since", j.lastModified[p]), j.etag[p] && T.setRequestHeader("If-None-Match", j.etag[p])), (h.data && h.hasContent && !1 !== h.contentType || t.contentType) && T.setRequestHeader("Content-Type", h.contentType), T.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + Jt + "; q=0.01" : "") : h.accepts["*"]), h.headers) T.setRequestHeader(i, h.headers[i]); | |
if (h.beforeSend && (!1 === h.beforeSend.call(b, T, h) || m)) return T.abort(); | |
if (d = "abort", w.add(h.complete), T.done(h.success), T.fail(h.error), u = Xt(Ht, h, t, T)) { | |
if (T.readyState = 1, g && y.trigger("ajaxSend", [T, h]), m) return T; | |
h.async && 0 < h.timeout && (f = S.setTimeout(function() { | |
T.abort("timeout") | |
}, h.timeout)); | |
try { | |
m = !1, u.send(o, c) | |
} catch (e) { | |
if (m) throw e; | |
c(-1, e) | |
} | |
} else c(-1, "No Transport"); | |
function c(e, t, n, r) { | |
var i, a, o, s, d, c = t; | |
m || (m = !0, f && S.clearTimeout(f), u = void 0, l = r || "", T.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function(e, t, n) { | |
for (var r, i, a, o, s = e.contents, d = e.dataTypes; | |
"*" === d[0];) d.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); | |
if (r) | |
for (i in s) | |
if (s[i] && s[i].test(r)) { | |
d.unshift(i); | |
break | |
} if (d[0] in n) a = d[0]; | |
else { | |
for (i in n) { | |
if (!d[0] || e.converters[i + " " + d[0]]) { | |
a = i; | |
break | |
} | |
o = o || i | |
} | |
a = a || o | |
} | |
if (a) return a !== d[0] && d.unshift(a), n[a] | |
}(h, T, n)), !i && -1 < j.inArray("script", h.dataTypes) && (h.converters["text script"] = function() {}), s = function(e, t, n, r) { | |
var i, a, o, s, d, c = {}, | |
u = e.dataTypes.slice(); | |
if (u[1]) | |
for (o in e.converters) c[o.toLowerCase()] = e.converters[o]; | |
for (a = u.shift(); a;) | |
if (e.responseFields[a] && (n[e.responseFields[a]] = t), !d && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), d = a, a = u.shift()) | |
if ("*" === a) a = d; | |
else if ("*" !== d && d !== a) { | |
if (!(o = c[d + " " + a] || c["* " + a])) | |
for (i in c) | |
if ((s = i.split(" "))[1] === a && (o = c[d + " " + s[0]] || c["* " + s[0]])) { | |
!0 === o ? o = c[i] : !0 !== c[i] && (a = s[0], u.unshift(s[1])); | |
break | |
} if (!0 !== o) | |
if (o && e.throws) t = o(t); | |
else try { | |
t = o(t) | |
} catch (e) { | |
return { | |
state: "parsererror", | |
error: o ? e : "No conversion from " + d + " to " + a | |
} | |
} | |
} | |
return { | |
state: "success", | |
data: t | |
} | |
}(h, s, T, i), i ? (h.ifModified && ((d = T.getResponseHeader("Last-Modified")) && (j.lastModified[p] = d), (d = T.getResponseHeader("etag")) && (j.etag[p] = d)), 204 === e || "HEAD" === h.type ? c = "nocontent" : 304 === e ? c = "notmodified" : (c = s.state, a = s.data, i = !(o = s.error))) : (o = c, !e && c || (c = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || c) + "", i ? v.resolveWith(b, [a, c, T]) : v.rejectWith(b, [T, c, o]), T.statusCode(I), I = void 0, g && y.trigger(i ? "ajaxSuccess" : "ajaxError", [T, h, i ? a : o]), w.fireWith(b, [T, c]), g && (y.trigger("ajaxComplete", [T, h]), --j.active || j.event.trigger("ajaxStop"))) | |
} | |
return T | |
}, | |
getJSON: function(e, t, n) { | |
return j.get(e, t, n, "json") | |
}, | |
getScript: function(e, t) { | |
return j.get(e, void 0, t, "script") | |
} | |
}), j.each(["get", "post"], function(e, i) { | |
j[i] = function(e, t, n, r) { | |
return v(t) && (r = r || n, n = t, t = void 0), j.ajax(j.extend({ | |
url: e, | |
type: i, | |
dataType: r, | |
data: t, | |
success: n | |
}, j.isPlainObject(e) && e)) | |
} | |
}), j.ajaxPrefilter(function(e) { | |
for (var t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "") | |
}), j._evalUrl = function(e, t, n) { | |
return j.ajax({ | |
url: e, | |
type: "GET", | |
dataType: "script", | |
cache: !0, | |
async: !1, | |
global: !1, | |
converters: { | |
"text script": function() {} | |
}, | |
dataFilter: function(e) { | |
j.globalEval(e, t, n) | |
} | |
}) | |
}, j.fn.extend({ | |
wrapAll: function(e) { | |
var t; | |
return this[0] && (v(e) && (e = e.call(this[0])), t = j(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() { | |
for (var e = this; e.firstElementChild;) e = e.firstElementChild; | |
return e | |
}).append(this)), this | |
}, | |
wrapInner: function(n) { | |
return v(n) ? this.each(function(e) { | |
j(this).wrapInner(n.call(this, e)) | |
}) : this.each(function() { | |
var e = j(this), | |
t = e.contents(); | |
t.length ? t.wrapAll(n) : e.append(n) | |
}) | |
}, | |
wrap: function(t) { | |
var n = v(t); | |
return this.each(function(e) { | |
j(this).wrapAll(n ? t.call(this, e) : t) | |
}) | |
}, | |
unwrap: function(e) { | |
return this.parent(e).not("body").each(function() { | |
j(this).replaceWith(this.childNodes) | |
}), this | |
} | |
}), j.expr.pseudos.hidden = function(e) { | |
return !j.expr.pseudos.visible(e) | |
}, j.expr.pseudos.visible = function(e) { | |
return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) | |
}, j.ajaxSettings.xhr = function() { | |
try { | |
return new S.XMLHttpRequest | |
} catch (e) {} | |
}; | |
var $t = { | |
0: 200, | |
1223: 204 | |
}, | |
Zt = j.ajaxSettings.xhr(); | |
y.cors = !!Zt && "withCredentials" in Zt, y.ajax = Zt = !!Zt, j.ajaxTransport(function(i) { | |
var a, o; | |
if (y.cors || Zt && !i.crossDomain) return { | |
send: function(e, t) { | |
var n, r = i.xhr(); | |
if (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields) | |
for (n in i.xhrFields) r[n] = i.xhrFields[n]; | |
for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) r.setRequestHeader(n, e[n]); | |
a = function(e) { | |
return function() { | |
a && (a = o = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null, "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t($t[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? { | |
binary: r.response | |
} : { | |
text: r.responseText | |
}, r.getAllResponseHeaders())) | |
} | |
}, r.onload = a(), o = r.onerror = r.ontimeout = a("error"), void 0 !== r.onabort ? r.onabort = o : r.onreadystatechange = function() { | |
4 === r.readyState && S.setTimeout(function() { | |
a && o() | |
}) | |
}, a = a("abort"); | |
try { | |
r.send(i.hasContent && i.data || null) | |
} catch (e) { | |
if (a) throw e | |
} | |
}, | |
abort: function() { | |
a && a() | |
} | |
} | |
}), j.ajaxPrefilter(function(e) { | |
e.crossDomain && (e.contents.script = !1) | |
}), j.ajaxSetup({ | |
accepts: { | |
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" | |
}, | |
contents: { | |
script: /\b(?:java|ecma)script\b/ | |
}, | |
converters: { | |
"text script": function(e) { | |
return j.globalEval(e), e | |
} | |
} | |
}), j.ajaxPrefilter("script", function(e) { | |
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") | |
}), j.ajaxTransport("script", function(n) { | |
var r, i; | |
if (n.crossDomain || n.scriptAttrs) return { | |
send: function(e, t) { | |
r = j("<script>").attr(n.scriptAttrs || {}).prop({ | |
charset: n.scriptCharset, | |
src: n.url | |
}).on("load error", i = function(e) { | |
r.remove(), i = null, e && t("error" === e.type ? 404 : 200, e.type) | |
}), k.head.appendChild(r[0]) | |
}, | |
abort: function() { | |
i && i() | |
} | |
} | |
}); | |
var en, tn = [], | |
nn = /(=)\?(?=&|$)|\?\?/; | |
j.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function() { | |
var e = tn.pop() || j.expando + "_" + Dt.guid++; | |
return this[e] = !0, e | |
} | |
}), j.ajaxPrefilter("json jsonp", function(e, t, n) { | |
var r, i, a, o = !1 !== e.jsonp && (nn.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && nn.test(e.data) && "data"); | |
if (o || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, o ? e[o] = e[o].replace(nn, "$1" + r) : !1 !== e.jsonp && (e.url += (Pt.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() { | |
return a || j.error(r + " was not called"), a[0] | |
}, e.dataTypes[0] = "json", i = S[r], S[r] = function() { | |
a = arguments | |
}, n.always(function() { | |
void 0 === i ? j(S).removeProp(r) : S[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, tn.push(r)), a && v(i) && i(a[0]), a = i = void 0 | |
}), "script" | |
}), y.createHTMLDocument = ((en = k.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === en.childNodes.length), j.parseHTML = function(e, t, n) { | |
return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (y.createHTMLDocument ? ((r = (t = k.implementation.createHTMLDocument("")).createElement("base")).href = k.location.href, t.head.appendChild(r)) : t = k), a = !n && [], (i = E.exec(e)) ? [t.createElement(i[1])] : (i = ve([e], t, a), a && a.length && j(a).remove(), j.merge([], i.childNodes))); | |
var r, i, a | |
}, j.fn.load = function(e, t, n) { | |
var r, i, a, o = this, | |
s = e.indexOf(" "); | |
return -1 < s && (r = At(e.slice(s)), e = e.slice(0, s)), v(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < o.length && j.ajax({ | |
url: e, | |
type: i || "GET", | |
dataType: "html", | |
data: t | |
}).done(function(e) { | |
a = arguments, o.html(r ? j("<div>").append(j.parseHTML(e)).find(r) : e) | |
}).always(n && function(e, t) { | |
o.each(function() { | |
n.apply(this, a || [e.responseText, t, e]) | |
}) | |
}), this | |
}, j.expr.pseudos.animated = function(t) { | |
return j.grep(j.timers, function(e) { | |
return t === e.elem | |
}).length | |
}, j.offset = { | |
setOffset: function(e, t, n) { | |
var r, i, a, o, s, d, c = j.css(e, "position"), | |
u = j(e), | |
p = {}; | |
"static" === c && (e.style.position = "relative"), s = u.offset(), a = j.css(e, "top"), d = j.css(e, "left"), i = ("absolute" === c || "fixed" === c) && -1 < (a + d).indexOf("auto") ? (o = (r = u.position()).top, r.left) : (o = parseFloat(a) || 0, parseFloat(d) || 0), v(t) && (t = t.call(e, n, j.extend({}, s))), null != t.top && (p.top = t.top - s.top + o), null != t.left && (p.left = t.left - s.left + i), "using" in t ? t.using.call(e, p) : ("number" == typeof p.top && (p.top += "px"), "number" == typeof p.left && (p.left += "px"), u.css(p)) | |
} | |
}, j.fn.extend({ | |
offset: function(t) { | |
if (arguments.length) return void 0 === t ? this : this.each(function(e) { | |
j.offset.setOffset(this, t, e) | |
}); | |
var e, n, r = this[0]; | |
return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, { | |
top: e.top + n.pageYOffset, | |
left: e.left + n.pageXOffset | |
}) : { | |
top: 0, | |
left: 0 | |
} : void 0 | |
}, | |
position: function() { | |
if (this[0]) { | |
var e, t, n, r = this[0], | |
i = { | |
top: 0, | |
left: 0 | |
}; | |
if ("fixed" === j.css(r, "position")) t = r.getBoundingClientRect(); | |
else { | |
for (t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === j.css(e, "position");) e = e.parentNode; | |
e && e !== r && 1 === e.nodeType && ((i = j(e).offset()).top += j.css(e, "borderTopWidth", !0), i.left += j.css(e, "borderLeftWidth", !0)) | |
} | |
return { | |
top: t.top - i.top - j.css(r, "marginTop", !0), | |
left: t.left - i.left - j.css(r, "marginLeft", !0) | |
} | |
} | |
}, | |
offsetParent: function() { | |
return this.map(function() { | |
for (var e = this.offsetParent; e && "static" === j.css(e, "position");) e = e.offsetParent; | |
return e || re | |
}) | |
} | |
}), j.each({ | |
scrollLeft: "pageXOffset", | |
scrollTop: "pageYOffset" | |
}, function(t, i) { | |
var a = "pageYOffset" === i; | |
j.fn[t] = function(e) { | |
return V(this, function(e, t, n) { | |
var r; | |
return g(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n ? r ? r[i] : e[t] : void(r ? r.scrollTo(a ? r.pageXOffset : n, a ? n : r.pageYOffset) : e[t] = n) | |
}, t, e, arguments.length) | |
} | |
}), j.each(["top", "left"], function(e, n) { | |
j.cssHooks[n] = $e(y.pixelPosition, function(e, t) { | |
if (t) return t = Qe(e, n), He.test(t) ? j(e).position()[n] + "px" : t | |
}) | |
}), j.each({ | |
Height: "height", | |
Width: "width" | |
}, function(o, s) { | |
j.each({ | |
padding: "inner" + o, | |
content: s, | |
"": "outer" + o | |
}, function(r, a) { | |
j.fn[a] = function(e, t) { | |
var n = arguments.length && (r || "boolean" != typeof e), | |
i = r || (!0 === e || !0 === t ? "margin" : "border"); | |
return V(this, function(e, t, n) { | |
var r; | |
return g(e) ? 0 === a.indexOf("outer") ? e["inner" + o] : e.document.documentElement["client" + o] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + o], r["scroll" + o], e.body["offset" + o], r["offset" + o], r["client" + o])) : void 0 === n ? j.css(e, t, i) : j.style(e, t, n, i) | |
}, s, n ? e : void 0, n) | |
} | |
}) | |
}), j.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) { | |
j.fn[t] = function(e) { | |
return this.on(t, e) | |
} | |
}), j.fn.extend({ | |
bind: function(e, t, n) { | |
return this.on(e, null, t, n) | |
}, | |
unbind: function(e, t) { | |
return this.off(e, null, t) | |
}, | |
delegate: function(e, t, n, r) { | |
return this.on(t, e, n, r) | |
}, | |
undelegate: function(e, t, n) { | |
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) | |
}, | |
hover: function(e, t) { | |
return this.mouseenter(e).mouseleave(t || e) | |
} | |
}), j.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, n) { | |
j.fn[n] = function(e, t) { | |
return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n) | |
} | |
}); | |
var rn = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; | |
j.proxy = function(e, t) { | |
var n, r, i; | |
if ("string" == typeof t && (n = e[t], t = e, e = n), v(e)) return r = s.call(arguments, 2), (i = function() { | |
return e.apply(t || this, r.concat(s.call(arguments))) | |
}).guid = e.guid = e.guid || j.guid++, i | |
}, j.holdReady = function(e) { | |
e ? j.readyWait++ : j.ready(!0) | |
}, j.isArray = Array.isArray, j.parseJSON = JSON.parse, j.nodeName = A, j.isFunction = v, j.isWindow = g, j.camelCase = G, j.type = I, j.now = Date.now, j.isNumeric = function(e) { | |
var t = j.type(e); | |
return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)) | |
}, j.trim = function(e) { | |
return null == e ? "" : (e + "").replace(rn, "") | |
}, void 0 === (dn = function() { | |
return j | |
}.apply(exports, [])) || (sn.exports = dn); | |
var an = S.jQuery, | |
on = S.$; | |
return j.noConflict = function(e) { | |
return S.$ === j && (S.$ = on), e && S.jQuery === j && (S.jQuery = an), j | |
}, void 0 === e && (S.jQuery = S.$ = j), j | |
}) | |
}, function(I, exports, T) { | |
var S; | |
/*! | |
* UAParser.js v0.7.22 | |
* Lightweight JavaScript-based User-Agent string parser | |
* https://github.com/faisalman/ua-parser-js | |
* | |
* Copyright © 2012-2019 Faisal Salman <f@faisalman.com> | |
* Licensed under MIT License | |
*/ | |
! function(i, p) { | |
"use strict"; | |
var l = "function", | |
e = "undefined", | |
t = "model", | |
n = "name", | |
r = "type", | |
a = "vendor", | |
o = "version", | |
s = "architecture", | |
d = "console", | |
c = "mobile", | |
u = "tablet", | |
f = "smarttv", | |
m = "wearable", | |
g = { | |
extend: function(e, t) { | |
var n, r = {}; | |
for (n in e) t[n] && t[n].length % 2 == 0 ? r[n] = t[n].concat(e[n]) : r[n] = e[n]; | |
return r | |
}, | |
has: function(e, t) { | |
return "string" == typeof e && -1 !== t.toLowerCase().indexOf(e.toLowerCase()) | |
}, | |
lowerize: function(e) { | |
return e.toLowerCase() | |
}, | |
major: function(e) { | |
return "string" == typeof e ? e.replace(/[^\d\.]/g, "").split(".")[0] : p | |
}, | |
trim: function(e) { | |
return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") | |
} | |
}, | |
h = { | |
rgx: function(e, t) { | |
for (var n, r, i, a, o, s = 0; s < t.length && !a;) { | |
for (var d = t[s], c = t[s + 1], u = n = 0; u < d.length && !a;) | |
if (a = d[u++].exec(e)) | |
for (r = 0; r < c.length; r++) o = a[++n], "object" == typeof(i = c[r]) && 0 < i.length ? 2 == i.length ? typeof i[1] == l ? this[i[0]] = i[1].call(this, o) : this[i[0]] = i[1] : 3 == i.length ? typeof i[1] != l || i[1].exec && i[1].test ? this[i[0]] = o ? o.replace(i[1], i[2]) : p : this[i[0]] = o ? i[1].call(this, o, i[2]) : p : 4 == i.length && (this[i[0]] = o ? i[3].call(this, o.replace(i[1], i[2])) : p) : this[i] = o || p; | |
s += 2 | |
} | |
}, | |
str: function(e, t) { | |
for (var n in t) | |
if ("object" == typeof t[n] && 0 < t[n].length) { | |
for (var r = 0; r < t[n].length; r++) | |
if (g.has(t[n][r], e)) return "?" === n ? p : n | |
} else if (g.has(t[n], e)) return "?" === n ? p : n; | |
return e | |
} | |
}, | |
b = { | |
browser: { | |
oldsafari: { | |
version: { | |
"1.0": "/8", | |
1.2: "/1", | |
1.3: "/3", | |
"2.0": "/412", | |
"2.0.2": "/416", | |
"2.0.3": "/417", | |
"2.0.4": "/419", | |
"?": "/" | |
} | |
} | |
}, | |
device: { | |
amazon: { | |
model: { | |
"Fire Phone": ["SD", "KF"] | |
} | |
}, | |
sprint: { | |
model: { | |
"Evo Shift 4G": "7373KT" | |
}, | |
vendor: { | |
HTC: "APA", | |
Sprint: "Sprint" | |
} | |
} | |
}, | |
os: { | |
windows: { | |
version: { | |
ME: "4.90", | |
"NT 3.11": "NT3.51", | |
"NT 4.0": "NT4.0", | |
2e3: "NT 5.0", | |
XP: ["NT 5.1", "NT 5.2"], | |
Vista: "NT 6.0", | |
7: "NT 6.1", | |
8: "NT 6.2", | |
8.1: "NT 6.3", | |
10: ["NT 6.4", "NT 10.0"], | |
RT: "ARM" | |
} | |
} | |
} | |
}, | |
y = { | |
browser: [ | |
[/(opera\smini)\/([\w\.-]+)/i, /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, /(opera).+version\/([\w\.]+)/i, /(opera)[\/\s]+([\w\.]+)/i], | |
[n, o], | |
[/(opios)[\/\s]+([\w\.]+)/i], | |
[ | |
[n, "Opera Mini"], o | |
], | |
[/\s(opr)\/([\w\.]+)/i], | |
[ | |
[n, "Opera"], o | |
], | |
[/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i, /(avant\s|iemobile|slim)(?:browser)?[\/\s]?([\w\.]*)/i, /(bidubrowser|baidubrowser)[\/\s]?([\w\.]+)/i, /(?:ms|\()(ie)\s([\w\.]+)/i, /(rekonq)\/([\w\.]*)/i, /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i], | |
[n, o], | |
[/(konqueror)\/([\w\.]+)/i], | |
[ | |
[n, "Konqueror"], o | |
], | |
[/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i], | |
[ | |
[n, "IE"], o | |
], | |
[/(edge|edgios|edga|edg)\/((\d+)?[\w\.]+)/i], | |
[ | |
[n, "Edge"], o | |
], | |
[/(yabrowser)\/([\w\.]+)/i], | |
[ | |
[n, "Yandex"], o | |
], | |
[/(Avast)\/([\w\.]+)/i], | |
[ | |
[n, "Avast Secure Browser"], o | |
], | |
[/(AVG)\/([\w\.]+)/i], | |
[ | |
[n, "AVG Secure Browser"], o | |
], | |
[/(puffin)\/([\w\.]+)/i], | |
[ | |
[n, "Puffin"], o | |
], | |
[/(focus)\/([\w\.]+)/i], | |
[ | |
[n, "Firefox Focus"], o | |
], | |
[/(opt)\/([\w\.]+)/i], | |
[ | |
[n, "Opera Touch"], o | |
], | |
[/((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i], | |
[ | |
[n, "UCBrowser"], o | |
], | |
[/(comodo_dragon)\/([\w\.]+)/i], | |
[ | |
[n, /_/g, " "], o | |
], | |
[/(windowswechat qbcore)\/([\w\.]+)/i], | |
[ | |
[n, "WeChat(Win) Desktop"], o | |
], | |
[/(micromessenger)\/([\w\.]+)/i], | |
[ | |
[n, "WeChat"], o | |
], | |
[/(brave)\/([\w\.]+)/i], | |
[ | |
[n, "Brave"], o | |
], | |
[/(qqbrowserlite)\/([\w\.]+)/i], | |
[n, o], | |
[/(QQ)\/([\d\.]+)/i], | |
[n, o], | |
[/m?(qqbrowser)[\/\s]?([\w\.]+)/i], | |
[n, o], | |
[/(baiduboxapp)[\/\s]?([\w\.]+)/i], | |
[n, o], | |
[/(2345Explorer)[\/\s]?([\w\.]+)/i], | |
[n, o], | |
[/(MetaSr)[\/\s]?([\w\.]+)/i], | |
[n], | |
[/(LBBROWSER)/i], | |
[n], | |
[/xiaomi\/miuibrowser\/([\w\.]+)/i], | |
[o, [n, "MIUI Browser"]], | |
[/;fbav\/([\w\.]+);/i], | |
[o, [n, "Facebook"]], | |
[/safari\s(line)\/([\w\.]+)/i, /android.+(line)\/([\w\.]+)\/iab/i], | |
[n, o], | |
[/headlesschrome(?:\/([\w\.]+)|\s)/i], | |
[o, [n, "Chrome Headless"]], | |
[/\swv\).+(chrome)\/([\w\.]+)/i], | |
[ | |
[n, /(.+)/, "$1 WebView"], o | |
], | |
[/((?:oculus|samsung)browser)\/([\w\.]+)/i], | |
[ | |
[n, /(.+(?:g|us))(.+)/, "$1 $2"], o | |
], | |
[/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i], | |
[o, [n, "Android Browser"]], | |
[/(sailfishbrowser)\/([\w\.]+)/i], | |
[ | |
[n, "Sailfish Browser"], o | |
], | |
[/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i], | |
[n, o], | |
[/(dolfin)\/([\w\.]+)/i], | |
[ | |
[n, "Dolphin"], o | |
], | |
[/(qihu|qhbrowser|qihoobrowser|360browser)/i], | |
[ | |
[n, "360 Browser"] | |
], | |
[/((?:android.+)crmo|crios)\/([\w\.]+)/i], | |
[ | |
[n, "Chrome"], o | |
], | |
[/(coast)\/([\w\.]+)/i], | |
[ | |
[n, "Opera Coast"], o | |
], | |
[/fxios\/([\w\.-]+)/i], | |
[o, [n, "Firefox"]], | |
[/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i], | |
[o, [n, "Mobile Safari"]], | |
[/version\/([\w\.]+).+?(mobile\s?safari|safari)/i], | |
[o, n], | |
[/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i], | |
[ | |
[n, "GSA"], o | |
], | |
[/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i], | |
[n, [o, h.str, b.browser.oldsafari.version]], | |
[/(webkit|khtml)\/([\w\.]+)/i], | |
[n, o], | |
[/(navigator|netscape)\/([\w\.-]+)/i], | |
[ | |
[n, "Netscape"], o | |
], | |
[/(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i, /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, /(links)\s\(([\w\.]+)/i, /(gobrowser)\/?([\w\.]*)/i, /(ice\s?browser)\/v?([\w\._]+)/i, /(mosaic)[\/\s]([\w\.]+)/i], | |
[n, o] | |
], | |
cpu: [ | |
[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i], | |
[ | |
[s, "amd64"] | |
], | |
[/(ia32(?=;))/i], | |
[ | |
[s, g.lowerize] | |
], | |
[/((?:i[346]|x)86)[;\)]/i], | |
[ | |
[s, "ia32"] | |
], | |
[/windows\s(ce|mobile);\sppc;/i], | |
[ | |
[s, "arm"] | |
], | |
[/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i], | |
[ | |
[s, /ower/, "", g.lowerize] | |
], | |
[/(sun4\w)[;\)]/i], | |
[ | |
[s, "sparc"] | |
], | |
[/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+[;l]))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i], | |
[ | |
[s, g.lowerize] | |
] | |
], | |
device: [ | |
[/\((ipad|playbook);[\w\s\),;-]+(rim|apple)/i], | |
[t, a, [r, u]], | |
[/applecoremedia\/[\w\.]+ \((ipad)/], | |
[t, [a, "Apple"], | |
[r, u] | |
], | |
[/(apple\s{0,1}tv)/i], | |
[ | |
[t, "Apple TV"], | |
[a, "Apple"], | |
[r, f] | |
], | |
[/(archos)\s(gamepad2?)/i, /(hp).+(touchpad)/i, /(hp).+(tablet)/i, /(kindle)\/([\w\.]+)/i, /\s(nook)[\w\s]+build\/(\w+)/i, /(dell)\s(strea[kpr\s\d]*[\dko])/i], | |
[a, t, [r, u]], | |
[/(kf[A-z]+)\sbuild\/.+silk\//i], | |
[t, [a, "Amazon"], | |
[r, u] | |
], | |
[/(sd|kf)[0349hijorstuw]+\sbuild\/.+silk\//i], | |
[ | |
[t, h.str, b.device.amazon.model], | |
[a, "Amazon"], | |
[r, c] | |
], | |
[/android.+aft([bms])\sbuild/i], | |
[t, [a, "Amazon"], | |
[r, f] | |
], | |
[/\((ip[honed|\s\w*]+);.+(apple)/i], | |
[t, a, [r, c]], | |
[/\((ip[honed|\s\w*]+);/i], | |
[t, [a, "Apple"], | |
[r, c] | |
], | |
[/(blackberry)[\s-]?(\w+)/i, /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i, /(hp)\s([\w\s]+\w)/i, /(asus)-?(\w+)/i], | |
[a, t, [r, c]], | |
[/\(bb10;\s(\w+)/i], | |
[t, [a, "BlackBerry"], | |
[r, c] | |
], | |
[/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone|p00c)/i], | |
[t, [a, "Asus"], | |
[r, u] | |
], | |
[/(sony)\s(tablet\s[ps])\sbuild\//i, /(sony)?(?:sgp.+)\sbuild\//i], | |
[ | |
[a, "Sony"], | |
[t, "Xperia Tablet"], | |
[r, u] | |
], | |
[/android.+\s([c-g]\d{4}|so[-l]\w+)(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i], | |
[t, [a, "Sony"], | |
[r, c] | |
], | |
[/\s(ouya)\s/i, /(nintendo)\s([wids3u]+)/i], | |
[a, t, [r, d]], | |
[/android.+;\s(shield)\sbuild/i], | |
[t, [a, "Nvidia"], | |
[r, d] | |
], | |
[/(playstation\s[34portablevi]+)/i], | |
[t, [a, "Sony"], | |
[r, d] | |
], | |
[/(sprint\s(\w+))/i], | |
[ | |
[a, h.str, b.device.sprint.vendor], | |
[t, h.str, b.device.sprint.model], | |
[r, c] | |
], | |
[/(htc)[;_\s-]+([\w\s]+(?=\)|\sbuild)|\w+)/i, /(zte)-(\w*)/i, /(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i], | |
[a, [t, /_/g, " "], | |
[r, c] | |
], | |
[/(nexus\s9)/i], | |
[t, [a, "HTC"], | |
[r, u] | |
], | |
[/d\/huawei([\w\s-]+)[;\)]/i, /(nexus\s6p|vog-l29|ane-lx1|eml-l29|ele-l29)/i], | |
[t, [a, "Huawei"], | |
[r, c] | |
], | |
[/android.+(bah2?-a?[lw]\d{2})/i], | |
[t, [a, "Huawei"], | |
[r, u] | |
], | |
[/(microsoft);\s(lumia[\s\w]+)/i], | |
[a, t, [r, c]], | |
[/[\s\(;](xbox(?:\sone)?)[\s\);]/i], | |
[t, [a, "Microsoft"], | |
[r, d] | |
], | |
[/(kin\.[onetw]{3})/i], | |
[ | |
[t, /\./g, " "], | |
[a, "Microsoft"], | |
[r, c] | |
], | |
[/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)[\w\s]+build\//i, /mot[\s-]?(\w*)/i, /(XT\d{3,4}) build\//i, /(nexus\s6)/i], | |
[t, [a, "Motorola"], | |
[r, c] | |
], | |
[/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i], | |
[t, [a, "Motorola"], | |
[r, u] | |
], | |
[/hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i], | |
[ | |
[a, g.trim], | |
[t, g.trim], | |
[r, f] | |
], | |
[/hbbtv.+maple;(\d+)/i], | |
[ | |
[t, /^/, "SmartTV"], | |
[a, "Samsung"], | |
[r, f] | |
], | |
[/\(dtv[\);].+(aquos)/i], | |
[t, [a, "Sharp"], | |
[r, f] | |
], | |
[/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i, /((SM-T\w+))/i], | |
[ | |
[a, "Samsung"], t, [r, u] | |
], | |
[/smart-tv.+(samsung)/i], | |
[a, [r, f], t], | |
[/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i, /(sam[sung]*)[\s-]*(\w+-?[\w-]*)/i, /sec-((sgh\w+))/i], | |
[ | |
[a, "Samsung"], t, [r, c] | |
], | |
[/sie-(\w*)/i], | |
[t, [a, "Siemens"], | |
[r, c] | |
], | |
[/(maemo|nokia).*(n900|lumia\s\d+)/i, /(nokia)[\s_-]?([\w-]*)/i], | |
[ | |
[a, "Nokia"], t, [r, c] | |
], | |
[/android[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i], | |
[t, [a, "Acer"], | |
[r, u] | |
], | |
[/android.+([vl]k\-?\d{3})\s+build/i], | |
[t, [a, "LG"], | |
[r, u] | |
], | |
[/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i], | |
[ | |
[a, "LG"], t, [r, u] | |
], | |
[/(lg) netcast\.tv/i], | |
[a, t, [r, f]], | |
[/(nexus\s[45])/i, /lg[e;\s\/-]+(\w*)/i, /android.+lg(\-?[\d\w]+)\s+build/i], | |
[t, [a, "LG"], | |
[r, c] | |
], | |
[/(lenovo)\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+))/i], | |
[a, t, [r, u]], | |
[/android.+(ideatab[a-z0-9\-\s]+)/i], | |
[t, [a, "Lenovo"], | |
[r, u] | |
], | |
[/(lenovo)[_\s-]?([\w-]+)/i], | |
[a, t, [r, c]], | |
[/linux;.+((jolla));/i], | |
[a, t, [r, c]], | |
[/((pebble))app\/[\d\.]+\s/i], | |
[a, t, [r, m]], | |
[/android.+;\s(oppo)\s?([\w\s]+)\sbuild/i], | |
[a, t, [r, c]], | |
[/crkey/i], | |
[ | |
[t, "Chromecast"], | |
[a, "Google"], | |
[r, f] | |
], | |
[/android.+;\s(glass)\s\d/i], | |
[t, [a, "Google"], | |
[r, m] | |
], | |
[/android.+;\s(pixel c)[\s)]/i], | |
[t, [a, "Google"], | |
[r, u] | |
], | |
[/android.+;\s(pixel( [23])?( xl)?)[\s)]/i], | |
[t, [a, "Google"], | |
[r, c] | |
], | |
[/android.+;\s(\w+)\s+build\/hm\1/i, /android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, /android.+(mi[\s\-_]*(?:a\d|one|one[\s_]plus|note lte)?[\s_]*(?:\d?\w?)[\s_]*(?:plus)?)\s+build/i, /android.+(redmi[\s\-_]*(?:note)?(?:[\s_]?[\w\s]+))\s+build/i], | |
[ | |
[t, /_/g, " "], | |
[a, "Xiaomi"], | |
[r, c] | |
], | |
[/android.+(mi[\s\-_]*(?:pad)(?:[\s_]?[\w\s]+))\s+build/i], | |
[ | |
[t, /_/g, " "], | |
[a, "Xiaomi"], | |
[r, u] | |
], | |
[/android.+;\s(m[1-5]\snote)\sbuild/i], | |
[t, [a, "Meizu"], | |
[r, c] | |
], | |
[/(mz)-([\w-]{2,})/i], | |
[ | |
[a, "Meizu"], t, [r, c] | |
], | |
[/android.+a000(1)\s+build/i, /android.+oneplus\s(a\d{4})[\s)]/i], | |
[t, [a, "OnePlus"], | |
[r, c] | |
], | |
[/android.+[;\/]\s*(RCT[\d\w]+)\s+build/i], | |
[t, [a, "RCA"], | |
[r, u] | |
], | |
[/android.+[;\/\s]+(Venue[\d\s]{2,7})\s+build/i], | |
[t, [a, "Dell"], | |
[r, u] | |
], | |
[/android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i], | |
[t, [a, "Verizon"], | |
[r, u] | |
], | |
[/android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i], | |
[ | |
[a, "Barnes & Noble"], t, [r, u] | |
], | |
[/android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i], | |
[t, [a, "NuVision"], | |
[r, u] | |
], | |
[/android.+;\s(k88)\sbuild/i], | |
[t, [a, "ZTE"], | |
[r, u] | |
], | |
[/android.+[;\/]\s*(gen\d{3})\s+build.*49h/i], | |
[t, [a, "Swiss"], | |
[r, c] | |
], | |
[/android.+[;\/]\s*(zur\d{3})\s+build/i], | |
[t, [a, "Swiss"], | |
[r, u] | |
], | |
[/android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i], | |
[t, [a, "Zeki"], | |
[r, u] | |
], | |
[/(android).+[;\/]\s+([YR]\d{2})\s+build/i, /android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(\w{5})\sbuild/i], | |
[ | |
[a, "Dragon Touch"], t, [r, u] | |
], | |
[/android.+[;\/]\s*(NS-?\w{0,9})\sbuild/i], | |
[t, [a, "Insignia"], | |
[r, u] | |
], | |
[/android.+[;\/]\s*((NX|Next)-?\w{0,9})\s+build/i], | |
[t, [a, "NextBook"], | |
[r, u] | |
], | |
[/android.+[;\/]\s*(Xtreme\_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i], | |
[ | |
[a, "Voice"], t, [r, c] | |
], | |
[/android.+[;\/]\s*(LVTEL\-)?(V1[12])\s+build/i], | |
[ | |
[a, "LvTel"], t, [r, c] | |
], | |
[/android.+;\s(PH-1)\s/i], | |
[t, [a, "Essential"], | |
[r, c] | |
], | |
[/android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i], | |
[t, [a, "Envizen"], | |
[r, u] | |
], | |
[/android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(\w{1,9})\s+build/i], | |
[a, t, [r, u]], | |
[/android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i], | |
[t, [a, "MachSpeed"], | |
[r, u] | |
], | |
[/android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i], | |
[a, t, [r, u]], | |
[/android.+[;\/]\s*TU_(1491)\s+build/i], | |
[t, [a, "Rotor"], | |
[r, u] | |
], | |
[/android.+(KS(.+))\s+build/i], | |
[t, [a, "Amazon"], | |
[r, u] | |
], | |
[/android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i], | |
[a, t, [r, u]], | |
[/\s(tablet|tab)[;\/]/i, /\s(mobile)(?:[;\/]|\ssafari)/i], | |
[ | |
[r, g.lowerize], a, t | |
], | |
[/[\s\/\(](smart-?tv)[;\)]/i], | |
[ | |
[r, f] | |
], | |
[/(android[\w\.\s\-]{0,9});.+build/i], | |
[t, [a, "Generic"]] | |
], | |
engine: [ | |
[/windows.+\sedge\/([\w\.]+)/i], | |
[o, [n, "EdgeHTML"]], | |
[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], | |
[o, [n, "Blink"]], | |
[/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, /(icab)[\/\s]([23]\.[\d\.]+)/i], | |
[n, o], | |
[/rv\:([\w\.]{1,9}).+(gecko)/i], | |
[o, n] | |
], | |
os: [ | |
[/microsoft\s(windows)\s(vista|xp)/i], | |
[n, o], | |
[/(windows)\snt\s6\.2;\s(arm)/i, /(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i, /(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i], | |
[n, [o, h.str, b.os.windows.version]], | |
[/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i], | |
[ | |
[n, "Windows"], | |
[o, h.str, b.os.windows.version] | |
], | |
[/\((bb)(10);/i], | |
[ | |
[n, "BlackBerry"], o | |
], | |
[/(blackberry)\w*\/?([\w\.]*)/i, /(tizen|kaios)[\/\s]([\w\.]+)/i, /(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i], | |
[n, o], | |
[/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i], | |
[ | |
[n, "Symbian"], o | |
], | |
[/\((series40);/i], | |
[n], | |
[/mozilla.+\(mobile;.+gecko.+firefox/i], | |
[ | |
[n, "Firefox OS"], o | |
], | |
[/(nintendo|playstation)\s([wids34portablevu]+)/i, /(mint)[\/\s\(]?(\w*)/i, /(mageia|vectorlinux)[;\s]/i, /(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i, /(hurd|linux)\s?([\w\.]*)/i, /(gnu)\s?([\w\.]*)/i], | |
[n, o], | |
[/(cros)\s[\w]+\s([\w\.]+\w)/i], | |
[ | |
[n, "Chromium OS"], o | |
], | |
[/(sunos)\s?([\w\.\d]*)/i], | |
[ | |
[n, "Solaris"], o | |
], | |
[/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i], | |
[n, o], | |
[/(haiku)\s(\w+)/i], | |
[n, o], | |
[/cfnetwork\/.+darwin/i, /ip[honead]{2,4}(?:.*os\s([\w]+)\slike\smac|;\sopera)/i], | |
[ | |
[o, /_/g, "."], | |
[n, "iOS"] | |
], | |
[/(mac\sos\sx)\s?([\w\s\.]*)/i, /(macintosh|mac(?=_powerpc)\s)/i], | |
[ | |
[n, "Mac OS"], | |
[o, /_/g, "."] | |
], | |
[/((?:open)?solaris)[\/\s-]?([\w\.]*)/i, /(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i, /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i, /(unix)\s?([\w\.]*)/i], | |
[n, o] | |
] | |
}, | |
v = function(e, t) { | |
if ("object" == typeof e && (t = e, e = p), !(this instanceof v)) return new v(e, t).getResult(); | |
var n = e || (i && i.navigator && i.navigator.userAgent ? i.navigator.userAgent : ""), | |
r = t ? g.extend(y, t) : y; | |
return this.getBrowser = function() { | |
var e = { | |
name: p, | |
version: p | |
}; | |
return h.rgx.call(e, n, r.browser), e.major = g.major(e.version), e | |
}, this.getCPU = function() { | |
var e = { | |
architecture: p | |
}; | |
return h.rgx.call(e, n, r.cpu), e | |
}, this.getDevice = function() { | |
var e = { | |
vendor: p, | |
model: p, | |
type: p | |
}; | |
return h.rgx.call(e, n, r.device), e | |
}, this.getEngine = function() { | |
var e = { | |
name: p, | |
version: p | |
}; | |
return h.rgx.call(e, n, r.engine), e | |
}, this.getOS = function() { | |
var e = { | |
name: p, | |
version: p | |
}; | |
return h.rgx.call(e, n, r.os), e | |
}, this.getResult = function() { | |
return { | |
ua: this.getUA(), | |
browser: this.getBrowser(), | |
engine: this.getEngine(), | |
os: this.getOS(), | |
device: this.getDevice(), | |
cpu: this.getCPU() | |
} | |
}, this.getUA = function() { | |
return n | |
}, this.setUA = function(e) { | |
return n = e, this | |
}, this | |
}; | |
v.VERSION = "0.7.22", v.BROWSER = { | |
NAME: n, | |
MAJOR: "major", | |
VERSION: o | |
}, v.CPU = { | |
ARCHITECTURE: s | |
}, v.DEVICE = { | |
MODEL: t, | |
VENDOR: a, | |
TYPE: r, | |
CONSOLE: d, | |
MOBILE: c, | |
SMARTTV: f, | |
TABLET: u, | |
WEARABLE: m, | |
EMBEDDED: "embedded" | |
}, v.ENGINE = { | |
NAME: n, | |
VERSION: o | |
}, v.OS = { | |
NAME: n, | |
VERSION: o | |
}, typeof exports != e ? (typeof I != e && I.exports && (exports = I.exports = v), exports.UAParser = v) : (S = function() { | |
return v | |
}.call(exports, T, exports, I)) === p || (I.exports = S); | |
var w, $ = i && (i.jQuery || i.Zepto); | |
$ && !$.ua && (w = new v, $.ua = w.getResult(), $.ua.get = function() { | |
return w.getUA() | |
}, $.ua.set = function(e) { | |
w.setUA(e); | |
var t, n = w.getResult(); | |
for (t in n) $.ua[t] = n[t] | |
}) | |
}("object" == typeof window ? window : this) | |
}, function(e, t, s) { | |
"use strict"; | |
s.r(t), s.d(t, "AdManager", function() { | |
return Un | |
}); | |
var d = s(10), | |
j = s(1), | |
T = s(0), | |
a = (i.removeExpired = function() { | |
try { | |
Object.keys(i.context.localStorage).forEach(function(e) { | |
var t, n; | |
!e.match("^" + i.prefix) || (t = i.context.localStorage.getItem(e)) && (n = JSON.parse(t), (new Date).getTime() > n.expiresIn + n.createdAt && i.context.localStorage.removeItem(e)) | |
}) | |
} catch (e) {} | |
}, i.set = function(e, t, n) { | |
void 0 === n && (n = -1); | |
try { | |
i.context.localStorage.setItem(i.prefix + e, JSON.stringify({ | |
storedValue: t, | |
createdAt: (new Date).getTime(), | |
expiresIn: n | |
})) | |
} catch (e) { | |
T.a.warn("Failed to create local storage entry") | |
} | |
}, i.get = function(e) { | |
var t = i.prefix + e; | |
try { | |
var n = i.context.localStorage.getItem(t); | |
if (n) { | |
var r = JSON.parse(n); | |
if (-1 == r.expiresIn) return r; | |
if (!((new Date).getTime() > r.expiresIn + r.createdAt)) return r; | |
i.context.localStorage.removeItem(t) | |
} | |
} catch (e) { | |
T.a.warn("Failed to fetch local storage entry") | |
} | |
return null | |
}, i.getValue = function(e) { | |
var t = i.get(e); | |
return null === t ? null : t.storedValue | |
}, i.prefix = "vms--", i.context = j.a.getTopMostParentWindow(), i); | |
function i() {} | |
var n = s(17), | |
y = s(6), | |
c = (r.ready = function(e, t) { | |
var n = void 0 === t ? window : t; | |
"loading" !== n.document.readyState ? e() : n.document.addEventListener("DOMContentLoaded", function() { | |
e() | |
}) | |
}, r.insertAfter = function(e, t) { | |
e.parentNode.insertBefore(t, e.nextSibling) | |
}, r.getOwnerWindow = function(e) { | |
return e.ownerDocument.defaultView || e.ownerDocument.parentWindow | |
}, r); | |
function r() {} | |
var u = s(7), | |
S = s(2), | |
v = s(9), | |
p = s(18), | |
k = (o.prototype.isBid = function() { | |
return 0 < this.cpm | |
}, o.prototype.getAd = function() { | |
return this.ad | |
}, o.prototype.getAdUrl = function() { | |
return this.adUrl | |
}, o.prototype.getAdId = function() { | |
return this.adId | |
}, o.prototype.getAdUnitCode = function() { | |
return this.adUnitCode | |
}, o.prototype.getPlacementId = function() { | |
return this.placementId | |
}, o.prototype.getPlacementPos = function() { | |
return this.placementPos | |
}, o.prototype.getLoopIndex = function() { | |
return this.loopIndex | |
}, o.prototype.getPlacementInstanceId = function() { | |
return this.placementPos + "-" + this.placementId + "-" + this.loopIndex | |
}, o.prototype.getPositionalPlacementId = function() { | |
return this.placementPos + "-" + this.placementId | |
}, o.prototype.getBuyerId = function() { | |
return this.buyerId | |
}, o.prototype.getDealId = function() { | |
return this.dealId | |
}, o.prototype.getCreativeId = function() { | |
return this.creativeId | |
}, o.prototype.getBidder = function() { | |
return this.bidder | |
}, o.prototype.getCPM = function() { | |
return this.cpm | |
}, o.prototype.getPriceBucket = function() { | |
return this.priceBucket | |
}, o.prototype.getAdjustedCPM = function() { | |
return this.cpm | |
}, o.prototype.getWinType = function() { | |
return this.isBidDirect ? "direct" : "blank" === this.bidder ? "blank" : "psa" === this.bidder ? "psa" : "default" === this.bidder ? "default" : "mediation" === this.bidder ? "blank" : "rtb" | |
}, o.prototype.isDirect = function() { | |
return this.isBidDirect | |
}, o.prototype.isBlank = function() { | |
return "blank" === this.bidder | |
}, o.prototype.isPSA = function() { | |
return "psa" === this.bidder | |
}, o.prototype.isDefault = function() { | |
return "default" === this.bidder | |
}, o.prototype.getSize = function() { | |
return this.size | |
}, o.prototype.getTimeToRespond = function() { | |
return this.timeToRespond | |
}, o.prototype.getTTL = function() { | |
return this.ttl | |
}, o.prototype.getCreatedAt = function() { | |
return this.createdAt | |
}, o.prototype.getValidUntil = function() { | |
return this.validUntil | |
}, o.prototype.isStillValid = function() { | |
return (new Date).getTime() < this.validUntil | |
}, o.prototype.getExpiresIn = function() { | |
var e = this.validUntil - (new Date).getTime(); | |
return 0 < e ? e : 0 | |
}, o.prototype.hasExpired = function() { | |
return !this.isStillValid() | |
}, o.prototype.getRawResponse = function() { | |
return this.rawResponse | |
}, o.prototype.getAsMediationRule = function() { | |
return new p.a({ | |
adapter_cpm: this.getCPM(), | |
adapter_name: this.getBidder(), | |
adapter_tag: JSON.stringify({ | |
ad: this.getAd() | |
}), | |
linked_placement_id: "", | |
order_index: 1, | |
target_device: "all", | |
target_geo: "ALL", | |
target_size: "0x0" | |
}) | |
}, o.prototype.getSizeTargetingKey = function() { | |
return this._sizeTargetingKey | |
}, o); | |
function o(e) { | |
this.buyerId = "", this.dealId = "", this.creativeId = "", this.adUrl = e.adUrl, this.adId = e.adId, this.adUnitCode = e.adUnitCode; | |
var t = e.adUnitCode.split("-"); | |
this.placementId = t[1], this.placementPos = Number(t[0]), this.loopIndex = Number(t[2]), void 0 !== e.creative_id ? this.creativeId = e.creative_id + "" : void 0 !== e.creativeId && (this.creativeId = e.creativeId + ""), "appnexusAst" === e.bidder ? this.bidder = "appnexus" : "ix" === e.bidder ? this.bidder = "indexExchange" : this.bidder = e.bidder, "number" != typeof e.cpm ? this.cpm = Number(e.cpm) : this.cpm = e.cpm, "string" == typeof e.priceBucket && (this.priceBucket = e.priceBucket), S.a.bidderNetValuesRatio.has(this.bidder) && (this.cpm = this.cpm * S.a.bidderNetValuesRatio.get(this.bidder)), this.isBidDirect = !0 === e.is_direct, this.bidder.match(/^(gum|just|jp)/) && (this.isBidDirect = !0), "audienceNetwork" === this.bidder ? this.size = new v.a(e.fb_format) : (void 0 === e.size && (e.size = e.width + "x" + e.height), this.size = new v.a(e.size)), void 0 === e.ad ? this.ad = '<iframe src="' + e.adUrl + '" allowtransparency="true" frameborder="0" width="' + this.size.getWidth() + '" height="' + this.size.getHeight() + '" marginheight="0" marginwidth="0" />' : this.ad = e.ad, this.timeToRespond = e.timeToRespond, this.ttl = "number" == typeof e.ttl && 1e3 * e.ttl > S.a.defaultBidTTLMS ? Math.min(1e3 * e.ttl, S.a.maxBidTTLMS) : S.a.defaultBidTTLMS, this.createdAt = (new Date).getTime(), this.validUntil = this.createdAt + this.ttl, "string" == typeof(this.rawResponse = e)._sizeTargetingKey && (this._sizeTargetingKey = e._sizeTargetingKey) | |
} | |
var g = (l.prototype.getPlacementPos = function() { | |
return this.placementPos | |
}, l.prototype.getPlacementId = function() { | |
return this.placementId | |
}, l.prototype.getLoopIndex = function() { | |
return this.loopIndex | |
}, l.prototype.addBid = function(e) { | |
this.adapterBids.push(e) | |
}, l.prototype.addBids = function(e) { | |
this.adapterBids = this.adapterBids.concat(e) | |
}, l.prototype.getBids = function() { | |
return this.adapterBids | |
}, l); | |
function l(e, t, n, r) { | |
this.placementPos = e, this.placementId = t, this.loopIndex = n, this.adapterBids = r | |
} | |
var A = s(4), | |
f = (m.prototype.push = function(e) { | |
this.data.push(e) | |
}, m.prototype.pop = function() { | |
return this.data.shift() | |
}, m.prototype.popEach = function(e) { | |
for (; 0 < this.data.length;) e(this.pop()) | |
}, m.prototype.clear = function() { | |
this.data = [] | |
}, m.prototype.length = function() { | |
return this.data.length | |
}, m); | |
function m(e) { | |
var t = this; | |
this.data = [], void 0 !== e && e.forEach(function(e) { | |
return t.data.push(e) | |
}) | |
} | |
s(33); | |
var h = (b.preFetch = function() {}, b.isReady = function(e) { | |
e() | |
}, b.get = function() { | |
return this.prebidVersion = vmpbjs.version, Promise.resolve(vmpbjs) | |
}, b); | |
function b() {} | |
var w = s(12), | |
E = s(5), | |
I = s(11), | |
O = (_.create = function(e, t, n, r, i, a) { | |
void 0 === i && (i = !1), void 0 === a && (a = !1), this.q.push({ | |
adUnits: e, | |
success: t, | |
loopIndex: n, | |
error: r, | |
COPPAApplies: i, | |
useThirdPartyCMP: a | |
}) | |
}, _.createTestAdapterBidForAdUnit = function(e, t, n) { | |
return new k({ | |
ad: "TEST AD", | |
adId: w.a.createShortGUID(), | |
adUnitCode: e, | |
bidder: t, | |
cpm: 10, | |
size: n.getSize(), | |
timeToRespond: 0 | |
}) | |
}, _.createMissingAdapterBidsForAdUnit = function(e, n, r, i) { | |
void 0 === r && (r = new A.a), void 0 === i && (i = !1); | |
var a = []; | |
return e.forEach(function(e) { | |
e.code === n && e.bids.forEach(function(e) { | |
var t = e.bidder; | |
r.has(t) || a.push(new k({ | |
ad: "", | |
adId: w.a.createShortGUID(), | |
adUnitCode: n, | |
bidder: t, | |
cpm: 0, | |
size: "0x0", | |
width: 0, | |
height: 0, | |
timeToRespond: i ? -1 : 0, | |
_sizeTargetingKey: e._sizeTargetingKey | |
})) | |
}) | |
}), a | |
}, _.processNextRequest = function() { | |
var e, m, n, r, i, t, a, s; | |
this.isRequesting || void 0 !== (e = this.q.pop()) && (this.isRequesting = !0, m = e.adUnits, n = e.success, r = e.loopIndex, i = e.error, t = e.COPPAApplies, T.a.info("Requesting bids for placements"), a = new A.a(m.map(function(e) { | |
return [e.code, !0] | |
})), S.a.bypassPrebid || S.a.isShowcaseMode || t ? (s = [], a.forEach(function(e, t) { | |
var n = t; | |
T.a.warn("Bypassing Prebid for " + n); | |
var r = n.split("-"), | |
i = Number(r[0]), | |
a = r[1], | |
o = Number(r[2]); | |
s.push(new g(i, a, o, _.createMissingAdapterBidsForAdUnit(m, n, new A.a, !0))) | |
}), _.isRequesting = !1, n(s)) : h.get().then(function(e) { | |
var t = { | |
bidderTimeout: 1 < r ? S.a.prebidGlobalExtendedTimeoutMS : S.a.prebidBidderTimeoutMS, | |
debug: E.a.has("pdbg"), | |
consentManagement: { | |
cmp: "iab", | |
consentRequired: I.a.get().isGDPRRequired(), | |
timeout: S.a.prebidCMPTimeoutMS, | |
allowAuctionWithoutConsent: !0 | |
} | |
}; | |
S.a.prebidUseS2S && (T.a.debug("Enabling S2S on Prebid"), t.s2sConfig = { | |
accountId: "d296f9ad-b275-4771-9d42-de70f6e70504", | |
bidders: ["rubicon", "audienceNetwork", "appnexus"], | |
enabled: !0, | |
timeout: S.a.prebidBidderTimeoutMS, | |
adapter: "prebidServer", | |
endpoint: "https://prebid.adnxs.com/pbs/v1/auction", | |
syncEndpoint: "https://prebid.adnxs.com/pbs/v1/cookie_sync", | |
cookieSet: !0, | |
cookieSetUrl: "https://acdn.adnxs.com/cookieset/cs.js" | |
}), t.usersync = { | |
userIds: [{ | |
name: "id5Id", | |
params: { | |
partner: 258 | |
}, | |
storage: { | |
type: "cookie", | |
name: "pbjs-id5id", | |
expires: 90, | |
refreshInSeconds: 28800 | |
} | |
}, { | |
name: "unifiedId", | |
params: { | |
partner: "zwqtqe4" | |
}, | |
storage: { | |
type: "cookie", | |
name: "pbjs-unifiedid", | |
expires: 60 | |
} | |
}], | |
syncDelay: 2e3 | |
}, t.schain = { | |
validation: "strict", | |
config: { | |
ver: "1.0", | |
complete: 1, | |
nodes: [{ | |
asi: "venatusmedia.com", | |
sid: y.a.get("data-site-id"), | |
hp: 1 | |
}] | |
} | |
}, T.a.debug("Prebid Config", t), (e = e || {}).que = e.que || [], e.que.push(function() { | |
e.hardReset(), e.setConfig(t), e.requestBids({ | |
adUnits: m, | |
timeout: 1 < r ? S.a.prebidGlobalExtendedTimeoutMS : S.a.prebidGlobalTimeoutMS, | |
bidsBackHandler: function(p, l) { | |
void 0 === l && (l = !1), T.a.debug("Bids have been returned, now pre-processing them", p), l && T.a.warn("Bid request timed out..."), setTimeout(function() { | |
_.isRequesting = !1 | |
}, S.a.bidRequestUnlockDelay); | |
try { | |
var f = []; | |
a.forEach(function(e, t) { | |
var n = t, | |
i = p.hasOwnProperty(n) ? p[n].bids : [], | |
r = n.split("-"), | |
a = Number(r[0]), | |
o = r[1], | |
s = Number(r[2]); | |
if (0 < i.length) { | |
for (var d = [], c = new A.a, u = 0; u < i.length; u++) ! function(e) { | |
function t() { | |
c.set(r, !0), d.push(new k(n)) | |
} | |
var n = JSON.parse(JSON.stringify(i[e])), | |
r = n.bidder + ""; | |
!E.a.has("only-allow") || r == E.a.getValue("only-allow") ? t() : T.a.warn("Not allowing " + r + " as it doesn't match allowed bidder " + E.a.getValue("only-allow")) | |
}(u); | |
d = d.concat(_.createMissingAdapterBidsForAdUnit(m, n, c)), f.push(new g(a, o, s, d)) | |
} else T.a.debug("No bids returned for " + n), f.push(new g(a, o, s, _.createMissingAdapterBidsForAdUnit(m, n, new A.a, l))) | |
}), _.isRequesting = !1, n(f) | |
} catch (e) { | |
T.a.error(e), _.isRequesting = !1, i(e) | |
} | |
} | |
}) | |
}) | |
})) | |
}, _.q = new f, _.isRequesting = !1, _); | |
function _() {} | |
var C = (x.prototype.getAuctionId = function() { | |
return this.auctionId | |
}, x.prototype.getWinningBid = function() { | |
return this.winningAdapterBid | |
}, x.prototype.getBidLandscape = function() { | |
return this.bidLandscape | |
}, x.prototype.getAppliedPaymentRule = function() { | |
return this.appliedPaymentRule | |
}, x.prototype.getSuccessfulAdapterBids = function() { | |
return this.successfulAdapterBids | |
}, x); | |
function x(e, t, n, r) { | |
this.auctionId = w.a.createGUID("a"), this.winningAdapterBid = e, this.bidLandscape = t, this.appliedPaymentRule = n, this.successfulAdapterBids = void 0 === r ? [] : r | |
} | |
var R = (D.isEmpty = function() { | |
return 0 === this.stash.size() | |
}, D.clearStash = function() { | |
this.stash.clear() | |
}, D.add = function(e) { | |
var t = this.stash.getOrElse(e.adapterBid.getPlacementInstanceId(), []); | |
t.push(e), this.stash.set(e.adapterBid.getPlacementInstanceId(), t) | |
}, D.getStash = function() { | |
return this.stash | |
}, D.getStashedAdapterBids = function(e) { | |
return this.stash.has(e) ? this.stash.get(e) : [] | |
}, D.stash = new A.a, D); | |
function D() {} | |
var P = s(22), | |
U = (N.getWinningBids = function(v, e, w) { | |
void 0 === w && (w = new A.a); | |
var I = v.getPlacements(), | |
t = e.map(function(e) { | |
var t = e.getPlacementId(), | |
n = e.getPlacementPos(), | |
r = e.getLoopIndex(), | |
i = e.getBids(), | |
a = I.get(t), | |
o = a.getPaymentRules(), | |
s = a.getSmallestSize().getWidth(), | |
d = a.getSmallestSize().getHeight(), | |
c = a.getSmallestSize().getSize(), | |
u = n + "-" + t + "-" + r, | |
p = !w.has(n + "-" + t) || j.a.isInView(w.get(n + "-" + t)) && j.a.hasFocus(); | |
i.forEach(function(e) { | |
e.getLoopIndex() === r && (a.getBestMatchingConnectorFromAdapterBid(e) || T.a.error("Failed to find connector rule for adapter bid " + e.getBidder())) | |
}); | |
var l = i.filter(function(e) { | |
if (e.isStillValid() && e.getCPM() >= S.a.minBidCPM) { | |
if (e.isDirect() && a.isBanner() && (!p || 1 != r)) return T.a.warn("Rejected DIRECT bid as placement was determined not to be in view and not first load"), !1; | |
var t = a.getBestMatchingConnectorFromAdapterBid(e); | |
return t && e.getCPM() < t.getAdapterFloor() ? (T.a.warn("Rejected bid from " + e.getBidder() + " as it failed to hit the floor price set at " + t.getAdapterFloor()), !1) : !0 | |
} | |
return !1 | |
}).map(function(t) { | |
var e = o.filter(function(e) { | |
return ("ALL" === e.getTargetCountryCode() || e.getTargetCountryCode() === v.getCurrentCountryCode()) && (("RTB" !== e.getTargetImpressionType() || !t.isDirect()) && ("0x0" === e.getTargetSize().getSize() || e.getTargetSize().getSize() === t.getSize().getSize())) | |
}); | |
return 0 < e.length ? { | |
adapterBid: t, | |
paymentRule: e[0] | |
} : { | |
adapterBid: t | |
} | |
}).filter(function(e) { | |
var t = e.adapterBid, | |
n = e.paymentRule; | |
return !!t.isDirect() || (void 0 === n || t.getCPM() >= n.getPaymentFloor()) | |
}); | |
l.filter(function(e) { | |
return S.a.mediationBidders.has(e.adapterBid.getBidder().toUpperCase()) | |
}).forEach(function(e) { | |
R.add(e) | |
}); | |
var f = l.filter(function(e) { | |
return !S.a.mediationBidders.has(e.adapterBid.getBidder().toUpperCase()) | |
}); | |
if (S.a.isShowcaseMode) return E.a.has("collapse-units") ? new C(new k({ | |
ad: "<script>window.frameElement.parentNode.parentNode.removeChild(window.frameElement.parentNode)<\/script>", | |
adUnitCode: u, | |
bidder: "showcase", | |
cpm: 0, | |
size: "0x0", | |
timeToRespond: 0 | |
}), i) : new C(new k({ | |
ad: '<div style="' + [ | |
["width", s - 10 + "px"], | |
["height", d - 10 + "px"], | |
["background", "#f2f2f2 url('https://hb.vntsm.com/assets/venatus_gscale.png')"], | |
["border", "5px dashed #e2e2e2"], | |
["background-repeat", "no-repeat"], | |
["background-position", "center"] | |
].map(function(e) { | |
return e[0] + ":" + e[1] | |
}).join(";") + '"></div>', | |
adUnitCode: u, | |
bidder: "showcase", | |
cpm: 0, | |
size: c, | |
timeToRespond: 0 | |
}), i); | |
if (0 < f.length) { | |
var m = new P.a(f), | |
g = m.sort(function(e, t) { | |
return e.adapterBid.getAdjustedCPM() < t.adapterBid.getAdjustedCPM() ? 1 : -1 | |
}).asArray(), | |
h = m.findOne(function(e) { | |
return e.adapterBid.isDirect() | |
}); | |
return null === h && (h = g[0]), new C(h.adapterBid, i, h.paymentRule, g.slice(1).map(function(e) { | |
return e.adapterBid | |
})) | |
} | |
var b = w.get(n + "-" + t), | |
y = b && b.getAttribute("data-skip-psa"); | |
return y || "" === a.getDefaultCreative().trim() ? !y && S.a.psaMap.has(c) ? new C(new k({ | |
ad: S.a.psaMap.get(c), | |
adUnitCode: u, | |
bidder: "psa", | |
cpm: 0, | |
size: c, | |
timeToRespond: 0 | |
}), i) : new C(new k({ | |
ad: "\x3c!-- Blank --\x3e", | |
adUnitCode: u, | |
bidder: "blank", | |
cpm: 0, | |
size: c, | |
timeToRespond: 0 | |
}), i) : new C(new k({ | |
ad: a.getDefaultCreative(), | |
adUnitCode: u, | |
bidder: "default", | |
cpm: 0, | |
size: c, | |
timeToRespond: 0 | |
}), i) | |
}); | |
return t.some(function(e) { | |
return e.getWinningBid().isDirect() && "1x1" == e.getWinningBid().getSize().getSize() | |
}) && t.forEach(function(e) { | |
var t = w.get(e.getWinningBid().getPlacementPos() + "-" + e.getWinningBid().getPlacementId()); | |
"atf-leaderboard" == t.getAttribute("data-display-type") && t.setAttribute("data-filter-out", "true") | |
}), t | |
}, N); | |
function N() {} | |
var B = s(8), | |
q = (z.prototype.getConfig = function() { | |
return this.config | |
}, z.prototype.getMediation = function() { | |
return this.mediation | |
}, z.prototype.getMediationRule = function() { | |
return this.mediationRule | |
}, z.prototype.complete = function() { | |
var e; | |
null !== this.onComplete && (e = this.onComplete, this.onComplete = null, e()) | |
}, z); | |
function z(e, t, n, r) { | |
var i = {}; | |
try { | |
i = JSON.parse(t.getAdapterTag()) | |
} catch (e) { | |
T.a.error("Failed to parse mediation config: " + t.getAdapterTag()) | |
} | |
void 0 !== n && n.forEach(function(e, t) { | |
i[t] = e | |
}), this.onComplete = void 0 !== r ? r : null, this.config = i, this.mediation = e, this.mediationRule = t | |
} | |
var M = (V.add = function(e, t, n) { | |
void 0 === n && (n = "any"), this.scheduledFunctions.push({ | |
f: e, | |
when: (new Date).getTime() + t, | |
called: !1, | |
name: n | |
}) | |
}, V.process = function() { | |
for (var e = 0; e < this.scheduledFunctions.length; e++) | |
if ((new Date).getTime() >= this.scheduledFunctions[e].when) { | |
try { | |
this.scheduledFunctions[e].f() | |
} catch (e) {} | |
this.scheduledFunctions[e].called = !0 | |
} this.scheduledFunctions = this.scheduledFunctions.filter(function(e) { | |
return !e.called | |
}) | |
}, V.itemsScheduled = function(e) { | |
if (void 0 === e) return this.scheduledFunctions.length; | |
for (var t = 0, n = 0; n < this.scheduledFunctions.length; n++) this.scheduledFunctions[n].name == e && t++; | |
return t | |
}, V.clearAll = function() { | |
this.scheduledFunctions = [] | |
}, V.clearByName = function(t) { | |
this.scheduledFunctions = this.scheduledFunctions.filter(function(e) { | |
return e.name != t | |
}) | |
}, V.scheduledFunctions = [], V); | |
function V() {} | |
var L, F, W = (L = function(e, t) { | |
return (L = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
L(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
}), | |
G = function() { | |
return (G = Object.assign || function(e) { | |
for (var t, n = 1, r = arguments.length; n < r; n++) | |
for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); | |
return e | |
}).apply(this, arguments) | |
}, | |
H = (W(J, F = q), J.prototype.run = function() { | |
var c = this, | |
u = this, | |
p = this.getConfig(); | |
return new Promise(function(s, d) { | |
I.a.get().getConsentData(function(e) { | |
var t, n = j.a.getTopMostParentDocument(), | |
r = G({ | |
pid: "", | |
sid: "", | |
playerContainerId: "", | |
playerId: "", | |
playerWidth: 480, | |
playerHeight: 300, | |
execution: "outstream", | |
placement: "slider", | |
playInitiation: "auto", | |
volume: 0, | |
trackImp: "", | |
trackClick: "", | |
custom1: "", | |
custom2: "", | |
custom3: j.a.hasFocus() ? "1" : "0", | |
pubMacros: "", | |
gdpr: e.gdprApplies ? "1" : "0", | |
gdprcs: e.consentData, | |
dfp: !1, | |
close: !1, | |
closeDelay: 0, | |
lkqdId: w.a.createGUID() | |
}, p.props), | |
i = { | |
slot: n.getElementById(r.playerContainerId), | |
videoSlot: n.getElementById(r.playerId), | |
videoSlotCanAutoPlay: !0, | |
lkqdSettings: r | |
}, | |
a = n.createElement("iframe"); | |
a.id = r.lkqdId, a.name = r.lkqdId, a.style.display = "none"; | |
function o() { | |
var e = a.contentWindow.document.createElement("script"); | |
e.src = "https://ad.lkqd.net/vpaid/formats.js?pid=" + r.pid + "&sid=" + r.sid, e.onerror = function() { | |
return d(u) | |
}, e.onload = function() { | |
(t = a.contentWindow.getVPAIDAd()).subscribe(function() { | |
t.startAd() | |
}, "AdLoaded"), t.subscribe(function() { | |
var e = void 0 === p.frequency_cap_seconds ? S.a.lkqdDefaultRefreshMS : 1e3 * p.frequency_cap_seconds; | |
M.add(function() { | |
return c.run().catch(function() { | |
return T.a.debug("LKQD - No Demand") | |
}) | |
}, e, "refresh"), s(u) | |
}, "AdImpression"), t.subscribe(function() { | |
d(u) | |
}, "AdError"), t.handshakeVersion("2.0"), t.initAd(r.playerWidth, r.playerHeight, "normal", 600, "", i) | |
}, a.contentWindow.document.body.appendChild(e) | |
} | |
a.onload = o, a.onerror = o, n.documentElement.appendChild(a) | |
}) | |
}) | |
}, J); | |
function J() { | |
return null !== F && F.apply(this, arguments) || this | |
} | |
var Y, K, X = s(16), | |
Q = (Y = function(e, t) { | |
return (Y = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
Y(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
}), | |
Z = function() { | |
return (Z = Object.assign || function(e) { | |
for (var t, n = 1, r = arguments.length; n < r; n++) | |
for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); | |
return e | |
}).apply(this, arguments) | |
}, | |
ee = (Q(te, K = q), te.prototype.run = function() { | |
var c = this, | |
u = this, | |
p = this.getConfig(); | |
return new Promise(function(s, d) { | |
I.a.get().getConsentData(function(e) { | |
var t, n, r, i, a, o; | |
null === X.a.get("outstream-slider") ? (t = j.a.getTopMostParentDocument(), n = Z({ | |
pid: "", | |
sid: "", | |
playerContainerId: "", | |
playerId: "", | |
playerWidth: 480, | |
playerHeight: 300, | |
execution: "outstream", | |
placement: "slider", | |
playInitiation: "auto", | |
volume: 0, | |
trackImp: "", | |
trackClick: "", | |
custom1: "", | |
custom2: "", | |
custom3: "", | |
pubMacros: "", | |
gdpr: e.gdprApplies ? "1" : "0", | |
gdprcs: e.consentData, | |
dfp: !1, | |
close: !1, | |
closeDelay: 0, | |
lkqdId: w.a.createGUID() | |
}, p.props), i = { | |
slot: t.getElementById(n.playerContainerId), | |
videoSlot: t.getElementById(n.playerId), | |
videoSlotCanAutoPlay: !0, | |
lkqdSettings: n | |
}, (a = t.createElement("iframe")).id = n.lkqdId, a.name = n.lkqdId, a.style.display = "none", o = function() { | |
var e = a.contentWindow.document.createElement("script"); | |
e.src = "https://ad.lkqd.net/vpaid/formats.js?pid=" + n.pid + "&sid=" + n.sid, e.onload = function() { | |
(r = a.contentWindow.getVPAIDAd()).subscribe(function() { | |
r.startAd() | |
}, "AdLoaded"), r.subscribe(function() { | |
c.complete() | |
}, "AdPaused"), r.subscribe(function() { | |
c.complete() | |
}, "AdStopped"), r.subscribe(function() { | |
c.complete() | |
}, "AdSkipped"), r.subscribe(function() { | |
void 0 !== p.frequency_cap_seconds && X.a.set("outstream-slider", "cap", p.frequency_cap_seconds - 10), s(u) | |
}, "AdImpression"), r.subscribe(function() { | |
d(u) | |
}, "AdError"), r.handshakeVersion("2.0"), r.initAd(n.playerWidth, n.playerHeight, "normal", 600, "", i) | |
}, a.contentWindow.document.body.appendChild(e) | |
}, a.onload = o, a.onerror = o, t.documentElement.appendChild(a)) : d(u) | |
}) | |
}) | |
}, te); | |
function te() { | |
return null !== K && K.apply(this, arguments) || this | |
} | |
var ne, re, ie = s(3), | |
ae = ((ne = function(e, t) { | |
return (ne = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
ne(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(oe, re = q), oe.prototype.createPlacement = function(e, t, n) { | |
var r = Object(ie.a)("<div>").attr("class", "vm-placement").attr("data-id", t).attr("data-ref", "float"); | |
return void 0 !== n && r.attr("data-fixed-size", n.getSize()), r.css("min-width", 160), r.css("min-height", 250), r.css("max-width", 300), r.css("margin", "0 auto"), Object(ie.a)(e).append(r), r[0] | |
}, oe.prototype.stickyFloat = function(e) { | |
var t = this.getConfig(), | |
n = j.a.getTopMostParentWindow(), | |
r = n.document, | |
i = r.body, | |
a = Object(ie.a)(r).scrollTop(), | |
o = Object(ie.a)(r).height(), | |
s = void 0 === t.fixed_top ? this.defaultFixedTop : Number(t.fixed_top), | |
d = void 0 === t.page_top ? this.defaultPageTop : Number(t.page_top), | |
c = void 0 === t.page_bottom ? this.defaultPageBottom : Number(t.page_bottom); | |
try { | |
d = parseInt(y.a.get("data-top-space")) | |
} catch (e) { | |
T.a.verbose("Page top space has not been defined") | |
} | |
for (var u = Object(ie.a)(i).find(e), p = u.closest(".vm-skin"); Object(ie.a)(n).height() < u[0].clientHeight + s + this.defaultMargin;) u.children().last().remove(); | |
d - s <= a ? (p.css("position", "fixed"), p.css("top", s)) : (p.css("position", "absolute"), p.css("top", d)); | |
var l = null; | |
0 < p.length ? l = void 0 !== p[0].clientHeight ? p[0].clientHeight : p.height() : T.a.error("Could not find the .vm-skin"), o - l - c - s < a ? p.css("visibility", "hidden") : p.css("visibility", "visible") | |
}, oe.prototype.drawSkins = function() { | |
var e = this, | |
t = this.getConfig(); | |
t.inViewRatio = "number" == typeof t.inViewRatio ? t.inViewRatio : .9, t.leftPlacements = "number" == typeof t.leftPlacements ? t.leftPlacements : 1, t.rightPlacements = "number" == typeof t.rightPlacements ? t.rightPlacements : void 0 !== t.use_right && t.use_right ? 2 : 0; | |
var n = void 0 === t.z_index ? this.defaultZIndex : Number(t.z_index), | |
r = j.a.getTopMostParentWindow(), | |
i = r.document.body, | |
a = Object(ie.a)(r).width(), | |
o = void 0 === t.page_top ? this.defaultPageTop : Number(t.page_top); | |
try { | |
o = parseInt(y.a.get("data-top-space")) | |
} catch (e) { | |
T.a.verbose("Page top space has not been defined") | |
} | |
var s, d = null; | |
"string" == typeof t.content_container ? 0 < (s = Object(ie.a)(i).find(t.content_container)).length ? d = void 0 !== s[0].clientWidth ? s[0].clientWidth : s.width() : T.a.error("Could not find the content container") : d = t.content_width; | |
try { | |
d = parseInt(y.a.get("data-content-width")) | |
} catch (e) { | |
T.a.info("Page content width has not been defined") | |
} | |
var c, u = (c = d, (c += "").match(/\%$/) ? ((100 - parseInt(c)) / 2).toFixed(0) + "%" : ((a - parseInt(c)) / 2).toFixed(0) + "px"); | |
if (T.a.info("Float Skin Width Requested @ " + u), 0 < Object(ie.a)(i).find(".vm-skin").length) { | |
0 < t.leftPlacements && ((l = Object(ie.a)(i).find(".vm-skin-left")).css("width", u), l.outerWidth() > 300 * t.inViewRatio ? l.show() : l.hide()), 0 < t.rightPlacements && ((g = Object(ie.a)(i).find(".vm-skin-right")).css("width", u), g.outerWidth() > 300 * t.inViewRatio ? g.show() : g.hide()) | |
} else { | |
var p = []; | |
if (0 < t.leftPlacements) { | |
var l = Object(ie.a)("<div>").addClass("vm-skin vm-skin-left").css("width", u).css("margin-top", this.defaultMargin).css("top", o).css("left", 0).css("position", "absolute").css("overflow", "hidden").css("z-index", n); | |
Object(ie.a)(i).append(l); | |
var f = Object(ie.a)("<div>").addClass("vm-skin-left-ads-container").css("top", 0).css("position", "relative").css("overflow", "hidden"); | |
if (l.append(f), l.outerWidth() > 300 * t.inViewRatio) | |
for (var m = 0; m < t.leftPlacements; m++) l.outerWidth() < 300 * t.inViewRatio ? p.push(this.createPlacement(f, t.linked_placement_id, new v.a("160x600"))) : p.push(this.createPlacement(f, t.linked_placement_id)), f.append(Object(ie.a)("<div>").css("height", "20px").html("\x3c!-- Spacer --\x3e ")) | |
} | |
if (0 < t.rightPlacements) { | |
var g = Object(ie.a)("<div>").addClass("vm-skin vm-skin-right").css("width", u).css("margin-top", this.defaultMargin).css("top", o).css("right", 0).css("position", "absolute").css("overflow", "hidden").css("z-index", n); | |
Object(ie.a)(i).append(g); | |
var h = Object(ie.a)("<div>").addClass("vm-skin-right-ads-container").css("top", 0).css("position", "relative").css("overflow", "hidden"); | |
if (g.append(h), g.outerWidth() > 300 * t.inViewRatio) | |
for (m = 0; m < t.rightPlacements; m++) g.outerWidth() < 300 * t.inViewRatio ? p.push(this.createPlacement(h, t.linked_placement_id, new v.a("160x600"))) : p.push(this.createPlacement(h, t.linked_placement_id)), h.append(Object(ie.a)("<div>").css("height", "20px").html("\x3c!-- Spacer --\x3e ")) | |
} | |
0 < p.length && (Un.addPlacements(p, this.getMediation().getHeaderBiddingConfig(), { | |
skipPsa: !0, | |
dfpFlags: new A.a([ | |
["st_ty", "vert"] | |
]) | |
}), Object(ie.a)(r).on("resize", function() { | |
e.drawSkins() | |
})) | |
} | |
"true" === t.sticky && (0 < t.leftPlacements && (this.stickyFloat(".vm-skin-left-ads-container"), Object(ie.a)(r).on("scroll", function() { | |
e.stickyFloat(".vm-skin-left-ads-container") | |
})), 0 < t.rightPlacements && (this.stickyFloat(".vm-skin-right-ads-container"), Object(ie.a)(r).on("scroll", function() { | |
e.stickyFloat(".vm-skin-right-ads-container") | |
}))) | |
}, oe.prototype.run = function() { | |
return this.drawSkins(), Promise.resolve(this) | |
}, oe); | |
function oe() { | |
var e = null !== re && re.apply(this, arguments) || this; | |
return e.defaultMargin = 10, e.defaultPageTop = 100, e.defaultPageBottom = 0, e.defaultFixedTop = 0, e.defaultZIndex = 997, e | |
} | |
var se, de, ce = ((se = function(e, t) { | |
return (se = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
se(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(ue, de = q), ue.prototype.createPlacement = function(e, t, n) { | |
var r = Object(ie.a)("<div>").attr("class", "vm-placement").attr("data-id", t).attr("data-ref", "float"); | |
return void 0 !== n && r.attr("data-fixed-size", n.getSize()), r.css("min-width", 160), r.css("min-height", 250), r.css("max-width", 300), r.css("margin", "0 auto"), Object(ie.a)(e).append(r), r[0] | |
}, ue.prototype.stickyFloat = function(e) { | |
var t = this.getConfig(), | |
n = j.a.getTopMostParentWindow(), | |
r = n.document, | |
i = r.body, | |
a = Object(ie.a)(r).scrollTop(), | |
o = Object(ie.a)(r).height(), | |
s = void 0 === t.fixed_top ? this.defaultFixedTop : Number(t.fixed_top), | |
d = void 0 === t.page_top ? this.defaultPageTop : Number(t.page_top), | |
c = void 0 === t.page_bottom ? this.defaultPageBottom : Number(t.page_bottom); | |
try { | |
d = parseInt(y.a.get("data-top-space")) | |
} catch (e) { | |
T.a.verbose("Page top space has not been defined") | |
} | |
for (var u = Object(ie.a)(i).find(e), p = u.closest(".vm-skin"); Object(ie.a)(n).height() < u[0].clientHeight + s + this.defaultMargin;) u.children().last().remove(); | |
d - s <= a ? (p.css("position", "fixed"), p.css("top", s)) : (p.css("position", "absolute"), p.css("top", d)); | |
var l = null; | |
0 < p.length ? l = void 0 !== p[0].clientHeight ? p[0].clientHeight : p.height() : T.a.error("Could not find the .vm-skin"), o - l - c - s < a ? p.css("visibility", "hidden") : p.css("visibility", "visible") | |
}, ue.prototype.drawSkins = function() { | |
var e = this, | |
t = this.getConfig(); | |
t.inViewRatio = 1, t.leftPlacements = "number" == typeof t.leftPlacements ? t.leftPlacements : 1, t.rightPlacements = "number" == typeof t.rightPlacements ? t.rightPlacements : void 0 !== t.use_right && t.use_right ? 2 : 0; | |
var n = void 0 === t.z_index ? this.defaultZIndex : Number(t.z_index), | |
r = j.a.getTopMostParentWindow(), | |
i = r.document.body, | |
a = Object(ie.a)(r).width(), | |
o = void 0 === t.page_top ? this.defaultPageTop : Number(t.page_top); | |
try { | |
o = parseInt(y.a.get("data-top-space")) | |
} catch (e) { | |
T.a.verbose("Page top space has not been defined") | |
} | |
var s, d = null; | |
"string" == typeof t.content_container ? 0 < (s = Object(ie.a)(i).find(t.content_container)).length ? d = void 0 !== s[0].clientWidth ? s[0].clientWidth : s.width() : T.a.error("Could not find the content container") : d = t.content_width; | |
try { | |
d = parseInt(y.a.get("data-content-width")) | |
} catch (e) { | |
T.a.info("Page content width has not been defined") | |
} | |
var c, u = (c = d, (c += "").match(/\%$/) ? ((100 - parseInt(c)) / 2).toFixed(0) + "%" : ((a - parseInt(c)) / 2).toFixed(0) + "px"); | |
if (T.a.info("Float Skin Width Requested @ " + u), 0 < Object(ie.a)(i).find(".vm-skin").length) { | |
0 < t.leftPlacements && ((f = Object(ie.a)(i).find(".vm-skin-left")).css("width", u), f.outerWidth() > 300 * t.inViewRatio ? f.show() : f.hide()), 0 < t.rightPlacements && ((h = Object(ie.a)(i).find(".vm-skin-right")).css("width", u), h.outerWidth() > 300 * t.inViewRatio ? h.show() : h.hide()) | |
} else { | |
var p, l = []; | |
if (0 < t.leftPlacements) { | |
var f = Object(ie.a)("<div>").addClass("vm-skin vm-skin-left").css("width", u).css("margin-top", this.defaultMargin).css("top", o).css("left", 0).css("position", "absolute").css("overflow", "hidden").css("z-index", n); | |
Object(ie.a)(i).append(f); | |
var m = Object(ie.a)("<div>").addClass("vm-skin-left-ads-container").css("top", 0).css("position", "relative").css("overflow", "hidden"); | |
if (f.append(m), f.outerWidth() > 300 * t.inViewRatio) | |
for (var g = 0; g < t.leftPlacements; g++) f.outerWidth() < 300 * t.inViewRatio ? l.push(this.createPlacement(m, t.linked_placement_id, new v.a("160x600"))) : l.push(this.createPlacement(m, t.linked_placement_id)), m.append(Object(ie.a)("<div>").css("height", "20px").html("\x3c!-- Spacer --\x3e ")) | |
} | |
if (0 < t.rightPlacements) { | |
var h = Object(ie.a)("<div>").addClass("vm-skin vm-skin-right").css("width", u).css("margin-top", this.defaultMargin).css("top", o).css("right", 0).css("position", "absolute").css("overflow", "hidden").css("z-index", n); | |
Object(ie.a)(i).append(h); | |
var b = Object(ie.a)("<div>").addClass("vm-skin-right-ads-container").css("top", 0).css("position", "relative").css("overflow", "hidden"); | |
if (h.append(b), h.outerWidth() > 300 * t.inViewRatio) | |
for (g = 0; g < t.rightPlacements; g++) h.outerWidth() < 300 * t.inViewRatio ? l.push(this.createPlacement(b, t.linked_placement_id, new v.a("160x600"))) : l.push(this.createPlacement(b, t.linked_placement_id)), b.append(Object(ie.a)("<div>").css("height", "20px").html("\x3c!-- Spacer --\x3e ")) | |
} | |
0 < l.length && (Un.addPlacements(l, this.getMediation().getHeaderBiddingConfig(), { | |
skipPsa: !0, | |
dfpFlags: new A.a([ | |
["st_ty", "vert"] | |
]) | |
}), p = r.outerWidth * r.outerHeight, Object(ie.a)(r).on("resize", function() { | |
r.outerWidth * r.outerHeight != p && (T.a.warn("Removing skins!"), Object(ie.a)(i).find(".vm-skin").remove()) | |
})) | |
} | |
"true" === t.sticky && (0 < t.leftPlacements && (this.stickyFloat(".vm-skin-left-ads-container"), Object(ie.a)(r).on("scroll", function() { | |
e.stickyFloat(".vm-skin-left-ads-container") | |
})), 0 < t.rightPlacements && (this.stickyFloat(".vm-skin-right-ads-container"), Object(ie.a)(r).on("scroll", function() { | |
e.stickyFloat(".vm-skin-right-ads-container") | |
}))) | |
}, ue.prototype.run = function() { | |
return this.drawSkins(), Promise.resolve(this) | |
}, ue); | |
function ue() { | |
var e = null !== de && de.apply(this, arguments) || this; | |
return e.defaultMargin = 10, e.defaultPageTop = 100, e.defaultPageBottom = 0, e.defaultFixedTop = 0, e.defaultZIndex = 997, e | |
} | |
s(34); | |
var pe, le, fe = [], | |
me = "ResizeObserver loop completed with undelivered notifications."; | |
(le = pe = pe || {}).BORDER_BOX = "border-box", le.CONTENT_BOX = "content-box", le.DEVICE_PIXEL_CONTENT_BOX = "device-pixel-content-box"; | |
var ge = (he.prototype.toJSON = function() { | |
var e = this; | |
return { | |
x: e.x, | |
y: e.y, | |
top: e.top, | |
right: e.right, | |
bottom: e.bottom, | |
left: e.left, | |
width: e.width, | |
height: e.height | |
} | |
}, he.fromRect = function(e) { | |
return new he(e.x, e.y, e.width, e.height) | |
}, he); | |
function he(e, t, n, r) { | |
return this.x = e, this.y = t, this.width = n, this.height = r, this.top = this.y, this.left = this.x, this.bottom = this.top + this.height, this.right = this.left + this.width, Object.freeze(this) | |
} | |
function be(e) { | |
return e instanceof SVGElement && "getBBox" in e | |
} | |
function ye(e) { | |
if (be(e)) { | |
var t = e.getBBox(), | |
n = t.width, | |
r = t.height; | |
return !n && !r | |
} | |
var i = e.offsetWidth, | |
a = e.offsetHeight; | |
return !(i || a || e.getClientRects().length) | |
} | |
function ve(e) { | |
var t, n = null === (t = null === e || void 0 === e ? void 0 : e.ownerDocument) || void 0 === t ? void 0 : t.defaultView; | |
return !!(n && e instanceof n.Element) | |
} | |
function we(e) { | |
return parseFloat(e || "0") | |
} | |
function Ie(e, t, n) { | |
return void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = !1), Object.freeze({ | |
inlineSize: (n ? t : e) || 0, | |
blockSize: (n ? e : t) || 0 | |
}) | |
} | |
function Te(e, t) { | |
if (void 0 === t && (t = !1), xe.has(e) && !t) return xe.get(e); | |
if (ye(e)) return xe.set(e, Ue), Ue; | |
var n = getComputedStyle(e), | |
r = be(e) && e.ownerSVGElement && e.getBBox(), | |
i = !Pe && "border-box" === n.boxSizing, | |
a = De.test(n.writingMode || ""), | |
o = !r && Re.test(n.overflowY || ""), | |
s = !r && Re.test(n.overflowX || ""), | |
d = r ? 0 : we(n.paddingTop), | |
c = r ? 0 : we(n.paddingRight), | |
u = r ? 0 : we(n.paddingBottom), | |
p = r ? 0 : we(n.paddingLeft), | |
l = r ? 0 : we(n.borderTopWidth), | |
f = r ? 0 : we(n.borderRightWidth), | |
m = r ? 0 : we(n.borderBottomWidth), | |
g = p + c, | |
h = d + u, | |
b = (r ? 0 : we(n.borderLeftWidth)) + f, | |
y = l + m, | |
v = s ? e.offsetHeight - y - e.clientHeight : 0, | |
w = o ? e.offsetWidth - b - e.clientWidth : 0, | |
I = i ? g + b : 0, | |
T = i ? h + y : 0, | |
S = r ? r.width : we(n.width) - I - w, | |
k = r ? r.height : we(n.height) - T - v, | |
j = S + g + w + b, | |
A = k + h + v + y, | |
E = Object.freeze({ | |
devicePixelContentBoxSize: Ie(Math.round(S * devicePixelRatio), Math.round(k * devicePixelRatio), a), | |
borderBoxSize: Ie(j, A, a), | |
contentBoxSize: Ie(S, k, a), | |
contentRect: new ge(p, d, S, k) | |
}); | |
return xe.set(e, E), E | |
} | |
function Se(e, t, n) { | |
var r = Te(e, n), | |
i = r.borderBoxSize, | |
a = r.contentBoxSize, | |
o = r.devicePixelContentBoxSize; | |
switch (t) { | |
case pe.DEVICE_PIXEL_CONTENT_BOX: | |
return o; | |
case pe.BORDER_BOX: | |
return i; | |
default: | |
return a | |
} | |
} | |
function ke(e) { | |
if (ye(e)) return 1 / 0; | |
for (var t = 0, n = e.parentNode; n;) t += 1, n = n.parentNode; | |
return t | |
} | |
function je(n) { | |
fe.forEach(function(t) { | |
t.activeTargets.splice(0, t.activeTargets.length), t.skippedTargets.splice(0, t.skippedTargets.length), t.observationTargets.forEach(function(e) { | |
e.isActive() && (ke(e.target) > n ? t.activeTargets.push(e) : t.skippedTargets.push(e)) | |
}) | |
}) | |
} | |
function Ae() { | |
var e, t = 0; | |
for (je(t); fe.some(function(e) { | |
return 0 < e.activeTargets.length | |
});) t = function() { | |
var i = 1 / 0, | |
t = []; | |
fe.forEach(function(e) { | |
var r; | |
0 !== e.activeTargets.length && (r = [], e.activeTargets.forEach(function(e) { | |
var t = new Ne(e.target), | |
n = ke(e.target); | |
r.push(t), e.lastReportedSize = Se(e.target, e.observedBox), n < i && (i = n) | |
}), t.push(function() { | |
e.callback.call(e.observer, r, e.observer) | |
}), e.activeTargets.splice(0, e.activeTargets.length)) | |
}); | |
for (var e = 0, n = t; e < n.length; e++) { | |
(0, n[e])() | |
} | |
return i | |
}(), je(t); | |
return fe.some(function(e) { | |
return 0 < e.skippedTargets.length | |
}) && ("function" == typeof ErrorEvent ? e = new ErrorEvent("error", { | |
message: me | |
}) : ((e = document.createEvent("Event")).initEvent("error", !1, !1), e.message = me), window.dispatchEvent(e)), 0 < t | |
} | |
function Ee(e) { | |
var t, n; | |
_e || (t = 0, n = document.createTextNode(""), new MutationObserver(function() { | |
return Be.splice(0).forEach(function(e) { | |
return e() | |
}) | |
}).observe(n, { | |
characterData: !0 | |
}), _e = function() { | |
n.textContent = "" + (t ? t-- : t++) | |
}), Be.push(e), _e() | |
} | |
function Oe(e) { | |
return void 0 === e && (e = 0), Date.now() + e | |
} | |
var _e, Ce = "undefined" != typeof window ? window : {}, | |
xe = new WeakMap, | |
Re = /auto|scroll/, | |
De = /^tb|vertical/, | |
Pe = /msie|trident/i.test(Ce.navigator && Ce.navigator.userAgent), | |
Ue = Object.freeze({ | |
devicePixelContentBoxSize: Ie(), | |
borderBoxSize: Ie(), | |
contentBoxSize: Ie(), | |
contentRect: new ge(0, 0, 0, 0) | |
}), | |
Ne = function(e) { | |
var t = Te(e); | |
this.target = e, this.contentRect = t.contentRect, this.borderBoxSize = [t.borderBoxSize], this.contentBoxSize = [t.contentBoxSize], this.devicePixelContentBoxSize = [t.devicePixelContentBoxSize] | |
}, | |
Be = [], | |
qe = 0, | |
ze = { | |
attributes: !0, | |
characterData: !0, | |
childList: !0, | |
subtree: !0 | |
}, | |
Me = ["resize", "load", "transitionend", "animationend", "animationstart", "animationiteration", "keyup", "keydown", "mouseup", "mousedown", "mouseover", "mouseout", "blur", "focus"], | |
Ve = !1; | |
function Le() { | |
var e = this; | |
this.stopped = !0, this.listener = function() { | |
return e.schedule() | |
} | |
} | |
function Fe(e) { | |
!qe && 0 < e && We.start(), (qe += e) || We.stop() | |
} | |
var We = new(Le.prototype.run = function(t) { | |
var n, e, r = this; | |
void 0 === t && (t = 250), Ve || (Ve = !0, n = Oe(t), e = function() { | |
var e = !1; | |
try { | |
e = Ae() | |
} finally { | |
if (Ve = !1, t = n - Oe(), !qe) return; | |
e ? r.run(1e3) : 0 < t ? r.run(t) : r.start() | |
} | |
}, Ee(function() { | |
requestAnimationFrame(e) | |
})) | |
}, Le.prototype.schedule = function() { | |
this.stop(), this.run() | |
}, Le.prototype.observe = function() { | |
function e() { | |
return t.observer && t.observer.observe(document.body, ze) | |
} | |
var t = this; | |
document.body ? e() : Ce.addEventListener("DOMContentLoaded", e) | |
}, Le.prototype.start = function() { | |
var t = this; | |
this.stopped && (this.stopped = !1, this.observer = new MutationObserver(this.listener), this.observe(), Me.forEach(function(e) { | |
return Ce.addEventListener(e, t.listener, !0) | |
})) | |
}, Le.prototype.stop = function() { | |
var t = this; | |
this.stopped || (this.observer && this.observer.disconnect(), Me.forEach(function(e) { | |
return Ce.removeEventListener(e, t.listener, !0) | |
}), this.stopped = !0) | |
}, Le), | |
Ge = (He.prototype.isActive = function() { | |
var e, t = Se(this.target, this.observedBox, !0); | |
return e = this.target, be(e) || function(e) { | |
switch (e.tagName) { | |
case "INPUT": | |
if ("image" !== e.type) break; | |
case "VIDEO": | |
case "AUDIO": | |
case "EMBED": | |
case "OBJECT": | |
case "CANVAS": | |
case "IFRAME": | |
case "IMG": | |
return !0 | |
} | |
return !1 | |
}(e) || "inline" !== getComputedStyle(e).display || (this.lastReportedSize = t), this.lastReportedSize.inlineSize !== t.inlineSize || this.lastReportedSize.blockSize !== t.blockSize | |
}, He); | |
function He(e, t) { | |
this.target = e, this.observedBox = t || pe.CONTENT_BOX, this.lastReportedSize = { | |
inlineSize: 0, | |
blockSize: 0 | |
} | |
} | |
function Je(e, t) { | |
for (var n = 0; n < e.length; n += 1) | |
if (e[n].target === t) return n; | |
return -1 | |
} | |
var Ye = function(e, t) { | |
this.activeTargets = [], this.skippedTargets = [], this.observationTargets = [], this.observer = e, this.callback = t | |
}, | |
Ke = new WeakMap, | |
Xe = (Qe.connect = function(e, t) { | |
var n = new Ye(e, t); | |
Ke.set(e, n) | |
}, Qe.observe = function(e, t, n) { | |
var r = Ke.get(e), | |
i = 0 === r.observationTargets.length; | |
Je(r.observationTargets, t) < 0 && (i && fe.push(r), r.observationTargets.push(new Ge(t, n && n.box)), Fe(1), We.schedule()) | |
}, Qe.unobserve = function(e, t) { | |
var n = Ke.get(e), | |
r = Je(n.observationTargets, t), | |
i = 1 === n.observationTargets.length; | |
0 <= r && (i && fe.splice(fe.indexOf(n), 1), n.observationTargets.splice(r, 1), Fe(-1)) | |
}, Qe.disconnect = function(t) { | |
var n = this, | |
e = Ke.get(t); | |
e.observationTargets.slice().forEach(function(e) { | |
return n.unobserve(t, e.target) | |
}), e.activeTargets.splice(0, e.activeTargets.length) | |
}, Qe); | |
function Qe() {} | |
var $e = (Ze.prototype.observe = function(e, t) { | |
if (0 === arguments.length) throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present."); | |
if (!ve(e)) throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element"); | |
Xe.observe(this, e, t) | |
}, Ze.prototype.unobserve = function(e) { | |
if (0 === arguments.length) throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present."); | |
if (!ve(e)) throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element"); | |
Xe.unobserve(this, e) | |
}, Ze.prototype.disconnect = function() { | |
Xe.disconnect(this) | |
}, Ze.toString = function() { | |
return "function ResizeObserver () { [polyfill code] }" | |
}, Ze); | |
function Ze(e) { | |
if (0 === arguments.length) throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present."); | |
if ("function" != typeof e) throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function."); | |
Xe.connect(this, e) | |
} | |
function et(e) { | |
return null !== e && "IFRAME" === e.tagName | |
} | |
var tt = window.ResizeObserver || $e, | |
nt = (rt.nodesValidates = function(e, t) { | |
var n = 0; | |
if (n < e.length) return !!t(e[n]) | |
}, rt.subscribe = function(i, a, o, s, d, e) { | |
var c; | |
MutationObserver ? (c = new MutationObserver(function(e) { | |
for (var t = 0, n = e; t < n.length; t++) { | |
var r = n[t]; | |
"attributes" === r.type && s && (s(r.target) ? o(1) : o(0)), "childList" === r.type && (a ? !Object(ie.a)(i).find(a) || s && !rt.nodesValidates(r.addedNodes, s) || (d || c.disconnect(), o(i.children.length)) : (d || c.disconnect(), s && !rt.nodesValidates(r.addedNodes, s) || o(i.children.length))) | |
} | |
})).observe(i, { | |
attributes: !0, | |
childList: !0, | |
characterData: !1, | |
subtree: e | |
}) : o(0) | |
}, rt.checkNo1x1Iframe = function(e) { | |
try { | |
if (et(e)) { | |
if ("1" === e.getAttribute("width") && "1" === e.getAttribute("height")) return !1 | |
} else { | |
var t = e.querySelector("iframe"); | |
if (t && "1" === t.getAttribute("width") && "1" === t.getAttribute("height")) return !1 | |
} | |
return !0 | |
} catch (e) { | |
return !0 | |
} | |
}, rt.checkNoDFPRejectCode = function(e) { | |
try { | |
var t = void 0; | |
return (t = et(e) ? e.contentWindow.document.querySelector(".GoogleActiveViewElement script") : e.querySelector("iframe").contentWindow.document.querySelector(".GoogleActiveViewElement script")) ? -1 === t.innerHTML.substr(0, 200).indexOf('call: "dfp-slot-reject"') : !0 | |
} catch (e) { | |
return !0 | |
} | |
}, rt.checkNoDFPNotLoadedIframe = function(e) { | |
try { | |
var t = void 0; | |
return !(t = et(e) ? e : e.querySelector("iframe")) || "false" !== t.getAttribute("data-load-complete") | |
} catch (e) { | |
return !0 | |
} | |
}, rt.checkNoDFPEmptyIframe = function(e) { | |
try { | |
var t = void 0; | |
return !(t = et(e) ? e : e.querySelector("iframe")) || "none" !== t.style.display | |
} catch (e) { | |
return !0 | |
} | |
}, rt.subscribeResize = function(e, o) { | |
if (e) { | |
var t = new tt(function(e) { | |
for (var t = 0, n = e; t < n.length; t++) { | |
var r = n[t].contentRect, | |
i = r.width, | |
a = r.height; | |
o(i, a) | |
} | |
}); | |
return t.observe(e), | |
function() { | |
t.unobserve(e) | |
} | |
} | |
}, rt); | |
function rt() {} | |
var it = (at.on = function(t, n, r) { | |
var i, a, o, s; | |
void 0 === r && (r = !1); | |
function d() { | |
i = null, r || (s = t.apply(o, a), o = a = null) | |
} | |
function e() { | |
i && (s = t.apply(o, a), o = a = null, clearTimeout(i), i = null) | |
} | |
var c; | |
return (c = function() { | |
o = this, a = arguments; | |
var e = r && !i; | |
return i = i || window.setTimeout(d, n), e && (s = t.apply(o, a), o = a = null), s | |
}).clear = function() { | |
i && (clearTimeout(i), i = null) | |
}, c.flush = e, c | |
}, at); | |
function at() {} | |
var ot = s(20), | |
st = (dt.inlineCSS = function(e, t) { | |
var n, r = e.document.getElementsByTagName("head")[0], | |
i = ot.a.getHash(t), | |
a = !1; | |
u.a.getChildrenElementsOfParentElement(r).forEach(function(e) { | |
e.getAttribute("hash") === i && (a = !0) | |
}), a || (n = e.document.createElement("style"), r.appendChild(n), n.appendChild(document.createTextNode(t))) | |
}, dt); | |
function dt() {} | |
var ct, ut = (ct = function(e, t) { | |
return (ct = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
ct(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
}), | |
pt = (lt.prototype.tryLock = function() { | |
return !this.locked && (this.locked = !0) | |
}, lt.prototype.unlock = function() { | |
this.locked = !1 | |
}, lt); | |
function lt() { | |
this.locked = !1 | |
} | |
var ft, mt = (ut(gt, ft = q), gt.prototype.createPlacement = function(e, t) { | |
var n = Object(ie.a)("<div>").attr("class", "vm-placement").attr("data-id", t).attr("data-ref", "footer"); | |
return Object(ie.a)(e).append(n), n[0] | |
}, gt.prototype.removeFooter = function() { | |
this.unsubscribeResize && this.unsubscribeResize(), this.footerSpaceElement && (this.footerSpaceElement.style.marginBottom = "auto"), Object(ie.a)(j.a.getTopMostParentBody()).find("div.vm-footer").remove() | |
}, Object.defineProperty(gt.prototype, "placementHTMLElement", { | |
get: function() { | |
var e = this.footerLayoutContainer.find(".vm-placement").get(); | |
return e ? e[0] : null | |
}, | |
enumerable: !1, | |
configurable: !0 | |
}), gt.prototype.showFooter = function() { | |
this.footerLayoutContainer && (T.a.event("footer-show"), this.footerLayoutContainer.get()[0].style.display = "block") | |
}, gt.prototype.hideFooter = function() { | |
this.footerLayoutContainer && (T.a.event("footer-hide"), this.footerLayoutContainer.get()[0].style.display = "none", this.footerSpaceElement && (this.footerSpaceElement.style.marginBottom = "auto")) | |
}, gt.prototype.checkViewableDom = function(e) { | |
return !e.classList.contains("vm-debug-overlay") && (nt.checkNoDFPRejectCode(e) && nt.checkNo1x1Iframe(e) && nt.checkNoDFPNotLoadedIframe(e) && nt.checkNoDFPEmptyIframe(e)) | |
}, gt.prototype.onPlacementMount = function() { | |
var n = this; | |
this.placementHTMLElement && (nt.subscribe(this.placementHTMLElement, null, function(e) { | |
e ? n.showFooter() : n.hideFooter() | |
}, function(e) { | |
return n.checkViewableDom(e) | |
}, !0, !0), this.unsubscribeResize = nt.subscribeResize(this.footerContainer.get()[0].querySelector(".vm-placement"), function(e, t) { | |
return n.onFooterResizeDebounced(e, t) | |
})) | |
}, gt.prototype.onFooterResize = function(e, t) { | |
var n, r = j.a.getTopMostParentBody(); | |
0 != Object(ie.a)(r).find(".vm-footer").length ? (this.footerSpaceElement || (0 < (n = Object(ie.a)(r).find("footer").get()).length ? this.footerSpaceElement = n[n.length - 1] : this.footerSpaceElement = r), this.footerSpaceElement && (this.footerSpaceElement.style.marginBottom = t + "px")) : T.a.warn("Preventing drawing footer space in a not top body") | |
}, gt.prototype.onFooterMount = function() { | |
var e, t = this; | |
this.placementHTMLElement ? (this.onPlacementMount(), "" !== this.placementHTMLElement.innerHTML && this.checkViewableDom(this.placementHTMLElement) ? this.showFooter() : this.onPlacementMount()) : (e = this.footerContainer, nt.subscribe(e && e[0], ".vm-placement", function() { | |
return t.onPlacementMount() | |
}, null, !0)) | |
}, gt.prototype.drawFooter = function(e) { | |
var t, n, r, i, a, o, s = this, | |
d = this.getConfig(), | |
c = j.a.getTopMostParentBody(), | |
u = void 0 === d.z_index ? this.defaultZIndex : Number(d.z_index); | |
0 < Object(ie.a)(c).find(".vm-footer").length ? T.a.warn("Preventing drawing footer as it is already exists") : (st.inlineCSS(j.a.getTopMostParentWindow(), "\n .vm-footer-content {\n position: relative;\n width: 100% !important;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-flow: row-reverse;\n flex-flow: row-reverse;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .vm-footer-close, .vm-footer-stub {\n margin: 12px;\n max-width: 20px;\n width: 20px;\n min-width: 20px;\n height: 20px;\n align-self: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n .vm-footer iframe {display: block; margin: 0;} \n .vm-footer path {stroke-width: 1px;}\n .vm-footer .vm-placement {border: 0!important; margin:0!important; padding: 0!important;}\n @media screen and (max-width: 400px) {.vm-footer .vm-footer-close, .vm-footer-stub { margin: 3px; }}\n @media screen and (max-width: 370px) {.vm-footer .vm-footer-close, .vm-footer-stub { margin: 1px; }}\n @media screen and (max-width: 365px) {.vm-footer .vm-footer-close, .vm-footer-stub { display: none!important }}\n @media screen and (max-width: 400px) {.vm-placement {min-width: 320px}}\n "), t = Object(ie.a)("<div>").addClass("vm-footer-stub"), n = Object(ie.a)("<div>").addClass("vm-footer").css("bottom", 0).css("position", "fixed").css("display", "none").css("width", "100%").css("text-align", "center").css("background-color", "rgba(250, 250, 250, 0.9)").css("z-index", u).css("left", 0).css("right", 0), r = Object(ie.a)("<div>").addClass("vm-footer-content"), i = Object(ie.a)('<?xml version="1.0" encoding="UTF-8"?>\n <svg width="20px" height="20px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <g id="assets" transform="translate(-359.000000, -103.000000)">\n <polygon fill="#aaaaaa" points="372.152786 103 366.000599 109.153385 359.847214 103 359 103.847214 365.152187 110.000599 359 116.152786 359.847214 117 366.000599 110.846615 372.152786 117 373 116.152786 366.846615 110.000599 373 103.847214"></polygon>\n </g>\n </g>\n </svg>'), a = Object(ie.a)("<div>").addClass("vm-footer-close"), o = Object(ie.a)("<div>").addClass("vm-footer-close-button"), a.append(i), a.on("click", function() { | |
return s.removeFooter() | |
}), r.append(a), r.append(o), n.append(r), this.footerLayoutContainer = n, this.footerContainer = r, Object(ie.a)(c).append(n), Un.addPlacements([this.createPlacement(r, d.linked_placement_id)], this.getMediation().getHeaderBiddingConfig(), { | |
skipPsa: !0, | |
dfpFlags: new A.a([ | |
["st_ty", "horb"] | |
]) | |
}), r.append(t), nt.subscribe(Object(ie.a)(c)[0], ".vm-footer", function() { | |
return e() | |
}, null, !1, !0)) | |
}, gt.prototype.drawLegacyFooter = function() { | |
var e, t, n = this, | |
r = this.getConfig(), | |
i = j.a.getTopMostParentBody(), | |
a = Object(ie.a)("<div>").addClass("vm-footer").css("left", "50%").css("transform", "translate(-50%)").css("bottom", 0).css("position", "fixed").css("z-index", 999999); | |
B.a.isDesktop() && (e = Object(ie.a)("<img>").attr("src", "https://hb.vntsm.com/assets/close.png"), t = Object(ie.a)("<div>").addClass("vm-footer-close-button").css("top", -22).css("right", 0).css("position", "absolute").css("cursor", "pointer").css("display", "none").append(e), e.on("click", function() { | |
return n.removeFooter() | |
}), a.append(t)), Object(ie.a)(i).append(a), Un.addPlacements([this.createPlacement(a, r.linked_placement_id)], this.getMediation().getHeaderBiddingConfig()) | |
}, gt.prototype.run = function() { | |
var e = this; | |
return gt.lock.tryLock() ? this.drawFooter(function() { | |
gt.lock.unlock(), e.onFooterMount() | |
}) : T.a.warn("Locking draw footer until .vm-footer populated"), Promise.resolve(this) | |
}, gt.lock = new pt, gt); | |
function gt() { | |
var e = null !== ft && ft.apply(this, arguments) || this; | |
return e.defaultZIndex = 998, e.onFooterResizeDebounced = it.on(e.onFooterResize, 100), e | |
} | |
var ht = s(13), | |
bt = s(25), | |
yt = (vt.parse = function() { | |
var e; | |
return void 0 === this.parsed && (e = new bt(navigator.userAgent), this.parsed = { | |
browser_name: "string" == typeof e.getBrowser().name && 0 < e.getBrowser().name.length ? e.getBrowser().name.toLowerCase() : "unknown", | |
browser_version: "string" == typeof e.getBrowser().version && 0 < e.getBrowser().version.length ? e.getBrowser().version.toLowerCase() : "unknown", | |
device_type: "string" == typeof e.getDevice().type && 0 < e.getDevice().type.length ? e.getDevice().type.toLowerCase() : B.a.isMobile() ? "mobile" : "desktop", | |
os_name: "string" == typeof e.getOS().name && 0 < e.getOS().name.length ? e.getOS().name.toLowerCase() : "unknown", | |
os_version: "string" == typeof e.getOS().version && 0 < e.getOS().version.length ? e.getOS().version.toLowerCase() : "unknown" | |
}), this.parsed | |
}, vt); | |
function vt() {} | |
var wt = function() { | |
return (wt = Object.assign || function(e) { | |
for (var t, n = 1, r = arguments.length; n < r; n++) | |
for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); | |
return e | |
}).apply(this, arguments) | |
}, | |
It = (Tt.isLoaded = function() { | |
return this.isReady | |
}, Tt.onReady = function(e) { | |
this.isReady ? e(this.isAdblocked) : this.readyQ.push(e) | |
}, Tt.provideDynamicAdUnitMappings = function(e) { | |
for (var t, n = [], r = 0; r < e.length; r++) { | |
var i = e[r]; | |
this.registeredAdUnitCodes.has(i.code) || (this.registeredAdUnitCodes.set(i.code, !0), n.push(i)) | |
} | |
T.a.debug("Uponit - New ad unit mappings...", n), 0 < n.length && ((t = j.a.getTopMostParentWindow()).uponit = t.uponit || { | |
que: [] | |
}).que.push(function() { | |
t.uponitVenatusFetchSlots(n) | |
}) | |
}, Tt.injectCustomTargeting = function(f) { | |
var m = this, | |
e = j.a.getTopMostParentWindow(), | |
g = j.a.getTopMostParentDocument(), | |
t = e.uponit = e.uponit || { | |
que: [] | |
}; | |
t.que.push(function() { | |
t.addModifier("dfpTargeting", function(e, t, n) { | |
var r = null == n ? 0 : Number(n), | |
i = g.getElementById(t.getSlotElementId()), | |
a = i.getAttribute("data-pos") + "-" + i.getAttribute("data-id"), | |
o = m.counter.getOrElse(a, 0) + 1; | |
m.counter.set(a, o); | |
var s, d = e.hb_bidder && 0 < e.hb_bidder.length ? e.hb_bidder[0] : "blank", | |
c = f.getPlacement(i.getAttribute("data-id")).getSmallestSize().getSize(), | |
u = e.hb_size && 0 < e.hb_size.length ? e.hb_size[0] : c, | |
p = At.createDFPCustomProviderTargeting(St.UPONIT, f, new C(new k({ | |
ad: "", | |
adUnitCode: a + "-" + o, | |
bidder: d, | |
cpm: r, | |
size: u, | |
timeToRespond: 0 | |
}), []), i), | |
l = {}; | |
for (s in p) p.hasOwnProperty(s) && (l[s] = [p[s] + ""]); | |
return wt(wt({}, e), l) | |
}) | |
}) | |
}, Tt.load = function() { | |
var t = this, | |
e = j.a.getTopMostParentWindow(); | |
e.addEventListener("uponitInit", function(e) { | |
t.isReady = !0, t.isAdblocked = !0 === e.detail, t.readyQ.popEach(function(e) { | |
return e(t.isAdblocked) | |
}) | |
}), d.a.loadJSIn(e, "https://mrb.upapi.net/org?o=5643766199222272") | |
}, Tt.init = function(e) { | |
var a = this; | |
j.a.getTopMostParentWindow().addEventListener("uponitRender", function(e) { | |
var t = e.detail, | |
n = t.adUnitCode.split("-"), | |
r = n[0] + "-" + n[1], | |
i = a.refreshCounter.getOrElse(r, 1); | |
a.refreshCounter.set(r, i + 1), T.a.debug("Bid has been won on Adblock traffic", t) | |
}), this.injectCustomTargeting(e), j.a.getTopMostParentWindow().uponitReady = !0 | |
}, Tt.isReady = !1, Tt.isAdblocked = !1, Tt.readyQ = new f, Tt.counter = new A.a, Tt.registeredAdUnitCodes = new A.a, Tt.refreshCounter = new A.a, Tt); | |
function Tt() {} | |
var St, kt = function() { | |
return (kt = Object.assign || function(e) { | |
for (var t, n = 1, r = arguments.length; n < r; n++) | |
for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); | |
return e | |
}).apply(this, arguments) | |
}; | |
(St = St || {}).UPONIT = "uponit"; | |
var jt = ["st_ty"], | |
At = (Et.processQueue = function() { | |
var e, t, n = []; | |
this.queue.popEach(function(e) { | |
return n.push(e) | |
}), 0 < n.length && (e = n[0].bidder.match(/^ab-/), t = function(e) { | |
ht.a.go({ | |
method: ht.a.RequestMethod.POST, | |
url: e ? S.a.landscapeEndpoint + "?uponit=true&upapi=true" : S.a.landscapeEndpoint, | |
timeout: S.a.configTimeoutMS, | |
contentType: "application/json", | |
payload: JSON.stringify({ | |
bulk: n | |
}), | |
success: function() {}, | |
error: function() { | |
T.a.error("Failed to track landscape payload..."), T.a.error(n) | |
} | |
}) | |
}, It.isLoaded() && e ? t(!0) : It.isLoaded() || t(!1)) | |
}, Et.createDFPCustomProviderTargeting = function(e, t, n, r) { | |
var i = Et.createLandscapePayload(t, n, !0, r, { | |
allowed: 0, | |
total: 0 | |
}); | |
return { | |
cu_pr: e, | |
cu_pr_v: 1, | |
re_ve: i.release_version, | |
mo: i.mode, | |
ac_id: i.account_id, | |
si_id: i.site_id, | |
pl_id: i.placement_id, | |
co: i.country, | |
is_mo: i.is_mobile, | |
br_nm: i.browser_name, | |
de_ty: i.device_type, | |
os_nm: i.os_name, | |
is_ta: i.is_tab_active, | |
is_vi: i.is_viewable, | |
is_if: i.is_iframe_friendly, | |
pa_ty: i.payment_type, | |
fi: i.fixed, | |
pa_fl: i.payment_floor, | |
lo_in: i.loop_index, | |
gd_en: i.gdpr_enabled, | |
hb_bt: i.hbc_build_time, | |
ta_si: n.getWinningBid().getSize().getSize(), | |
rt_sh: t.getRTBRatio(), | |
di_sh: t.getDirectRatio(), | |
cu_bi: n.getWinningBid().getBidder(), | |
cu_cp: n.getWinningBid().getCPM(), | |
cu_si: n.getWinningBid().getSize().getSize() | |
} | |
}, Et.createDFPTargeting = function(i, a, o, s) { | |
return new Promise(function(r, e) { | |
I.a.get().getVendorConsent(function(e) { | |
var t = Et.createLandscapePayload(i, a, o, s, e), | |
n = jt.reduce(function(e, t) { | |
var n = s.getAttribute("data-dfp-param-" + t); | |
return n && (e[t] = n), e | |
}, {}); | |
r(kt({ | |
sv: 1, | |
re_ve: t.release_version, | |
mo: t.mode, | |
ac_id: t.account_id, | |
si_id: t.site_id, | |
pl_id: t.placement_id, | |
co: t.country, | |
is_mo: t.is_mobile, | |
br_nm: t.browser_name, | |
de_ty: t.device_type, | |
os_nm: t.os_name, | |
is_ta: t.is_tab_active, | |
is_vi: t.is_viewable, | |
is_if: t.is_iframe_friendly, | |
pa_ty: t.payment_type, | |
fi: t.fixed, | |
pa_fl: t.payment_floor, | |
lo_in: t.loop_index, | |
gd_en: t.gdpr_enabled, | |
hb_bt: t.hbc_build_time, | |
ta_si: a.getWinningBid().getSize().getSize(), | |
rt_sh: i.getRTBRatio(), | |
di_sh: i.getDirectRatio() | |
}, n)) | |
}) | |
}) | |
}, Et.createLandscapePayload = function(e, t, n, r, i) { | |
var a = t.getWinningBid(), | |
o = t.getAppliedPaymentRule(), | |
s = yt.parse(), | |
d = "share", | |
c = 0, | |
u = It.isLoaded() ? .7 : "direct" === a.getWinType() ? e.getDirectRatio() : e.getRTBRatio(), | |
p = 0; | |
return void 0 !== o && (d = "SHARE" === o.getPaymentType() ? "share" : "fixed", c = o.getPaymentFixed(), u = o.getPaymentShare(), p = o.getPaymentFloor()), { | |
release_version: "d2d57cd".trim() + "-" + h.prebidVersion, | |
mode: y.a.get("data-mode"), | |
page_load_id: S.a.loadId, | |
is_render_success: n, | |
auction_id: t.getAuctionId(), | |
account_id: e.getAccountId(), | |
site_id: e.getSiteId(), | |
placement_id: a.getPlacementId(), | |
buyer_id: "string" == typeof a.getBuyerId() ? a.getBuyerId() : "", | |
deal_id: "string" == typeof a.getDealId() ? a.getDealId() : "", | |
creative_id: "string" == typeof a.getCreativeId() ? a.getCreativeId() : "", | |
country: e.getCurrentCountryCode(), | |
is_mobile: B.a.isMobile(), | |
browser_name: s.browser_name, | |
browser_version: s.browser_version, | |
device_type: s.device_type, | |
os_name: s.os_name, | |
os_version: s.os_version, | |
is_tab_active: j.a.hasFocus(), | |
is_viewable: j.a.isInView(r), | |
is_iframe_friendly: j.a.hasTopWindowAccess(), | |
url: j.a.getTopMostParentWindow().location.href, | |
bidder: a.getBidder(), | |
win_type: a.getWinType(), | |
cpm: a.getCPM(), | |
width: a.getSize().getWidth(), | |
height: a.getSize().getHeight(), | |
payment_type: d, | |
fixed: c, | |
share: u, | |
payment_floor: p, | |
loop_index: a.getLoopIndex(), | |
bid_landscape: t.getBidLandscape().map(function(e) { | |
return { | |
bidder: e.getBidder(), | |
width: e.getSize().getWidth(), | |
height: e.getSize().getHeight(), | |
buyer_id: "string" == typeof e.getBuyerId() ? e.getBuyerId() : "", | |
deal_id: "string" == typeof e.getDealId() ? e.getDealId() : "", | |
creative_id: "string" == typeof e.getCreativeId() ? e.getCreativeId() : "", | |
cpm: e.getCPM(), | |
time_to_respond: e.getTimeToRespond() | |
} | |
}), | |
gdpr_enabled: I.a.get().isGDPRRequired(), | |
gdpr_vendor_allowed: i.allowed, | |
gdpr_vendor_total: i.total, | |
use_confiant: !1, | |
hbc_build_time: e.getLastBuilt() | |
} | |
}, Et.send = function(t, n, r, i, e) { | |
var a = this; | |
void 0 === e && (e = !0), e ? I.a.get().getVendorConsent(function(e) { | |
a.queue.push(a.createLandscapePayload(t, n, r, i, e)) | |
}) : this.queue.push(this.createLandscapePayload(t, n, r, i, { | |
allowed: 0, | |
total: 0 | |
})) | |
}, Et.queue = new f, Et); | |
function Et() {} | |
var Ot, _t, Ct = ((Ot = function(e, t) { | |
return (Ot = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
Ot(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(xt, _t = q), xt.prototype.run = function() { | |
return $t.render(new A.a([ | |
[this.getMediation().getPlacementPositionalId(), this.getMediation().getPlacementContainer()] | |
]), [new C(new k({ | |
ad: this.getConfig().ad, | |
adUnitCode: this.getMediation().getPlacementInstanceId(), | |
bidder: this.getMediationRule().getAdapterName(), | |
cpm: this.getMediationRule().getAdapterCPM(), | |
size: "1x1", | |
timeToRespond: 0 | |
}), [])], this.getMediation().getHeaderBiddingConfig(), this.getMediation().getRefreshConfig(), !1, !0), Promise.resolve(this) | |
}, xt); | |
function xt() { | |
return null !== _t && _t.apply(this, arguments) || this | |
} | |
var Rt, Dt, Pt = ((Rt = function(e, t) { | |
return (Rt = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
Rt(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(Ut, Dt = q), Ut.triggerAccept = function() { | |
Ut.eventTriggered = !0, Ut.accept(Ut.context) | |
}, Ut.triggerReject = function() { | |
Ut.eventTriggered = !0, Ut.reject(Ut.context) | |
}, Ut.detectAcceptance = function(e) { | |
void 0 === e && (e = 0), !Ut.eventTriggered && e < 1e3 && (u.a.getChildrenElementsOfParentElement(j.a.getTopMostParentBody()).forEach(function(e) { | |
"teads-inread sm-screen" === e.getAttribute("class") && Ut.triggerAccept() | |
}), Ut.eventTriggered || setTimeout(function() { | |
Ut.detectAcceptance(e + 1) | |
}, 100)) | |
}, Ut.prototype.run = function() { | |
var n = this, | |
r = (Ut.context = this).getConfig(); | |
return new Promise(function(e, t) { | |
Ut.accept = e, Ut.reject = t, T.a.debug("Requesting Teads Library"), $t.render(new A.a([ | |
[n.getMediation().getPlacementPositionalId(), n.getMediation().getPlacementContainer()] | |
]), [new C(new k({ | |
ad: '<script type="text/javascript" class="teads" src="https://a.teads.tv/page/' + r.id + '/tag" async="true"><\/script>', | |
adUnitCode: n.getMediation().getPlacementInstanceId(), | |
bidder: n.getMediationRule().getAdapterName(), | |
cpm: n.getMediationRule().getAdapterCPM(), | |
size: "1x1", | |
timeToRespond: 0 | |
}), [])], n.getMediation().getHeaderBiddingConfig(), n.getMediation().getRefreshConfig(), !1, !0, !1), Ut.detectAcceptance() | |
}) | |
}, Ut.eventTriggered = !1, Ut.context = null, Ut.accept = function() {}, Ut.reject = function() {}, Ut); | |
function Ut() { | |
return null !== Dt && Dt.apply(this, arguments) || this | |
} | |
var Nt, Bt, qt = ((Nt = function(e, t) { | |
return (Nt = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
Nt(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(zt, Bt = q), zt.prototype.run = function() { | |
var a = this, | |
o = this, | |
s = this.getConfig(); | |
return new Promise(function(r, i) { | |
ht.a.go({ | |
method: ht.a.RequestMethod.GET, | |
url: "https://publisher.streamspread.com/api/v2/viewports/" + s.id + "/status", | |
timeout: 2e3, | |
success: function(e, t, n) { | |
"active" === JSON.parse(t).status ? ($t.render(new A.a([ | |
[a.getMediation().getPlacementPositionalId(), a.getMediation().getPlacementContainer()] | |
]), [new C(new k({ | |
ad: '<div id="ss-player"></div>', | |
adUnitCode: a.getMediation().getPlacementInstanceId(), | |
bidder: a.getMediationRule().getAdapterName(), | |
cpm: a.getMediationRule().getAdapterCPM(), | |
size: "1x1", | |
timeToRespond: 0 | |
}), [])], a.getMediation().getHeaderBiddingConfig(), a.getMediation().getRefreshConfig(), !1, !0, !0), M.add(function() { | |
return d.a.loadJSIn(j.a.getTopMostParentWindow(), "https://adc.streamspread.com/js/" + s.id + ".js") | |
}, 500), r(o)) : i(o) | |
}, | |
error: function() { | |
return i(o) | |
} | |
}) | |
}) | |
}, zt); | |
function zt() { | |
return null !== Bt && Bt.apply(this, arguments) || this | |
} | |
var Mt, Vt, Lt = ((Mt = function(e, t) { | |
return (Mt = Object.setPrototypeOf || { | |
__proto__: [] | |
} | |
instanceof Array && function(e, t) { | |
e.__proto__ = t | |
} || function(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) | |
})(e, t) | |
}, function(e, t) { | |
function n() { | |
this.constructor = e | |
} | |
Mt(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) | |
})(Ft, Vt = q), Ft.prototype.removeFooter = function() { | |
Object(ie.a)(j.a.getTopMostParentBody()).find("div.vm-taboola").remove() | |
}, Ft.prototype.run = function() { | |
var S = this, | |
k = this, | |
e = (this.getConfig(), [ | |
["app.apikey", "d629a45a6c9eba2dcfae784fbad1c548dcbff7f4"], | |
["app.type", "web"], | |
["source.type", "text"], | |
["source.id", "test-id-for-article"], | |
["source.url", "https://www.venatusmedia.com"], | |
["placement.name", "floating-footer-thumbnail"], | |
["placement.rec-count", "4"], | |
["placement.organic-type", "text"], | |
["placement.thumbnail.width", "640"], | |
["placement.thumbnail.height", "480"], | |
["user.session", "init"] | |
]); | |
return new Promise(function(I, T) { | |
ht.a.go({ | |
method: ht.a.RequestMethod.GET, | |
url: "https://api.taboola.com/1.2/json/venatusmedianetwork-testaccount/recommendations.get?" + e.map(function(e) { | |
var t = e[0], | |
n = e[1]; | |
return t + "=" + encodeURIComponent(n) | |
}).join("&"), | |
timeout: 2e4, | |
success: function(e, t, n) { | |
var r, i, a, o, s, d, c, u, p, l, f, m, g, h, b, y, v, w = JSON.parse(t); | |
"object" == typeof w && "object" == typeof w.list && 0 < w.list.length ? (r = w.list[0], console.log("Taboola List Item", r), i = { | |
id: r.id, | |
url: r.url, | |
thumbnail: { | |
url: r.thumbnail[0].url, | |
width: Number(r.thumbnail[0].width), | |
height: Number(r.thumbnail[0].height) | |
}, | |
type: r.type, | |
name: r.name, | |
branding: r.branding | |
}, "string" == typeof r.description && (i.description = r.description), a = j.a.getTopMostParentBody(), o = Object(ie.a)("<div>").addClass("vm-taboola").css("left", "50%").css("transform", "translate(-50%)").css("bottom", 0).css("position", "fixed").css("z-index", 999999), B.a.isDesktop() && (s = Object(ie.a)("<img>").attr("src", "https://hb.vntsm.com/assets/close.png"), d = Object(ie.a)("<div>").css("top", -22).css("right", 0).css("position", "absolute").css("cursor", "pointer").append(s), s.on("click", function() { | |
S.removeFooter() | |
}), o.append(d)), Object(ie.a)(a).append(o), c = Math.max(Math.floor(.45 * j.a.getTopMostParentWindow().innerWidth), 320), u = Math.max(Math.floor(.1 * j.a.getTopMostParentWindow().innerHeight), 90), p = i.thumbnail.width / i.thumbnail.height * u, l = Object(ie.a)("<div>").css("cursor", "pointer").css("position", "relative").css("width", c).css("height", u).css("border-top", "1px solid #414141").css("border-left", "1px solid #414141").css("border-right", "1px solid #414141").css("background", "#FFFFFF").on("click", function() { | |
return window.open(i.url, "new_window") | |
}), f = Object(ie.a)("<div>").css("float", "left").css("width", p).css("height", u), m = Object(ie.a)("<img>").css("width", p).css("height", u).attr("src", i.thumbnail.url), g = Object(ie.a)("<div>").css("height", u), h = Object(ie.a)("<div>").css("font-size", c < 450 ? "0.6em" : "1.0em").css("padding", "10px 100px 0px " + (10 + p) + "px").css("color", "#414141").html(i.name), Object(ie.a)("<div>").css("font-size", c < 450 ? "0.5em" : "0.8em").css("padding", "6px 200px 0px " + (10 + p) + "px").css("color", "#656565").html(i.description), b = Object(ie.a)("<div>").css("font-size", c < 450 ? "0.5em" : "0.8em").css("padding", "6px 10px 0px " + (10 + p) + "px").css("color", "#959595").html(i.branding), y = Object(ie.a)("<div>").css("right", 10).css("top", 10).css("position", "absolute"), v = Object(ie.a)("<div>").css("background", "#5383e8").css("color", "#F7F7F7").css("padding", "10px").html("Visit Site"), l.append(f.append(m)).append(g.append(h).append(b).append(y.append(v))), o.append(l), I(k)) : T(k) | |
}, | |
error: function() { | |
return T(k) | |
} | |
}) | |
}) | |
}, Ft); | |
function Ft() { | |
return null !== Vt && Vt.apply(this, arguments) || this | |
} | |
var Wt = (Gt.getRules = function() { | |
var n = S.a.mediationMultiAcceptance; | |
return S.a.siteLevelMediationMultiAcceptanceChanges.forEach(function(e, t) { | |
return n.set(t, e) | |
}), n | |
}, Gt); | |
function Gt() {} | |
var Ht = (Jt.prototype.canAcceptNext = function(e) { | |
for (var t = 0; t < this.acceptedAdapters.length; t++) { | |
var n = this.acceptedAdapters[t]; | |
if (Wt.getRules().has(n.name)) { | |
var r = Wt.getRules().get(n.name); | |
if (-1 === r.indexOf(e)) return T.a.debug(e + " has been prevented from running because " + n.name + " only permits " + r.join(", ") + " once accepted"), !1 | |
} | |
} | |
return !0 | |
}, Jt.prototype.createMediationBid = function(e, t) { | |
return void 0 === e && (e = "mediation"), void 0 === t && (t = 0), new C(new k({ | |
ad: "\x3c!-- Mediation --\x3e", | |
adUnitCode: this.placementPos + "-" + this.placementId + "-" + this.refreshConfig.currentLoopIndex, | |
bidder: e, | |
cpm: t, | |
size: this.winningBid.getWinningBid().getSize().getSize(), | |
timeToRespond: 0 | |
}), []) | |
}, Jt.prototype.processNext = function() { | |
var n = this; | |
if (0 < this.rules.length) { | |
var e = this.rules.pop(); | |
T.a.debug("Processing mediation rule: " + e.getAdapterName()); | |
var t = !0; | |
if ((e.isTargetingDesktopOnly() && B.a.isMobile() || e.isTargetingMobileOnly() && B.a.isDesktop()) && (t = !1), "ALL" != e.getTargetCountryCode() && e.getTargetCountryCode() != this.headerBiddingConfig.getCurrentCountryCode() && (t = !1), t) | |
if (this.canAcceptNext(e.getAdapterName())) switch (e.getAdapterName()) { | |
case "taboola": | |
new Lt(this, e).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "streamspread": | |
new qt(this, e).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "lkqd": | |
new(E.a.has("lkqd-new-setup") ? ee : H)(this, e, new A.a, function() { | |
return n.processNext() | |
}).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), E.a.has("lkqd-new-setup") || n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "teads": | |
new Pt(this, e).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: 0, | |
size: "1x1" | |
}), At.send(n.headerBiddingConfig, n.createMediationBid("teads", 0), !0, n.placementContainer), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "venatus": | |
case "venatus-vertical-sticky": | |
var r = new A.a([ | |
["linked_placement_id", e.getLinkedPlacementId()], | |
["site_id", this.headerBiddingConfig.getSiteId()], | |
["sticky", "venatus-vertical-sticky" === e.getAdapterName() ? "true" : "false"] | |
]); | |
this.placementContainer.getAttribute("data-top-space") && r.set("page_top", this.placementContainer.getAttribute("data-top-space")), this.placementContainer.getAttribute("data-parallax-top-space") && r.set("fixed_top", this.placementContainer.getAttribute("data-parallax-top-space")), new ae(this, e, r).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "venatus-op": | |
case "venatus-vertical-sticky-op": | |
var i = new A.a([ | |
["linked_placement_id", e.getLinkedPlacementId()], | |
["site_id", this.headerBiddingConfig.getSiteId()], | |
["sticky", "venatus-vertical-sticky-op" === e.getAdapterName() ? "true" : "false"] | |
]); | |
this.placementContainer.getAttribute("data-top-space") && i.set("page_top", this.placementContainer.getAttribute("data-top-space")), this.placementContainer.getAttribute("data-parallax-top-space") && i.set("fixed_top", this.placementContainer.getAttribute("data-parallax-top-space")), new ce(this, e, i).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "venatus-footer": | |
new mt(this, e, new A.a([ | |
["linked_placement_id", e.getLinkedPlacementId()], | |
["site_id", this.headerBiddingConfig.getSiteId()] | |
])).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "justpremium": | |
new Ct(this, e).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "gumgum": | |
new Ct(this, e).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "trion": | |
new Ct(this, e).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
case "jpmediated": | |
new Ct(this, e).run().then(function(e) { | |
var t = e.getMediationRule(); | |
n.acceptedAdapters.push({ | |
name: t.getAdapterName(), | |
cpm: t.getAdapterCPM(), | |
size: "1x1" | |
}), n.processNext() | |
}).catch(function() { | |
return n.processNext() | |
}); | |
break; | |
default: | |
T.a.debug("Mediation partner " + e.getAdapterName() + " is not supported"), this.processNext() | |
} else T.a.debug("Unable to accept partner " + e.getAdapterName() + " as there would be a conflict"), this.processNext(); | |
else T.a.debug("Failed to satisfy targeting for " + e.getAdapterName()), this.processNext() | |
} else this.isExhausted = !0, 0 === this.acceptedAdapters.length ? $t.render(new A.a([ | |
[this.placementPos + "-" + this.placementId, this.placementContainer] | |
]), [this.winningBid], this.headerBiddingConfig, this.refreshConfig, !1) : At.send(this.headerBiddingConfig, this.createMediationBid(), !0, this.placementContainer) | |
}, Jt.prototype.getRules = function() { | |
return this.rules | |
}, Jt.prototype.getPlacementId = function() { | |
return this.placementId | |
}, Jt.prototype.getPlacementPositionalId = function() { | |
return this.placementPos + "-" + this.placementId | |
}, Jt.prototype.getPlacementInstanceId = function() { | |
return this.placementPos + "-" + this.placementId + "-" + this.refreshConfig.currentLoopIndex | |
}, Jt.prototype.getPlacementContainer = function() { | |
return this.placementContainer | |
}, Jt.prototype.getHeaderBiddingConfig = function() { | |
return this.headerBiddingConfig | |
}, Jt.prototype.getRefreshConfig = function() { | |
return this.refreshConfig | |
}, Jt.prototype.getAcceptedAdapters = function() { | |
return this.acceptedAdapters | |
}, Jt.prototype.isComplete = function() { | |
return this.isExhausted | |
}, Jt); | |
function Jt(e, t, n, r, i, a) { | |
this.acceptedAdapters = [], this.isExhausted = !1, this.placementId = e, this.placementPos = t, this.placementContainer = n, this.winningBid = r, this.headerBiddingConfig = i, this.refreshConfig = a; | |
var o = i.getPlacement(e).getMediationRules(); | |
R.getStashedAdapterBids(t + "-" + e + "-" + a.currentLoopIndex).forEach(function(e) { | |
o.push(e.adapterBid.getAsMediationRule()) | |
}), E.a.has("force-teads") ? this.rules = [].concat(o.filter(function(e) { | |
return e.getAdapterName().match("^teads") | |
})) : E.a.has("force-taboola") ? this.rules = [new p.a({ | |
adapter_cpm: 0, | |
adapter_name: "taboola", | |
adapter_tag: "{}", | |
linked_placement_id: "", | |
order_index: 1, | |
target_device: "all", | |
target_geo: "ALL", | |
target_size: "0x0" | |
})] : E.a.has("force-streamspread") ? this.rules = [].concat(o.filter(function(e) { | |
return e.getAdapterName().match("^streamspread") | |
})) : E.a.has("force-venatus-footer") ? this.rules = [].concat(o.filter(function(e) { | |
return e.getAdapterName().match(/^venatus-footer/) | |
})) : E.a.has("force-venatus-op") ? this.rules = [].concat(o.filter(function(e) { | |
return e.getAdapterName().match(/^venatus-op|venatus-vertical-sticky-op/) | |
})) : E.a.has("force-venatus") ? this.rules = [].concat(o.filter(function(e) { | |
return e.getAdapterName().match(/^venatus|venatus-vertical-sticky$/) | |
})) : E.a.has("force-lkqd") ? this.rules = [].concat(o.filter(function(e) { | |
return e.getAdapterName().match("^lkqd") | |
})) : B.a.isDesktop() ? this.rules = [].concat(o.filter(function(e) { | |
return e.getAdapterName().match("^just") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^jp") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match(/^(venatus|venatus-op)$/) | |
}), o.filter(function(e) { | |
return e.getAdapterName().match(/^(venatus-vertical-sticky|venatus-vertical-sticky-op)$/) | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^lkqd") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match(/^venatus-footer/) | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^streamspread") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^gumgum") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^trion") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^teads") | |
})).reverse() : this.rules = [].concat(o.filter(function(e) { | |
return e.getAdapterName().match("^just") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^lkqd") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^jp") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^trion") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^gumgum") | |
}), o.filter(function(e) { | |
return e.getAdapterName().match("^venatus") | |
})).reverse() | |
} | |
var Yt = (Kt.isAdblocked = function() { | |
var t = this; | |
this._isInit || this.init(); | |
var n = function(e) { | |
void 0 !== t._isAdblocked ? e(t._isAdblocked) : setTimeout(function() { | |
return n(e) | |
}, 50) | |
}; | |
return new Promise(function(e) { | |
return n(e) | |
}) | |
}, Kt.init = function() { | |
var e = this; | |
this._isInit = !0, "boolean" == typeof a.getValue(this.LS_KEY) && (this._isAdblocked = a.getValue(this.LS_KEY)), c.ready(function() { | |
setTimeout(function() { | |
null === e.config.bait && e.createBait(), setTimeout(function() { | |
return e.check() | |
}, 5) | |
}, 5) | |
}, j.a.getTopMostParentWindow()) | |
}, Kt.createBait = function() { | |
var e = document.createElement("div"); | |
e.setAttribute("class", this.options.baitClass), e.setAttribute("style", this.options.baitStyle), this.config.bait = e, j.a.getTopMostParentBody().appendChild(e), this.config.bait.offsetParent, this.config.bait.offsetHeight, this.config.bait.offsetLeft, this.config.bait.offsetTop, this.config.bait.offsetWidth, this.config.bait.clientHeight, this.config.bait.clientWidth | |
}, Kt.destroyBait = function() { | |
j.a.getTopMostParentBody().removeChild(this.config.bait), this.config.bait = null | |
}, Kt.check = function(e) { | |
var t = this; | |
return void 0 === e && (e = !0), !this.config.checking && (this.config.checking = !0, null === this.config.bait && this.createBait(), this.config.loopNumber = 0, e && (this.config.loop = setInterval(function() { | |
return t.checkBait(e) | |
}, this.options.loopCheckTime)), setTimeout(function() { | |
return t.checkBait(e) | |
}, 5), !0) | |
}, Kt.checkBait = function(e) { | |
var n = this; | |
null === this.config.bait && this.createBait(); | |
var t = null !== j.a.getTopMostParentBody().getAttribute("abp"); | |
e && (this.config.loopNumber++, this.config.loopNumber >= this.options.loopMaxNumber && this.stopLoop()), t || function(e, t) { | |
for (var n = 0; n < t.length; n++) { | |
var r = t[n], | |
i = r[0], | |
a = r[1]; | |
if (e[i] == a) return !0 | |
} | |
return !1 | |
}(n.config.bait, [ | |
["offsetParent", null], | |
["offsetHeight", 0], | |
["offsetLeft", 0], | |
["offsetTop", 0], | |
["offsetWidth", 0], | |
["clientHeight", 0], | |
["clientWidth", 0] | |
]) || function() { | |
var e = j.a.getTopMostParentWindow(); | |
if (void 0 !== e.getComputedStyle) { | |
var t = e.getComputedStyle(n.config.bait, null); | |
if (t && ("none" == t.getPropertyValue("display") || t.getPropertyValue("hidden"))) return !0 | |
} | |
return !1 | |
}() ? (this.stopLoop(), this.destroyBait(), this._isAdblocked = !0, e && (this.config.checking = !1), a.set(this.LS_KEY, this._isAdblocked, this.LS_EXPIRE)) : null !== this.config.loop && !1 !== this.config.loop || (this.destroyBait(), this._isAdblocked = !1, e && (this.config.checking = !1), a.set(this.LS_KEY, this._isAdblocked, this.LS_EXPIRE)) | |
}, Kt.stopLoop = function() { | |
clearInterval(this.config.loop), this.config.loop = null, this.config.loopNumber = 0 | |
}, Kt.LS_KEY = "vm-abd", Kt.LS_EXPIRE = 36e5, Kt.options = { | |
loopCheckTime: 50, | |
loopMaxNumber: 5, | |
baitClass: "pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links", | |
baitStyle: "width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;" | |
}, Kt.config = { | |
bait: null, | |
checking: !1, | |
loop: null, | |
loopNumber: 0 | |
}, Kt._isInit = !1, Kt); | |
function Kt() {} | |
var Xt = function(e, o, s, d) { | |
return new(s = s || Promise)(function(n, t) { | |
function r(e) { | |
try { | |
a(d.next(e)) | |
} catch (e) { | |
t(e) | |
} | |
} | |
function i(e) { | |
try { | |
a(d.throw(e)) | |
} catch (e) { | |
t(e) | |
} | |
} | |
function a(e) { | |
var t; | |
e.done ? n(e.value) : ((t = e.value) instanceof s ? t : new s(function(e) { | |
e(t) | |
})).then(r, i) | |
} | |
a((d = d.apply(e, o || [])).next()) | |
}) | |
}, | |
Qt = function(n, r) { | |
var i, a, o, s = { | |
label: 0, | |
sent: function() { | |
if (1 & o[0]) throw o[1]; | |
return o[1] | |
}, | |
trys: [], | |
ops: [] | |
}, | |
e = { | |
next: t(0), | |
throw: t(1), | |
return: t(2) | |
}; | |
return "function" == typeof Symbol && (e[Symbol.iterator] = function() { | |
return this | |
}), e; | |
function t(t) { | |
return function(e) { | |
return function(t) { | |
if (i) throw new TypeError("Generator is already executing."); | |
for (; s;) try { | |
if (i = 1, a && (o = 2 & t[0] ? a.return : t[0] ? a.throw || ((o = a.return) && o.call(a), 0) : a.next) && !(o = o.call(a, t[1])).done) return o; | |
switch (a = 0, o && (t = [2 & t[0], o.value]), t[0]) { | |
case 0: | |
case 1: | |
o = t; | |
break; | |
case 4: | |
return s.label++, { | |
value: t[1], | |
done: !1 | |
}; | |
case 5: | |
s.label++, a = t[1], t = [0]; | |
continue; | |
case 7: | |
t = s.ops.pop(), s.trys.pop(); | |
continue; | |
default: | |
if (!(o = 0 < (o = s.trys).length && o[o.length - 1]) && (6 === t[0] || 2 === t[0])) { | |
s = 0; | |
continue | |
} | |
if (3 === t[0] && (!o || t[1] > o[0] && t[1] < o[3])) { | |
s.label = t[1]; | |
break | |
} | |
if (6 === t[0] && s.label < o[1]) { | |
s.label = o[1], o = t; | |
break | |
} | |
if (o && s.label < o[2]) { | |
s.label = o[2], s.ops.push(t); | |
break | |
} | |
o[2] && s.ops.pop(), s.trys.pop(); | |
continue | |
} | |
t = r.call(n, s) | |
} catch (e) { | |
t = [6, e], a = 0 | |
} finally { | |
i = o = 0 | |
} | |
if (5 & t[0]) throw t[1]; | |
return { | |
value: t[0] ? t[1] : void 0, | |
done: !0 | |
} | |
}([t, e]) | |
} | |
} | |
}, | |
$t = (Zt.applyDebug = function(t, n, r, i, a, o) { | |
return Xt(this, void 0, void 0, function() { | |
return Qt(this, function(e) { | |
switch (e.label) { | |
case 0: | |
return [4, Promise.all([s.e(1), s.e(6)]).then(s.bind(null, 49))]; | |
case 1: | |
return e.sent().DebugOverlay.appendTo(t, n, r, i, a, o), [2, Promise.resolve(t)] | |
} | |
}) | |
}) | |
}, Zt.attemptMediation = function(e, t, n, r, i, a) { | |
var o = new Ht(e, t, n, r, i, a); | |
return o.processNext(), Promise.resolve(o) | |
}, Zt.renderRichMedia = function(n) { | |
return Xt(this, void 0, void 0, function() { | |
var t; | |
return Qt(this, function(e) { | |
switch (e.label) { | |
case 0: | |
return [4, s.e(3).then(s.bind(null, 50))]; | |
case 1: | |
return t = e.sent(), [2, Promise.resolve(new t.RichMedia(n))] | |
} | |
}) | |
}) | |
}, Zt.wrappedAd = function(e) { | |
return e.getAd() | |
}, Zt.writeToAdFrame = function(e, t) { | |
var n; | |
if (void 0 !== e.contentDocument && null !== e.contentDocument ? n = e.contentDocument : void 0 !== e.contentWindow && null !== e.contentWindow && void 0 !== e.contentWindow.document && null !== e.contentWindow.document && (n = e.contentWindow.document), void 0 === n) return Promise.reject("Failed to write to frame"); | |
return function(e) { | |
try { | |
n.open(), n.write(e), n.close() | |
} catch (e) {} | |
}(this.wrappedAd(t)), Promise.resolve() | |
}, Zt.resizeParentFrame = function(e, t) { | |
if (void 0 !== e.contentDocument && null !== e.contentDocument) try { | |
var n, r; | |
e.contentDocument.defaultView.parent.frameElement && (((r = (n = e.contentDocument.defaultView.parent.frameElement).getAttribute("id")).match(/google\_ads/) || r.match(/MB\-iframe/)) && (n.setAttribute("width", t.getSize().getWidth() + ""), n.setAttribute("height", t.getSize().getHeight() + "")), n = r = null) | |
} catch (e) {} | |
}, Zt.renderFromAdapterBid = function(r, i, a, e) { | |
var o = this; | |
if (void 0 === a && (a = !1), void 0 === e && (e = !1), It.isLoaded() && !e && (i.isBlank() || i.isPSA() || i.isDefault())) return new Promise(function(t, n) { | |
It.onReady(function(e) { | |
e ? n() : o.renderFromAdapterBid(r, i, a, !0).then(function() { | |
return t() | |
}) | |
}) | |
}); | |
if (It.isLoaded() || Yt.isAdblocked().then(function(e) { | |
e && (r.style.display = "none", r.setAttribute("vm-ab-detected", "true")) | |
}), i.getBidder().match(/^playground/i) && r.setAttribute("prevent-refresh", "true"), i.isBlank()) return Promise.resolve(); | |
S.a.assistFrameCleanup && !a && u.a.getChildrenElementsOfParentElement(r).forEach(function(e) { | |
if ("IFRAME" === e.tagName) { | |
e.src = "about:blank"; | |
try { | |
r.removeChild(e) | |
} catch (e) {} | |
} else { | |
var t; | |
"DIV" !== e.tagName || "string" == typeof(t = e.getAttribute("id")) && t.match(/^google\_ad/) && (e.style.display = "none") | |
} | |
}), r.style.background = "none", r.style.border = "none", r.style.position = "relative", r.style.margin = "0 auto", r.style.overflow = "hidden", r.style.maxWidth = i.getSize().getWidth() + "px"; | |
var n = document.createElement("iframe"); | |
return n.width = "" + i.getSize().getWidth(), n.height = "" + i.getSize().getHeight(), i.isDefault() && n.setAttribute("data-is-default", "true"), n.setAttribute("allowtransparency", "true"), n.setAttribute("marginheight", "0"), n.setAttribute("marginwidth", "0"), n.setAttribute("scrolling", "no"), n.setAttribute("frameborder", "0"), "edge" === yt.parse().browser_name || "ie" === yt.parse().browser_name ? new Promise(function(e, t) { | |
r.appendChild(n), o.resizeParentFrame(n, i), n.onload = function() { | |
try { | |
n.onload = function() {}, n.contentDocument.write(o.wrappedAd(i)), n.contentDocument.close(), e() | |
} catch (e) { | |
t() | |
} | |
}, n.src = "javascript:'<html><body></body></html>'" | |
}) : (n.src = "javascript:'<html><body></body></html>'", r.appendChild(n), this.resizeParentFrame(n, i), this.writeToAdFrame(n, i)) | |
}, Zt.render = function(d, e, c, u, p, l, f) { | |
var m = this; | |
void 0 === p && (p = !0), void 0 === l && (l = !1), void 0 === f && (f = !0), e.forEach(function(t) { | |
var e, n = t.getWinningBid(), | |
r = n.getPlacementId(), | |
i = n.getPlacementPos(), | |
a = d.get(i + "-" + r), | |
o = c.getPlacement(r), | |
s = E.a.has("force-mediation"); | |
o.isRichMedia() && (0 < o.getMediationRules().length || !R.isEmpty()) && p && (s || n.isBlank() || n.isPSA() || n.isDefault()) ? m.attemptMediation(r, i, a, t, c, u).then(function(e) { | |
T.a.isDebugMode() && m.applyDebug(r, a, t, c, u, e).then(function(e) { | |
T.a.info("Applied debug overlay to placement " + e) | |
}) | |
}) : (n.isBlank() || "footer" != a.getAttribute("data-ref") || (e = j.a.getTopMostParentDocument().querySelector(".vm-footer-close-button")) && (e.style.display = "block"), 1 < u.currentLoopIndex && (n.isBlank() || n.isDefault() && !S.a.rotateDefaults || n.isPSA()) ? T.a.debug("Take no action here, leave the current ad...") : m.renderFromAdapterBid(a, n, l, !c.isAdblockRecoveryEnabled()).then(function() { | |
f ? At.send(c, t, !0, a) : T.a.debug("Bypassing tracking event for " + n.getBidder()) | |
}, function() { | |
return T.a.error("Failed to render from HTML and subsequently track ad from " + n.getBidder()) | |
}), T.a.isDebugMode() && p && m.applyDebug(r, a, t, c, u).then(function(e) { | |
T.a.info("Applied debug overlay to placement " + e) | |
})) | |
}) | |
}, Zt); | |
function Zt() {} | |
var en = (tn.isMicrosoft = function() { | |
return /Trident|MSIE|Edge\//i.test(navigator.userAgent) | |
}, tn.isOpera = function() { | |
return /OPR\/|Opera/i.test(navigator.userAgent) | |
}, tn); | |
function tn() {} | |
var nn = (rn.process = function(e) { | |
for (var t = j.a.getTopMostParentWindow().__vm_add || [], n = [], r = t.pop(); void 0 !== r;) { | |
var i = r.getAttribute("data-id").replace(/[\[|\]]/g, ""); | |
r.setAttribute("data-id", i), T.a.debug("Adding new dynamic placement: " + i, r), n.push(r), r = t.pop() | |
} | |
0 < n.length && Un.addPlacements(n, e) | |
}, rn); | |
function rn() {} | |
var an = s(14), | |
on = (sn.getA9Tag = function() { | |
var e = j.a.getTopMostParentWindow(); | |
return void 0 === e.apstag && (T.a.a9("Setting '" + this.NS + "' defaults for Amazon Library"), e.apstag = { | |
init: function() { | |
e[sn.NS]._Q.push(["i", arguments]) | |
}, | |
fetchBids: function() { | |
e[sn.NS]._Q.push(["f", arguments]) | |
}, | |
setDisplayBids: function() {}, | |
targetingKeys: function() { | |
return [] | |
}, | |
_Q: [] | |
}, T.a.a9("Calling init, with pubID: " + S.a.a9PublisherId + ", adServer: " + this.ADSERVER), e.apstag.init({ | |
pubID: S.a.a9PublisherId, | |
adServer: this.ADSERVER, | |
gdpr: { | |
cmpTimeout: 5100 | |
} | |
})), e.apstag | |
}, sn.load = function() { | |
var n = S.a.defaultProtocol + "://c.amazon-adsystem.com/aax2/apstag.js", | |
r = this.getA9Tag(); | |
return T.a.a9("Loading the Amazon Library - " + n), new Promise(function(e, t) { | |
return d.a.loadJSIn(j.a.getTopMostParentWindow(), n, function() { | |
return e(r) | |
}, function() { | |
return t() | |
}) | |
}) | |
}, sn.fetchBids = function(i, a) { | |
var o = this; | |
return new Promise(function(t, e) { | |
var n = o.getA9Tag(), | |
r = { | |
slots: i.map(function(e) { | |
var t = a.getPlacement(e.getAttribute("data-id")), | |
n = { | |
slotID: e.getAttribute("id"), | |
slotName: "/" + S.a.dfpPublisherId + "/VM_" + a.getSiteId(), | |
sizes: t.getPlacementSizes(e).map(function(e) { | |
return e.getDims() | |
}) | |
}; | |
return T.a.a9("Defining Amazon Slot: " + e.getAttribute("id"), n), n | |
}), | |
timeout: S.a.prebidGlobalTimeoutMS | |
}; | |
n.fetchBids(r, function(e) { | |
T.a.a9("Returned Amazon Bids", e), o.abTest.runOnEnabledSites(a, function() { | |
T.a.a9("Using NEW A9 Implementation"), o.bidsTargetingStash = o.createBidsMapForTargeting(e, n.targetingKeys()), dn.call(function() { | |
dn.getGoogleTag().pubads().addEventListener("slotRenderEnded", function(e) { | |
var t = e.slot; | |
n.targetingKeys().forEach(function(e) { | |
t.clearTargeting(e) | |
}) | |
}) | |
}) | |
}, function() { | |
T.a.a9("Using DEFAULT A9 Implementation"), n.setDisplayBids() | |
}), t(e) | |
}) | |
}) | |
}, sn.updateTargeting = function(e) { | |
e.updateTargetingFromMap(this.bidsTargetingStash[e.getSlotElementId()]) | |
}, sn.createBidsMapForTargeting = function(e, t) { | |
return e.reduce(function(e, n) { | |
return e[n.slotID] = t.reduce(function(e, t) { | |
return e[t] = [n[t]], e | |
}, {}), e | |
}, {}) | |
}, sn.NS = "apstag", sn.ADSERVER = "googletag", sn.abTest = an.a.forSitesWithRatio(S.a.A9ABTestSiteIds), sn); | |
function sn() {} | |
var dn = (cn.trackBackFillRequest = function(e, t) { | |
var n = cn.getBucketRangeFromTargetPriceBucket(t); | |
T.a.debug("Tracking back-fill request for " + e + "@" + n), a.set(e + "@" + n, !1, cn.expires) | |
}, cn.trackBackFillResponse = function(e, t) { | |
var n = cn.getBucketRangeFromTargetPriceBucket(t); | |
T.a.debug("Tracking back-fill response (true) for " + e + "@" + n), a.set(e + "@" + n, !0, cn.expires) | |
}, cn.allowBackFillRequest = function(e, t) { | |
var n = cn.getBucketRangeFromTargetPriceBucket(t), | |
r = a.getValue(e + "@" + n), | |
i = !0 === r || null === r; | |
return T.a.debug("Allow back-fill request for " + e + "@" + n + "? " + (i ? "Yes" : "No")), i | |
}, cn.getBucketRangeFromTargetPriceBucket = function(e) { | |
return (Math.round(10 * parseFloat(e)) / 10).toFixed(2) | |
}, cn.getTargetPriceBucketFromBid = function(n) { | |
var e = cn.getSupportedPriceBuckets(), | |
r = -1; | |
return e.forEach(function(e, t) { | |
e <= n && (r = t) | |
}), e[r + 1] && (r += 1), e[r].toFixed(2) | |
}, cn.getSupportedPriceBuckets = function() { | |
for (var e = [], t = 1; t < 500; t++) e.push(t / 100); | |
for (t = 500; t <= 2500; t += 10) e.push(t / 100); | |
return e | |
}, cn.getGoogleTag = function() { | |
return j.a.getTopMostParentWindow().googletag = j.a.getTopMostParentWindow().googletag || {}, j.a.getTopMostParentWindow().googletag | |
}, cn.getGoogleTagCMD = function() { | |
return cn.getGoogleTag().cmd = cn.getGoogleTag().cmd || [], cn.getGoogleTag().cmd | |
}, cn.load = function() { | |
void 0 === j.a.getTopMostParentWindow().googletag && d.a.loadJSIn(j.a.getTopMostParentWindow(), "https://securepubads.g.doubleclick.net/tag/js/gpt.js"), cn.call(function() { | |
E.a.has("gdbg") && cn.getGoogleTag().openConsole(), cn.getGoogleTag().pubads().disableInitialLoad(), cn.getGoogleTag().pubads().addEventListener("slotRenderEnded", function(e) { | |
var t, n, r, i, a, o; - 1 !== e.slot.getAdUnitPath().indexOf(S.a.dfpPublisherId) && (t = e.slot.getTargeting("hb_adid")[0], n = e.slot.getTargeting("hb_pb")[0], r = !0 === e.isBackfill || null !== e.yieldGroupIds, T.a.debug("DFP: Event Data", { | |
id: t, | |
priceBucket: n, | |
event: e, | |
hasWon: r | |
}), r && (cn.trackBackFillResponse(t, n), a = (i = cn.postBidStash.get(t)).placementContainer, o = i.winningBid.getWinningBid(), u.a.getChildrenElementsOfParentElement(a).forEach(function(e) { | |
var t; | |
"DIV" !== e.tagName || "string" == typeof(t = e.getAttribute("id")) && t.match(/^google\_ad/) && (e.style.display = "block", e.style.margin = "0 auto") | |
}), a.style.position = "relative", a.style.margin = "0 auto", a.style.overflow = "hidden", e.size && (a.style.maxWidth = e.size[0] + "px"), "footer" == a.getAttribute("data-ref") && (j.a.getTopMostParentDocument().querySelector(".vm-footer-close-button").style.display = "block"), T.a.isDebugMode() && $t.applyDebug(i.placementId, i.placementContainer, new C(new k({ | |
ad: "\x3c!-- Google DFP --\x3e", | |
adUnitCode: o.getAdUnitCode(), | |
bidder: "google", | |
cpm: 0, | |
priceBucket: n, | |
size: e.size ? e.size[0] + "x" + e.size[1] : "1x1", | |
timeToRespond: 0 | |
}), i.winningBid.getBidLandscape().concat(i.winningBid.getWinningBid()), i.winningBid.getAppliedPaymentRule(), i.winningBid.getSuccessfulAdapterBids().concat(i.winningBid.getWinningBid())), i.headerBiddingConfig, i.refreshConfig).then(function(e) { | |
T.a.info("Applied debug overlay to DFP placement " + e) | |
}))) | |
}) | |
}) | |
}, cn.call = function(e) { | |
cn.getGoogleTagCMD().push(e) | |
}, cn.requestAgainst = function(d, e, c, u) { | |
e.forEach(function(e) { | |
var t = e.getWinningBid(), | |
n = t.getPlacementId(), | |
r = t.getPlacementPos(), | |
i = d.get(r + "-" + n), | |
a = c.getPlacement(n), | |
o = cn.getTargetPriceBucketFromBid(t.getCPM()), | |
s = S.a.dfpExcludedPlacementIds.has(n); | |
E.a.has("only-allow") && "google" != E.a.getValue("only-allow") && (s = !0), "58d2538946e0fb0001e4b3e5" != c.getSiteId() || j.a.isInView(i) || (s = !0), s && T.a.warn("DFP Has been disabled for placement " + n), s || a.isRichMedia() || t.isDirect() || 25 < t.getCPM() ? $t.render(new A.a([ | |
[r + "-" + n, i] | |
]), [e], c, u) : (cn.trackBackFillRequest(i.getAttribute("id"), o), cn.postBidStash.set(i.getAttribute("id"), { | |
placementId: n, | |
placementPos: r, | |
placementContainer: i, | |
winningBid: e, | |
headerBiddingConfig: c, | |
refreshConfig: u | |
}), At.createDFPTargeting(c, new C(new k({ | |
ad: "\x3c!-- Google DFP --\x3e", | |
adUnitCode: e.getWinningBid().getAdUnitCode(), | |
bidder: "google", | |
cpm: 0, | |
priceBucket: o, | |
size: a.getSmallestSize().getSize(), | |
timeToRespond: 0 | |
}), e.getBidLandscape()), !0, i).then(function(e) { | |
cn.requestSlot("/" + S.a.dfpPublisherId + "/VM_" + c.getSiteId(), a.getPlacementSizes(i).map(function(e) { | |
return e.getDims() | |
}), n, r, i, o, i.getAttribute("id"), e, c) | |
}, function() { | |
T.a.error("Failed to generate DFP targeting and request slot...") | |
})) | |
}) | |
}, cn.setTargeting = function(n, e) { | |
e.forEach(function(e, t) { | |
return n.setTargeting(t, [e]) | |
}) | |
}, cn.requestSlot = function(i, a, e, t, o, n, s, r, d) { | |
var c = this; | |
E.a.has("dfp-low-bucket-test") && (n = "0.01"), T.a.debug("DFP: Requesting " + i + " for " + a.map(function(e) { | |
return e[0] + "x" + e[1] | |
}).join(",") + " with price bucket " + n + " using stash id " + s); | |
var u, p = o.getAttribute("id"), | |
l = e + "-" + t, | |
f = new A.a([ | |
["hb_pb", n], | |
["hb_adid", s], | |
["hb_iv", j.a.isInView(o) && j.a.hasFocus() ? "1" : "0"] | |
]); | |
for (u in r) r.hasOwnProperty(u) && f.set(u, r[u]); | |
T.a.debug("DFP: Targeting", f), cn.call(function() { | |
var r = null; | |
cn.getGoogleTag().pubads().getSlots().forEach(function(e) { | |
e.getSlotElementId() === p && (r = e) | |
}), null === r ? (null === p && (o.setAttribute("id", l), p = l), T.a.debug("DFP: Initial Request: " + i + " | PB: " + n + " | Stash: " + s), cn.abTestGoogleRangeSizing.runOnEnabledSites(d, function() { | |
var t, e = "footer" === o.getAttribute("data-ref"), | |
n = "float" === o.getAttribute("data-ref"); | |
e || n ? (t = "re_ve", cn.abTestFooterFloatRangeSizing.runOnEnabledSites(function() { | |
f.set(t, f.get(t) + "_fr"); | |
var e = cn.getRangeSize(a); | |
r = cn.getGoogleTag().defineSlot(i, e, p), T.a.debug("DFP: Used Range sizing " + JSON.stringify(e) + " for placement: " + p) | |
}, function() { | |
f.set(t, f.get(t) + "_fo"), r = cn.getGoogleTag().defineSlot(i, a, p) | |
})) : r = cn.getGoogleTag().defineSlot(i, a, p) | |
}, function() { | |
r = cn.getGoogleTag().defineSlot(i, a, p) | |
}), void 0 !== r && (cn.setTargeting(r, f), c.updateA9Targeting(r, d), r.addService(cn.getGoogleTag().pubads()), d.isCOPPACompliant() && (T.a.warn("COPPA ruleset is being applied to DFP..."), cn.getGoogleTag().pubads().setRequestNonPersonalizedAds(1), cn.getGoogleTag().pubads().setTagForChildDirectedTreatment(1), cn.getGoogleTag().pubads().setTagForUnderAgeOfConsent(1)), cn.getGoogleTag().pubads().enableSingleRequest(), cn.getGoogleTag().enableServices(), cn.getGoogleTag().display(p), cn.getGoogleTag().pubads().refresh([r]))) : (T.a.debug("DFP: Refresh Request: " + i + " | PB: " + n + " | Stash: " + s), cn.setTargeting(r, f), c.updateA9Targeting(r, d), cn.getGoogleTag().pubads().refresh([r])) | |
}) | |
}, cn.getRangeSize = function(e) { | |
var t, n = e[0][0], | |
r = e[0][1], | |
i = e[0][0], | |
a = e[0][1]; | |
for (t in e) e[t][0] > i && (i = e[t][0]), e[t][1] > a && (a = e[t][1]), e[t][0] < n && (n = e[t][0]), e[t][1] < r && (r = e[t][1]); | |
return { | |
fixed: e, | |
max: [i, a], | |
min: [n, r] | |
} | |
}, cn.handleSlotRejectEvent = function(e) { | |
T.a.debug("DFP: Handling slot reject event for " + e); | |
var t = cn.postBidStash.get(e); | |
$t.render(new A.a([ | |
[t.placementPos + "-" + t.placementId, t.placementContainer] | |
]), [t.winningBid], t.headerBiddingConfig, t.refreshConfig) | |
}, cn.updateA9Targeting = function(e, t) { | |
this.abTestA9.runOnEnabledSites(t, function() { | |
(T.a.isA9DebugMode() || t.isA9Enabled()) && on.updateTargeting(e) | |
}) | |
}, cn.expires = T.a.isA9DebugMode() ? 0 : 6e5, cn.postBidStash = new A.a, cn.abTestA9 = an.a.forSitesWithRatio(S.a.A9ABTestSiteIds), cn.abTestGoogleRangeSizing = an.a.forSitesWithRatio(S.a.GoogleRangeSizingSiteIds), cn.abTestFooterFloatRangeSizing = new an.b(S.a.GoogleRangeSizingFooterFloatTest), cn); | |
function cn() {} | |
var un = (pn.start = function(e) { | |
var t = this; | |
this.headerBiddingConfig = e, M.add(function() { | |
t.processCalls() | |
}, S.a.apiCheckIntervalMS, "api") | |
}, pn.stop = function() { | |
M.clearByName("api") | |
}, pn.addPlacement = function(e) { | |
var t = e.getAttribute("data-id").replace(/[\[|\]]/g, ""); | |
e.setAttribute("data-id", t), Un.addPlacements([e], this.headerBiddingConfig) | |
}, pn.processCalls = function() { | |
for (var e = this, t = j.a.getTopMostParentWindow().VM_API || []; 0 < t.length;) { | |
var n = t.pop(); | |
switch (n.call) { | |
case "add-placement": | |
try { | |
this.addPlacement(n.args.placementContainer), "function" == typeof n.onResult && n.onResult(!0) | |
} catch (e) { | |
"function" == typeof n.onError && n.onError(e.message) | |
} | |
break; | |
case "open-cmp": | |
I.a.get().showCMP(), "function" == typeof n.onResult && n.onResult(!0); | |
break; | |
case "is-consent-required": | |
"function" == typeof n.onResult && n.onResult(this.headerBiddingConfig.isEUCountry()); | |
break; | |
case "dfp-slot-reject": | |
dn.handleSlotRejectEvent(n.args.stashId), "function" == typeof n.onResult && n.onResult(!0); | |
break; | |
case "teads-slot-reject": | |
Pt.triggerReject(), "function" == typeof n.onResult && n.onResult(!0); | |
break; | |
case "is-country": | |
"function" == typeof n.onResult && n.onResult(-1 != n.args.in.indexOf(this.headerBiddingConfig.getCurrentCountryCode())); | |
break; | |
case "get-events": | |
"function" == typeof n.onResult && n.onResult(T.a.getEvents().asArray().map(function(e) { | |
return e.getName() | |
})); | |
break; | |
default: | |
throw "VM API - Call Not Supported..." | |
} | |
} | |
M.add(function() { | |
e.processCalls() | |
}, S.a.apiCheckIntervalMS, "api") | |
}, pn); | |
function pn() {} | |
var ln = (fn.prototype.load = function() { | |
var e = j.a.getTopMostParentWindow(); | |
e.xl8_config = { | |
p: 1041, | |
g: 1 | |
}, d.a.loadJSIn(e, "https://cdn.exelator.com/build/static.min.js") | |
}, fn); | |
function fn() {} | |
var mn = (gn.hasCapacity = function(e) { | |
void 0 === e && (e = .8); | |
var t = j.a.getTopMostParentWindow(); | |
return "object" != typeof t.performance || "object" != typeof t.performance.memory || "number" != typeof t.performance.memory.totalJSHeapSize || "number" != typeof t.performance.memory.jsHeapSizeLimit || t.performance.memory.totalJSHeapSize / t.performance.memory.jsHeapSizeLimit < e | |
}, gn); | |
function gn() {} | |
var hn = (bn.init = function(n, e) { | |
function t() { | |
var e = j.a.getTopMostParentWindow(); | |
! function(e, t) { | |
e.ym = e.ym || function() { | |
(e.ym.a = e.ym.a || []).push(arguments) | |
}, e.ym.l = (new Date).getTime(); | |
var n = t.createElement("script"), | |
r = t.getElementsByTagName("script")[0]; | |
n.async = 1, n.src = "https://mc.yandex.ru/metrika/tag.js", r.parentNode.insertBefore(n, r) | |
}(e, j.a.getTopMostParentDocument()); | |
var t = { | |
clickmap: !1, | |
trackLinks: !1, | |
accurateTrackBounce: !0, | |
defer: !0 | |
}; | |
e.ym(parseInt(n), "init", t), T.a.debug("Init YM with opts :", t) | |
} | |
void 0 === e && (e = 0), e ? setTimeout(function() { | |
t() | |
}, e) : t() | |
}, bn); | |
function bn() {} | |
var yn = (vn.add = function(e) { | |
var t = this; | |
e.forEach(function(e) { | |
return t.deferredPlacements.push(e) | |
}) | |
}, vn.process = function(r) { | |
var t = this, | |
i = []; | |
this.deferredPlacements.popEach(function(e) { | |
var t = e[0], | |
n = e[1]; | |
j.a.isInView(n) ? Un.renderPlacements(new A.a([ | |
[t, n] | |
]), r, 1) : i.push([t, n]) | |
}), i.forEach(function(e) { | |
return t.deferredPlacements.push(e) | |
}) | |
}, vn.deferredPlacements = new f, vn); | |
function vn() {} | |
var wn, In, Tn = function(e, o, s, d) { | |
return new(s = s || Promise)(function(n, t) { | |
function r(e) { | |
try { | |
a(d.next(e)) | |
} catch (e) { | |
t(e) | |
} | |
} | |
function i(e) { | |
try { | |
a(d.throw(e)) | |
} catch (e) { | |
t(e) | |
} | |
} | |
function a(e) { | |
var t; | |
e.done ? n(e.value) : ((t = e.value) instanceof s ? t : new s(function(e) { | |
e(t) | |
})).then(r, i) | |
} | |
a((d = d.apply(e, o || [])).next()) | |
}) | |
}, | |
Sn = function(n, r) { | |
var i, a, o, s = { | |
label: 0, | |
sent: function() { | |
if (1 & o[0]) throw o[1]; | |
return o[1] | |
}, | |
trys: [], | |
ops: [] | |
}, | |
e = { | |
next: t(0), | |
throw: t(1), | |
return: t(2) | |
}; | |
return "function" == typeof Symbol && (e[Symbol.iterator] = function() { | |
return this | |
}), e; | |
function t(t) { | |
return function(e) { | |
return function(t) { | |
if (i) throw new TypeError("Generator is already executing."); | |
for (; s;) try { | |
if (i = 1, a && (o = 2 & t[0] ? a.return : t[0] ? a.throw || ((o = a.return) && o.call(a), 0) : a.next) && !(o = o.call(a, t[1])).done) return o; | |
switch (a = 0, o && (t = [2 & t[0], o.value]), t[0]) { | |
case 0: | |
case 1: | |
o = t; | |
break; | |
case 4: | |
return s.label++, { | |
value: t[1], | |
done: !1 | |
}; | |
case 5: | |
s.label++, a = t[1], t = [0]; | |
continue; | |
case 7: | |
t = s.ops.pop(), s.trys.pop(); | |
continue; | |
default: | |
if (!(o = 0 < (o = s.trys).length && o[o.length - 1]) && (6 === t[0] || 2 === t[0])) { | |
s = 0; | |
continue | |
} | |
if (3 === t[0] && (!o || t[1] > o[0] && t[1] < o[3])) { | |
s.label = t[1]; | |
break | |
} | |
if (6 === t[0] && s.label < o[1]) { | |
s.label = o[1], o = t; | |
break | |
} | |
if (o && s.label < o[2]) { | |
s.label = o[2], s.ops.push(t); | |
break | |
} | |
o[2] && s.ops.pop(), s.trys.pop(); | |
continue | |
} | |
t = r.call(n, s) | |
} catch (e) { | |
t = [6, e], a = 0 | |
} finally { | |
i = o = 0 | |
} | |
if (5 & t[0]) throw t[1]; | |
return { | |
value: t[0] ? t[1] : void 0, | |
done: !0 | |
} | |
}([t, e]) | |
} | |
} | |
}, | |
kn = (jn.init = function() { | |
return Tn(this, void 0, void 0, function() { | |
return Sn(this, function(e) { | |
switch (e.label) { | |
case 0: | |
return [4, s.e(4).then(s.bind(null, 48))]; | |
case 1: | |
return e.sent().Showcase.render(), [2, Promise.resolve()] | |
} | |
}) | |
}) | |
}, jn); | |
function jn() {}(In = wn = wn || {}).SUCCESS = "Success", In.WARN = "Warn", In.FAILURE = "Failure"; | |
var An = (En.updateLog = function(e, t, n) { | |
function r() { | |
i.log.set(e, { | |
message: t, | |
result: n, | |
ts: (new Date).getTime() | |
}) | |
} | |
var i = this; | |
this.log.has(e) && this.log.get(e).result == n || r() | |
}, En.checkDFPSetup = function() { | |
var e = j.a.getTopMostParentWindow().googletag; | |
void 0 === e ? this.updateLog("DFP-On-Page", "DFP not currently initialised by publisher", wn.SUCCESS) : (this.updateLog("DFP-On-Page", "DFP is loaded by the publisher", wn.WARN), void 0 === e.pubads() ? this.updateLog("DFP-Pubads", "DFP has loaded, but with no reference to googletag.pubads, appears to be undefined", wn.FAILURE) : (this.updateLog("DFP-Pubads", "DFP has loaded and googletag.pubads is defined", wn.SUCCESS), e.pubads().isInitialLoadDisabled() ? this.updateLog("DFP-Pubads-Initial-Load", "Pubads has been configured and initial load is disabled", wn.SUCCESS) : this.updateLog("DFP-Pubads-Initial-Load", "Pubads has been configured and initial load is NOT disabled", wn.FAILURE))) | |
}, En.run = function() { | |
var t = this; | |
this.checkDFPSetup(); | |
var e = this.log.filter(function(e) { | |
return e.ts > t.lastChecked | |
}).mapToArrayOf(function(e, t) { | |
return { | |
Key: t, | |
Result: e.result, | |
Message: e.message | |
} | |
}); | |
0 < e.length && (console.log("\n---------------------------------------\n-- Venatus Integration Checks\n---------------------------------------\n "), console.table(e)), this.lastChecked = (new Date).getTime(), M.add(function() { | |
return En.run() | |
}, 1e3) | |
}, En.lastChecked = (new Date).getTime() - 100, En.log = new A.a, En); | |
function En() {} | |
var On = (_n.optionalLoad = function(e) { | |
var t, n = this; | |
S.a.usePageProtect && !this.hasLoaded ? (t = setTimeout(function() { | |
T.a.event("pageprotect-timeout"), n.hasLoaded || (n.hasLoaded = !0, e()) | |
}, 500), _n.load(function() { | |
clearTimeout(t), T.a.event("pageprotect-load"), e() | |
})) : e() | |
}, _n.load = function(e) { | |
var t = this; | |
if (!this.loadStarted) { | |
T.a.info("Page protect is loading..."); | |
try { | |
var n = j.a.getTopMostParentDocument(), | |
r = n.createElement("script"); | |
r.type = "text/javascript", r.src = "https://d1oykxszdrgjgl.cloudfront.net/script.js", r.async = !0, r.addEventListener("DOMNodeRemoved", function() { | |
t.hasLoaded = !0, e && e(), T.a.info("Page protect is ready...") | |
}), n.getElementsByTagName("head")[0].appendChild(r), this.loadStarted = !0 | |
} catch (e) { | |
console.error(e) | |
} | |
} | |
}, _n.onReady = function(e) { | |
var t = this; | |
this.hasLoaded ? e() : setTimeout(function() { | |
return t.onReady(e) | |
}, 100) | |
}, _n.loadStarted = !1, _n.hasLoaded = !1, _n); | |
function _n() {} | |
var Cn = (xn.prototype.fetchAds = function(t, n) { | |
var r = this; | |
void 0 === t && (t = !0), void 0 === n && (n = !0), c.ready(function() { | |
var e = u.a.getElementsByClassName("vm-placement", j.a.getTopMostParentDocument()); | |
n && (e = e.filter(function(e) { | |
var t = e.getAttribute("data-id"); | |
return !r.headerBiddingConfig.getPlacements().get(t).isRichMedia() | |
})), r.fetchAdsForPlacements(e, t) | |
}) | |
}, xn.prototype.fetchAdsForPlacements = function(e, t) { | |
void 0 === t && (t = !0), T.a.info("Fetching new Ads via API method"); | |
var n = e.map(function(e, t) { | |
var n = e.getAttribute("data-id"), | |
r = Un.lastPlacementPos; | |
return Un.lastPlacementPos++, [r + "-" + n, e] | |
}); | |
Un.renderPlacements(new A.a(n), this.headerBiddingConfig, this.headerBiddingConfig.isSPAMode() ? 1 : Un.dynamicLoopIndex, t) | |
}, xn.prototype.exposeApiToGlobalWindow = function() { | |
this.topWindow.__VM = {}, this.topWindow.__VM.fetchAds = this.fetchAds.bind(this), this.topWindow.__VM.fetchAdsForPlacements = this.fetchAdsForPlacements.bind(this) | |
}, xn); | |
function xn(e) { | |
this.headerBiddingConfig = e, this.topWindow = j.a.getTopMostParentWindow(), this.exposeApiToGlobalWindow() | |
} | |
var Rn = s(23), | |
Dn = (Pn.applyPlacementSizes = function(e, t, n) { | |
var r, i, a, o, s, d, c; | |
(E.a.has("preloader") || n.isUsePlacementPreloader()) && (r = n.getPlacement(e).getLargestSize(), i = t.style, a = "footer" === t.getAttribute("data-ref"), o = "float" === t.getAttribute("data-ref"), r && i && "1x1" !== r.getSize() && !a && !o && ((s = t.parentNode) && (d = s.id, /google_ads_iframe/.test(d) && ((c = s.style)["max-width"] = r.getWidth() + "px", c["min-width"] = r.getWidth() + "px", c.height = r.getHeight() + "px")), i.width = r.getWidth() + "px", i["max-width"] = r.getWidth() + "px", i["min-width"] = r.getWidth() + "px", i.height = r.getHeight() + "px", i.display = "flex", i["justify-content"] = "center", i["align-items"] = "center")) | |
}, Pn.applyInitialVMPlacementStyles = function(e) { | |
(E.a.has("preloader") || e.isUsePlacementPreloader()) && st.inlineCSS(j.a.getTopMostParentWindow(), ".vm-placement {display:flex} .vm-placement iframe {display: block; margin: 0;}") | |
}, Pn); | |
function Pn() {} | |
var Un = (Nn.isRefreshEnabled = function() { | |
return 0 < M.itemsScheduled("refresh") | |
}, Nn.cancelRefresh = function() { | |
M.clearByName("refresh") | |
}, Nn.applyPlacementOptions = function(n, e, t) { | |
return t && e.dfpFlags && e.dfpFlags.forEach(function(e, t) { | |
n.setAttribute("data-dfp-param-" + t, e) | |
}), n | |
}, Nn.addPlacements = function(e, o, s) { | |
var d = this; | |
void 0 === s && (s = {}); | |
var t = e.filter(function(e) { | |
return "true" != e.getAttribute("data-reg") | |
}).map(function(e) { | |
var t = e.getAttribute("data-id"), | |
n = o.isDFPEnabled(); | |
if (!n || S.a.dfpExcludedPlacementIds.has(t) || j.a.getTopMostParentWindow() === c.getOwnerWindow(e)) return e.setAttribute("data-pos", d.lastPlacementPos + ""), e.setAttribute("id", t + "-" + d.lastPlacementPos), s.skipPsa && e.setAttribute("data-skip-psa", "true"), d.lastPlacementPos++, Dn.applyPlacementSizes(t, e, o), Nn.applyPlacementOptions(e, s, n); | |
var r = c.getOwnerWindow(e); | |
if (r.frameElement) { | |
var i = document.createElement("div"); | |
i.setAttribute("class", "vm-placement"), i.setAttribute("data-id", t), i.setAttribute("id", t + "-" + d.lastPlacementPos), i.setAttribute("data-pos", d.lastPlacementPos + ""), i.setAttribute("data-dfp-retag", "true"); | |
var a = r.frameElement.parentNode; | |
return u.a.getChildrenElementsOfParentElement(a).forEach(function(e) { | |
"vm-placement" === e.className && a.removeChild(e) | |
}), a.removeChild(r.frameElement), a.appendChild(i), Dn.applyPlacementSizes(t, i, o), d.lastPlacementPos++, Nn.applyPlacementOptions(i, s, n) | |
} | |
return Dn.applyPlacementSizes(t, e, o), Nn.applyPlacementOptions(e, s, n) | |
}); | |
t.forEach(function(n) { | |
return S.a.adPreloadStyling.forEach(function(e, t) { | |
return n.style[t] = e | |
}) | |
}), this.renderPlacements(this.mapPlacementsToRender(t), o, o.isSPAMode() ? 1 : this.dynamicLoopIndex), this.requestIncrement = !0 | |
}, Nn.renderPlacements = function(a, o, s, t) { | |
var e = this; | |
if (void 0 === t && (t = !1), It.provideDynamicAdUnitMappings(o.getAdblockPrebidConfigForPlacements(a)), T.a.event("render-placements"), !S.a.enablePerformanceMonitoring || mn.hasCapacity()) { | |
var d = 30 <= o.getRefreshAfter() ? 1e3 * o.getRefreshAfter() : 32e3, | |
c = 1 <= o.getMaxRefreshes() ? o.getMaxRefreshes() : S.a.maxPlacementRefreshes, | |
n = a.filter(function(e) { | |
return null !== e.parentNode | |
}); | |
if (0 < n.length()) { | |
var u = n.filter(function(e) { | |
return !("true" == e.getAttribute("prevent-refresh") && 1 < s) && ("true" != e.getAttribute("data-filter-out") && (!(t && 1 < s) || j.a.isViewable(e))) | |
}), | |
r = o.getPrebidConfigForPlacements(u, s); | |
0 < r.length && !E.a.has("no-ads") ? (T.a.event("load-cmp"), I.a.register(function() { | |
On.optionalLoad(function() { | |
T.a.event("load-pageprotect"), o.isDFPEnabled() && (T.a.isA9DebugMode() || o.isA9Enabled()) && on.fetchBids(u.values(), o).then(function(e) { | |
return T.a.debug("A9 Bids", e) | |
}), T.a.event("request-bids"), O.create(r, function(e) { | |
try { | |
var t = U.getWinningBids(o, e, a), | |
n = u.filter(function(e) { | |
return "true" != e.getAttribute("data-filter-out") | |
}), | |
r = t.filter(function(e) { | |
return n.has(e.getWinningBid().getPlacementPos() + "-" + e.getWinningBid().getPlacementId()) | |
}); | |
u.forEach(function(e) { | |
if ("true" == e.getAttribute("data-filter-out")) try { | |
e.parentNode.removeChild(e) | |
} catch (e) {} | |
}); | |
var i = { | |
currentLoopIndex: s, | |
refreshAfterMS: d, | |
maxRefreshes: c | |
}; | |
o.isDFPEnabled() && !S.a.isShowcaseMode ? dn.requestAgainst(n, r, o, i) : $t.render(n, r, o, i) | |
} catch (e) { | |
T.a.error(e) | |
} | |
}, s, function(e) { | |
T.a.error(e) | |
}, o.isCOPPACompliant(), o.useThirdPartyCMP()) | |
}) | |
}, { | |
globalConsentLocation: S.a.cmpPortalEndpoint, | |
storeConsentGlobally: S.a.useNetworkLevelConsentStorage, | |
enableKidsMode: o.isKidsMode(), | |
styleChanges: S.a.gdprPreferences.styleChanges, | |
copyChanges: S.a.gdprPreferences.copyChanges, | |
functionalList: 0 < S.a.gdprPreferences.functionalList.length ? S.a.gdprPreferences.functionalList : void 0 === j.a.getTopMostParentWindow().vm_cookie_list ? [] : j.a.getTopMostParentWindow().vm_cookie_list, | |
gdprApplies: (o.isEUCountry() || E.a.has("force-gdpr")) && !E.a.has("override-cmp-timeout"), | |
cmpOption: o.getCMPOption(), | |
domain: o.getDomain() | |
})) : T.a.debug("There are no ad-units for prebid to request"); | |
var i = !1; | |
try { | |
i = "true" === y.a.get("data-limited") | |
} catch (e) {} | |
o.isRefreshEnabled() && !S.a.isShowcaseMode ? s < c && !i ? (T.a.isDebugMode() && Rn.a.emit("placementsRefresh", { | |
refreshRate: d, | |
placements: n.keys().reduce(function(e, t) { | |
return e[t.split("-")[1]] = !0, e | |
}, {}) | |
}), this.abTestLegacyRefresh.runOnEnabledSites(o, function() { | |
M.add(function() { | |
e.renderPlacements(n, o, s + 1, !t) | |
}, d, "refresh") | |
}, function() { | |
M.add(function() { | |
e.renderPlacements(n, o, s + 1, !0) | |
}, d, "refresh") | |
})) : T.a.debug("Halting refreshes on placements as the maximum of " + c + " has been reached") : T.a.debug("Refresh is disabled...") | |
} else a.forEach(function(e, t) { | |
return T.a.debug("Placement " + t + " has been detected as inactive, no bid request made and removed from refresh") | |
}) | |
} else T.a.warn("Browser performance may be compromised, pausing refresh...") | |
}, Nn.applyBrowserPolyfill = function(e, t) { | |
en.isMicrosoft() || en.isOpera() ? d.a.loadJS("https://polyfill.io/v3/polyfill.min.js", function() { | |
return e() | |
}, function() { | |
return t() | |
}) : e() | |
}, Nn.startBackgroundProcesses = function() { | |
var e = this; | |
setInterval(function() { | |
return M.process() | |
}, S.a.schedulerIntervalMS), setInterval(function() { | |
return O.processNextRequest() | |
}, S.a.bidRequestInterval), setInterval(function() { | |
return At.processQueue() | |
}, S.a.landscapePushIntervalMS), setInterval(function() { | |
e.requestIncrement && (e.requestIncrement = !1, e.dynamicLoopIndex++) | |
}, S.a.incrementLoopIntervalMS), T.a.isDebugMode() && setInterval(function() { | |
return T.a.printEvents() | |
}, 6e4) | |
}, Nn.bootstrap = function() { | |
h.preFetch(), T.a.printSettings(), a.removeExpired(), j.a.hasTopWindowAccess() || T.a.error("Attempting to load Venatus Ad Manager in an unfriendly iFrame"), S.a.isShowcaseMode && kn.init().then(function() { | |
return T.a.debug("Loaded showcase module in") | |
}) | |
}, Nn.addLegacySupport = function() { | |
j.a.getTopMostParentWindow().$___render = function(e) { | |
$t.renderRichMedia(e).then(function() {}) | |
} | |
}, Nn.mapPlacementsToRender = function(e) { | |
return new A.a(e.map(function(e) { | |
return [e.getAttribute("data-pos") + "-" + e.getAttribute("data-id"), e] | |
})) | |
}, Nn.loadUsingScanMode = function() { | |
var e = this; | |
this.startBackgroundProcesses(), E.a.has("vm-ic") ? An.run() : (this.bootstrap(), this.addLegacySupport(), n.a.fetchHeaderBiddingConfig(function(a) { | |
T.a.event("fetched-config"), Dn.applyInitialVMPlacementStyles(a), un.start(a), new Cn(a), Yt.isAdblocked().then(function(e) { | |
e ? a.isAdblockRecoveryEnabled() ? (T.a.warn("Adblock has been detected, loading Uponit..."), It.load(), It.init(a)) : T.a.warn("Adblock has been detected but Uponit has not been enabled") : T.a.info("Adblock has been not been detected, proceeding as normal...") | |
}), T.a.debug("Header Bidding Config [" + a.getCurrentCountryCode() + "]:", a), a.isDFPEnabled() && (T.a.event("request-dfp-library"), dn.load(), (T.a.isA9DebugMode() || a.isA9Enabled()) && (T.a.event("request-a9-library"), on.load().then(function() { | |
return T.a.debug("Loaded A9 Library") | |
}))), a.isYandexEnabled() && hn.init(a.getYandexTagId(), a.getYandexDelay()), void 0 === j.a.getTopMostParentWindow().__is_non_eu || a.isEUCountry() || j.a.getTopMostParentWindow().__is_non_eu(), T.a.event("using-scan-mode"), T.a.info("Using scan-mode, looking for hard-coded tags in the page"), c.ready(function() { | |
T.a.event("dom-ready"), T.a.info("DOM is now ready, initiating scan for placement tags"); | |
var r = [], | |
i = []; | |
u.a.getElementsByClassName("vm-placement", j.a.getTopMostParentDocument()).forEach(function(n, e) { | |
var t; | |
"true" == n.getAttribute("data-reg") ? T.a.warn("Placement already registered") : (T.a.event("found-ad-unit"), t = n.getAttribute("data-id"), n.setAttribute("data-reg", "true"), n.setAttribute("data-pos", e + ""), n.setAttribute("id", t + "-" + e), S.a.adPreloadStyling.forEach(function(e, t) { | |
return n.style[t] = e | |
}), Dn.applyPlacementSizes(t, n, a), "string" == typeof n.getAttribute("data-load-in-view") || a.useLazyLoadAds() || E.a.has("lazy-load-ads") ? i.push([e + "-" + t, n]) : r.push([e + "-" + t, n])) | |
}), e.isInitialLoadEnabled() && e.renderPlacements(new A.a(r), a, 1), yn.add(i) | |
}, j.a.getTopMostParentWindow()), (E.a.has("force-tracker") || a.getCurrentCountryCode().match(/US|GB/)) && (new ln).load(), setInterval(function() { | |
return nn.process(a) | |
}, S.a.dynamicPlacementsCheckInterval), setInterval(function() { | |
return yn.process(a) | |
}, S.a.deferredLoadingCheckInterval) | |
}, function() { | |
return T.a.error("Failed to fetch header-bidding config") | |
})) | |
}, Nn.loadUsingAdblockMode = function() { | |
var t = this; | |
this.startBackgroundProcesses(), E.a.has("vm-ic") ? An.run() : (this.bootstrap(), this.addLegacySupport(), n.a.fetchHeaderBiddingConfig(function(i) { | |
T.a.event("fetched-config"), T.a.debug("Header Bidding Config [" + i.getCurrentCountryCode() + "]:", i), Dn.applyInitialVMPlacementStyles(i), un.start(i), new Cn(i), Yt.isAdblocked().then(function(e) { | |
e ? (T.a.warn("Adblock has been detected, loading Uponit..."), It.load(), It.init(i), i.isDFPEnabled() && (T.a.event("request-dfp-library"), dn.load()), i.isYandexEnabled() && hn.init(i.getYandexTagId(), i.getYandexDelay()), T.a.event("using-scan-mode"), T.a.info("Using scan-mode, looking for hard-coded tags in the page"), c.ready(function() { | |
T.a.event("dom-ready"), T.a.info("DOM is now ready, initiating scan for placement tags"); | |
var r = []; | |
u.a.getElementsByClassName("vm-placement", j.a.getTopMostParentDocument()).forEach(function(n, e) { | |
T.a.event("found-ad-unit"); | |
var t = n.getAttribute("data-id"); | |
n.setAttribute("data-pos", e + ""), n.setAttribute("id", t + "-" + e), S.a.adPreloadStyling.forEach(function(e, t) { | |
return n.style[t] = e | |
}), Dn.applyPlacementSizes(t, n, i), r.push([e + "-" + t, n]) | |
}), t.isInitialLoadEnabled() && t.renderPlacements(new A.a(r), i, 1) | |
}, j.a.getTopMostParentWindow())) : T.a.info("Adblock has been not been detected, we'll let the page load as normal...") | |
}) | |
}, function() { | |
return T.a.error("Failed to fetch header-bidding config") | |
})) | |
}, Nn.load = function() { | |
var e = this; | |
this.applyBrowserPolyfill(function() { | |
switch (T.a.event("ad-manager-loaded"), T.a.debug("Loading Venatus Ad Manager [" + S.a.version + "] [" + y.a.get("data-mode") + "]", j.a.getTopMostParentWindow().location.href), T.a.event("applied-polyfill"), y.a.get("data-mode")) { | |
case "scan": | |
e.loadUsingScanMode(); | |
break; | |
case "adblock": | |
e.loadUsingAdblockMode(); | |
break; | |
default: | |
T.a.error("Attempting to use " + y.a.get("data-mode") + " mode, which is not supported...") | |
} | |
}, function() { | |
return T.a.error("Failed to apply browser polyfill") | |
}) | |
}, Nn.isInitialLoadEnabled = function() { | |
try { | |
var e = "true" != y.a.get("data-disable-initial-load"); | |
return e || T.a.info("Initial Ad Load Is DISABLED"), e | |
} catch (e) { | |
return !0 | |
} | |
}, Nn.lastPlacementPos = 1e3, Nn.dynamicLoopIndex = 1, Nn.requestIncrement = !1, Nn.abTestLegacyRefresh = an.a.forAccounts(S.a.LegacyRefreshLogicABTestAccountIds), Nn); | |
function Nn() {} | |
Un.load() | |
}, function(e, exports, t) { | |
t(26), e.exports = t(35) | |
}, function(e, exports, t) { | |
"use strict"; | |
var c = t(29), | |
u = {}; | |
u.rules = t(32).map(function(e) { | |
return { | |
rule: e, | |
suffix: e.replace(/^(\*\.|\!)/, ""), | |
punySuffix: -1, | |
wildcard: "*" === e.charAt(0), | |
exception: "!" === e.charAt(0) | |
} | |
}), u.endsWith = function(e, t) { | |
return -1 !== e.indexOf(t, e.length - t.length) | |
}, u.findRule = function(e) { | |
var n = c.toASCII(e); | |
return u.rules.reduce(function(e, t) { | |
return -1 === t.punySuffix && (t.punySuffix = c.toASCII(t.suffix)), u.endsWith(n, "." + t.punySuffix) || n === t.punySuffix ? t : e | |
}, null) | |
}, exports.errorCodes = { | |
DOMAIN_TOO_SHORT: "Domain name too short.", | |
DOMAIN_TOO_LONG: "Domain name too long. It should be no more than 255 chars.", | |
LABEL_STARTS_WITH_DASH: "Domain name label can not start with a dash.", | |
LABEL_ENDS_WITH_DASH: "Domain name label can not end with a dash.", | |
LABEL_TOO_LONG: "Domain name label should be at most 63 chars long.", | |
LABEL_TOO_SHORT: "Domain name label should be at least 1 character long.", | |
LABEL_INVALID_CHARS: "Domain name label can only contain alphanumeric characters or dashes." | |
}, u.validate = function(e) { | |
var t = c.toASCII(e); | |
if (t.length < 1) return "DOMAIN_TOO_SHORT"; | |
if (255 < t.length) return "DOMAIN_TOO_LONG"; | |
for (var n, r = t.split("."), i = 0; i < r.length; ++i) { | |
if (!(n = r[i]).length) return "LABEL_TOO_SHORT"; | |
if (63 < n.length) return "LABEL_TOO_LONG"; | |
if ("-" === n.charAt(0)) return "LABEL_STARTS_WITH_DASH"; | |
if ("-" === n.charAt(n.length - 1)) return "LABEL_ENDS_WITH_DASH"; | |
if (!/^[a-z0-9\-]+$/.test(n)) return "LABEL_INVALID_CHARS" | |
} | |
}, exports.parse = function(e) { | |
if ("string" != typeof e) throw new TypeError("Domain name must be a string."); | |
var t = e.slice(0).toLowerCase(); | |
"." === t.charAt(t.length - 1) && (t = t.slice(0, t.length - 1)); | |
var n = u.validate(t); | |
if (n) return { | |
input: e, | |
error: { | |
message: exports.errorCodes[n], | |
code: n | |
} | |
}; | |
var r = { | |
input: e, | |
tld: null, | |
sld: null, | |
domain: null, | |
subdomain: null, | |
listed: !1 | |
}, | |
i = t.split("."); | |
if ("local" === i[i.length - 1]) return r; | |
function a() { | |
return /xn--/.test(t) && (r.domain && (r.domain = c.toASCII(r.domain)), r.subdomain && (r.subdomain = c.toASCII(r.subdomain))), r | |
} | |
var o = u.findRule(t); | |
if (!o) return i.length < 2 ? r : (r.tld = i.pop(), r.sld = i.pop(), r.domain = [r.sld, r.tld].join("."), i.length && (r.subdomain = i.pop()), a()); | |
r.listed = !0; | |
var s = o.suffix.split("."), | |
d = i.slice(0, i.length - s.length); | |
return o.exception && d.push(s.shift()), r.tld = s.join("."), d.length ? (o.wildcard && (s.unshift(d.pop()), r.tld = s.join(".")), d.length && (r.sld = d.pop(), r.domain = [r.sld, r.tld].join("."), d.length && (r.subdomain = d.join("."))), a()) : a() | |
}, exports.get = function(e) { | |
return e && exports.parse(e).domain || null | |
}, exports.isValid = function(e) { | |
var t = exports.parse(e); | |
return Boolean(t.domain && t.listed) | |
} | |
}, function(e, exports, h) { | |
(function(f, m) { | |
var g; /*! https://mths.be/punycode v1.4.1 by @mathias */ | |
! function() { | |
exports && exports.nodeType, f && f.nodeType; | |
var e = "object" == typeof m && m; | |
e.global !== e && e.window !== e && e.self; | |
var t, b = 2147483647, | |
y = 36, | |
v = 1, | |
w = 26, | |
i = 38, | |
a = 700, | |
I = 72, | |
T = 128, | |
S = "-", | |
n = /^xn--/, | |
r = /[^\x20-\x7E]/, | |
o = /[\x2E\u3002\uFF0E\uFF61]/g, | |
s = { | |
overflow: "Overflow: input needs wider integers to process", | |
"not-basic": "Illegal input >= 0x80 (not a basic code point)", | |
"invalid-input": "Invalid input" | |
}, | |
d = y - v, | |
k = Math.floor, | |
j = String.fromCharCode; | |
function A(e) { | |
throw new RangeError(s[e]) | |
} | |
function c(e, t) { | |
for (var n = e.length, r = []; n--;) r[n] = t(e[n]); | |
return r | |
} | |
function u(e, t) { | |
var n = e.split("@"), | |
r = ""; | |
return 1 < n.length && (r = n[0] + "@", e = n[1]), r + c((e = e.replace(o, ".")).split("."), t).join(".") | |
} | |
function E(e) { | |
for (var t, n, r = [], i = 0, a = e.length; i < a;) 55296 <= (t = e.charCodeAt(i++)) && t <= 56319 && i < a ? 56320 == (64512 & (n = e.charCodeAt(i++))) ? r.push(((1023 & t) << 10) + (1023 & n) + 65536) : (r.push(t), i--) : r.push(t); | |
return r | |
} | |
function O(e) { | |
return c(e, function(e) { | |
var t = ""; | |
return 65535 < e && (t += j((e -= 65536) >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), t += j(e) | |
}).join("") | |
} | |
function _(e, t) { | |
return e + 22 + 75 * (e < 26) - ((0 != t) << 5) | |
} | |
function C(e, t, n) { | |
var r = 0; | |
for (e = n ? k(e / a) : e >> 1, e += k(e / t); d * w >> 1 < e; r += y) e = k(e / d); | |
return k(r + (d + 1) * e / (e + i)) | |
} | |
function p(e) { | |
var t, n, r, i, a, o, s, d, c, u, p = [], | |
l = e.length, | |
f = 0, | |
m = T, | |
g = I, | |
h = e.lastIndexOf(S); | |
for (h < 0 && (h = 0), n = 0; n < h; ++n) 128 <= e.charCodeAt(n) && A("not-basic"), p.push(e.charCodeAt(n)); | |
for (r = 0 < h ? h + 1 : 0; r < l;) { | |
for (i = f, a = 1, o = y; l <= r && A("invalid-input"), u = e.charCodeAt(r++), (y <= (s = u - 48 < 10 ? u - 22 : u - 65 < 26 ? u - 65 : u - 97 < 26 ? u - 97 : y) || s > k((b - f) / a)) && A("overflow"), f += s * a, !(s < (d = o <= g ? v : g + w <= o ? w : o - g)); o += y) a > k(b / (c = y - d)) && A("overflow"), a *= c; | |
g = C(f - i, t = p.length + 1, 0 == i), k(f / t) > b - m && A("overflow"), m += k(f / t), f %= t, p.splice(f++, 0, m) | |
} | |
return O(p) | |
} | |
function l(e) { | |
for (var t, n, r, i, a, o, s, d, c, u, p, l = [], f = (e = E(e)).length, m = T, g = I, h = t = 0; h < f; ++h)(d = e[h]) < 128 && l.push(j(d)); | |
for (n = r = l.length, r && l.push(S); n < f;) { | |
for (i = b, h = 0; h < f; ++h) m <= (d = e[h]) && d < i && (i = d); | |
for (i - m > k((b - t) / (c = n + 1)) && A("overflow"), t += (i - m) * c, m = i, h = 0; h < f; ++h) | |
if ((d = e[h]) < m && ++t > b && A("overflow"), d == m) { | |
for (a = t, o = y; !(a < (s = o <= g ? v : g + w <= o ? w : o - g)); o += y) p = a - s, u = y - s, l.push(j(_(s + p % u, 0))), a = k(p / u); | |
l.push(j(_(a, 0))), g = C(t, c, n == r), t = 0, ++n | |
}++ t, ++m | |
} | |
return l.join("") | |
} | |
t = { | |
version: "1.4.1", | |
ucs2: { | |
decode: E, | |
encode: O | |
}, | |
decode: p, | |
encode: l, | |
toASCII: function(e) { | |
return u(e, function(e) { | |
return r.test(e) ? "xn--" + l(e) : e | |
}) | |
}, | |
toUnicode: function(e) { | |
return u(e, function(e) { | |
return n.test(e) ? p(e.slice(4).toLowerCase()) : e | |
}) | |
} | |
}, void 0 === (g = function() { | |
return t | |
}.call(exports, h, exports, f)) || (f.exports = g) | |
}() | |
}).call(this, h(30)(e), h(31)) | |
}, function(e, exports) { | |
e.exports = function(e) { | |
return e.webpackPolyfill || (e.deprecate = function() {}, e.paths = [], e.children || (e.children = []), Object.defineProperty(e, "loaded", { | |
enumerable: !0, | |
get: function() { | |
return e.l | |
} | |
}), Object.defineProperty(e, "id", { | |
enumerable: !0, | |
get: function() { | |
return e.i | |
} | |
}), e.webpackPolyfill = 1), e | |
} | |
}, function(e, exports) { | |
var t = function() { | |
return this | |
}(); | |
try { | |
t = t || new Function("return this")() | |
} catch (e) { | |
"object" == typeof window && (t = window) | |
} | |
e.exports = t | |
}, function(e) { | |
e.exports = JSON.parse('["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","com.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","net.ar","org.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","education.tas.edu.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","cri.br","cuiaba.br","curitiba.br","def.br","ecn.br","eco.br","edu.br","emp.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","aéroport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","aprendemas.cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","å…¬å¸.cn","网络.cn","網絡.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","name.cy","net.cy","org.cy","parliament.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","com.dz","org.dz","net.dz","gov.dz","edu.dz","asso.dz","pol.dz","art.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","å…¬å¸.hk","教育.hk","敎育.hk","政府.hk","個人.hk","个人.hk","箇人.hk","網络.hk","网络.hk","组織.hk","網絡.hk","网絡.hk","组织.hk","組織.hk","組织.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","südtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","æ ƒæœ¨.jp","愛知.jp","愛媛.jp","兵庫.jp","熊本.jp","茨城.jp","北海é“.jp","åƒè‘‰.jp","å’ŒæŒå±±.jp","é•·å´Ž.jp","長野.jp","新潟.jp","é’森.jp","é™å²¡.jp","æ±äº¬.jp","石å·.jp","埼玉.jp","三é‡.jp","京都.jp","ä½è³€.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","å±±å£.jp","山形.jp","山梨.jp","岩手.jp","å²é˜œ.jp","岡山.jp","å³¶æ ¹.jp","広島.jp","徳島.jp","沖縄.jp","滋賀.jp","神奈å·.jp","ç¦äº•.jp","ç¦å²¡.jp","ç¦å³¶.jp","秋田.jp","群馬.jp","香å·.jp","高知.jp","é³¥å–.jp","鹿å…島.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","edu.ky","gov.ky","com.ky","org.ky","net.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunicações.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunicações.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","läns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","ירושלי×.museum","иком.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","com.my","net.my","org.my","gov.my","edu.my","mil.my","name.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","Ã¥krehamn.no","algard.no","Ã¥lgÃ¥rd.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","brønnøysund.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevÃ¥g.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","rÃ¥holt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","Ã¥fjord.no","agdenes.no","al.no","Ã¥l.no","alesund.no","Ã¥lesund.no","alstahaug.no","alta.no","áltá.no","alaheadju.no","álaheadju.no","alvdal.no","amli.no","Ã¥mli.no","amot.no","Ã¥mot.no","andebu.no","andoy.no","andøy.no","andasuolo.no","ardal.no","Ã¥rdal.no","aremark.no","arendal.no","Ã¥s.no","aseral.no","Ã¥seral.no","asker.no","askim.no","askvoll.no","askoy.no","askøy.no","asnes.no","Ã¥snes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","balestrand.no","ballangen.no","balat.no","bálát.no","balsfjord.no","bahccavuotna.no","báhccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","bájddar.no","baidar.no","báidár.no","berg.no","bergen.no","berlevag.no","berlevÃ¥g.no","bearalvahki.no","bearalváhki.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","badaddja.no","bÃ¥dÃ¥ddjÃ¥.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","brønnøy.no","bygland.no","bykle.no","barum.no","bærum.no","bo.telemark.no","bø.telemark.no","bo.nordland.no","bø.nordland.no","bievat.no","bievát.no","bomlo.no","bømlo.no","batsfjord.no","bÃ¥tsfjord.no","bahcavuotna.no","báhcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","donna.no","dønna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","evenášši.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","flÃ¥.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fræna.no","froya.no","frøya.no","fusa.no","fyresdal.no","forde.no","førde.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildeskÃ¥l.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","krÃ¥anghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","hábmer.no","hapmir.no","hápmir.no","hammerfest.no","hammarfeasta.no","hámmárfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","ákÅ‹oluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","herøy.møre-og-romsdal.no","heroy.nordland.no","herøy.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtÃ¥len.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","hægebostad.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","ha.no","hÃ¥.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","jevnaker.no","jondal.no","jolster.no","jølster.no","karasjok.no","karasjohka.no","kárášjohka.no","karlsoy.no","galsa.no","gálsá.no","karmoy.no","karmøy.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","klæbu.no","kongsberg.no","kongsvinger.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvalsund.no","rahkkeravju.no","ráhkkerávju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","kvafjord.no","kvæfjord.no","giehtavuoatna.no","kvanangen.no","kvænangen.no","navuotna.no","návuotna.no","kafjord.no","kÃ¥fjord.no","gaivuotna.no","gáivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loabát.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","leaÅ‹gaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lindÃ¥s.no","lom.no","loppa.no","lahppi.no","láhppi.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","lærdal.no","lodingen.no","lødingen.no","lorenskog.no","lørenskog.no","loten.no","løten.no","malvik.no","masoy.no","mÃ¥søy.no","muosat.no","muosát.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","merÃ¥ker.no","moareke.no","moÃ¥reke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","mÃ¥lselv.no","malatvuopmi.no","málatvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","nååmesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unjárga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenjárga.no","nordre-land.no","nordreisa.no","raisa.no","ráisa.no","nore-og-uvdal.no","notodden.no","naroy.no","nærøy.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","oppdal.no","oppegard.no","oppegÃ¥rd.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","osterøy.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","radoy.no","radøy.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","risør.no","roan.no","rollag.no","rygge.no","ralingen.no","rælingen.no","rodoy.no","rødøy.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","rade.no","rÃ¥de.no","salangen.no","siellak.no","saltdal.no","salat.no","sálát.no","sálat.no","samnanger.no","sande.more-og-romsdal.no","sande.møre-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjervøy.no","skierva.no","skiervá.no","skjak.no","skjÃ¥k.no","skodje.no","skanland.no","skÃ¥nland.no","skanit.no","skánit.no","smola.no","smøla.no","snillfjord.no","snasa.no","snÃ¥sa.no","snoasa.no","snaase.no","snÃ¥ase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","søgne.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","matta-varjjat.no","mátta-várjjat.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sorum.no","sørum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tjøme.no","tokke.no","tolga.no","torsken.no","tranoy.no","tranøy.no","tromso.no","tromsø.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","træna.no","trogstad.no","trøgstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysvær.no","tonsberg.no","tønsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vadsø.no","cahcesuolo.no","Äáhcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","vegÃ¥rshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvÃ¥gøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","værøy.no","vagan.no","vÃ¥gan.no","voagat.no","vagsoy.no","vÃ¥gsøy.no","vaga.no","vÃ¥gÃ¥.no","valer.ostfold.no","vÃ¥ler.østfold.no","valer.hedmark.no","vÃ¥ler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","mÄori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","com.ss","edu.ss","gov.ss","net.ss","org.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","gov.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","intl.tn","nat.tn","net.tn","org.tn","info.tn","perso.tn","tourism.tn","edunet.tn","rnrt.tn","rns.tn","rnu.tn","mincom.tn","agrinet.tn","defense.tn","turen.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","網路.tw","組織.tw","商æ¥.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","dominic.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.ri.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","org.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","امارات","Õ°Õ¡Õµ","বাংলা","бг","бел","ä¸å›½","ä¸åœ‹","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","å…¬å¸.香港","教育.香港","政府.香港","個人.香港","網絡.香港","組織.香港","à²à²¾à²°à²¤","à¬à¬¾à¬°à¬¤","à¦à¦¾à§°à¦¤","à¤à¤¾à¤°à¤¤à¤®à¥","à¤à¤¾à¤°à¥‹à¤¤","ڀارت","à´à´¾à´°à´¤à´‚","à¤à¤¾à¤°à¤¤","بارت","بھارت","à°à°¾à°°à°¤à±","àªàª¾àª°àª¤","à¨à¨¾à¨°à¨¤","à¦à¦¾à¦°à¦¤","இநà¯à®¤à®¿à®¯à®¾","ایران","ايران","عراق","الاردن","í•œêµ","қаз","ලංකà·","இலஙà¯à®•à¯ˆ","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","Ùلسطين","Ñрб","пр.Ñрб","орг.Ñрб","обр.Ñрб","од.Ñрб","упр.Ñрб","ак.Ñрб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","æ–°åŠ å¡","சிஙà¯à®•à®ªà¯à®ªà¯‚à®°à¯","سورية","سوريا","ไทย","ศึà¸à¸©à¸².ไทย","ธุรà¸à¸´à¸ˆ.ไทย","รัà¸à¸šà¸²à¸¥.ไทย","ทหาร.ไทย","เน็ต.ไทย","à¸à¸‡à¸„์à¸à¸£.ไทย","تونس","å°ç£","å°æ¹¾","臺ç£","укр","اليمن","xxx","*.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afamilycompany","afl","africa","agakhan","agency","aig","aigo","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","budapest","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","caseih","cash","casino","catering","catholic","cba","cbn","cbre","cbs","ceb","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","duck","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","esurance","etisalat","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glade","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","intel","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","iveco","jaguar","java","jcb","jcp","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","llc","llp","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","lupin","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","metlife","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","mutual","nab","nadex","nagoya","nationwide","natura","navy","nba","nec","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","qvc","racing","radio","raid","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","spreadbetting","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiftcover","swiss","sydney","symantec","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","大众汽车","点看","คà¸à¸¡","å…«å¦","موقع","公益","å…¬å¸","é¦™æ ¼é‡Œæ‹‰","网站","移动","æˆ‘çˆ±ä½ ","моÑква","католик","онлайн","Ñайт","è”通","קו×","时尚","å¾®åš","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","å•†æ ‡","商店","商城","дети","ãƒã‚¤ãƒ³ãƒˆ","æ–°é—»","工行","家電","كوم","ä¸æ–‡ç½‘","ä¸ä¿¡","娱ä¹","è°·æŒ","電訊盈科","è´ç‰©","クラウド","通販","网店","संगठन","é¤åŽ…","网络","ком","亚马逊","诺基亚","食å“","飞利浦","手表","手机","ارامكو","العليان","اتصالات","بازار","ابوظبي","كاثوليك","همراه","ë‹·ì»´","政府","شبكة","بيتك","عرب","机构","组织机构","å¥åº·","æ‹›è˜","руÑ","ç å®","大拿","ã¿ã‚“ãª","グーグル","世界","書ç±","网å€","ë‹·ë„·","コム","天主教","游æˆ","vermögensberater","vermögensberatung","ä¼ä¸š","ä¿¡æ¯","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","adobeaemcloud.com","adobeaemcloud.net","*.dev.adobeaemcloud.com","beep.pl","barsy.ca","*.compute.estate","*.alces.network","altervista.org","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","amsw.nl","t3l3p0rt.net","tele.amune.org","apigee.io","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","myfritz.net","*.awdev.ca","*.advisor.ws","b-data.io","backplaneapp.io","balena-devices.com","app.banzaicloud.io","betainabox.com","bnr.la","blackbaudcdn.net","boomla.net","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","mycd.eu","carrd.co","crd.co","uwu.ai","ae.org","ar.com","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.com","gb.net","hu.com","hu.net","jp.net","jpn.com","kr.com","mex.com","no.com","qc.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","uy.com","za.bz","za.com","africa.com","gr.com","in.net","us.org","co.com","c.la","certmgr.org","xenapponazure.com","discourse.group","discourse.team","virtueeldomein.nl","cleverapps.io","*.lcl.dev","*.stg.dev","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","cloudera.site","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cloudeity.net","cnpy.gdn","co.nl","co.no","webhosting.be","hosting-cluster.nl","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","cyon.link","cyon.site","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","*.dapps.earth","*.bzz.dapps.earth","builtwithdark.com","edgestack.me","debian.net","dedyn.io","dnshome.de","online.th","shop.th","drayddns.com","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","en-root.fr","mytuleap.com","onred.one","staging.onred.one","enonic.io","customer.enonic.io","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastpanel.direct","fastvps-server.com","fhapp.xyz","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","flynnhub.com","flynnhosting.net","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","service.gov.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","lab.ms","github.io","githubusercontent.com","gitlab.io","glitch.me","lolipop.io","cloudapps.digital","london.cloudapps.digital","homeoffice.gov.uk","ro.im","shop.ro","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","cloudfunctions.net","cloud.goog","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","awsmppl.com","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","hepforge.org","herokuapp.com","herokussl.com","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","bpl.biz","orx.biz","ng.city","biz.gl","ng.ink","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","ng.school","sch.so","häkkinen.fi","*.moonscale.io","moonscale.net","iki.fi","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","ipifony.net","mein-iserv.de","test-iserv.de","iserv.dev","iobb.net","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","oya.to","co.krd","edu.krd","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkitools.space","linkyard.cloud","linkyard-cloud.ch","members.linode.com","nodebalancer.linode.com","we.bs","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","uklugs.org","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","miniserver.com","memset.net","cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","ui.nabu.casa","pony.club","of.fashion","on.fashion","of.football","in.london","of.london","for.men","and.mom","for.mom","for.one","for.sale","of.work","to.work","nctu.me","bitballoon.com","netlify.com","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","nodum.co","nodum.io","pcloud.host","nyc.mn","nom.ae","nom.af","nom.ai","nom.al","nym.by","nom.bz","nym.bz","nom.cl","nym.ec","nom.gd","nom.ge","nom.gl","nym.gr","nom.gt","nym.gy","nym.hk","nom.hn","nym.ie","nom.im","nom.ke","nym.kz","nym.la","nym.lc","nom.li","nym.li","nym.lt","nym.lu","nom.lv","nym.me","nom.mk","nym.mn","nym.mx","nom.nu","nym.nz","nym.pe","nym.pt","nom.pw","nom.qa","nym.ro","nom.rs","nom.si","nym.sk","nom.st","nym.su","nym.sx","nom.tj","nym.tw","nom.ug","nom.uy","nom.vc","nom.vg","static.observableusercontent.com","cya.gg","cloudycluster.net","nid.io","opencraft.hosting","operaunite.com","skygearapp.com","outsystemscloud.com","ownprovider.com","own.pm","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","perspecta.cloud","on-web.fr","*.platform.sh","*.platformsh.site","dyn53.io","co.bn","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","qualifioapp.com","qbuser.com","instantcloud.cn","ras.ru","qa2.com","qcx.io","*.sys.qcx.io","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","*.on-k3s.io","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","ptplus.fit","wellbeingzone.co.uk","git-pages.rit.edu","sandcats.io","logoip.de","logoip.com","schokokeks.net","gov.scot","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","senseering.net","biz.ua","co.ua","pp.ua","shiftedit.io","myshopblocks.com","shopitsite.com","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","stackhero-network.com","static.land","dev.static.land","sites.static.land","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","applicationcloud.io","scapp.io","*.s5y.io","*.sensiosite.cloud","syncloud.it","diskstation.me","dscloud.biz","dscloud.me","dscloud.mobi","dsmynas.com","dsmynas.net","dsmynas.org","familyds.com","familyds.net","familyds.org","i234.me","myds.me","synology.me","vpnplus.to","direct.quickconnect.to","taifun-dns.de","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","edugit.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","arvo.network","azimuth.network","bloxcms.com","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","virtualuser.de","virtual-user.de","urown.cloud","dnsupdate.info","lib.de.us","2038.io","router.management","v-info.info","voorloper.cloud","v.ua","wafflecell.com","*.webhare.dev","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","wmflabs.org","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","nohost.me","noho.st","za.net","za.org","now.sh","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"]') | |
}, function(e, exports) { | |
! function(d) { | |
var c = window.vmpbjsChunk; | |
window.vmpbjsChunk = function(e, t, n) { | |
for (var r, i, a, o = 0, s = []; o < e.length; o++) i = e[o], u[i] && s.push(u[i][0]), u[i] = 0; | |
for (r in t) Object.prototype.hasOwnProperty.call(t, r) && (d[r] = t[r]); | |
for (c && c(e, t, n); s.length;) s.shift()(); | |
if (n) | |
for (o = 0; o < n.length; o++) a = p(p.s = n[o]); | |
return a | |
}; | |
var n = {}, | |
u = { | |
313: 0 | |
}; | |
function p(e) { | |
if (n[e]) return n[e].exports; | |
var t = n[e] = { | |
i: e, | |
l: !1, | |
exports: {} | |
}; | |
return d[e].call(t.exports, t, t.exports, p), t.l = !0, t.exports | |
} | |
p.m = d, p.c = n, p.d = function(e, t, n) { | |
p.o(e, t) || Object.defineProperty(e, t, { | |
configurable: !1, | |
enumerable: !0, | |
get: n | |
}) | |
}, p.n = function(e) { | |
var t = e && e.__esModule ? function() { | |
return e.default | |
} : function() { | |
return e | |
}; | |
return p.d(t, "a", t), t | |
}, p.o = function(e, t) { | |
return Object.prototype.hasOwnProperty.call(e, t) | |
}, p.p = "", p.oe = function(e) { | |
throw console.error(e), e | |
}, p(p.s = 831) | |
}([function(e, t, n) { | |
"use strict"; | |
Object.defineProperty(t, "__esModule", { | |
value: !0 | |
}), n.d(t, "internal", function() { | |
return P | |
}), n.d(t, "bind", function() { | |
return N | |
}), t.getUniqueIdentifierStr = q, t.generateUUID = function e(t) { | |
return t ? (t ^ (window && window.crypto && window.crypto.getRandomValues ? crypto.getRandomValues(new Uint8Array(1))[0] % 16 : 16 * Math.random()) >> t / 4).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, e) | |
}, t.getBidIdParameter = function(e, t) { | |
return t && t[e] ? t[e] : "" | |
}, t.tryAppendQueryString = function(e, t, n) { | |
return n ? e + t + "=" + encodeURIComponent(n) + "&" : e | |
}, t.parseQueryStringParameters = function(e) { | |
var t, n = ""; | |
for (t in e) e.hasOwnProperty(t) && (n += t + "=" + encodeURIComponent(e[t]) + "&"); | |
return n.replace(/&$/, "") | |
}, t.transformAdServerTargetingObj = function(t) { | |
return t && 0 < Object.getOwnPropertyNames(t).length ? le(t).map(function(e) { | |
return "".concat(e, "=").concat(encodeURIComponent(t[e])) | |
}).join("&") : "" | |
}, t.getAdUnitSizes = function(e) { | |
if (e) { | |
var t, n = []; | |
return e.mediaTypes && e.mediaTypes.banner && Array.isArray(e.mediaTypes.banner.sizes) ? (t = e.mediaTypes.banner.sizes, Array.isArray(t[0]) ? n = t : n.push(t)) : Array.isArray(e.sizes) && (Array.isArray(e.sizes[0]) ? n = e.sizes : n.push(e.sizes)), n | |
} | |
}, t.parseSizesInput = function(e) { | |
var t = []; | |
if ("string" == typeof e) { | |
var n = e.split(","), | |
r = /^(\d)+x(\d)+$/i; | |
if (n) | |
for (var i in n) ie(n, i) && n[i].match(r) && t.push(n[i]) | |
} else if ("object" === v(e)) { | |
var a = e.length; | |
if (0 < a) | |
if (2 === a && "number" == typeof e[0] && "number" == typeof e[1]) t.push(z(e)); | |
else | |
for (var o = 0; o < a; o++) t.push(z(e[o])) | |
} | |
return t | |
}, t.parseGPTSingleSizeArray = z, t.parseGPTSingleSizeArrayToRtbSize = function(e) { | |
if (M(e)) return { | |
w: e[0], | |
h: e[1] | |
} | |
}, t.getWindowTop = V, t.getWindowSelf = L, t.getWindowLocation = F, t.getTopWindowUrl = function() { | |
var t; | |
if (window.frameElement && "true" === window.frameElement.getAttribute("data-stanza")) return window.parent.document.referrer; | |
try { | |
t = P.getTopWindowLocation().href | |
} catch (e) { | |
t = "" | |
} | |
return t | |
}, t.getTopWindowReferrer = function() { | |
try { | |
return "true" === window.frameElement.getAttribute("data-stanza") ? window.parent.document.referrer : window.top.document.referrer | |
} catch (e) { | |
return document.referrer | |
} | |
}, t.logMessage = W, t.logInfo = G, t.logWarn = H, t.logError = $, t.hasConsoleLogger = function() { | |
return C | |
}, t.debugTurnedOn = Y, t.createInvisibleIframe = function() { | |
var e = document.createElement("iframe"); | |
return e.id = q(), e.height = 0, e.width = 0, e.border = "0px", e.hspace = "0", e.vspace = "0", e.marginWidth = "0", e.marginHeight = "0", e.style.border = "0", e.scrolling = "no", e.frameBorder = "0", e.src = "about:blank", e.style.display = "none", e | |
}, t.getParameterByName = function(e) { | |
return ke(F().search)[e] || "" | |
}, t.isA = K, t.isFn = X, t.isStr = Q, t.isArray = Z, t.isNumber = ee, t.isPlainObject = te, t.isBoolean = function(e) { | |
return K(e, E) | |
}, t.isEmpty = ne, t.isEmptyStr = function(e) { | |
return Q(e) && (!e || 0 === e.length) | |
}, t._each = re, t.contains = function(e, t) { | |
if (ne(e)) return !1; | |
if (X(e.indexOf)) return -1 !== e.indexOf(t); | |
for (var n = e.length; n--;) | |
if (e[n] === t) return !0; | |
return !1 | |
}, t._map = function(n, r) { | |
if (ne(n)) return []; | |
if (X(n.map)) return n.map(r); | |
var i = []; | |
return re(n, function(e, t) { | |
i.push(r(e, t, n)) | |
}), i | |
}, t.hasOwn = ie, t.insertElement = ae, t.triggerPixel = oe, t.callBurl = function(e) { | |
var t = e.source, | |
n = e.burl; | |
t === I.S2S.SRC && n && P.triggerPixel(n) | |
}, t.insertHtmlIntoIframe = function(e) { | |
var t; | |
e && ((t = document.createElement("iframe")).id = q(), t.width = 0, t.height = 0, t.hspace = "0", t.vspace = "0", t.marginWidth = "0", t.marginHeight = "0", t.style.display = "none", t.style.height = "0px", t.style.width = "0px", t.scrolling = "no", t.frameBorder = "0", t.allowtransparency = "true", P.insertElement(t, document, "body"), t.contentWindow.document.open(), t.contentWindow.document.write(e), t.contentWindow.document.close()) | |
}, t.insertUserSyncIframe = se, t.createTrackPixelHtml = function(e) { | |
return e ? '<div style="position:absolute;left:0px;top:0px;visibility:hidden;">' + '<img src="' + encodeURI(e) + '"></div>' : "" | |
}, t.createTrackPixelIframeHtml = de, t.getValueString = ce, t.uniques = ue, t.flatten = pe, t.getBidRequest = function(n, e) { | |
return n ? (e.some(function(e) { | |
var t = c()(e.bids, function(t) { | |
return ["bidId", "adId", "bid_id"].some(function(e) { | |
return t[e] === n | |
}) | |
}); | |
return t && (r = t), t | |
}), r) : void 0; | |
var r | |
}, t.getKeys = le, t.getValue = fe, t.getKeyByValue = function(e, t) { | |
for (var n in e) | |
if (e.hasOwnProperty(n) && e[n] === t) return n | |
}, t.getBidderCodes = function() { | |
return (0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : vmpbjs.adUnits).map(function(e) { | |
return e.bids.map(function(e) { | |
return e.bidder | |
}).reduce(pe, []) | |
}).reduce(pe).filter(ue) | |
}, t.isGptPubadsDefined = me, n.d(t, "getHighestCpm", function() { | |
return ge | |
}), n.d(t, "getOldestHighestCpmBid", function() { | |
return he | |
}), n.d(t, "getLatestHighestCpmBid", function() { | |
return be | |
}), t.shuffle = function(e) { | |
for (var t = e.length; 0 < t;) { | |
var n = Math.floor(Math.random() * t), | |
r = e[--t]; | |
e[t] = e[n], e[n] = r | |
} | |
return e | |
}, t.adUnitsFilter = function(e, t) { | |
return p()(e, t && t.adUnitCode) | |
}, t.deepClone = ve, t.inIframe = function() { | |
try { | |
return P.getWindowSelf() !== P.getWindowTop() | |
} catch (e) { | |
return !0 | |
} | |
}, t.isSafariBrowser = function() { | |
return /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent) | |
}, t.replaceAuctionPrice = function(e, t) { | |
if (e) return e.replace(/\$\{AUCTION_PRICE\}/g, t) | |
}, t.timestamp = function() { | |
return (new Date).getTime() | |
}, t.hasDeviceAccess = function() { | |
return !1 !== r.b.getConfig("deviceAccess") | |
}, t.checkCookieSupport = we, t.delayExecution = function(e, t) { | |
if (t < 1) throw new Error("numRequiredCalls must be a positive number. Got ".concat(t)); | |
var n = 0; | |
return function() { | |
++n === t && e.apply(this, arguments) | |
} | |
}, t.groupBy = function(e, n) { | |
return e.reduce(function(e, t) { | |
return (e[t[n]] = e[t[n]] || []).push(t), e | |
}, {}) | |
}, t.getDefinedParams = function(n, e) { | |
return e.filter(function(e) { | |
return n[e] | |
}).reduce(function(e, t) { | |
return y(e, b({}, t, n[t])) | |
}, {}) | |
}, t.isValidMediaTypes = function(e) { | |
var t = ["banner", "native", "video"]; | |
return !!Object.keys(e).every(function(e) { | |
return p()(t, e) | |
}) && (!e.video || !e.video.context || p()(["instream", "outstream", "adpod"], e.video.context)) | |
}, t.getBidderRequest = function(e, t, n) { | |
return c()(e, function(e) { | |
return 0 < e.bids.filter(function(e) { | |
return e.bidder === t && e.adUnitCode === n | |
}).length | |
}) || { | |
start: null, | |
auctionId: null | |
} | |
}, t.getUserConfiguredParams = function(e, t, n) { | |
return e.filter(function(e) { | |
return e.code === t | |
}).map(function(e) { | |
return e.bids | |
}).reduce(pe, []).filter(function(e) { | |
return e.bidder === n | |
}).map(function(e) { | |
return e.params || {} | |
}) | |
}, t.getOrigin = function() { | |
return window.location.origin ? window.location.origin : window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : "") | |
}, t.getDNT = function() { | |
return "1" === navigator.doNotTrack || "1" === window.doNotTrack || "1" === navigator.msDoNotTrack || "yes" === navigator.doNotTrack | |
}, t.isAdUnitCodeMatchingSlot = function(t) { | |
return function(e) { | |
return Ie(t, e) | |
} | |
}, t.isSlotMatchingAdUnitCode = Te, t.getGptSlotInfoForAdUnitCode = function(e) { | |
var t; | |
return me() && (t = c()(window.googletag.pubads().getSlots(), Te(e))), t ? { | |
gptSlot: t.getAdUnitPath(), | |
divId: t.getSlotElementId() | |
} : {} | |
}, t.unsupportedBidderMessage = function(e, t) { | |
var n = Object.keys(e.mediaTypes || { | |
banner: "banner" | |
}).join(", "); | |
return "\n ".concat(e.code, " is a ").concat(n, " ad unit\n containing bidders that don't support ").concat(n, ": ").concat(t, ".\n This bidder won't fetch demand.\n ") | |
}, t.isInteger = Se, t.convertCamelToUnderscore = function(e) { | |
return e.replace(/(?:^|\.?)([A-Z])/g, function(e, t) { | |
return "_" + t.toLowerCase() | |
}).replace(/^_/, "") | |
}, t.cleanObj = function(n) { | |
return Object.keys(n).reduce(function(e, t) { | |
return void 0 !== n[t] && (e[t] = n[t]), e | |
}, {}) | |
}, t.pick = function(o, s) { | |
return "object" === v(o) ? s.reduce(function(e, t, n) { | |
if ("function" == typeof t) return e; | |
var r = t, | |
i = t.match(/^(.+?)\sas\s(.+?)$/i); | |
i && (t = i[1], r = i[2]); | |
var a = o[t]; | |
return "function" == typeof s[n + 1] && (a = s[n + 1](a, e)), void 0 !== a && (e[r] = a), e | |
}, {}) : {} | |
}, t.transformBidderParamKeywords = function(e) { | |
var r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "keywords", | |
i = []; | |
return re(e, function(e, t) { | |
if (Z(e)) { | |
var n = []; | |
re(e, function(e) { | |
!(e = ce(r + "." + t, e)) && "" !== e || n.push(e) | |
}), e = n | |
} else { | |
if (!Q(e = ce(r + "." + t, e))) return; | |
e = [e] | |
} | |
i.push({ | |
key: t, | |
value: e | |
}) | |
}), i | |
}, t.convertTypes = function(r, i) { | |
return Object.keys(r).forEach(function(e) { | |
var t, n; | |
i[e] && (X(r[e]) ? i[e] = r[e](i[e]) : i[e] = (t = r[e], n = i[e], "string" === t ? n && n.toString() : "number" === t ? Number(n) : n), isNaN(i[e]) && delete i.key) | |
}), i | |
}, t.isArrayOfNums = function(e, t) { | |
return Z(e) && (!t || e.length === t) && e.every(Se) | |
}, t.fill = function(e, t) { | |
for (var n = [], r = 0; r < t; r++) { | |
var i = te(e) ? ve(e) : e; | |
n.push(i) | |
} | |
return n | |
}, t.chunk = function(e, t) { | |
for (var n = [], r = 0; r < Math.ceil(e.length / t); r++) { | |
var i = r * t, | |
a = i + t; | |
n.push(e.slice(i, a)) | |
} | |
return n | |
}, t.getMinValueFromArray = function(e) { | |
return Math.min.apply(Math, m(e)) | |
}, t.getMaxValueFromArray = function(e) { | |
return Math.max.apply(Math, m(e)) | |
}, t.compareOn = function(n) { | |
return function(e, t) { | |
return e[n] < t[n] ? 1 : e[n] > t[n] ? -1 : 0 | |
} | |
}, t.parseQS = ke, t.formatQS = je, t.parseUrl = function(e, t) { | |
var n = document.createElement("a"); | |
t && "noDecodeWholeURL" in t && t.noDecodeWholeURL ? n.href = e : n.href = decodeURIComponent(e); | |
var r = t && "decodeSearchAsString" in t && t.decodeSearchAsString; | |
return { | |
href: n.href, | |
protocol: (n.protocol || "").replace(/:$/, ""), | |
hostname: n.hostname, | |
port: +n.port, | |
pathname: n.pathname.replace(/^(?!\/)/, "/"), | |
search: r ? n.search : P.parseQS(n.search || ""), | |
hash: (n.hash || "").replace(/^#/, ""), | |
host: n.host || window.location.host | |
} | |
}, t.buildUrl = function(e) { | |
return (e.protocol || "http") + "://" + (e.host || e.hostname + (e.port ? ":".concat(e.port) : "")) + (e.pathname || "") + (e.search ? "?".concat(P.formatQS(e.search || "")) : "") + (e.hash ? "#".concat(e.hash) : "") | |
}, t.deepEqual = Ae, t.mergeDeep = Ee; | |
var r = n(3), | |
i = n(167), | |
a = n.n(i), | |
o = n(168), | |
s = n.n(o), | |
d = n(11), | |
c = n.n(d), | |
u = n(12), | |
p = n.n(u), | |
l = n(182); | |
n.d(t, "deepAccess", function() { | |
return l.a | |
}); | |
var f = n(183); | |
function m(e) { | |
return function(e) { | |
if (Array.isArray(e)) return h(e) | |
}(e) || function(e) { | |
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) | |
}(e) || g(e) || function() { | |
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") | |
}() | |
} | |
function g(e, t) { | |
if (e) { | |
if ("string" == typeof e) return h(e, t); | |
var n = Object.prototype.toString.call(e).slice(8, -1); | |
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? h(e, t) : void 0 | |
} | |
} | |
function h(e, t) { | |
(null == t || t > e.length) && (t = e.length); | |
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; | |
return r | |
} | |
function b(e, t, n) { | |
return t in e ? Object.defineProperty(e, t, { | |
value: n, | |
enumerable: !0, | |
configurable: !0, | |
writable: !0 | |
}) : e[t] = n, e | |
} | |
function y() { | |
return (y = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
function v(e) { | |
return (v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { | |
return typeof e | |
} : function(e) { | |
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e | |
})(e) | |
} | |
n.d(t, "deepSetValue", function() { | |
return f.a | |
}); | |
var w, I = n(5), | |
T = "Array", | |
S = "String", | |
k = "Function", | |
j = "Number", | |
A = "Object", | |
E = "Boolean", | |
O = Object.prototype.toString, | |
_ = Boolean(window.console), | |
C = Boolean(_ && window.console.log), | |
x = Boolean(_ && window.console.info), | |
R = Boolean(_ && window.console.warn), | |
D = Boolean(_ && window.console.error), | |
P = { | |
checkCookieSupport: we, | |
createTrackPixelIframeHtml: de, | |
getWindowSelf: L, | |
getWindowTop: V, | |
getWindowLocation: F, | |
insertUserSyncIframe: se, | |
insertElement: ae, | |
isFn: X, | |
triggerPixel: oe, | |
logError: $, | |
logWarn: H, | |
logMessage: W, | |
logInfo: G, | |
parseQS: ke, | |
formatQS: je, | |
deepEqual: Ae | |
}, | |
U = {}, | |
N = function(e, t) { | |
return t | |
}.bind(null, 1, U)() === U ? Function.prototype.bind : function(e) { | |
var t = this, | |
n = Array.prototype.slice.call(arguments, 1); | |
return function() { | |
return t.apply(e, n.concat(Array.prototype.slice.call(arguments))) | |
} | |
}, | |
B = (w = 0, function() { | |
return ++w | |
}); | |
function q() { | |
return B() + Math.random().toString(16).substr(2) | |
} | |
function z(e) { | |
if (M(e)) return e[0] + "x" + e[1] | |
} | |
function M(e) { | |
return Z(e) && 2 === e.length && !isNaN(e[0]) && !isNaN(e[1]) | |
} | |
function V() { | |
return window.top | |
} | |
function L() { | |
return window.self | |
} | |
function F() { | |
return window.location | |
} | |
function W() { | |
Y() && C && console.log.apply(console, J(arguments, "MESSAGE:")) | |
} | |
function G() { | |
Y() && x && console.info.apply(console, J(arguments, "INFO:")) | |
} | |
function H() { | |
Y() && R && console.warn.apply(console, J(arguments, "WARNING:")) | |
} | |
function $() { | |
Y() && D && console.error.apply(console, J(arguments, "ERROR:")) | |
} | |
function J(e, t) { | |
return e = [].slice.call(e), t && e.unshift(t), e.unshift("display: inline-block; color: #fff; background: #3b88c3; padding: 1px 4px; border-radius: 3px;"), e.unshift("%cPrebid"), e | |
} | |
function Y() { | |
return !!r.b.getConfig("debug") | |
} | |
function K(e, t) { | |
return O.call(e) === "[object " + t + "]" | |
} | |
function X(e) { | |
return K(e, k) | |
} | |
function Q(e) { | |
return K(e, S) | |
} | |
function Z(e) { | |
return K(e, T) | |
} | |
function ee(e) { | |
return K(e, j) | |
} | |
function te(e) { | |
return K(e, A) | |
} | |
function ne(e) { | |
if (!e) return !0; | |
if (Z(e) || Q(e)) return !(0 < e.length); | |
for (var t in e) | |
if (hasOwnProperty.call(e, t)) return !1; | |
return !0 | |
} | |
function re(e, t) { | |
if (!ne(e)) { | |
if (X(e.forEach)) return e.forEach(t, this); | |
var n = 0, | |
r = e.length; | |
if (0 < r) | |
for (; n < r; n++) t(e[n], n, e); | |
else | |
for (n in e) hasOwnProperty.call(e, n) && t.call(this, e[n], n) | |
} | |
} | |
function ie(e, t) { | |
return e.hasOwnProperty ? e.hasOwnProperty(t) : void 0 !== e[t] && e.constructor.prototype[t] !== e[t] | |
} | |
function ae(e, t, n, r) { | |
var i; | |
t = t || document, i = n ? t.getElementsByTagName(n) : t.getElementsByTagName("head"); | |
try { | |
if ((i = i.length ? i : t.getElementsByTagName("body")).length) { | |
i = i[0]; | |
var a = r ? null : i.firstChild; | |
return i.insertBefore(e, a) | |
} | |
} catch (e) {} | |
} | |
function oe(e, t) { | |
var n = new Image; | |
t && P.isFn(t) && (n.addEventListener("load", t), n.addEventListener("error", t)), n.src = e | |
} | |
function se(e, t) { | |
var n = P.createTrackPixelIframeHtml(e, !1, "allow-scripts allow-same-origin"), | |
r = document.createElement("div"); | |
r.innerHTML = n; | |
var i = r.firstChild; | |
t && P.isFn(t) && (i.addEventListener("load", t), i.addEventListener("error", t)), P.insertElement(i, document, "html", !0) | |
} | |
function de(e) { | |
var t = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : ""; | |
return e ? (1 < arguments.length && void 0 !== arguments[1] && !arguments[1] || (e = encodeURI(e)), t = t && 'sandbox="'.concat(t, '"'), "<iframe ".concat(t, ' id="').concat(q(), '"\n frameborder="0"\n allowtransparency="true"\n marginheight="0" marginwidth="0"\n width="0" hspace="0" vspace="0" height="0"\n style="height:0px;width:0px;display:none;"\n scrolling="no"\n src="').concat(e, '">\n </iframe>')) : "" | |
} | |
function ce(e, t, n) { | |
return null == t ? n : Q(t) ? t : ee(t) ? t.toString() : void P.logWarn("Unsuported type for param: " + e + " required type: String") | |
} | |
function ue(e, t, n) { | |
return n.indexOf(e) === t | |
} | |
function pe(e, t) { | |
return e.concat(t) | |
} | |
function le(e) { | |
return Object.keys(e) | |
} | |
function fe(e, t) { | |
return e[t] | |
} | |
function me() { | |
if (window.googletag && X(window.googletag.pubads) && X(window.googletag.pubads().getSlots)) return !0 | |
} | |
var ge = ye("timeToRespond", function(e, t) { | |
return t < e | |
}), | |
he = ye("responseTimestamp", function(e, t) { | |
return t < e | |
}), | |
be = ye("responseTimestamp", function(e, t) { | |
return e < t | |
}); | |
function ye(n, r) { | |
return function(e, t) { | |
return e.cpm === t.cpm ? r(e[n], t[n]) ? t : e : e.cpm < t.cpm ? t : e | |
} | |
} | |
function ve(e) { | |
return a()(e) | |
} | |
function we() { | |
if (window.navigator.cookieEnabled || document.cookie.length) return !0 | |
} | |
var Ie = function(e, t) { | |
return e.getAdUnitPath() === t || e.getSlotElementId() === t | |
}; | |
function Te(t) { | |
return function(e) { | |
return Ie(e, t) | |
} | |
} | |
function Se(e) { | |
return Number.isInteger ? Number.isInteger(e) : "number" == typeof e && isFinite(e) && Math.floor(e) === e | |
} | |
function ke(e) { | |
return e ? e.replace(/^\?/, "").split("&").reduce(function(e, t) { | |
var n, r, i = (n = t.split("="), r = 2, function(e) { | |
if (Array.isArray(e)) return e | |
}(n) || function(e, t) { | |
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) { | |
var n = [], | |
r = !0, | |
i = !1, | |
a = void 0; | |
try { | |
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); r = !0); | |
} catch (e) { | |
i = !0, a = e | |
} finally { | |
try { | |
r || null == s.return || s.return() | |
} finally { | |
if (i) throw a | |
} | |
} | |
return n | |
} | |
}(n, r) || g(n, r) || function() { | |
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") | |
}()), | |
a = i[0], | |
o = i[1]; | |
return /\[\]$/.test(a) ? (e[a = a.replace("[]", "")] = e[a] || [], e[a].push(o)) : e[a] = o || "", e | |
}, {}) : {} | |
} | |
function je(e) { | |
return Object.keys(e).map(function(t) { | |
return Array.isArray(e[t]) ? e[t].map(function(e) { | |
return "".concat(t, "[]=").concat(e) | |
}).join("&") : "".concat(t, "=").concat(e[t]) | |
}).join("&") | |
} | |
function Ae(e, t) { | |
return s()(e, t) | |
} | |
function Ee(e) { | |
for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r]; | |
if (!n.length) return e; | |
var i = n.shift(); | |
if (te(e) && te(i)) | |
for (var a in i) te(i[a]) ? (e[a] || y(e, b({}, a, {})), Ee(e[a], i[a])) : Z(i[a]) && e[a] ? Z(e[a]) && (e[a] = e[a].concat(i[a])) : y(e, b({}, a, i[a])); | |
return Ee.apply(void 0, [e].concat(n)) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
Object.defineProperty(t, "__esModule", { | |
value: !0 | |
}), n.d(t, "storage", function() { | |
return k | |
}), t.registerBidder = function(t) { | |
var n = Array.isArray(t.supportedMediaTypes) ? { | |
supportedMediaTypes: t.supportedMediaTypes | |
} : void 0; | |
function r(e) { | |
var t = E(e); | |
s.default.registerBidAdapter(t, e.code, n) | |
} | |
r(t), Array.isArray(t.aliases) && t.aliases.forEach(function(e) { | |
s.default.aliasRegistry[e] = t.code, r(S({}, t, { | |
code: e | |
})) | |
}) | |
}, t.newBidder = E, n.d(t, "registerSyncInner", function() { | |
return O | |
}), t.preloadBidderMappingFile = _, t.getIabSubCategory = function(e, t) { | |
var n = s.default.getBidAdapter(e); | |
if (n.getSpec().getMappingFileInfo) { | |
var r = n.getSpec().getMappingFileInfo(), | |
i = r.localStorageKey ? r.localStorageKey : n.getBidderCode(), | |
a = k.getDataFromLocalStorage(i); | |
if (a) { | |
try { | |
a = JSON.parse(a) | |
} catch (t) { | |
Object(v.logError)("Failed to parse ".concat(e, " mapping data stored in local storage")) | |
} | |
return a.mapping[t] ? a.mapping[t] : null | |
} | |
} | |
}, t.isValid = C; | |
var r = n(100), | |
s = n(7), | |
d = n(3), | |
h = n(32), | |
c = n(44), | |
a = n(35), | |
o = n(38), | |
i = n(5), | |
b = n.n(i), | |
u = n(8), | |
y = n.n(u), | |
p = n(12), | |
l = n.n(p), | |
f = n(4), | |
v = n(0), | |
m = n(2), | |
g = n(13), | |
w = n(9); | |
function I(e, t) { | |
(null == t || t > e.length) && (t = e.length); | |
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; | |
return r | |
} | |
function T(e) { | |
return (T = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { | |
return typeof e | |
} : function(e) { | |
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e | |
})(e) | |
} | |
function S() { | |
return (S = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
var k = Object(w.a)("bidderFactory"), | |
j = ["requestId", "cpm", "ttl", "creativeId", "netRevenue", "currency"], | |
A = 1; | |
function E(f) { | |
return S(new r.a(f.code), { | |
getSpec: function() { | |
return Object.freeze(f) | |
}, | |
registerSyncs: m, | |
callBids: function(a, o, e, r, s, d) { | |
var c, u, t, p, n, l; | |
function i() { | |
e(), y.a.emit(b.a.EVENTS.BIDDER_DONE, a), m(u, a.gdprConsent, a.uspConsent) | |
} | |
Array.isArray(a.bids) && (c = {}, u = [], 0 !== (t = a.bids.filter(g)).length ? (p = {}, t.forEach(function(e) { | |
(p[e.bidId] = e).adUnitCode || (e.adUnitCode = e.placementCode) | |
}), (n = f.buildRequests(t, a)) && 0 !== n.length ? (Array.isArray(n) || (n = [n]), l = Object(v.delayExecution)(d(i), n.length), n.forEach(function(i) { | |
switch (i.method) { | |
case "GET": | |
r("".concat(i.url).concat((e = i.data) ? "?".concat("object" === T(e) ? Object(v.parseQueryStringParameters)(e) : e) : ""), { | |
success: d(t), | |
error: n | |
}, void 0, S({ | |
method: "GET", | |
withCredentials: !0 | |
}, i.options)); | |
break; | |
case "POST": | |
r(i.url, { | |
success: d(t), | |
error: n | |
}, "string" == typeof i.data ? i.data : JSON.stringify(i.data), S({ | |
method: "POST", | |
contentType: "text/plain", | |
withCredentials: !0 | |
}, i.options)); | |
break; | |
default: | |
Object(v.logWarn)("Skipping invalid request from ".concat(f.code, ". Request type ").concat(i.type, " must be GET or POST")), l() | |
} | |
var e; | |
function t(e, t) { | |
s(f.code); | |
try { | |
e = JSON.parse(e) | |
} catch (e) {} | |
var n; | |
e = { | |
body: e, | |
headers: { | |
get: t.getResponseHeader.bind(t) | |
} | |
}, u.push(e); | |
try { | |
n = f.interpretResponse(e, i) | |
} catch (e) { | |
return Object(v.logError)("Bidder ".concat(f.code, " failed to interpret the server's response. Continuing without bids"), null, e), void l() | |
} | |
function r(e) { | |
var t, n, r, i = p[e.requestId]; | |
i ? (e.originalCpm = e.cpm, e.originalCurrency = e.currency, t = S(Object(h.a)(b.a.STATUS.GOOD, i), e), n = i.adUnitCode, r = t, c[n] = !0, C(n, r, [a]) && o(n, r)) : Object(v.logWarn)("Bidder ".concat(f.code, " made bid for unknown request ID: ").concat(e.requestId, ". Ignoring.")) | |
} | |
n && (Object(v.isArray)(n) ? n.forEach(r) : r(n)), l(n) | |
} | |
function n(e) { | |
s(f.code), Object(v.logError)("Server call for ".concat(f.code, " failed: ").concat(e, ". Continuing without bids.")), l() | |
} | |
})) : i()) : i()) | |
} | |
}); | |
function m(e, t, n) { | |
O(f, e, t, n) | |
} | |
function g(e) { | |
return !!f.isBidRequestValid(e) || (Object(v.logWarn)("Invalid bid sent to bidder ".concat(f.code, ": ").concat(JSON.stringify(e))), !1) | |
} | |
} | |
var O = Object(g.b)("async", function(t, e, n, r) { | |
var i, a, o = d.b.getConfig("userSync.aliasSyncEnabled"); | |
!t.getUserSyncs || !o && s.default.aliasRegistry[t.code] || (i = d.b.getConfig("userSync.filterSettings"), (a = t.getUserSyncs({ | |
iframeEnabled: !(!i || !i.iframe && !i.all), | |
pixelEnabled: !(!i || !i.image && !i.all) | |
}, e, n, r)) && (Array.isArray(a) || (a = [a]), a.forEach(function(e) { | |
c.a.registerSync(e.type, t.code, e.url) | |
}))) | |
}, "registerSyncs"); | |
function _(e, t) { | |
if (!d.b.getConfig("adpod.brandCategoryExclusion")) return e.call(this, t); | |
t.filter(function(e) { | |
return Object(v.deepAccess)(e, "mediaTypes.video.context") === m.a | |
}).map(function(e) { | |
return e.bids.map(function(e) { | |
return e.bidder | |
}) | |
}).reduce(v.flatten, []).filter(v.uniques).forEach(function(n) { | |
var e = s.default.getBidAdapter(n); | |
if (e.getSpec().getMappingFileInfo) { | |
var t = e.getSpec().getMappingFileInfo(), | |
r = t.refreshInDays ? t.refreshInDays : A, | |
i = t.localStorageKey ? t.localStorageKey : e.getSpec().code, | |
a = k.getDataFromLocalStorage(i); | |
try { | |
(!(a = a ? JSON.parse(a) : void 0) || Object(v.timestamp)() > a.lastUpdated + 24 * r * 60 * 60 * 1e3) && Object(f.a)(t.url, { | |
success: function(e) { | |
try { | |
e = JSON.parse(e); | |
var t = { | |
lastUpdated: Object(v.timestamp)(), | |
mapping: e.mapping | |
}; | |
k.setDataInLocalStorage(i, JSON.stringify(t)) | |
} catch (e) { | |
Object(v.logError)("Failed to parse ".concat(n, " bidder translation mapping file")) | |
} | |
}, | |
error: function() { | |
Object(v.logError)("Failed to load ".concat(n, " bidder translation file")) | |
} | |
}) | |
} catch (e) { | |
Object(v.logError)("Failed to parse ".concat(n, " bidder translation mapping file")) | |
} | |
} | |
}), e.call(this, t) | |
} | |
function C(e, t, n) { | |
function r(e) { | |
return "Invalid bid from ".concat(t.bidderCode, ". Ignoring bid: ").concat(e) | |
} | |
return e ? t ? (i = Object.keys(t), j.every(function(e) { | |
return l()(i, e) && !l()([void 0, null], t[e]) | |
}) ? "native" !== t.mediaType || Object(a.f)(t, n) ? "video" !== t.mediaType || Object(o.d)(t, n) ? !("banner" === t.mediaType && ! function(e, t, n) { | |
if ((t.width || 0 === parseInt(t.width, 10)) && (t.height || 0 === parseInt(t.height, 10))) return t.width = parseInt(t.width, 10), t.height = parseInt(t.height, 10), 1; | |
var r, i, a = Object(v.getBidderRequest)(n, t.bidderCode, e), | |
o = a && a.bids && a.bids[0] && a.bids[0].sizes, | |
s = Object(v.parseSizesInput)(o); | |
if (1 === s.length) { | |
var d = (r = s[0].split("x"), i = 2, function(e) { | |
if (Array.isArray(e)) return e | |
}(r) || function(e, t) { | |
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) { | |
var n = [], | |
r = !0, | |
i = !1, | |
a = void 0; | |
try { | |
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); r = !0); | |
} catch (e) { | |
i = !0, a = e | |
} finally { | |
try { | |
r || null == s.return || s.return() | |
} finally { | |
if (i) throw a | |
} | |
} | |
return n | |
} | |
}(r, i) || function(e, t) { | |
if (e) { | |
if ("string" == typeof e) return I(e, t); | |
var n = Object.prototype.toString.call(e).slice(8, -1); | |
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? I(e, t) : void 0 | |
} | |
}(r, i) || function() { | |
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") | |
}()), | |
c = d[0], | |
u = d[1]; | |
return t.width = parseInt(c, 10), t.height = parseInt(u, 10), 1 | |
} | |
}(e, t, n) && (Object(v.logError)(r("Banner bids require a width and height")), 1)) : (Object(v.logError)(r("Video bid does not have required vastUrl or renderer property")), !1) : (Object(v.logError)(r("Native bid missing some required properties.")), !1) : (Object(v.logError)(r("Bidder ".concat(t.bidderCode, " is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params."))), !1)) : (Object(v.logWarn)("Some adapter tried to add an undefined bid for ".concat(e, ".")), !1) : (Object(v.logWarn)("No adUnitCode was supplied to addBidResponse."), !1); | |
var i | |
} | |
Object(g.a)("checkAdUnitSetup").before(_) | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "c", function() { | |
return r | |
}), n.d(t, "d", function() { | |
return i | |
}), n.d(t, "b", function() { | |
return a | |
}), n.d(t, "a", function() { | |
return o | |
}); | |
var r = "native", | |
i = "video", | |
a = "banner", | |
o = "adpod" | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return b | |
}), n.d(t, "b", function() { | |
return A | |
}); | |
var r = n(45), | |
i = n(11), | |
o = n.n(i), | |
a = n(12), | |
s = n.n(a), | |
d = n(80), | |
c = n.n(d), | |
u = n(0); | |
function p() { | |
return (p = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
var l = n(92), | |
f = n(0), | |
m = n(5), | |
g = "TRUE" === f.getParameterByName(m.DEBUG_MODE).toUpperCase(), | |
h = window.location.origin, | |
b = "random", | |
y = {}; | |
y[b] = !0, y.fixed = !0; | |
var v, w, I, T, S, k = b, | |
j = { | |
LOW: "low", | |
MEDIUM: "medium", | |
HIGH: "high", | |
AUTO: "auto", | |
DENSE: "dense", | |
CUSTOM: "custom" | |
}, | |
A = (T = [], S = null, E(), { | |
getCurrentBidder: function() { | |
return S | |
}, | |
getConfig: function() { | |
if (arguments.length <= 1 && "function" != typeof(arguments.length <= 0 ? void 0 : arguments[0])) { | |
var e = arguments.length <= 0 ? void 0 : arguments[0]; | |
return e ? f.deepAccess(O(), e) : O() | |
} | |
return function(e, t) { | |
var n = t; | |
if ("string" != typeof e && (n = e, e = "*"), "function" == typeof n) { | |
var r = { | |
topic: e, | |
callback: n | |
}; | |
return T.push(r), | |
function() { | |
T.splice(T.indexOf(r), 1) | |
} | |
} | |
f.logError("listener must be a function") | |
}.apply(void 0, arguments) | |
}, | |
setConfig: function(n) { | |
var e, r; | |
f.isPlainObject(n) ? (e = Object.keys(n), r = {}, e.forEach(function(e) { | |
var t = n[e]; | |
f.isPlainObject(v[e]) && f.isPlainObject(t) && (t = p({}, v[e], t)), r[e] = w[e] = t | |
}), _(r)) : f.logError("setConfig options must be an object") | |
}, | |
setDefaults: function(e) { | |
f.isPlainObject(v) ? (p(v, e), p(w, e)) : f.logError("defaults must be an object") | |
}, | |
resetConfig: E, | |
runWithBidder: C, | |
callbackWithBidder: function(a) { | |
return function(i) { | |
return function() { | |
if ("function" == typeof i) { | |
for (var e, t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r]; | |
return C(a, (e = f.bind).call.apply(e, [i, this].concat(n))) | |
} | |
f.logWarn("config.callbackWithBidder callback is not a function") | |
} | |
} | |
}, | |
setBidderConfig: function(r) { | |
try { | |
! function(e) { | |
if (!f.isPlainObject(e)) throw "setBidderConfig bidder options must be an object"; | |
if (!Array.isArray(e.bidders) || !e.bidders.length) throw "setBidderConfig bidder options must contain a bidders list with at least 1 bidder"; | |
if (!f.isPlainObject(e.config)) throw "setBidderConfig bidder options must contain a config object" | |
}(r), r.bidders.forEach(function(n) { | |
I[n] || (I[n] = {}), Object.keys(r.config).forEach(function(e) { | |
var t = r.config[e]; | |
f.isPlainObject(t) ? I[n][e] = p({}, I[n][e] || {}, t) : I[n][e] = t | |
}) | |
}) | |
} catch (e) { | |
f.logError(e) | |
} | |
}, | |
getBidderConfig: function() { | |
return I | |
} | |
}); | |
function E() { | |
v = {}; | |
var n = { | |
_debug: g, | |
get debug() { | |
return this._debug | |
}, | |
set debug(e) { | |
this._debug = e | |
}, | |
_bidderTimeout: 3e3, | |
get bidderTimeout() { | |
return this._bidderTimeout | |
}, | |
set bidderTimeout(e) { | |
this._bidderTimeout = e | |
}, | |
_publisherDomain: h, | |
get publisherDomain() { | |
return this._publisherDomain | |
}, | |
set publisherDomain(e) { | |
this._publisherDomain = e | |
}, | |
_priceGranularity: j.MEDIUM, | |
set priceGranularity(e) { | |
a(e) && ("string" == typeof e ? this._priceGranularity = i(e) ? e : j.MEDIUM : f.isPlainObject(e) && (this._customPriceBucket = e, this._priceGranularity = j.CUSTOM, f.logMessage("Using custom price granularity"))) | |
}, | |
get priceGranularity() { | |
return this._priceGranularity | |
}, | |
_customPriceBucket: {}, | |
get customPriceBucket() { | |
return this._customPriceBucket | |
}, | |
_mediaTypePriceGranularity: {}, | |
get mediaTypePriceGranularity() { | |
return this._mediaTypePriceGranularity | |
}, | |
set mediaTypePriceGranularity(n) { | |
var r = this; | |
this._mediaTypePriceGranularity = Object.keys(n).reduce(function(e, t) { | |
return a(n[t]) ? "string" == typeof n ? e[t] = i(n[t]) ? n[t] : r._priceGranularity : f.isPlainObject(n) && (e[t] = n[t], f.logMessage("Using custom price granularity for ".concat(t))) : f.logWarn("Invalid price granularity for media type: ".concat(t)), e | |
}, {}) | |
}, | |
_sendAllBids: !0, | |
get enableSendAllBids() { | |
return this._sendAllBids | |
}, | |
set enableSendAllBids(e) { | |
this._sendAllBids = e | |
}, | |
_useBidCache: !1, | |
get useBidCache() { | |
return this._useBidCache | |
}, | |
set useBidCache(e) { | |
this._useBidCache = e | |
}, | |
_deviceAccess: !0, | |
get deviceAccess() { | |
return this._deviceAccess | |
}, | |
set deviceAccess(e) { | |
this._deviceAccess = e | |
}, | |
_bidderSequence: k, | |
get bidderSequence() { | |
return this._bidderSequence | |
}, | |
set bidderSequence(e) { | |
y[e] ? this._bidderSequence = e : f.logWarn("Invalid order: ".concat(e, ". Bidder Sequence was not set.")) | |
}, | |
_timeoutBuffer: 400, | |
get timeoutBuffer() { | |
return this._timeoutBuffer | |
}, | |
set timeoutBuffer(e) { | |
this._timeoutBuffer = e | |
}, | |
_disableAjaxTimeout: !1, | |
get disableAjaxTimeout() { | |
return this._disableAjaxTimeout | |
}, | |
set disableAjaxTimeout(e) { | |
this._disableAjaxTimeout = e | |
} | |
}; | |
function i(t) { | |
return o()(Object.keys(j), function(e) { | |
return t === j[e] | |
}) | |
} | |
function a(e) { | |
if (e) { | |
if ("string" == typeof e) i(e) || f.logWarn("Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default."); | |
else if (f.isPlainObject(e) && !Object(r.b)(e)) return f.logError("Invalid custom price value passed to `setPriceGranularity()`"), 0; | |
return 1 | |
} | |
f.logError("Prebid Error: no value passed to `setPriceGranularity()`") | |
} | |
w && _(Object.keys(w).reduce(function(e, t) { | |
return w[t] !== n[t] && (e[t] = n[t] || {}), e | |
}, {})), w = n, I = {} | |
} | |
function O() { | |
if (S && I && f.isPlainObject(I[S])) { | |
var n = I[S], | |
e = new c.a(Object.keys(w).concat(Object.keys(n))); | |
return l(e).reduce(function(e, t) { | |
return void 0 === n[t] ? e[t] = w[t] : void 0 !== w[t] && f.isPlainObject(n[t]) ? e[t] = Object(u.mergeDeep)({}, w[t], n[t]) : e[t] = n[t], e | |
}, {}) | |
} | |
return p({}, w) | |
} | |
function _(i) { | |
var t = Object.keys(i); | |
T.filter(function(e) { | |
return s()(t, e.topic) | |
}).forEach(function(e) { | |
var t, n, r; | |
e.callback((t = {}, n = e.topic, r = i[e.topic], n in t ? Object.defineProperty(t, n, { | |
value: r, | |
enumerable: !0, | |
configurable: !0, | |
writable: !0 | |
}) : t[n] = r, t)) | |
}), T.filter(function(e) { | |
return "*" === e.topic | |
}).forEach(function(e) { | |
return e.callback(i) | |
}) | |
} | |
function C(e, t) { | |
S = e; | |
try { | |
return t() | |
} finally { | |
S = null | |
} | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return r | |
}), t.b = i; | |
var l = n(3); | |
function f() { | |
return (f = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
function m(e) { | |
return (m = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { | |
return typeof e | |
} : function(e) { | |
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e | |
})(e) | |
} | |
var g = n(0), | |
h = 4, | |
r = i(); | |
function i() { | |
var c = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 3e3, | |
e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, | |
u = e.request, | |
p = e.done; | |
return function(e, t, n) { | |
var r = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : {}; | |
try { | |
var i, a = r.method || (n ? "POST" : "GET"), | |
o = document.createElement("a"); | |
o.href = e; | |
var s, d = "object" === m(t) && null !== t ? t : { | |
success: function() { | |
g.logMessage("xhr success") | |
}, | |
error: function(e) { | |
g.logError("xhr error", null, e) | |
} | |
}; | |
"function" == typeof t && (d.success = t), (i = new window.XMLHttpRequest).onreadystatechange = function() { | |
var e; | |
i.readyState === h && ("function" == typeof p && p(o.origin), 200 <= (e = i.status) && e < 300 || 304 === e ? d.success(i.responseText, i) : d.error(i.statusText, i)) | |
}, l.b.getConfig("disableAjaxTimeout") || (i.ontimeout = function() { | |
g.logError(" xhr timeout after ", i.timeout, "ms") | |
}), "GET" === a && n && (f((s = g.parseUrl(e, r)).search, n), e = g.buildUrl(s)), i.open(a, e, !0), l.b.getConfig("disableAjaxTimeout") || (i.timeout = c), r.withCredentials && (i.withCredentials = !0), g._each(r.customHeaders, function(e, t) { | |
i.setRequestHeader(t, e) | |
}), r.preflight && i.setRequestHeader("X-Requested-With", "XMLHttpRequest"), i.setRequestHeader("Content-Type", r.contentType || "text/plain"), "function" == typeof u && u(o.origin), "POST" === a && n ? i.send(n) : i.send() | |
} catch (e) { | |
g.logError("xhr construction", e) | |
} | |
} | |
} | |
}, function(e, t) { | |
e.exports = { | |
JSON_MAPPING: { | |
PL_CODE: "code", | |
PL_SIZE: "sizes", | |
PL_BIDS: "bids", | |
BD_BIDDER: "bidder", | |
BD_ID: "paramsd", | |
BD_PL_ID: "placementId", | |
ADSERVER_TARGETING: "adserverTargeting", | |
BD_SETTING_STANDARD: "standard" | |
}, | |
DEBUG_MODE: "pbjs_debug", | |
STATUS: { | |
GOOD: 1, | |
NO_BID: 2 | |
}, | |
CB: { | |
TYPE: { | |
ALL_BIDS_BACK: "allRequestedBidsBack", | |
AD_UNIT_BIDS_BACK: "adUnitBidsBack", | |
BID_WON: "bidWon", | |
REQUEST_BIDS: "requestBids" | |
} | |
}, | |
EVENTS: { | |
AUCTION_INIT: "auctionInit", | |
AUCTION_END: "auctionEnd", | |
BID_ADJUSTMENT: "bidAdjustment", | |
BID_TIMEOUT: "bidTimeout", | |
BID_REQUESTED: "bidRequested", | |
BID_RESPONSE: "bidResponse", | |
NO_BID: "noBid", | |
BID_WON: "bidWon", | |
BIDDER_DONE: "bidderDone", | |
SET_TARGETING: "setTargeting", | |
BEFORE_REQUEST_BIDS: "beforeRequestBids", | |
REQUEST_BIDS: "requestBids", | |
ADD_AD_UNITS: "addAdUnits", | |
AD_RENDER_FAILED: "adRenderFailed" | |
}, | |
AD_RENDER_FAILED_REASON: { | |
PREVENT_WRITING_ON_MAIN_DOCUMENT: "preventWritingOnMainDocuemnt", | |
NO_AD: "noAd", | |
EXCEPTION: "exception", | |
CANNOT_FIND_AD: "cannotFindAd", | |
MISSING_DOC_OR_ADID: "missingDocOrAdid" | |
}, | |
EVENT_ID_PATHS: { | |
bidWon: "adUnitCode" | |
}, | |
GRANULARITY_OPTIONS: { | |
LOW: "low", | |
MEDIUM: "medium", | |
HIGH: "high", | |
AUTO: "auto", | |
DENSE: "dense", | |
CUSTOM: "custom" | |
}, | |
TARGETING_KEYS: { | |
BIDDER: "hb_bidder", | |
AD_ID: "hb_adid", | |
PRICE_BUCKET: "hb_pb", | |
SIZE: "hb_size", | |
DEAL: "hb_deal", | |
SOURCE: "hb_source", | |
FORMAT: "hb_format", | |
UUID: "hb_uuid", | |
CACHE_ID: "hb_cache_id", | |
CACHE_HOST: "hb_cache_host" | |
}, | |
NATIVE_KEYS: { | |
title: "hb_native_title", | |
body: "hb_native_body", | |
body2: "hb_native_body2", | |
privacyLink: "hb_native_privacy", | |
privacyIcon: "hb_native_privicon", | |
sponsoredBy: "hb_native_brand", | |
image: "hb_native_image", | |
icon: "hb_native_icon", | |
clickUrl: "hb_native_linkurl", | |
displayUrl: "hb_native_displayurl", | |
cta: "hb_native_cta", | |
rating: "hb_native_rating", | |
address: "hb_native_address", | |
downloads: "hb_native_downloads", | |
likes: "hb_native_likes", | |
phone: "hb_native_phone", | |
price: "hb_native_price", | |
salePrice: "hb_native_saleprice" | |
}, | |
S2S: { | |
SRC: "s2s", | |
DEFAULT_ENDPOINT: "https://prebid.adnxs.com/pbs/v1/openrtb2/auction", | |
SYNCED_BIDDERS_KEY: "pbjsSyncs" | |
}, | |
BID_STATUS: { | |
BID_TARGETING_SET: "targetingSet", | |
RENDERED: "rendered", | |
BID_REJECTED: "bidRejected" | |
} | |
} | |
}, , function(e, t, n) { | |
"use strict"; | |
Object.defineProperty(t, "__esModule", { | |
value: !0 | |
}), n.d(t, "gdprDataHandler", function() { | |
return R | |
}), n.d(t, "uspDataHandler", function() { | |
return D | |
}), t.setS2STestingModule = function(e) { | |
j = e | |
}; | |
var w = n(0), | |
f = n(101), | |
m = n(35), | |
u = n(1), | |
I = n(4), | |
T = n(3), | |
r = n(13), | |
i = n(12), | |
S = n.n(i), | |
a = n(11), | |
y = n.n(a), | |
g = n(68), | |
v = n(30); | |
function k(e, t) { | |
(null == t || t > e.length) && (t = e.length); | |
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; | |
return r | |
} | |
function h() { | |
return (h = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
var j, A = n(0), | |
E = n(5), | |
O = n(8), | |
p = {}, | |
_ = p.bidderRegistry = {}, | |
l = p.aliasRegistry = {}, | |
C = {}; | |
T.b.getConfig("s2sConfig", function(e) { | |
C = e.s2sConfig | |
}); | |
var o = {}, | |
x = Object(r.b)("sync", function(e) { | |
var i = e.bidderCode, | |
c = e.auctionId, | |
u = e.bidderRequestId, | |
t = e.adUnits, | |
p = e.labels, | |
l = e.src; | |
return t.reduce(function(e, s) { | |
var t = Object(f.b)(Object(f.a)(s, p), s.mediaTypes, s.sizes), | |
n = t.active, | |
d = t.mediaTypes, | |
r = t.filterResults; | |
return n ? r && A.logInfo('Size mapping filtered adUnit "'.concat(s.code, '" banner sizes from '), r.before, "to ", r.after) : A.logInfo('Size mapping disabled adUnit "'.concat(s.code, '"')), n && e.push(s.bids.filter(function(e) { | |
return e.bidder === i | |
}).reduce(function(e, t) { | |
var n = s.nativeParams || A.deepAccess(s, "mediaTypes.native"); | |
n && (t = h({}, t, { | |
nativeParams: Object(m.g)(n) | |
})), t = h({}, t, Object(w.getDefinedParams)(s, ["fpd", "mediaType", "renderer", "storedAuctionResponse"])); | |
var r = Object(f.b)(Object(f.a)(t, p), d), | |
i = r.active, | |
a = r.mediaTypes, | |
o = r.filterResults; | |
return i ? o && A.logInfo('Size mapping filtered adUnit "'.concat(s.code, '" bidder "').concat(t.bidder, '" banner sizes from '), o.before, "to ", o.after) : A.logInfo('Size mapping deactivated adUnit "'.concat(s.code, '" bidder "').concat(t.bidder, '"')), A.isValidMediaTypes(a) ? t = h({}, t, { | |
mediaTypes: a | |
}) : A.logError("mediaTypes is not correctly configured for adunit ".concat(s.code)), i && e.push(h({}, t, { | |
adUnitCode: s.code, | |
transactionId: s.transactionId, | |
sizes: A.deepAccess(a, "banner.sizes") || A.deepAccess(a, "video.playerSize") || [], | |
bidId: t.bid_id || A.getUniqueIdentifierStr(), | |
bidderRequestId: u, | |
auctionId: c, | |
src: l, | |
bidRequestsCount: g.a.getRequestsCounter(s.code), | |
bidderRequestsCount: g.a.getBidderRequestsCounter(s.code, t.bidder), | |
bidderWinsCount: g.a.getBidderWinsCounter(s.code, t.bidder) | |
})), e | |
}, [])), e | |
}, []).reduce(w.flatten, []).filter(function(e) { | |
return "" !== e | |
}) | |
}, "getBids"), | |
R = { | |
consentData: null, | |
setConsentData: function(e) { | |
R.consentData = e | |
}, | |
getConsentData: function() { | |
return R.consentData | |
} | |
}, | |
D = { | |
consentData: null, | |
setConsentData: function(e) { | |
D.consentData = e | |
}, | |
getConsentData: function() { | |
return D.consentData | |
} | |
}; | |
function P() { | |
return C && C.enabled && C.testing && j | |
} | |
function s(e, t, n) { | |
try { | |
var r = _[e].getSpec(); | |
r && r[t] && "function" == typeof r[t] && (A.logInfo("Invoking ".concat(e, ".").concat(t)), T.b.runWithBidder(e, w.bind.call(r[t], r, n))) | |
} catch (n) { | |
A.logWarn("Error calling ".concat(t, " of ").concat(e)) | |
} | |
} | |
p.makeBidRequests = Object(r.b)("sync", function(e, i, a, o, s) { | |
O.emit(E.EVENTS.BEFORE_REQUEST_BIDS, e); | |
var d = [], | |
t = Object(w.getBidderCodes)(e); | |
T.b.getConfig("bidderSequence") === T.a && (t = Object(w.shuffle)(t)); | |
var n, r, c, u, p, l, f = Object(v.b)(), | |
m = t, | |
g = []; | |
C.enabled && (P() && (g = j.getSourceBidderMap(e)[j.CLIENT]), n = C.bidders, m = t.filter(function(e) { | |
return !S()(n, e) || S()(g, e) | |
}), Boolean(P() && C.testServerOnly) && (l = e, Boolean(y()(l, function(e) { | |
return y()(e.bids, function(e) { | |
return (e.bidSource || C.bidderControl && C.bidderControl[e.bidder]) && e.finalSource === j.SERVER | |
}) | |
}))) && (m.length = 0), u = C.bidders, (p = A.deepClone(e)).forEach(function(e) { | |
e.bids = e.bids.filter(function(e) { | |
return S()(u, e.bidder) && (!P() || e.finalSource !== j.CLIENT) | |
}).map(function(e) { | |
return e.bid_id = A.getUniqueIdentifierStr(), e | |
}) | |
}), r = p = p.filter(function(e) { | |
return 0 !== e.bids.length | |
}), c = A.generateUUID(), n.forEach(function(e) { | |
var t = A.getUniqueIdentifierStr(), | |
n = { | |
bidderCode: e, | |
auctionId: a, | |
bidderRequestId: t, | |
tid: c, | |
bids: x({ | |
bidderCode: e, | |
auctionId: a, | |
bidderRequestId: t, | |
adUnits: A.deepClone(r), | |
labels: s, | |
src: E.S2S.SRC | |
}), | |
auctionStart: i, | |
timeout: C.timeout, | |
src: E.S2S.SRC, | |
refererInfo: f | |
}; | |
0 !== n.bids.length && d.push(n) | |
}), r.forEach(function(e) { | |
var t = e.bids.filter(function(t) { | |
return y()(d, function(e) { | |
return y()(e.bids, function(e) { | |
return e.bidId === t.bid_id | |
}) | |
}) | |
}); | |
e.bids = t | |
}), d.forEach(function(e) { | |
e.adUnitsS2SCopy = r.filter(function(e) { | |
return 0 < e.bids.length | |
}) | |
})); | |
var h, b = ((h = A.deepClone(e)).forEach(function(e) { | |
e.bids = e.bids.filter(function(e) { | |
return !P() || e.finalSource !== j.SERVER | |
}) | |
}), h = h.filter(function(e) { | |
return 0 !== e.bids.length | |
})); | |
return m.forEach(function(e) { | |
var t = A.getUniqueIdentifierStr(), | |
n = { | |
bidderCode: e, | |
auctionId: a, | |
bidderRequestId: t, | |
bids: x({ | |
bidderCode: e, | |
auctionId: a, | |
bidderRequestId: t, | |
adUnits: A.deepClone(b), | |
labels: s, | |
src: "client" | |
}), | |
auctionStart: i, | |
timeout: o, | |
refererInfo: f | |
}, | |
r = _[e]; | |
r || A.logError("Trying to make a request for bidder that does not exist: ".concat(e)), r && n.bids && 0 !== n.bids.length && d.push(n) | |
}), R.getConsentData() && d.forEach(function(e) { | |
e.gdprConsent = R.getConsentData() | |
}), D.getConsentData() && d.forEach(function(e) { | |
e.uspConsent = D.getConsentData() | |
}), d | |
}, "makeBidRequests"), p.callBids = function(e, t, i, a, o, s, d) { | |
var n, r, c, u, p, l, f, m, g, h, b, y, v; | |
t.length ? (y = t.reduce(function(e, t) { | |
return e[Number(void 0 !== t.src && t.src === E.S2S.SRC)].push(t), e | |
}, [ | |
[], | |
[] | |
]), v = 2, r = (n = function(e) { | |
if (Array.isArray(e)) return e | |
}(y) || function(e, t) { | |
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) { | |
var n = [], | |
r = !0, | |
i = !1, | |
a = void 0; | |
try { | |
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); r = !0); | |
} catch (e) { | |
i = !0, a = e | |
} finally { | |
try { | |
r || null == s.return || s.return() | |
} finally { | |
if (i) throw a | |
} | |
} | |
return n | |
} | |
}(y, v) || function(e, t) { | |
if (e) { | |
if ("string" == typeof e) return k(e, t); | |
var n = Object.prototype.toString.call(e).slice(8, -1); | |
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? k(e, t) : void 0 | |
} | |
}(y, v) || function() { | |
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") | |
}())[0], (c = n[1]).length && (u = Object(I.b)(s, o ? { | |
request: o.request.bind(null, "s2s"), | |
done: o.done | |
} : void 0), p = C.bidders, l = _[C.adapter], f = c[0].tid, m = c[0].adUnitsS2SCopy, l ? (g = { | |
tid: f, | |
ad_units: m | |
}).ad_units.length && (h = c.map(function(e) { | |
return e.start = Object(w.timestamp)(), a.bind(e) | |
}), b = g.ad_units.reduce(function(e, t) { | |
return e.concat((t.bids || []).reduce(function(e, t) { | |
return e.concat(t.bidder) | |
}, [])) | |
}, []), A.logMessage("CALLING S2S HEADER BIDDERS ==== ".concat(p.filter(function(e) { | |
return S()(b, e) | |
}).join(","))), c.forEach(function(e) { | |
O.emit(E.EVENTS.BID_REQUESTED, e) | |
}), l.callBids(g, c, function(e, t) { | |
var n = Object(w.getBidderRequest)(c, t.bidderCode, e); | |
n && i.call(n, e, t) | |
}, function() { | |
return h.forEach(function(e) { | |
return e() | |
}) | |
}, u)) : A.logError("missing " + C.adapter)), r.forEach(function(e) { | |
e.start = Object(w.timestamp)(); | |
var t = _[e.bidderCode]; | |
A.logMessage("CALLING BIDDER ======= ".concat(e.bidderCode)), O.emit(E.EVENTS.BID_REQUESTED, e); | |
var n = Object(I.b)(s, o ? { | |
request: o.request.bind(null, e.bidderCode), | |
done: o.done | |
} : void 0), | |
r = a.bind(e); | |
try { | |
T.b.runWithBidder(e.bidderCode, w.bind.call(t.callBids, t, e, i.bind(e), r, n, d, T.b.callbackWithBidder(e.bidderCode))) | |
} catch (t) { | |
A.logError("".concat(e.bidderCode, " Bid Adapter emitted an uncaught error when parsing their bidRequest"), { | |
e: t, | |
bidRequest: e | |
}), r() | |
} | |
})) : A.logWarn("callBids executed with no bidRequests. Were they filtered by labels or sizing?") | |
}, p.videoAdapters = [], p.registerBidAdapter = function(e, t) { | |
var n = (2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).supportedMediaTypes, | |
r = void 0 === n ? [] : n; | |
e && t ? "function" == typeof e.callBids ? (_[t] = e, S()(r, "video") && p.videoAdapters.push(t), S()(r, "native") && m.e.push(t)) : A.logError("Bidder adaptor error for bidder code: " + t + "bidder must implement a callBids() function") : A.logError("bidAdaptor or bidderCode not specified") | |
}, p.aliasBidAdapter = function(e, t) { | |
var n, r; | |
if (void 0 === _[t]) { | |
var i = _[e]; | |
if (void 0 === i) { | |
var a = T.b.getConfig("s2sConfig"), | |
o = a && a.bidders; | |
o && S()(o, t) ? l[t] = e : A.logError('bidderCode "' + e + '" is not an existing bidder.', "adapterManager.aliasBidAdapter") | |
} else try { | |
var s, d, c = (n = e, r = [], S()(p.videoAdapters, n) && r.push("video"), S()(m.e, n) && r.push("native"), r); | |
i.constructor.prototype != Object.prototype ? (d = new i.constructor).setBidderCode(t) : (s = i.getSpec(), d = Object(u.newBidder)(h({}, s, { | |
code: t | |
})), l[t] = e), p.registerBidAdapter(d, t, { | |
supportedMediaTypes: c | |
}) | |
} catch (t) { | |
A.logError(e + " bidder does not currently support aliasing.", "adapterManager.aliasBidAdapter") | |
} | |
} else A.logMessage('alias name "' + t + '" has been already specified.') | |
}, p.registerAnalyticsAdapter = function(e) { | |
var t = e.adapter, | |
n = e.code; | |
t && n ? "function" == typeof t.enableAnalytics ? (t.code = n, o[n] = t) : A.logError('Prebid Error: Analytics adaptor error for analytics "'.concat(n, '"\n analytics adapter must implement an enableAnalytics() function')) : A.logError("Prebid Error: analyticsAdapter or analyticsCode not specified") | |
}, p.enableAnalytics = function(e) { | |
A.isArray(e) || (e = [e]), A._each(e, function(e) { | |
var t = o[e.provider]; | |
t ? t.enableAnalytics(e) : A.logError("Prebid Error: no analytics adapter found in registry for\n ".concat(e.provider, ".")) | |
}) | |
}, p.getBidAdapter = function(e) { | |
return _[e] | |
}, p.callTimedOutBidders = function(t, n, r) { | |
n = n.map(function(e) { | |
return e.params = A.getUserConfiguredParams(t, e.adUnitCode, e.bidder), e.timeout = r, e | |
}), n = A.groupBy(n, "bidder"), Object.keys(n).forEach(function(e) { | |
s(e, "onTimeout", n[e]) | |
}) | |
}, p.callBidWonBidder = function(e, t, n) { | |
t.params = A.getUserConfiguredParams(n, t.adUnitCode, t.bidder), g.a.incrementBidderWinsCounter(t.adUnitCode, t.bidder), s(e, "onBidWon", t) | |
}, p.callSetTargetingBidder = function(e, t) { | |
s(e, "onSetTargeting", t) | |
}, t.default = p | |
}, function(e, t, n) { | |
function r() { | |
return (r = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
var s, i, d = n(0), | |
a = n(5), | |
o = Array.prototype.slice, | |
c = Array.prototype.push, | |
u = d._map(a.EVENTS, function(e) { | |
return e | |
}), | |
p = a.EVENT_ID_PATHS, | |
l = []; | |
e.exports = (s = {}, (i = {}).on = function(e, t, n) { | |
var r; | |
d.contains(u, e) ? (r = s[e] || { | |
que: [] | |
}, n ? (r[n] = r[n] || { | |
que: [] | |
}, r[n].que.push(t)) : r.que.push(t), s[e] = r) : d.logError("Wrong event name : " + e + " Valid event names :" + u) | |
}, i.emit = function(e) { | |
! function(e, t) { | |
d.logMessage("Emitting event for: " + e); | |
var n = t[0] || {}, | |
r = n[p[e]], | |
i = s[e] || { | |
que: [] | |
}, | |
a = d._map(i, function(e, t) { | |
return t | |
}), | |
o = []; | |
l.push({ | |
eventType: e, | |
args: n, | |
id: r | |
}), r && d.contains(a, r) && c.apply(o, i[r].que), c.apply(o, i.que), d._each(o, function(e) { | |
if (e) try { | |
e.apply(null, t) | |
} catch (e) { | |
d.logError("Error executing handler:", "events.js", e) | |
} | |
}) | |
}(e, o.call(arguments, 1)) | |
}, i.off = function(e, n, r) { | |
var i = s[e]; | |
d.isEmpty(i) || d.isEmpty(i.que) && d.isEmpty(i[r]) || r && (d.isEmpty(i[r]) || d.isEmpty(i[r].que)) || (r ? d._each(i[r].que, function(e) { | |
var t = i[r].que; | |
e === n && t.splice(t.indexOf(e), 1) | |
}) : d._each(i.que, function(e) { | |
var t = i.que; | |
e === n && t.splice(t.indexOf(e), 1) | |
}), s[e] = i) | |
}, i.get = function() { | |
return s | |
}, i.getEvents = function() { | |
var n = []; | |
return d._each(l, function(e) { | |
var t = r({}, e); | |
n.push(t) | |
}), n | |
}, i) | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "c", function() { | |
return p | |
}), n.d(t, "d", function() { | |
return l | |
}), t.a = function(e) { | |
return a({ | |
moduleName: e, | |
moduleType: "core" | |
}) | |
}, t.b = function(e, t) { | |
return a({ | |
gvlid: e, | |
moduleName: t | |
}) | |
}; | |
var r = n(13), | |
s = n(0), | |
i = n(12), | |
d = n.n(i), | |
u = ["core", "prebid-module"], | |
p = []; | |
function a(e) { | |
var t = 0 < arguments.length && void 0 !== e ? e : {}, | |
i = t.gvlid, | |
a = t.moduleName, | |
o = t.moduleType; | |
function c(n) { | |
return d()(u, o) ? n({ | |
valid: !0 | |
}) : (l(i, a, { | |
hasEnforcementHook: !1 | |
}, function(e) { | |
var t; | |
r = e && e.hasEnforcementHook ? n(e) : (t = { | |
hasEnforcementHook: !1, | |
valid: s.hasDeviceAccess() | |
}, n(t)) | |
}), r); | |
var r | |
} | |
return { | |
setCookie: function(i, a, o, s, d, t) { | |
function n(e) { | |
var t, n, r; | |
e && e.valid && (t = d && "" !== d ? " ;domain=".concat(encodeURIComponent(d)) : "", n = o && "" !== o ? " ;expires=".concat(o) : "", r = null != s && "none" == s.toLowerCase() ? "; Secure" : "", document.cookie = "".concat(i, "=").concat(encodeURIComponent(a)).concat(n, "; path=/").concat(t).concat(s ? "; SameSite=".concat(s) : "").concat(r)) | |
} | |
if (!t || "function" != typeof t) return c(n); | |
p.push(function() { | |
var e = c(n); | |
t(e) | |
}) | |
}, | |
getCookie: function(n, t) { | |
function r(e) { | |
if (e && e.valid) { | |
var t = window.document.cookie.match("(^|;)\\s*" + n + "\\s*=\\s*([^;]*)\\s*(;|$)"); | |
return t ? decodeURIComponent(t[2]) : null | |
} | |
return null | |
} | |
if (!t || "function" != typeof t) return c(r); | |
p.push(function() { | |
var e = c(r); | |
t(e) | |
}) | |
}, | |
localStorageIsEnabled: function(t) { | |
function n(e) { | |
if (e && e.valid) try { | |
return localStorage.setItem("prebid.cookieTest", "1"), "1" === localStorage.getItem("prebid.cookieTest") | |
} catch (e) {} | |
return !1 | |
} | |
if (!t || "function" != typeof t) return c(n); | |
p.push(function() { | |
var e = c(n); | |
t(e) | |
}) | |
}, | |
cookiesAreEnabled: function(t) { | |
function n(e) { | |
return !(!e || !e.valid || !s.checkCookieSupport() && (window.document.cookie = "prebid.cookieTest", -1 === window.document.cookie.indexOf("prebid.cookieTest"))) | |
} | |
if (!t || "function" != typeof t) return c(n); | |
p.push(function() { | |
var e = c(n); | |
t(e) | |
}) | |
}, | |
setDataInLocalStorage: function(t, n, r) { | |
function i(e) { | |
e && e.valid && window.localStorage.setItem(t, n) | |
} | |
if (!r || "function" != typeof r) return c(i); | |
p.push(function() { | |
var e = c(i); | |
r(e) | |
}) | |
}, | |
getDataFromLocalStorage: function(t, n) { | |
function r(e) { | |
return e && e.valid ? window.localStorage.getItem(t) : null | |
} | |
if (!n || "function" != typeof n) return c(r); | |
p.push(function() { | |
var e = c(r); | |
n(e) | |
}) | |
}, | |
removeDataFromLocalStorage: function(t, n) { | |
function r(e) { | |
e && e.valid && window.localStorage.removeItem(t) | |
} | |
if (!n || "function" != typeof n) return c(r); | |
p.push(function() { | |
var e = c(r); | |
n(e) | |
}) | |
}, | |
hasLocalStorage: function(t) { | |
function n(e) { | |
if (e && e.valid) try { | |
return !!window.localStorage | |
} catch (e) { | |
s.logError("Local storage api disabled") | |
} | |
return !1 | |
} | |
if (!t || "function" != typeof t) return c(n); | |
p.push(function() { | |
var e = c(n); | |
t(e) | |
}) | |
}, | |
findSimilarCookies: function(a, t) { | |
function n(e) { | |
if (e && e.valid) { | |
var t = []; | |
if (s.hasDeviceAccess()) | |
for (var n = document.cookie.split(";"); n.length;) { | |
var r = n.pop(), | |
i = (i = r.indexOf("=")) < 0 ? r.length : i; | |
0 <= decodeURIComponent(r.slice(0, i).replace(/^\s+/, "")).indexOf(a) && t.push(decodeURIComponent(r.slice(i + 1))) | |
} | |
return t | |
} | |
} | |
if (!t || "function" != typeof t) return c(n); | |
p.push(function() { | |
var e = c(n); | |
t(e) | |
}) | |
} | |
} | |
} | |
var l = Object(r.b)("async", function(e, t, n, r) { | |
r(n) | |
}, "validateStorageEnforcement") | |
}, function(e, t, n) { | |
"use strict"; | |
t.a = i, t.c = function(e) { | |
return !(!e || !e.url) | |
}, t.b = function(e, t) { | |
e.render(t) | |
}; | |
var d = n(39), | |
c = n(0), | |
r = n(11), | |
u = n.n(r), | |
p = "outstream"; | |
function i(e) { | |
var t = this, | |
r = e.url, | |
n = e.config, | |
i = e.id, | |
a = e.callback, | |
o = e.loaded, | |
s = e.adUnitCode; | |
this.url = r, this.config = n, this.handlers = {}, this.id = i, this.loaded = o, this.cmd = [], this.push = function(e) { | |
"function" == typeof e ? t.loaded ? e.call() : t.cmd.push(e) : c.logError("Commands given to Renderer.push must be wrapped in a function") | |
}, this.callback = a || function() { | |
t.loaded = !0, t.process() | |
}, this.render = function() { | |
var e, t = s, | |
n = vmpbjs.adUnits; | |
(e = u()(n, function(e) { | |
return e.code === t | |
})) && e.renderer && e.renderer.url && e.renderer.render ? c.logWarn("External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ".concat(s)) : Object(d.a)(r, p, this.callback), this._render ? this._render.apply(this, arguments) : c.logWarn("No render function was provided, please use .setRender on the renderer") | |
}.bind(this) | |
} | |
i.install = function(e) { | |
return new i({ | |
url: e.url, | |
config: e.config, | |
id: e.id, | |
callback: e.callback, | |
loaded: e.loaded, | |
adUnitCode: e.adUnitCode | |
}) | |
}, i.prototype.getConfig = function() { | |
return this.config | |
}, i.prototype.setRender = function(e) { | |
this._render = e | |
}, i.prototype.setEventHandlers = function(e) { | |
this.handlers = e | |
}, i.prototype.handleVideoEvent = function(e) { | |
var t = e.id, | |
n = e.eventName; | |
"function" == typeof this.handlers[n] && this.handlers[n](), c.logMessage("Prebid Renderer event for id ".concat(t, " type ").concat(n)) | |
}, i.prototype.process = function() { | |
for (; 0 < this.cmd.length;) try { | |
this.cmd.shift().call() | |
} catch (e) { | |
c.logError("Error processing Renderer command: ", e) | |
} | |
} | |
}, function(e, t, n) { | |
var r = n(105); | |
e.exports = r | |
}, function(e, t, n) { | |
var r = n(114); | |
e.exports = r | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "b", function() { | |
return o | |
}), n.d(t, "a", function() { | |
return s | |
}), t.d = function(e, t) { | |
var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 15; | |
0 === e.getHooks({ | |
hook: t | |
}).length && e.before(t, n) | |
}, t.c = function(e, n) { | |
o("async", function(e) { | |
e.forEach(function(e) { | |
return n.apply(void 0, function(e) { | |
if (Array.isArray(e)) return a(e) | |
}(t = e) || function(e) { | |
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) | |
}(t) || function(e) { | |
if (e) { | |
if ("string" == typeof e) return a(e, void 0); | |
var t = Object.prototype.toString.call(e).slice(8, -1); | |
return "Object" === t && e.constructor && (t = e.constructor.name), "Map" === t || "Set" === t ? Array.from(e) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? a(e, void 0) : void 0 | |
} | |
}(t) || function() { | |
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") | |
}()); | |
var t | |
}) | |
}, e)([]) | |
}, t.e = function(e) { | |
for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r]; | |
s(e).before(function(e, t) { | |
t.push(n), e(t) | |
}) | |
}; | |
var r = n(184), | |
i = n.n(r); | |
function a(e, t) { | |
(null == t || t > e.length) && (t = e.length); | |
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; | |
return r | |
} | |
var o = i()({ | |
ready: i.a.SYNC | i.a.ASYNC | i.a.QUEUE | |
}), | |
s = o.get | |
}, function(e, t, n) { | |
"use strict"; | |
var b = n(22), | |
y = n(107).f, | |
v = n(109), | |
w = n(42), | |
I = n(21), | |
T = n(29), | |
S = n(24); | |
e.exports = function(e, t) { | |
var n, r, i, a, o, s, d, c, u = e.target, | |
p = e.global, | |
l = e.stat, | |
f = e.proto, | |
m = p ? b : l ? b[u] : (b[u] || {}).prototype, | |
g = p ? w : w[u] || (w[u] = {}), | |
h = g.prototype; | |
for (i in t) n = !v(p ? i : u + (l ? "." : "#") + i, e.forced) && m && S(m, i), o = g[i], n && (s = e.noTargetGet ? (c = y(m, i)) && c.value : m[i]), a = n && s ? s : t[i], n && typeof o == typeof a || (d = e.bind && n ? I(a, b) : e.wrap && n ? function(r) { | |
function e(e, t, n) { | |
if (this instanceof r) { | |
switch (arguments.length) { | |
case 0: | |
return new r; | |
case 1: | |
return new r(e); | |
case 2: | |
return new r(e, t) | |
} | |
return new r(e, t, n) | |
} | |
return r.apply(this, arguments) | |
} | |
return e.prototype = r.prototype, e | |
}(a) : f && "function" == typeof a ? I(Function.call, a) : a, (e.sham || a && a.sham || o && o.sham) && T(d, "sham", !0), g[i] = d, f && (S(w, r = u + "Prototype") || T(w, r, {}), w[r][i] = a, e.real && h && !h[i] && T(h, i, a))) | |
} | |
}, function(e, t, n) { | |
var r = n(23); | |
e.exports = function(e) { | |
if (!r(e)) throw TypeError(String(e) + " is not an object"); | |
return e | |
} | |
}, function(e, t) { | |
e.exports = !0 | |
}, function(e, t, n) { | |
function f(e, t) { | |
this.stopped = e, this.result = t | |
} | |
var m = n(15), | |
g = n(82), | |
h = n(50), | |
b = n(21), | |
y = n(61), | |
v = n(83); | |
(e.exports = function(e, t, n, r, i) { | |
var a, o, s, d, c, u, p, l = b(t, n, r ? 2 : 1); | |
if (i) a = e; | |
else { | |
if ("function" != typeof(o = y(e))) throw TypeError("Target is not iterable"); | |
if (g(o)) { | |
for (s = 0, d = h(e.length); s < d; s++) | |
if ((c = r ? l(m(p = e[s])[0], p[1]) : l(e[s])) && c instanceof f) return c; | |
return new f(!1) | |
} | |
a = o.call(e) | |
} | |
for (u = a.next; !(p = u.call(a)).done;) | |
if ("object" == typeof(c = v(a, l, p.value, r)) && c && c instanceof f) return c; | |
return new f(!1) | |
}).stop = function(e) { | |
return new f(!0, e) | |
} | |
}, function(e, t) { | |
e.exports = function(e) { | |
if ("function" != typeof e) throw TypeError(String(e) + " is not a function"); | |
return e | |
} | |
}, function(e, t, n) { | |
var r = n(22), | |
i = n(76), | |
a = n(24), | |
o = n(59), | |
s = n(78), | |
d = n(113), | |
c = i("wks"), | |
u = r.Symbol, | |
p = d ? u : u && u.withoutSetter || o; | |
e.exports = function(e) { | |
return a(c, e) || (s && a(u, e) ? c[e] = u[e] : c[e] = p("Symbol." + e)), c[e] | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
t.a = function() { | |
return window.vmpbjs | |
}, window.vmpbjs = window.vmpbjs || {}, window.vmpbjs.cmd = window.vmpbjs.cmd || [], window.vmpbjs.que = window.vmpbjs.que || [], window._pbjsGlobals = window._pbjsGlobals || [], window._pbjsGlobals.push("vmpbjs") | |
}, function(e, t, n) { | |
var a = n(18); | |
e.exports = function(r, i, e) { | |
if (a(r), void 0 === i) return r; | |
switch (e) { | |
case 0: | |
return function() { | |
return r.call(i) | |
}; | |
case 1: | |
return function(e) { | |
return r.call(i, e) | |
}; | |
case 2: | |
return function(e, t) { | |
return r.call(i, e, t) | |
}; | |
case 3: | |
return function(e, t, n) { | |
return r.call(i, e, t, n) | |
} | |
} | |
return function() { | |
return r.apply(i, arguments) | |
} | |
} | |
}, function(n, e, t) { | |
(function(e) { | |
function t(e) { | |
return e && e.Math == Math && e | |
} | |
n.exports = t("object" == typeof globalThis && globalThis) || t("object" == typeof window && window) || t("object" == typeof self && self) || t("object" == typeof e && e) || Function("return this")() | |
}).call(e, t(33)) | |
}, function(e, t) { | |
e.exports = function(e) { | |
return "object" == typeof e ? null !== e : "function" == typeof e | |
} | |
}, function(e, t) { | |
var n = {}.hasOwnProperty; | |
e.exports = function(e, t) { | |
return n.call(e, t) | |
} | |
}, function(e, t, n) { | |
function r(e) { | |
return "function" == typeof e ? e : void 0 | |
} | |
var i = n(42), | |
a = n(22); | |
e.exports = function(e, t) { | |
return arguments.length < 2 ? r(i[e]) || r(a[e]) : i[e] && i[e][t] || a[e] && a[e][t] | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return u | |
}); | |
var d, i, r = n(0), | |
c = n(40), | |
a = n(11), | |
o = n.n(a), | |
s = n(5), | |
u = (d = [], (i = {}).reset = function() { | |
d = [] | |
}, i.addWinningBid = function(t) { | |
var e = o()(d, function(e) { | |
return e.getAuctionId() === t.auctionId | |
}); | |
e ? (t.status = s.BID_STATUS.RENDERED, e.addWinningBid(t)) : Object(r.logWarn)("Auction not found when adding winning bid") | |
}, i.getAllWinningBids = function() { | |
return d.map(function(e) { | |
return e.getWinningBids() | |
}).reduce(r.flatten, []) | |
}, i.getBidsRequested = function() { | |
return d.map(function(e) { | |
return e.getBidRequests() | |
}).reduce(r.flatten, []) | |
}, i.getNoBids = function() { | |
return d.map(function(e) { | |
return e.getNoBids() | |
}).reduce(r.flatten, []) | |
}, i.getBidsReceived = function() { | |
return d.map(function(e) { | |
if (e.getAuctionStatus() === c.a) return e.getBidsReceived() | |
}).reduce(r.flatten, []).filter(function(e) { | |
return e | |
}) | |
}, i.getAdUnits = function() { | |
return d.map(function(e) { | |
return e.getAdUnits() | |
}).reduce(r.flatten, []) | |
}, i.getAdUnitCodes = function() { | |
return d.map(function(e) { | |
return e.getAdUnitCodes() | |
}).reduce(r.flatten, []).filter(r.uniques) | |
}, i.createAuction = function(e) { | |
var t = e.adUnits, | |
n = e.adUnitCodes, | |
r = e.callback, | |
i = e.cbTimeout, | |
a = e.labels, | |
o = e.auctionId, | |
s = Object(c.k)({ | |
adUnits: t, | |
adUnitCodes: n, | |
callback: r, | |
cbTimeout: i, | |
labels: a, | |
auctionId: o | |
}); | |
return d.push(s), s | |
}, i.findBidByAdId = function(t) { | |
return o()(d.map(function(e) { | |
return e.getBidsReceived() | |
}).reduce(r.flatten, []), function(e) { | |
return e.adId === t | |
}) | |
}, i.getStandardBidderAdServerTargeting = function() { | |
return Object(c.j)()[s.JSON_MAPPING.ADSERVER_TARGETING] | |
}, i.setStatusForBids = function(e, t) { | |
var n, r = i.findBidByAdId(e); | |
r && (r.status = t), !r || t !== s.BID_STATUS.BID_TARGETING_SET || (n = o()(d, function(e) { | |
return e.getAuctionId() === r.auctionId | |
})) && n.setBidTargeting(r) | |
}, i.getLastAuctionId = function() { | |
return d.length && d[d.length - 1].getAuctionId() | |
}, i) | |
}, function(e, t, n) { | |
var r = n(28); | |
e.exports = !r(function() { | |
return 7 != Object.defineProperty({}, 1, { | |
get: function() { | |
return 7 | |
} | |
})[1] | |
}) | |
}, function(e, t) { | |
e.exports = function(e) { | |
try { | |
return !!e() | |
} catch (e) { | |
return !0 | |
} | |
} | |
}, function(e, t, n) { | |
var r = n(27), | |
i = n(31), | |
a = n(46); | |
e.exports = r ? function(e, t, n) { | |
return i.f(e, t, a(1, n)) | |
} : function(e, t, n) { | |
return e[t] = n, e | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
t.a = r, n.d(t, "b", function() { | |
return i | |
}); | |
var o = n(0); | |
function s() { | |
return (s = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
function r(a) { | |
return function() { | |
try { | |
var e, t = function() { | |
var e = function() { | |
var e, t = []; | |
do { | |
try { | |
e = e ? e.parent : a; | |
try { | |
var n = e == a.top, | |
r = { | |
referrer: e.document.referrer || null, | |
location: e.location.href || null, | |
isTop: n | |
}; | |
n && (r = s(r, { | |
canonicalUrl: function(e) { | |
try { | |
var t = e.querySelector("link[rel='canonical']"); | |
if (null !== t) return t.href | |
} catch (e) {} | |
return null | |
}(e.document) | |
})), t.push(r) | |
} catch (n) { | |
t.push({ | |
referrer: null, | |
location: null, | |
isTop: e == a.top | |
}), Object(o.logWarn)("Trying to access cross domain iframe. Continuing without referrer and location") | |
} | |
} catch (n) { | |
return t.push({ | |
referrer: null, | |
location: null, | |
isTop: !1 | |
}), t | |
} | |
} while (e != a.top); | |
return t | |
}(), | |
t = function() { | |
try { | |
if (!a.location.ancestorOrigins) return; | |
return a.location.ancestorOrigins | |
} catch (e) {} | |
}(); | |
if (t) | |
for (var n = 0, r = t.length; n < r; n++) e[n].ancestor = t[n]; | |
return e | |
}(), | |
n = t.length - 1, | |
r = null !== t[n].location || 0 < n && null !== t[n - 1].referrer, | |
i = function(e) { | |
for (var t, n = [], r = null, i = null, a = null, o = null, s = null, d = e.length - 1; 0 <= d; d--) { | |
try { | |
i = e[d].location | |
} catch (e) {} | |
if (i) n.push(i), s = s || i; | |
else if (0 !== d) { | |
t = e[d - 1]; | |
try { | |
a = t.referrer, o = t.ancestor | |
} catch (e) {} | |
a ? (n.push(a), s = s || a) : o ? (n.push(o), s = s || o) : n.push(r) | |
} else n.push(r) | |
} | |
return { | |
stack: n, | |
detectedRefererUrl: s | |
} | |
}(t); | |
return t[t.length - 1].canonicalUrl && (e = t[t.length - 1].canonicalUrl), { | |
referer: i.detectedRefererUrl, | |
reachedTop: r, | |
numIframes: n, | |
stack: i.stack, | |
canonicalUrl: e | |
} | |
} catch (e) {} | |
} | |
} | |
var i = r(window) | |
}, function(e, t, n) { | |
var r = n(27), | |
i = n(74), | |
a = n(15), | |
o = n(55), | |
s = Object.defineProperty; | |
t.f = r ? s : function(e, t, n) { | |
if (a(e), t = o(t, !0), a(n), i) try { | |
return s(e, t, n) | |
} catch (e) {} | |
if ("get" in n || "set" in n) throw TypeError("Accessors not supported"); | |
return "value" in n && (e[t] = n.value), e | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
t.a = function(e, t) { | |
return new r(e, t) | |
}; | |
var i = n(0); | |
function r(e, t) { | |
var n = t && t.src || "client", | |
r = e || 0; | |
this.bidderCode = t && t.bidder || "", this.width = 0, this.height = 0, this.statusMessage = function() { | |
switch (r) { | |
case 0: | |
return "Pending"; | |
case 1: | |
return "Bid available"; | |
case 2: | |
return "Bid returned empty or error response"; | |
case 3: | |
return "Bid timed out" | |
} | |
}(), this.adId = i.getUniqueIdentifierStr(), this.requestId = t && t.bidId, this.mediaType = "banner", this.source = n, this.getStatusCode = function() { | |
return r | |
}, this.getSize = function() { | |
return this.width + "x" + this.height | |
} | |
} | |
}, function(e, t) { | |
var n = function() { | |
return this | |
}(); | |
try { | |
n = n || Function("return this")() || (0, eval)("this") | |
} catch (e) { | |
"object" == typeof window && (n = window) | |
} | |
e.exports = n | |
}, function(e, t, n) { | |
var r = n(16), | |
i = n(91); | |
e.exports = r ? i : function(e) { | |
return Set.prototype.values.call(e) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "e", function() { | |
return a | |
}), n.d(t, "a", function() { | |
return c | |
}), t.g = function(e) { | |
return e && e.type && ((t = e.type) && s()(Object.keys(u), t) || (Object(o.logError)("".concat(t, " nativeParam is not supported")), 0)) ? u[e.type] : e; | |
var t | |
}, t.f = function(t, e) { | |
var n = Object(o.getBidRequest)(t.requestId, e); | |
if (!n) return !1; | |
if (!Object(o.deepAccess)(t, "native.clickUrl")) return !1; | |
if (Object(o.deepAccess)(t, "native.image") && (!Object(o.deepAccess)(t, "native.image.height") || !Object(o.deepAccess)(t, "native.image.width"))) return !1; | |
if (Object(o.deepAccess)(t, "native.icon") && (!Object(o.deepAccess)(t, "native.icon.height") || !Object(o.deepAccess)(t, "native.icon.width"))) return !1; | |
var r = n.nativeParams; | |
if (!r) return !0; | |
var i = Object.keys(r).filter(function(e) { | |
return r[e].required | |
}), | |
a = Object.keys(t.native).filter(function(e) { | |
return t.native[e] | |
}); | |
return i.every(function(e) { | |
return s()(a, e) | |
}) | |
}, t.b = function(e, t) { | |
var n; | |
return "click" === e.action ? n = t.native && t.native.clickTrackers : (n = t.native && t.native.impressionTrackers, t.native && t.native.javascriptTrackers && Object(o.insertHtmlIntoIframe)(t.native.javascriptTrackers)), (n || []).forEach(o.triggerPixel), e.action | |
}, t.d = function(r, i) { | |
var a = {}; | |
return Object.keys(r.native).forEach(function(e) { | |
var t = d.NATIVE_KEYS[e], | |
n = p(r.native[e]); | |
Object(o.deepAccess)(i, "mediaTypes.native.".concat(e, ".sendId")) && (n = "".concat(t, ":").concat(r.adId)), t && n && (a[t] = n) | |
}), a | |
}, t.c = function(e, r) { | |
var i = { | |
message: "assetResponse", | |
adId: e.adId, | |
assets: [] | |
}; | |
return e.assets.forEach(function(e) { | |
var t = Object(o.getKeyByValue)(d.NATIVE_KEYS, e), | |
n = p(r.native[t]); | |
i.assets.push({ | |
key: t, | |
value: n | |
}) | |
}), i | |
}; | |
var o = n(0), | |
r = n(12), | |
s = n.n(r); | |
function i(e) { | |
return (i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { | |
return typeof e | |
} : function(e) { | |
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e | |
})(e) | |
} | |
var d = n(5), | |
a = [], | |
c = Object.keys(d.NATIVE_KEYS).map(function(e) { | |
return d.NATIVE_KEYS[e] | |
}), | |
u = { | |
image: { | |
image: { | |
required: !0 | |
}, | |
title: { | |
required: !0 | |
}, | |
sponsoredBy: { | |
required: !0 | |
}, | |
clickUrl: { | |
required: !0 | |
}, | |
body: { | |
required: !1 | |
}, | |
icon: { | |
required: !1 | |
} | |
} | |
}; | |
function p(e) { | |
return "object" === i(e) && e.url ? e.url : e | |
} | |
}, function(e, t) { | |
e.exports = {} | |
}, function(e, t, n) { | |
var i = n(15), | |
a = n(18), | |
o = n(19)("species"); | |
e.exports = function(e, t) { | |
var n, r = i(e).constructor; | |
return void 0 === r || null == (n = i(r)[o]) ? t : a(n) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "b", function() { | |
return s | |
}), n.d(t, "a", function() { | |
return d | |
}), t.d = function(e, t) { | |
var n = Object(a.getBidRequest)(e.requestId, t), | |
r = n && Object(a.deepAccess)(n, "mediaTypes.video"), | |
i = r && Object(a.deepAccess)(r, "context"); | |
return c(e, n, r, i) | |
}, n.d(t, "c", function() { | |
return c | |
}), n(7); | |
var a = n(0), | |
i = n(3), | |
r = n(12), | |
o = (n.n(r), n(13)), | |
s = "outstream", | |
d = "instream", | |
c = Object(o.b)("sync", function(e, t, n, r) { | |
return !t || n && r !== s ? i.b.getConfig("cache.url") || !e.vastXml || e.vastUrl ? !(!e.vastUrl && !e.vastXml) : (Object(a.logError)('\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\n Try enabling prebid cache with vmpbjs.setConfig({ cache: {url: "..."} });\n '), !1) : r !== s || !(!e.renderer && !t.renderer) | |
}, "checkVideoBidSetup") | |
}, function(e, t, n) { | |
"use strict"; | |
t.a = function(t, e, n) { | |
var r, i, a; | |
if (e && t) { | |
if (o()(c, e)) return d[t] ? (n && "function" == typeof n && (d[t].loaded ? n() : d[t].callbacks.push(n)), d[t].tag) : (d[t] = { | |
loaded: !1, | |
tag: null, | |
callbacks: [] | |
}, n && "function" == typeof n && d[t].callbacks.push(n), s.logWarn("module ".concat(e, " is loading external JavaScript")), r = t, i = function() { | |
d[t].loaded = !0; | |
try { | |
for (var e = 0; e < d[t].callbacks.length; e++) d[t].callbacks[e]() | |
} catch (e) { | |
s.logError("Error executing callback", "adloader.js:loadExternalScript", e) | |
} | |
}, (a = document.createElement("script")).type = "text/javascript", a.async = !0, (d[t].tag = a).readyState ? a.onreadystatechange = function() { | |
"loaded" !== a.readyState && "complete" !== a.readyState || (a.onreadystatechange = null, i()) | |
} : a.onload = function() { | |
i() | |
}, a.src = r, s.insertElement(a), a); | |
s.logError("".concat(e, " not whitelisted for loading external JavaScript")) | |
} else s.logError("cannot load external script without url and moduleCode") | |
}; | |
var r = n(12), | |
o = n.n(r), | |
s = n(0), | |
d = {}, | |
c = ["criteo", "outstream", "adagio", "browsi"] | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "b", function() { | |
return V | |
}), n.d(t, "a", function() { | |
return L | |
}), t.k = function(e) { | |
var t, i, g, h, a = e.adUnits, | |
n = e.adUnitCodes, | |
r = e.callback, | |
o = e.cbTimeout, | |
s = e.labels, | |
d = e.auctionId, | |
b = a, | |
c = s, | |
u = n, | |
p = [], | |
l = [], | |
f = [], | |
m = d || N.generateUUID(), | |
y = r, | |
v = o, | |
w = [], | |
I = new Set; | |
function T() { | |
return { | |
auctionId: m, | |
timestamp: t, | |
auctionEnd: i, | |
auctionStatus: g, | |
adUnits: b, | |
adUnitCodes: u, | |
labels: c, | |
bidderRequests: p, | |
noBids: f, | |
bidsReceived: l, | |
winningBids: w, | |
timeout: v | |
} | |
} | |
function S(n, e) { | |
var r, t; | |
e && clearTimeout(h), void 0 === i && (r = [], n && (N.logMessage("Auction ".concat(m, " timedOut")), t = I, (r = p.map(function(e) { | |
return (e.bids || []).filter(function(e) { | |
return !t.has(e.bidder) | |
}) | |
}).reduce(E.flatten, []).map(function(e) { | |
return { | |
bidId: e.bidId, | |
bidder: e.bidder, | |
adUnitCode: e.adUnitCode, | |
auctionId: e.auctionId | |
} | |
})).length && q.emit(z.EVENTS.BID_TIMEOUT, r)), g = L, i = Date.now(), q.emit(z.EVENTS.AUCTION_END, T()), $(b, function() { | |
try { | |
var e; | |
null != y && (e = l.filter(N.bind.call(E.adUnitsFilter, this, u)).reduce(Z, {}), y.apply(vmpbjs, [e, n, m]), y = null) | |
} catch (e) { | |
N.logError("Error executing bidsBackHandler", null, e) | |
} finally { | |
r.length && B.callTimedOutBidders(a, r, v); | |
var t = C.b.getConfig("userSync") || {}; | |
t.enableOverride || U(t.syncDelay) | |
} | |
})) | |
} | |
function k() { | |
N.logInfo("Bids Received for Auction with id: ".concat(m), l), g = L, S(!1, !0) | |
} | |
function j(e) { | |
I.add(e) | |
} | |
function A(o) { | |
var s = this; | |
o.forEach(function(e) { | |
p = p.concat(e) | |
}); | |
var d = {}, | |
e = { | |
bidRequests: o, | |
run: function() { | |
var e = S.bind(null, !0), | |
t = setTimeout(e, v); | |
h = t, g = V, q.emit(z.EVENTS.AUCTION_INIT, T()); | |
var n, p, l, r, i, f, a = (n = k, p = s, l = 0, r = !1, i = new Set, f = {}, { | |
addBidResponse: function(e, t) { | |
f[t.requestId] = !0, l++; | |
var n, r, i, a, o, s, d, c, u = function(e) { | |
var t = e.adUnitCode, | |
n = e.bid, | |
r = e.bidderRequest, | |
i = e.auctionId, | |
a = r.start, | |
o = P({}, n, { | |
auctionId: i, | |
responseTimestamp: Object(E.timestamp)(), | |
requestTimestamp: a, | |
cpm: parseFloat(n.cpm) || 0, | |
bidder: n.bidderCode, | |
adUnitCode: t | |
}); | |
o.timeToRespond = o.responseTimestamp - o.requestTimestamp, q.emit(z.EVENTS.BID_ADJUSTMENT, o); | |
var s = r.bids && x()(r.bids, function(e) { | |
return e.adUnitCode == t | |
}), | |
d = s && s.renderer; | |
d && d.url && (o.renderer = _.a.install({ | |
url: d.url | |
}), o.renderer.setRender(d.render)); | |
var c = Q(n.mediaType, s, C.b.getConfig("mediaTypePriceGranularity")), | |
u = Object(O.a)(o.cpm, "object" === D(c) ? c : C.b.getConfig("customPriceBucket"), C.b.getConfig("currency.granularityMultiplier")); | |
return o.pbLg = u.low, o.pbMg = u.med, o.pbHg = u.high, o.pbAg = u.auto, o.pbDg = u.dense, o.pbCg = u.custom, o | |
}({ | |
adUnitCode: e, | |
bid: t, | |
bidderRequest: this, | |
auctionId: p.getAuctionId() | |
}); | |
"video" === u.mediaType ? (n = p, r = u, i = this, a = m, o = !0, s = Object(E.getBidRequest)(r.requestId, [i]), d = s && Object(E.deepAccess)(s, "mediaTypes.video"), c = d && Object(E.deepAccess)(d, "context"), C.b.getConfig("cache.url") && c !== R.b && (r.videoCacheKey ? r.vastUrl || (N.logError("videoCacheKey specified but not required vastUrl for video bid"), o = !1) : (o = !1, X(n, r, a, s))), o && (K(n, r), a())) : (K(p, u), m()) | |
}, | |
adapterDone: function() { | |
i.add(this), r = p.getBidRequests().every(function(e) { | |
return i.has(e) | |
}), this.bids.forEach(function(e) { | |
f[e.bidId] || (p.addNoBid(e), q.emit(z.EVENTS.NO_BID, e)) | |
}), r && 0 === l && n() | |
} | |
}); | |
function m() { | |
l--, r && 0 === l && n() | |
} | |
B.callBids(b, o, function() { | |
for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; | |
J.apply({ | |
dispatch: a.addBidResponse, | |
bidderRequest: this | |
}, t) | |
}, a.adapterDone, { | |
request: function(e, t) { | |
u(W, t), u(d, e), G[e] || (G[e] = { | |
SRA: !0, | |
origin: t | |
}), 1 < d[e] && (G[e].SRA = !1) | |
}, | |
done: function(e) { | |
W[e]--, H[0] && c(H[0]) && H.shift() | |
} | |
}, v, j) | |
} | |
}; | |
function c(e) { | |
var r = !0, | |
i = C.b.getConfig("maxRequestsPerOrigin") || F; | |
return e.bidRequests.some(function(e) { | |
var t = 1, | |
n = void 0 !== e.src && e.src === z.S2S.SRC ? "s2s" : e.bidderCode; | |
return G[n] && (!1 === G[n].SRA && (t = Math.min(e.bids.length, i)), W[G[n].origin] + t > i && (r = !1)), !r | |
}), r && e.run(), r | |
} | |
function u(e, t) { | |
void 0 === e[t] ? e[t] = 1 : e[t]++ | |
} | |
c(e) || (N.logWarn("queueing auction due to limited endpoint capacity"), H.push(e)) | |
} | |
return { | |
addBidReceived: function(e) { | |
l = l.concat(e) | |
}, | |
addNoBid: function(e) { | |
f = f.concat(e) | |
}, | |
executeCallback: S, | |
callBids: function() { | |
g = M, t = Date.now(); | |
var e = B.makeBidRequests(b, t, m, v, c); | |
N.logInfo("Bids Requested for Auction with id: ".concat(m), e), e.length < 1 ? (N.logWarn("No valid bid requests returned for auction"), k()) : Y.call({ | |
dispatch: A, | |
context: this | |
}, e) | |
}, | |
addWinningBid: function(e) { | |
w = w.concat(e), B.callBidWonBidder(e.bidder, e, a) | |
}, | |
setBidTargeting: function(e) { | |
B.callSetTargetingBidder(e.bidder, e) | |
}, | |
getWinningBids: function() { | |
return w | |
}, | |
getTimeout: function() { | |
return v | |
}, | |
getAuctionId: function() { | |
return m | |
}, | |
getAuctionStatus: function() { | |
return g | |
}, | |
getAdUnits: function() { | |
return b | |
}, | |
getAdUnitCodes: function() { | |
return u | |
}, | |
getBidRequests: function() { | |
return p | |
}, | |
getBidsReceived: function() { | |
return l | |
}, | |
getNoBids: function() { | |
return f | |
} | |
} | |
}, n.d(t, "c", function() { | |
return J | |
}), n.d(t, "e", function() { | |
return Y | |
}), t.g = c, t.d = K, n.d(t, "f", function() { | |
return X | |
}), n.d(t, "i", function() { | |
return u | |
}), n.d(t, "h", function() { | |
return p | |
}), t.j = l; | |
var E = n(0), | |
O = n(45), | |
d = n(35), | |
a = n(102), | |
_ = n(10), | |
C = n(3), | |
r = n(44), | |
i = n(13), | |
o = n(11), | |
x = n.n(o), | |
R = n(38), | |
s = n(2); | |
function D(e) { | |
return (D = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { | |
return typeof e | |
} : function(e) { | |
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e | |
})(e) | |
} | |
function P() { | |
return (P = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
var U = r.a.syncUsers, | |
N = n(0), | |
B = n(7).default, | |
q = n(8), | |
z = n(5), | |
M = "started", | |
V = "inProgress", | |
L = "completed"; | |
q.on(z.EVENTS.BID_ADJUSTMENT, function(e) { | |
! function(e) { | |
var t, n = e.bidderCode, | |
r = e.cpm; | |
if (vmpbjs.bidderSettings && (n && vmpbjs.bidderSettings[n] && "function" == typeof vmpbjs.bidderSettings[n].bidCpmAdjustment ? t = vmpbjs.bidderSettings[n].bidCpmAdjustment : vmpbjs.bidderSettings[z.JSON_MAPPING.BD_SETTING_STANDARD] && "function" == typeof vmpbjs.bidderSettings[z.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment && (t = vmpbjs.bidderSettings[z.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment), t)) try { | |
r = t(e.cpm, P({}, e)) | |
} catch (e) { | |
N.logError("Error during bid adjustment", "bidmanager.js", e) | |
} | |
0 <= r && (e.cpm = r) | |
}(e) | |
}); | |
var F = 4, | |
W = {}, | |
G = {}, | |
H = [], | |
J = Object(i.b)("async", function(e, t) { | |
this.dispatch.call(this.bidderRequest, e, t) | |
}, "addBidResponse"), | |
Y = Object(i.b)("sync", function(e) { | |
this.dispatch.call(this.context, e) | |
}, "addBidderRequests"), | |
$ = Object(i.b)("async", function(e, t) { | |
t && t() | |
}, "bidsBackCallback"); | |
function c(e, t) { | |
t.timeToRespond > e.getTimeout() + C.b.getConfig("timeoutBuffer") && e.executeCallback(!0) | |
} | |
function K(e, t) { | |
var n, r, i, a, o = e.getBidRequests(), | |
s = x()(o, function(e) { | |
return e.bidderCode === t.bidderCode | |
}); | |
r = s, (n = t).bidderCode && (0 < n.cpm || n.dealId) && (a = x()(r.bids, function(e) { | |
return e.adUnitCode === n.adUnitCode | |
}), i = function(e, t, n) { | |
if (!t) return {}; | |
var r = {}, | |
i = vmpbjs.bidderSettings; | |
return i && (f(r, l(t.mediaType, e, n), t), e && i[e] && i[e][z.JSON_MAPPING.ADSERVER_TARGETING] && (f(r, i[e], t), t.sendStandardTargeting = i[e].sendStandardTargeting)), t.native && (r = P({}, r, Object(d.d)(t, n))), r | |
}(n.bidderCode, n, a)), n.adserverTargeting = P(n.adserverTargeting || {}, i), q.emit(z.EVENTS.BID_RESPONSE, t), e.addBidReceived(t), c(e, t) | |
} | |
var X = Object(i.b)("async", function(n, r, i, e) { | |
Object(a.b)([r], function(e, t) { | |
e ? (N.logWarn("Failed to save to the video cache: ".concat(e, ". Video bid must be discarded.")), c(n, r)) : "" === t[0].uuid ? (N.logWarn("Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded."), c(n, r)) : (r.videoCacheKey = t[0].uuid, r.vastUrl || (r.vastUrl = Object(a.a)(r.videoCacheKey)), K(n, r), i()) | |
}, e) | |
}, "callPrebidCache"); | |
function Q(e, t, n) { | |
if (e && n) { | |
if (e === s.d) { | |
var r = Object(E.deepAccess)(t, "mediaTypes.".concat(s.d, ".context"), "instream"); | |
if (n["".concat(s.d, "-").concat(r)]) return n["".concat(s.d, "-").concat(r)] | |
} | |
return n[e] | |
} | |
} | |
var u = function(e, t) { | |
var n = Q(e, t, C.b.getConfig("mediaTypePriceGranularity")); | |
return "string" == typeof e && n ? "string" == typeof n ? n : "custom" : C.b.getConfig("priceGranularity") | |
}, | |
p = function(t) { | |
return function(e) { | |
return t === z.GRANULARITY_OPTIONS.AUTO ? e.pbAg : t === z.GRANULARITY_OPTIONS.DENSE ? e.pbDg : t === z.GRANULARITY_OPTIONS.LOW ? e.pbLg : t === z.GRANULARITY_OPTIONS.MEDIUM ? e.pbMg : t === z.GRANULARITY_OPTIONS.HIGH ? e.pbHg : t === z.GRANULARITY_OPTIONS.CUSTOM ? e.pbCg : void 0 | |
} | |
}; | |
function l(e, t, n) { | |
function r(e, t) { | |
return { | |
key: e, | |
val: "function" == typeof t ? function(e) { | |
return t(e) | |
} : function(e) { | |
return Object(E.getValue)(e, t) | |
} | |
} | |
} | |
var i, a, o = z.TARGETING_KEYS, | |
s = u(e, n), | |
d = vmpbjs.bidderSettings; | |
return d[z.JSON_MAPPING.BD_SETTING_STANDARD] || (d[z.JSON_MAPPING.BD_SETTING_STANDARD] = {}), d[z.JSON_MAPPING.BD_SETTING_STANDARD][z.JSON_MAPPING.ADSERVER_TARGETING] || (d[z.JSON_MAPPING.BD_SETTING_STANDARD][z.JSON_MAPPING.ADSERVER_TARGETING] = [r(o.BIDDER, "bidderCode"), r(o.AD_ID, "adId"), r(o.PRICE_BUCKET, p(s)), r(o.SIZE, "size"), r(o.DEAL, "dealId"), r(o.SOURCE, "source"), r(o.FORMAT, "mediaType")]), "video" === e && (i = d[z.JSON_MAPPING.BD_SETTING_STANDARD][z.JSON_MAPPING.ADSERVER_TARGETING], [o.UUID, o.CACHE_ID].forEach(function(t) { | |
void 0 === x()(i, function(e) { | |
return e.key === t | |
}) && i.push(r(t, "videoCacheKey")) | |
}), !C.b.getConfig("cache.url") || t && !1 === N.deepAccess(d, "".concat(t, ".sendStandardTargeting")) || (a = Object(E.parseUrl)(C.b.getConfig("cache.url")), void 0 === x()(i, function(e) { | |
return e.key === o.CACHE_HOST | |
}) && i.push(r(o.CACHE_HOST, function(e) { | |
return N.deepAccess(e, "adserverTargeting.".concat(o.CACHE_HOST)) ? e.adserverTargeting[o.CACHE_HOST] : a.hostname | |
})))), d[z.JSON_MAPPING.BD_SETTING_STANDARD] | |
} | |
function f(r, i, a) { | |
var e = i[z.JSON_MAPPING.ADSERVER_TARGETING]; | |
return a.size = a.getSize(), N._each(e, function(e) { | |
var t = e.key, | |
n = e.val; | |
if (r[t] && N.logWarn("The key: " + t + " is getting ovewritten"), N.isFn(n)) try { | |
n = n(a) | |
} catch (e) { | |
N.logError("bidmanager", "ERROR", e) | |
}(void 0 === i.suppressEmptyKeys || !0 !== i.suppressEmptyKeys) && t !== z.TARGETING_KEYS.DEAL || !N.isEmptyStr(n) && null != n ? r[t] = n : N.logInfo("suppressing empty key '" + t + "' from adserver targeting") | |
}), r | |
} | |
function Z(e, t) { | |
return e[t.adUnitCode] || (e[t.adUnitCode] = { | |
bids: [] | |
}), e[t.adUnitCode].bids.push(t), e | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return f | |
}); | |
var g = n(0), | |
h = n(3), | |
b = n(35), | |
r = n(26), | |
i = n(101), | |
a = n(2), | |
o = n(12), | |
y = n.n(o); | |
function v() { | |
return (v = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
function w(e, t, n) { | |
return t in e ? Object.defineProperty(e, t, { | |
value: n, | |
enumerable: !0, | |
configurable: !0, | |
writable: !0 | |
}) : e[t] = n, e | |
} | |
function I(e) { | |
return function(e) { | |
if (Array.isArray(e)) return s(e) | |
}(e) || function(e) { | |
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) | |
}(e) || function(e) { | |
if (e) { | |
if ("string" == typeof e) return s(e, void 0); | |
var t = Object.prototype.toString.call(e).slice(8, -1); | |
return "Object" === t && e.constructor && (t = e.constructor.name), "Map" === t || "Set" === t ? Array.from(e) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? s(e, void 0) : void 0 | |
} | |
}(e) || function() { | |
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") | |
}() | |
} | |
function s(e, t) { | |
(null == t || t > e.length) && (t = e.length); | |
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; | |
return r | |
} | |
function d(e) { | |
return e.responseTimestamp + 1e3 * e.ttl + 1e3 > Object(g.timestamp)() | |
} | |
function c(e) { | |
return e && (e.status && !y()([T.BID_STATUS.RENDERED], e.status) || !e.status) | |
} | |
var u = n(0), | |
T = n(5), | |
S = [], | |
k = Object.keys(T.TARGETING_KEYS).map(function(e) { | |
return T.TARGETING_KEYS[e] | |
}); | |
function j(e, r, t) { | |
var i = 2 < arguments.length && void 0 !== t ? t : 0, | |
a = [], | |
o = h.b.getConfig("sendBidsControl.dealPrioritization"), | |
s = Object(g.groupBy)(e, "adUnitCode"); | |
return Object.keys(s).forEach(function(e) { | |
var t = [], | |
n = Object(g.groupBy)(s[e], "bidderCode"); | |
Object.keys(n).forEach(function(e) { | |
return t.push(n[e].reduce(r)) | |
}), 0 < i ? (t = o ? t(A(!0)) : t.sort(function(e, t) { | |
return t.cpm - e.cpm | |
}), a.push.apply(a, I(t.slice(0, i)))) : a.push.apply(a, I(t)) | |
}), a | |
} | |
function A(e) { | |
var n = 0 < arguments.length && void 0 !== e && e; | |
return function(e, t) { | |
return void 0 !== e.adUnitTargeting.hb_deal && void 0 === t.adUnitTargeting.hb_deal ? -1 : void 0 === e.adUnitTargeting.hb_deal && void 0 !== t.adUnitTargeting.hb_deal ? 1 : n ? t.cpm - e.cpm : t.adUnitTargeting.hb_pb - e.adUnitTargeting.hb_pb | |
} | |
} | |
var p, E, l, f = (p = r.a, l = {}, (E = {}).setLatestAuctionForAdUnit = function(e, t) { | |
l[e] = t | |
}, E.resetPresetTargeting = function(e, t) { | |
var n, i; | |
Object(g.isGptPubadsDefined)() && (n = _(e), i = p.getAdUnits().filter(function(e) { | |
return y()(n, e.code) | |
}), window.googletag.pubads().getSlots().forEach(function(n) { | |
var r = u.isFn(t) && t(n); | |
S.forEach(function(t) { | |
i.forEach(function(e) { | |
(e.code === n.getAdUnitPath() || e.code === n.getSlotElementId() || u.isFn(r) && r(e.code)) && n.setTargeting(t, null) | |
}) | |
}) | |
})) | |
}, E.resetPresetTargetingAST = function(e) { | |
_(e).forEach(function(e) { | |
var t, n, r = window.apntag.getTag(e); | |
r && r.keywords && (t = Object.keys(r.keywords), n = {}, t.forEach(function(e) { | |
y()(S, e.toLowerCase()) || (n[e] = r.keywords[e]) | |
}), window.apntag.modifyTag(e, { | |
keywords: n | |
})) | |
}) | |
}, E.getAllTargeting = function(e) { | |
var n, t, r, i, a, o, s, d = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : C(), | |
c = _(e), | |
u = (o = E.getWinningBids(c, d), s = x(), (o = o.map(function(a) { | |
return w({}, a.adUnitCode, Object.keys(a.adserverTargeting).filter(function(e) { | |
return void 0 === a.sendStandardTargeting || a.sendStandardTargeting || -1 === s.indexOf(e) | |
}).reduce(function(e, t) { | |
var n = [a.adserverTargeting[t]], | |
r = w({}, t.substring(0, 20), n); | |
if (t !== T.TARGETING_KEYS.DEAL) return [].concat(I(e), [r]); | |
var i = w({}, "".concat(t, "_").concat(a.bidderCode).substring(0, 20), n); | |
return [].concat(I(e), [r, i]) | |
}, [])) | |
})).concat((a = c, d.filter(function(e) { | |
return y()(a, e.adUnitCode) | |
}).map(function(e) { | |
return v({}, e) | |
}).reduce(R, []).map(D).filter(function(e) { | |
return e | |
}))).concat(h.b.getConfig("enableSendAllBids") ? (n = c, t = d, r = k.concat(b.a), i = h.b.getConfig("sendBidsControl.bidLimit"), j(t, g.getHighestCpm, i).map(function(t) { | |
if (O(t, n)) return w({}, t.adUnitCode, P(t, r.filter(function(e) { | |
return void 0 !== t.adserverTargeting[e] | |
}))) | |
}).filter(function(e) { | |
return e | |
})) : function(e, t) { | |
if (!0 !== h.b.getConfig("targetingControls.alwaysIncludeDeals")) return []; | |
var n = k.concat(b.a); | |
return j(t, g.getHighestCpm).map(function(t) { | |
if (t.dealId && O(t, e)) return w({}, t.adUnitCode, P(t, n.filter(function(e) { | |
return void 0 !== t.adserverTargeting[e] | |
}))) | |
}).filter(function(e) { | |
return e | |
}) | |
}(c, d))); | |
u.map(function(t) { | |
Object.keys(t).map(function(e) { | |
t[e].map(function(e) { | |
-1 === S.indexOf(Object.keys(e)[0]) && (S = Object.keys(e).concat(S)) | |
}) | |
}) | |
}), u = u.map(function(e) { | |
return w({}, Object.keys(e)[0], e[Object.keys(e)[0]].map(function(e) { | |
return w({}, Object.keys(e)[0], e[Object.keys(e)[0]].join(", ")) | |
}).reduce(function(e, t) { | |
return v(t, e) | |
}, {})) | |
}).reduce(function(e, t) { | |
var n = Object.keys(t)[0]; | |
return e[n] = v({}, e[n], t[n]), e | |
}, {}); | |
var p, l, f, m = h.b.getConfig("targetingControls.auctionKeyMaxChars"); | |
return m && (Object(g.logInfo)("Detected 'targetingControls.auctionKeyMaxChars' was active for this auction; set with a limit of ".concat(m, " characters. Running checks on auction keys...")), p = u, l = m, f = Object(g.deepClone)(p), u = Object.keys(f).map(function(e) { | |
return { | |
adUnitCode: e, | |
adUnitTargeting: f[e] | |
} | |
}).sort(A()).reduce(function(e, t, n, r) { | |
var i, a = (i = t.adUnitTargeting, Object.keys(i).reduce(function(e, t) { | |
return e + "".concat(t, "%3d").concat(encodeURIComponent(i[t]), "%26") | |
}, "")); | |
n + 1 === r.length && (a = a.slice(0, -3)); | |
var o = t.adUnitCode, | |
s = a.length; | |
return s <= l ? (l -= s, Object(g.logInfo)("AdUnit '".concat(o, "' auction keys comprised of ").concat(s, " characters. Deducted from running threshold; new limit is ").concat(l), f[o]), e[o] = f[o]) : Object(g.logWarn)("The following keys for adUnitCode '".concat(o, "' exceeded the current limit of the 'auctionKeyMaxChars' setting.\nThe key-set size was ").concat(s, ", the current allotted amount was ").concat(l, ".\n"), f[o]), n + 1 === r.length && 0 === Object.keys(e).length && Object(g.logError)("No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting."), e | |
}, {})), c.forEach(function(e) { | |
u[e] || (u[e] = {}) | |
}), u | |
}, E.setTargetingForGPT = function(i, e) { | |
window.googletag.pubads().getSlots().forEach(function(r) { | |
Object.keys(i).filter((e || Object(g.isAdUnitCodeMatchingSlot))(r)).forEach(function(n) { | |
return Object.keys(i[n]).forEach(function(t) { | |
var e = i[n][t].split(","); | |
(e = 1 < e.length ? [e] : e).map(function(e) { | |
return u.logMessage("Attempting to set key value for slot: ".concat(r.getSlotElementId(), " key: ").concat(t, " value: ").concat(e)), e | |
}).forEach(function(e) { | |
r.setTargeting(t, e) | |
}) | |
}) | |
}) | |
}) | |
}, E.getWinningBids = function(e) { | |
var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : C(), | |
t = _(e); | |
return n.filter(function(e) { | |
return y()(t, e.adUnitCode) | |
}).filter(function(e) { | |
return 0 < e.cpm | |
}).map(function(e) { | |
return e.adUnitCode | |
}).filter(g.uniques).map(function(t) { | |
return n.filter(function(e) { | |
return e.adUnitCode === t ? e : null | |
}).reduce(g.getHighestCpm) | |
}) | |
}, E.setTargetingForAst = function(e) { | |
var r = E.getAllTargeting(e); | |
try { | |
E.resetPresetTargetingAST(e) | |
} catch (e) { | |
u.logError("unable to reset targeting for AST" + e) | |
} | |
Object.keys(r).forEach(function(n) { | |
return Object.keys(r[n]).forEach(function(e) { | |
var t; | |
u.logMessage("Attempting to set targeting for targetId: ".concat(n, " key: ").concat(e, " value: ").concat(r[n][e])), (u.isStr(r[n][e]) || u.isArray(r[n][e])) && (t = {}, e.search(/pt[0-9]/) < 0 ? t[e.toUpperCase()] = r[n][e] : t[e] = r[n][e], window.apntag.setKeywords(n, t, { | |
overrideKeyValue: !0 | |
})) | |
}) | |
}) | |
}, E.isApntagDefined = function() { | |
if (window.apntag && u.isFn(window.apntag.setKeywords)) return !0 | |
}, E); | |
function O(e, t) { | |
return e.adserverTargeting && t && (u.isArray(t) && y()(t, e.adUnitCode) || "string" == typeof t && e.adUnitCode === t) | |
} | |
function _(e) { | |
return "string" == typeof e ? [e] : u.isArray(e) ? e : p.getAdUnitCodes() || [] | |
} | |
function C() { | |
var e = p.getBidsReceived(); | |
return h.b.getConfig("useBidCache") || (e = e.filter(function(e) { | |
return l[e.adUnitCode] === e.auctionId | |
})), j(e = e.filter(function(e) { | |
return Object(g.deepAccess)(e, "video.context") !== a.a | |
}).filter(function(e) { | |
return "banner" !== e.mediaType || Object(i.c)([e.width, e.height]) | |
}).filter(c).filter(d), g.getOldestHighestCpmBid) | |
} | |
function x() { | |
return p.getStandardBidderAdServerTargeting().map(function(e) { | |
return e.key | |
}).concat(k).filter(g.uniques) | |
} | |
function R(r, i, e, t) { | |
return Object.keys(i.adserverTargeting).filter(m()).forEach(function(e) { | |
var t, n; | |
r.length && r.filter((n = e, function(e) { | |
return e.adUnitCode === i.adUnitCode && e.adserverTargeting[n] | |
})).forEach((t = e, function(e) { | |
u.isArray(e.adserverTargeting[t]) || (e.adserverTargeting[t] = [e.adserverTargeting[t]]), e.adserverTargeting[t] = e.adserverTargeting[t].concat(i.adserverTargeting[t]).filter(g.uniques), delete i.adserverTargeting[t] | |
})) | |
}), r.push(i), r | |
} | |
function m() { | |
var t = x().concat(b.a); | |
return function(e) { | |
return -1 === t.indexOf(e) | |
} | |
} | |
function D(t) { | |
return w({}, t.adUnitCode, Object.keys(t.adserverTargeting).filter(m()).map(function(e) { | |
return w({}, e.substring(0, 20), [t.adserverTargeting[e]]) | |
})) | |
} | |
function P(t, e) { | |
return e.map(function(e) { | |
return w({}, "".concat(e, "_").concat(t.bidderCode).substring(0, 20), [t.adserverTargeting[e]]) | |
}) | |
} | |
}, function(e, t) { | |
e.exports = {} | |
}, function(e, t, n) { | |
"use strict"; | |
function r(e, t) { | |
var n = 2 < arguments.length ? arguments[2] : {}, | |
r = c(t); | |
u && (r = l.call(r, Object.getOwnPropertySymbols(t))); | |
for (var i, a, o, s, d = 0; d < r.length; d += 1) i = e, a = r[d], o = t[r[d]], s = n[r[d]], a in i && ("function" != typeof s || "[object Function]" !== p.call(s) || !s()) || (m ? f(i, a, { | |
configurable: !0, | |
enumerable: !1, | |
value: o, | |
writable: !0 | |
}) : i[a] = o) | |
} | |
var c = n(93), | |
u = "function" == typeof Symbol && "symbol" == typeof Symbol("foo"), | |
p = Object.prototype.toString, | |
l = Array.prototype.concat, | |
f = Object.defineProperty, | |
m = f && function() { | |
var e = {}; | |
try { | |
for (var t in f(e, "x", { | |
enumerable: !1, | |
value: e | |
}), e) return !1; | |
return e.x === e | |
} catch (e) { | |
return !1 | |
} | |
}(); | |
r.supportsDescriptors = !!m, e.exports = r | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return w | |
}); | |
var o = n(0), | |
r = n(3), | |
i = n(12), | |
a = n.n(i), | |
s = n(9); | |
function d(e, t) { | |
return function(e) { | |
if (Array.isArray(e)) return e | |
}(e) || function(e, t) { | |
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) { | |
var n = [], | |
r = !0, | |
i = !1, | |
a = void 0; | |
try { | |
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); r = !0); | |
} catch (e) { | |
i = !0, a = e | |
} finally { | |
try { | |
r || null == s.return || s.return() | |
} finally { | |
if (i) throw a | |
} | |
} | |
return n | |
} | |
}(e, t) || function(e, t) { | |
if (e) { | |
if ("string" == typeof e) return c(e, t); | |
var n = Object.prototype.toString.call(e).slice(8, -1); | |
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? c(e, t) : void 0 | |
} | |
}(e, t) || function() { | |
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") | |
}() | |
} | |
function c(e, t) { | |
(null == t || t > e.length) && (t = e.length); | |
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; | |
return r | |
} | |
function u() { | |
return (u = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
r.b.setDefaults({ | |
userSync: o.deepClone({ | |
syncEnabled: !0, | |
filterSettings: { | |
image: { | |
bidders: "*", | |
filter: "include" | |
} | |
}, | |
syncsPerBidder: 5, | |
syncDelay: 3e3, | |
auctionDelay: 0 | |
}) | |
}); | |
var p, l, f, m, g, h, b, y = Object(s.a)("usersync"), | |
v = !o.isSafariBrowser() && y.cookiesAreEnabled(), | |
w = (p = { | |
config: r.b.getConfig("userSync"), | |
browserSupportsCookies: v | |
}, l = {}, f = I(), m = new Set, h = { | |
image: !0, | |
iframe: !(g = {}) | |
}, b = p.config, r.b.getConfig("userSync", function(e) { | |
var t; | |
e.userSync && (t = e.userSync.filterSettings, o.isPlainObject(t) && (t.image || t.all || (e.userSync.filterSettings.image = { | |
bidders: "*", | |
filter: "include" | |
}))), b = u(b, e.userSync) | |
}), l.registerSync = function(e, t, n) { | |
return m.has(t) ? o.logMessage('already fired syncs for "'.concat(t, '", ignoring registerSync call')) : b.syncEnabled && o.isArray(f[e]) ? t ? 0 !== b.syncsPerBidder && Number(g[t]) >= b.syncsPerBidder ? o.logWarn('Number of user syncs exceeded for "'.concat(t, '"')) : l.canBidderRegisterSync(e, t) ? (f[e].push([t, n]), (r = g)[i = t] ? r[i] += 1 : r[i] = 1, void(g = r)) : o.logWarn('Bidder "'.concat(t, '" not permitted to register their "').concat(e, '" userSync pixels.')) : o.logWarn("Bidder is required for registering sync") : o.logWarn('User sync type "'.concat(e, '" not supported')); | |
var r, i | |
}, l.syncUsers = function() { | |
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0; | |
if (e) return setTimeout(T, Number(e)); | |
T() | |
}, l.triggerUserSyncs = function() { | |
b.enableOverride && l.syncUsers() | |
}, l.canBidderRegisterSync = function(e, t) { | |
return !b.filterSettings || ! function(e, t) { | |
var n = b.filterSettings; | |
if (function(e, t) { | |
if (e.all && e[t]) return o.logWarn('Detected presence of the "filterSettings.all" and "filterSettings.'.concat(t, '" in userSync config. You cannot mix "all" with "iframe/image" configs; they are mutually exclusive.')), 0; | |
var n = e.all ? e.all : e[t], | |
r = e.all ? "all" : t; | |
if (n) { | |
var i = n.filter, | |
a = n.bidders; | |
return i && "include" !== i && "exclude" !== i ? (o.logWarn('UserSync "filterSettings.'.concat(r, ".filter\" setting '").concat(i, "' is not a valid option; use either 'include' or 'exclude'.")), 0) : "*" === a || Array.isArray(a) && 0 < a.length && a.every(function(e) { | |
return o.isStr(e) && "*" !== e | |
}) || (o.logWarn('Detected an invalid setup in userSync "filterSettings.'.concat(r, ".bidders\"; use either '*' (to represent all bidders) or an array of bidders.")), 0) | |
} | |
}(n, e)) { | |
h[e] = !0; | |
var r = n.all ? n.all : n[e], | |
i = "*" === r.bidders ? [t] : r.bidders; | |
return { | |
include: function(e, t) { | |
return !a()(e, t) | |
}, | |
exclude: function(e, t) { | |
return a()(e, t) | |
} | |
} [r.filter || "include"](i, t) | |
} | |
}(e, t) | |
}, l); | |
function I() { | |
return { | |
image: [], | |
iframe: [] | |
} | |
} | |
function T() { | |
if (b.syncEnabled && p.browserSupportsCookies) { | |
try { | |
h.image && S(f.image, function(e) { | |
var t = d(e, 2), | |
n = t[0], | |
r = t[1]; | |
o.logMessage("Invoking image pixel user sync for bidder: ".concat(n)), o.triggerPixel(r) | |
}), h.iframe && S(f.iframe, function(e) { | |
var t = d(e, 2), | |
n = t[0], | |
r = t[1]; | |
o.logMessage("Invoking iframe user sync for bidder: ".concat(n)), o.insertUserSyncIframe(r) | |
}) | |
} catch (e) { | |
return o.logError("Error firing user syncs", e) | |
} | |
f = I() | |
} | |
} | |
function S(e, t) { | |
o.shuffle(e).forEach(function(e) { | |
t(e), m.add(e[0]) | |
}) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return u | |
}), n.d(t, "b", function() { | |
return g | |
}); | |
var r = n(11), | |
f = n.n(r), | |
i = n(0), | |
m = 2, | |
a = { | |
buckets: [{ | |
max: 5, | |
increment: .5 | |
}] | |
}, | |
o = { | |
buckets: [{ | |
max: 20, | |
increment: .1 | |
}] | |
}, | |
s = { | |
buckets: [{ | |
max: 20, | |
increment: .01 | |
}] | |
}, | |
d = { | |
buckets: [{ | |
max: 3, | |
increment: .01 | |
}, { | |
max: 8, | |
increment: .05 | |
}, { | |
max: 20, | |
increment: .5 | |
}] | |
}, | |
c = { | |
buckets: [{ | |
max: 5, | |
increment: .05 | |
}, { | |
max: 10, | |
increment: .1 | |
}, { | |
max: 20, | |
increment: .5 | |
}] | |
}; | |
function u(e, t) { | |
var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1, | |
r = parseFloat(e); | |
return isNaN(r) && (r = ""), { | |
low: "" === r ? "" : p(e, a, n), | |
med: "" === r ? "" : p(e, o, n), | |
high: "" === r ? "" : p(e, s, n), | |
auto: "" === r ? "" : p(e, c, n), | |
dense: "" === r ? "" : p(e, d, n), | |
custom: "" === r ? "" : p(e, t, n) | |
} | |
} | |
function p(n, e, r) { | |
var i = ""; | |
if (!g(e)) return i; | |
var t, a, o, s, d, c, u = e.buckets.reduce(function(e, t) { | |
return e.max > t.max ? e : t | |
}, { | |
max: 0 | |
}), | |
p = 0, | |
l = f()(e.buckets, function(e) { | |
if (n > u.max * r) { | |
var t = e.precision; | |
void 0 === t && (t = m), i = (e.max * r).toFixed(t) | |
} else { | |
if (n <= e.max * r && p * r <= n) return e.min = p, e; | |
p = e.max | |
} | |
}); | |
return l && (t = void 0 !== l.precision ? l.precision : m, a = l.increment * r, o = l.min * r, d = (n * (s = Math.pow(10, t + 2)) - o * s) / (a * s), c = Math.floor(d) * a + o, i = (c = Number(c.toFixed(10))).toFixed(t)), i | |
} | |
function g(e) { | |
if (i.isEmpty(e) || !e.buckets || !Array.isArray(e.buckets)) return !1; | |
var t = !0; | |
return e.buckets.forEach(function(e) { | |
e.max && e.increment || (t = !1) | |
}), t | |
} | |
}, function(e, t) { | |
e.exports = function(e, t) { | |
return { | |
enumerable: !(1 & e), | |
configurable: !(2 & e), | |
writable: !(4 & e), | |
value: t | |
} | |
} | |
}, function(e, t, n) { | |
var r = n(73), | |
i = n(49); | |
e.exports = function(e) { | |
return r(i(e)) | |
} | |
}, function(e, t) { | |
var n = {}.toString; | |
e.exports = function(e) { | |
return n.call(e).slice(8, -1) | |
} | |
}, function(e, t) { | |
e.exports = function(e) { | |
if (null == e) throw TypeError("Can't call method on " + e); | |
return e | |
} | |
}, function(e, t, n) { | |
var r = n(58), | |
i = Math.min; | |
e.exports = function(e) { | |
return 0 < e ? i(r(e), 9007199254740991) : 0 | |
} | |
}, function(e, t) { | |
e.exports = function() {} | |
}, function(e, t, n) { | |
var r = n(25); | |
e.exports = r | |
}, function(e, t) { | |
e.exports = {} | |
}, function(e, t, n) { | |
var r, i, a, o, s, d, c, u = n(122), | |
p = n(22), | |
l = n(23), | |
f = n(29), | |
m = n(24), | |
g = n(65), | |
h = n(53), | |
b = p.WeakMap, | |
y = u ? (r = new b, i = r.get, a = r.has, o = r.set, s = function(e, t) { | |
return o.call(r, e, t), t | |
}, d = function(e) { | |
return i.call(r, e) || {} | |
}, function(e) { | |
return a.call(r, e) | |
}) : (h[c = g("state")] = !0, s = function(e, t) { | |
return f(e, c, t), t | |
}, d = function(e) { | |
return m(e, c) ? e[c] : {} | |
}, function(e) { | |
return m(e, c) | |
}); | |
e.exports = { | |
set: s, | |
get: d, | |
has: y, | |
enforce: function(e) { | |
return y(e) ? d(e) : s(e, {}) | |
}, | |
getterFor: function(n) { | |
return function(e) { | |
var t; | |
if (!l(e) || (t = d(e)).type !== n) throw TypeError("Incompatible receiver, " + n + " required"); | |
return t | |
} | |
} | |
} | |
}, function(e, t, n) { | |
var i = n(23); | |
e.exports = function(e, t) { | |
if (!i(e)) return e; | |
var n, r; | |
if (t && "function" == typeof(n = e.toString) && !i(r = n.call(e))) return r; | |
if ("function" == typeof(n = e.valueOf) && !i(r = n.call(e))) return r; | |
if (!t && "function" == typeof(n = e.toString) && !i(r = n.call(e))) return r; | |
throw TypeError("Can't convert object to primitive value") | |
} | |
}, function(e, t, n) { | |
function r(f) { | |
var m = 1 == f, | |
g = 2 == f, | |
h = 3 == f, | |
b = 4 == f, | |
y = 6 == f, | |
v = 5 == f || y; | |
return function(e, t, n, r) { | |
for (var i, a, o = T(e), s = I(o), d = w(t, n, 3), c = S(s.length), u = 0, p = r || k, l = m ? p(e, c) : g ? p(e, 0) : void 0; u < c; u++) | |
if ((v || u in s) && (a = d(i = s[u], u, o), f)) | |
if (m) l[u] = a; | |
else if (a) switch (f) { | |
case 3: | |
return !0; | |
case 5: | |
return i; | |
case 6: | |
return u; | |
case 2: | |
j.call(l, i) | |
} else if (b) return !1; | |
return y ? -1 : h || b ? b : l | |
} | |
} | |
var w = n(21), | |
I = n(73), | |
T = n(57), | |
S = n(50), | |
k = n(110), | |
j = [].push; | |
e.exports = { | |
forEach: r(0), | |
map: r(1), | |
filter: r(2), | |
some: r(3), | |
every: r(4), | |
find: r(5), | |
findIndex: r(6) | |
} | |
}, function(e, t, n) { | |
var r = n(49); | |
e.exports = function(e) { | |
return Object(r(e)) | |
} | |
}, function(e, t) { | |
var n = Math.ceil, | |
r = Math.floor; | |
e.exports = function(e) { | |
return isNaN(e = +e) ? 0 : (0 < e ? r : n)(e) | |
} | |
}, function(e, t) { | |
var n = 0, | |
r = Math.random(); | |
e.exports = function(e) { | |
return "Symbol(" + String(void 0 === e ? "" : e) + ")_" + (++n + r).toString(36) | |
} | |
}, function(e, t, n) { | |
function o(e) { | |
throw e | |
} | |
var s = n(27), | |
d = n(28), | |
c = n(24), | |
u = Object.defineProperty, | |
p = {}; | |
e.exports = function(e, t) { | |
if (c(p, e)) return p[e]; | |
var n = [][e], | |
r = !!c(t = t || {}, "ACCESSORS") && t.ACCESSORS, | |
i = c(t, 0) ? t[0] : o, | |
a = c(t, 1) ? t[1] : void 0; | |
return p[e] = !!n && !d(function() { | |
if (r && !s) return !0; | |
var e = { | |
length: -1 | |
}; | |
r ? u(e, 1, { | |
enumerable: !0, | |
get: o | |
}) : e[1] = 1, n.call(e, i, a) | |
}) | |
} | |
}, function(e, t, n) { | |
var r = n(62), | |
i = n(36), | |
a = n(19)("iterator"); | |
e.exports = function(e) { | |
if (null != e) return e[a] || e["@@iterator"] || i[r(e)] | |
} | |
}, function(e, t, n) { | |
var r = n(63), | |
i = n(48), | |
a = n(19)("toStringTag"), | |
o = "Arguments" == i(function() { | |
return arguments | |
}()); | |
e.exports = r ? i : function(e) { | |
var t, n, r; | |
return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof(n = function(e, t) { | |
try { | |
return e[t] | |
} catch (e) {} | |
}(t = Object(e), a)) ? n : o ? i(t) : "Object" == (r = i(t)) && "function" == typeof t.callee ? "Arguments" : r | |
} | |
}, function(e, t, n) { | |
var r = {}; | |
r[n(19)("toStringTag")] = "z", e.exports = "[object z]" === String(r) | |
}, function(e, t, n) { | |
var a = n(63), | |
o = n(31).f, | |
s = n(29), | |
d = n(24), | |
c = n(121), | |
u = n(19)("toStringTag"); | |
e.exports = function(e, t, n, r) { | |
var i; | |
e && (i = n ? e : e.prototype, d(i, u) || o(i, u, { | |
configurable: !0, | |
value: t | |
}), r && !a && s(i, "toString", c)) | |
} | |
}, function(e, t, n) { | |
var r = n(76), | |
i = n(59), | |
a = r("keys"); | |
e.exports = function(e) { | |
return a[e] || (a[e] = i(e)) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
function b() { | |
return this | |
} | |
var y = n(14), | |
v = n(130), | |
w = n(89), | |
I = n(132), | |
T = n(64), | |
S = n(29), | |
k = n(87), | |
r = n(19), | |
j = n(16), | |
A = n(36), | |
i = n(88), | |
E = i.IteratorPrototype, | |
O = i.BUGGY_SAFARI_ITERATORS, | |
_ = r("iterator"), | |
C = "values"; | |
e.exports = function(e, t, n, r, i, a, o) { | |
function s(e) { | |
if (e === i && g) return g; | |
if (!O && e in f) return f[e]; | |
switch (e) { | |
case "keys": | |
case C: | |
case "entries": | |
return function() { | |
return new n(this, e) | |
} | |
} | |
return function() { | |
return new n(this) | |
} | |
} | |
v(n, t, r); | |
var d, c, u, p = t + " Iterator", | |
l = !1, | |
f = e.prototype, | |
m = f[_] || f["@@iterator"] || i && f[i], | |
g = !O && m || s(i), | |
h = "Array" == t && f.entries || m; | |
if (h && (d = w(h.call(new e)), E !== Object.prototype && d.next && (j || w(d) === E || (I ? I(d, E) : "function" != typeof d[_] && S(d, _, b)), T(d, p, !0, !0), j && (A[p] = b))), i == C && m && m.name !== C && (l = !0, g = function() { | |
return m.call(this) | |
}), j && !o || f[_] === g || S(f, _, g), A[t] = g, i) | |
if (c = { | |
values: s(C), | |
keys: a ? g : s("keys"), | |
entries: s("entries") | |
}, o) | |
for (u in c) !O && !l && u in f || k(f, u, c[u]); | |
else y({ | |
target: t, | |
proto: !0, | |
forced: O || l | |
}, c); | |
return c | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(172); | |
e.exports = Function.prototype.bind || r | |
}, function(e, t, n) { | |
"use strict"; | |
n.d(t, "a", function() { | |
return a | |
}); | |
var r = n(0), | |
o = {}; | |
function i(e, t, n) { | |
var r, i, a = (r = n, i = o[e] = o[e] || { | |
bidders: {} | |
}, r ? i.bidders[r] = i.bidders[r] || {} : i); | |
return a[t] = (a[t] || 0) + 1, a[t] | |
} | |
var a = { | |
incrementRequestsCounter: function(e) { | |
return i(e, "requestsCounter") | |
}, | |
incrementBidderRequestsCounter: function(e, t) { | |
return i(e, "requestsCounter", t) | |
}, | |
incrementBidderWinsCounter: function(e, t) { | |
return i(e, "winsCounter", t) | |
}, | |
getRequestsCounter: function(e) { | |
return Object(r.deepAccess)(o, "".concat(e, ".requestsCounter")) || 0 | |
}, | |
getBidderRequestsCounter: function(e, t) { | |
return Object(r.deepAccess)(o, "".concat(e, ".bidders.").concat(t, ".requestsCounter")) || 0 | |
}, | |
getBidderWinsCounter: function(e, t) { | |
return Object(r.deepAccess)(o, "".concat(e, ".bidders.").concat(t, ".winsCounter")) || 0 | |
} | |
} | |
}, function(e, t, n) { | |
var r = n(238); | |
e.exports = r | |
}, function(e, t, n) { | |
"use strict"; | |
Object.defineProperty(t, "__esModule", { | |
value: !0 | |
}), n.d(t, "adUnitSetupChecks", function() { | |
return W | |
}), n.d(t, "checkAdUnitSetup", function() { | |
return G | |
}), t.executeStorageCallbacks = Y; | |
var r = n(20), | |
i = n(0), | |
a = n(246), | |
o = n(44), | |
u = n(3), | |
b = n(26), | |
p = n(41), | |
s = n(13), | |
d = n(247), | |
c = n(12), | |
l = n.n(c), | |
f = n(68), | |
y = n(10), | |
m = n(32), | |
g = n(9); | |
function h(e) { | |
return (h = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { | |
return typeof e | |
} : function(e) { | |
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e | |
})(e) | |
} | |
function v() { | |
return (v = Object.assign || function(e) { | |
for (var t = 1; t < arguments.length; t++) { | |
var n, r = arguments[t]; | |
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) | |
} | |
return e | |
}).apply(this, arguments) | |
} | |
var w = Object(r.a)(), | |
I = n(5), | |
T = n(0), | |
S = n(7).default, | |
k = n(8), | |
j = o.a.triggerUserSyncs, | |
A = I.EVENTS, | |
E = A.ADD_AD_UNITS, | |
O = A.BID_WON, | |
_ = A.REQUEST_BIDS, | |
C = A.SET_TARGETING, | |
x = A.AD_RENDER_FAILED, | |
R = I.AD_RENDER_FAILED_REASON, | |
D = R.PREVENT_WRITING_ON_MAIN_DOCUMENT, | |
P = R.NO_AD, | |
U = R.EXCEPTION, | |
N = R.CANNOT_FIND_AD, | |
B = R.MISSING_DOC_OR_ADID, | |
q = { | |
bidWon: function(e) { | |
var t = b.a.getBidsRequested().map(function(e) { | |
return e.bids.map(function(e) { | |
return e.adUnitCode | |
}) | |
}).reduce(i.flatten).filter(i.uniques); | |
return !!T.contains(t, e) || void T.logError('The "' + e + '" placement is not defined.') | |
} | |
}; | |
function z(e, t, n) { | |
e.defaultView && e.defaultView.frameElement && (e.defaultView.frameElement.width = t, e.defaultView.frameElement.height = n) | |
} | |
function M(e, t) { | |
var n = []; | |
return T.isArray(e) && (t ? e.length === t : 0 < e.length) && (e.every(function(e) { | |
return Object(i.isArrayOfNums)(e, 2) | |
}) ? n = e : Object(i.isArrayOfNums)(e, 2) && n.push(e)), n | |
} | |
function V(e) { | |
var t = e.mediaTypes.banner, | |
n = M(t.sizes); | |
0 < n.length ? (t.sizes = n, e.sizes = n) : (T.logError("Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250], ...]. Removing invalid mediaTypes.banner object from request."), delete e.mediaTypes.banner) | |
} | |
function L(e) { | |
var t = e.mediaTypes.video, | |
n = "number" == typeof t.playerSize[0] ? 2 : 1, | |
r = M(t.playerSize, n); | |
0 < r.length ? (2 == n && T.logInfo("Transforming video.playerSize from [640,480] to [[640,480]] so it's in the proper format."), t.playerSize = r, e.sizes = r) : (T.logError("Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request."), delete e.mediaTypes.video.playerSize) | |
} | |
function F(e) { | |
var t = e.mediaTypes.native; | |
t.image && t.image.sizes && !Array.isArray(t.image.sizes) && (T.logError("Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request."), delete e.mediaTypes.native.image.sizes), t.image && t.image.aspect_ratios && !Array.isArray(t.image.aspect_ratios) && (T.logError("Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request."), delete e.mediaTypes.native.image.aspect_ratios), t.icon && t.icon.sizes && !Array.isArray(t.icon.sizes) && (T.logError("Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request."), delete e.mediaTypes.native.icon.sizes) | |
} | |
Object(d.a)(), w.bidderSettings = w.bidderSettings || {}, w.libLoaded = !0, w.version = "v3.23.0", T.logInfo("Prebid.js v3.23.0 loaded"), w.adUnits = w.adUnits || [], w.triggerUserSyncs = j; | |
var W = { | |
validateBannerMediaType: V, | |
validateVideoMediaType: L, | |
validateNativeMediaType: F, | |
validateSizes: M | |
}, | |
G = Object(s.b)("sync", function(e) { | |
return e.filter(function(e) { | |
var t = e.mediaTypes; | |
return t && 0 !== Object.keys(t).length ? (t.banner && V(e), t.video && t.video.playerSize && L(e), t.native && F(e), !0) : (T.logError("Detected adUnit.code '".concat(e.code, "' did not have a 'mediaTypes' object defined. This is a required field for the auction, so this adUnit has been removed.")), !1) | |
}) | |
}, "checkAdUnitSetup"); | |
function H(e) { | |
var n = b.a[e]().filter(T.bind.call(i.adUnitsFilter, this, b.a.getAdUnitCodes())), | |
r = b.a.getLastAuctionId(); | |
return n.map(function(e) { | |
return e.adUnitCode | |
}).filter(i.uniques).map(function(t) { | |
return n.filter(function(e) { | |
return e.auctionId === r && e.adUnitCode === t | |
}) | |
}).filter(function(e) { | |
return e && e[0] && e[0].adUnitCode | |
}).map(function(e) { | |
return t = {}, r = { | |
bids: e | |
}, (n = e[0].adUnitCode) in t ? Object.defineProperty(t, n, { | |
value: r, | |
enumerable: !0, | |
configurable: !0, | |
writable: !0 | |
}) : t[n] = r, t; | |
var t, n, r | |
}).reduce(function(e, t) { | |
return v(e, t) | |
}, {}) | |
} | |
function J(e) { | |
var t = e.reason, | |
n = e.message, | |
r = e.bid, | |
i = e.id, | |
a = { | |
reason: t, | |
message: n | |
}; | |
r && (a.bid = r), i && (a.adId = i), T.logError(n), k.emit(x, a) | |
} | |
function Y(e, t) { | |
! function(e) { | |
for (var t; t = e.shift();) t() | |
}(g.c), e.call(this, t) | |
} | |
function $(e) { | |
e.forEach(function(e) { | |
if (void 0 === e.called) try { | |
e.call(), e.called = !0 | |
} catch (e) { | |
T.logError("Error processing command :", "prebid.js", e) | |
} | |
}) | |
} | |
w.hardReset = function() { | |
w.adUnits = [] | |
}, w.clearAdUnits = function() { | |
w.adUnits = [] | |
}, w.getAdserverTargetingForAdUnitCodeStr = function(e) { | |
if (T.logInfo("Invoking vmpbjs.getAdserverTargetingForAdUnitCodeStr", arguments), e) { | |
var t = w.getAdserverTargetingForAdUnitCode(e); | |
return T.transformAdServerTargetingObj(t) | |
} | |
T.logMessage("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode") | |
}, w.getAdserverTargetingForAdUnitCode = function(e) { | |
return w.getAdserverTargeting(e)[e] | |
}, w.getAdserverTargeting = function(e) { | |
return T.logInfo("Invoking vmpbjs.getAdserverTargeting", arguments), p.a.getAllTargeting(e) | |
}, w.getNoBids = function() { | |
return T.logInfo("Invoking vmpbjs.getNoBids", arguments), H("getNoBids") | |
}, w.getBidResponses = function() { | |
return T.logInfo("Invoking vmpbjs.getBidResponses", arguments), H("getBidsReceived") | |
}, w.getBidResponsesForAdUnitCode = function(t) { | |
return { | |
bids: b.a.getBidsReceived().filter(function(e) { | |
return e.adUnitCode === t | |
}) | |
} | |
}, w.setTargetingForGPTAsync = function(e, t) { | |
var n; | |
T.logInfo("Invoking vmpbjs.setTargetingForGPTAsync", arguments), Object(i.isGptPubadsDefined)() ? (n = p.a.getAllTargeting(e), p.a.resetPresetTargeting(e, t), p.a.setTargetingForGPT(n, t), Object.keys(n).forEach(function(t) { | |
Object.keys(n[t]).forEach(function(e) { | |
"hb_adid" === e && b.a.setStatusForBids(n[t][e], I.BID_STATUS.BID_TARGETING_SET) | |
}) | |
}), k.emit(C, n)) : T.logError("window.googletag is not defined on the page") | |
}, w.setTargetingForAst = function(e) { | |
T.logInfo("Invoking vmpbjs.setTargetingForAn", arguments), p.a.isApntagDefined() ? (p.a.setTargetingForAst(e), k.emit(C, p.a.getAllTargeting())) : T.logError("window.apntag is not defined on the page") | |
}, w.renderAd = function(e, t) { | |
if (T.logInfo("Invoking vmpbjs.renderAd", arguments), T.logMessage("Calling renderAd with adId :" + t), e && t) try { | |
var n, r, i, a, o, s, d, c, u, p, l, f, m = b.a.findBidByAdId(t); | |
m ? (m.ad = T.replaceAuctionPrice(m.ad, m.cpm), m.adUrl = T.replaceAuctionPrice(m.adUrl, m.cpm), b.a.addWinningBid(m), k.emit(O, m), n = m.height, r = m.width, i = m.ad, a = m.mediaType, o = m.adUrl, s = m.renderer, d = document.createComment("Creative ".concat(m.creativeId, " served by ").concat(m.bidder, " Prebid.js Header Bidding")), T.insertElement(d, e, "body"), Object(y.c)(s) ? Object(y.b)(s, m) : e === document && !T.inIframe() || "video" === a ? (c = "Error trying to write ad. Ad render call ad id ".concat(t, " was prevented from writing to the main document."), J({ | |
reason: D, | |
message: c, | |
bid: m, | |
id: t | |
})) : i ? (navigator.userAgent && -1 < navigator.userAgent.toLowerCase().indexOf("firefox/") && (u = navigator.userAgent.toLowerCase().match(/firefox\/([\d\.]+)/)[1]) && parseInt(u, 10) < 67 && e.open("text/html", "replace"), e.write(i), e.close(), z(e, r, n), T.callBurl(m)) : o ? ((p = T.createInvisibleIframe()).height = n, p.width = r, p.style.display = "inline", p.style.overflow = "hidden", p.src = o, T.insertElement(p, e, "body"), z(e, r, n), T.callBurl(m)) : (l = "Error trying to write ad. No ad for bid response id: ".concat(t), J({ | |
reason: P, | |
message: l, | |
bid: m, | |
id: t | |
}))) : (f = "Error trying to write ad. Cannot find ad by given id : ".concat(t), J({ | |
reason: N, | |
message: f, | |
id: t | |
})) | |
} catch (e) { | |
var g = "Error trying to write ad Id :".concat(t, " to the page:").concat(e.message); | |
J({ | |
reason: U, | |
message: g, | |
id: t | |
}) | |
} else { | |
var h = "Error trying to write ad Id :".concat(t, " to the page. Missing document or adId"); | |
J({ | |
reason: B, | |
message: h, | |
id: t | |
}) | |
} | |
}, w.removeAdUnit = function(e) { | |
T.logInfo("Invoking vmpbjs.removeAdUnit", arguments), e ? (T.isArray(e) ? e : [e]).forEach(function(e) { | |
for (var t = w.adUnits.length - 1; 0 <= t; t--) w.adUnits[t].code === e && w.adUnits.splice(t, 1) | |
}) : w.adUnits = [] | |
}, w.requestBids = Object(s.b)("async", function() { | |
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, | |
t = e.bidsBackHandler, | |
n = e.timeout, | |
r = e.adUnits, | |
i = e.adUnitCodes, | |
a = e.labels, | |
o = e.auctionId; | |
k.emit(_); | |
var s = n || u.b.getConfig("bidderTimeout"), | |
r = r || w.adUnits; | |
if (T.logInfo("Invoking vmpbjs.requestBids", arguments), i && i.length ? r = r.filter(function(e) { | |
return l()(i, e.code) | |
}) : i = r && r.map(function(e) { | |
return e.code | |
}), (r = G(r)).forEach(function(i) { | |
var a = Object.keys(i.mediaTypes || { | |
banner: "banner" | |
}), | |
e = i.bids.map(function(e) { | |
return e.bidder | |
}), | |
o = S.bidderRegistry, | |
t = u.b.getConfig("s2sConfig"), | |
n = t && t.bidders, | |
r = n ? e.filter(function(e) { | |
return !l()(n, e) | |
}) : e; | |
i.transactionId = T.generateUUID(), r.forEach(function(t) { | |
var e = o[t], | |
n = e && e.getSpec && e.getSpec(), | |
r = n && n.supportedMediaTypes || ["banner"]; | |
a.some(function(e) { | |
return l()(r, e) | |
}) ? f.a.incrementBidderRequestsCounter(i.code, t) : (T.logWarn(T.unsupportedBidderMessage(i, t)), i.bids = i.bids.filter(function(e) { | |
return e.bidder !== t | |
})) | |
}), f.a.incrementRequestsCounter(i.code) | |
}), r && 0 !== r.length) { | |
var d = b.a.createAuction({ | |
adUnits: r, | |
adUnitCodes: i, | |
callback: t, | |
cbTimeout: s, | |
labels: a, | |
auctionId: o | |
}), | |
c = r.length; | |
15 < c && T.logInfo("Current auction ".concat(d.getAuctionId(), " contains ").concat(c, " adUnits."), r), i.forEach(function(e) { | |
return p.a.setLatestAuctionForAdUnit(e, d.getAuctionId()) | |
}), d.callBids() | |
} else if (T.logMessage("No adUnits configured. No bids requested."), "function" == typeof t) try { | |
t() | |
} catch (e) { | |
T.logError("Error executing bidsBackHandler", null, e) | |
} | |
}), w.requestBids.before(Y, 49), w.addAdUnits = function(e) { | |
T.logInfo("Invoking vmpbjs.addAdUnits", arguments), T.isArray(e) ? w.adUnits.push.apply(w.adUnits, e) : "object" === h(e) && w.adUnits.push(e), k.emit(E) | |
}, w.onEvent = function(e, t, n) { | |
T.logInfo("Invoking vmpbjs.onEvent", arguments), T.isFn(t) ? !n || q[e].call(null, n) ? k.on(e, t, n) : T.logError('The id provided is not valid for event "' + e + '" and no handler was set.') : T.logError('The event handler provided is not a function and was not set on event "' + e + '".') | |
}, w.offEvent = function(e, t, n) { | |
T.logInfo("Invoking vmpbjs.offEvent", arguments), n && !q[e].call(null, n) || k.off(e, t, n) | |
}, w.registerBidAdapter = function(e, t) { | |
T.logInfo("Invoking vmpbjs.registerBidAdapter", arguments); | |
try { | |
S.registerBidAdapter(e(), t) | |
} catch (e) { | |
T.logError("Error registering bidder adapter : " + e.message) | |
} | |
}, w.registerAnalyticsAdapter = function(e) { | |
T.logInfo("Invoking vmpbjs.registerAnalyticsAdapter", arguments); | |
try { | |
S.registerAnalyticsAdapter(e) | |
} catch (e) { | |
T.logError("Error registering analytics adapter : " + e.message) | |
} | |
}, w.createBid = function(e) { | |
return T.logInfo("Invoking vmpbjs.createBid", arguments), Object(m.a)(e) | |
}, w.enableAnalytics = function(e) { | |
e && !T.isEmpty(e) ? (T.logInfo("Invoking vmpbjs.enableAnalytics for: ", e), S.enableAnalytics(e)) : T.logError("vmpbjs.enableAnalytics should be called with option {}") | |
}, w.aliasBidder = function(e, t) { | |
T.logInfo("Invoking vmpbjs.aliasBidder", arguments), e && t ? S.aliasBidAdapter(e, t) : T.logError("bidderCode and alias must be passed as arguments", "vmpbjs.aliasBidder") | |
}, w.getAllWinningBids = function() { | |
return b.a.getAllWinningBids() | |
}, w.getAllPrebidWinningBids = function() { | |
return b.a.getBidsReceived().filter(function(e) { | |
return e.status === I.BID_STATUS.BID_TARGETING_SET | |
}) | |
}, w.getHighestCpmBids = function(e) { | |
return p.a.getWinningBids(e) | |
}, w.markWinningBidAsUsed = function(t) { | |
var e = []; | |
t.adUnitCode && t.adId ? e = b.a.getBidsReceived().filter(function(e) { | |
return e.adId === t.adId && e.adUnitCode === t.adUnitCode | |
}) : t.adUnitCode ? e = p.a.getWinningBids(t.adUnitCode) : t.adId ? e = b.a.getBidsReceived().filter(function(e) { | |
return e.adId === t.adId | |
}) : T.logWarn("Inproper usage of markWinningBidAsUsed. It'll need an adUnitCode and/or adId to function."), 0 < e.length && (e[0].status = I.BID_STATUS.RENDERED) | |
}, w.getConfig = u.b.getConfig, w.setConfig = u.b.setConfig, w.setBidderConfig = u.b.setBidderConfig, w.que.push(function() { | |
return Object(a.a)() | |
}), w.cmd.push = function(e) { | |
if ("function" == typeof e) try { | |
e.call() | |
} catch (e) { | |
T.logError("Error processing command :", e.message, e.stack) | |
} else T.logError("Commands written into vmpbjs.cmd.push must be wrapped in a function") | |
}, w.que.push = w.cmd.push, w.processQueue = function() { | |
s.b.ready(), $(w.que), $(w.cmd) | |
}, t.default = w | |
}, , function(e, t, n) { | |
"use strict"; | |
t.a = function(t, n) { | |
a.adServers = a.adServers || {}, a.adServers[t] = a.adServers[t] || {}, Object.keys(n).forEach(function(e) { | |
a.adServers[t][e] ? Object(i.logWarn)("Attempting to add an already registered function property ".concat(e, " for AdServer ").concat(t, ".")) : a.adServers[t][e] = n[e] | |
}) | |
}; | |
var r = n(20), | |
i = n(0), | |
a = Object(r.a)() | |
}, function(e, t, n) { | |
var r = n(28), | |
i = n(48), | |
a = "".split; | |
e.exports = r(function() { | |
return !Object("z").propertyIsEnumerable(0) | |
}) ? function(e) { | |
return "String" == i(e) ? a.call(e, "") : Object(e) | |
} : Object | |
}, function(e, t, n) { | |
var r = n(27), | |
i = n(28), | |
a = n(75); | |
e.exports = !r && !i(function() { | |
return 7 != Object.defineProperty(a("div"), "a", { | |
get: function() { | |
return 7 | |
} | |
}).a | |
}) | |
}, function(e, t, n) { | |
var r = n(22), | |
i = n(23), | |
a = r.document, | |
o = i(a) && i(a.createElement); | |
e.exports = function(e) { | |
return o ? a.createElement(e) : {} | |
} | |
}, function(e, t, n) { | |
var r = n(16), | |
i = n(77); | |
(e.exports = function(e, t) { | |
return i[e] || (i[e] = void 0 !== t ? t : {}) | |
})("versions", []).push({ | |
version: "3.6.4", | |
mode: r ? "pure" : "global", | |
copyright: "© 2020 Denis Pushkarev (zloirock.ru)" | |
}) | |
}, function(e, t, n) { | |
var r = n(22), | |
i = n(112), | |
a = "__core-js_shared__", | |
o = r[a] || i(a, {}); | |
e.exports = o | |
}, function(e, t, n) { | |
var r = n(28); | |
e.exports = !!Object.getOwnPropertySymbols && !r(function() { | |
return !String(Symbol()) | |
}) | |
}, function(e, t, n) { | |
function r(s) { | |
return function(e, t, n) { | |
var r, i = d(e), | |
a = c(i.length), | |
o = u(n, a); | |
if (s && t != t) { | |
for (; o < a;) | |
if ((r = i[o++]) != r) return !0 | |
} else | |
for (; o < a; o++) | |
if ((s || o in i) && i[o] === t) return s || o || 0; | |
return !s && -1 | |
} | |
} | |
var d = n(47), | |
c = n(50), | |
u = n(116); | |
e.exports = { | |
includes: r(!0), | |
indexOf: r(!1) | |
} | |
}, function(e, t, n) { | |
var r = n(117); | |
n(140), n(142), n(144), n(146), n(148), n(149), n(150), n(151), n(152), n(153), n(154), n(155), n(156), n(157), n(158), n(159), n(160), n(161), e.exports = r | |
}, function(e, t, n) { | |
function r(e) { | |
s(e, u, { | |
value: { | |
objectID: "O" + ++p, | |
weakData: {} | |
} | |
}) | |
} | |
var i = n(53), | |
a = n(23), | |
o = n(24), | |
s = n(31).f, | |
d = n(59), | |
c = n(120), | |
u = d("meta"), | |
p = 0, | |
l = Object.isExtensible || function() { | |
return !0 | |
}, | |
f = e.exports = { | |
REQUIRED: !1, | |
fastKey: function(e, t) { | |
if (!a(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e; | |
if (!o(e, u)) { | |
if (!l(e)) return "F"; | |
if (!t) return "E"; | |
r(e) | |
} | |
return e[u].objectID | |
}, | |
getWeakData: function(e, t) { | |
if (!o(e, u)) { | |
if (!l(e)) return !0; | |
if (!t) return !1; | |
r(e) | |
} | |
return e[u].weakData | |
}, | |
onFreeze: function(e) { | |
return c && f.REQUIRED && l(e) && !o(e, u) && r(e), e | |
} | |
}; | |
i[u] = !0 | |
}, function(e, t, n) { | |
var r = n(19), | |
i = n(36), | |
a = r("iterator"), | |
o = Array.prototype; | |
e.exports = function(e) { | |
return void 0 !== e && (i.Array === e || o[a] === e) | |
} | |
}, function(e, t, n) { | |
var a = n(15); | |
e.exports = function(e, t, n, r) { | |
try { | |
return r ? t(a(n)[0], n[1]) : t(n) | |
} catch (t) { | |
var i = e.return; | |
throw void 0 !== i && a(i.call(e)), t | |
} | |
} | |
}, function(e, t) { | |
e.exports = function(e, t, n) { | |
if (!(e instanceof t)) throw TypeError("Incorrect " + (n ? n + " " : "") + "invocation"); | |
return e | |
} | |
}, function(e, t, n) { | |
function r() {} | |
function i(e) { | |
return "<script>" + e + "<\/script>" | |
} | |
var a, o = n(15), | |
s = n(125), | |
d = n(86), | |
c = n(53), | |
u = n(128), | |
p = n(75), | |
l = n(65), | |
f = "prototype", | |
m = l("IE_PROTO"), | |
g = function() { | |
try { | |
a = document.domain && new ActiveXObject("htmlfile") | |
} catch (e) {} | |
var e, t; | |
g = a ? function(e) { | |
e.write(i("")), e.close(); | |
var t = e.parentWindow.Object; | |
return e = null, t | |
}(a) : ((t = p("iframe")).style.display = "none", u.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(i("document.F=Object")), e.close(), e.F); | |
for (var n = d.length; n--;) delete g[f][d[n]]; | |
return g() | |
}; | |
c[m] = !0, e.exports = Object.create || function(e, t) { | |
var n; | |
return null !== e ? (r[f] = o(e), n = new r, r[f] = null, n[m] = e) : n = g(), void 0 === t ? n : s(n, t) | |
} | |
}, function(e, t) { | |
e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] | |
}, function(e, t, n) { | |
var i = n(29); | |
e.exports = function(e, t, n, r) { | |
r && r.enumerable ? e[t] = n : i(e, t, n) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r, i, a, o = n(89), | |
s = n(29), | |
d = n(24), | |
c = n(19), | |
u = n(16), | |
p = c("iterator"), | |
l = !1; | |
[].keys && ("next" in (a = [].keys()) ? (i = o(o(a))) !== Object.prototype && (r = i) : l = !0), null == r && (r = {}), u || d(r, p) || s(r, p, function() { | |
return this | |
}), e.exports = { | |
IteratorPrototype: r, | |
BUGGY_SAFARI_ITERATORS: l | |
} | |
}, function(e, t, n) { | |
var r = n(24), | |
i = n(57), | |
a = n(65), | |
o = n(131), | |
s = a("IE_PROTO"), | |
d = Object.prototype; | |
e.exports = o ? Object.getPrototypeOf : function(e) { | |
return e = i(e), r(e, s) ? e[s] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? d : null | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var i = n(136).charAt, | |
r = n(54), | |
a = n(66), | |
o = "String Iterator", | |
s = r.set, | |
d = r.getterFor(o); | |
a(String, "String", function(e) { | |
s(this, { | |
type: o, | |
string: String(e), | |
index: 0 | |
}) | |
}, function() { | |
var e, t = d(this), | |
n = t.string, | |
r = t.index; | |
return r >= n.length ? { | |
value: void 0, | |
done: !0 | |
} : (e = i(n, r), t.index += e.length, { | |
value: e, | |
done: !1 | |
}) | |
}) | |
}, function(e, t, n) { | |
var r = n(15), | |
i = n(61); | |
e.exports = function(e) { | |
var t = i(e); | |
if ("function" != typeof t) throw TypeError(String(e) + " is not iterable"); | |
return r(t.call(e)) | |
} | |
}, function(e, t, n) { | |
var r = n(162); | |
e.exports = r | |
}, function(e, t, n) { | |
"use strict"; | |
var r = Array.prototype.slice, | |
i = n(94), | |
a = Object.keys, | |
o = a ? function(e) { | |
return a(e) | |
} : n(169), | |
s = Object.keys; | |
o.shim = function() { | |
return Object.keys ? function() { | |
var e = Object.keys(arguments); | |
return e && e.length === arguments.length | |
}(1, 2) || (Object.keys = function(e) { | |
return i(e) ? s(r.call(e)) : s(e) | |
}) : Object.keys = o, Object.keys || o | |
}, e.exports = o | |
}, function(e, t, n) { | |
"use strict"; | |
var r = Object.prototype.toString; | |
e.exports = function(e) { | |
var t = r.call(e); | |
return "[object Arguments]" === t || "[object Array]" !== t && null !== e && "object" == typeof e && "number" == typeof e.length && 0 <= e.length && "[object Function]" === r.call(e.callee) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(67), | |
i = n(173)("%Function%"), | |
a = i.apply, | |
o = i.call; | |
e.exports = function() { | |
return r.apply(o, arguments) | |
}, e.exports.apply = function() { | |
return r.apply(a, arguments) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
function r(e) { | |
return e != e | |
} | |
e.exports = function(e, t) { | |
return 0 === e && 0 === t ? 1 / e == 1 / t : e === t || !(!r(e) || !r(t)) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(96); | |
e.exports = function() { | |
return "function" == typeof Object.is ? Object.is : r | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r = Object, | |
i = TypeError; | |
e.exports = function() { | |
if (null != this && this !== r(this)) throw new i("RegExp.prototype.flags getter called on non-object"); | |
var e = ""; | |
return this.global && (e += "g"), this.ignoreCase && (e += "i"), this.multiline && (e += "m"), this.dotAll && (e += "s"), this.unicode && (e += "u"), this.sticky && (e += "y"), e | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(98), | |
i = n(43).supportsDescriptors, | |
a = Object.getOwnPropertyDescriptor, | |
o = TypeError; | |
e.exports = function() { | |
if (!i) throw new o("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors"); | |
if ("gim" === /a/gim.flags) { | |
var e = a(RegExp.prototype, "flags"); | |
if (e && "function" == typeof e.get && "boolean" == typeof /a/.dotAll) return e.get | |
} | |
return r | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
t.a = function(e) { | |
var t = e; | |
return { | |
callBids: function() {}, | |
setBidderCode: function(e) { | |
t = e | |
}, | |
getBidderCode: function() { | |
return t | |
} | |
} | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
t.a = function(e, t) { | |
return e.labelAll ? { | |
labelAll: !0, | |
labels: e.labelAll, | |
activeLabels: t | |
} : { | |
labelAll: !1, | |
labels: e.labelAny, | |
activeLabels: t | |
} | |
}, t.c = function(e) { | |
var t = h(1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : g); | |
return !t.shouldFilter || !!t.sizesSupported[e] | |
}, t.b = function() { | |
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, | |
t = e.labels, | |
n = void 0 === t ? [] : t, | |
r = e.labelAll, | |
i = void 0 !== r && r, | |
a = e.activeLabels, | |
o = void 0 === a ? [] : a, | |
s = 1 < arguments.length ? arguments[1] : void 0, | |
d = 2 < arguments.length ? arguments[2] : void 0, | |
c = h(3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : g), | |
s = Object(f.isPlainObject)(s) ? Object(f.deepClone)(s) : d ? { | |
banner: { | |
sizes: d | |
} | |
} : {}, | |
u = Object(f.deepAccess)(s, "banner.sizes"); | |
c.shouldFilter && u && (s.banner.sizes = u.filter(function(e) { | |
return c.sizesSupported[e] | |
})); | |
var p = Object.keys(s), | |
l = { | |
active: p.every(function(e) { | |
return "banner" !== e | |
}) || p.some(function(e) { | |
return "banner" === e | |
}) && 0 < Object(f.deepAccess)(s, "banner.sizes.length") && (0 === n.length || !i && (n.some(function(e) { | |
return c.labels[e] | |
}) || n.some(function(e) { | |
return m()(o, e) | |
})) || i && n.reduce(function(e, t) { | |
return e ? c.labels[t] || m()(o, t) : e | |
}, !0)), | |
mediaTypes: s | |
}; | |
return u && u.length !== s.banner.sizes.length && (l.filterResults = { | |
before: u, | |
after: s.banner.sizes | |
}), l | |
}; | |
var r = n(3), | |
f = n(0), | |
i = n(12), | |
m = n.n(i); | |
function a(e) { | |
return (a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { | |
return typeof e | |
} : function(e) { | |
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e | |
})(e) | |
} | |
var g = []; | |
function h(e) { | |
return e.reduce(function(n, r) { | |
if ("object" === a(r) && "string" == typeof r.mediaQuery) { | |
var t = !1; | |
if ("" === r.mediaQuery) t = !0; | |
else try { | |
t = Object(f.getWindowTop)().matchMedia(r.mediaQuery).matches | |
} catch (e) { | |
Object(f.logWarn)("Unfriendly iFrame blocks sizeConfig from being correctly evaluated"), t = matchMedia(r.mediaQuery).matches | |
} | |
t && (Array.isArray(r.sizesSupported) && (n.shouldFilter = !0), ["labels", "sizesSupported"].forEach(function(t) { | |
return (r[t] || []).forEach(function(e) { | |
return n[t][e] = !0 | |
}) | |
})) | |
} else Object(f.logWarn)('sizeConfig rule missing required property "mediaQuery"'); | |
return n | |
}, { | |
labels: {}, | |
sizesSupported: {}, | |
shouldFilter: !1 | |
}) | |
} | |
r.b.getConfig("sizeConfig", function(e) { | |
return t = e.sizeConfig, void(g = t); | |
var t | |
}) | |
}, function(e, t, n) { | |
"use strict"; | |
t.b = function(e, t, n) { | |
var r, i = { | |
puts: e.map(d, n) | |
}; | |
Object(a.a)(o.b.getConfig("cache.url"), (r = t, { | |
success: function(e) { | |
var t; | |
try { | |
t = JSON.parse(e).responses | |
} catch (e) { | |
return void r(e, []) | |
} | |
t ? r(null, t) : r(new Error("The cache server didn't respond with a responses property."), []) | |
}, | |
error: function(e, t) { | |
r(new Error("Error storing video ad in the cache: ".concat(e, ": ").concat(JSON.stringify(t))), []) | |
} | |
}), JSON.stringify(i), { | |
contentType: "text/plain", | |
withCredentials: !0 | |
}) | |
}, t.a = function(e) { | |
return "".concat(o.b.getConfig("cache.url"), "?uuid=").concat(e) | |
}; | |
var a = n(4), | |
o = n(3), | |
s = n(0); | |
function d(e) { | |
var t, n, r, i = { | |
type: "xml", | |
value: e.vastXml ? e.vastXml : (t = e.vastUrl, r = (n = e.vastImpUrl) ? "<![CDATA[".concat(n, "]]>") : "", '<VAST version="3.0">\n <Ad>\n <Wrapper>\n <AdSystem>prebid.org wrapper</AdSystem>\n <VASTAdTagURI><![CDATA['.concat(t, "]]></VASTAdTagURI>\n <Impression>").concat(r, "</Impression>\n <Creatives></Creatives>\n </Wrapper>\n </Ad>\n </VAST>")), | |
ttlseconds: Number(e.ttl) | |
}; | |
return o.b.getConfig("cache.vasttrack") && (i.bidder = e.bidder, i.bidid = e.requestId, s.isPlainObject(this) && this.hasOwnProperty("auctionStart") && (i.timestamp = this.auctionStart)), "string" == typeof e.customCacheKey && "" !== e.customCacheKey && (i.key = e.customCacheKey), i | |
} | |
}, , , function(e, t, n) { | |
n(106); | |
var r = n(52); | |
e.exports = r("Array", "find") | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(14), | |
i = n(56).find, | |
a = n(51), | |
o = n(60), | |
s = "find", | |
d = !0, | |
c = o(s); | |
s in [] && Array(1).find(function() { | |
d = !1 | |
}), r({ | |
target: "Array", | |
proto: !0, | |
forced: d || !c | |
}, { | |
find: function(e, t) { | |
return i(this, e, 1 < arguments.length ? t : void 0) | |
} | |
}), a(s) | |
}, function(e, t, n) { | |
var r = n(27), | |
i = n(108), | |
a = n(46), | |
o = n(47), | |
s = n(55), | |
d = n(24), | |
c = n(74), | |
u = Object.getOwnPropertyDescriptor; | |
t.f = r ? u : function(e, t) { | |
if (e = o(e), t = s(t, !0), c) try { | |
return u(e, t) | |
} catch (e) {} | |
if (d(e, t)) return a(!i.f.call(e, t), e[t]) | |
} | |
}, function(e, t, n) { | |
"use strict"; | |
var r = {}.propertyIsEnumerable, | |
i = Object.getOwnPropertyDescriptor, | |
a = i && !r.call({ | |
1: 2 | |
}, 1); | |
t.f = a ? function(e) { | |
var t = i(this, e); | |
return !!t && t.enumerable | |
} : r | |
}, function(e, t, n) { | |
function r(e, t) { | |
var n = s[o(e)]; | |
return n == c || n != d && ("function" == typeof t ? i(t) : !!t) | |
} | |
var i = n(28), | |
a = /#|\.prototype\./, | |
o = r.normalize = function(e) { | |
return String(e).replace(a, ".").toLowerCase() | |
}, | |
s = r.data = {}, | |
d = r.NATIVE = "N", | |
c = r.POLYFILL = "P"; | |
e.exports = r | |
}, function(e, t, n) { | |
var r = n(23), | |
i = n(111), | |
a = n(19)("species"); | |
e.exports = function(e, t) { | |
var n; | |
return i(e) && ("function" == typeof(n = e.constructor) && (n === Array || i(n.prototype)) || r(n) && null === (n = n[a])) && (n = void 0), new(void 0 === n ? Array : n)(0 === t ? 0 : t) | |
} | |
}, function(e, t, n) { | |
var r = n(48); | |
e.exports = Array.isArray || function(e) { | |
return "Array" == r(e) | |
} | |
}, function(e, t, n) { | |
var r = n(22), | |
i = n(29); | |
e.exports = function(t, n) { | |
try { | |
i(r, t, n) | |
} catch (e) { | |
r[t] = n | |
} | |
return n | |
} | |
}, function(e, t, n) { | |
var r = n(78); | |
e.exports = r && !Symbol.sham && "symbol" == typeof Symbol.iterator | |
}, function(e, t, n) { | |
n(115); | |
var r = n(52); | |
e.exports = r("Array", "includes") | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(14), | |
i = n(79).includes, | |
a = n(51); | |
r({ | |
target: "Array", | |
proto: !0, | |
forced: !n(60)("indexOf", { | |
ACCESSORS: !0, | |
1: 0 | |
}) | |
}, { | |
includes: function(e, t) { | |
return i(this, e, 1 < arguments.length ? t : void 0) | |
} | |
}), a("includes") | |
}, function(e, t, n) { | |
var r = n(58), | |
i = Math.max, | |
a = Math.min; | |
e.exports = function(e, t) { | |
var n = r(e); | |
return n < 0 ? i(n + t, 0) : a(n, t) | |
} | |
}, function(e, t, n) { | |
n(118), n(135), n(90), n(137); | |
var r = n(42); | |
e.exports = r.Set | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(119), | |
i = n(124); | |
e.exports = r("Set", function(t) { | |
return function(e) { | |
return t(this, arguments.length ? e : void 0) | |
} | |
}, i) | |
}, function(e, t, n) { | |
"use strict"; | |
var p = n(14), | |
l = n(22), | |
f = n(81), | |
m = n(28), | |
g = n(29), | |
h = n(17), | |
b = n(84), | |
y = n(23), | |
v = n(64), | |
w = n(31).f, | |
I = n(56).forEach, | |
T = n(27), | |
r = n(54), | |
S = r.set, | |
k = r.getterFor; | |
e.exports = function(n, e, t) { | |
var r, o, i = -1 !== n.indexOf("Map"), | |
s = -1 !== n.indexOf("Weak"), | |
a = i ? "set" : "add", | |
d = l[n], | |
c = d && d.prototype, | |
u = {}; | |
return T && "function" == typeof d && (s || c.forEach && !m(function() { | |
(new d).entries().next() | |
})) ? (r = e(function(e, t) { | |
S(b(e, r, n), { | |
type: n, | |
collection: new d | |
}), null != t && h(t, e[a], e, i) | |
}), o = k(n), I(["add", "clear", "delete", "forEach", "get", "has", "set", "keys", "values", "entries"], function(i) { | |
var a = "add" == i || "set" == i; | |
i in c && (!s || "clear" != i) && g(r.prototype, i, function(e, t) { | |
var n = o(this).collection; | |
if (!a && s && !y(e)) return "get" == i && void 0; | |
var r = n[i](0 === e ? 0 : e, t); | |
return a ? this : r | |
}) | |
}), s || w(r.prototype, "size", { | |
configurable: !0, | |
get: function() { | |
return o(this).collection.size | |
} | |
})) : (r = t.getConstructor(e, n, i, a), f.REQUIRED = !0), v(r, n, !1, !0), u[n] = r, p({ | |
global: !0, | |
forced: !0 | |
}, u), s || t.setStrong(r, n, i), r | |
} | |
}, function(e, t, n) { | |
var r = n(28); | |
e.exports = !r(function() { | |
return Object.isExtensible(Object.preventExtensions({})) | |
}) | |
}, function(e, t, n) { | |
"use strict"; | |
var r = n(63), | |
i = n(62); | |
e.exports = r ? {}.toString : function() { | |
return "[object " + i(this) + "]" | |
} | |
}, function(e, t, n) { | |
var r = n(22), | |
i = n(123), | |
a = r.WeakMap; | |
e.exports = "function" == typeof a && /native code/.test(i(a)) | |
}, function(e, t, n) { | |
var r = n(77), | |
i = Function.toString; | |
"function" != typeof r.inspectSource && (r.inspectSource = function(e) { | |
return i.call(e) | |
}), e.exports = r.inspectSource | |
}, function(e, t, n) { | |
"use strict"; | |
var c = n(31).f, | |
u = n(85), | |
p = n(129), | |
l = n(21), | |
f = n(84), | |
m = n(17), | |
o = n(66), | |
s = n(134), | |
g = n(27), | |
h = n(81).fastKey, | |
r = n(54), | |
b = r.set, | |
y = r.getterFor; | |
e.exports = { | |
getConstructor: function(e, n, r, i) { | |
function a(e, t, n) { | |
var r, i, a = d(e), | |
o = s(e, t); | |
return o ? o.value = n : (a.last = o = { | |
index: i = h(t, !0), | |
key: t, | |
value: n, | |
previous: r = a.last, | |
next: void 0, | |
removed: !1 | |
}, a.first || (a.first = o), r && (r.next = o), g ? a.size++ : e.size++, "F" !== i && (a.index[i] = o)), e | |
} | |
function s(e, t) { | |
var n, r = d(e), | |
i = h(t); | |
if ("F" !== i) return r.index[i]; | |
for (n = r.first; n; n = n.next) | |
if (n.key == t) return n | |
} | |
var o = e(function(e, t) { | |
f(e, o, n), b(e, { | |
type: n, | |
index: u(null), | |
first: void 0, | |
last: void 0, | |
size: 0 | |
}), g || (e.size = 0), null != t && m(t, e[i], e, r) | |
}), | |
d = y(n); | |
return p(o.prototype, { | |
clear: function() { | |
for (var e = d(this), t = e.index, n = e.first; n;) n.removed = !0, n.previous && (n.previous = n.previous.next = void 0), delete t[n.index], n = n.next; | |
e.first = e.last = void 0, g ? e.size = 0 : this.size = 0 | |
}, | |
delete: function(e) { | |
var t, n, r = d(this), | |
i = s(this, e); | |
return i && (t = i.next, n = i.previous, delete r.index[i.index], i.removed = !0, n && (n.next = t), t && (t.previous = n), r.first == i && (r.first = t), r.last == i && (r.last = n), g ? r.size-- : this.size--), !!i | |
}, | |
forEach: function(e, t) { | |
for (var n, r = d(this), i = l(e, 1 < arguments.length ? t : void 0, 3); n = n ? n.next : r.first;) | |
for (i(n.value, n.key, this); n && n.removed;) n = n.previous | |
}, | |
has: function(e) { | |
return !!s(this, e) | |
} | |
}), p(o.prototype, r ? { | |
get: function(e) { | |
var t = s(this, e); | |
return t && t.value | |
}, | |
set: function(e, t) { | |
return a(this, 0 === e ? 0 : e, t) | |
} | |
} : { | |
add: function(e) { | |
return a(this, e = 0 === e ? 0 : e, e) | |
} | |
}), g && c(o.prototype, "size", { | |
get: function() { | |
return d(this).size | |
} | |
}), o | |
}, | |
setStrong: function(e, t, n) { | |
var r = t + " Iterator", | |
i = y(t), | |
a = y(r); | |
o(e, t, function(e, t) { | |
b(this, { | |
type: r, | |
target: e, | |
state: i(e), | |
kind: t, | |
last: void 0 | |
}) | |
}, function() { | |
for (var e = a(this), t = e.kind, n = e.last; n && n.removed;) n = n.previous; | |
return e.target && (e.last = n = n ? n.next : e.state.first) ? "keys" == t ? { | |
value: n.key, | |
done: !1 | |
} : "values" == t ? { | |
value: n.value, | |
done: !1 | |
} : { | |
value: [n.key, n.value], | |
done: !1 | |
} : { | |
value: e.target = |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment