Skip to content

Instantly share code, notes, and snippets.

@braiam
Created October 9, 2016 15:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save braiam/88c3cf7e00d6fd0514b4eb02b2c1322b to your computer and use it in GitHub Desktop.
Save braiam/88c3cf7e00d6fd0514b4eb02b2c1322b to your computer and use it in GitHub Desktop.
<html>
<head>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
<meta http-equiv="pragma" content="no-cache">
</head>
<body style="margin:0">
<script type="text/javascript">
<!--
var __IntegralASDiagnosticCall = function() {};
try {
var __IntegralASConfig = {
jsDoSplit: "false",
cocaPuffsPath: "",
debug: "false",
killPhrases: "",
jsDiag: 'false',
version: '0',
mtCell: 10,
sp_imp_maxLength: 2000,
sp_imp_jload_maxLength: 2000,
sp_imp_jsInfo_minLength: 0,
mtSample: 5,
cookieDomain: 'sc.iasds01.com/dtc',
trackMouse: "true",
exchList: {
'e1': 'nqzryq',
'e2': 'tbbtyrnqf.t.qbhoyrpyvpx',
'e3': 'ehovpbacebwrpg',
'e4': 'chozngvp',
'e5': 'bcrak',
'e6': 'nqoevgr.pbz',
'e7': 'tynz.pbz',
'e8': 'lvryqznantre.pbz',
'e9': 'yvwvg',
'e10': 'nqakf',
'p11': 'ghea.pbz',
'p12': 'zngugnt',
'p13': 'vaivgrzrqvn',
'p14': 'qngnkh',
'n15': 'zrqvn6qrterrf',
'n16': 'dhnagfreir',
'n17': 'esvuho.arg',
'a18': 'napubeserr',
'a19': 'eff2frnepu',
'a20': 'mgfgngvp.pbz',
'n21': 'ovq.npr.nqiregvfvat',
'e22': 'wnfba',
'v23': 'fcbgkpqa',
'v24': 'ogeyy',
'v25': 'yvirenvy',
'v26': 'nqncgi',
'v27': 'nqnc.gi',
'n29': 'qbzqrk.pbz',
'n30': 'ernyih.arg',
'd31': 'cvengronl',
'd32': 'cebklonl',
'd33': 'onlcebkl',
'd34': 'cvengrcebkl',
'd35': 'cebklcvengr',
'd36': 'onlcvengr',
'n37': 'tjnyyrg',
'p39': 'j55p.arg',
'p40': 'c0l.pa',
'p41': 'vcvalbh.pbz',
'p42': 'c0lwferaqre'
},
killFlash: 'true',
sp_cdnDomain: 'cdn.adsafeprotected.com',
protocol: 'https',
jsref: "http:\/\/stackoverflow.com\/questions\/39944781\/visual-studio-setup-failed\/39944947",
asid: "3c4272b6-8e34-11e6-8fcc-0025904ea2d8",
allowViewability: "true",
jsFeatures: "mousetrack,viewabilityready,consecutive,cachebust:0,forcecocoa:0,rattie,exch,recordalternate:0,cocoapuffs,usedtdomain,nextcocoa:100,bapiDiag,cookie,postDts:0,videotwoseconds,getPl,decodePl,resolution,usetpl,tpiLookupURL,hundredpct,jloadDiag:0,blur:0,sendclogs,zeroPing,idMap,offscreen,everySecond:1,sdkdetection,moreAdTalkCalls,slid,fm2:1,largeAd,nextcocoaie:100,usevh,fxdet,mmsb:100,bigmon:0,chromeNativeIO:100,oddet:100,ios:0,ancestor:100,avmm:100,avgrn:100,useScreenLocationInfoAdaptor:100,swapids:100,pIntervals:10,firewall_cdn_domain,usesca:0",
adsafeDomain: "adsafeprotected.com:80",
minimizeCalls: "false",
adWidth: "300",
adHeight: "250",
forceAppend: "false",
_onInViewMRC15: __IntegralASConfig && __IntegralASConfig.onInViewMRC15,
_onAPIResult: __IntegralASConfig && __IntegralASConfig.onAPIResult,
_onMeasurable: __IntegralASConfig && __IntegralASConfig.onMeasurable,
_onSuspicious: __IntegralASConfig && __IntegralASConfig.onSuspicious,
_onInViewMRC: __IntegralASConfig && __IntegralASConfig.onInViewMRC,
_onInViewFull: __IntegralASConfig && __IntegralASConfig.onInViewFull,
_onInViewMRC5: __IntegralASConfig && __IntegralASConfig.onInViewMRC5,
reqquery: "",
mode: "rjsi",
requrl: "https:\/\/fw.adsafeprotected.com\/mon",
dtBaseURL: "https:\/\/dt.adsafeprotected.com\/dt?advEntityId=65472",
adsafeSrc: "https:\/\/fw.adsafeprotected.com\/rfw\/ad.atdmt.com\/65472\/10865004\/d\/a.html;p=11087208769628;cod=1;idfa=;idfa_lat=;aaid=;aaid_lat=;cache=1476025155332?click=https%3A%2F%2Fengine.adzerk.net%2Fr%3Fe%3DeyJhdiI6NDM3LCJhdCI6NSwiYnQiOjAsImNtIjo0ODczOTQsImNoIjoxMTc4LCJjayI6e30sImNyIjoxNzAyNTQyLCJkaSI6IjNiZDgzNWIyNjkzOTQzMDBiODBjMzAwNjZiMjY1ODk5IiwiZG0iOjEsImZjIjoyMDIyNjAwLCJmbCI6MjM2ODYzMywiaXAiOiIxNDguMTAxLjIzMS4yMzMiLCJrdyI6InZpc3VhbC1zdHVkaW8seDg2LHdpbmRvd3MtMTAseC11c2VyLXJlZ2lzdGVyZWQseC0xNTAwcGx1cy1yZXAiLCJtayI6InZpc3VhbC1zdHVkaW8iLCJudyI6MjIsInBjIjo2LjYsImVjIjo2LjYsInByIjo4MjE5OSwicnQiOjIsInJmIjoiaHR0cDovL2NoYXQuc3RhY2tvdmVyZmxvdy5jb20vcm9vbXMvNDE1NzAvc28tY2xvc2Utdm90ZS1yZXZpZXdlcnMiLCJzdCI6ODI3NywidWsiOiJ1ZTEtNDlmYzU0MmIwODcyNDExMGIxOGQ2NGVlYjI3OTA0OWMiLCJ6biI6NDUsInRzIjoxNDc2MDI1MTU1MzMzLCJiZiI6dHJ1ZSwicG4iOiJhZHplcms3MDk1NjE2OTkiLCJ1ciI6bnVsbH0%26s%3DFznTTw6e8UZQkignHDresWHKLNk%26url=",
tpiLookupURL: "",
getTpl: "false",
use100v: false,
useBapiCallback: "",
useViewabilityNotification: "",
scriptUrl: "https://fw.adsafeprotected.com/rjsi/ad.atdmt.com/65472/10865004/d/a.html;p=11087208769628;cod=1;idfa=;idfa_lat=;aaid=;aaid_lat=;cache=1476025155332?cl",
accountForSadImps: '',
sendCookie: 'true',
cookieBaseURL: 'sc.iasds01.com/dtc?advEntityId=65472',
fwMonitoring: 'false',
doNothing: false,
mn: "app15dal",
mobOrTab: false,
mobFwUrl: "",
videoId: ''
};
if (__IntegralASConfig.jsFeatures.indexOf('asidJsDiagnostic') !== -1) {
var fakeErr = {
message: __IntegralASConfig.asid
};
__IntegralASDiagnosticCall('asid', fakeErr);
}
__IntegralASConfig.birthdate = new Date().getTime();
__IntegralASConfig.useFIF = (!!window.__IntegralASUseFIF) && __IntegralASConfig.mode === 'jload';
__IntegralASConfig.contextNode = (function() {
if (__IntegralASConfig.useFIF) {
return window.frameElement; // Early exit if using FIF
}
var tempScript,
embedded = window != top,
scripts = document.getElementsByTagName('script'),
result = scripts[scripts.length - 1],
scriptIndex = scripts.length,
useDocWrite = 'jss,jsi,jspix'.indexOf(__IntegralASConfig.mode) !== -1,
scriptUrl = __IntegralASConfig.scriptUrl;
try {
while (--scriptIndex >= 0) {
tempScript = scripts[scriptIndex];
if (tempScript.src && tempScript.src.indexOf(scriptUrl) === 0 && tempScript.getAttribute('data-ias-script-tag') === null) {
result = tempScript;
tempScript.setAttribute('data-ias-script-tag', 'found');
break;
}
}
if (scriptIndex === 0 && useDocWrite && !embedded) {
document.write('<span id="s' + __IntegralASConfig.asid + '"/>');
result = document.getElementById('s' + __IntegralASConfig.asid).parentNode;
}
} catch (e) {}
return result;
}());
} catch (err) {
__IntegralASConfig = {};
__IntegralASDiagnosticCall('bootstrapper', err);
}
__IntegralASConfig.initialize = function(p, u, B) {
var l, Db = function() {
l = new X;
var a;
l.provide("mobileApp", function() {
return a = a || new va(b)
});
var b = l.provide("features", wa()),
c = xa(),
d = ya(c),
e = new za(l),
h = function() {
var a = new Aa(n.getWindow(), new J),
c = new Ba(n.getWindow()),
b = new Ca(n.getWindow(), c, p.mode),
d = new Da(a, new J),
e = new Ea(n.getWindow(), new J),
c = new Fa(n.getWindow(), c, p.mode),
a = new Ga(a, e, new J),
b = (new Ha([{
environment: b,
measurementStrategy: d
}, {
environment: c,
measurementStrategy: a
}])).resolve(),
d = new Ia(b);
return new Ja(b, d)
}();
b.on("swapids") && (p.oid = p.asid, p.asid = d.unq);
var k, r, t, q, m = Ka(),
x = La(),
w = Ma(b),
A = Na(),
z = Oa(l),
D = l.provide("mPage", Pa()),
G = Qa(),
H = Ra(G, n),
F = Sa(),
C = Ta(),
L = Ua(c, C),
C = l.provide("browser", Va()),
ma = l.provide("intersectionWatcher", Wa(n.getDoc().body));
l.provide("ieXDomainViewability", Xa(C));
l.provide("iframe", Ya(C));
var u = Za(C),
v = l.provide("video", s.isVideo() && !s.isAvid() ? $a(p.videoId, b, F) : {});
ab(bb.build());
var y = cb(c, u, b),
B = db(y, c, D),
M = eb(z),
E = fb(y, c, b, d, e, C, F, A),
A = gb(),
N = hb(c, b, l, z),
z = ib(L, E, c, d, e),
U = jb(L, E),
N = kb(N, b, h.isImmediate()),
O = lb(h, C, E, c, b, u, l, d, e, M, D, B, F, v),
D = mb(L, c, b, d, N, e, C, O),
d = nb(C, d, O),
F = ob(),
L = pb(),
u = qb(),
v = rb(),
B = sb(),
M = tb(),
N = ub(),
R = vb(),
I = wb();
E.setViewabilityMod(O);
var S;
if (! function() {
var a = !1,
b, d;
try {
f.isDef(p) && f.isDef(p.killPhrases) && "" !== p.killPhrases && (b = p.adsafeSrc ? p.adsafeSrc : p.requrl + p.reqquery, d = p.killPhrases.split(","), f(d).each(function(c, e) {
e = decodeURIComponent(d[c]).replace(/^\s+|\s+$/g, ""); - 1 !== b.search(e) && (a = !0)
})), p.doNothing &&
(a = !0)
} catch (e) {
c.add(g.ERROR_CODES.KILL_IT)
}
return a
}()) {
if (w.isApplicable(s)) try {
w.start(), e.addItem(w.getFrameMap(), "fm"), b.on("fm2") && e.addItem(w.getFrameMapIncludingPeerCase(), "fm2"), b.on("idMap") && (k = w.getIdMap()) && e.addItem(k, "idMap")
} catch (Q) {
c.add(g.ERROR_CODES.ADTALK_GENERAL)
}
k = xb();
k.isApplicable() && k.start();
G.isApplicable(C, b, s) && G.start();
var P;
try {
ma.isApplicable(C, b, s) && ma.start();
"true" !== p.minimizeCalls && O.init();
b.on("mousetrack") && (q = yb(y, e), q.init());
P = H.detectTopURL();
b.on("exch") &&
(r = zb(c, e), r.parse(P));
if (b.on("getPl") && navigator && navigator.plugins) {
t = Ab(navigator.plugins);
var Y = t.hash();
e.addItem({
output: Y.join(".")
}, "pl", {
type: g.DT_CODES.ADTALK
});
if (b.on("decodePl") && Y.length) {
var Z = t.decode(Y);
e.addItem({
output: Z.join(".")
}, "pd", {
type: g.DT_CODES.ADTALK
})
}
}
b.bootstrapOn("use100v") && Bb();
A.isApplicable(b) && (A.start(), l.trigger("sendCookie"))
} catch (ca) {
c.add(g.ERROR_CODES.IMPRESSION_LEADUP)
}
try {
D.send(P)
} catch ($) {
__IntegralASDiagnosticCall("impsend", $, p)
}
try {
d.isApplicable(b) &&
d.start(), b.bootstrapOn("getTpl") && b.on("usetpl") && z.init(), p.tpiLookupURL && U.init(p.tpiLookupURL), Cb(b), "true" !== p.minimizeCalls && (S = (new Date).getTime(), n.execAtEndOfThread(function() {
n.execAtEndOfThread(function() {
try {
var a = {
output: (new Date).getTime() - S
};
e.addItem(a, "sinceFw", {
type: g.DT_CODES.ADTALK
});
f.isDef(O.readyFired()) && e.addItem({
output: O.readyFired()
}, "readyFired", {
type: g.DT_CODES.ADTALK
});
w.isApplicable(s) && w.sendAdTalkCall()
} catch (b) {
c.add(g.ERROR_CODES.ADTALK_DELAY)
}
})
})), h && h.start(),
F.isApplicable(b, C) && F.start(C), L.isApplicable(b, C) && L.start(), B.isApplicable(b, C) && B.start(), M.isApplicable(b, C) && M.start(), u.isApplicable(b) && u.start(), v.isApplicable(b, C) && v.start(), R.isApplicable(b) && R.start(), I.start({
sca: "usesca"
}, b), G.isStarted() && G.sendOriginList(), m.isApplicable(b) && (m.start(), x.start(), x.addFieldTypes(["im"]), K.recordBlockingTime(), K.setupOnLoadTracking(), K.setupBrowserDelayTracking()), N.isApplicable(b) && N.start()
} catch (T) {
c.add(g.ERROR_CODES.POST_IMPRESSION)
}
}
},
f = function(a) {
var b =
function(b) {
var d = null === a,
d = "object" === typeof a && !d,
e = !c() && d;
return b ? d : e
},
c = function() {
return a instanceof Array
},
d = function(c, b) {
if (a.length === +a.length)
for (var d = 0, e = a.length; d < e; ++d) c(d, a[d]);
else
for (d in a)(a.hasOwnProperty(d) || b) && c(d, a[d])
},
e = function(a, c) {
var b = [];
d(function(d, e) {
var k = a(d, e);
if (void 0 !== k || c) b[b.length] = k
});
return b
},
h = function(a, c) {
c = c || ",";
var b = [];
d(function(c, d) {
var e = a(c, d);
f.isDef(e) && b.push(e)
});
return b.join(c)
},
k = function(a, c, b) {
for (var d in c) f.isDef(c[d]) &&
(b || c.hasOwnProperty(d)) && (a[d] = c[d]);
return a
},
r = function(a) {
var c = {};
d(function(d, e) {
var h = a(d, e);
b(h) && k(c, h)
});
return c
},
t = function(a) {
var c = [];
d(function(a) {
c.push(a)
}, a);
return c
};
return {
each: d,
isObj: b,
isArray: c,
isEmpty: function(a) {
return 0 === t(a).length
},
invert: function() {
return r(function(a, c) {
var b = {};
b[c] = a;
return b
})
},
mapToObj: r,
map: e,
keys: t,
toParams: function(a) {
return h(function(a, c) {
return "string" === typeof a && -1 !== a.indexOf("NULL") ? c : a + ":" + c
}, a)
},
stringify: h,
toION: function(d, k) {
var h,
t = "[",
r = "]";
k = k || 0;
d = d || {};
if (4 < ++k) return "object";
if (!b(!0) || a.hasOwnProperty("toString")) return "" + a;
c() ? h = e(function(a, c) {
return f(c).toION(d, k)
}) : (t = "{", r = "}", h = e(function(a, c) {
var b = "string" === typeof a && -1 !== a.indexOf("NULL"),
e = f(c).toION(d, k);
return b ? e : (d[a] || a) + ":" + e
}));
return t + h.join(",") + r
},
compareTo: function(a) {
var c = !1;
d(function(b, d) {
a[b] !== d && (c || (c = {}), c[b] = d)
});
return c
},
mixin: function(c, b) {
return k(a, c, b)
},
find: function(a) {
var c;
d(function(b, d) {
a(b, d) && (c = d)
});
return c
},
findFirst: function(a) {
var c,
b;
d(function(d, e) {
!b && a(d, e) && (c = e, b = !0)
});
return c
},
asStrings: function() {
var a = {};
d(function(c, b) {
a[c] = "" + b
});
return a
},
selectProperties: function(c) {
var b = {};
f(c).each(function(c, d) {
f.isDef(a[d]) && (b[d] = a[d])
});
return b
},
filter: function(a, c) {
return e(function(c, b) {
var d;
if (f.isUndef(a) || f.resolve(a, c, b)) d = b;
return d
}, c)
},
toArray: function() {
return e(function(a, c) {
return c
})
},
JSONStringify: function() {
var c, b, d = !1;
u.Prototype && u.Prototype.Version && -1 === u.Prototype.Version.indexOf("1.7") && (d = !0);
d &&
(b = Array.prototype.toJSON, delete Array.prototype.toJSON);
c = JSON.stringify(a);
d && (Array.prototype.toJSON = b);
return c
}
}
};
f.toBase = function(a, b) {
var c, d = 0 > a,
e = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),
h = [];
a = d ? -a : a;
do c = a % b, h.push(e[c]), a = (a - c) / b; while (0 < a);
h = h.reverse().join("");
return d ? "-" + h : h
};
f.isDef = function(a) {
return "undefined" !== typeof a
};
f.isUndef = function(a) {
return !f.isDef(a)
};
f.isBool = function(a) {
return "boolean" === typeof a
};
f.noop = function() {};
f.identity = function(a) {
return a
};
f.isFunction = function(a) {
return "function" === typeof a
};
f.isStr = function(a) {
return "string" === typeof a
};
f.useIfDef = function(a) {
return f.isDef(a) ? a : !1
};
f.stringifyTriState = function(a) {
return !0 === a ? 1 : !1 === a ? 0 : "na"
};
f.resolve = function(a) {
var b = f(arguments).toArray();
b.shift();
return f.isFunction(a) ? a.apply({}, b) : a
};
f.flatJSONParse = function(a) {
var b, c, d, e = /"(\w+)":(\d+|(?:"([^"]*)"))/g,
h = {};
for (d = e.exec(a); d;) b = d[1], c = d[3], d = d[2], h[b] = c || +d, d = e.exec(a);
return h
};
f.debounce = function(a, b) {
var c;
return function() {
var d =
this,
e = arguments;
clearTimeout(c);
c = setTimeout(function() {
c = null;
a.apply(d, e)
}, b)
}
};
f.last = function(a) {
return a[a.length - 1]
};
f.collapseArgsIntoHash = function(a, b) {
var c = {};
b ? c[a] = b : c = a;
return c
};
var Bb = function() {
var a, b, c = !1,
d = l.request("mPage"),
e = function() {
!c && b && a && !d.isHidden() && (c = !0, l.trigger("sendDt", g.DT_CODES.LARGE_BILLABLE))
};
l.on("primaryadfound", function(c) {
a = c.getDims().area() >= g.MRC_LARGE_AD_SIZE;
e()
});
l.on("impressionsent", function() {
b = !0;
e()
});
d.onHiddenChange(e)
},
Na = function() {
var a = [],
b = {},
c = {
percentInView: "piv",
sl: "vs",
reason: "r",
width: "w",
height: "h"
};
l.on("newScreenEvent", function(d) {
d = f(d).selectProperties(f(c).keys());
d = f(d).asStrings();
var e = f(d).compareTo(b);
e && (e.t = s.getTagTime(), a.push(e));
f(b).mixin(d)
});
return {
toString: function() {
return f(a).toION(c)
}
}
},
Eb = function(a, b, c, d, e, h, k) {
var r;
(function() {
var h = c.getRounded(),
f = h.width - 5,
m = h.height - 5,
g = 0.5 * h.width + 1,
h = 0.5 * h.height + 1;
r = [new a(b, f, m, e, k, d), new a(b, f, 5, e, k, d), new a(b, 5, m, e, k, d), new a(b, 5, 5, e, k, d), new a(b, g, h,
e, k, d)]
})();
return {
getNumInView: function() {
var a = [],
c = 0;
f(r).each(function(c, b) {
var d = b.isInView() ? 1 : 0;
a.push(d)
});
h.addItem({
output: a.join(".")
}, "pvs");
f(a).each(function(a, b) {
c += b
});
return c
},
getPctInView: function(a) {
return 5 === a ? 100 : 3 <= a ? 51 : 0
},
isReady: function() {
var a = !0;
f(r).each(function(c, b) {
b.isNotReadyToReport() && (a = !1)
});
return a
},
remove: function() {
f(r).each(function(a, c) {
try {
c.remove()
} catch (b) {}
})
}
}
},
Fb = function(a, b, c, d, e, h, k, r) {
var t = e.on("nextcocoa") ? na : oa,
q = new a(t, B.body, b, d, e, k, r),
m, x, w = 0;
c = c || f.noop;
m = setInterval(function() {
q.isReady() && !x ? (x = !0, c(), clearInterval(m)) : (5 === ++w || x) && clearInterval(m)
}, 50);
return {
checkViewable: function() {
var a = q.isReady(),
b = q.getNumInView(),
b = q.getPctInView(b),
d = h.calcInitialViewState(b, !0);
a && !x && (x = !0, c());
return {
str: a ? d : g.NA,
pct: a ? b : -1
}
},
removePixels: function() {
q.remove()
}
}
},
ca = function(a, b, c, d, e, h) {
var k, r, t = b.getRounded(),
q = [],
m = !1,
x = 0,
w = d.on("largeAd") && b.isMrcLarge() && !s.isVideo() ? Gb(t) : Hb(t),
l = function() {
var a;
if (!m)
for (m = !0, a = 0; a < q.length; a++)
if (q[a].isNotReadyToReport()) {
m = !1;
break
}
return m
},
z = function() {
var a = 0;
f(q).each(function(c, b) {
b.isInView() && (a += 1)
});
return w.getPctInView(a)
};
(function() {
var c = w.get();
f(c).each(function(c, b) {
var k = new a(B.body, b.x, b.y, d, e, h);
k.weight = b.weight;
q.push(k)
})
})();
c = c || f.noop;
k = setInterval(function() {
l() && !r ? (r = !0, c(), clearInterval(k)) : (5 === ++x || r) && clearInterval(k)
}, 50);
return {
checkViewable: function() {
var a = l(),
e;
a && (e = d.on("largeAd") && b.isMrcLarge() ? 30 : 50, e = z() >= e ? g.IN_VIEW : g.OUT_OF_VIEW);
a && !r && (r = !0, c());
return {
str: a ? e : g.NA,
pct: a ?
z() : -1
}
},
removePixels: function() {
f(q).each(function(a, c) {
try {
c.remove()
} catch (b) {}
})
}
}
},
X = function() {
var a = new Ib,
b = new J;
return f(a).mixin(b)
},
J = function() {
var a = {},
b = function(c, b) {
a[c] = a[c] || new da;
a[c].push(b)
};
return {
on: function(a, d) {
d ? b(a, d) : f(a).each(b)
},
trigger: function(c) {
var b, e = f(arguments).toArray();
if (b = a[c]) e.shift(), b.run.apply({}, e)
}
}
},
xb = function() {
var a = {},
b = {
ox: 0
},
c = n.getWindow(),
d = f.isDef(c.JSON) && f.isDef(c.postMessage),
e = function(c) {
var d = c.uniqueId;
c = b[c.vendorKey];
var e = !1;
f.isDef(c) &&
1 > c && d && !a[d] && (e = !0);
return e
},
h = function(a, c) {
if (c) return c.type = "receipt", c
},
k = function(c, d, e) {
b[d.vendorKey] ++;
e();
a[d.uniqueId] = !0;
r(d) && (e = "false" === d.isSampling, c = ["ext", d.vendorKey, d.dataKey].join("_"), e = {
encode: !0,
minDt: e,
type: e ? g.DT_CODES.EXTERNAL : g.DT_CODES.UNLOAD
}, l.trigger("addOutputItem", {
output: d.dataValue
}, c, e), l.trigger("addOutputItem", {
output: d.vendorKey
}, "ext_vendor", e), "false" === d.isSampling && l.trigger("sendMinDt", g.DT_CODES.EXTERNAL))
},
r = function(a) {
var c = function(a) {
return f.isStr(a) &&
100 > a.length
};
return c(a.vendorKey) && c(a.dataKey) && c(a.dataValue)
};
return {
isApplicable: function() {
return d
},
start: function() {
(new ea).listen(e, k, h)
}
}
},
T = function(a, b, c, d) {
var e = l.request("browser");
if (l.request("features").bootstrapOn("killFlash")) return {
style: {},
isPlaceholder: !0
};
var h = function(a, c) {
return '<param name="' + a + '" value="' + c + '"/>'
};
return function() {
var k, f, t, q = p.dtBaseURL,
m = p.cocaPuffsPath,
q = new I(q);
q.sub(b || "static");
q.master(q.master().split(":")[0]);
q.path("");
m && (q.master(m), q.sub(""));
q += a;
m = h("allowscriptaccess", "always");
k = h("movie", q) + h("play", "true") + h("loop", "true");
t = e.browserIs(g.BROWSERS.IE) || e.browserIs(g.BROWSERS.MSEDGE);
f = e.browserIs(g.BROWSERS.IE);
t && (t = d ? "window" : "transparent", k += h("wmode", t));
c && (m += h("FlashVars", c));
f ? (f = B.createElement("div"), t = "blag" + p.birthdate + n.random(), f.innerHTML = "<object " + ('id="' + t + '" ') + 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ' + ('type="' + g.FLASH_MIME + '" ') + ('data="' + q + '" ') + ">" + k + m + "</object>", k = f.firstChild) : (k = B.createElement("object"),
k.data = q, k.type = g.FLASH_MIME, k.innerHTML = m);
q = k;
q.style.position = "absolute";
q.style.width = "1px";
q.style.opacity = "0";
q.style.height = "0px";
return k
}()
},
na = function(a, b, c, d, e, h, k, r) {
var t = h.browserIs(g.BROWSERS.IE) || h.browserIs(g.BROWSERS.MSEDGE),
q = "_IASflashPixelCallback" + (p.birthdate + "" + n.round(1E6 * n.random())),
m = !1,
x = !1,
w, A, z, D, G = function() {
if (w && f.isFunction(w.jsHandshake) && !m) {
w.style.height = "1px" === w.style.height ? "2px" : "1px";
try {
w.confirmResize()
} catch (a) {
m = !0, l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS)
}
}
},
H = function() {
if (m) return !1;
var a, c;
try {
(a = D || w && f.isFunction(w.jsHandshake)) && !x && (D = !0, u[q] = F, c = w.jsHandshake(q), x = !0, F(c))
} catch (b) {
a = !1, m = !0, l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS)
}
return a
},
F = function(a) {
try {
if (f.isUndef(a.isInView)) throw "corrupted Flash pixel message received";
z = 1 === +a.isInView
} catch (c) {
l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS)
}
},
C = function(a, c, b) {
var d = new T(t ? "/detector_4_5_IE.pix" : "/detector_4_5.pix"),
e = d.style;
d[g.IAS_DETECTOR] = "true";
e.left = c + "px";
e.top =
b + "px";
d.isPlaceholder || a.appendChild(d);
e.height = "1px";
w = d;
t && !d.isPlaceholder && setInterval(G, 100);
return d
}(a, b, c);
return {
isInView: function() {
var a;
if (H()) {
try {
a = z
} catch (c) {
D = !1, l.trigger("error", g.ERROR_CODES.COCOA_GONE)
}
h.browserIs("w") && void 0 !== a && (w.style.height = A ? "1px" : "2px", A = !A)
}
return H() && a
},
isNotReadyToReport: function() {
return !H()
},
createdFlash: w,
remove: function() {
C.parentNode && C.parentNode.removeChild(C)
}
}
},
oa = function(a, b, c, d, e, h, k) {
var r = h.browserIs(g.BROWSERS.IE) || h.browserIs(g.BROWSERS.MSEDGE),
t = !1,
q, m, x, w, A, z = function(a, c) {
return '<param name="' + a + '" value="' + c + '"/>'
},
D = function(a, c) {
return a + '="' + c + '" '
},
G = function() {
if (H() && !t) {
q.style.height = "1px" === q.style.height ? "2px" : "1px";
try {
q.confirmResize()
} catch (a) {
t = !0, l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS)
}
}
},
H = function() {
var a = !1;
try {
a = q && f.isFunction(q.jsHandshake)
} catch (c) {}
return a
},
F = function() {
if (t) return !1;
var a;
try {
if ((a = A || H()) && !x) {
A = !0;
var c = f.flatJSONParse(q.jsHandshake());
x = c.id;
if (f.isUndef(x)) throw "corrupted Flash pixel message received";
w = 1 === +c.isInView
}
} catch (b) {
a = !1, t = !0, l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS)
}
return a
};
y.addEvent(u, "message", function(a) {
try {
var c = f.flatJSONParse(a.data);
"IASCOCOA" === c.type && c.id === x && (w = 1 === +c.isInView)
} catch (b) {
l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS)
}
});
var C = function(a, c, b) {
var d;
d = new I;
var e = p.cocaPuffsPath;
d.sub("static");
d.master(d.master().split(":")[0]);
e && (d.master(e), d.sub(""));
var e = d + (r ? "/detector_4_2_IE.pix" : "/detector_4_1.pix"),
k = z("allowscriptaccess", "always"),
f = z("movie", e) + z("play", "true") + z("loop", "true");
r && (f += z("wmode", "transparent"));
h.browserIs(g.BROWSERS.IE) ? (d = B.createElement("div"), d.innerHTML = "<object " + D("id", "blag" + p.birthdate + n.random()) + D("classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000") + D(g.IAS_DETECTOR, "true") + D("type", g.FLASH_MIME) + D("data", e) + ">" + f + k + "</object>", q = d.firstChild) : (q = B.createElement("object"), q.data = e, q.type = g.FLASH_MIME, q.innerHTML = k, q[g.IAS_DETECTOR] = "true");
q.style.position = "absolute";
q.style.width = "1px";
q.style.opacity =
"0";
q.style.height = "0px";
d = q;
e = d.style;
e.left = c + "px";
e.top = b + "px";
a.appendChild(d);
e.height = "1px";
r && setInterval(G, 100);
return d
}(a, b, c);
return {
isInView: function() {
var a;
if (F()) {
try {
a = w
} catch (c) {
A = !1, l.trigger("error", g.ERROR_CODES.COCOA_GONE)
}
h.browserIs("w") && void 0 !== a && (q.style.height = m ? "1px" : "2px", m = !m)
}
return F() && a
},
isNotReadyToReport: function() {
return !F()
},
createdFlash: q,
remove: function() {
C.parentNode && C.parentNode.removeChild(C)
}
}
},
V = function() {
var a = function(c, b, e) {
var h = b.length,
k = v.isWindow(c) ?
c.frames : v.getChildWindowsOf(c);
e && e(c, b);
if (k.length) {
for (c = 0; c < k.length; c++) b[h] = c, a(k[c], b, e);
b.pop()
}
},
b = function(c, b) {
try {
a(b || top, [0], c)
} catch (e) {}
};
return {
traverse: b,
getFrames: function(a, d) {
var e = [];
b(function(a) {
e.push(a)
}, d);
return f(e).filter(a)
}
}
},
da = function() {
var a = [];
return {
push: function(b) {
a[a.length] = b
},
run: function() {
var b = arguments;
f(a).each(function(a, d) {
d.apply({}, b)
})
}
}
},
ka = function(a) {
return {
doEligibleJobs: function(b) {
var c = a[0],
d = c && c.time;
d && b >= d && (c.task(), a.shift())
},
getNextJob: function() {
return a[0]
}
}
},
ea = function() {
var a = function(a, c, d, e) {
var h, k = f.noop,
r, t;
if (JSON && JSON.parse) try {
h = JSON.parse(a.data), r = a.source, c(h) && (e && (t = e(r, h)) && (k = function() {
(new aa(r)).send(function() {
return t
})
}), d(a, h, k))
} catch (q) {
h && l.trigger("error", g.ERROR_CODES.MESSAGE_LISTENER)
}
};
return {
listen: function(b, c, d) {
y.addEvent(u, "message", function(e) {
a(e, b, c, d)
})
}
}
},
aa = function(a) {
var b = function(a) {
return f(a).mapToObj(function(a, c) {
var b;
f.isFunction(c) || (b = {}, b[a] = c);
return b
})
};
return {
send: function(c) {
if (JSON && JSON.stringify) {
var d =
f(a).isObj() ? [a] : (new V).getFrames(a);
f(d).each(function(a, d) {
var k;
k = f.resolve(c, d) || {};
k.sentTime = n.now();
k = b(k);
d.postMessage(f(k).JSONStringify(), "*")
})
}
}
}
},
Jb = function(a, b) {
return {
onAll: function(c) {
var d = {};
f(b).each(function(e, h) {
a.on(h, function() {
d[h] = 1;
f(d).keys().length === b.length && (d = {}, c())
})
})
}
}
},
za = function(a) {
var b = 0,
c = {},
d = function(a, c, d) {
if (f.isUndef(a.output)) throw Error("item with id " + c + ' must have "output" method');
this.item = a;
this.id = c || ++b;
this.props = d || {};
this.output = function() {
var c =
f.resolve(a.output);
this.props.asION && (c = f(c).toION());
return c
}
},
e = function(a) {
var b, d, e = [];
for (b in c) c.hasOwnProperty(b) && (d = a(b, c[b])) && e.push(d);
return e
},
h = function(a, b, e) {
e = e || b;
e = "string" !== typeof e ? e : {};
var h = function(a, b, e) {
a = new d(a, b, e);
c[a.id] = a
};
f(a.output).isObj() && !e.asION ? f(a.output).each(function(a, c) {
h({
output: c
}, a, e)
}) : h(a, b, e)
};
a.on("addOutputItem", function(a, c, b) {
h(a, c, b)
});
return {
addItem: h,
filterOutput: function(a, c) {
return e(function(b, d) {
var e = d.props,
h;
a(e) && (h = d.output(),
e.encode && (b = encodeURIComponent(b), h = encodeURIComponent(h)), f.isFunction(c) ? c(b, h) : c[b] = h)
})
},
iterate: e,
cleanup: function() {
e(function(a, b) {
b.props.flagForRemoval && delete c[a]
})
},
getItem: function(a) {
return c[a]
}
}
},
Gb = function(a) {
var b = a.width - 5,
c = a.height - 5,
d = 0.5 * a.width + 1,
e = 0.5 * a.height + 1,
h = 0.3 * a.width + 1,
k = 0.7 * a.width + 1,
f = 0.3 * a.height + 1,
t = 0.7 * a.height + 2,
q, m = function(c, b) {
1 > c && (c = 1);
1 > b && (b = 1);
c > a.width && (c = 0 !== a.width ? a.width : 1);
b > a.height && (b = 0 !== a.height ? a.height : 1);
return {
x: n.floor(c),
y: n.floor(b)
}
};
q = [m(b, c), m(b, 5), m(5, c), m(5, 5), m(d, e), m(h, f), m(k, f), m(h, t), m(k, t)];
return {
get: function() {
return q
},
getPctInView: function(a) {
var c;
0 === a ? c = 0 : 1 === a ? c = 10 : 2 === a ? c = 20 : 5 > a ? c = 30 : 7 > a ? c = 50 : 9 > a ? c = 70 : 9 === a && (c = 100);
return c
}
}
},
Hb = function(a, b) {
var c = 0.5 * a.width + 1,
d;
d = [{
y: n.floor(0.5 * a.height + 1),
x: n.floor(c)
}];
return {
get: function() {
return d
},
getPctInView: function(a) {
return 1 === a ? 50 : 0
}
}
},
Ib = function() {
var a = {},
b = function(c, b) {
a[c] = b
};
return {
request: function(c) {
var b, e = a[c],
h = f(arguments).toArray();
h.shift();
f.isUndef(e) ||
(b = f.isFunction(e) ? e.apply({}, h) : e);
return b
},
provide: function(c, d) {
d ? a[c] = d : f(c).each(b);
return d
}
}
},
db = function(a, b, c) {
return {
collect: function() {
var b = a.find(),
e = b.getOutOfViewReasons(),
h = c.isHidden(),
k = E(v.calcWinDims()),
r = b.getDims();
if (!b.hasAd() || !k.hasValidDims() || !r.hasValidDims()) return {
viewState: g.NA,
posViewState: g.NA,
embedded: s.embedded,
winDimensions: k,
adDimensions: r
};
!0 === h && e.push(g.OUT_OF_VIEW_REASONS.FOCUS);
return {
winDimensions: k,
adDimensions: r,
containerDimensions: b.getContainerDims(),
method: b.getDetectionMethod(),
viewState: e.length ? g.OUT_OF_VIEW : b.getViewState(),
percentInView: b.getPercentInView(),
reason: e.join("."),
obstructed: f.stringifyTriState(b.isObstructed()),
isHidden: f.stringifyTriState(b.isHidden()),
tabHidden: f.stringifyTriState(h),
posViewState: b.getViewState(),
adCompCount: b.getComponentCount()
}
}
}
},
Kb = function(a) {
a = a || f.identity;
var b = [],
c = n.now(),
d = function() {
var a = n.now();
b.length && (b[b.length - 1].duration += a - c, c = a)
};
return {
clear: function() {
d();
b = []
},
fastForward: d,
get: function() {
return b
},
hasAlwaysBeen: function(a) {
return 1 === b.length && b[0].state === a
},
addState: function(c) {
var h = b[b.length - 1];
c = a(c);
d();
0 !== b.length && c === h.state || b.push({
state: c,
duration: 0
})
}
}
},
pa = function(a, b) {
var c = a || 1,
d = 0,
e = 0,
h, k = 0;
return {
start: function() {
0 === d % c && (h = n.now())
},
stop: function() {
var a = h || b;
0 === d % c && (k += n.now() - a, e++);
d++
},
getTime: function() {
return k
},
getCount: function() {
return e
}
}
},
fa = function() {
var a, b = 0,
c = 0,
d = new J(!0),
e = function() {
a && (b++, d.trigger(b), c > b ? n.execAtEndOfThread(e) : h())
},
h = function() {
a = !1;
b = 0
};
return {
onTick: function(a, b) {
var e = f.collapseArgsIntoHash(a, b);
f(e).each(function(a, b) {
a = parseInt(a);
c = a > c ? a : c
});
d.on(e)
},
start: function() {
a || (a = !0, n.execAtEndOfThread(e))
},
kill: h,
isActive: function() {
return a
}
}
},
la = function(a) {
var b = 0,
c = s.getTagTime(),
d = 0,
e, h;
return {
getTotalTime: function() {
return d
},
stop: function() {
b = 0;
c = s.getTagTime()
},
mark: function() {
e = s.getTagTime() - c;
b += e;
b > a && (h = b - e < a, d += h ? b : e);
c = s.getTagTime()
}
}
},
I = function(a, b) {
var c = a || p.adsafeSrc || p.requrl;
c && 0 !== c.indexOf("http") &&
(c = p.protocol + "://" + c);
var c = /((http|https):\/\/(([^\/\.]*)\.([^\/]*)))(?:\/(.[^?]*)\??(.+)?)*/.exec(c),
d = c[1],
e = c[2],
h = c[3],
k = c[4],
r = c[5],
t = a ? c[6] : "",
q = b ? c[7] : "",
m = {},
g = function(a) {
f.isDef(a) && (k = a);
return k
},
l = function(a) {
f.isDef(a) && (r = a);
return r
},
A = function(a, c) {
return a + "=" + f(c).toION()
},
q = q ? q.replace(/&$/, "") : "";
return {
fullDom: d,
hostname: h,
sub: g,
master: l,
setParam: function(a, c) {
m[a] = m[a] || {};
f(c).isObj() ? f(m[a]).mixin(c) : m[a] = c
},
path: function(a) {
t = a
},
_getQsParams: function() {
return m
},
toString: function() {
var a =
g() ? g() + "." : "",
c = t ? "/" + t : "",
b;
q || !f(m).isEmpty() ? (b = f(m).isEmpty() ? "" : f(m).stringify(A, "&"), b = "?" + q + (q && b ? "&" + b : b)) : b = "";
return e + "://" + a + l() + c + b
}
}
},
Cb = function(a) {
var b = function(a, b) {
var e;
b && b.id && (e = b.id.replace(/[^\w-_.\/]/g, ""));
return e
};
(function() {
var c;
try {
if ("jload" === p.mode && a.on("slid") && s.friendly && !s.isMobileApp()) {
var d, e;
if (d = v.getOurNodeInTop()) {
var h = v.getAncestorNodes(d);
e = f(h).map(b)
}(c = e = e && f(e).toION()) && l.trigger("addOutputItem", {
output: c
}, "slid", {
type: g.DT_CODES.ADTALK
})
}
} catch (k) {
l.trigger("error",
g.ERROR_CODES.AD_SLOT_ID)
}
})()
},
Qa = function() {
var a, b, c = function(a, c) {
-1 !== c.indexOf("https") && (c += "*");
return c.replace(/^https?:\/\//, "")
};
return {
isApplicable: function(a, c, b) {
return a.hasAncestorOrigins() && c.on("ancestor") && b.xDomainIframe
},
isStarted: function() {
return !!b
},
start: function() {
try {
a = n.getWindow().location.ancestorOrigins, b = !0
} catch (c) {
l.trigger("error", g.ERROR_CODES.ANCESTOR_ORIGINS)
}
},
getMyFrameDepth: function() {
return a && a.length || 0
},
getTopDomain: function() {
return f.last(a)
},
sendOriginList: function() {
var b;
b = "ao:" + (a ? f(a).map(c).reverse() : []).join(",");
l.trigger("addOutputItem", {
output: b
}, "tpiLookup", {
type: g.DT_CODES.THIRD_PARTY,
standalone: !0,
encode: !0
});
l.trigger("sendDt", g.DT_CODES.THIRD_PARTY)
}
}
},
ib = function(a, b, c, d, e) {
var h = function(a, c, b) {
e.addItem({
output: a + "." + c + "." + b
}, "ctpl")
},
k = function(e) {
try {
b.diagnostic("c");
var k = e.length,
q = 0,
m = 0;
h(k, 0, 0);
f(e).each(function(c, b) {
a.send(b.replace("%%CBS%%", d.getCacheBustId()), function() {
h(k, q, ++m)
}, !0);
h(k, ++q, m)
})
} catch (x) {
c.add(g.ERROR_CODES.AT_SEND)
}
};
return {
init: function() {
try {
var b = (new I).fullDom;
"/" !== b.slice(-1) && (b += "/");
b += "tpl?asId=" + p.asid;
a.jsonp(b, k)
} catch (d) {
c.add(g.ERROR_CODES.AT_INIT)
}
}
}
},
hb = function(a, b, c, d) {
return {
enabled: "true" === p.useBapiCallback,
callback: function(b) {
c.trigger("sendDiag");
try {
"true" === p.accountForSadImps && d.measure(b), p._onAPIResult && p._onAPIResult(b)
} catch (h) {
a.add(g.ERROR_CODES.BAPI_CALLBACK), c.trigger("sendDiag", "bapiClient")
}
}
}
},
Va = function() {
var a = g.BROWSERS,
b, c = function() {
var a = "0",
c = n.getWindow(),
b = function(a) {
return a.replace(/\D+/g,
",").match(/^,?(.+),?$/)[1].split(",").join(".")
};
try {
try {
var d = n.getNewActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
try {
d.AllowScriptAccess = "always"
} catch (e) {
a = "6"
}
} catch (h) {}
a = b(n.getNewActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version"))
} catch (k) {
try {
c.navigator.mimeTypes[g.FLASH_MIME].enabledPlugin && (a = b((c.navigator.plugins["Shockwave Flash 2.0"] || c.navigator.plugins["Shockwave Flash"]).description))
} catch (f) {}
}
return a
},
d = function() {
f.isUndef(b) && (b = c());
return b
},
e = function(a) {
return k() ===
a
},
h = function() {
var a = n.getDoc();
return a && a.documentMode ? a.documentMode : g.NA
},
k = function() {
var c = "u",
b = n.getWindow();
try {
f.isDef(b.opera) && f.isDef(b.opera.buildNumber) ? c = a.OPERA : f.isDef(b.mozInnerScreenY) ? c = a.GECKO : f.isDef(b.chrome) && f.isDef(b.chrome.csi) ? c = a.CHROME : f.isDef(b.msWriteProfilerMark) && f.isDef(b.crypto) ? c = a.MSEDGE : f.isDef(b.attachEvent) || f.isDef(b.msCrypto) ? c = a.IE : f.isDef(b.WebKitPoint) && (c = a.WEBKIT)
} catch (d) {}
return c
},
r = function() {
var c = ["{45EA75A0-A269-11D1-B5BF-0000F8051515}", "{3AF36230-A269-11D1-B5BF-0000F8051515}",
"{89820200-ECBD-11CF-8B85-00AA005B4383}"
],
b = g.NA,
d = n.getDoc(),
h = d.createElement("div");
if (e(a.IE)) try {
if ("-ms-ime-align" in d.documentElement.style) b = "11";
else
for (h.style.behavior = "url(#default#clientcaps)", d = 0; d < c.length && !(b = h.getComponentVersion(c[d], "componentid").replace(/,/g, ".")); d++);
} catch (k) {}
return b
};
return {
browserIs: e,
hasIntersectionObserver: function() {
return "function" === typeof IntersectionObserver
},
hasFlashEnabled: function() {
return "0" !== d()
},
hasAncestorOrigins: function() {
var a = n.getWindow().location;
return !(!a || !a.ancestorOrigins)
},
getFlashVersion: d,
getDocumentMode: h,
getBrowserType: k,
getUserAgent: function() {
var a = !1,
c = n.getWindow();
f.isDef(c.navigator) && f.isDef(c.navigator.userAgent) && (a = c.navigator.userAgent);
return a
},
isOnWin7: function() {
return 0 < n.getWindow().navigator.userAgent.indexOf("Windows NT 6.1")
},
isIEVersion: function(a) {
return 0 === r().indexOf(a)
},
params: function() {
var c = k(),
b = d(),
m;
m = 5;
var x = n.getWindow(),
l = n.getDoc();
e(a.IE) ? x.msCrypto ? m = 11 : x.atob ? m = 10 : x.addEventListener ? m = 9 : x.JSON &&
l.querySelector ? m = 8 : x.XMLHttpRequest ? m = 7 : l.compatMode && (m = 6) : m = g.NA;
var x = h(),
l = r(),
A = g.NA,
z = n.getWindow();
f.isDef(z.navigator) && f.isDef(z.navigator.appName) && (A = z.navigator.appName.toLowerCase()[0]);
return {
br: c,
fv: b,
bv: m,
dm: x,
abv: l,
an: A
}
}
}
},
Ua = function(a, b) {
var c = function(a, c) {
var b, d, e = p.contextNode.parentNode;
c = c || a;
a = 1 < arguments.length ? a : "script";
b = {
script: ['<script type="text/javascript" src="', '">\x3c/script>'],
iframe: ['<iframe width="100%" height="100%" frameborder="0" vspace="0" hspace="0" scrolling="no" marginheight="0" marginwidth="0" src="',
'"></iframe>'
],
img: ['<img src="', '"/>']
}[a];
d = b[0] + c + b[1];
"true" === p.forceAppend ? "script" !== a ? (b = B.createElement("DIV"), b.innerHTML = d, e.appendChild(b.childNodes[0])) : (b = B.createElement("SCRIPT"), b.src = c, e.appendChild(b)) : B.write(d)
},
d = function(a, c, b) {
var d = !b && y.getXHR2();
d ? (d.open("POST", a), d.onreadystatechange = function() {
4 === d.readyState && 200 === d.status && c && c()
}, d.send()) : (b = v.createImage(), c && (b.onload = c), b.src = a)
},
e = function(a, c) {
var b = B.createElement("script");
b.type = "text/javascript";
b.src =
a;
c && (b.onload = c);
f.isDef(p.contextNode.parentNode) && p.contextNode.parentNode.appendChild(b)
},
h = function(a) {
f.isFunction(a) ? a({
iasImpId: p.asid
}) : a && "string" === typeof a && d(a, void 0, !0)
},
k = function(a, c, d, h) {
e(b.wrap(a, c, d, h))
};
l.on({
addNode: c,
send: d,
exec: e,
notify: h,
jsonp: k
});
return {
addNode: c,
send: d,
exec: e,
notify: h,
jsonp: k
}
},
g = {
MRC_LARGE_AD_SIZE: 242500,
FLASH_MIME: "application/x-shockwave-flash",
IN_VIEW: "inView",
OUT_OF_VIEW: "outOfView",
PARTIAL_VIEW_PLUS: "partialViewPlus",
PARTIAL_VIEW_MINUS: "partialViewMinus",
NA: "na",
PIV_NA: -1,
DT_CODES: {
ADTALK: "a",
DIAGNOSTIC: "b",
PERFORMANCE: "e",
THIRD_PARTY: "i",
LARGE_BILLABLE: "l",
VIDEO_EVENTS: "m",
PING: "p",
FULLY_INVIEW: "pf",
QUARTILE_FULLY_INVIEW: "qf",
AVIREEN: "r",
SCA: "s",
POS_INVIEW: "t",
UNLOAD: "u",
VIEWABILITY_READY: "v",
VH: "vh",
EXTERNAL: "x"
},
DETECTION_METHODS: {
AD_PLACEHOLDER: "s",
AD_HUNT: "a",
IFRAME: "i",
VIDEO: "v",
MRAID: "m",
AVID: "av",
MUTATION: "c",
SPECIFIED_AD: "sp"
},
OUT_OF_VIEW_REASONS: {
GEOM: "l",
OBSTRUCTION: "o",
FOCUS: "f",
COLLAPSED: "c",
HIDDEN: "h",
VIDEO: "v"
},
VIDEO_CHANNELS: {
VANS: {
AS3_ADAPTOR: "av3",
JS_ADAPTOR: "jv3"
},
WRAPPERS: {
JS: "jvw"
}
},
PERF_TIMELINE_TRACKER_CONFIG: {
VANS: {
TYPE: "vans",
COUNT: 4
},
WRAPPERS: {
JS: {
TYPE: "jswrapper",
COUNT: 15
},
AS: {
TYPE: "flwrapper",
COUNT: 9
}
}
},
ERROR_CODES: {
GET_AD_DIMENSIONS: "a",
AD_SLOT_ID: "A",
BAPI_CALLBACK: "b",
BROWSER_NOT_HTML5_COMPATIBLE: "B",
ADTALK_GENERAL: "c",
COCOA_GONE: "C",
GET_SCREEN_LOC_GET_DIMENSIONS: "d",
ADTALK_DUBIOUS: "D",
NO_CONTAINER: "e",
POST_IMPRESSION: "E",
ADTALK_DELAY: "f",
VIDEO_IN_IFRAME_DIMS_CALC: "F",
GREEN: "g",
INIT_ADS_MANAGER: "G",
PHONE_HOME: "h",
UID_GENERATION: "i",
IMPRESSION_URLS: "I",
NOT_VPAID_EVENT_OBJECT: "j",
JSINFO: "J",
KILL_IT: "k",
NO_RESPONSE_XML: "K",
LOCATION_DETAILS: "l",
IMPRESSION_LEADUP: "L",
MESSAGE_LISTENER: "m",
MOBILE_APP: "M",
AT_INIT: "N",
OFF_DESKTOP: "O",
ANCESTOR_ORIGINS: "o",
GET_SCREEN_LOC_PIV_CALC: "p",
PLUGIN_PARSING: "P",
NO_ORIGINAL_VAST: "q",
AVIREEN: "r",
AD_ERROR: "R",
GET_ELEM_STYLE: "s",
AT_SEND: "S",
ADS_MANAGER_START_AD: "t",
NO_COMPANION_AD_XML: "T",
NO_VIDEO_AD_INTERFACE: "u",
UNRECOGNIZED_EVENT_TYPE: "U",
ENVIRONMENT: "v",
CHECK_SCREEN_LOC: "V",
GET_WIN_DIMENSIONS: "w",
AC_WATCHER: "W",
EXCHANGE_PARSING: "x",
SCA: "X",
FLASH_API_ACCESS: "z"
},
BROWSERS: {
WEBKIT: "w",
OPERA: "o",
GECKO: "g",
CHROME: "c",
IE: "i",
MSEDGE: "e"
},
MEDIA_TYPE_CODE: "mtp",
MEDIA_TYPE: {
DISPLAY: "display",
DISPLAY_CODE: "d",
VIDEO: "video",
VIDEO_CODE: "v"
},
MEASUREMENT_STRATEGY: {
DISPLAY: "display",
VIDEO: "video"
},
IMPRESSION_EVENT: "impression",
AD_IDENTIFIER: "data-integralas-id",
IAS_DETECTOR: "iasdetector"
},
s = function() {
var a = u != top,
b = function() {
var a;
try {
a = !!top.document
} catch (c) {
a = !1
}
return a
}(),
c = function() {
return f.isDef(n.getWindow().avid)
};
return {
embedded: a,
friendly: b,
friendlyIframe: a && b,
xDomainIframe: a && !b,
getTagTime: function() {
return n.now() - p.birthdate
},
getPageTime: function() {
return f.isDef(u.chrome) && f.isDef(u.chrome.csi) && f.isFunction(u.chrome.csi) ? n.round(chrome.csi().pageT) : g.NA
},
isVideo: function() {
var a;
if (!(a = -1 !== p.mode.indexOf("jsvid"))) {
var b;
a = !1;
if (c()) try {
b = n.getWindow().avid.getAvidAdSessionContext(), a = b.mediaType === g.MEDIA_TYPE.VIDEO
} catch (h) {}
}
return a
},
isMobileApp: function() {
return f.isDef(u.mraid)
},
isSpecifiedAd: function() {
var a =
p._cl_adpath;
return a && f.isStr(a)
},
isAvid: c
}
}(),
y = {
addEvent: function(a, b, c, d) {
f.isDef(a.addEventListener) ? "mouseenter" === b ? a.addEventListener("mouseover", y.mouseEnter(c), d) : "mouseleave" === b ? a.addEventListener("mouseout", y.mouseEnter(c), d) : a.addEventListener(b, c, d) : f.isDef(a.attachEvent) && ("DOMContentLoaded" === b && (b = "load"), a.attachEvent("on" + b, c))
},
removeEvent: function(a, b, c) {
f.isDef(a.removeEventListener) ? ("mouseenter" === b ? (b = "mouseover", c = y.mouseEnter) : "mouseleave" === b && (b = "mouseout", c = y.mouseEnter),
a.removeEventListener(b, c)) : f.isDef(a.detachEvent) && a.detachEvent("on" + b, c)
},
mouseEnter: function(a) {
var b = this;
return function(c) {
var d = c.relatedTarget;
this === d || b.isAChildOf(this, d) || a.call(this, c)
}
},
isAChildOf: function(a, b) {
if (a === b) return !1;
for (; b && b !== a;) b = b.parentNode;
return b === a
},
getStyle: function(a, b, c) {
var d = "";
c = c || "";
B.defaultView && B.defaultView.getComputedStyle ? d = B.defaultView.getComputedStyle(a, c).getPropertyValue(b) : a.currentStyle && (b = b.replace(/\-(\w)/g, function(a, c) {
return c.toUpperCase()
}),
d = a.currentStyle[b]);
return d
},
getXHR2: function(a, b) {
var c, d;
f.isDef(u.XMLHttpRequest) ? (d = new XMLHttpRequest, "withCredentials" in d && (c = d)) : f.isDef(XDomainRequest) && (c = new XDomainRequest);
return c
},
whenReady: function(a, b) {
var c = b || (s.xDomainIframe ? B : n.getTop().document),
d = function(a) {
var b = setInterval(function() {
c.body && (clearInterval(b), a())
}, 50)
},
e = this;
(function(a) {
var b = function() {
a(!0)
};
f.isFunction(B.addEventListener) ? "complete" == c.readyState || "loaded" == c.readyState || "interactive" == c.readyState ?
n.execAtEndOfThread(b) : e.addEvent(c, "DOMContentLoaded", b, !1) : d(a)
})(a)
},
isSandboxed: function(a) {
var b, c = n.getWindow(),
d = !1;
if ("sandbox" in n.getDoc().createElement("iframe")) {
try {
b = c.frameElement
} catch (e) {}
if (b) a = b.hasAttribute("sandbox");
else {
b = !1;
c = n.getDoc();
if (a.browserIs(g.BROWSERS.CHROME)) try {
c.domain = "hol@#3+~"
} catch (h) {
/Assignment is forbidden for sandboxed iframes/.test(h.message) && (b = !0)
}
a = b
}
d = a
}
return d
}
},
fb = function(a, b, c, d, e, h, k, r) {
var t = 0,
q = 0,
m = !1,
x, w = {},
A = [g.DT_CODES.ADTALK],
z = function(a,
b, h, r, x, A) {
h = h || !c.on("postDts");
var z = a === g.DT_CODES.VH || a === g.DT_CODES.DIAGNOSTIC || a === g.DT_CODES.ADTALK;
if (d.impressionIsIdentifiable() && (z || "n" !== k.getCurrentLoc())) try {
var D = p.dtBaseURL,
s = new I(D, !0),
u = n.now(),
v = w[a];
l.trigger("preSendDt", a);
D || (s.path("dt"), c.on("usedtdomain") && s.sub("dt"));
G(s, a, b);
x && x.field && s.setParam(x.field, x.value);
r || H(s, a);
l.trigger("send", s, function() {
q += 1;
t = n.now() - u;
f.isFunction(A) && A()
}, h);
a === g.DT_CODES.UNLOAD && (m = !0);
w[a] = f.isDef(v) ? v + 1 : 1;
e.cleanup()
} catch (y) {
__IntegralASDiagnosticCall("dt-" +
a, y), l.trigger("error", g.ERROR_CODES.PHONE_HOME)
}
};
a = function(a, b) {
var d = {
bapi: "a",
bapiClient: "b",
jload: "c",
jss: "d",
jsi: "e"
},
e = p.mode,
d = d[a] || d[e];
c.on(b || e + "Diag") && d && z(g.DT_CODES.DIAGNOSTIC, -5, !0, !0, {
field: "bkp",
value: d
})
};
var D = function(a) {
var c;
a === g.DT_CODES.UNLOAD ? c = -1 : a === g.DT_CODES.ADTALK ? c = -2 : a === g.DT_CODES.VIEWABILITY_READY ? c = -3 : a === g.DT_CODES.VIDEO_EVENTS ? c = -4 : a === g.DT_CODES.DIAGNOSTIC ? c = -5 : a === g.DT_CODES.THIRD_PARTY ? c = -6 : a === g.DT_CODES.QUARTILE_FULLY_INVIEW ? c = -7 : a === g.DT_CODES.LARGE_BILLABLE ?
c = -8 : a === g.DT_CODES.AVIREEN ? c = -9 : a === g.DT_CODES.SCA && (c = -10);
var b = w[a];
f.isDef(b) && -1 !== A.indexOf(a) && 0 !== b && (c = c + "." + b);
return c
},
G = function(a, c, b) {
b = f.isDef(b) ? b : D(c);
a.setParam("asId", p.asid);
b = {
c: d.getCacheBustId(),
pingTime: b,
time: s.getTagTime(),
type: c
};
e.filterOutput(function(a) {
var b = a.minDt && (!a.type || a.type === c);
b && a.oneTime && (a.flagForRemoval = !0);
return b
}, b);
a.setParam("tv", b)
},
H = function(a, d) {
var f, m = {};
e.filterOutput(function(a) {
return a.standalone && !a.minDt && a.type === d
}, function(c, b) {
a.setParam(c,
b.replace("%3A", ":"))
});
k.fastForward();
d === g.DT_CODES.VIDEO_EVENTS && (f = l.request("videoEventsString")) && (m.ve = f, m.clog = r);
d === g.DT_CODES.UNLOAD && (m.ndt = q); - 1 !== p.mode.indexOf("jsvid") && (m.vv = l.request("videoVersion"));
m.NULL1 = c.output();
m.NULL2 = k.stringify(10);
m.em = s.embedded;
m.fr = s.friendly;
m.uf = x.useFlash() ? 1 : 0;
m.e = b.toString();
m.tt = p.mode;
m.dtt = t;
e.filterOutput(function(a) {
var c = !a.standalone && !a.minDt && (!a.type || a.type === d);
c && a.oneTime && (a.flagForRemoval = !0);
return c
}, m);
a.setParam("tv", m);
a.setParam("br", h.getBrowserType())
};
l.on({
sendDt: z,
sendMinDt: function(a, c) {
z(a, c, void 0, !0)
},
sendDiag: a,
updateDtCount: function() {
q++
}
});
return {
send: z,
unload: function() {
m || z(g.DT_CODES.UNLOAD, -1, !0)
},
diagnostic: a,
setViewabilityMod: function(a) {
x = a
}
}
},
E = function(a) {
var b = {},
c = !1,
d = function() {
var a = {};
f(b).each(function(c, b) {
a[c] = n.round(b)
});
return a
},
e = function() {
return n.round(b.width) * n.round(b.height)
};
(function() {
var c;
a !== u.parent && (1 !== a.nodeType ? b = a : f.isDef(a.getBoundingClientRect) && (c = v.getRect(a),
f(b).mixin({
x: f.useIfDef(c.x) || c.scrX,
y: f.useIfDef(c.y) || c.scrY,
scrX: c.scrX,
scrY: c.scrY,
width: c.width,
height: c.height
})))
})();
return {
hasValidDims: function() {
var a, c = f(b).find(function(c, b) {
a = !0;
return isNaN(b)
});
return f.isDef(a) && f.isUndef(c)
},
toString: function() {
var a = d();
return [a.scrX, a.scrY, a.width, a.height].join(".")
},
getRounded: d,
set: function(a, c) {
b[a] = c
},
isHidden: function() {
var b = 1 === a.nodeType ? v.nodeIsHidden(a) : 0 === a.width || 0 === a.height;
return c ? !1 : b
},
treatAsPlaceholder: function() {
c = !0
},
area: e,
isMrcLarge: function() {
return e() >= g.MRC_LARGE_AD_SIZE
}
}
},
v = {
nodeIsHidden: function(a) {
var b = this.getRect(a),
c = 0 !== parseInt(y.getStyle(a, "width")) && 0 === b.width,
b = 0 === b.width || 0 === b.height;
a = "hidden" === y.getStyle(a, "visibility");
return c || b || a
},
calcWinDims: function() {
var a, b, c;
try {
b = v.windowPosition(), c = v.windowSize(), a = {
scrX: n.round(b.scrX),
scrY: n.round(b.scrY),
width: n.round(c.width),
height: n.round(c.height)
}
} catch (d) {
l.trigger("error", g.ERROR_CODES.GET_WIN_DIMENSIONS), a = {}
}
return a
},
windowSize: function() {
var a = {},
b, c;
if (s.friendly)
if (b = top.document, c = b.documentElement, b = b.getElementsByTagName("body")[0], f.isDef(top.innerWidth)) a.width = top.innerWidth, a.height = top.innerHeight;
else if (f.isDef(c.clientWidth)) a.width = c.clientWidth, a.height = c.clientHeight;
else if (f.isDef(b.clientWidth)) a.width = b.clientWidth, a.height = b.clientHeight;
else throw a.width = a.height = 0, "";
else f.isDef(u.outerWidth) && (a.width = u.outerWidth, a.height = u.outerHeight);
return a
},
windowPosition: function() {
var a = 0,
b = 0;
f.isDef(u.screenX) ? (a = u.screenX,
b = u.screenY) : f.isDef(u.screenLeft) && (a = u.screenLeft, b = u.screenTop);
return {
scrX: a,
scrY: b
}
},
getNodeArea: function(a) {
var b = -1;
a && (a = v.getRect(a), b = a.width * a.height);
return b
},
getRect: function(a) {
var b = {},
c = v.windowPosition();
a = a.getBoundingClientRect();
f.isUndef(a.x) && (b.x = a.left, b.y = a.top);
f.isUndef(a.width) && (b.width = a.right - a.left, b.height = a.bottom - a.top);
f(b).mixin(a, !0);
b.scrX = c.scrX + b.x;
b.scrY = c.scrY + b.y;
return b
},
getIeDimObj: function() {
return B.documentElement && f.isDef(B.documentElement.clientWidth) &&
B.documentElement || B.body
},
getPlaceholderSpan: function() {
var a = B.createElement("span");
f(a.style).mixin({
width: "0px",
height: "0px",
display: "block",
overflow: "hidden",
visibiility: "hidden"
});
a.innerHTML = ".";
return a
},
createImage: function() {
return new((s.friendly ? n.getTop() : n.getWindow()).Image)
},
appendElement: function(a, b, c) {
var d = n.getDoc().createElement(a);
b && f(b).each(function(a, c) {
"style" === a && "object" === typeof d.style && "function" === typeof d.style.setAttribute ? "string" === typeof c && f(c.split(";")).each(function(a,
c) {
c = c.trim();
if (c.length) {
var b = c.split(":");
2 === b.length && (d.style[b[0].trim()] = b[1].trim())
}
}) : d.setAttribute(a, c)
});
c = c || p.contextNode.parentNode;
c.appendChild(d);
return d
},
tagNameIs: function(a, b) {
return a.tagName.toUpperCase() === b.toUpperCase()
},
getClippedDimensions: function(a, b) {
var c, d, e, h = 1E4,
k = 1E4;
c = "absolute" === y.getStyle(a, "position");
e = !v.tagNameIs(a, "OBJECT");
if (null !== a.parentNode && !c && e && !v.tagNameIs(b, "BODY")) {
e = a;
do e = e.parentNode, c = !v.tagNameIs(e, "OBJECT"), d = "inline" !== y.getStyle(e,
"display"), c && d && (c = v.getRect(e), h = c.width < h ? c.width : h, k = c.height < k ? c.height : k); while (e.parentNode !== B && e !== b)
}
return {
width: n.round(h),
height: n.round(k)
}
},
findChildWithLargestContent: function(a) {
var b = function(c) {
for (; c.parentNode !== a && "inline" !== y.getStyle(c.parentNode, "display");) c = c.parentNode;
return c
},
c = null,
d = function(c) {
var b, d, f = null,
g = -1;
if (c.length)
for (b = 0, d = c.length; b < d; b++) {
var q = c[b],
m = v.getNodeArea(q),
l;
if (l = m > g) {
l = void 0;
if (l = q.parentNode === a)
if (l = void 0, l = "DIV" === q.nodeName)
if (l = void 0,
l = "" === q.style.backgroundImage) {
var w = l = void 0,
A = q.childNodes;
for (l = 0; l < A.length; l++) 1 === A[l].nodeType && (w = !0);
l = !w
}
l = !l
}
l && (f = q, g = m)
}
return f
}(function(a) {
var c, b, d, f, g = [],
m = "iframe img a object embed div".split(" ");
c = 0;
for (b = m.length; c < b; c++) {
var l = a.getElementsByTagName(m[c]);
if (l.length)
for (d = 0, f = l.length; d < f; d++) g.push(l[d])
}
return g
}(a));
d && (c = b(d));
return c
},
screenSize: function() {
var a = {
width: -1,
height: -1
};
try {
f.isDef(u.screen) && (a = {
width: u.screen.width,
height: u.screen.height
})
} catch (b) {}
return a
},
calcMonDims: function() {
var a = f(v.screenSize()).mixin({
scrX: 0,
scrY: 0
});
f.isDef(screen.availLeft) && (a = {
scrX: u.screen.availLeft,
scrY: u.screen.availTop,
width: u.screen.availWidth,
height: u.screen.availHeight
});
return a
},
getOurIFrameInTop: function() {
for (var a, b = n.getTop(), c = n.getWindow(); c != b;) a = c, c = a.parent;
return a
},
getOurNodeInTop: function() {
var a;
s.friendly && (a = s.embedded ? (a = v.getOurIFrameInTop()) && a.frameElement : p.contextNode);
return a
},
getAncestorNodes: function(a) {
var b = [],
c = a.ownerDocument && a.ownerDocument.documentElement;
if (c)
for (; a.parentNode !== c;) b.push(a), a = a.parentNode;
return b
},
getTagsNamed: function(a, b) {
var c, d = b || n.getDoc();
try {
c = d.getElementsByTagName(a)
} catch (e) {
c = null
}
return c
},
containsScriptTagWithSrc: function(a) {
return !!f(v.getTagsNamed("script")).findFirst(function(b, c) {
var d = c.src;
return f.isFunction(a) ? a(d) : d === a
})
},
querySelector: function(a, b) {
var c;
try {
c = a.querySelector(b)
} catch (d) {
c = null
}
return c
},
nodeIsInWindow: function(a, b) {
return a.ownerDocument && (a.ownerDocument.defaultView || a.ownerDocument.parentWindow) ===
b
},
setAttributeOf: function(a, b, c) {
a && f.isFunction(a.setAttribute) && a.setAttribute(b, c)
},
removeAttributeOf: function(a, b) {
a && f.isFunction(a.removeAttribute) && a.removeAttribute(b)
},
getNodeName: function(a) {
return a && a.nodeName
},
isWindow: function(a) {
var b = !1;
try {
b = a && "object" === typeof a && "setInterval" in a
} catch (c) {
b = !0
}
return b
},
getChildWindowsOf: function(a) {
var b = [];
(a = v.getTagsNamed("iframe", a)) && (b = f(a).map(function(a, b) {
return b.contentWindow
}));
return b
}
},
xa = function() {
var a = {},
b = function(c) {
f.isDef(a[c]) ?
a[c] ++ : a[c] = 1
};
l.on("error", function(a) {
a = f(a).isObj() ? a.errorCode : a;
b(a)
});
return {
list: a,
add: b,
toString: function() {
var c = "",
b;
for (b in a) a.hasOwnProperty(b) && (c += b);
return c
},
hasErrors: function() {
for (var c in a) return !0;
return !1
}
}
},
zb = function(a, b) {
var c = function(a) {
var c = [];
if (a && a instanceof Array) c = f(a).map(function(a, c) {
return c.val
}), c.push(p.adsafeSrc, p.requrl, p.reqquery);
else throw Error("Unexpected data type in ExchangeParser.getUrlList");
return c
};
return {
parse: function(d) {
try {
var e, h = c(d),
k = h && h.length && h.join("|"),
r = p.exchList;
k && (e = f(r).map(function(a, c) {
return 0 <= k.indexOf(Q.rot(c)) ? a : void 0
}), e.length && b.addItem({
output: e.join(".")
}, "ex", {
type: g.IMPRESSION_EVENT
}))
} catch (t) {
a.add(g.ERROR_CODES.EXCHANGE_PARSING)
}
}
}
},
wa = function() {
var a = {},
b = function(c) {
var b;
f.isUndef(a[c]) && (b = p.jsFeatures, a[c] = !1, -1 !== b.indexOf(c) && (b = RegExp(c + "(?=$|,)|" + c + ":(?!,|$)(.?\\d*(?=,|$))").exec(b))) && (b = b[1], a[c] = !b || b > 100 * n.random());
return a[c]
},
c = {
fc: "forcecocoa",
rt: "rattie",
cb: "cachebust",
np: "nextcocoa",
th: "tabHiddenDtCall",
es: "everySecond",
sa: "swapids"
},
d = {
gm: "use100v",
fif: "useFIF"
},
e = function() {
var b, e;
b = f(c).mapToObj(function(c, b) {
var d = {};
d[c] = a[b] ? 1 : 0;
return d
});
e = f(d).mapToObj(function(a, c) {
var b = {};
b[a] = h(c) ? 1 : 0;
return b
});
return f(b).mixin(e)
},
h = function(a) {
a = p[a];
return !0 === a || "true" === a || f.isFunction(a)
};
f(c).each(function(a, c) {
b(c)
});
return {
on: b,
bootstrapOn: h,
bootstrapperHas: function(a) {
a = f.isStr(a) ? [a] : a;
return f(a).map(function(a, c) {
if (f.isDef(p[c])) return 1
}).length === a.length
},
output: function() {
return f(e()).toParams()
}
}
},
Za = function(a) {
var b = g.BROWSERS,
c = l.request("intersectionWatcher");
return {
calcInitialViewState: function(d, e, h) {
var k = {
IN_VIEW: 65,
OUT_OF_VIEW: 25,
PARTIAL_VIEW: 30
},
f = {
IN_VIEW: 75,
OUT_OF_VIEW: 25,
PARTIAL_VIEW: 50
},
t = g.NA,
q = !s.xDomainIframe || c.isStarted() || a.browserIs(b.GECKO) || a.browserIs(b.IE);
h = h ? k : f;
if (q || e) t = d === g.PIV_NA ? g.NA : d >= h.IN_VIEW ? g.IN_VIEW : d <= h.OUT_OF_VIEW ? g.OUT_OF_VIEW : d >= h.PARTIAL_VIEW ? g.PARTIAL_VIEW_PLUS : g.PARTIAL_VIEW_MINUS;
return t
},
calcPercentInView: function(a, b, h, k) {
var g = 0,
t = a;
c.isStarted() ?
g = c.getPiv() : a.hasValidDims() && !a.isHidden() && (f([b, h, k]).each(function(a, c) {
if (c.hasValidDims()) {
var b = t.getRounded(),
d = c.getRounded(),
e = Math.max(b.scrX, d.scrX),
h = Math.max(b.scrY, d.scrY),
k = Math.min(b.scrX + b.width, d.scrX + d.width),
b = Math.min(b.scrY + b.height, d.scrY + d.height),
k = k - e,
b = b - h;
t = E({
scrX: e,
scrY: h,
width: 0 < k ? k : 0,
height: 0 < b ? b : 0
})
}
}), g = n.round(t.area() / a.area() * 100));
return g
}
}
},
ya = function(a) {
var b = !1;
return {
getCacheBustId: function() {
var a = new Date,
b = Date.parse("Jan 1 " + a.getFullYear()),
a = a.getTime() -
b;
return f.toBase(a, 62)
},
impressionIsIdentifiable: function(a) {
a && (b = !0);
return b
},
unq: function(a) {
var b = [];
b.push(a.slice(0, 8));
b.push(a.slice(8, 12));
b.push(a.slice(12, 16));
b.push(a.slice(16, 20));
b.push(a.slice(20));
return b.join("-")
}(function() {
var c = "";
try {
for (var b, e = u.Uint32Array && u.crypto && u.crypto.getRandomValues; 32 > c.length;) e ? (b = new Uint32Array(1), u.crypto.getRandomValues(b), c += b[0].toString(16)) : c += (16 * n.random() | 0).toString(16);
c = c.slice(0, 32)
} catch (h) {
a.add(g.ERROR_CODES.UID_GENERATION)
}
return c
}())
}
},
Ya = function(a) {
var b, c, d = l.request("features"),
e = function() {
var e, h, m, r, w = n.getMaxNumber();
e = n.getMaxNumber();
h = n.getWindow();
n.getDoc();
s.friendly ? (e = k(), m = e.left, r = e.top, w = e.width, e = e.height, h = v.windowPosition(), m = h.scrX + m, r = h.scrY + r) : d.on("rattie") && a.browserIs(g.BROWSERS.IE) ? (c = c || l.request("ieXDomainViewability"), b = c.determineFramePosition(), m = b.scrX, r = b.scrY) : f.isDef(h.mozInnerScreenX) && (m = n.round(h.mozInnerScreenX), r = n.round(h.mozInnerScreenY));
return {
scrX: m,
scrY: r,
iFrameClippingWidth: w,
iFrameClippingHeight: e
}
},
h = function() {
var a, b, c = v.getIeDimObj(),
d = n.getWindow();
f.isDef(d.innerWidth) ? (a = d.innerWidth, b = d.innerHeight) : c && f.isDef(c.clientWidth) ? (a = c.clientWidth, b = c.clientHeight, 0 === a && 0 < c.offsetWidth && (a = c.offsetWidth), 0 === b && 0 < c.offsetHeight && (b = c.offsetHeight)) : d.frameElement && f.isDef(d.frameElement.clientWidth) && (a = d.frameElement.clientWidth, b = d.frameElement.clientHeight);
return {
width: a,
height: b
}
},
k = function(a, c) {
a = a || n.getWindow();
c = c || {
top: 0,
left: 0,
width: n.getMaxNumber(),
height: n.getMaxNumber()
};
for (var b,
d = a.parent.document.getElementsByTagName("iframe"), e = !1, h = 0, f = d.length; h < f; h++)
if (b = d[h], b.contentWindow == a) {
e = !0;
break
}
if (e) {
b = v.getRect(b);
c.left += b.left;
c.top += b.top;
try {
c.width = n.min(c.width, b.width), c.height = n.min(c.height, b.height)
} catch (r) {
l.trigger("error", g.ERROR_CODES.GET_AD_DIMENSIONS)
}
a !== n.getTop() && k(a.parent, c)
}
return c
},
r = function() {
var a = {};
try {
a = f(e()).mixin(h())
} catch (c) {
l.trigger("error", g.ERROR_CODES.GET_AD_DIMENSIONS)
}
return a
};
return {
calcDims: function() {
return new E(r())
},
getClippedDims: function() {
var a =
r();
return new E({
scrX: a.scrX,
scrY: a.scrY,
width: a.iFrameClippingWidth,
height: a.iFrameClippingHeight
})
}
}
},
mb = function(a, b, c, d, e, h, k, r) {
var t = function(a, c) {
return isNaN(a) || 0 > a || "" === a ? c : a
},
q = function(a, b) {
var d, e, h = [],
k = function(a) {
return -1 !== a.key.indexOf("q") || -1 !== a.key.indexOf("g")
};
d = f(a).map(function(a, c) {
if (k(c)) return c
});
e = f(a).map(function(a, c) {
if (!k(c)) return c
});
f(d.concat(e)).each(function(a, d) {
var e;
e = d.val;
var k = d.key,
f;
f = 24 + h.join("&").length + k.length + 14;
f = b - f;
c.on("forceid") && f < e.length &&
0 < f && (e = e.substr(0, f));
if (e.length || "" === d.val || "" === d.type) e = "adsafe_url=" + e + "&adsafe_type=" + k, k = h.join("&").length, e.length + k <= b && h.push(e)
});
return h.join("&")
},
m = function() {
var a, e;
e = r.needsFlash() ? {
viewState: g.NA
} : r.checkScreenLoc(!0);
a = function(a) {
return ["id:" + p.asid, "c:" + d.getCacheBustId(), "sl:" + a.viewState, "em:" + s.embedded, "fr:" + s.friendly].join()
}(e);
e = function(a) {
var e, m = [];
m.push("mn:" + p.mn);
m.push("pt:" + function() {
var c = r.stringifyPingTimes();
a.viewState !== g.NA && (c += a.details);
return c
}());
m.push(f(k.params()).toParams());
h.iterate(function(a, c) {
var b = !c.props || f.isUndef(c.props.type),
d = !c.props || c.props.type === g.IMPRESSION_EVENT;
(b || d) && m.push(a + ":" + c.output())
});
b.toString() && m.push("e:" + b.toString());
m.push(c.output());
m.push("uf:" + (r.useFlash() ? 1 : 0));
m.push("tt:" + p.mode);
m.push("et:" + (n.now() - p.birthdate));
c.on("swapids") ? m.push("oid:" + p.oid) : m.push("uid:" + d.unq);
m.push("v:16.5.6");
m.push("sp:" + ("true" === p.jsDoSplit ? 1 : 0));
m.push("ct:" + s.getPageTime());
m.push("dtm:" + (c.on("postDts") &&
y.getXHR2() ? "p" : "i"));
m.push("gtpl:" + ("true" === p.getTpl ? 1 : 0));
c.on("resolution") && (m.push("wr:" + f(v.windowSize()).toArray().join(".")), m.push("sr:" + f(v.screenSize()).toArray().join(".")));
(e = function() {
var a, c, b;
b = Q.hashCode(p.asid) + "";
c = k.params().br.toUpperCase().charCodeAt(0); - 1 === b.indexOf(c) && (a = b);
return a
}()) && m.push("mf:" + e);
return m
}(e);
return {
primary: a,
secondary: e
}
},
x = function(a, c) {
var b = "adsafe_jsinfo=",
e = 0,
h = "true" === p.jsDoSplit ? 1 : 0,
k = function(a) {
if (a) return "," + a
};
b.length + a.primary.length +
5 <= c && (b += k(a.primary), d.impressionIsIdentifiable(!0), f(a.secondary).each(function(a, d) {
b.length + d.length + 5 <= c ? b += k(d) : e += 1
}), k("sp:" + h));
return b += ",ov:" + e
};
return {
send: function(a) {
var d, h, k, f, r, n;
d = e.baseUrl;
k = t(p.sp_imp_jload_maxLength, 4E3);
r = t(p.sp_imp_maxLength, 2E3);
k = c.on("bigmon") && "jload" === p.mode ? k : r;
r = c.on("forceid") ? t(p.sp_imp_jsInfo_minLength, 0) : 0;
try {
h = k - d.length - r, 0 < h && (d += q(a, h))
} catch (s) {
b.add(g.ERROR_CODES.IMPRESSION_URLS)
}
d += "&" === d.slice(-1) ? "" : "&";
try {
n = k - d.length, f = m(), d += x(f,
n)
} catch (u) {
b.add(g.ERROR_CODES.JSINFO), d += "adsafe_jsinfo=e:" + b.toString()
}
e.macroUrl && (d += "&" === d.slice(-1) ? "" : "&", d += e.macroUrl);
e.sendImpression(d);
l.trigger("impressionsent")
}
}
},
jb = function(a, b) {
return {
init: function(c) {
a.jsonp(c, function(a) {
b.send(g.DT_CODES.THIRD_PARTY, void 0, !1, !0, {
field: "tpiLookup",
value: a
})
}, !1, "callback")
}
}
},
eb = function(a) {
var b = function(a, c) {
return {
time: a,
task: c
}
},
c = function(a, c) {
c = c || f.noop;
return function(h) {
return f(h).map(function(h, f) {
var g = f / 1E3;
return new b(f, function() {
var b;
b = "";
var h = s.isVideo() ? 2 : 1;
g !== h && (b += g);
b = p["_onInViewMRC" + b];
l.trigger("sendDt", a, g);
c(b)
})
})
}
};
return {
getJob: function(a, c) {
return new b(a, c)
},
getPingJobs: c(g.DT_CODES.PING, function(c) {
"true" === p.useViewabilityNotification && !a.skipAsFraudulent() && c && l.trigger("notify", c)
}),
getFullyInViewPingJobs: c(g.DT_CODES.FULLY_INVIEW),
getPosInViewPingJobs: c(g.DT_CODES.POS_INVIEW)
}
},
Ta = function() {
var a = function(a, b) {
-1 !== a.indexOf(b + "&") && (b += "&");
return a.replace(b, "")
},
b = function(a, b, e) {
var h = a.indexOf("?");
b = b + "=" + e;
if (-1 === h) return a + "?" + b;
h++;
return a.slice(0, h) + b + "&" + a.slice(h)
};
return {
wrap: function(c, d, e, h) {
var k = "__IntegralAS_" + p.asid.replace(/\-/g, "") + "_" + n.round(1E4 * Math.random()),
f, g, q;
h = h || "ias_callback";
RegExp(h).test(c) && (f = RegExp("(" + h + "=)(.[^&]*)").exec(c)[0], g = f.split("=")[1], q = Q.stringToFn(g), c = a(c, f));
u[k] = function(a) {
d(a);
e && q && q(a);
u[k] = void 0
};
return c = b(c, h, k)
}
}
},
kb = function(a, b, c) {
var d = {
jss: {
isFW: !0,
nodeType: "script"
},
rjss: {
isFW: !0,
nodeType: "script"
},
jsi: {
isFW: !0,
nodeType: "iframe"
},
rjsi: {
isFW: !0,
nodeType: "iframe"
},
jload: {
impressionMethod: function(c) {
a.enabled ? l.trigger("jsonp", c, a.callback, !0) : l.trigger("send", c, function() {
l.trigger("sendDiag")
}, !b.on("postMon"))
}
},
bapi: {
impressionMethod: function(c) {
l.trigger("jsonp", c, a.enabled ? a.callback : f.noop, a.enabled ? !0 : !1)
}
},
jsapi: {
isFW: !0,
impressionMethod: function(c) {
l.trigger("jsonp", c, a.enabled ? a.callback : f.noop, a.enabled ? !0 : !1)
}
},
jsvid: {
manualDefer: !0,
impressionMethod: function(c) {
l.on("adImpression", function() {
a.enabled ? l.trigger("jsonp",
c, a.callback, !0) : l.trigger("send", c, f.noop, !b.on("postMon"))
})
}
},
fwjsvid: {
isFW: !0,
manualDefer: !0,
impressionMethod: function(a) {
var c = "false" === p.fwMonitoring,
b = function(a) {
a = a.split("/");
a[3] = "db2";
a[4] = "video";
return a.join("/")
};
c && l.trigger("jsonp", b(a), function(a) {
l.trigger("videoBlockResult", a)
});
l.on("adImpression", function(b) {
var d;
if (d = c) d = b && f.isBool(b.integral_didBlock) && 0 <= b.integral_timeToDecision;
d && (a = a.replace(/(adsafe_jsinfo=)([^&]*)/, "$1$2,abc:" + (b.integral_didBlock ? 1 : 0) + ",abct:" +
b.integral_timeToDecision));
l.trigger("send", a, f.noop, !0)
})
}
},
jspix: {
nodeType: "img"
}
};
return new function() {
var a = function(a) {
var b = -1 === a.indexOf("?") ? "?" : "&";
return a + b
},
b = d[p.mode],
k = !!b.isFW,
f = function(a) {
var b;
b = l.request("mobileApp").isMobileAppEnvironment() && p.mobFwUrl ? p.mobFwUrl : a ? p.adsafeSrc : p.requrl;
a || (b += "?" + p.reqquery);
return b
}(k),
g = f.indexOf("BEGIN__ADSAFE"),
q = -1 !== g,
m = q ? f.slice(g) : "",
a = q ? f.slice(0, g) : a(f);
return {
isFW: k,
baseUrl: a,
macroUrl: m,
sendImpression: function(a) {
var d = function() {
b.nodeType ?
l.trigger("addNode", b.nodeType, a) : b.impressionMethod(a)
};
if (c || b.manualDefer) d(a);
else if (!b.manualDefer) l.on("adImpression", function() {
d(a)
})
}
}
}
},
yb = function(a, b) {
var c, d = p.mtCell,
e = p.mtSample,
h = 0,
k = 0,
r = [],
l = null,
q = null,
m, x = function(a) {
try {
var c = n.now() - l;
h += c;
y.removeEvent("mousemove", A);
r.push("{ht:" + h + ",mm:{" + f(m).toParams() + "}}");
b.addItem({
output: "{cs:" + d + ",sr:" + e + ",ec:" + r.length + ",me:[" + r.slice(-10).join(",") + "]}"
}, "mt", {
type: g.DT_CODES.UNLOAD
})
} catch (k) {}
},
w = function(a) {
try {
h = 0, m = {}, l = n.now(),
y.addEvent(c, "mousemove", A)
} catch (b) {}
},
A = function(b) {
var h, g, r, l, t, p, A;
try {
null === q && (q = c && f.isDef(b.clientX) && f.isDef(b.clientY));
if (q && 0 === k % e && (t = a.calcDims(), -1 !== t)) {
A = n.ceil(t.width / d);
var w = b.clientX,
x = b.clientY;
r = s.embedded ? w : w - t.x;
l = s.embedded ? x : x - t.y;
h = n.floor(r / d);
g = n.floor(l / d);
p = h + g * A;
m[p] ? m[p] ++ : m[p] = 1
}
k++
} catch (u) {}
};
return {
init: function() {
var b = setInterval(function() {
try {
a.isAdDetected() && (c = a.getOriginatingElement(), y.addEvent(c, "mouseenter", w), y.addEvent(c, "mouseleave", x), clearInterval(b))
} catch (d) {}
},
250)
}
}
},
n = {
execAtEndOfThread: function(a) {
setTimeout(a, 0)
},
now: function() {
return (new Date).getTime()
},
random: function() {
return Math.random()
},
round: function(a) {
return Math.round(a)
},
ceil: function(a) {
return Math.ceil(a)
},
floor: function(a) {
return Math.floor(a)
},
min: function() {
return Math.min.apply(null, arguments)
},
distance: function(a, b) {
return Math.abs(a - b)
},
getWindow: function() {
return u
},
getMaxNumber: function() {
return Number.MAX_VALUE
},
getTop: function() {
return top
},
getNewActiveXObject: function(a) {
return new ActiveXObject(a)
},
getDoc: function() {
return B
},
getIntersectionObserver: function(a, b) {
return new IntersectionObserver(a, b)
}
},
Pa = function() {
var a, b = !1,
c = l.request("features"),
d = new da,
e = function() {
var b;
c.on("blur") ? (b = n.getWindow(), b = s.friendly && b.top.document && (f.isFunction(b.top.document.hasFocus) || f(b.top.document.hasFocus).isObj()) && !b.top.document.hasFocus() || (f.isDef(a.prop) ? n.getDoc()[a.prop] : null)) : b = f.isDef(a.prop) ? n.getDoc()[a.prop] : null;
return b
},
h = function() {
var b = n.getWindow(),
c = function() {
d.run(e())
};
y.addEvent(b,
"focus", c, !0);
y.addEvent(b, "blur", c, !0);
a.event && y.addEvent(n.getDoc(), a.event, c, !0)
};
a = function() {
var a, b = "hidden",
c = "visibilitychange",
d = n.getDoc();
f.isUndef(d.hidden) ? f(["moz", "ms", "webkit"]).each(function(e, h) {
var g = h + "Hidden";
f.isDef(d[g]) && (b = g, c = h + c, a = !0)
}) : a = !0;
return a ? {
prop: b,
event: c
} : {}
}();
return {
isHidden: e,
onHiddenChange: function(a) {
d.push(a);
b || (b = !0, h())
}
}
},
Ra = function(a, b) {
var c = function(a) {
for (var b in a)
if (a.hasOwnProperty(b)) {
var c = a[b];
("" === c || "null" === c || "undefined" === c || null ===
c || f.isUndef(c)) && delete a[b]
}
return a
},
d = function(a) {
var b = {},
c, d;
for (d in a) a.hasOwnProperty(d) && (c = a[d], f.isUndef(b[c]) ? b[c] = d : b[c] += d);
a = {};
for (d in b) b.hasOwnProperty(d) && (c = b[d], a[c] = d);
return a
};
return {
detectTopURL: function() {
var e, h = function() {
var a = {};
try {
a.q = b.getWindow().parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.location.href
} catch (c) {
var d = c.message,
d = d.substring(d.lastIndexOf("<") + 1, d.lastIndexOf(">")),
e;
if (e = f.isDef(d)) {
var h = b.getWindow();
e = !1;
f.isDef(h.navigator) &&
f.isDef(h.navigator.userAgent) && (h = h.navigator.userAgent.match(/Firefox\/([\.0-9]+)/), null !== h && 2 == h.length && (h = h[1].split("."), 3 == parseInt(h[0], 10) && 6 >= parseInt(h[1], 10) && (3 == h.length ? 13 >= parseInt(h[2], 10) && (e = !0) : e = !0)))
}
e && (a.g = d)
}
return a
},
k = {};
try {
k.a = encodeURIComponent(top.location.href)
} catch (g) {}
try {
k.b = encodeURIComponent(parent.location.href)
} catch (l) {}
if (s.embedded) {
try {
k.c = encodeURIComponent(parent.document.referrer)
} catch (q) {}
try {
k.e = encodeURIComponent(u.document.referrer)
} catch (m) {}
}
try {
"jsi" !==
p.mode && (k.d = encodeURIComponent(u.location.href))
} catch (n) {}
try {
k.f = encodeURIComponent(p.jsref)
} catch (w) {}
try {
e = h(), k.g = encodeURIComponent(e.g || ""), k.q = encodeURIComponent(e.q || ""), a.isStarted() && !e.g && 1 < a.getMyFrameDepth() && (k.g = encodeURIComponent(a.getTopDomain()))
} catch (A) {}
k = c(k);
k = d(k);
e = [];
for (var z in k) k.hasOwnProperty(z) && e.push({
key: z,
val: k[z]
});
e.sort(function(a, b) {
return a.val.length > b.val.length ? 1 : a.val.length < b.val.length ? -1 : 0
});
return e
}
}
},
Ab = function(a) {
return {
hash: function() {
for (var b =
0, c = a.length, d = [], e; b < c; b++) e = a[b].filename.replace(/\.plugin$/, ""), e = Q.hashCode(e), e = f.toBase(e, 62).slice(-4), d.push(e);
return d
},
decode: function(b) {
var c, d;
c = n.floor(n.random() * b.length);
d = encodeURIComponent(a[c].filename.replace(/\.plugin$/, ""));
return [b[c], d]
}
}
},
Oa = function(a) {
var b = !1;
return {
measure: function(c) {
(b = 0 === c.rsa) && a.trigger("notify", p._onSuspicious)
},
skipAsFraudulent: function() {
return b
}
}
},
Sa = function() {
var a = [],
b = {},
c = {
sl: "n",
gsl: "gn",
fsl: "fn"
},
d = 0,
e, h, k = {
i: 0,
o: 0,
n: 0,
pp: 0,
pm: 0,
gpp: 0,
gpm: 0,
gi: 0,
go: 0,
gn: 0,
fi: 0,
fo: 0,
fn: 0
},
r = function(a) {
var b = {},
c = a.winDimensions,
d = a.adDimensions;
f.isDef(c) && c.hasValidDims() && (b.wc = c);
f.isDef(d) && d.hasValidDims() && (b.ac = d, b.am = a.method, b.cc = a.containerDimensions);
f({
piv: "percentInView",
obst: "obstructed",
th: "tabHidden",
reas: "reason",
cmps: "adCompCount"
}).each(function(c, d) {
var e = a[d];
f.isDef(e) && (b[c] = e)
});
c = f(b).toParams();
return "" === c ? "" : "," + c
},
t = function(a, c) {
var d = new Kb(c);
return b[a] = d
},
q = function(a, b) {
return (b || "") + {
inView: "i",
outOfView: "o",
na: "n",
partialViewMinus: "pm",
partialViewPlus: "pp"
}[a]
},
m = function() {
f(c).each(function(b, c) {
k[c] += a.length ? h - d : h
});
d = h
},
n = function(b) {
a.length && m();
f(b).each(function(a, b) {
var d = c[a];
d !== b && "n" === d && (k[b] += k.n);
c[a] = b
});
a.length || m()
},
p = function(a) {
var c, d = g.NA,
d = a.adDimensions ? a.adDimensions.getRounded() : {
width: d,
height: d
};
c = r(a);
var e = {
sl: q(a.viewState),
fsl: q(a.fState || g.NA, "f"),
gsl: q(a.gState || g.NA, "g")
};
h = s.getTagTime();
n(e);
e.t = h;
c = f({
toString: function() {
f(b).each(function(a, b) {
b.fastForward()
});
return "{" + f(e).toParams() + this.details + this.breakdowns + "}"
},
details: c,
breakdowns: {
piv: [],
as: [],
toString: function() {
var a, b = function(a, b) {
return b.duration + "~" + b.state
};
a = "" + ("piv:[" + f(this.piv).stringify(b) + "]");
a += ",as:[" + f(this.as).stringify(b) + "]";
return ",bkn:{" + a + "}"
}
},
isInView: function() {
return -1 !== (g.IN_VIEW + "|" + g.PARTIAL_VIEW_PLUS).indexOf(a.viewState)
},
isFullyInView: function() {
var b = a.useCocoa ? a.fullPercentInView : a.percentInView;
return this.isInView() && 100 === b
}
}).mixin(e);
f(c).mixin(a);
c.width =
d.width;
c.height = d.height;
return c
};
(function() {
t("piv", function(a) {
var b, c = a.percentInView,
d = [1, 25, 30, 50, 75];
100 === c || 0 === c ? b = c : (f(d).each(function(a, e) {
f.isUndef(b) && c < e && (b = d[a - 1])
}), f.isUndef(b) && (b = d[d.length - 1]));
return b
});
t("as", function(a) {
var b = g.NA;
a = a.adDimensions ? a.adDimensions.getRounded() : {
width: b,
height: b
};
return a.width + "." + a.height
})
})();
return {
fastForward: function() {
h = s.getTagTime();
m()
},
registerLocation: function(d) {
var h, k = !1;
c.sl == q(d.viewState) && a.length ? (h = new p(d), a[a.length -
1].details = h.details) : (h = new p(d), a.push(h), e = d.viewState, k = !0);
l.trigger("newScreenEvent", h);
f(b).each(function(b, c) {
-1 !== "piv|as".indexOf(b) ? (k && c.clear(), c.addState(h), a[a.length - 1].breakdowns[b] = c.get()) : c.addState(h)
});
return h
},
stringify: function(b) {
var c = "";
a.length && (c = f({
slTimes: "{" + f(k).toParams() + "}",
slEvents: "[" + a.slice(-b).join(",") + "]",
slEventCount: a.length
}).toParams());
return c
},
createViewabilityTracker: t,
getCurrentLoc: function() {
return q(e)
}
}
},
Q = {
rot: function(a) {
return a.replace(/[a-zA-Z]/g,
function(a) {
return String.fromCharCode(("Z" >= a ? 90 : 122) >= (a = a.charCodeAt(0) + 13) ? a : a - 26)
})
},
hashCode: function(a) {
var b = 0,
c, d, e;
if (0 === a.length) return b;
c = 0;
for (e = a.length; c < e; c++) d = a.charCodeAt(c), b = (b << 5) - b + d, b |= 0;
return b
},
stringToFn: function(a) {
var b, c = u,
d = a.split(".");
for (a = 0; a < d.length; a++)
if (b = c, c = c[d[a]], f.isUndef(c) || a === d.length - 1 && !f.isFunction(c)) return !1;
return function() {
c.apply(b, arguments)
}
},
stringToProp: function(a) {
var b = n.getWindow(),
c = a.split(".");
for (a = 0; a < c.length && (b = b[c[a]], !f.isUndef(b)); a++);
return b
}
},
Ma = function(a) {
var b, c, d, e = new X,
h = new V,
k = new Lb(e),
g = new Mb,
l = new Nb,
q = new Ob(e, a),
m = function() {
f.isUndef(d) && (d = new Pb(e));
return d
},
n = function() {
e.provide({
frameCollection: function() {
return k
},
adProxy: function() {
return l
},
adTalkMessage: function(a) {
return new Qb(a, e)
},
adTalkMessageCollection: function() {
return g
},
idMapModule: m,
interFrameQuerySelector: function(a) {
return new Rb(a)
}
})
};
return {
isApplicable: function(a) {
return f.isDef(u.JSON) && f.isDef(u.postMessage) && !a.isAvid()
},
start: function() {
n();
h.traverse(k.addFrame);
q.startListening();
q.sendToKnownFrames()
},
sendAdTalkCall: q.sendAdTalkCall,
getFrameMap: function() {
f.isUndef(b) && (b = new qa(e));
return b
},
getFrameMapIncludingPeerCase: function() {
f.isUndef(c) && (c = new qa(e, !0));
return c
},
getIdMap: m
}
},
Qb = function(a, b) {
var c, d = b.request("adProxy").myIdCard,
e = b.request("frameCollection").getMe().getStringifiedPosition();
c = l.request("features").on("swapids") ? p.oid : p.asid;
var h = a || {},
f = p.asid,
d = d.tagId,
r = s.embedded,
t = s.friendly,
q = p.birthdate;
c = c.split("-")[2];
var m;
s.friendly ? m = "[" + g.AD_IDENTIFIER + "-" + p.asid + "]" : (m = n.getWindow(), m = m.location && m.location.href, m = 'iframe[src*="' + (m && m.replace(/^https?\:\/\//i, "")) + '"]');
return {
messageContent: h,
srcAsid: f,
srcTagId: d,
srcIsEmbedded: r,
srcIsFriendly: t,
srcBirthdate: q,
iasCommonId: c,
nodeSelector: m,
positionStr: e,
version: "0.1"
}
},
Mb = function() {
var a = {};
return {
add: function(b, c) {
var d = b && b.srcAsid;
d && !a[d] && (a[d] = b, d !== p.asid && f.isFunction(c) && c(b))
},
map: function(b) {
return f(a).map(b)
},
has: function(b) {
return a[b]
}
}
},
Sb =
function(a, b, c, d) {
var e, h = a == u;
e = {
position: b.slice(0),
id: b.join("-"),
isMe: h,
isLeaf: !a.frames.length,
adProxies: h ? c : [],
selfDescription: void 0,
unifiedId: p.birthdate,
srcIsEmbedded: d ? d.srcIsEmbedded : void 0,
inbox: d ? [d] : [],
getDomObj: function() {
return a
},
getStringifiedPosition: function() {
return f(e.position).map(function(a, b) {
return f.toBase(Number(b) + 1, 36)
}).join("")
},
isValidForMapping: function() {
return e.isLeaf || e.isMe || f.isDef(e.selfDescription)
}
};
var k = function(a) {
var b = e.adProxies;
a = a.adProxies;
var c = [];
b.length && a.length ? f(a).each(function(a, d) {
g(b, d) && c.push(d)
}) : c = a;
e.adProxies = b.concat(c)
},
g = function(a, b) {
return !f(a).find(function(a, c) {
return c.adSafeId && c.adSafeId === b.adSafeId
})
},
l = function(a) {
f(e.inbox).find(function(b, c) {
return c.srcAsid && c.srcAsid === a.srcAsid
}) || e.inbox.push(a)
};
e.addInformationFromSrc = function(a, b) {
k(b);
l(a);
e.srcIsEmbedded = a.srcIsEmbedded;
e.selfDescription = b
};
return e
},
Lb = function(a) {
var b = [],
c = {},
d = {
noMe: !0
};
return {
addFrame: function(e, h, f) {
var g = a.request("adProxy").getAll();
e = new Sb(e, h, g, f);
b.push(e);
c[e.id] = e;
e.isMe && (d = e);
return e
},
getFrame: function(a) {
return c[a]
},
list: b,
dictionary: c,
getMe: function() {
return d
}
}
},
qa = function(a, b) {
var c = function(a, c) {
var f = c.adProxies,
g = "";
if (c.isValidForMapping()) {
if (b) g += d(f, c.getStringifiedPosition());
else {
var l;
l = "" + c.getStringifiedPosition();
l += c.isMe ? "*" : "";
l += f.length ? "." + f[0].tagId : "";
g += l
}
return g
}
},
d = function(a, b) {
var c = "";
return c = a.length ? c + f(a).stringify(function(a, c) {
return b + (p.asid === c.adSafeId ? "*" : "") + "." + c.tagId
},
"|") : c + b
};
return {
output: function() {
var b = a.request("frameCollection"),
d = f(b.list).stringify(c, "|");
return f.toBase(b.getMe().unifiedId, 62) + "+" + d
}
}
},
Pb = function(a) {
var b = a.request("frameCollection").getMe().getStringifiedPosition(),
c = p.contextNode.parentNode,
d = a.request("interFrameQuerySelector", c),
e = function(a) {
var b = a.length;
return 120 < b ? a.substr(0, 120) + ".of" + b : a
},
h = function(a) {
var e = !1,
e = !s.embedded,
h = "BODY" !== v.getNodeName(c) && "HEAD" !== v.getNodeName(c),
f;
if (f = a.srcIsEmbedded) {
f = "0.1" !== a.version;
var m = a.nodeSelector && -1 === a.nodeSelector.indexOf(g.AD_IDENTIFIER);
f = !(f ? m : !a.srcIsFriendly)
}
e && h && !f ? e = !!d.queryFor(a.nodeSelector) : (e = a.positionStr, a = a.srcIsEmbedded && s.embedded, e = 0 === b.indexOf(e) || 0 === e.indexOf(b), e = !(!a || !e));
return e
};
return {
output: function() {
var c, d = b + "*";
c = a.request("adTalkMessageCollection").map(function(a, b) {
var c;
a !== p.asid && h(b) && (c = b.positionStr + "." + b.srcAsid + "." + b.transferDuration + "_" + b.srcTagId);
return c
});
c.push(d);
c = c.join("|");
return c = e(c)
},
isCandidateForMyIdMap: h
}
},
Rb = function(a) {
var b = new V,
c = function(a) {
var b = a,
c = "IFRAME" === v.getNodeName(a),
d = v.isWindow(a);
c ? b = a.contentWindow.document : d && (b = a.document);
return b
},
d = function(a, b) {
return v.querySelector(c(a), b)
},
e = function(c, e) {
var g, l, q;
try {
l = d(c, e), l || (g = b.getFrames(!0, a), f(g).findFirst(function(a, b) {
return q = d(b, e)
}))
} catch (m) {}
return l || q || null
};
return {
queryFor: function(b) {
var c = null;
b && (c = e(a, b));
return c
}
}
},
Ob = function(a) {
var b = !1,
c;
c = l.request("features").on("swapids") ? p.oid : p.asid;
var d = function(a) {
var b =
c.split("-")[2];
return a.hasOwnProperty("messageContent") && b === a.iasCommonId
},
e = function() {
var b = a.request("frameCollection").getMe();
return a.request("adTalkMessage", {
self: b,
unifiedId: b.unifiedId
})
},
h = function(a, b) {
a.unifiedId > b.unifiedId && (a.unifiedId = b.unifiedId)
},
k = function(a) {
return n.now() - a.sentTime
},
r = function() {
var c = g.DT_CODES.ADTALK;
a.request("frameCollection");
b || (b = !0);
l.trigger("sendDt", c)
},
t = function(a) {
return f.isUndef(a) || f.isUndef(a.selfDescription)
},
q = function(c, d, e) {
var f = !1,
q,
n, p, s;
try {
q = a.request("frameCollection"), n = d.messageContent.self, h(q.getMe(), n), d.transferDuration = k(d), p = q.getFrame(n.id), a.request("adTalkMessageCollection").add(d, function() {
f = !0
}), t(p) || f ? (p = p || q.addFrame(c.source, n.id.split("-"), d), p.addInformationFromSrc(d, n), e()) : p.addInformationFromSrc(d, n), (s = b && f && a.request("idMapModule").isCandidateForMyIdMap(d)) && r()
} catch (u) {
l.trigger("error", g.ERROR_CODES.ADTALK_DUBIOUS)
}
};
return {
sendAdTalkCall: r,
sendToKnownFrames: function() {
(new aa).send(e)
},
startListening: function() {
(new ea).listen(d,
q, e)
},
validateMessage: d,
processMessage: q,
createMessage: e
}
},
Tb = function(a) {
a = a || p;
var b;
a.reqquery ? b = a.reqquery.split(/(?:anId=|anid=|ANID=)([^&]*)/)[1] : (b = a.adsafeSrc.split("/"), b = b[5] + "-" + b[6]);
return {
tagId: b,
adSafeId: a.asid
}
},
Nb = function() {
var a, b = [],
c = function(a) {
a = new Tb(a);
b.push(a);
return a
};
a = c();
return {
createNew: c,
getAll: function() {
return b
},
myIdCard: a
}
},
Xa = function(a) {
var b, c, d = !1,
e = n.getDoc().documentElement,
f = function(a) {
var e = !0;
d && (d = !1, a.stopPropagation(), a.preventDefault(), b = a.screenX -
a.clientX, c = a.screenY - a.clientY, e = !1);
return e
};
a.browserIs(g.BROWSERS.IE) && y.addEvent(e, "click", f, !0);
return {
determineFramePosition: function() {
a.browserIs(g.BROWSERS.IE) && (d = !0, e.click());
return {
scrX: b,
scrY: c
}
}
}
},
Wa = function(a) {
var b = g.NA,
c = !1,
d = function(a) {
if (!f.isUndef(a)) {
var b = n.getDoc().createElement("div");
f(b.style).mixin({
position: "absolute",
width: "100%",
opacity: "0",
height: "100%",
zIndex: -999,
top: "0px",
left: "0px"
});
b[g.IAS_DETECTOR] = !0;
a.appendChild(b);
return b
}
};
return {
getPiv: function() {
return b
},
isApplicable: function(a, b, c) {
return a.browserIs(g.BROWSERS.CHROME) && a.hasIntersectionObserver() && c.xDomainIframe && b.on("chromeNativeIO")
},
start: function() {
var e = n.getIntersectionObserver(function(a) {
a = a.pop();
b = a.intersectionRect.width * a.intersectionRect.height / (a.boundingClientRect.width * a.boundingClientRect.height) * 100
}, {
threshold: [0, 0.01, 0.25, 0.3, 0.5, 0.75, 0.99, 1]
});
n.execAtEndOfThread(function() {
b = 0
});
e.observe(d(a));
n.execAtEndOfThread(function() {
l.trigger("delayedViewabilityReady")
});
c = !0
},
isStarted: function() {
return c
}
}
},
ub = function() {
return {
start: function() {
y.whenReady(function(a) {
l.trigger("startViewabilityLoop");
l.trigger("documentIsReady")
})
},
isApplicable: function(a) {
return a.bootstrapOn("allowViewability")
}
}
},
Ub = function() {
return {
start: function(a) {
l.on("measurable", function() {
a()
})
},
isApplicable: function(a, b) {
return !b.browserIs(g.BROWSERS.WEBKIT)
}
}
},
Vb = function() {
return {
start: function(a) {
a()
},
isApplicable: function(a) {
return a.isImmediatelyMeasurable()
}
}
},
nb = function(a, b, c) {
var d = !1,
e = function() {
b.impressionIsIdentifiable() &&
!d && (d = !0, l.trigger("notify", p._onMeasurable))
};
return {
start: function() {
var b;
b = [Wb(), Xb(), Vb(), Ub()];
(b = f(b).findFirst(function(b, d) {
return d.isApplicable(c, a)
})) && b.start(e)
},
isApplicable: function(a) {
return a.bootstrapOn("useViewabilityNotification") && f.isDef(p._onMeasurable)
}
}
},
Xb = function() {
return {
start: function(a) {
Jb(l, ["adImpression", "measurable"]).onAll(function() {
a()
})
},
isApplicable: function(a, b) {
return !b.browserIs(g.BROWSERS.WEBKIT) && s.isVideo()
}
}
},
Wb = function() {
return {
start: function(a) {
l.on("adImpression",
function() {
a()
})
},
isApplicable: function(a) {
return a.isImmediatelyMeasurable() && s.isVideo()
}
}
},
Ca = function(a, b, c) {
var d = ["rjss", "jss", "jload"],
e = function() {
var a = !1,
c = b.getAvidContext();
f.isDef(c) && (a = c.isDeferred);
return !a
};
return {
accepts: function() {
var a = f.isDef(f(d).find(function(a, b) {
return b === c
}));
return b.accepts() && b.isMediaType(g.MEDIA_TYPE.DISPLAY) && a
},
isImmediate: e,
isMediaType: b.isMediaType,
start: function() {
try {
var b = a.avid;
e() || b.addEventListener("ready", function() {
l.trigger("adImpression")
})
} catch (c) {}
}
}
},
Ba = function(a) {
var b = function() {
var b;
try {
b = a.avid.getAvidAdSessionContext()
} catch (d) {}
return b
};
return {
accepts: function() {
return f.isDef(a.avid)
},
isMediaType: function(a) {
var d, e = b();
f.isDef(e) && (d = e.mediaType || g.MEDIA_TYPE.DISPLAY);
return a === d
},
getAvidContext: b
}
},
Aa = function(a, b) {
var c, d = function(a) {
var d, f, g;
try {
d = a.eventData.percentageInView, f = c && 95 <= d, g = {
windowDimensions: {
x: 0,
y: 0,
width: 0,
height: 0
},
adDimensions: {
x: 0,
y: 0,
width: 0,
height: 0
},
containerDimensions: {
x: 0,
y: 0,
width: 0,
height: 0
},
shouldDelegateToDomBasedViewability: f,
isMeasurable: 0 === d || 95 <= d,
isObstructed: !1,
isHidden: !1,
numberOfAdverts: 1,
percentageInView: d,
detectionMethod: "av"
}, b.trigger("screenLocationChanged", g)
} catch (l) {}
};
return {
start: function() {
try {
var b = a.avid,
f = b.getAvidAdSessionContext().avidAdSessionType;
c = "display" === f || "video" === f;
b.addEventListener("viewability", d)
} catch (k) {}
},
addScreenLocationChangedListener: function(a) {
b.on("screenLocationChanged", a)
}
}
},
Fa = function(a, b, c) {
var d = ["jload"];
return {
accepts: function() {
var a = f.isDef(f(d).find(function(a,
b) {
return b === c
}));
return b.accepts() && b.isMediaType(g.MEDIA_TYPE.VIDEO) && a
},
isImmediate: function() {
return !1
},
isMediaType: b.isMediaType,
start: function() {
try {
a.avid.addEventListener("video", function(a) {
"AdImpression" === a.eventSubType && l.trigger("adImpression")
})
} catch (b) {}
}
}
},
Ea = function(a, b) {
var c = function(a) {
try {
b.trigger("videoPlaybackEvent", {
eventType: a.eventSubType,
eventData: a.eventData
})
} catch (c) {}
};
return {
start: function() {
try {
a.avid.addEventListener("video", c)
} catch (b) {}
},
addVideoPlaybackEventListener: function(a) {
b.on("videoPlaybackEvent",
a)
}
}
},
Da = function(a, b) {
var c = function(a) {
var c = a.percentageInView;
a.viewState = 50 <= c ? g.IN_VIEW : g.OUT_OF_VIEW;
a.outOfViewReason = 50 <= c ? "" : g.OUT_OF_VIEW_REASONS.GEOM;
b.trigger("measurementChanged", a)
};
return {
start: function() {
l.trigger("addOutputItem", {
output: g.MEDIA_TYPE.DISPLAY_CODE
}, g.MEDIA_TYPE_CODE, {
type: g.IMPRESSION_EVENT
});
a.addScreenLocationChangedListener(c);
a.start()
},
getStrategyName: function() {
return g.MEASUREMENT_STRATEGY.DISPLAY
},
addMeasurementChangedListener: function(a) {
b.on("measurementChanged",
a)
}
}
},
Ja = function(a, b) {
var c = f.isDef(a) ? a.environment : void 0,
d = f.isDef(a) ? a.measurementStrategy : void 0,
e = function() {
return f.isDef(d)
};
f.isDef(b) && b.start();
return {
hasMeasurementStrategy: e,
getScreenLocationInfo: function(a) {
return b.create(a)
},
isImmediate: function() {
return e() ? c.isImmediate() : !0
},
isMediaType: function(a) {
return e() ? c.isMediaType(a) : !1
},
start: function() {
e() && c.start()
}
}
},
Ha = function(a) {
return {
resolve: function() {
var b = f(a).findFirst(function(a, b) {
return b.environment.accepts()
});
if (f.isDef(b)) return b
}
}
},
Ia = function(a) {
var b, c = !1,
d = !0,
e, h = {
winDimensions: E({
scrX: 0,
scrY: 0,
width: 0,
height: 0
}),
adDimensions: E({
scrX: 0,
scrY: 0,
width: 0,
height: 0
}),
containerDimensions: E({
scrX: 0,
scrY: 0,
width: 0,
height: 0
}),
method: g.NA,
viewState: g.NA,
percentInView: g.NA,
reason: "",
obstructed: g.NA,
isHidden: g.NA,
tabHidden: g.NA,
posViewState: g.NA,
adCompCount: 1
},
k = function(a) {
return new E({
scrX: a.x,
scrY: a.y,
width: a.width,
height: a.height
})
},
n = function(a) {
e = {
winDimensions: k(a.windowDimensions),
adDimensions: k(a.adDimensions),
containerDimensions: k(a.containerDimensions),
method: a.detectionMethod || g.NA,
viewState: a.viewState || g.NA,
percentInView: f.isDef(a.percentageInView) ? a.percentageInView : g.NA,
reason: a.outOfViewReason || "",
obstructed: g.NA,
isHidden: g.NA,
tabHidden: g.NA,
posViewState: a.viewState || g.NA,
adCompCount: a.numberOfAdverts || 1,
shouldDelegateToDomBasedViewability: a.shouldDelegateToDomBasedViewability
};
a.isMeasurable && (b = !0, c && (c = !1, l.trigger("delayedViewabilityReady")))
};
return {
create: function(a) {
var k = h;
d && !b && (c = !0, d = !1);
if (f.isDef(e))
if (e.shouldDelegateToDomBasedViewability) k =
a, k.method = e.method;
else if (0 === e.percentInView || 95 <= e.percentInView) k = e;
return k
},
start: function() {
var b;
f.isDef(a) && f.isDef(a.measurementStrategy) && (b = a.measurementStrategy, b.addMeasurementChangedListener(n), b.start())
}
}
},
Ga = function(a, b, c) {
var d = !1,
e = !1,
h, k, n, p, q = function() {
if (!f.isUndef(k)) {
var a = [],
b, l;
d ? (e ? (l = !1, b = 100) : (l = p, b = n), 50 > b && a.push(g.OUT_OF_VIEW_REASONS.GEOM)) : (l = !1, b = 0, a.push(g.OUT_OF_VIEW_REASONS.VIDEO));
k.shouldDelegateToDomBasedViewability = l;
k.percentageInView = b;
k.viewState = 50 >
b ? g.OUT_OF_VIEW : g.IN_VIEW;
k.outOfViewReason = a.join(".");
h = k;
c.trigger("measurementChanged", h)
}
},
m = function(a) {
k = a;
n = a.percentageInView;
p = a.shouldDelegateToDomBasedViewability;
q()
},
s = function(a) {
a = a.eventType;
"AdEnteredFullscreen" === a ? e = !0 : "AdExitedFullscreen" === a ? e = !1 : -1 !== "AdStarted|AdVideoStart|AdPlaying".indexOf(a) ? d = !0 : -1 !== "AdSkipped|AdUserClose|AdPaused|AdVideoComplete|AdStopped".indexOf(a) && (d = !1);
q()
};
return {
start: function() {
l.trigger("addOutputItem", {
output: g.MEDIA_TYPE.VIDEO_CODE
}, g.MEDIA_TYPE_CODE, {
type: g.IMPRESSION_EVENT
});
a.addScreenLocationChangedListener(m);
a.start();
b.addVideoPlaybackEventListener(s);
b.start()
},
getStrategyName: function() {
return g.MEASUREMENT_STRATEGY.VIDEO
},
addMeasurementChangedListener: function(a) {
c.on("measurementChanged", a)
}
}
},
lb = function(a, b, c, d, e, h, k, l, t, q, m, x, w, A) {
var z, v, G, H, B, C = 0,
L = 0,
I = !1,
K = s.isVideo(),
J = k.request("mobileApp"),
Q = K ? 200 : 100;
d = p.mobOrTab;
var T = !d && e.on("recordalternate") && !e.bootstrapOn("killFlash"),
M = b.hasFlashEnabled(),
V = e.on("forcecocoa") && M,
N =
e.on("nextcocoa");
b.getDocumentMode();
var U = k.request("intersectionWatcher"),
U = b.browserIs(g.BROWSERS.GECKO) || b.browserIs(g.BROWSERS.IE) && e.on("rattie") || U.isApplicable(b, e, s),
O = s.friendlyIframe && V || s.xDomainIframe && U && V || s.xDomainIframe && !U,
R = !d && O && e.on("cocoapuffs") && M && !e.bootstrapOn("killFlash"),
W = !1,
S = new pa(10),
ja = N ? na : oa,
P = [K && e.on("videotwoseconds") ? 2E3 : 1E3, 5E3, 15E3];
e.on("everySecond") && (P = [1E3, 2E3, 3E3, 4E3, 5E3, 6E3, 7E3, 8E3, 9E3, 1E4, 11E3, 12E3, 13E3, 14E3, 15E3]);
var Y = f(P).map(function(a, b) {
return b /
1E3
}).join("-"),
Z = new la(1E3),
X = new ka(q.getPingJobs(P));
if (e.on("hundredpct") && p.use100v) var $ = new la(1E3),
da = new ka(q.getFullyInViewPingJobs(P));
if (e.on("tabHiddenDtCall")) var ga = new la(1E3),
ea = new ka(q.getPosInViewPingJobs([P[0]]));
var ha = function() {
ba();
e.on("viewabilityready") && !I && (c.send(g.DT_CODES.VIEWABILITY_READY), k.trigger("measurable"), I = !0)
};
k.on("delayedViewabilityReady", ha);
var ba = function(d) {
try {
S.start();
var l, q, r, u, y, B;
if (a.hasMeasurementStrategy()) r = a.getScreenLocationInfo(x.collect());
else {
r = x.collect();
T && (r.gState = r.viewState);
if (J.isMobileAppEnvironment()) r.viewState = J.getViewabilityResult(), r.method = J.getDetectionMethod(), r.percentInView = J.getPercentageInView();
else if (R) {
z = z || new ca(ja, r.adDimensions, ha, e, m, b) || {};
u = z.checkViewable();
e.on("hundredpct") && p.use100v && (H = H || new Fb(Eb, r.adDimensions, ha, b, e, h, t, m) || {}, y = H.checkViewable(), r.fullPercentInView = y.pct, r.useCocoa = R);
if (1 !== r.tabHidden || u.str === g.NA) r.viewState = u.str;
r.percentInView = u.pct;
e.on("unreliabilityDetection") &&
M && (G = G || new ca(ja, E({
height: 0,
width: -2E4
}), f.noop, e, m, b) || {}, B = G.checkViewable(), B.str !== g.OUT_OF_VIEW && (L += 1), C += 1, t.addItem({
output: L + "/" + C
}, "fu"))
} else O && (r.viewState = g.NA, r.percentInView = g.PIV_NA);
T && (v || d || !M || (v = R ? z : new ca(ja, r.adDimensions, f.noop, e, m, b, h)), r.fState = d || !M ? g.NA : v.checkViewable().str);
if (K && !s.isAvid() && (q = A.getViewStateOverride())) {
if (q === g.OUT_OF_VIEW) {
var F = r.reason ? r.reason.split(".") : [];
F[F.length] = g.OUT_OF_VIEW_REASONS.VIDEO;
r.reason = F.join(".")
}
r.viewState = q
}
}
l = w.registerLocation(r);
e.on("hundredpct") && p.use100v && (l.isFullyInView() ? ($.mark(), da.doEligibleJobs($.getTotalTime()), W || d || (c.send(g.DT_CODES.FULLY_INVIEW, 0), k.trigger("notify", p._onInViewFull), W = !0)) : $.stop());
l.isInView() ? (Z.mark(), X.doEligibleJobs(Z.getTotalTime())) : Z.stop();
var I = X.getNextJob();
I && I.time === P[0] && e.on("tabHiddenDtCall") && (r.posViewState === g.IN_VIEW || r.posViewState === g.PARTIAL_VIEW_PLUS ? (ga.mark(), ea.doEligibleJobs(ga.getTotalTime())) : ga.stop());
S.stop();
var N = n.round(S.getTime() / S.getCount());
t.addItem({
output: N
},
"lt", {
type: g.DT_CODES.UNLOAD
});
return l
} catch (Q) {
k.trigger("error", g.ERROR_CODES.CHECK_SCREEN_LOC)
}
},
ia, aa, fa = function(a) {
if (!aa) {
var b, d = !1,
e = function() {
d || (d = !0, c.send(g.DT_CODES.VIDEO_EVENTS, void 0, void 0, void 0, void 0, function() {
u.postMessage(JSON.stringify({
id: p.videoId,
msg: "unloadComplete",
messageType: "misc"
}), "*")
}))
};
a = function() {
e();
if (!ia) {
var a = [z, H, v, G];
b && clearInterval(b);
f(a).each(function(a, b) {
b && "function" === typeof b.removePixels && b.removePixels()
});
ia = !0
}
};
l.impressionIsIdentifiable() &&
(ba(), b = setInterval(ba, Q), ia = !1, k.on("adStopped", a), k.on("adVideoComplete", a), k.on("skipAd", a), y.addEvent(u, "beforeunload", c.unload, !1), K && !s.isAvid() && y.addEvent(u, "beforeunload", e, !1));
aa = !0
}
};
return {
checkScreenLoc: ba,
init: function() {
B = !1;
k.on("startViewabilityLoop", fa);
k.on("documentIsReady", function() {
B = !0
})
},
needsFlash: function() {
return O
},
readyFired: function() {
return B
},
useFlash: function() {
return R
},
stringifyPingTimes: function() {
return Y
},
isImmediatelyMeasurable: function() {
return J.isMobileAppEnvironment() ?
J.isMeasurable() : !R
}
}
},
Zb = function(a, b, c, d, e) {
var h, k, r, t = n.getWindow(),
q = n.getDoc(),
m = g.AD_IDENTIFIER + "-" + p.asid,
x;
d = d || b.parentNode || b.parent;
var w = function() {
if (!h)
if (r = r || Yb(d), h = r.calcDims(b, d), c === g.DETECTION_METHODS.VIDEO && s.embedded) {
var a = h,
e = (new E(b)).getRounded();
try {
a.set("width", e.width), a.set("height", e.height)
} catch (f) {
l.trigger("error", g.ERROR_CODES.VIDEO_IN_IFRAME_DIMS_CALC)
}
} else c === g.DETECTION_METHODS.AD_PLACEHOLDER && h.treatAsPlaceholder();
return h
},
A = function() {
var b, d, h, m;
d =
p.mobOrTab;
f.isUndef(k) && (b = !d && (s.friendly || f.isDef(u.mozInnerScreenX)) && e.on("offscreen"), h = w(), d = new E(v.calcWinDims()), b = new E(b ? v.calcMonDims() : {}), m = c === g.DETECTION_METHODS.VIDEO && s.embedded ? l.request("iframe").getClippedDims() : new E({}), k = a.calcPercentInView(h, d, b, m));
return k
},
z = function() {
return a.calcInitialViewState(A())
},
D = function() {
return b === u ? !1 : w().isHidden()
};
(function() {
var a = b === t ? q.body : b;
x = s.friendlyIframe ? t.frameElement : a;
y.addEvent(a, "click", function() {
l.trigger("adComponentClicked")
});
y.addEvent(a, "mouseover", function() {
l.trigger("adComponentMousedOver")
})
})();
return {
getAdNode: function() {
return b
},
mark: function() {
v.setAttributeOf(x, m, "")
},
cleanup: function() {
v.removeAttributeOf(x, m)
},
isNode: function(a) {
return b === a
},
isHidden: D,
isObstructed: function() {
return !1
},
getDims: w,
getPercentInView: A,
getLocationState: z,
getOnPageViewability: function() {
return D() ? g.OUT_OF_VIEW : z()
},
getDetectionMethod: function() {
return c
},
getContainerDims: function() {
return E(d)
},
refresh: function() {
k = h = void 0;
var a, c = b.parentNode;
if (c) {
for (; b !== u && c && c !== B && !a;) a = c === d, c = c.parentNode;
a || (d = b.parentNode)
}
}
}
},
$b = function(a, b) {
var c = [],
d = function() {
return c[0] && c[0].getDetectionMethod() === g.DETECTION_METHODS.AD_PLACEHOLDER
},
e = function(e, f, h) {
var k = d() || 0 === c.length;
e = Zb(a, e, f, h, b);
k && f !== g.DETECTION_METHODS.AD_PLACEHOLDER && l.trigger("primaryadfound", e);
k && e.mark();
d() && (f = c.shift(), f.cleanup());
c.push(e)
},
h = function() {
var a, b = !1,
d = 0,
e = 0;
f(c).each(function(c, f) {
var h;
h = f.getDims();
h.hasValidDims() && (a = f.getPercentInView(),
b = a !== g.NA, h = h.area(), d += h, e += a / 100 * h)
});
return {
totalArea: d,
totalInView: e,
hasMeasurement: b
}
},
k = function() {
var a = h();
return a.hasMeasurement ? n.round(a.totalInView / a.totalArea * 100) : g.PIV_NA
},
r = function() {
var c = h().totalArea >= g.MRC_LARGE_AD_SIZE && b.on("largeAd") && !s.isVideo();
return a.calcInitialViewState(k(), !1, c)
},
p = function(a) {
var b = -1;
f(c).each(function(c, d) {
d.isNode(a) && (b = c)
});
return b
},
q = function(a) {
return function() {
return c[0] && c[0][a]()
}
};
l.on("adComponentAdded", function(a) {
f(a).each(function(a,
b) {
-1 === p(b) && e(b, g.DETECTION_METHODS.MUTATION)
})
});
l.on("adComponentRemoved", function(a) {
f(a).each(function(a, b) {
var d = p(b); - 1 < d && c.splice(d, 1)
})
});
return {
getOriginatingNode: q("getAdNode"),
getDims: q("getDims"),
isObstructed: q("isObstructed"),
getDetectionMethod: q("getDetectionMethod"),
getContainerDims: q("getContainerDims"),
getViewState: r,
getPercentInView: k,
isHidden: q("isHidden"),
isUsingPlaceholder: d,
hasAd: function() {
return !!c.length
},
refresh: function() {
f(c).each(function(a, b) {
b.refresh()
})
},
addAdComponent: e,
getOutOfViewReasons: function() {
var a, b = [],
d = c[0],
e = g.OUT_OF_VIEW_REASONS;
d && (a = r(), a !== g.OUT_OF_VIEW && a !== g.PARTIAL_VIEW_MINUS || b.push(e.GEOM), d.isHidden() && b.push(e.HIDDEN), d.isObstructed() && b.push(e.OBSTRUCTION));
return b
},
getComponentCount: function() {
return c.length
}
}
},
ac = function(a) {
var b = !1;
if (!f.isUndef(u.MutationObserver)) {
var c = new MutationObserver(function(a) {
n.execAtEndOfThread(function() {
b && f(a).each(function(a, b) {
b.addedNodes.length && l.trigger("adComponentAdded", b.addedNodes);
b.removedNodes.length &&
l.trigger("adComponentRemoved", b.removedNodes)
})
})
}),
d = function() {
b = !0;
setTimeout(function() {
b = !1
}, 40)
};
l.on("adComponentClicked", d);
l.on("adComponentMousedOver", d);
try {
c.observe(B.body, {
attributes: !0,
childList: !0,
characterData: !0
})
} catch (e) {
a.add(g.ERROR_CODES.AC_WATCHER)
}
}
},
fc = function() {
var a;
a || (a = [bc(), {
detectionMethod: g.DETECTION_METHODS.VIDEO,
find: l.request("video").findAdNode,
isApplicable: s.isVideo
},
cc(), dc(), ec()
]);
return f(a).findFirst(function(a, c) {
return c.isApplicable()
})
},
ra = function(a) {
var b;
a = v.findChildWithLargestContent(a || p.contextNode.parentNode);
1 < v.getNodeArea(a) && !a[g.IAS_DETECTOR] && (b = a);
return b
},
dc = function() {
return {
detectionMethod: g.DETECTION_METHODS.IFRAME,
find: function() {
return u
},
isApplicable: function() {
return s.embedded
}
}
},
bc = function() {
var a = l.request("mobileApp");
return {
usePlaceholder: !0,
detectionMethod: a.getDetectionMethod(),
isApplicable: a.isMobileAppEnvironment,
find: function() {
return ra(n.getDoc().body)
}
}
},
cc = function() {
var a;
return {
detectionMethod: g.DETECTION_METHODS.SPECIFIED_AD,
isApplicable: function() {
return s.isSpecifiedAd()
},
find: function() {
var b, c = [p.contextNode.parentNode, n.getDoc()];
s.friendly && c.push(n.getTop().document);
f(c).each(function(c, e) {
var f = v.querySelector(e, p._cl_adpath);
!b && f && (b = f, a = b.parentNode)
});
return b
},
getAdContainer: function() {
return a
}
}
},
ec = function() {
return {
usePlaceholder: !0,
detectionMethod: g.DETECTION_METHODS.AD_HUNT,
isApplicable: function() {
return !0
},
find: ra
}
},
Yb = function(a) {
var b = [gc(), hc(), ic()];
return f(b).findFirst(function(b, d) {
return d.isApplicable(a)
})
},
ic = function() {
return {
calcDims: function(a, b) {
var c = new E(a),
d = v.getClippedDimensions(a, b),
e = c.getRounded();
c.set("height", d.height < e.height ? d.height : e.height || 1);
c.set("width", d.width < e.width ? d.width : e.width || 1);
return c
},
isApplicable: function(a) {
a = s.isSpecifiedAd() && v.nodeIsInWindow(a, n.getTop());
var b = !s.embedded;
return a || b
}
}
},
hc = function() {
return {
calcDims: l.request("iframe").calcDims,
isApplicable: function() {
return !s.isSpecifiedAd() && s.embedded
}
}
},
gc = function() {
return {
calcDims: function(a) {
var b =
l.request("iframe").calcDims();
a = (new E(a)).getRounded();
b.set("height", a.height);
b.set("width", a.width);
return b
},
isApplicable: function(a) {
return s.isSpecifiedAd() && s.embedded && !v.nodeIsInWindow(a, n.getTop())
}
}
},
cb = function(a, b, c) {
var d, e = p.contextNode.parentNode,
f = $b(b, c);
ac(a);
return {
find: function() {
if (f.isUsingPlaceholder() || !f.hasAd()) {
var a, b;
d = d || fc();
a = d.find();
!a && d.usePlaceholder ? f.hasAd() || (a = v.getPlaceholderSpan(), e.insertBefore(a, p.contextNode.nextSibling), f.addAdComponent(a, g.DETECTION_METHODS.AD_PLACEHOLDER)) :
a && (b = d.getAdContainer && d.getAdContainer() || e, f.addAdComponent(a, d.detectionMethod, b))
} else f.refresh();
return f
},
getDetectionMethod: function() {},
isAdDetected: function() {
return !0 !== f.isUsingPlaceholder()
},
getOriginatingElement: function() {
return f.getOriginatingNode()
},
getParent: function() {
return e
}
}
},
va = function(a) {
function b() {
var a = e.isSafeToInjectMraid();
c = jc().resolve(a)
}
var c, d = new kc,
e = new lc;
try {
a.bootstrapOn("mobOrTab") && (d.detect(), d.hasDetectedMobileApp() && (e.detect(), b()))
} catch (h) {
l.trigger("error",
g.ERROR_CODES.MOBILE_APP)
}
return {
isMobileAppEnvironment: function() {
return d.hasDetectedMobileApp()
},
isMeasurable: function() {
return f.isDef(c) && c.isMeasurable()
},
getPercentageInView: function() {
var a = g.NA;
f.isDef(c) && c.isMeasurable() && (a = c.getPercentageInView());
return a
},
getViewabilityResult: function() {
var a = g.NA;
f.isDef(c) && c.isMeasurable() && (a = c.getViewabilityResult());
return a
},
getDetectionMethod: function() {
var a = g.NA;
f.isDef(c) && c.isViewabilitySupported() && (a = c.getDetectionMethod());
return a
}
}
},
mc = {
url: {
STRINGIFIED_METHOD: "u",
detect: function(a) {
return !!f(a).findFirst(function(a, c) {
return -1 !== n.getWindow().location.href.indexOf(c)
})
}
},
userAgent: {
STRINGIFIED_METHOD: "a",
detect: function(a) {
return !!f(a).findFirst(function(a, c) {
var d;
d = !1;
var e = n.getWindow();
f.isDef(e.navigator) && f.isDef(e.navigator.userAgent) && (d = (d = e.navigator.userAgent) && -1 !== d.indexOf(c));
return d
})
}
},
javascript: {
STRINGIFIED_METHOD: "j",
detect: function(a) {
return !!f(a).findFirst(function(a, c) {
return f.isDef(Q.stringToProp(c))
})
}
},
scriptSrc: {
STRINGIFIED_METHOD: "s",
detect: function(a) {
return !!f(a).findFirst(function(a, c) {
return v.containsScriptTagWithSrc(function(a) {
return f.isDef(a) && -1 !== a.indexOf(c)
})
})
}
}
},
sa = function() {
var a = function(a, c) {
var d, e = mc[a];
e.detect(c) && (d = e.STRINGIFIED_METHOD);
return d
};
return {
process: function(b) {
return f(b).map(a).join("")
}
}
},
nc = {
url: "file: content: applewebdata: afma-sdk adsx.greystripe.com/openx/www/delivery/ia.php ads.mopub.com ogury.io".split(" "),
userAgent: ["QuantcastSDK", "afma-sdk"],
scriptSrc: ["file:"],
javascript: "ADMARVEL mopubFinishLoad InmobiObj PandoraApp mraid.sasSendMessage avid.getAvidAdSessionContext".split(" ")
},
kc = function() {
var a, b = function() {
return void 0 !== a && "" !== a
};
return {
detect: function() {
a = sa().process(nc);
b() && l.trigger("addOutputItem", {
output: "1"
}, "mapp", {
type: "impression"
})
},
hasDetectedMobileApp: b
}
},
jc = function() {
return {
resolve: function(a) {
var b, c = n.getWindow(),
d = c.avid;
if (f.isDef(c.mraid) || a) b = new oc;
else {
if (f.isDef(d)) return b;
l.trigger("addOutputItem", {
output: "na"
}, "mi", {
type: "impression"
})
}
return b
}
}
},
oc = function() {
var a = !1,
b = !1,
c = !1,
d = n.getWindow(),
e = function() {
var a = d.mraid;
return f.isDef(a) && f.isDef(a.isViewable)
},
h = function() {
return e() && c
},
k = function() {
c = !0;
b && h() && l.trigger("delayedViewabilityReady")
},
r = function() {
var c = d.mraid;
e() && (a = !0, "loading" === c.getState() ? (b = !0, c.addEventListener("ready", function() {
k()
})) : k())
},
p = function() {
a || (b = !0, r())
};
(function() {
var a = !0;
if (n.getWindow().mraid || v.containsScriptTagWithSrc("mraid.js")) a = !1;
l.trigger("addOutputItem", {
output: f.stringifyTriState(a)
},
"mi", {
type: "impression"
});
return a
})() ? l.trigger("exec", "mraid.js", p): r();
return {
isViewabilitySupported: e,
isMeasurable: h,
getViewabilityResult: function() {
return d.mraid.isViewable() ? g.IN_VIEW : g.OUT_OF_VIEW
},
getPercentageInView: function() {
return d.mraid.isViewable() ? 100 : 0
},
getDetectionMethod: function() {
return g.DETECTION_METHODS.MRAID
}
}
},
lc = function() {
var a = [],
b = [],
c = function(b, c) {
var f, g = sa().process(c.detectionRules);
g && (a.push(c.STRINGIFIED_SDK + "*" + g), f = c);
return f
};
return {
detect: function() {
b = f(pc).map(c);
0 < b.length && l.trigger("addOutputItem", {
output: function() {
return a.join(".")
}
}, "sdk", {
type: "impression"
})
},
isSafeToInjectMraid: function() {
return 1 == b.length && f.isDef(b[0].safeToInjectMraid) && b[0].safeToInjectMraid
}
}
},
pc = [{
STRINGIFIED_SDK: "adma",
safeToInjectMraid: !0,
detectionRules: {
javascript: ["ADMARVEL"],
url: ["AdMarvel"]
}
}, {
STRINGIFIED_SDK: "admb",
safeToInjectMraid: !0,
detectionRules: {
userAgent: ["afma-sdk"],
url: ["afma-sdk"]
}
}, {
STRINGIFIED_SDK: "imbi",
safeToInjectMraid: !0,
detectionRules: {
javascript: ["InmobiObj"]
}
}, {
STRINGIFIED_SDK: "mmed",
detectionRules: {
url: ["mmsdk"],
scriptSrc: ["mmsyscache"]
}
}, {
STRINGIFIED_SDK: "mopb",
safeToInjectMraid: !0,
detectionRules: {
javascript: ["mopubFinishLoad"],
url: ["ads.mopub.com"]
}
}, {
STRINGIFIED_SDK: "pand",
detectionRules: {
javascript: ["PandoraApp"]
}
}, {
STRINGIFIED_SDK: "ambe",
safeToInjectMraid: !0,
detectionRules: {
url: ["amobee"]
}
}, {
STRINGIFIED_SDK: "smat",
safeToInjectMraid: !0,
detectionRules: {
javascript: ["smaato_bridge"]
}
}, {
STRINGIFIED_SDK: "afrm",
safeToInjectMraid: !0,
detectionRules: {
javascript: ["Adform"]
}
}, {
STRINGIFIED_SDK: "vrve",
safeToInjectMraid: !0,
detectionRules: {
javascript: ["vrvsdk"]
}
}, {
STRINGIFIED_SDK: "sads",
detectionRules: {
javascript: ["mraid.sasSendMessage"]
}
}, {
STRINGIFIED_SDK: "ogry",
safeToInjectMraid: !0,
detectionRules: {
url: ["ogury.io"]
}
}, {
STRINGIFIED_SDK: "cnvt",
detectionRules: {
url: ["adsx.greystripe.com/openx/www/delivery/ia.php"]
}
}],
qc = function() {
return {
decorateContextParams: function(a, b) {
var c = l.request("adNode"),
d;
if (d = "adImpression" === a) d = l.request("adNode").hasAttribute("data-ias-autoplay");
d && (b.ap = "false" === c.getAttribute("data-ias-autoplay") ? 0 : 1);
return b
}
}
},
rc = function() {
return {
listenForResult: function() {
l.on("videoBlockResult", function(a) {
var b = l.request("adNode"),
c = !1,
d = "blockAd" + p.videoId;
"failed" === a.action && (c = !0);
if (b && f.isDef(b.blockAd)) b.blockAd(c);
else if (b && f.isDef(b[d])) b[d](c)
})
}
}
},
sc = function(a, b) {
var c = !1,
d = !1,
e, h = function() {
c || (c = !0, a.trigger("startViewabilityLoop"), e = b.createViewabilityTracker("mpt", function(a) {
return a.isFullyInView()
}))
},
k = function(a) {
if (!f.isUndef(a)) {
var b = -1;
f.isDef(a.volume) ? b = a.volume : f.isDef(a.adVolume) && (b = a.adVolume);
return b
}
},
l = function(a) {
a = k(a);
c || 0 !== a ? c && (d || 0 === a) && (a = {
isFullyInView: function() {
return !1
}
}, e.addState(a)) : d = !0
};
return {
init: function() {
a.on({
adStarted: h,
adVideoStart: h,
volumeChanged: function(a) {
l(a)
},
adVideoMidpoint: function() {
e && e.hasAlwaysBeen(!0) && a.trigger("sendDt", g.DT_CODES.QUARTILE_FULLY_INVIEW)
}
})
}
}
},
tc = function(a, b) {
var c, d, e = l.request("videoTranslator"),
h = l.request("videoAutoplay"),
g = a.eventData;
d = e.translate(a.messageType);
g = h.decorateContextParams(d, g);
c = f({
t: a.time - p.birthdate,
tp: d,
sl: b
}).mixin(g);
return f({
indicatesPlaying: function() {
return -1 !== "showAd|adImpression|adVideoStart|resumeAd".indexOf(d)
},
indicatesNotPlaying: function() {
return -1 !== "adVideoComplete|adStopped|stopAd|pauseAd".indexOf(d)
},
indicatesFullscreen: function() {
var a = n.getWindow();
return ("resizeAd" === d || "initAd" === d) && ("fullscreen" === g.viewMode || g.width === a.screen.width)
},
indicatesNormalSize: function() {
return "resizeAd" === d && "normal" === g.viewMode
},
trigger: function() {
l.trigger(d,
g)
},
toString: function() {
return "{" + f(c).toParams() + "}"
}
}).mixin(c)
},
uc = function() {
var a = [];
return {
registerEvent: function(b, c) {
var d = new tc(b, c);
a.push(d);
return d
},
toString: function() {
return "{" + f({
vEventCount: a.length,
vEvents: "[" + a.join(",") + "]"
}).toParams() + "}"
}
}
},
vc = function() {
var a = {
AdPaused: "pauseAd",
AdVolumeChange: "volumeChanged",
AdPlaying: "resumeAd"
};
return {
translate: function(b) {
var c = b.charAt(0).toLowerCase() + b.slice(1);
b in a && (c = a[b]);
return c
}
}
},
$a = function(a, b, c) {
var d, e, h, k = g.OUT_OF_VIEW,
r = new rc,
t = new uc,
q = !1,
m = function(b, c) {
var d = c["IASid" + a],
e = f.isFunction(d);
if (e) {
var h = d.call(c, a);
q = !0;
f.isStr(h) && (l.provide("vc", function() {
return h
}), l.trigger("addOutputItem", {
output: h
}, "vc", {
type: "impression"
}))
}
return e
},
s = function() {
d || (f([".integral-vid-" + a, "ias-ad", "object", "embed"]).findFirst(function(a, b) {
var c = n.getDoc().querySelectorAll(b);
return d = f(f(c).toArray()).findFirst(m)
}), d || __IntegralASDiagnosticCall("novidnode", {}, p));
return d
};
(function() {
var d = !1,
f = !1;
s();
b.on("hundredpct") &&
b.bootstrapOn("use100v") && (new sc(l, c)).init();
y.addEvent(n.getWindow(), "message", function(b) {
var e = {};
try {
e = JSON.parse(unescape(b.data))
} catch (h) {
e = {}
}
e.id == a && (b = t.registerEvent(e, c.getCurrentLoc()), b.indicatesPlaying() ? (d = !0, k = f ? g.IN_VIEW : !1) : b.indicatesNotPlaying() ? (d = !1, k = g.OUT_OF_VIEW) : b.indicatesFullscreen() ? (f = !0, k = d ? g.IN_VIEW : g.OUT_OF_VIEW) : b.indicatesNormalSize() && (f = !1, k = d ? !1 : g.OUT_OF_VIEW), b.trigger())
});
l.provide({
videoEventsString: t,
videoVersion: function() {
var a, b = s();
try {
a = b.getVersion()
} catch (c) {
a = -1, l.trigger("error", g.ERROR_CODES.NO_VIDEO_AD_INTERFACE)
}
return a
},
videoTranslator: function() {
return e = e || new vc
},
videoAutoplay: function() {
return h = h || new qc
},
adNode: s
});
r.listenForResult()
})();
return {
findAdNode: s,
getViewStateOverride: function() {
return k
},
isHandshakeComplete: function() {
return q
}
}
},
wc = function() {
return new W(g.PERF_TIMELINE_TRACKER_CONFIG.WRAPPERS.AS.TYPE, function(a, b) {
return a.timestamp - b.timestamp
}, g.PERF_TIMELINE_TRACKER_CONFIG.WRAPPERS.AS.COUNT)
},
La = function() {
var a, b, c = {},
d =
0,
e = function(c) {
if (c || a) d += 5, b.onTick(d, function() {
a ? e() : l.trigger("sendDt", g.DT_CODES.PERFORMANCE)
}), a = !1
},
h = function(f, h, g) {
c[f][h] = g;
b && b.isActive() || (b = new fa, d = 0, e(!0), b.start());
a = !0
},
k = function(b) {
f(c).each(function(d, e) {
var h = c[d],
g = {
type: b,
oneTime: !0,
asION: !0
};
f(h).isEmpty() || (l.trigger("addOutputItem", {
output: h
}, d, g), c[d] = {});
a = !1
})
};
return {
start: function(a) {
l.on("preSendDt", function(a) {
k(a);
b.kill()
});
l.on("addTrackerField", h)
},
addFieldTypes: function(a) {
f(a).each(function(a, b) {
c[b] = {}
})
}
}
},
Ka = function() {
var a = {},
b = function(b) {
a[b] || (a[b] = new pa(1, p.birthdate));
return a[b]
},
c = function(a) {
b(a).start()
},
d = function(a) {
var c = b(a);
c.stop();
l.trigger("addTrackerField", "im", a, c.getTime())
};
return {
start: function() {
l.on({
markTime: c,
measureTime: d
})
},
isApplicable: function(a) {
return a.on("pIntervals")
}
}
},
xc = function() {
return new W(g.PERF_TIMELINE_TRACKER_CONFIG.WRAPPERS.JS.TYPE, function(a, b) {
return a.timestamp - b.timestamp
}, g.PERF_TIMELINE_TRACKER_CONFIG.WRAPPERS.JS.COUNT)
},
ab = function(a) {
var b = {},
c = a instanceof Array && a.length;
c && (f(a).each(function(a, c) {
b[c.getType()] = c
}), l.on("perfCheckpoint", function(a) {
var c = b[a.type];
if (c) try {
c.addPoint(a), c.isFinished() && (l.trigger("addOutputItem", {
output: c.toString()
}, "pci", {
minDt: !0,
type: g.DT_CODES.PERFORMANCE
}), l.trigger("sendMinDt", g.DT_CODES.PERFORMANCE))
} catch (f) {}
}));
l.provide("perfActive", function() {
return c
});
return {
isActive: c
}
},
W = function(a, b, c) {
var d = 0,
e = [],
h = function() {
var a, c = {};
e.sort(b);
f(e).each(function(b, e) {
a && (c[e.code] = e.timestamp -
a);
b === d && (a = e.timestamp)
});
return c
};
return {
addPoint: function(a) {
e.push(a)
},
toString: function() {
return f(h()).toION()
},
getType: function() {
return a
},
setBaseOrdinal: function(a) {
d = a
},
isFinished: function() {
return e.length === c
}
}
},
bb = function() {
function a() {}
a.build = function() {
var a = [],
c = l.request("vc"),
d = {
jv3: ta,
av3: ta,
jvw: xc,
avw: wc
};
c && d[c] && a.push(d[c]());
return a
};
return a
}(),
ta = function() {
return new W(g.PERF_TIMELINE_TRACKER_CONFIG.VANS.TYPE, function(a, b) {
return a.code - b.code
}, g.PERF_TIMELINE_TRACKER_CONFIG.VANS.COUNT)
},
K = {
IDS: {
BLOCK_TIME: "pBlk",
ON_LOAD: "pLoad",
IN_BROWSER_DELAY: "pWait"
},
recordBlockingTime: function() {
l.trigger("measureTime", K.IDS.BLOCK_TIME)
},
setupOnLoadTracking: function() {
y.addEvent(u, "load", function() {
l.trigger("measureTime", K.IDS.ON_LOAD)
})
},
setupBrowserDelayTracking: function() {
var a = new fa;
a.onTick({
4: function() {
l.trigger("markTime", K.IDS.IN_BROWSER_DELAY)
},
5: function() {
l.trigger("measureTime", K.IDS.IN_BROWSER_DELAY)
}
});
a.start()
}
},
gb = function() {
var a = p.asid,
b = p.cookieBaseURL,
c = p.protocol,
d = function(a) {
f(a).each(function(a,
b) {
l.trigger("notify", b)
})
},
e = function() {
var e;
e = new I(c + "://" + b, !0);
e.setParam("asid", a);
e = e.toString();
l.trigger("jsonp", e, d, !0);
l.trigger("updateDtCount")
};
return {
start: function() {
l.on("sendCookie", e)
},
isApplicable: function(a) {
return a.on("cookie") && a.bootstrapOn("sendCookie") && a.bootstrapperHas(["protocol", "cookieBaseURL", "asid"])
}
}
},
sb = function() {
var a = function() {
var a;
a = !1;
var b = n.getTop();
if (b = b && v.querySelector(b.document, 'a[href^="http"]')) a = y.getStyle(b, "background", ":before"), a = -1 < a.indexOf("rgb(0, 255, 0)");
return a
},
b = function() {
try {
l.trigger("addOutputItem", {
output: f.stringifyTriState(a())
}, "avgrn")
} catch (b) {
l.trigger("error", g.ERROR_CODES.GREEN)
}
};
return {
isApplicable: function(a, b) {
var e = a.on("avgrn"),
f = !a.bootstrapOn("mobOrTab"),
k = b.browserIs(g.BROWSERS.CHROME);
return e && f && k && s.friendly
},
start: function() {
try {
y.whenReady(b)
} catch (a) {
l.trigger("error", g.ERROR_CODES.GREEN)
}
}
}
},
tb = function() {
var a = function(a) {
a = f(a).map(function(a, b) {
return b.x + "." + b.y
});
a = f(a).toION();
l.trigger("addOutputItem", {
output: a
},
"avmm", {
minDt: !0,
type: g.DT_CODES.AVIREEN
});
l.trigger("sendMinDt", g.DT_CODES.AVIREEN)
},
b = function(b) {
var d;
try {
20 <= b.length && (d = b.slice(0, 20), a(d))
} catch (e) {
l.trigger("error", g.ERROR_CODES.AVIREEN)
}
};
return {
isApplicable: function(a, b) {
var e = a.on("avmm"),
f = !a.bootstrapOn("mobOrTab"),
k = g.BROWSERS,
k = b.browserIs(k.IE) || b.browserIs(k.MSEDGE);
return e && f && k && s.friendly
},
start: function() {
try {
yc(400, b)
} catch (a) {
l.trigger("error", g.ERROR_CODES.AVIREEN)
}
}
}
},
ob = function() {
var a, b = function(b, d) {
return function() {
if (a ||
f.isFunction(b.getVersion)) {
var e = d.getFlashVersion();
if (!a) {
var h = a = b.getVersion(),
g;
h && f.isFunction(h.split) && (g = (g = h.split(" ")[1]) && g.split(",").join("."));
a = g || e
}
return e + "|" + a
}
return "na"
}
};
return {
isApplicable: function(a, b) {
var e = !a.bootstrapOn("mobOrTab");
return a.on("fxdet") && e && b.hasFlashEnabled() && !a.bootstrapOn("killFlash") && !y.isSandboxed(b)
},
start: function(a) {
var d;
d = n.getDoc();
var e = d.body || d.head || d.documentElement;
e ? (d = T("/PixelB.swf", "cdn"), e.appendChild(d), l.trigger("addOutputItem", {
output: b(d, a)
}, "fx")) : l.trigger("error", g.ERROR_CODES.NO_CONTAINER)
}
}
},
Bc = function(a, b) {
var c, d, e, f;
return {
start: function() {
if (!d) {
var g = new I(p.sp_cdnDomain);
g.path(a + ".js");
e = g;
d = zc();
f = d.getMethodName(a);
var g = Ac,
l = n.getDoc();
c = new g(l.body || l.head || l.documentElement)
}
c.getWindow()[f] = d.getMethod(b);
c.addScript(e.toString())
}
}
},
zc = function() {
var a = function(a, c, d) {
a === p.asid && (d.unshift(c), l.trigger.apply(null, d))
};
return {
getMethod: function(b) {
return function(c) {
var d = {
asid: p.asid,
constant: g,
features: b
};
"function" === typeof c && c(a, d)
}
},
getMethodName: function(a) {
return "register_" + a
}
}
},
wb = function() {
var a, b = [];
return {
start: function(c, d) {
f(c).each(function(c, f) {
d.on(f) && (a = Bc(c, d), b.push(a), a.start())
})
}
}
},
qb = function() {
var a, b = 0,
c = 0,
d = 0,
e = f.debounce(function() {
var b = n.now(),
e = a ? (b - a) / 1E3 : 0;
1 <= e && 5 >= e && d++;
a = b;
c++
}, 100),
h = function() {
b++;
e()
},
k = function() {
l.trigger("addOutputItem", {
output: {
tmm: function() {
return b
},
tma: function() {
return c
},
sma: function() {
return d
}
}
}, {
type: g.DT_CODES.UNLOAD
})
};
return {
start: function() {
k();
y.addEvent(n.getTop().document, "mousemove", h)
},
isApplicable: function(a) {
return a.on("mmsb") && !a.bootstrapOn("mobOrTab") && !s.xDomainIframe
}
}
},
pb = function() {
var a = {},
b = function(b, e) {
var f;
b[e] = function(b, d, e) {
e && (a[e] = {
x: b,
y: d
}, a.ul && a.lsr && (f = ua().getOffDesktopResult(a.ul, a.lsr), c(f)))
}
},
c = function(a) {
try {
l.trigger("addOutputItem", {
output: a
}, "od")
} catch (b) {
l.trigger("error", g.ERROR_CODES.OFF_DESKTOP)
}
};
return {
isApplicable: function(a, b) {
var c = a.on("oddet"),
f = b.hasFlashEnabled(),
l = b.getBrowserType() ===
g.BROWSERS.IE,
n = b.isOnWin7(),
p = b.isIEVersion(8);
return !a.bootstrapOn("killFlash") && c && f && l && n && !p && !y.isSandboxed(b)
},
start: function() {
try {
Cc().setupPixels(b), setTimeout(function() {
a.ul && a.lsr || c(ua().getOffDesktopResult())
}, 1E4)
} catch (d) {
l.trigger("error", g.ERROR_CODES.OFF_DESKTOP)
}
}
}
},
ua = function() {
var a = function(a) {
var c = g.NA;
return a ? {
x: a.x - 250,
y: a.y - 188
} : {
x: c,
y: c
}
};
return {
getOffDesktopResult: function(b, c) {
b = a(b);
c = a(c);
return f({
mc: [b.x, b.y, c.x, c.y].join("|")
}).toION()
}
}
},
Cc = function() {
var a =
"_postPosition_" + p.asid.replace(/-/g, ""),
b = function(b) {
var d = T("/PixelB.swf", "cdn", "name=" + b + "&jsPostFn=" + a, !0);
b = Dc[b];
d.style.width = b.WIDTH + "px";
d.style.height = b.HEIGHT + "px";
d.style.position = "fixed";
d.style.top = b.TOP + "px";
d.style.left = b.LEFT + "px";
return d
};
return {
setupPixels: function(c) {
var d = n.getDoc(),
d = d.body || d.contentElement,
e;
e = n.getDoc().createElement("div");
e.innerHTML = '<iframe class="IAS-pixel-frame"style="width:0px !important; height: 0px !important; border-style: hidden !important"></iframe>';
e = e.firstChild;
d.appendChild(e);
d = e.contentWindow;
d.document.open().close();
e = d.document.body;
var f = b("ul"),
g = b("lsr");
e.appendChild(f);
e.appendChild(g);
c(d, a)
}
}
},
yc = function(a, b) {
var c = [],
d = !0,
e = function(f) {
var g = n.getTop();
f = f || g.event;
c.push({
x: n.round(f.clientX),
y: n.round(f.clientY)
});
d && g.setTimeout(function() {
y.removeEvent(g.document, "mousemove", e);
b(c)
}, a);
d = !1
};
(function() {
var a = n.getTop();
y.addEvent(a.document, "mousemove", e)
})()
},
rb = function() {
return {
start: function() {
var a = n.getTop().status;
n.getTop().status = n.getTop().status + " ";
n.getTop().status === a + " " && (n.getTop().status = a, l.trigger("addOutputItem", {
output: 1
}, "sb"))
},
isApplicable: function(a, b) {
return a.on("mmsb") && !a.bootstrapOn("mobOrTab") && !s.xDomainIframe && b.browserIs(g.BROWSERS.IE)
}
}
},
vb = function() {
var a = v.appendElement("iframe", {
name: "hpif",
style: "display:none"
}),
b = function(b, c) {
a.contentWindow[b] = function() {
return {
play: function() {
l.trigger("addOutputItem", {
output: c
}, "vh", {
minDt: !0,
type: g.DT_CODES.VH
});
l.trigger("sendMinDt",
g.DT_CODES.VH)
}
}
}
},
c = function() {
f([{
pieces: ["jwp", "la", "yer"],
abbr: "j"
}, {
pieces: ["flo", "wpl", "ayer"],
abbr: "f"
}]).each(function(a, c) {
var f = c.pieces.join("");
b(f, c.abbr)
})
};
return {
isApplicable: function(a) {
var b = !a.bootstrapOn("mobOrTab");
return a.on("usevh") && b
},
start: function() {
var b = 5E3,
e = function() {
a.contentWindow ? c() : (b -= 100, 0 <= b && u.setTimeout(e, 100))
};
e()
}
}
},
Ac = function(a) {
var b;
(function() {
var c;
b = v.appendElement("iframe", {
style: "width:0px !important; height: 0px !important; border: 0 !important"
},
a);
c = b.contentWindow.document;
c.open();
c.close()
})();
return {
addScript: function(a) {
var d = b.contentWindow.document;
v.appendElement("script", {
src: a,
defer: "",
async: ""
}, d.body || d.head || d.documentElement)
},
getWindow: function() {
return b.contentWindow
}
}
},
Dc = {
ul: {
WIDTH: 3,
HEIGHT: 3,
TOP: -3600,
LEFT: -3600
},
lsr: {
WIDTH: 3,
HEIGHT: 3,
TOP: 32767,
LEFT: 32767
}
};
try {
Db()
} catch (Ec) {
__IntegralASDiagnosticCall("main", Ec, p)
}
};
try {
(function() {
var p = __IntegralASConfig.useFIF ? window.parent : window;
__IntegralASConfig.initialize(__IntegralASConfig, p, p.document)
})()
} catch (err$$14) {
__IntegralASDiagnosticCall("initialize", err$$14, __IntegralASConfig)
};
-->
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment