Google's offices stand in downtown Manhattan on October 20, 2020 in New York City. Accusing the company of using anticompetitive tactics to illegally monopolize the online search and search advertising markets, the Justice Department and 11 states Tuesday filed an antitrust case against Google. (Photo by Spencer Platt/Getty Images)
The man walking in front of this office cannot complete with Google search, nor can anyone else.
Spencer Platt/Getty Images

The antitrust reckoning for Big Tech might finally be happening, after years of promises, threats, and press leaks. This week, the Department of Justice hauled Google into court. And as with almost everything he touches, Donald Trump might have seriously jeopardized it.

I hope that despite the stain of uncertainty that now darkens all Trump administration actions, including everything its antitrust enforcers do, we come to see this as a solid case that deserved to be brought. And I hope that even our extremely conservative federal judiciary and a public that finds it hard to support antitrust enforcement will realize that if the suit against Google succeeds, it will do us good.

The complaint states such a familiar theory of liability that it’s hard to believe only a few years ago people thought an antitrust challenge to a search firm would be crazy. If the government can prove its allegations in court, it will have shown that Google has a monopoly-sized share of a market in search or online advertising, that its position is very well-protected against competitive entry, and that it established that position in part through illegal, exclusionary conduct. The theory of Google’s power and the allegations of its plausibly illegal conduct track closely to both the European Commission’s $5 billion judgment against Google in 2018 and to the U.S. government’s celebrated monopolization case against Microsoft in the late ‘90s and early 2000s.

Google’s defense—and the likely basis for popular and judicial skepticism—will be its familiar claim that competition in search is vigorous, despite its own large share and sustained, breathtaking profits. “Competition is just a click away,” Google constantly reminds us, and that is already its response to the government’s main explanation for the company’s dominance: that it excludes competitors through pre-installation agreements setting Google as the default search engine for many devices and applications, sometimes making it difficult or impossible to displace. Google has already scoffed at the idea in a blog post—complete with animated explanatory GIFs—showing how easily one can download rival search engines. That sort of thing has already swayed much American opinion, and snarky Twittizen cyberlibertarians are working to sway it more.

But in fact none of it is true. Creating a meaningful search-engine competitor would mean duplicating an asset that no other company will likely duplicate. An “index” of the internet, the core database of web pages that search engines use to locate and serve results to search users, turns out to be extremely costly to make. Even the deepest-pocketed challenger would have no real hope of replicating the index Google has compiled, after 20 years of web-crawling with a rare degree of computing capacity. Only one other firm in the world is even trying—Microsoft, with Bing—and after investing many years and hundreds of millions of dollars, its index remains smaller and less adequate. The only remaining nontrivial participants, Yahoo and Duck Duck Go, actually lease or compile their databases from Bing or third parties. Google’s entry-protected position has become increasingly well-accepted, as was explained in the most persuasive, important passage in the House Judiciary Committee’s behemoth report on Big Tech monopoly earlier this month.

Google suggests that preinstallations of its search engine are irrelevant, since users can find any competitor they like. But if switching is so easy, and pre-installation gives Google no serious advantage, why would the company pay massive sums every year to secure those agreements? Just to Apple alone, it pays as much as $12 billion a year—that is to say, roughly one third of Alphabet, Inc.’s entire profits. Why on Earth would a firm do that if it didn’t lock in consumers and device makers, and didn’t exclude competitors to leave Google with a well-protected cache of profitable market power? Or, in the alternative, maybe Google isn’t paying Apple so much money because the exclusionary value pre-installation is worth that much, but for another reason. As suggested by Randy Picker of the University of Chicago, it could be to keep Apple from entering as a search competitor. That would be the search-engine equivalent of the “pay-for-delay” pharmaceutical deals held illegal in FTC v. Actavis.

The government will definitely face challenges on the legal merits. Google might claim protection as a “two-sided market” under the blockbuster 2018 credit cards case, which held that some platforms for connecting people can’t have market power except under special circumstances. (I think Google won’t get that deference, because its business model seems so close to that of the newspapers that the Supreme Court has said are exempt from this rule.) Another problem is whether it’s even possible to monopolize a free informational service like “search”; antitrust only applies to things that are traded in “relevant markets,” and we haven’t often seen markets defined for things that seem like they are free. A bigger challenge yet will be remedy—how a court can enjoin the harms that Google actually causes. (In the U.S., the government does not impose fines or money damages in civil antitrust cases.) A break-up—something that’s almost never actually imposed—might not even do much good. A free-standing search company broken off from Google would still control a unique monopoly asset. Likewise, if the government settles for no more than a ban on pre-installation agreements that make Google a default, the problem will remain that nobody else has a search engine that people want to use. But if the government seeks a remedy that goes to the real problem, like an order requiring Google to give its competitors access to its index, it will face both the court’s sharp reluctance to make firms aid their own competitors, as well as the checkered history of access requirements in practice, like the interconnection rules imposed on local telephone monopolies in the 1990s.

But in the end, I expect and hope that the most important development in the case is not these technical details or the weight of the publicly known evidence, but the judge who will preside over the trial. It will be heard by Judge Amit Mehta, a conscientious, competent Obama appointee known for ruling for the government in a major earlier antitrust matter. It will not, in other words, be initially heard by one of the many American judges who now find it impossible to imagine an antitrust plaintiff ever winning.

Then there’s the untrustworthiness of the Trump administration and its Department of Justice, which has plainly abused antitrust for political gain. Both have given us plenty of reasons to doubt their motives in suing Google. Just two years ago, the president himself tweeted that the $5 billion European case against Google was a persecution of “one of our great companies” with no purpose but to “tak[e] advantage of the U.S.” The case also seems to be at odds with positions the Trump DOJ has taken on behalf of major antitrust defendants, including Qualcomm and Comcast. In those cases it argued for the essentially libertarian sanctity of property especially favored by antitrust conservatives, telling courts they shouldn’t order even monopolists to aid their own competitors. So how is DOJ now going to prosecute a claim so fundamentally founded on Google’s ownership of a unique competitive asset? Can’t owners of property do whatever they want with it? (That mostly unnoticed tension may reflect the recusal from the Google case of the man behind those earlier stands of principle, Justice Department antitrust chief Makan Delrahim.)

Many will therefore suspect that the Google case reflects not a belief in competition or antitrust or protection of the weak, but a sop to a conservative base that believes Silicon Valley silences their opinions (something they maybe should have thought of during the 40 years or so in which they sided with business in every antitrust case). The appearance is not helped by the state attorneys general who joined, all of whom are Republican, while it was joined by none of the Democratic AGs who’ve also been investigating Google, and may file their own separate suit. Personally, I think the motives are less nefarious, since nothing in the complaint even hints at censorship or ideological bias, and at worst that DOJ rushed out a case that wasn’t quite ready for no better reason than to point to some ballsy action in time for the election.

But I don’t think it even really matters. If the case succeeds, it will have two salutary benefits for American society. It could have the educational benefit for a skeptical public of exactly how a seemingly harmless, competitive success story in fact was driven by deliberate wrongdoing, just as happened during the government’s case against Microsoft. Perhaps an even more important lesson will be to demonstrate that antitrust enforcement really does work, even when liability theories pose problems and remedies are imperfect. Again, the Microsoft remedy—which put limits on how the firm could design and market some of its products, and subjected it to an outside compliance monitor—was criticized by many as a slap on the wrist, and was predicted to have no effect at all. But careful observers began to notice as early as the mid-2000s that Microsoft—after a costly and embarrassing trial, and under a monitor’s eye—no longer quite did the things it used to do to kill off nascent threats. Among the beneficiaries, some now think, was Google itself.

Whatever the motives and whatever the problems, I’m glad the government sued Google. Markets work better when the firms within them know there’s a sheriff in town.

');
}

function tryGetCriteoFastBid() {
try {
var fastBidStorageKey = "criteo_fast_bid",
hashPrefix = "// Hash: ",
fastBidFromStorage = storage.getDataFromLocalStorage(fastBidStorageKey),
firstLineEndPosition,
firstLine,
publisherTagHash,
publisherTag;
null !== fastBidFromStorage && (firstLineEndPosition = fastBidFromStorage.indexOf("n"), firstLine = fastBidFromStorage.substr(0, firstLineEndPosition).trim(), firstLine.substr(0, hashPrefix.length) !== hashPrefix ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("No hash found in FastBid"), storage.removeDataFromLocalStorage(fastBidStorageKey)) : (publisherTagHash = firstLine.substr(hashPrefix.length), publisherTag = fastBidFromStorage.substr(firstLineEndPosition + 1), Object(__WEBPACK_IMPORTED_MODULE_6_criteo_direct_rsa_validate_build_verify_js__.verify)(publisherTag, publisherTagHash, FAST_BID_PUBKEY_N, FAST_BID_PUBKEY_E) ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logInfo("Using Criteo FastBid"), eval(publisherTag)) : (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("Invalid Criteo FastBid found"), storage.removeDataFromLocalStorage(fastBidStorageKey))));
} catch (t) {}
}

Object(__WEBPACK_IMPORTED_MODULE_1__src_adapters_bidderFactory_js__.registerBidder)(spec);
},
371: function _(t, e, r) {
"use strict";

Object.defineProperty(e, "__esModule", {
value: !0
});
var a = r(372),
n = r(373);

e.verify = function (t, e, r, i) {
var s = new a.BigInteger(a.b64toHex(e)),
o = new a.BigInteger(a.b64toHex(r)),
_ = s.modPowInt(i, o);

return a.removeExtraSymbols(_.toHexString()) === n.Sha256.hash(t);
};
},
372: function _(t, e, r) {
"use strict";

var i;
Object.defineProperty(e, "__esModule", {
value: !0
});
var s = (T.prototype.toHexString = function () {
if (this.s < 0) return "-" + this.negate().toHexString(); var t, e = !1, r = "", i = this.t, s = this.DB - i * this.DB % 4; if (0 < i--) for (s < this.DB && 0 < (t = this[i] >> s) && (e = !0, r = c(t)); 0 <= i;) { s < 4 ? (t = (this[i] & (1 << s) - 1) << 4 - s, t |= this[--i] >> (s += this.DB - 4)) : (t = this[i] >> (s -= 4) & 15, s <= 0 && (s += this.DB, --i)), 0 < t && (e = !0), e && (r += c(t)); } return e ? r : "0"; }, T.prototype.fromHexString = function (t) { if (null !== t) { this.t = 0, this.s = 0; for (var e = t.length, r = !1, i = 0; 0 <= --e;) { var s = n(t, e); s < 0 ? "-" == t.charAt(e) && (r = !0) : (r = !1, 0 == i ? this[this.t++] = s : i + 4 > this.DB ? (this[this.t - 1] |= (s & (1 << this.DB - i) - 1) << i, this[this.t++] = s >> this.DB - i) : this[this.t - 1] |= s << i, (i += 4) >= this.DB && (i -= this.DB));
}

this.clamp(), r && T.ZERO.subTo(this, this);
}
}, T.prototype.negate = function () {
var t = b();
return T.ZERO.subTo(this, t), t;
}, T.prototype.abs = function () {
return this.s < 0 ? this.negate() : this; }, T.prototype.mod = function (t) { var e = b(); return this.abs().divRemTo(t, null, e), this.s < 0 && 0 < e.compareTo(T.ZERO) && t.subTo(e, e), e; }, T.prototype.copyTo = function (t) { for (var e = this.t - 1; 0 <= e; --e) { t[e] = this[e]; } t.t = this.t, t.s = this.s; }, T.prototype.lShiftTo = function (t, e) { for (var r = t % this.DB, i = this.DB - r, s = (1 << i) - 1, o = Math.floor(t / this.DB), _ = this.s << r & this.DM, a = this.t - 1; 0 <= a; --a) { e[a + o + 1] = this[a] >> i | _, _ = (this[a] & s) << r; } for (a = o - 1; 0 <= a; --a) { e[a] = 0; } e[o] = _, e.t = this.t + o + 1, e.s = this.s, e.clamp(); }, T.prototype.invDigit = function () { if (this.t < 1) return 0; var t = this[0]; if (0 == (1 & t)) return 0; var e = 3 & t; return 0 < (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) ? this.DV - e : -e; }, T.prototype.dlShiftTo = function (t, e) { for (var r = this.t - 1; 0 <= r; --r) { e[r + t] = this[r]; } for (r = t - 1; 0 <= r; --r) { e[r] = 0; } e.t = this.t + t, e.s = this.s; }, T.prototype.squareTo = function (t) { for (var e = this.abs(), r = t.t = 2 * e.t; 0 <= --r;) { t[r] = 0; } for (r = 0; r < e.t - 1; ++r) { var i = e.am(r, e[r], t, 2 * r, 0, 1); (t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);
}

0 < t.t && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp(); }, T.prototype.multiplyTo = function (t, e) { var r = this.abs(), i = t.abs(), s = r.t; for (e.t = s + i.t; 0 <= --s;) { e[s] = 0; } for (s = 0; s < i.t; ++s) { e[s + r.t] = r.am(0, i[s], e, s, 0, r.t); } e.s = 0, e.clamp(), this.s != t.s && T.ZERO.subTo(e, e); }, T.prototype.divRemTo = function (t, e, r) { var i = t.abs(); if (!(i.t <= 0)) { var s = this.abs(); if (s.t < i.t) return null != e && e.fromHexString("0"), void (null != r && this.copyTo(r)); null == r && (r = b()); var o = b(), _ = this.s, a = t.s, n = this.DB - D(i[i.t - 1]); 0 < n ? (i.lShiftTo(n, o), s.lShiftTo(n, r)) : (i.copyTo(o), s.copyTo(r)); var p = o.t, c = o[p - 1]; if (0 != c) { var d = c * (1 << this.F1) + (1 < p ? o[p - 2] >> this.F2 : 0),
u = this.FV / d,
h = (1 << this.F1) / d, l = 1 << this.F2, f = r.t, E = f - p, v = null == e ? b() : e; for (o.dlShiftTo(E, v), 0 <= r.compareTo(v) && (r[r.t++] = 1, r.subTo(v, r)), T.ONE.dlShiftTo(p, v), v.subTo(o, o); o.t < p;) { o[o.t++] = 0; } for (; 0 <= --E;) { var m = r[--f] == c ? this.DM : Math.floor(r[f] * u + (r[f - 1] + l) * h); if ((r[f] += o.am(0, m, r, E, 0, p)) < m) for (o.dlShiftTo(E, v), r.subTo(v, r); r[f] < --m;) { r.subTo(v, r); } } null != e && (r.drShiftTo(p, e), _ != a && T.ZERO.subTo(e, e)), r.t = p, r.clamp(), 0 < n && r.rShiftTo(n, r), _ < 0 && T.ZERO.subTo(r, r); } } }, T.prototype.rShiftTo = function (t, e) { e.s = this.s; var r = Math.floor(t / this.DB); if (r >= this.t) e.t = 0;else {
var i = t % this.DB,
s = this.DB - i,
o = (1 << i) - 1; e[0] = this[r] >> i;

for (var _ = r + 1; _ < this.t; ++_) { e[_ - r - 1] |= (this[_] & o) << s, e[_ - r] = this[_] >> i;
}

0 < i && (e[this.t - r - 1] |= (this.s & o) << s), e.t = this.t - r, e.clamp(); } }, T.prototype.drShiftTo = function (t, e) { for (var r = t; r < this.t; ++r) { e[r - t] = this[r]; } e.t = Math.max(this.t - t, 0), e.s = this.s; }, T.prototype.subTo = function (t, e) { for (var r = 0, i = 0, s = Math.min(t.t, this.t); r < s;) { i += this[r] - t[r], e[r++] = i & this.DM, i >>= this.DB;
}

if (t.t < this.t) { for (i -= t.s; r < this.t;) { i += this[r], e[r++] = i & this.DM, i >>= this.DB;
}

i += this.s;
} else {
for (i += this.s; r < t.t;) { i -= t[r], e[r++] = i & this.DM, i >>= this.DB;
}

i -= t.s;
}

e.s = i < 0 ? -1 : 0, i < -1 ? e[r++] = this.DV + i : 0 < i && (e[r++] = i), e.t = r, e.clamp(); }, T.prototype.clamp = function () { for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t;) { --this.t; } }, T.prototype.modPowInt = function (t, e) { var r = new (t < 256 || e.isEven() ? d : h)(e); return this.exp(t, r); }, T.prototype.exp = function (t, e) { if (4294967295 < t || t < 1) return T.ONE; var r, i = b(), s = b(), o = e.convert(this), _ = D(t) - 1; for (o.copyTo(i); 0 <= --_;) { e.sqrTo(i, s), 0 < (t & 1 << _) ? e.mulTo(s, o, i) : (r = i, i = s, s = r); } return e.revert(i); }, T.prototype.isEven = function () { return 0 == (0 < this.t ? 1 & this[0] : this.s); }, T.prototype.compareTo = function (t) { var e = this.s - t.s; if (0 != e) return e; var r = this.t; if (0 != (e = r - t.t)) return this.s < 0 ? -e : e; for (; 0 <= --r;) { if (0 != (e = this[r] - t[r])) return e; } return 0; }, T.prototype.am1 = function (t, e, r, i, s, o) { for (; 0 <= --o;) { var _ = e * this[t++] + r[i] + s; s = Math.floor(_ / 67108864), r[i++] = 67108863 & _; } return s; }, T.prototype.am2 = function (t, e, r, i, s, o) { for (var _ = 32767 & e, a = e >> 15; 0 <= --o;) { var n = 32767 & this[t], p = this[t++] >> 15,
c = a * n + p * _;
s = ((n = _ * n + ((32767 & c) << 15) + r[i] + (1073741823 & s)) >>> 30) + (c >>> 15) + a * p + (s >>> 30), r[i++] = 1073741823 & n;
}

return s;
}, T.prototype.am3 = function (t, e, r, i, s, o) {
for (var _ = 16383 & e, a = e >> 14; 0 <= --o;) { var n = 16383 & this[t], p = this[t++] >> 14,
c = a * n + p * _;
s = ((n = _ * n + ((16383 & c) << 14) + r[i] + s) >> 28) + (c >> 14) + a * p, r[i++] = 268435455 & n;
}

return s;
}, T);

function T(t) {
null !== t && this.fromHexString(t);
}

function b() {
return new s(null);
}

function D(t) {
var e,
r = 1;
return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r;
}

e.BigInteger = s, e.nbi = b, e.nbits = D;

for (var o = [], _ = "0".charCodeAt(0), a = 0; a <= 9; ++a) { o[_++] = a; } for (_ = "a".charCodeAt(0), a = 10; a < 36; ++a) { o[_++] = a; } for (_ = "A".charCodeAt(0), a = 10; a < 36; ++a) { o[_++] = a; } function n(t, e) { var r = o[t.charCodeAt(e)]; return null == r ? -1 : r; } e.intAt = n; var p = "0123456789abcdefghijklmnopqrstuvwxyz"; function c(t) { return p.charAt(t); } e.int2char = c; e.b64toHex = function (t) { for (var e = "", r = 0, i = 0, s = 0; s < t.length && "=" != t.charAt(s); ++s) { var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t.charAt(s)); o < 0 || (r = 0 == r ? (e += c(o >> 2), i = 3 & o, 1) : 1 == r ? (e += c(i << 2 | o >> 4), i = 15 & o, 2) : 2 == r ? (e += c(i), e += c(o >> 2), i = 3 & o, 3) : (e += c(i << 2 | o >> 4), e += c(15 & o), 0));
}

return 1 == r && (e += c(i << 2)), e; }, e.removeExtraSymbols = function (t) { return t.replace(/^1f+00/, "").replace("3031300d060960864801650304020105000420"https://r.search.yahoo.com/,""); }; var d = (u.prototype.convert = function (t) { return t.s < 0 || 0 <= t.compareTo(this.m) ? t.mod(this.m) : t; }, u.prototype.revert = function (t) { return t; }, u.prototype.reduce = function (t) { t.divRemTo(this.m, null, t); }, u.prototype.mulTo = function (t, e, r) { t.multiplyTo(e, r), this.reduce(r); }, u.prototype.sqrTo = function (t, e) { t.squareTo(e), this.reduce(e); }, u); function u(t) { this.m = t; } var h = (l.prototype.convert = function (t) { var e = b(); return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && 0 < e.compareTo(s.ZERO) && this.m.subTo(e, e), e; }, l.prototype.revert = function (t) { var e = b(); return t.copyTo(e), this.reduce(e), e; }, l.prototype.reduce = function (t) { for (; t.t <= this.mt2;) { t[t.t++] = 0; } for (var e = 0; e < this.m.t; ++e) { var r = 32767 & t[e], i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM; for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV;) {
t[r] -= t.DV, t[++r]++;
}
}

t.clamp(), t.drShiftTo(this.m.t, t), 0 <= t.compareTo(this.m) && t.subTo(this.m, t); }, l.prototype.mulTo = function (t, e, r) { t.multiplyTo(e, r), this.reduce(r); }, l.prototype.sqrTo = function (t, e) { t.squareTo(e), this.reduce(e); }, l); function l(t) { this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t; } function f(t) { var e = b(); return e.fromHexString(t.toString()), e; } e.nbv = f, s.ZERO = f(0), s.ONE = f(1), i = "Microsoft Internet Explorer" == navigator.appName ? (s.prototype.am = s.prototype.am2, 30) : "Netscape" != navigator.appName ? (s.prototype.am = s.prototype.am1, 26) : (s.prototype.am = s.prototype.am3, 28), s.prototype.DB = i, s.prototype.DM = (1 << i) - 1, s.prototype.DV = 1 << i; s.prototype.FV = Math.pow(2, 52), s.prototype.F1 = 52 - i, s.prototype.F2 = 2 * i - 52; }, 373: function _(t, e, r) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var i = (y.hash = function (t) { t = y.utf8Encode(t || ""); for (var e = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298], r = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], i = (t += String.fromCharCode(128)).length / 4 + 2, s = Math.ceil(i / 16), o = new Array(s), _ = 0; _ < s; _++) { o[_] = new Array(16); for (var a = 0; a < 16; a++) { o[_][a] = t.charCodeAt(64 * _ + 4 * a) << 24 | t.charCodeAt(64 * _ + 4 * a + 1) << 16 | t.charCodeAt(64 * _ + 4 * a + 2) << 8 | t.charCodeAt(64 * _ + 4 * a + 3) << 0; } } var n = 8 * (t.length - 1) / Math.pow(2, 32), p = 8 * (t.length - 1) >>> 0;

for (o[s - 1][14] = Math.floor(n), o[s - 1][15] = p, _ = 0; _ < s; _++) { for (var c = new Array(64), d = 0; d < 16; d++) { c[d] = o[_][d]; } for (d = 16; d < 64; d++) { c[d] = y.q1(c[d - 2]) + c[d - 7] + y.q0(c[d - 15]) + c[d - 16] >>> 0;
}

for (var u = r[0], h = r[1], l = r[2], f = r[3], E = r[4], v = r[5], m = r[6], T = r[7], d = 0; d < 64; d++) { var b = T + y.z1(E) + y.Ch(E, v, m) + e[d] + c[d], D = y.z0(u) + y.Maj(u, h, l); T = m, m = v, v = E, E = f + b >>> 0, f = l, l = h, h = u, u = b + D >>> 0;
}

r[0] = r[0] + u >>> 0, r[1] = r[1] + h >>> 0, r[2] = r[2] + l >>> 0, r[3] = r[3] + f >>> 0, r[4] = r[4] + E >>> 0, r[5] = r[5] + v >>> 0, r[6] = r[6] + m >>> 0, r[7] = r[7] + T >>> 0;
}

for (var P = new Array(r.length), T = 0; T < r.length; T++) { P[T] = ("00000000" + r[T].toString(16)).slice(-8); } return P.join(""); }, y.utf8Encode = function (e) { try { return new TextEncoder().encode(e).reduce(function (t, e) { return t + String.fromCharCode(e); }, ""); } catch (t) { return unescape(encodeURIComponent(e)); } }, y.ROTR = function (t, e) { return e >>> t | e << 32 - t; }, y.z0 = function (t) { return y.ROTR(2, t) ^ y.ROTR(13, t) ^ y.ROTR(22, t); }, y.z1 = function (t) { return y.ROTR(6, t) ^ y.ROTR(11, t) ^ y.ROTR(25, t); }, y.q0 = function (t) { return y.ROTR(7, t) ^ y.ROTR(18, t) ^ t >>> 3;
}, y.q1 = function (t) {
return y.ROTR(17, t) ^ y.ROTR(19, t) ^ t >>> 10;
}, y.Ch = function (t, e, r) {
return t & e ^ ~t & r;
}, y.Maj = function (t, e, r) {
return t & e ^ t & r ^ e & r;
}, y);

function y() {}

e.Sha256 = i;
}
}, [369]);
pbjsChunk([202], {
476: function _(e, r, i) {
e.exports = i(477);
},
477: function _(e, r, i) {
"use strict";

Object.defineProperty(r, "__esModule", {
value: !0
}), i.d(r, "spec", function () {
return p;
});
var T = i(0),
S = i(2),
v = i(3),
t = i(10),
l = i.n(t),
a = i(478),
n = i.n(a),
s = i(1);

function g(e) {
return (g = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) {
return _typeof(e);
} : function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e);
})(e);
}

var o = [S.b, S.d],
y = 100,
b = 300,
h = 3600,
w = !0,
x = {
JPY: 1
};

function C(e) {
var r = {};
return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty("id") || "string" != typeof e.params.id && "number" != typeof e.params.id ? r.ext.sid = "".concat(e.params.size[0], "x").concat(e.params.size[1]) : r.ext.sid = String(e.params.id), e.params.hasOwnProperty("bidFloor") && e.params.hasOwnProperty("bidFloorCur") && (r.bidfloor = e.params.bidFloor, r.bidfloorcur = e.params.bidFloorCur), r;
}

function d(e) {
return Array.isArray(e) && 2 === e.length && n()(e[0]) && n()(e[1]);
}

function A(e, r) {
if (d(e)) return e[0] === r[0] && e[1] === r[1];

for (var i = 0; i < e.length; i++) { if (e[i][0] === r[0] && e[i][1] === r[1]) return 1; } } function j(e, r, i, t) { var a = [], n = {}, s = e[0].userId; if (s && "object" === g(s) && s.idl_env && function (e, r, i, t, a, n) { if (i) return r[a] = 1, e.push({ source: t, uids: [{ id: i, ext: { rtiPartner: n } }] }); T.logWarn("Tried to add a user ID from Prebid, the ID received was null"); }(a, n, s.idl_env, "liveramp.com"https://r.search.yahoo.com/,"LiveRampIp"https://r.search.yahoo.com/,"idl"), window.headertag && "function" == typeof window.headertag.getIdentityInfo) { var o, d = window.headertag.getIdentityInfo(); if (d && "object" === g(d)) for (var p in d) { d.hasOwnProperty(p) && (n.hasOwnProperty(p) || !(o = d[p]).responsePending && o.data && "object" === g(o.data) && Object.keys(o.data).length && a.push(o.data)); } } var m, c = {}; c.id = e[0].bidderRequestId, c.imp = i, c.site = {}, c.ext = {}, c.ext.source = "prebid", e[0].schain && (c.source = { ext: { schain: e[0].schain } }), 0 < a.length && (c.user = {}, c.user.eids = a), document.referrer && "" !== document.referrer && (c.site.ref = document.referrer), r && (r.gdprConsent && ((m = r.gdprConsent).hasOwnProperty("gdprApplies") && (c.regs = { ext: { gdpr: m.gdprApplies ? 1 : 0 } }), m.hasOwnProperty("consentString") && (c.user = c.user || {}, c.user.ext = { consent: m.consentString || "" })), r.uspConsent && T.deepSetValue(c, "regs.ext.us_privacy", r.uspConsent), r.refererInfo && (c.site.page = r.refererInfo.referer)); var u = {}, f = r && r.bidderCode || "ix", l = v.b.getConfig(f); if (l) { if ("object" === g(l.firstPartyData)) { var y = l.firstPartyData, b = "?"; for (var h in y) { y.hasOwnProperty(h) && (b += "".concat(encodeURIComponent(h), "=").concat(encodeURIComponent(y[h]), "&")); } b = b.slice(0, -1), c.site.page += b; } "number" == typeof l.timeout && (u.t = l.timeout); } return u.s = e[0].params.siteId, u.v = t, u.r = JSON.stringify(c), u.ac = "j", u.sd = 1, 8.1 === t && (u.nf = 1), { method: "GET", url: "https://htlb.casalemedia.com/cygnus", data: u }; } function F(e, r) { for (var i = 0; i < e.length; i++) { if (r[0] == e[i][0] && r[1] == e[i][1]) return e.splice(i, 1), 1; } } var p = { code: "ix", gvlid: 10, supportedMediaTypes: o, isBidRequestValid: function isBidRequestValid(e) { if (!d(e.params.size)) return T.logError("ix bidder params: bid size has invalid format."), !1; if (!A(e.sizes, e.params.size)) return T.logError("ix bidder params: bid size is not included in ad unit sizes."), !1; if (e.hasOwnProperty("mediaType") && !T.contains(o, e.mediaType)) return !1; if (e.hasOwnProperty("mediaTypes") && !T.deepAccess(e, "mediaTypes.banner.sizes") && !T.deepAccess(e, "mediaTypes.video.playerSize")) return !1; if ("string" != typeof e.params.siteId && "number" != typeof e.params.siteId) return T.logError("ix bidder params: siteId must be string or number value."), !1; var r, i, t = e.params.hasOwnProperty("bidFloor"), a = e.params.hasOwnProperty("bidFloorCur"); return !!(!t && !a || t && a && (r = e.params.bidFloor, i = e.params.bidFloorCur, Boolean("number" == typeof r && "string" == typeof i && i.match(/^[A-Z]{3}$/)))) || (T.logError("ix bidder params: bidFloor / bidFloorCur parameter has invalid format."), !1); }, buildRequests: function buildRequests(e, r) { for (var i, t, a, n, s, o, d, p, m, c, u, f, l, y = [], b = [], h = [], v = null, g = {}, w = 0; w < e.length; w++) { (v = e[w]).mediaType !== S.d && !T.deepAccess(v, "mediaTypes.video") || (v.mediaType === S.d || A(v.mediaTypes.video.playerSize, v.params.size) ? h.push(function (e) { var r = C(e); r.video = T.deepClone(e.params.video), r.video.w = e.params.size[0], r.video.h = e.params.size[1]; var i = T.deepAccess(e, "mediaTypes.video.context"); return i && ("instream" === i ? r.video.placement = 1 : "outstream" === i ? r.video.placement = 4 : T.logWarn("ix bidder params: video context '".concat(i, "' is not supported"))), r; }(v)) : T.logError("Bid size is not included in video playerSize")), v.mediaType !== S.b && !T.deepAccess(v, "mediaTypes.banner") && (v.mediaType || v.mediaTypes) || (c = void 0, (c = C(m = v)).banner = {}, c.banner.w = m.params.size[0], c.banner.h = m.params.size[1], c.banner.topframe = T.inIframe() ? 0 : 1, i = c, b.push(i), a = g, n = i, p = d = o = s = void 0, p = (t = v).transactionId, a.hasOwnProperty(p) ? (s = [], a[p].hasOwnProperty("missingSizes") && (s = a[p].missingSizes), F(s, t.params.size), a[p].missingSizes = s) : T.deepAccess(t, "mediaTypes.banner.sizes") && (F(o = T.deepClone(t.mediaTypes.banner.sizes), t.params.size), d = { missingSizes: o, impression: n }, a[p] = d)); } for (var x in g) { if (g.hasOwnProperty(x)) for (var I = g[x].missingSizes, P = 0; P < I.length; P++) { var z = g[x].impression, O = (u = z, f = I[P], l = void 0, (l = T.deepClone(u)).ext.sid = "".concat(f[0], "x").concat(f[1]), l.banner.w = f[0], l.banner.h = f[1], l); b.push(O); } } return 0 < b.length && y.push(j(e, r, b, 7.2)), 0 < h.length && y.push(j(e, r, h, 8.1)), y; }, interpretResponse: function interpretResponse(e, r) { var i = []; if (!e.hasOwnProperty("body") || !e.body.hasOwnProperty("seatbid")) return i; for (var t, a, n, s, o = e.body, d = o.seatbid, p = 0; p < d.length; p++) { if (d[p].hasOwnProperty("bid")) for (var m = d[p].bid, c = JSON.parse(r.data.r), u = 0; u < m.length; u++) { var f = function (r, e) { if (r) return l()(e, function (e) { return e.id === r; }); }(m[u].impid, c.imp); t = m[u], a = o.cur, n = f, s = void 0, s = {}, x.hasOwnProperty(a) ? s.cpm = t.price / x[a] : s.cpm = t.price / y, s.requestId = t.impid, s.dealId = T.deepAccess(t, "ext.dealid"), s.netRevenue = w, s.currency = a, s.creativeId = t.hasOwnProperty("crid") ? t.crid : "-", T.deepAccess(t, "ext.vasturl") ? (s.vastUrl = t.ext.vasturl, s.width = n.video.w, s.height = n.video.h, s.mediaType = S.d, s.ttl = h) : (s.ad = t.adm, s.width = t.w, s.height = t.h, s.mediaType = S.b, s.ttl = b), s.meta = {}, s.meta.networkId = T.deepAccess(t, "ext.dspid"), s.meta.brandId = T.deepAccess(t, "ext.advbrandid"), s.meta.brandName = T.deepAccess(t, "ext.advbrand"), t.adomain && 0 < t.adomain.length && (s.meta.advertiserDomains = t.adomain), i.push(s); } } return i; }, transformBidParams: function transformBidParams(e) { return T.convertTypes({ siteID: "number" }, e); }, getUserSyncs: function getUserSyncs(e) { return e.iframeEnabled ? [{ type: "iframe", url: "https://js-sec.indexww.com/um/ixmatch.html" }] : []; } }; Object(s.registerBidder)(p); } }, [476]); pbjsChunk([198], { 490: function _(e, t, r) { e.exports = r(491); }, 491: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return l; }); var s = r(0), d = r(3), n = r(1), a = r(9); function g() { return (g = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var n in r) { Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]); } } return e; }).apply(this, arguments); } var o, i, c, u = Object(a.b)(), l = { code: "kargo", isBidRequestValid: function isBidRequestValid(e) { return !(!e || !e.params) && !!e.params.placementId; }, buildRequests: function buildRequests(e, t) { var r, n = d.b.getConfig("currency"), a = n && n.adServerCurrency || "USD", o = {}, i = {}; s._each(e, function (e) { o[e.bidId] = e.params.placementId, i[e.bidId] = e.sizes; }), 0 < e.length && e[0].userId && e[0].userId.tdid && (r = e[0].userId.tdid); var c = g({}, { sessionId: l._getSessionId(), requestCount: l._getRequestCount(), timeout: t.timeout, currency: a, cpmGranularity: 1, timestamp: new Date().getTime(), cpmRange: { floor: 0, ceil: 20 }, bidIDs: o, bidSizes: i, prebidRawBidRequests: e }, l._getAllMetadata(r, t.uspConsent)), u = encodeURIComponent(JSON.stringify(c)); return g({}, t, { method: "GET", url: "".concat("https://krk.kargo.com"https://r.search.yahoo.com/,"/api/v2/bid"), data: "json=".concat(u), currency: a }); }, interpretResponse: function interpretResponse(e, t) { var r = e.body, n = []; for (var a in r) { var o = r[a], i = void 0; o.metadata && o.metadata.landingPageDomain && (i = { clickUrl: o.metadata.landingPageDomain, advertiserDomains: [o.metadata.landingPageDomain] }), n.push({ requestId: a, cpm: Number(o.cpm), width: o.width, height: o.height, ad: o.adm, ttl: 300, creativeId: o.id, dealId: o.targetingCustom, netRevenue: !0, currency: t.currency, meta: i }); } return n; }, getUserSyncs: function getUserSyncs(e) { var t = [], r = l._generateRandomUuid(), n = l._getClientId(); if (e.iframeEnabled && r && n) for (var a = 0; a < 5; a++) { t.push({ type: "iframe", url: "https://crb.kargo.com/api/v1/initsyncrnd/{UUID}?seed={SEED}&idx={INDEX}".replace("{UUID}", n).replace("{SEED}", r).replace("{INDEX}", a) }); } return t; }, _readCookie: function _readCookie(e) { if (!u.cookiesAreEnabled()) return null; for (var t = "".concat(e, "="), r = document.cookie.split(";"), n = 0; n < r.length; n++) { for (var a = r[n]; " " === a.charAt(0);) { a = a.substring(1, a.length); } if (0 === a.indexOf(t)) return a.substring(t.length, a.length); } return null; }, _getCrbFromCookie: function _getCrbFromCookie() { try { var e = JSON.parse(decodeURIComponent(l._readCookie("krg_crb"))); if (e && e.v) { var t = JSON.parse(atob(e.v)); if (t) return t; } return {}; } catch (e) { return {}; } }, _getCrbFromLocalStorage: function _getCrbFromLocalStorage() { try { return JSON.parse(atob(l._getLocalStorageSafely("krg_crb"))); } catch (e) { return {}; } }, _getCrb: function _getCrb() { var e = l._getCrbFromLocalStorage(); return Object.keys(e).length ? e : l._getCrbFromCookie(); }, _getKruxUserId: function _getKruxUserId() { return l._getLocalStorageSafely("kxkar_user"); }, _getKruxSegments: function _getKruxSegments() { return l._getLocalStorageSafely("kxkar_segs"); }, _getKrux: function _getKrux() { var e = l._getKruxSegments(), t = []; return e && (t = e.split(",")), { userID: l._getKruxUserId(), segments: t }; }, _getLocalStorageSafely: function _getLocalStorageSafely(e) { try { return u.getDataFromLocalStorage(e); } catch (e) { return null; } }, _getUserIds: function _getUserIds(e, t) { var r = l._getCrb(), n = { kargoID: r.userId, clientID: r.clientId, crbIDs: r.syncIds || {}, optOut: r.optOut, usp: t }; return e && (n.tdID = e), n; }, _getClientId: function _getClientId() { return l._getCrb().clientId; }, _getAllMetadata: function _getAllMetadata(e, t) { return { userIDs: l._getUserIds(e, t), krux: l._getKrux(), pageURL: window.location.href, rawCRB: l._readCookie("krg_crb"), rawCRBLocalStorage: l._getLocalStorageSafely("krg_crb") }; }, _getSessionId: function _getSessionId() { return o = o || l._generateRandomUuid(); }, _getRequestCount: function _getRequestCount() { return i === window.location.pathname ? ++c : (i = window.location.pathname, c = 0); }, _generateRandomUuid: function _generateRandomUuid() { try { var e = new Uint8Array(16); crypto.getRandomValues(e), e[6] = -177 & e[6] | 64, e[8] = -65 & e[8] | 128; var t = Array.prototype.map.call(new Uint8Array(e), function (e) { return ("00" + e.toString(16)).slice(-2); }).join(""); return t.slice(0, 8) + "-" + t.slice(8, 12) + "-" + t.slice(12, 16) + "-" + t.slice(16, 20) + "-" + t.slice(20); } catch (e) { return ""; } } }; Object(n.registerBidder)(l); } }, [490]); pbjsChunk([120], { 684: function _(e, r, t) { e.exports = t(685); }, 685: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "FASTLANE_ENDPOINT", function () { return a; }), t.d(r, "VIDEO_ENDPOINT", function () { return v; }), t.d(r, "SYNC_ENDPOINT", function () { return s; }), t.d(r, "spec", function () { return k; }), r.hasVideoMediaType = l, r.masSizeOrdering = g, r.determineRubiconVideoSizeId = b, r.getPriceGranularity = y, r.hasValidVideoParams = x, r.hasValidSupplyChainParams = R, r.encodeParam = h, r.resetUserSync = function () { z = !1; }; var _ = t(0), i = t(1), A = t(3), u = t(2), n = t(10), S = t.n(n); function I(e, r) { return function (e) { if (Array.isArray(e)) return e; }(e) || function (e, r) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var t = [], i = !0, n = !1, o = void 0; try { for (var a, s = e[Symbol.iterator](); !(i = (a = s.next()).done) && (t.push(a.value), !r || t.length !== r); i = !0) { ; } } catch (e) { n = !0, o = e; } finally { try { i || null == s.return || s.return(); } finally { if (n) throw o; } } return t; }(e, r) || function (e, r) { if (!e) return; if ("string" == typeof e) return o(e, r); var t = Object.prototype.toString.call(e).slice(8, -1); "Object" === t && e.constructor && (t = e.constructor.name); if ("Map" === t || "Set" === t) return Array.from(e); if ("Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r); }(e, r) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function o(e, r) { (null == r || r > e.length) && (r = e.length);

for (var t = 0, i = new Array(r); t < r; t++) { i[t] = e[t]; } return i; } function C() { return (C = Object.assign || function (e) { for (var r = 1; r < arguments.length; r++) { var t = arguments[r]; for (var i in t) { Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); } } return e; }).apply(this, arguments); } function m(e, r, t) { return r in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function j(e) { return (j = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) { return _typeof(e); } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); })(e); } var a = "https://fastlane.rubiconproject.com/a/api/fastlane.json", v = "https://prebid-server.rubiconproject.com/openrtb2/auction", s = "https://eus.rubiconproject.com/usync.html", c = { FASTLANE: { id: "dt.id", keyv: "dt.keyv", pref: "dt.pref" }, PREBID_SERVER: { id: "id", keyv: "keyv" } }, p = { 1: "468x60", 2: "728x90", 5: "120x90", 7: "125x125", 8: "120x600", 9: "160x600", 10: "300x600", 13: "200x200", 14: "250x250", 15: "300x250", 16: "336x280", 17: "240x400", 19: "300x100", 31: "980x120", 32: "250x360", 33: "180x500", 35: "980x150", 37: "468x400", 38: "930x180", 39: "750x100", 40: "750x200", 41: "750x300", 42: "2x4", 43: "320x50", 44: "300x50", 48: "300x300", 53: "1024x768", 54: "300x1050", 55: "970x90", 57: "970x250", 58: "1000x90", 59: "320x80", 60: "320x150", 61: "1000x1000", 64: "580x500", 65: "640x480", 66: "930x600", 67: "320x480", 68: "1800x1000", 72: "320x320", 73: "320x160", 78: "980x240", 79: "980x300", 80: "980x400", 83: "480x300", 85: "300x120", 90: "548x150", 94: "970x310", 95: "970x100", 96: "970x210", 101: "480x320", 102: "768x1024", 103: "480x280", 105: "250x800", 108: "320x240", 113: "1000x300", 117: "320x100", 125: "800x250", 126: "200x600", 144: "980x600", 145: "980x150", 152: "1000x250", 156: "640x320", 159: "320x250", 179: "250x600", 195: "600x300", 198: "640x360", 199: "640x200", 213: "1030x590", 214: "980x360", 221: "1x1", 229: "320x180", 230: "2000x1400", 232: "580x400", 234: "6x6", 251: "2x2", 256: "480x820", 257: "400x600", 258: "500x200", 259: "998x200", 264: "970x1000", 265: "1920x1080", 274: "1800x200", 278: "320x500", 282: "320x400", 288: "640x380" }; _._each(p, function (e, r) { return p[e] = r; }); var k = { code: "rubicon", gvlid: 52, supportedMediaTypes: [u.b, u.d], isBidRequestValid: function isBidRequestValid(e) { if ("object" !== j(e.params)) return !1; for (var r = 0, t = ["accountId"https://r.search.yahoo.com/,"siteId"https://r.search.yahoo.com/,"zoneId"]; r < t.length; r++) { if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return _.logError("Rubicon: wrong format of accountId or siteId or zoneId."), !1; } var i = f(e, !0); return !!i && ("video" !== i || x(e)); }, buildRequests: function buildRequests(e, g) { var n, r = e.filter(function (e) { return "video" === f(e); }).map(function (e) { e.startTime = new Date().getTime(); var r, t, i = { id: e.transactionId, test: A.b.getConfig("debug") ? 1 : 0, cur: ["USD"], source: { tid: e.transactionId }, tmax: A.b.getConfig("TTL") || 1e3, imp: [{ exp: 300, id: e.adUnitCode, secure: 1, ext: m({}, e.bidder, e.params), video: _.deepAccess(e, "mediaTypes.video") || {} }], ext: { prebid: { cache: { vastxml: { returnCreative: !1 } }, targeting: { includewinners: !0, includebidderkeys: !1, pricegranularity: y(A.b) }, bidders: { rubicon: { integration: A.b.getConfig("rubicon.int_type") || "pbjs" } } } } }; if ("rubicon" !== e.bidder && (i.ext.prebid.aliases = m({}, e.bidder, "rubicon")), "function" != typeof e.getFloor || A.b.getConfig("rubicon.disableFloors")) r = parseFloat(_.deepAccess(e, "params.floor"));else { try { t = e.getFloor({ currency: "USD", mediaType: "video", size: w(e, "video") }); } catch (e) { _.logError("Rubicon: getFloor threw an error: ", e); } r = "object" !== j(t) || "USD" !== t.currency || isNaN(parseInt(t.floor)) ? void 0 : parseFloat(t.floor); } isNaN(r) || (i.imp[0].bidfloor = r), i.imp[0].ext[e.bidder].video.size_id = b(e), function (r, t, e) { if (!r) return; "object" === j(A.b.getConfig("app")) ? r.app = A.b.getConfig("app") : r.site = { page: T(t, e) }; "object" === j(A.b.getConfig("device")) && (r.device = A.b.getConfig("device")); t.params.video.language && ["site"https://r.search.yahoo.com/,"device"].forEach(function (e) { r[e] && (r[e].content = C({ language: t.params.video.language }, r[e].content)); }); }(i, e, g), function (e, r) { "object" === j(e.imp[0].video) && void 0 === e.imp[0].video.skip && (e.imp[0].video.skip = r.params.video.skip); "object" === j(e.imp[0].video) && void 0 === e.imp[0].video.skipafter && (e.imp[0].video.skipafter = r.params.video.skipdelay); "object" === j(e.imp[0].video) && void 0 === e.imp[0].video.pos && ("atf" === r.params.position ? e.imp[0].video.pos = 1 : "btf" === r.params.position && (e.imp[0].video.pos = 3)); var t = w(r, "video"); e.imp[0].video.w = t[0], e.imp[0].video.h = t[1]; }(i, e); var n, o = E(e, "PREBID_SERVER"); o && _.deepSetValue(i, "user.ext.digitrust", o), g.gdprConsent && ("boolean" == typeof g.gdprConsent.gdprApplies && (n = g.gdprConsent.gdprApplies ? 1 : 0), _.deepSetValue(i, "regs.ext.gdpr", n), _.deepSetValue(i, "user.ext.consent", g.gdprConsent.consentString)), g.uspConsent && _.deepSetValue(i, "regs.ext.us_privacy", g.uspConsent); var a, s = _.deepAccess(g, "bids.0.userIdAsEids"); s && s.length && (_.deepSetValue(i, "user.ext.eids", s.filter(function (e) { return -1 !== ["adserver.org"https://r.search.yahoo.com/,"pubcid.org"https://r.search.yahoo.com/,"liveintent.com"https://r.search.yahoo.com/,"liveramp.com"https://r.search.yahoo.com/,"sharedid.org"].indexOf(e.source); })), (a = S()(i.user.ext.eids, function (e) { return "liveintent.com" === e.source; })) && (_.deepSetValue(i, "user.ext.tpid", { source: a.source, uid: a.uids[0].id }), a.ext && a.ext.segments && _.deepSetValue(i, "rp.target.LIseg", a.ext.segments))); var c = A.b.getConfig("user.id"); c && _.deepSetValue(i, "user.id", c), !0 === A.b.getConfig("coppa") && _.deepSetValue(i, "regs.coppa", 1), e.schain && R(e.schain) && _.deepSetValue(i, "source.ext.schain", e.schain); var d, u = C({}, e.params.inventory, A.b.getConfig("fpd.context")), p = C({}, e.params.visitor, A.b.getConfig("fpd.user")); _.isEmpty(u) && _.isEmpty(p) || (d = { bidders: [g.bidderCode], config: { fpd: {} } }, _.isEmpty(u) || (d.config.fpd.site = u), _.isEmpty(p) || (d.config.fpd.user = p), _.deepSetValue(i, "ext.prebid.bidderconfig.0", d)); var l = _.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof l && l && _.deepSetValue(i.imp[0].ext, "context.data.pbadslot", l); var f = _.deepAccess(e, "fpd.context.adServer.adSlot"); return "string" == typeof f && f && _.deepSetValue(i.imp[0].ext, "context.data.adslot", f), e.storedAuctionResponse && _.deepSetValue(i.imp[0], "ext.prebid.storedauctionresponse.id", e.storedAuctionResponse.toString()), _.deepSetValue(i.imp[0], "ext.prebid.auctiontimestamp", g.auctionStart), { method: "POST", url: v, data: i, bidRequest: e }; }); return !0 !== A.b.getConfig("rubicon.singleRequest") ? r.concat(e.filter(function (e) { return "banner" === f(e); }).map(function (e) { var i = k.createSlotParams(e, g); return { method: "GET", url: a, data: k.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return _.isStr(t) && "" !== t || _.isNumber(t) ? "".concat(e).concat(h(r, t), "&") : e; }, "") + "slots=1&rand=".concat(Math.random()), bidRequest: e }; })) : (n = e.filter(function (e) { return "banner" === f(e); }).reduce(function (e, r) { return (e[r.params.siteId] = e[r.params.siteId] || []).push(r), e; }, {}), r.concat(Object.keys(n).reduce(function (r, e) { var t, i; return t = n[e], i = 10, t.map(function (e, r) { return r % i == 0 ? t.slice(r, r + i) : null; }).filter(function (e) { return e; }).forEach(function (e) { var i = k.combineSlotUrlParams(e.map(function (e) { return k.createSlotParams(e, g); })); r.push({ method: "GET", url: a, data: k.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return _.isStr(t) && "" !== t || _.isNumber(t) ? "".concat(e).concat(h(r, t), "&") : e; }, "") + "slots=".concat(e.length, "&rand=").concat(Math.random()), bidRequest: e }); }), r; }, []))); }, getOrderedParams: function getOrderedParams(e) { var r = /^tg_v/, t = /^tg_i/, i = ["account_id"https://r.search.yahoo.com/,"site_id"https://r.search.yahoo.com/,"zone_id"https://r.search.yahoo.com/,"size_id"https://r.search.yahoo.com/,"alt_size_ids"https://r.search.yahoo.com/,"p_pos"https://r.search.yahoo.com/,"gdpr"https://r.search.yahoo.com/,"gdpr_consent"https://r.search.yahoo.com/,"us_privacy"https://r.search.yahoo.com/,"rp_schain"https://r.search.yahoo.com/,"tpid_tdid"https://r.search.yahoo.com/,"tpid_liveintent.com"https://r.search.yahoo.com/,"tg_v.LIseg"https://r.search.yahoo.com/,"dt.id"https://r.search.yahoo.com/,"dt.keyv"https://r.search.yahoo.com/,"dt.pref"https://r.search.yahoo.com/,"rf"https://r.search.yahoo.com/,"p_geo.latitude"https://r.search.yahoo.com/,"p_geo.longitude"https://r.search.yahoo.com/,"kw"].concat(Object.keys(e).filter(function (e) { return r.test(e); })).concat(Object.keys(e).filter(function (e) { return t.test(e); })).concat(["tk_flint"https://r.search.yahoo.com/,"x_source.tid"https://r.search.yahoo.com/,"x_source.pchain"https://r.search.yahoo.com/,"p_screen_res"https://r.search.yahoo.com/,"rp_floor"https://r.search.yahoo.com/,"rp_secure"https://r.search.yahoo.com/,"tk_user_key"]); return i.concat(Object.keys(e).filter(function (e) { return -1 === i.indexOf(e); })); }, combineSlotUrlParams: function combineSlotUrlParams(n) { if (1 === n.length) return n[0]; var i = n.reduce(function (r, t, i) { return Object.keys(t).forEach(function (e) { r.hasOwnProperty(e) || (r[e] = new Array(n.length)), r[e].splice(i, 1, t[e]); }), r; }, {}), o = new RegExp("^([^;]*)(;\1)+$"); return Object.keys(i).forEach(function (e) { var r = i[e].join(";"), t = r.match(o); i[e] = t ? t[1] : r; }), i; }, createSlotParams: function createSlotParams(e, r) { e.startTime = new Date().getTime(); var t, i, n, o, a, s = e.params, c = w(e, "banner"), d = I(s.latLong || [], 2), u = d[0], p = d[1], l = A.b.getConfig("rubicon.int_type"), f = { account_id: s.accountId, site_id: s.siteId, zone_id: s.zoneId, size_id: c[0], alt_size_ids: c.slice(1).join(",") || void 0, rp_floor: .01 < (s.floor = parseFloat(s.floor)) ? s.floor : .01, rp_secure: "1", tk_flint: "".concat(l || "pbjs_lite"https://r.search.yahoo.com/,"_v4.7.0"), "x_source.tid": e.transactionId, "x_source.pchain": s.pchain, p_screen_res: [window.screen.width, window.screen.height].join("x"), tk_user_key: s.userId, "p_geo.latitude": isNaN(parseFloat(u)) ? void 0 : parseFloat(u).toFixed(4), "p_geo.longitude": isNaN(parseFloat(p)) ? void 0 : parseFloat(p).toFixed(4), "tg_fl.eid": e.code, rf: T(e, r) }; if ("function" == typeof e.getFloor && !A.b.getConfig("rubicon.disableFloors")) { try { t = e.getFloor({ currency: "USD", mediaType: "banner", size: "*" }); } catch (e) { _.logError("Rubicon: getFloor threw an error: ", e); } f.rp_hard_floor = "object" !== j(t) || "USD" !== t.currency || isNaN(parseInt(t.floor)) ? void 0 : t.floor; } f.p_pos = "atf" === s.position || "btf" === s.position ? s.position : "", e.userIdAsEids && e.userIdAsEids.length && ((i = S()(e.userIdAsEids, function (e) { return "adserver.org" === e.source; })) && (f.tpid_tdid = i.uids[0].id), (n = S()(e.userIdAsEids, function (e) { return "liveintent.com" === e.source; })) && (f["tpid_liveintent.com"] = n.uids[0].id, n.ext && Array.isArray(n.ext.segments) && n.ext.segments.length && (f["tg_v.LIseg"] = n.ext.segments.join(","))), (o = S()(e.userIdAsEids, function (e) { return "liveramp.com" === e.source; })) && (f.x_liverampidl = o.uids[0].id), (a = S()(e.userIdAsEids, function (e) { return "sharedid.org" === e.source; })) && (f["eid_sharedid.org"] = "".concat(a.uids[0].id, "^").concat(a.uids[0].atype, "^").concat(a.uids[0].ext.third))); var g = A.b.getConfig("user.id"); g && (f.ppuid = g), r.gdprConsent && ("boolean" == typeof r.gdprConsent.gdprApplies && (f.gdpr = Number(r.gdprConsent.gdprApplies)), f.gdpr_consent = r.gdprConsent.consentString), r.uspConsent && (f.us_privacy = encodeURIComponent(r.uspConsent)); var m = C({}, s.visitor, A.b.getConfig("fpd.user")); Object.keys(m).forEach(function (e) { null != m[e] && "keywords" !== e && (f["tg_v.".concat(e)] = "object" !== j(m[e]) || Array.isArray(m[e]) ? m[e].toString() : JSON.stringify(m[e])); }); var v = C({}, s.inventory, A.b.getConfig("fpd.context")); Object.keys(v).forEach(function (e) { null != v[e] && "keywords" !== e && (f["tg_i.".concat(e)] = "object" !== j(v[e]) || Array.isArray(v[e]) ? v[e].toString() : JSON.stringify(v[e])); }); var b = (s.keywords || []).concat(_.deepAccess(A.b.getConfig("fpd.user"), "keywords") || [], _.deepAccess(A.b.getConfig("fpd.context"), "keywords") || []); f.kw = Array.isArray(b) && b.length ? b.join(",") : ""; var y = _.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof y && y && (f["tg_i.pbadslot"] = y.replace(/^/+/, "")); var x = _.deepAccess(e, "fpd.context.adServer.adSlot"); "string" == typeof x && x && (f["tg_i.dfp_ad_unit_code"] = x.replace(/^/+/, "")); var h = E(e, "FASTLANE"); return C(f, h), !0 === A.b.getConfig("coppa") && (f.coppa = 1), e.schain && R(e.schain) && (f.rp_schain = k.serializeSupplyChain(e.schain)), f; }, serializeSupplyChain: function serializeSupplyChain(e) { if (!R(e)) return ""; var r = e.ver, t = e.complete, i = e.nodes; return "".concat(r, ",").concat(t, "!").concat(k.serializeSupplyChainNodes(i)); }, serializeSupplyChainNodes: function serializeSupplyChainNodes(e) { var t = ["asi"https://r.search.yahoo.com/,"sid"https://r.search.yahoo.com/,"hp"https://r.search.yahoo.com/,"rid"https://r.search.yahoo.com/,"name"https://r.search.yahoo.com/,"domain"]; return e.map(function (r) { return t.map(function (e) { return encodeURIComponent(r[e] || ""); }).join(","); }).join("!"); }, interpretResponse: function interpretResponse(c, e) { var d = e.bidRequest; if (!(c = c.body) || "object" !== j(c)) return []; if (c.seatbid) { var r = _.deepAccess(c, "ext.errors.rubicon"); Array.isArray(r) && 0 < r.length && _.logWarn("Rubicon: Error in video response"); var o = []; return c.seatbid.forEach(function (n) { (n.bid || []).forEach(function (e) { var r = { requestId: d.bidId, currency: c.cur || "USD", creativeId: e.crid, cpm: e.price || 0, bidderCode: n.seat, ttl: 300, netRevenue: !1 !== A.b.getConfig("rubicon.netRevenue"), width: e.w || _.deepAccess(d, "mediaTypes.video.w") || _.deepAccess(d, "params.video.playerWidth"), height: e.h || _.deepAccess(d, "mediaTypes.video.h") || _.deepAccess(d, "params.video.playerHeight") }; e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid); var t, i = _.deepAccess(c, "ext.responsetimemillis.rubicon"); d && i && (d.serverResponseTimeMs = i), _.deepAccess(e, "ext.prebid.type") === u.d ? (r.mediaType = u.d, (t = _.deepAccess(e, "ext.prebid.targeting")) && "object" === j(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === j(e.ext.prebid.cache.vastXml) && e.ext.prebid.cache.vastXml.cacheId && e.ext.prebid.cache.vastXml.url ? (r.videoCacheKey = e.ext.prebid.cache.vastXml.cacheId, r.vastUrl = e.ext.prebid.cache.vastXml.url) : t && t.hb_uuid && t.hb_cache_host && t.hb_cache_path && (r.videoCacheKey = t.hb_uuid, r.vastUrl = "https://".concat(t.hb_cache_host).concat(t.hb_cache_path, "?uuid=").concat(t.hb_uuid)), e.adm && (r.vastXml = e.adm), e.nurl && (r.vastUrl = e.nurl), !r.vastUrl && e.nurl && (r.vastUrl = e.nurl)) : _.logWarn("Rubicon: video response received non-video media type"), o.push(r); }); }), o; } var t = c.ads; return "object" !== j(d) || Array.isArray(d) || "video" !== f(d) || "object" !== j(t) || (t = t[d.adUnitCode]), !Array.isArray(t) || t.length < 1 ? [] : t.reduce(function (e, r, t) { if ("ok" !== r.status) return e; var i, n, o, a, s = Array.isArray(d) ? d[t] : d; return s && "object" === j(s) ? (i = { requestId: s.bidId, currency: "USD", creativeId: r.creative_id || "".concat(r.network || ""https://r.search.yahoo.com/,"-").concat(r.advertiser || ""), cpm: r.cpm || 0, dealId: r.deal, ttl: 300, netRevenue: !1 !== A.b.getConfig("rubicon.netRevenue"), rubicon: { advertiserId: r.advertiser, networkId: r.network }, meta: { advertiserId: r.advertiser, networkId: r.network } }, r.creative_type && (i.mediaType = r.creative_type), r.creative_type === u.d ? (i.width = s.params.video.playerWidth, i.height = s.params.video.playerHeight, i.vastUrl = r.creative_depot_url, i.impression_id = r.impression_id, i.videoCacheKey = r.impression_id) : (i.ad = (o = r.script, a = r.impression_id, "nnnx3c!-- Rubicon Project Ad Tag --x3en

nn

n

n")), n = I(p[r.size_id].split("x").map(function (e) {
return Number(e);
}), 2), i.width = n[0], i.height = n[1]), i.rubiconTargeting = (Array.isArray(r.targeting) ? r.targeting : []).reduce(function (e, r) {
return e[r.key] = r.values[0], e;
}, {
rpfl_elemid: s.adUnitCode
}), e.push(i)) : _.logError("Rubicon: bidRequest undefined at index position:".concat(t), d, c), e;
}, []).sort(function (e, r) {
return (r.cpm || 0) - (e.cpm || 0);
});
},
getUserSyncs: function getUserSyncs(e, r, t, i) {
if (!z && e.iframeEnabled) {
var n = "";
return t && "string" == typeof t.consentString && ("boolean" == typeof t.gdprApplies ? n += "?gdpr=".concat(Number(t.gdprApplies), "&gdpr_consent=").concat(t.consentString) : n += "?gdpr_consent=".concat(t.consentString)), i && (n += "".concat(n ? "&" : "?"https://r.search.yahoo.com/,"us_privacy=").concat(encodeURIComponent(i))), z = !0, {
type: "iframe",
url: s + n
};
}
},
transformBidParams: function transformBidParams(e) {
return _.convertTypes({
accountId: "number",
siteId: "number",
zoneId: "number"
}, e);
}
};

function E(e, r) {
var t,
i = 0 < arguments.length && void 0 !== e ? e : {}, n = 1 < arguments.length ? r : void 0; if (!n || !c[n]) return null; var o = c[n]; var a = function () { var e = _.deepAccess(i, "userId.digitrustid.data"); if (e) return e; var r = window.DigiTrust && (A.b.getConfig("digiTrustId") || window.DigiTrust.getUser({ member: "T9QSFKPDN9" })); return r && r.success && r.identity || null; }(); if (!a || a.privacy && a.privacy.optout) return null; var s = (m(t = {}, o.id, a.id), m(t, o.keyv, a.keyv), t); return o.pref && (s[o.pref] = 0), s; } function T(e, r) { var t = A.b.getConfig("pageUrl"), t = e.params.referrer ? e.params.referrer : t || r.refererInfo.referer; return e.params.secure ? t.replace(/^http:/i, "https:") : t; } function w(e, r) { var t = e.params; if ("video" === r) { var i = []; return t.video && t.video.playerWidth && t.video.playerHeight ? i = [t.video.playerWidth, t.video.playerHeight] : Array.isArray(_.deepAccess(e, "mediaTypes.video.playerSize")) && 1 === e.mediaTypes.video.playerSize.length ? i = e.mediaTypes.video.playerSize[0] : Array.isArray(e.sizes) && 0 < e.sizes.length && Array.isArray(e.sizes[0]) && 1 < e.sizes[0].length && (i = e.sizes[0]), i; } var n = []; return Array.isArray(t.sizes) ? n = t.sizes : void 0 !== _.deepAccess(e, "mediaTypes.banner.sizes") ? n = d(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) && 0 < e.sizes.length ? n = d(e.sizes) : _.logWarn("Rubicon: no sizes are setup or found"), g(n); } function d(e) { return _.parseSizesInput(e).reduce(function (e, r) { var t = parseInt(p[r], 10); return t && e.push(t), e; }, []); } function l(e) { return "object" === j(_.deepAccess(e, "params.video")) && void 0 !== _.deepAccess(e, "mediaTypes.".concat(u.d)); } function f(e, r) { var t = 1 < arguments.length && void 0 !== r && r; return l(e) ? -1 === ["outstream"https://r.search.yahoo.com/,"instream"].indexOf(_.deepAccess(e, "mediaTypes.".concat(u.d, ".context"))) ? void (t && _.logError("Rubicon: mediaTypes.video.context must be outstream or instream")) : w(e, "video").length < 2 ? void (t && _.logError("Rubicon: could not determine the playerSize of the video")) : (t && _.logMessage("Rubicon: making video request for adUnit", e.adUnitCode), "video") : 0 === w(e, "banner").length ? void (t && _.logError("Rubicon: could not determine the sizes for banner request")) : (t && _.logMessage("Rubicon: making banner request for adUnit", e.adUnitCode), "banner"); } function g(e) { var n = [15, 2, 9]; return e.sort(function (e, r) { var t = n.indexOf(e), i = n.indexOf(r); return -1 < t || -1 < i ? -1 === t ? 1 : -1 === i ? -1 : t - i : e - r; }); } function b(e) { var r = parseInt(_.deepAccess(e, "params.video.size_id")); return isNaN(r) ? "outstream" === _.deepAccess(e, "mediaTypes.".concat(u.d, ".context")) ? 203 : 201 : r; } function y(e) { return { ranges: { low: [{ max: 5, increment: .5 }], medium: [{ max: 20, increment: .1 }], high: [{ max: 20, increment: .01 }], auto: [{ max: 5, increment: .05 }, { min: 5, max: 10, increment: .1 }, { min: 10, max: 20, increment: .5 }], dense: [{ max: 3, increment: .01 }, { min: 3, max: 8, increment: .05 }, { min: 8, max: 20, increment: .5 }], custom: e.getConfig("customPriceBucket") && e.getConfig("customPriceBucket").buckets }[e.getConfig("priceGranularity")] }; } function x(r) { var t = !0, e = Object.prototype.toString.call([]), i = Object.prototype.toString.call(0), n = { mimes: e, protocols: e, maxduration: i, linearity: i, api: e }; return Object.keys(n).forEach(function (e) { Object.prototype.toString.call(_.deepAccess(r, "mediaTypes.video." + e)) !== n[e] && (t = !1, _.logError("Rubicon: mediaTypes.video." + e + " is required and must be of type: " + n[e])); }), t; } function R(e) { var r = !1, t = ["asi"https://r.search.yahoo.com/,"sid"https://r.search.yahoo.com/,"hp"]; return e.nodes && ((r = e.nodes.reduce(function (e, r) { return e ? t.every(function (e) { return r.hasOwnProperty(e); }) : e; }, !0)) || _.logError("Rubicon: required schain params missing")), r; } function h(e, r) { return "rp_schain" === e ? "rp_schain=".concat(r) : "".concat(e, "=").concat(encodeURIComponent(r)); } var z = !1; Object(i.registerBidder)(k); } }, [684]); pbjsChunk([100], { 734: function _(e, t, r) { e.exports = r(735); }, 735: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return a; }), r.d(t, "_isInbounds", function () { return m; }), t._getPlatform = v; var n = r(1), y = r(0), i = r(2), o = r(3), g = r(11), c = r(44); function h(e, t) { return function (e) { if (Array.isArray(e)) return e; }(e) || function (e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var r = [], n = !0, i = !1, s = void 0; try { for (var a, o = e[Symbol.iterator](); !(n = (a = o.next()).done) && (r.push(a.value), !t || r.length !== t); n = !0) { ; } } catch (e) { i = !0, s = e; } finally { try { n || null == o.return || o.return(); } finally { if (i) throw s; } } return r; }(e, t) || function (e, t) { if (!e) return; if ("string" == typeof e) return s(e, t); var r = Object.prototype.toString.call(e).slice(8, -1); "Object" === r && e.constructor && (r = e.constructor.name); if ("Map" === r || "Set" === r) return Array.from(e); if ("Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return s(e, t); }(e, t) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function s(e, t) { (null == t || t > e.length) && (t = e.length);

for (var r = 0, n = new Array(t); r < t; r++) { n[r] = e[r]; } return n; } function d() { return (d = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var n in r) { Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]); } } return e; }).apply(this, arguments); } function u(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e; } var p = "sonobi", b = Object(y.generateUUID)(), a = { code: p, supportedMediaTypes: [i.b, i.d], isBidRequestValid: function isBidRequestValid(e) { if (!e.params) return !1; if (!e.params.ad_unit && !e.params.placement_id) return !1; if (!Object(y.deepAccess)(e, "mediaTypes.banner") && !Object(y.deepAccess)(e, "mediaTypes.video")) return !1; if (Object(y.deepAccess)(e, "mediaTypes.banner")) { if (!Object(y.deepAccess)(e, "mediaTypes.banner.sizes") && !e.params.sizes) return !1; } else if (Object(y.deepAccess)(e, "mediaTypes.video")) { if ("outstream" === Object(y.deepAccess)(e, "mediaTypes.video.context") && !e.params.sizes) return !1; if ("instream" === Object(y.deepAccess)(e, "mediaTypes.video.context") && !Object(y.deepAccess)(e, "mediaTypes.video.playerSize")) return !1; } return !0; }, buildRequests: function buildRequests(e, t) { var r = e.map(function (e) { var t = function (e) { if (e.params.ad_unit) return e.params.ad_unit; return e.params.placement_id; }(e); return /^[/]?[d]+[[/].+[/]?]?$/.test(t) ? (t = "/" === t.charAt(0) ? t : "/" + t, u({}, "".concat(t, "|").concat(e.bidId), "".concat(l(e)).concat(f(e)))) : /^[0-9a-fA-F]{20}$/.test(t) && 20 === t.length ? u({}, e.bidId, "".concat(t, "|").concat(l(e)).concat(f(e))) : void Object(y.logError)("The ad unit code or Sonobi Placement id for slot ".concat(e.bidId, " is invalid")); }), n = {}; r.forEach(function (e) { d(n, e); }); var i = { key_maker: JSON.stringify(n), ref: t.refererInfo.referer, s: Object(y.generateUUID)(), pv: b, vp: v(), lib_name: "prebid", lib_v: "4.7.0", us: 0 }; o.b.getConfig("userSync") && o.b.getConfig("userSync").syncsPerBidder && (i.us = o.b.getConfig("userSync").syncsPerBidder), c.a.canBidderRegisterSync("iframe", p) ? i.ius = 1 : i.ius = 0, Object(y.deepAccess)(e[0], "params.hfa") && (i.hfa = Object(y.deepAccess)(e[0], "params.hfa")), e[0].params.referrer && (i.ref = e[0].params.referrer), t && t.gdprConsent && (i.gdpr = t.gdprConsent.gdprApplies ? "true" : "false", t.gdprConsent.consentString && (i.consent_string = t.gdprConsent.consentString)), e[0].schain && (i.schain = JSON.stringify(e[0].schain)), Object(y.deepAccess)(e[0], "userId") && 0 < Object.keys(e[0].userId).length && (i.userid = JSON.stringify(e[0].userId)); var s = e[0].params.keywords; if (s && (i.kw = s), t && t.uspConsent && (i.us_privacy = t.uspConsent), Object(y.isEmpty)(n)) return null; var a = "https://apex.go.sonobi.com/trinity.json"; return Object(y.deepAccess)(e[0], "params.bid_request_url") && (a = Object(y.deepAccess)(e[0], "params.bid_request_url")), { method: "GET", url: a, withCredentials: !0, data: i, bidderRequests: e }; }, interpretResponse: function interpretResponse(e, l) { var f = e.body, m = [], v = l.data.ref; return 0 === Object.keys(f.slots).length || Object.keys(f.slots).forEach(function (e) { var t = f.slots[e], r = e.split("|").slice(-1)[0], n = function (e, t) { for (var r = 0; r < e.length; r++) { if (e[r].bidId === t) return e[r]; } }(l.bidderRequests, r), i = null; "video" === t.sbi_ct && (i = "video"https://r.search.yahoo.com/,"outstream" === Object(y.deepAccess)(n, "mediaTypes.video.context") && (i = "outstream")); var s, a, o, c, d, u, p, b = j(i, v); t.sbi_aid && t.sbi_mouse && t.sbi_size && (o = void 0 === (a = (s = h(t.sbi_size.split("x"), 2))[0]) ? 1 : a, d = void 0 === (c = s[1]) ? 1 : c, u = { requestId: r, cpm: Number(t.sbi_mouse), width: Number(o), height: Number(d), ad: b(f.sbi_dc, t.sbi_aid), ttl: 500, creativeId: t.sbi_crid || t.sbi_aid, aid: t.sbi_aid, netRevenue: !0, currency: "USD" }, t.sbi_dozer && (u.dealId = t.sbi_dozer), "video" === i ? (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), delete u.ad, delete u.width, delete u.height) : "outstream" === i && n && (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), u.renderer = function (e, t) { var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}, n = g.a.install({ id: t.aid, url: "https://mtrx.go.sonobi.com/sbi_outstream_renderer.js", config: r, loaded: !1, adUnitCode: e }); try { n.setRender(O); } catch (e) { Object(y.logWarn)("Prebid Error calling setRender on renderer", e); } return n.setEventHandlers({ impression: function impression() { return Object(y.logMessage)("Sonobi outstream video impression event"); }, loaded: function loaded() { return Object(y.logMessage)("Sonobi outstream video loaded event"); }, ended: function ended() { Object(y.logMessage)("Sonobi outstream renderer video event"); } }), n; }(n.adUnitCode, u, Object(y.deepAccess)(n, "renderer.options")), p = Object(y.deepAccess)(n, "params.sizes"), Array.isArray(p) && Array.isArray(p[0]) && (p = p[0]), p && (u.width = p[0], u.height = p[1])), m.push(u)); }), m; }, getUserSyncs: function getUserSyncs(e, t) { var r = []; try { e.pixelEnabled && t[0].body.sbi_px.forEach(function (e) { r.push({ type: e.type, url: e.url }); }); } catch (e) {} return r; } }; function l(e) { return Object(y.deepAccess)(e, "mediaTypes.video") ? "" : e.params.sizes ? Object(y.parseSizesInput)(e.params.sizes).join(",") : Object(y.deepAccess)(e, "mediaTypes.banner.sizes") ? Object(y.parseSizesInput)(Object(y.deepAccess)(e, "mediaTypes.banner.sizes")).join(",") : e.sizes ? Object(y.parseSizesInput)(e.sizes).join(",") : void 0; } function f(e) { return e.params.floor ? "|f=".concat(e.params.floor) : ""; } var j = function j(i, s) { return function (e, t) { return "video" === i || "outstream" === i ? (r = t, n = s, "https://".concat(e, "apex.go.sonobi.com/vast.xml?vid=").concat(r, "&ref=").concat(encodeURIComponent(n))) : '‘;
var r, n;
};
};

var m = function m(e) {
var r = 0 < arguments.length && void 0 !== e ? e : window; return function () { var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0, t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : Number.MAX_SAFE_INTEGER; return r.innerWidth >= e && r.innerWidth < t; }; }; function v() { var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : window, t = m(e), r = 992, n = 768; return t(0, 768) ? "mobile" : t(n, r) ? "tablet" : "desktop"; } function O(i) { i.renderer.push(function () { var e = h(i.getSize().split("x"), 2), t = e[0], r = e[1], n = new window.SbiOutstreamRenderer(); n.init({ vastUrl: i.vastUrl, height: r, width: t }), n.setRootElement(i.adUnitCode); }); } Object(n.registerBidder)(a); } }, [734]); pbjsChunk([97], { 744: function _(e, t, r) { e.exports = r(745); }, 745: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "GOOGLE_CONSENT", function () { return P; }), r.d(t, "spec", function () { return n; }); var I = r(0), u = r(11), a = r(1), c = r(2); function d(e) { return (d = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) { return _typeof(e); } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); })(e); } var i = "spotx", P = { consented_providers: ["3"https://r.search.yahoo.com/,"7"https://r.search.yahoo.com/,"11"https://r.search.yahoo.com/,"12"https://r.search.yahoo.com/,"15"https://r.search.yahoo.com/,"20"https://r.search.yahoo.com/,"22"https://r.search.yahoo.com/,"35"https://r.search.yahoo.com/,"43"https://r.search.yahoo.com/,"46"https://r.search.yahoo.com/,"48"https://r.search.yahoo.com/,"55"https://r.search.yahoo.com/,"57"https://r.search.yahoo.com/,"61"https://r.search.yahoo.com/,"62"https://r.search.yahoo.com/,"66"https://r.search.yahoo.com/,"70"https://r.search.yahoo.com/,"80"https://r.search.yahoo.com/,"83"https://r.search.yahoo.com/,"85"https://r.search.yahoo.com/,"86"https://r.search.yahoo.com/,"89"https://r.search.yahoo.com/,"93"https://r.search.yahoo.com/,"108"https://r.search.yahoo.com/,"122"https://r.search.yahoo.com/,"124"https://r.search.yahoo.com/,"125"https://r.search.yahoo.com/,"126"https://r.search.yahoo.com/,"131"https://r.search.yahoo.com/,"134"https://r.search.yahoo.com/,"135"https://r.search.yahoo.com/,"136"https://r.search.yahoo.com/,"143"https://r.search.yahoo.com/,"144"https://r.search.yahoo.com/,"147"https://r.search.yahoo.com/,"149"https://r.search.yahoo.com/,"153"https://r.search.yahoo.com/,"154"https://r.search.yahoo.com/,"159"https://r.search.yahoo.com/,"161"https://r.search.yahoo.com/,"162"https://r.search.yahoo.com/,"165"https://r.search.yahoo.com/,"167"https://r.search.yahoo.com/,"171"https://r.search.yahoo.com/,"178"https://r.search.yahoo.com/,"184"https://r.search.yahoo.com/,"188"https://r.search.yahoo.com/,"192"https://r.search.yahoo.com/,"195"https://r.search.yahoo.com/,"196"https://r.search.yahoo.com/,"202"https://r.search.yahoo.com/,"209"https://r.search.yahoo.com/,"211"https://r.search.yahoo.com/,"218"https://r.search.yahoo.com/,"221"https://r.search.yahoo.com/,"228"https://r.search.yahoo.com/,"229"https://r.search.yahoo.com/,"230"https://r.search.yahoo.com/,"236"https://r.search.yahoo.com/,"239"https://r.search.yahoo.com/,"241"https://r.search.yahoo.com/,"253"https://r.search.yahoo.com/,"255"https://r.search.yahoo.com/,"259"https://r.search.yahoo.com/,"266"https://r.search.yahoo.com/,"271"https://r.search.yahoo.com/,"272"https://r.search.yahoo.com/,"274"https://r.search.yahoo.com/,"286"https://r.search.yahoo.com/,"291"https://r.search.yahoo.com/,"294"https://r.search.yahoo.com/,"303"https://r.search.yahoo.com/,"308"https://r.search.yahoo.com/,"310"https://r.search.yahoo.com/,"311"https://r.search.yahoo.com/,"313"https://r.search.yahoo.com/,"314"https://r.search.yahoo.com/,"316"https://r.search.yahoo.com/,"317"https://r.search.yahoo.com/,"322"https://r.search.yahoo.com/,"323"https://r.search.yahoo.com/,"327"https://r.search.yahoo.com/,"336"https://r.search.yahoo.com/,"338"https://r.search.yahoo.com/,"340"https://r.search.yahoo.com/,"348"https://r.search.yahoo.com/,"350"https://r.search.yahoo.com/,"358"https://r.search.yahoo.com/,"359"https://r.search.yahoo.com/,"363"https://r.search.yahoo.com/,"367"https://r.search.yahoo.com/,"370"https://r.search.yahoo.com/,"371"https://r.search.yahoo.com/,"384"https://r.search.yahoo.com/,"385"https://r.search.yahoo.com/,"389"https://r.search.yahoo.com/,"393"https://r.search.yahoo.com/,"394"https://r.search.yahoo.com/,"397"https://r.search.yahoo.com/,"398"https://r.search.yahoo.com/,"407"https://r.search.yahoo.com/,"414"https://r.search.yahoo.com/,"415"https://r.search.yahoo.com/,"424"https://r.search.yahoo.com/,"429"https://r.search.yahoo.com/,"430"https://r.search.yahoo.com/,"432"https://r.search.yahoo.com/,"436"https://r.search.yahoo.com/,"438"https://r.search.yahoo.com/,"440"https://r.search.yahoo.com/,"442"https://r.search.yahoo.com/,"443"https://r.search.yahoo.com/,"445"https://r.search.yahoo.com/,"448"https://r.search.yahoo.com/,"449"https://r.search.yahoo.com/,"453"https://r.search.yahoo.com/,"459"https://r.search.yahoo.com/,"479"https://r.search.yahoo.com/,"482"https://r.search.yahoo.com/,"486"https://r.search.yahoo.com/,"491"https://r.search.yahoo.com/,"492"https://r.search.yahoo.com/,"494"https://r.search.yahoo.com/,"495"https://r.search.yahoo.com/,"503"https://r.search.yahoo.com/,"505"https://r.search.yahoo.com/,"510"https://r.search.yahoo.com/,"522"https://r.search.yahoo.com/,"523"https://r.search.yahoo.com/,"528"https://r.search.yahoo.com/,"537"https://r.search.yahoo.com/,"540"https://r.search.yahoo.com/,"550"https://r.search.yahoo.com/,"559"https://r.search.yahoo.com/,"560"https://r.search.yahoo.com/,"568"https://r.search.yahoo.com/,"571"https://r.search.yahoo.com/,"574"https://r.search.yahoo.com/,"575"https://r.search.yahoo.com/,"576"https://r.search.yahoo.com/,"584"https://r.search.yahoo.com/,"585"https://r.search.yahoo.com/,"587"https://r.search.yahoo.com/,"588"https://r.search.yahoo.com/,"590"https://r.search.yahoo.com/,"591"https://r.search.yahoo.com/,"592"https://r.search.yahoo.com/,"595"https://r.search.yahoo.com/,"609"https://r.search.yahoo.com/,"621"https://r.search.yahoo.com/,"624"https://r.search.yahoo.com/,"723"https://r.search.yahoo.com/,"725"https://r.search.yahoo.com/,"733"https://r.search.yahoo.com/,"737"https://r.search.yahoo.com/,"776"https://r.search.yahoo.com/,"780"https://r.search.yahoo.com/,"782"https://r.search.yahoo.com/,"787"https://r.search.yahoo.com/,"797"https://r.search.yahoo.com/,"798"https://r.search.yahoo.com/,"802"https://r.search.yahoo.com/,"803"https://r.search.yahoo.com/,"814"https://r.search.yahoo.com/,"817"https://r.search.yahoo.com/,"820"https://r.search.yahoo.com/,"821"https://r.search.yahoo.com/,"827"https://r.search.yahoo.com/,"829"https://r.search.yahoo.com/,"839"https://r.search.yahoo.com/,"853"https://r.search.yahoo.com/,"864"https://r.search.yahoo.com/,"867"https://r.search.yahoo.com/,"874"https://r.search.yahoo.com/,"899"https://r.search.yahoo.com/,"904"https://r.search.yahoo.com/,"922"https://r.search.yahoo.com/,"926"https://r.search.yahoo.com/,"931"https://r.search.yahoo.com/,"932"https://r.search.yahoo.com/,"933"https://r.search.yahoo.com/,"938"https://r.search.yahoo.com/,"955"https://r.search.yahoo.com/,"973"https://r.search.yahoo.com/,"976"https://r.search.yahoo.com/,"979"https://r.search.yahoo.com/,"981"https://r.search.yahoo.com/,"985"https://r.search.yahoo.com/,"987"https://r.search.yahoo.com/,"991"https://r.search.yahoo.com/,"1003"https://r.search.yahoo.com/,"1024"https://r.search.yahoo.com/,"1025"https://r.search.yahoo.com/,"1027"https://r.search.yahoo.com/,"1028"https://r.search.yahoo.com/,"1029"https://r.search.yahoo.com/,"1033"https://r.search.yahoo.com/,"1034"https://r.search.yahoo.com/,"1040"https://r.search.yahoo.com/,"1047"https://r.search.yahoo.com/,"1048"https://r.search.yahoo.com/,"1051"https://r.search.yahoo.com/,"1052"https://r.search.yahoo.com/,"1053"https://r.search.yahoo.com/,"1054"https://r.search.yahoo.com/,"1062"https://r.search.yahoo.com/,"1063"https://r.search.yahoo.com/,"1067"https://r.search.yahoo.com/,"1072"https://r.search.yahoo.com/,"1085"https://r.search.yahoo.com/,"1092"https://r.search.yahoo.com/,"1095"https://r.search.yahoo.com/,"1097"https://r.search.yahoo.com/,"1099"https://r.search.yahoo.com/,"1100"https://r.search.yahoo.com/,"1107"https://r.search.yahoo.com/,"1126"https://r.search.yahoo.com/,"1127"https://r.search.yahoo.com/,"1143"https://r.search.yahoo.com/,"1149"https://r.search.yahoo.com/,"1152"https://r.search.yahoo.com/,"1162"https://r.search.yahoo.com/,"1166"https://r.search.yahoo.com/,"1167"https://r.search.yahoo.com/,"1170"https://r.search.yahoo.com/,"1171"https://r.search.yahoo.com/,"1172"https://r.search.yahoo.com/,"1188"https://r.search.yahoo.com/,"1192"https://r.search.yahoo.com/,"1199"https://r.search.yahoo.com/,"1201"https://r.search.yahoo.com/,"1204"https://r.search.yahoo.com/,"1205"https://r.search.yahoo.com/,"1211"https://r.search.yahoo.com/,"1212"https://r.search.yahoo.com/,"1215"https://r.search.yahoo.com/,"1220"https://r.search.yahoo.com/,"1225"https://r.search.yahoo.com/,"1226"https://r.search.yahoo.com/,"1227"https://r.search.yahoo.com/,"1230"https://r.search.yahoo.com/,"1232"https://r.search.yahoo.com/,"1236"https://r.search.yahoo.com/,"1241"https://r.search.yahoo.com/,"1248"https://r.search.yahoo.com/,"1250"https://r.search.yahoo.com/,"1252"https://r.search.yahoo.com/,"1268"https://r.search.yahoo.com/,"1275"https://r.search.yahoo.com/,"1276"https://r.search.yahoo.com/,"1284"https://r.search.yahoo.com/,"1286"https://r.search.yahoo.com/,"1298"https://r.search.yahoo.com/,"1301"https://r.search.yahoo.com/,"1307"https://r.search.yahoo.com/,"1312"https://r.search.yahoo.com/,"1313"https://r.search.yahoo.com/,"1317"https://r.search.yahoo.com/,"1329"https://r.search.yahoo.com/,"1336"https://r.search.yahoo.com/,"1344"https://r.search.yahoo.com/,"1345"https://r.search.yahoo.com/,"1356"https://r.search.yahoo.com/,"1362"https://r.search.yahoo.com/,"1365"https://r.search.yahoo.com/,"1375"https://r.search.yahoo.com/,"1403"https://r.search.yahoo.com/,"1409"https://r.search.yahoo.com/,"1411"https://r.search.yahoo.com/,"1415"https://r.search.yahoo.com/,"1416"https://r.search.yahoo.com/,"1419"https://r.search.yahoo.com/,"1423"https://r.search.yahoo.com/,"1440"https://r.search.yahoo.com/,"1442"https://r.search.yahoo.com/,"1449"https://r.search.yahoo.com/,"1451"https://r.search.yahoo.com/,"1455"https://r.search.yahoo.com/,"1456"https://r.search.yahoo.com/,"1468"https://r.search.yahoo.com/,"1496"https://r.search.yahoo.com/,"1503"https://r.search.yahoo.com/,"1509"https://r.search.yahoo.com/,"1512"https://r.search.yahoo.com/,"1514"https://r.search.yahoo.com/,"1517"https://r.search.yahoo.com/,"1520"https://r.search.yahoo.com/,"1525"https://r.search.yahoo.com/,"1540"https://r.search.yahoo.com/,"1547"https://r.search.yahoo.com/,"1548"https://r.search.yahoo.com/,"1555"https://r.search.yahoo.com/,"1558"https://r.search.yahoo.com/,"1570"https://r.search.yahoo.com/,"1575"https://r.search.yahoo.com/,"1577"https://r.search.yahoo.com/,"1579"https://r.search.yahoo.com/,"1583"https://r.search.yahoo.com/,"1584"https://r.search.yahoo.com/,"1591"https://r.search.yahoo.com/,"1598"https://r.search.yahoo.com/,"1603"https://r.search.yahoo.com/,"1608"https://r.search.yahoo.com/,"1613"https://r.search.yahoo.com/,"1616"https://r.search.yahoo.com/,"1626"https://r.search.yahoo.com/,"1631"https://r.search.yahoo.com/,"1633"https://r.search.yahoo.com/,"1638"https://r.search.yahoo.com/,"1642"https://r.search.yahoo.com/,"1648"https://r.search.yahoo.com/,"1651"https://r.search.yahoo.com/,"1652"https://r.search.yahoo.com/,"1653"https://r.search.yahoo.com/,"1660"https://r.search.yahoo.com/,"1665"https://r.search.yahoo.com/,"1667"https://r.search.yahoo.com/,"1669"https://r.search.yahoo.com/,"1671"https://r.search.yahoo.com/,"1674"https://r.search.yahoo.com/,"1677"https://r.search.yahoo.com/,"1678"https://r.search.yahoo.com/,"1682"https://r.search.yahoo.com/,"1684"https://r.search.yahoo.com/,"1697"https://r.search.yahoo.com/,"1703"https://r.search.yahoo.com/,"1705"https://r.search.yahoo.com/,"1716"https://r.search.yahoo.com/,"1720"https://r.search.yahoo.com/,"1721"https://r.search.yahoo.com/,"1722"https://r.search.yahoo.com/,"1725"https://r.search.yahoo.com/,"1732"https://r.search.yahoo.com/,"1733"https://r.search.yahoo.com/,"1735"https://r.search.yahoo.com/,"1739"https://r.search.yahoo.com/,"1741"https://r.search.yahoo.com/,"1745"https://r.search.yahoo.com/,"1750"https://r.search.yahoo.com/,"1753"https://r.search.yahoo.com/,"1760"https://r.search.yahoo.com/,"1765"https://r.search.yahoo.com/,"1769"https://r.search.yahoo.com/,"1776"https://r.search.yahoo.com/,"1780"https://r.search.yahoo.com/,"1782"https://r.search.yahoo.com/,"1786"https://r.search.yahoo.com/,"1791"https://r.search.yahoo.com/,"1794"https://r.search.yahoo.com/,"1799"https://r.search.yahoo.com/,"1800"https://r.search.yahoo.com/,"1801"https://r.search.yahoo.com/,"1810"https://r.search.yahoo.com/,"1827"https://r.search.yahoo.com/,"1831"https://r.search.yahoo.com/,"1832"https://r.search.yahoo.com/,"1834"https://r.search.yahoo.com/,"1837"https://r.search.yahoo.com/,"1840"https://r.search.yahoo.com/,"1843"https://r.search.yahoo.com/,"1844"https://r.search.yahoo.com/,"1845"https://r.search.yahoo.com/,"1858"https://r.search.yahoo.com/,"1859"https://r.search.yahoo.com/,"1863"https://r.search.yahoo.com/,"1866"https://r.search.yahoo.com/,"1870"https://r.search.yahoo.com/,"1872"https://r.search.yahoo.com/,"1875"https://r.search.yahoo.com/,"1878"https://r.search.yahoo.com/,"1880"https://r.search.yahoo.com/,"1882"https://r.search.yahoo.com/,"1883"https://r.search.yahoo.com/,"1889"https://r.search.yahoo.com/,"1892"https://r.search.yahoo.com/,"1896"https://r.search.yahoo.com/,"1898"https://r.search.yahoo.com/,"1899"https://r.search.yahoo.com/,"1902"https://r.search.yahoo.com/,"1905"https://r.search.yahoo.com/,"1911"https://r.search.yahoo.com/,"1922"https://r.search.yahoo.com/,"1928"https://r.search.yahoo.com/,"1929"https://r.search.yahoo.com/,"1934"https://r.search.yahoo.com/,"1942"https://r.search.yahoo.com/,"1943"https://r.search.yahoo.com/,"1944"https://r.search.yahoo.com/,"1945"https://r.search.yahoo.com/,"1958"https://r.search.yahoo.com/,"1960"https://r.search.yahoo.com/,"1962"https://r.search.yahoo.com/,"1963"https://r.search.yahoo.com/,"1964"https://r.search.yahoo.com/,"1967"https://r.search.yahoo.com/,"1968"https://r.search.yahoo.com/,"1978"https://r.search.yahoo.com/,"1985"https://r.search.yahoo.com/,"1986"https://r.search.yahoo.com/,"1987"https://r.search.yahoo.com/,"1998"https://r.search.yahoo.com/,"2003"https://r.search.yahoo.com/,"2007"https://r.search.yahoo.com/,"2012"https://r.search.yahoo.com/,"2013"https://r.search.yahoo.com/,"2027"https://r.search.yahoo.com/,"2035"https://r.search.yahoo.com/,"2038"https://r.search.yahoo.com/,"2039"https://r.search.yahoo.com/,"2044"https://r.search.yahoo.com/,"2047"https://r.search.yahoo.com/,"2052"https://r.search.yahoo.com/,"2056"https://r.search.yahoo.com/,"2059"https://r.search.yahoo.com/,"2062"https://r.search.yahoo.com/,"2064"https://r.search.yahoo.com/,"2068"https://r.search.yahoo.com/,"2070"https://r.search.yahoo.com/,"2072"https://r.search.yahoo.com/,"2078"https://r.search.yahoo.com/,"2079"https://r.search.yahoo.com/,"2084"https://r.search.yahoo.com/,"2088"https://r.search.yahoo.com/,"2090"https://r.search.yahoo.com/,"2095"https://r.search.yahoo.com/,"2100"https://r.search.yahoo.com/,"2103"https://r.search.yahoo.com/,"2107"https://r.search.yahoo.com/,"2109"https://r.search.yahoo.com/,"2113"https://r.search.yahoo.com/,"2115"https://r.search.yahoo.com/,"2121"https://r.search.yahoo.com/,"2127"https://r.search.yahoo.com/,"2130"https://r.search.yahoo.com/,"2133"https://r.search.yahoo.com/,"2137"https://r.search.yahoo.com/,"2140"https://r.search.yahoo.com/,"2141"https://r.search.yahoo.com/,"2145"https://r.search.yahoo.com/,"2147"https://r.search.yahoo.com/,"2150"https://r.search.yahoo.com/,"2156"https://r.search.yahoo.com/,"2166"https://r.search.yahoo.com/,"2170"https://r.search.yahoo.com/,"2171"https://r.search.yahoo.com/,"2176"https://r.search.yahoo.com/,"2177"https://r.search.yahoo.com/,"2179"https://r.search.yahoo.com/,"2183"https://r.search.yahoo.com/,"2186"https://r.search.yahoo.com/,"2192"https://r.search.yahoo.com/,"2198"https://r.search.yahoo.com/,"2202"https://r.search.yahoo.com/,"2205"https://r.search.yahoo.com/,"2214"https://r.search.yahoo.com/,"2216"https://r.search.yahoo.com/,"2219"https://r.search.yahoo.com/,"2220"https://r.search.yahoo.com/,"2222"https://r.search.yahoo.com/,"2223"https://r.search.yahoo.com/,"2224"https://r.search.yahoo.com/,"2225"https://r.search.yahoo.com/,"2227"https://r.search.yahoo.com/,"2228"https://r.search.yahoo.com/,"2234"https://r.search.yahoo.com/,"2238"https://r.search.yahoo.com/,"2247"https://r.search.yahoo.com/,"2251"https://r.search.yahoo.com/,"2253"https://r.search.yahoo.com/,"2262"https://r.search.yahoo.com/,"2264"https://r.search.yahoo.com/,"2271"https://r.search.yahoo.com/,"2276"https://r.search.yahoo.com/,"2278"https://r.search.yahoo.com/,"2279"https://r.search.yahoo.com/,"2282"https://r.search.yahoo.com/,"2290"https://r.search.yahoo.com/,"2292"https://r.search.yahoo.com/,"2295"https://r.search.yahoo.com/,"2299"https://r.search.yahoo.com/,"2305"https://r.search.yahoo.com/,"2306"https://r.search.yahoo.com/,"2310"https://r.search.yahoo.com/,"2311"https://r.search.yahoo.com/,"2312"https://r.search.yahoo.com/,"2315"https://r.search.yahoo.com/,"2320"https://r.search.yahoo.com/,"2325"https://r.search.yahoo.com/,"2328"https://r.search.yahoo.com/,"2331"https://r.search.yahoo.com/,"2334"https://r.search.yahoo.com/,"2335"https://r.search.yahoo.com/,"2336"https://r.search.yahoo.com/,"2337"https://r.search.yahoo.com/,"2343"https://r.search.yahoo.com/,"2346"https://r.search.yahoo.com/,"2354"https://r.search.yahoo.com/,"2357"https://r.search.yahoo.com/,"2358"https://r.search.yahoo.com/,"2359"https://r.search.yahoo.com/,"2366"https://r.search.yahoo.com/,"2370"https://r.search.yahoo.com/,"2373"https://r.search.yahoo.com/,"2376"https://r.search.yahoo.com/,"2377"https://r.search.yahoo.com/,"2380"https://r.search.yahoo.com/,"2382"https://r.search.yahoo.com/,"2387"https://r.search.yahoo.com/,"2389"https://r.search.yahoo.com/,"2392"https://r.search.yahoo.com/,"2394"https://r.search.yahoo.com/,"2400"https://r.search.yahoo.com/,"2403"https://r.search.yahoo.com/,"2405"https://r.search.yahoo.com/,"2406"https://r.search.yahoo.com/,"2407"https://r.search.yahoo.com/,"2410"https://r.search.yahoo.com/,"2411"https://r.search.yahoo.com/,"2413"https://r.search.yahoo.com/,"2414"https://r.search.yahoo.com/,"2415"https://r.search.yahoo.com/,"2416"https://r.search.yahoo.com/,"2418"https://r.search.yahoo.com/,"2422"https://r.search.yahoo.com/,"2425"https://r.search.yahoo.com/,"2427"https://r.search.yahoo.com/,"2435"https://r.search.yahoo.com/,"2437"https://r.search.yahoo.com/,"2440"https://r.search.yahoo.com/,"2441"https://r.search.yahoo.com/,"2447"https://r.search.yahoo.com/,"2453"https://r.search.yahoo.com/,"2459"https://r.search.yahoo.com/,"2461"https://r.search.yahoo.com/,"2462"https://r.search.yahoo.com/,"2464"https://r.search.yahoo.com/,"2467"https://r.search.yahoo.com/,"2468"https://r.search.yahoo.com/,"2472"https://r.search.yahoo.com/,"2477"https://r.search.yahoo.com/,"2481"https://r.search.yahoo.com/,"2484"https://r.search.yahoo.com/,"2486"https://r.search.yahoo.com/,"2492"https://r.search.yahoo.com/,"2493"https://r.search.yahoo.com/,"2496"https://r.search.yahoo.com/,"2497"https://r.search.yahoo.com/,"2498"https://r.search.yahoo.com/,"2499"https://r.search.yahoo.com/,"2504"https://r.search.yahoo.com/,"2506"https://r.search.yahoo.com/,"2510"https://r.search.yahoo.com/,"2511"https://r.search.yahoo.com/,"2512"https://r.search.yahoo.com/,"2517"https://r.search.yahoo.com/,"2526"https://r.search.yahoo.com/,"2527"https://r.search.yahoo.com/,"2531"https://r.search.yahoo.com/,"2532"https://r.search.yahoo.com/,"2534"https://r.search.yahoo.com/,"2542"https://r.search.yahoo.com/,"2544"https://r.search.yahoo.com/,"2552"https://r.search.yahoo.com/,"2555"https://r.search.yahoo.com/,"2559"https://r.search.yahoo.com/,"2563"https://r.search.yahoo.com/,"2564"https://r.search.yahoo.com/,"2567"https://r.search.yahoo.com/,"2568"https://r.search.yahoo.com/,"2569"https://r.search.yahoo.com/,"2571"https://r.search.yahoo.com/,"2572"https://r.search.yahoo.com/,"2573"https://r.search.yahoo.com/,"2575"https://r.search.yahoo.com/,"2577"https://r.search.yahoo.com/,"2579"https://r.search.yahoo.com/,"2583"https://r.search.yahoo.com/,"2584"https://r.search.yahoo.com/,"2586"https://r.search.yahoo.com/,"2589"https://r.search.yahoo.com/,"2595"https://r.search.yahoo.com/,"2596"https://r.search.yahoo.com/,"2597"https://r.search.yahoo.com/,"2601"https://r.search.yahoo.com/,"2604"https://r.search.yahoo.com/,"2605"https://r.search.yahoo.com/,"2609"https://r.search.yahoo.com/,"2610"https://r.search.yahoo.com/,"2612"https://r.search.yahoo.com/,"2614"https://r.search.yahoo.com/,"2621"https://r.search.yahoo.com/,"2622"https://r.search.yahoo.com/,"2624"https://r.search.yahoo.com/,"2628"https://r.search.yahoo.com/,"2629"https://r.search.yahoo.com/,"2632"https://r.search.yahoo.com/,"2634"https://r.search.yahoo.com/,"2636"https://r.search.yahoo.com/,"2639"https://r.search.yahoo.com/,"2643"https://r.search.yahoo.com/,"2645"https://r.search.yahoo.com/,"2646"https://r.search.yahoo.com/,"2647"https://r.search.yahoo.com/,"2649"https://r.search.yahoo.com/,"2650"https://r.search.yahoo.com/,"2651"https://r.search.yahoo.com/,"2652"https://r.search.yahoo.com/,"2656"https://r.search.yahoo.com/,"2657"https://r.search.yahoo.com/,"2658"https://r.search.yahoo.com/,"2660"https://r.search.yahoo.com/,"2661"https://r.search.yahoo.com/,"2662"https://r.search.yahoo.com/,"2663"https://r.search.yahoo.com/,"2664"https://r.search.yahoo.com/,"2669"https://r.search.yahoo.com/,"2670"https://r.search.yahoo.com/,"2673"https://r.search.yahoo.com/,"2676"https://r.search.yahoo.com/,"2677"https://r.search.yahoo.com/,"2678"https://r.search.yahoo.com/,"2681"https://r.search.yahoo.com/,"2682"https://r.search.yahoo.com/,"2684"https://r.search.yahoo.com/,"2685"https://r.search.yahoo.com/,"2686"https://r.search.yahoo.com/,"2689"https://r.search.yahoo.com/,"2690"https://r.search.yahoo.com/,"2691"https://r.search.yahoo.com/,"2695"https://r.search.yahoo.com/,"2698"https://r.search.yahoo.com/,"2699"https://r.search.yahoo.com/,"2702"https://r.search.yahoo.com/,"2704"https://r.search.yahoo.com/,"2705"https://r.search.yahoo.com/,"2706"https://r.search.yahoo.com/,"2707"https://r.search.yahoo.com/,"2709"https://r.search.yahoo.com/,"2710"https://r.search.yahoo.com/,"2713"https://r.search.yahoo.com/,"2714"https://r.search.yahoo.com/,"2727"https://r.search.yahoo.com/,"2729"https://r.search.yahoo.com/,"2739"https://r.search.yahoo.com/,"2758"https://r.search.yahoo.com/,"2765"https://r.search.yahoo.com/,"2766"https://r.search.yahoo.com/,"2767"https://r.search.yahoo.com/,"2768"https://r.search.yahoo.com/,"2770"https://r.search.yahoo.com/,"2771"https://r.search.yahoo.com/,"2772"https://r.search.yahoo.com/,"2776"https://r.search.yahoo.com/,"2777"https://r.search.yahoo.com/,"2778"https://r.search.yahoo.com/,"2779"https://r.search.yahoo.com/,"2780"https://r.search.yahoo.com/,"2783"https://r.search.yahoo.com/,"2784"https://r.search.yahoo.com/,"2786"https://r.search.yahoo.com/,"2787"https://r.search.yahoo.com/,"2791"https://r.search.yahoo.com/,"2792"https://r.search.yahoo.com/,"2793"https://r.search.yahoo.com/,"2797"https://r.search.yahoo.com/,"2798"https://r.search.yahoo.com/,"2801"https://r.search.yahoo.com/,"2802"https://r.search.yahoo.com/,"2803"https://r.search.yahoo.com/,"2805"https://r.search.yahoo.com/,"2808"https://r.search.yahoo.com/,"2809"https://r.search.yahoo.com/,"2810"https://r.search.yahoo.com/,"2811"https://r.search.yahoo.com/,"2812"https://r.search.yahoo.com/,"2813"https://r.search.yahoo.com/,"2814"https://r.search.yahoo.com/,"2817"https://r.search.yahoo.com/,"2818"https://r.search.yahoo.com/,"2824"https://r.search.yahoo.com/,"2826"https://r.search.yahoo.com/,"2827"https://r.search.yahoo.com/,"2829"https://r.search.yahoo.com/,"2830"https://r.search.yahoo.com/,"2831"https://r.search.yahoo.com/,"2832"https://r.search.yahoo.com/,"2834"https://r.search.yahoo.com/,"2836"https://r.search.yahoo.com/,"2838"https://r.search.yahoo.com/,"2840"https://r.search.yahoo.com/,"2842"https://r.search.yahoo.com/,"2843"https://r.search.yahoo.com/,"2844"https://r.search.yahoo.com/,"2850"https://r.search.yahoo.com/,"2851"https://r.search.yahoo.com/,"2852"https://r.search.yahoo.com/,"2854"https://r.search.yahoo.com/,"2858"https://r.search.yahoo.com/,"2860"https://r.search.yahoo.com/,"2862"https://r.search.yahoo.com/,"2864"https://r.search.yahoo.com/,"2865"https://r.search.yahoo.com/,"2866"https://r.search.yahoo.com/,"2867"https://r.search.yahoo.com/,"2868"https://r.search.yahoo.com/,"2869"https://r.search.yahoo.com/,"2871"] }, n = { code: i, gvlid: 165, aliases: ["spotx"], supportedMediaTypes: [c.d], isBidRequestValid: function isBidRequestValid(e) { if (e && "object" !== d(e.params)) return I.logError(i + ": params is not defined or is incorrect in the bidder settings."), !1; if (!I.deepAccess(e, "mediaTypes.video")) return I.logError(i + ": mediaTypes.video is not present in the bidder settings."), !1; var t = I.deepAccess(e, "mediaTypes.video.playerSize"); if (!t || !I.isArray(t)) return I.logError(i + ": mediaTypes.video.playerSize is not defined in the bidder settings."), !1; if (!I.getBidIdParameter("channel_id", e.params)) return I.logError(i + ": channel_id is not present in bidder params"), !1; if (("outstream" == I.deepAccess(e, "mediaTypes.video.context") || "outstream" == I.deepAccess(e, "params.ad_unit")) && !I.getBidIdParameter("outstream_function", e.params)) { if (!I.getBidIdParameter("outstream_options", e.params)) return I.logError(i + ": please define outstream_options parameter or override the default SpotX outstream rendering by defining your own Outstream function using field outstream_function."), !1; if (!I.getBidIdParameter("slot", e.params.outstream_options)) return I.logError(i + ": please define parameters slot outstream_options object in the configuration."), !1; } return !0; }, buildRequests: function buildRequests(e, h) { var y = h.refererInfo.referer, b = !!y.match(/^https:/); return e.map(function (e) { var t = I.getBidIdParameter("channel_id", e.params), r = null, a = I.deepAccess(e, "mediaTypes.video.playerSize"), d = a[0][0], i = a[0][1], n = b || (I.getBidIdParameter("secure", e.params) ? 1 : 0), o = { sdk_name: "Prebid 1+", versionOrtb: "2.3" }; if ("" != I.getBidIdParameter("hide_skin", e.params) && (o.hide_skin = +!!I.getBidIdParameter("hide_skin", e.params)), "" != I.getBidIdParameter("ad_volume", e.params) && (o.ad_volume = I.getBidIdParameter("ad_volume", e.params)), "" != I.getBidIdParameter("ad_unit", e.params) && (o.ad_unit = I.getBidIdParameter("ad_unit", e.params)), "" != I.getBidIdParameter("outstream_options", e.params) && (o.outstream_options = I.getBidIdParameter("outstream_options", e.params)), "" != I.getBidIdParameter("outstream_function", e.params) && (o.outstream_function = I.getBidIdParameter("outstream_function", e.params)), "" != I.getBidIdParameter("custom", e.params) && (o.custom = I.getBidIdParameter("custom", e.params)), "" != I.getBidIdParameter("pre_market_bids", e.params) && I.isArray(I.getBidIdParameter("pre_market_bids", e.params))) { var s = I.getBidIdParameter("pre_market_bids", e.params); for (var p in (o.pre_market_bids = [], s)) { var m = s[p], u = ""; m.vast_url ? u = '‘ + m.vast_url + “” : m.vast_string && (u = m.vast_string), o.pre_market_bids.push({
id: m.deal_id,
seatbid: [{
bid: [{
impid: Date.now(),
dealid: m.deal_id,
price: m.price,
adm: u
}]
}],
cur: m.currency,
ext: {
event_log: [{}]
}
});
}
}

var c = I.getBidIdParameter(“mimes”, e.params) || [“application/javascript”https://r.search.yahoo.com/,”video/mp4″https://r.search.yahoo.com/,”video/webm”],
g = {
id: e.bidId,
secure: n,
video: {
w: d,
h: i,
ext: o,
mimes: c
}
};
“” != I.getBidIdParameter(“price_floor”, e.params) && (g.bidfloor = I.getBidIdParameter(“price_floor”, e.params)), “” != I.getBidIdParameter(“start_delay”, e.params) && (g.video.startdelay = 0 + Boolean(I.getBidIdParameter(“start_delay”, e.params))), “” != I.getBidIdParameter(“min_duration”, e.params) && (g.video.minduration = I.getBidIdParameter(“min_duration”, e.params)), “” != I.getBidIdParameter(“max_duration”, e.params) && (g.video.maxduration = I.getBidIdParameter(“max_duration”, e.params)), “” != I.getBidIdParameter(“placement_type”, e.params) && (g.video.ext.placement = I.getBidIdParameter(“placement_type”, e.params)), “” != I.getBidIdParameter(“position”, e.params) && (g.video.ext.pos = I.getBidIdParameter(“position”, e.params)), e.crumbs && e.crumbs.pubcid && (r = e.crumbs.pubcid);

var _ = navigator.language ? “language” : “userLanguage”,
l = {
h: screen.height,
w: screen.width,
dnt: I.getDNT() ? 1 : 0,
language: navigator[_].split(“-“)[0],
make: navigator.vendor ? navigator.vendor : “”,
ua: navigator.userAgent
},
v = {
id: t,
imp: g,
site: {
id: “”,
page: y,
content: “content”
},
device: l,
ext: {
wrap_response: 1
}
};

I.getBidIdParameter(“number_of_ads”, e.params) && (v.ext.number_of_ads = I.getBidIdParameter(“number_of_ads”, e.params));
var f = {};
return 1 == I.getBidIdParameter(“spotx_all_google_consent”, e.params) && (f.consented_providers_settings = P), h && h.gdprConsent && (f.consent = h.gdprConsent.consentString, void 0 !== h.gdprConsent.gdprApplies && I.deepSetValue(v, “regs.ext.gdpr”, h.gdprConsent.gdprApplies ? 1 : 0)), h && h.uspConsent && I.deepSetValue(v, “regs.ext.us_privacy”, h.uspConsent), e && e.userId && e.userId.id5id && (f.eids = f.eids || [], f.eids.push({
source: “id5-sync.com”,
uids: [{
id: e.userId.id5id
}]
})), r && (f.fpc = r), e && e.schain && (v.source = {
ext: {
schain: e.schain
}
}), e && e.userId && e.userId.tdid && (f.eids = f.eids || [], f.eids.push({
source: “adserver.org”,
uids: [{
id: e.userId.tdid,
ext: {
rtiPartner: “TDID”
}
}]
})), I.isEmpty(f) || (v.user = {
ext: f
}), {
method: “POST”,
url: “https://search.spotxchange.com/openrtb/2.3/dados/” + t,
data: v,
bidRequest: h
};
});
},
interpretResponse: function interpretResponse(e, s) {
var p = [],
m = e.body;
return m && I.isArray(m.seatbid) && I._each(m.seatbid, function (e) {
I._each(e.bid, function (t) {
var e = {};

for (var r in s.bidRequest.bids) {
t.impid == s.bidRequest.bids[r].bidId && (e = s.bidRequest.bids[r]);
}

I._each(e.params.pre_market_bids, function (e) {
e.deal_id == t.id && (t.price = e.price, m.cur = e.currency);
});

var a = {
requestId: e.bidId,
currency: m.cur || “USD”,
cpm: t.price,
creativeId: t.crid || “”,
ttl: 360,
netRevenue: !0,
channel_id: m.id,
cache_key: t.ext.cache_key,
vastUrl: “https://search.spotxchange.com/ad/vast.html?key=” + t.ext.cache_key,
videoCacheKey: t.ext.cache_key,
mediaType: c.d,
width: t.w,
height: t.h
};
a.meta = a.meta || {}, t && t.adomain && 0 < t.adomain.length && (a.meta.advertiserDomains = t.adomain); var d = I.deepAccess(e, "mediaTypes.video.context"), i = I.deepAccess(e, "params.ad_unit"); if ("outstream" == d || "outstream" == i) { var n = I.deepAccess(e, "mediaTypes.video.playerSize"), o = u.a.install({ id: 0, url: "//", config: { adText: "SpotX Outstream Video Ad via Prebid.js", player_width: n[0][0], player_height: n[0][1], content_page_url: I.deepAccess(s, "data.site.page"), ad_mute: +!!I.deepAccess(e, "params.ad_mute"), hide_skin: +!!I.deepAccess(e, "params.hide_skin"), outstream_options: I.deepAccess(e, "params.outstream_options"), outstream_function: I.deepAccess(e, "params.outstream_function") } }); try { o.setRender(g), o.setEventHandlers({ impression: function impression() { return I.logMessage("SpotX outstream video impression event"); }, loaded: function loaded() { return I.logMessage("SpotX outstream video loaded event"); }, ended: function ended() { I.logMessage("SpotX outstream renderer video event"); } }); } catch (e) { I.logWarn("Prebid Error calling setRender or setEve,tHandlers on renderer", e); } a.renderer = o; } p.push(a); }); }), p; } }; function g(e) { var t = function (e) { var t = I.getBidIdParameter("slot", e.renderer.config.outstream_options); I.logMessage("[SPOTX][renderer] Handle SpotX outstream renderer"); var r = window.document.createElement("script"); r.type = "text/javascript", r.src = "https://js.spotx.tv/easi/v1/" + e.channel_id + ".js"; var a = {}; a["data-spotx_channel_id"] = "" + e.channel_id, a["data-spotx_vast_url"] = "" + e.vastUrl, a["data-spotx_content_page_url"] = e.renderer.config.content_page_url, a["data-spotx_ad_unit"] = "incontent", I.logMessage("[SPOTX][renderer] Default beahavior"), I.getBidIdParameter("ad_mute", e.renderer.config.outstream_options) && (a["data-spotx_ad_mute"] = "1"), a["data-spotx_collapse"] = "0", a["data-spotx_autoplay"] = "1", a["data-spotx_blocked_autoplay_override_mode"] = "1", a["data-spotx_video_slot_can_autoplay"] = "1"; var d, i, n, o, s, p, m = I.getBidIdParameter("playersize_auto_adapt", e.renderer.config.outstream_options); m && I.isBoolean(m) && !0 === m && (e.width && I.isNumber(e.width) && e.height && I.isNumber(e.height) ? (d = e.width / e.height, i = window.document.getElementById(t).clientWidth, n = e.renderer.config.player_width, o = e.renderer.config.player_height, p = s = 0, i < n && (o = (n = i) / d), p = d <= 1 ? (s = Math.round(o * d), o) : (s = n, Math.round(n / d)), a["data-spotx_content_width"] = "" + s, a["data-spotx_content_height"] = "" + p) : I.logWarn("[SPOTX][renderer] PlayerSize auto adapt: bid.width and bid.height are incorrect")); var u = I.getBidIdParameter("custom_override", e.renderer.config.outstream_options); if (u && I.isPlainObject(u)) for (var c in (I.logMessage("[SPOTX][renderer] Custom beahavior."), u)) { u.hasOwnProperty(c) && ("channel_id" === c || "vast_url" === c || "content_page_url" === c || "ad_unit" === c ? I.logWarn("[SPOTX][renderer] Custom beahavior: following option cannot be overrided: " + c) : a["data-spotx_" + c] = u[c]); } for (var g in a) { a.hasOwnProperty(g) && r.setAttribute(g, a[g]); } return r; }(e); if (null != e.renderer.config.outstream_function && "function" == typeof e.renderer.config.outstream_function) e.renderer.config.outstream_function(e, t);else try { var r, a, d, i = I.getBidIdParameter("in_iframe", e.renderer.config.outstream_options); i && "IFRAME" == window.document.getElementById(i).nodeName ? (!(a = (r = window.document.getElementById(i)).contentDocument) && r.contentWindow && (a = r.contentWindow.document), a.body.appendChild(t)) : (d = I.getBidIdParameter("slot", e.renderer.config.outstream_options)) && window.document.getElementById(d) ? window.document.getElementById(d).appendChild(t) : window.document.getElementsByTagName("head")[0].appendChild(t); } catch (e) { I.logError("[SPOTX][renderer] Error:" + e.message); } } Object(a.registerBidder)(n); } }, [744]); pbjsChunk([91], { 758: function _(e, t, r) { e.exports = r(759); }, 759: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return i; }); var n = r(1), a = r(0), p = 12, c = 11, u = 0, g = 22, i = { code: "teads", supportedMediaTypes: ["video"https://r.search.yahoo.com/,"banner"], isBidRequestValid: function isBidRequestValid(e) { var t, r, n = !1; return void 0 !== e.params && (t = s(a.getValue(e.params, "placementId")), r = s(a.getValue(e.params, "pageId")), n = t && r), n || a.logError("Teads placementId and pageId parameters are required. Bid aborted."), n; }, buildRequests: function buildRequests(e, t) { var r, n = e.map(f), i = { referrer: function (e) { var t = ""; e && e.refererInfo && e.refererInfo.referer && (t = e.refererInfo.referer); return t; }(t), pageReferrer: document.referrer, networkBandwidth: (r = window.navigator) && r.connection && 0 <= r.connection.downlink ? r.connection.downlink.toString() : "", timeToFirstByte: function (e) { var t = e.performance || e.webkitPerformance || e.msPerformance || e.mozPerformance, r = t && "function" == typeof t.getEntriesByType && "[object Function]" === Object.prototype.toString.call(t.getEntriesByType) && t.getEntriesByType("navigation")[0] && t.getEntriesByType("navigation")[0].responseStart && t.getEntriesByType("navigation")[0].requestStart && 0 <= t.getEntriesByType("navigation")[0].responseStart && 0 <= t.getEntriesByType("navigation")[0].requestStart && Math.round(t.getEntriesByType("navigation")[0].responseStart - t.getEntriesByType("navigation")[0].requestStart); if (r) return r.toString(); var n = t && t.timing.responseStart && t.timing.requestStart && 0 <= t.timing.responseStart && 0 <= t.timing.requestStart && t.timing.responseStart - t.timing.requestStart; return n ? n.toString() : ""; }(window), data: n, deviceWidth: screen.width, hb_version: "4.7.0" }; e[0].schain && (i.schain = e[0].schain); var a, s, o, d = t.gdprConsent; return t && d && (a = "boolean" == typeof d.gdprApplies, s = "string" == typeof d.consentString, o = a ? function (e, t, r) { var n = p; e ? function (e, t) { return e && 1 === t ? e.hasGlobalScope || e.hasGlobalConsent : !(!e || 2 !== t) && !e.isServiceSpecific; }(t, r) && (n = c) : n = u; return n; }(d.gdprApplies, d.vendorData, d.apiVersion) : g, i.gdpr_iab = { consent: s ? d.consentString : "", status: o, apiVersion: d.apiVersion }), t && t.uspConsent && (i.us_privacy = t.uspConsent), { method: "POST", url: "https://a.teads.tv/hb/bid-request", data: JSON.stringify(i) }; }, interpretResponse: function interpretResponse(e) { var r = []; return (e = e.body).responses && e.responses.forEach(function (e) { var t = { cpm: e.cpm, width: e.width, height: e.height, currency: e.currency, netRevenue: !0, ttl: e.ttl, ad: e.ad, requestId: e.bidId, creativeId: e.creativeId, placementId: e.placementId }; e.dealId && (t.dealId = e.dealId), r.push(t); }), r; } }; function f(e) { var t, r = {}, n = a.getValue(e.params, "placementId"), i = a.getValue(e.params, "pageId"); return r.sizes = (t = e, a.parseSizesInput(function (e) { var t = a.deepAccess(e, "mediaTypes.video.playerSize"), r = a.deepAccess(e, "mediaTypes.video.sizes"), n = a.deepAccess(e, "mediaTypes.banner.sizes"); return a.isArray(n) || a.isArray(t) || a.isArray(r) ? [n, r, t].reduce(function (t, e) { return a.isArray(e) && (a.isArray(e[0]) ? e.forEach(function (e) { t.push(e); }) : t.push(e)), t; }, []) : e.sizes; }(t))), r.bidId = a.getBidIdParameter("bidId", e), r.bidderRequestId = a.getBidIdParameter("bidderRequestId", e), r.placementId = parseInt(n, 10), r.pageId = parseInt(i, 10), r.adUnitCode = a.getBidIdParameter("adUnitCode", e), r.auctionId = a.getBidIdParameter("auctionId", e), r.transactionId = a.getBidIdParameter("transactionId", e), r; } function s(e) { return 0 < parseInt(e); } Object(n.registerBidder)(i); } }, [758]); pbjsChunk([82], { 778: function _(e, r, t) { e.exports = t(779); }, 779: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "tripleliftAdapterSpec", function () { return y; }); var n = t(2), i = t(1), u = t(0), o = t(3); function p(e) { return (p = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) { return _typeof(e); } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); })(e); } function a(r, e) { var t, n = Object.keys(r); return Object.getOwnPropertySymbols && (t = Object.getOwnPropertySymbols(r), e && (t = t.filter(function (e) { return Object.getOwnPropertyDescriptor(r, e).enumerable; })), n.push.apply(n, t)), n; } function c(i) { for (var e = 1; e < arguments.length; e++) { var o = null != arguments[e] ? arguments[e] : {}; e % 2 ? a(Object(o), !0).forEach(function (e) { var r, t, n; r = i, n = o[t = e], t in r ? Object.defineProperty(r, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : r[t] = n; }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(i, Object.getOwnPropertyDescriptors(o)) : a(Object(o)).forEach(function (e) { Object.defineProperty(i, e, Object.getOwnPropertyDescriptor(o, e)); }); } return i; } function d(e) { return function (e) { if (Array.isArray(e)) return s(e); }(e) || function (e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e); }(e) || function (e, r) { if (!e) return; if ("string" == typeof e) return s(e, r); var t = Object.prototype.toString.call(e).slice(8, -1); "Object" === t && e.constructor && (t = e.constructor.name); if ("Map" === t || "Set" === t) return Array.from(e); if ("Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return s(e, r); }(e) || function () { throw new TypeError("Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function s(e, r) { (null == r || r > e.length) && (r = e.length);

for (var t = 0, n = new Array(r); t < r; t++) { n[t] = e[t]; } return n; } var f = !0, l = null, y = { code: "triplelift", supportedMediaTypes: [n.b, n.d], isBidRequestValid: function isBidRequestValid(e) { if (e.mediaTypes.video) { var r = m(e); if (!r.w || !r.h) return !1; } return void 0 !== e.params.inventoryCode; }, buildRequests: function buildRequests(e, r) { var t, n = "https://tlx.3lift.com/header/auction?", i = function (e) { var r = {}, t = e[0].schain; r.imp = e.map(function (e, r) { var t = { id: r, tagid: e.params.inventoryCode, floor: function (e) { var r = null; { var t; "function" == typeof e.getFloor && ("object" !== p(t = e.getFloor({ currency: "USD", mediaType: "banner", size: g(e.sizes) })) || "USD" !== t.currency || isNaN(parseFloat(t.floor)) || (r = parseFloat(t.floor))); } return null !== r ? r : e.params.floor; }(e) }; return e.mediaTypes.video ? t.video = m(e) : e.mediaTypes.banner && (t.banner = { format: g(e.sizes) }), t; }); var n = [].concat(d(function (e) { return b(e, "tdid"https://r.search.yahoo.com/,"adserver.org"https://r.search.yahoo.com/,"TDID"); }(e)), d(function (e) { return b(e, "idl_env"https://r.search.yahoo.com/,"liveramp.com"https://r.search.yahoo.com/,"idl"); }(e)), d(function (e) { return b(e, "criteoId"https://r.search.yahoo.com/,"criteo.com"https://r.search.yahoo.com/,"criteoId"); }(e))); 0 < n.length && (r.user = { ext: { eids: n } }); t && (r.ext = { schain: t }); return r; }(e); return n = u.tryAppendQueryString(n, "lib"https://r.search.yahoo.com/,"prebid"), n = u.tryAppendQueryString(n, "v"https://r.search.yahoo.com/,"4.7.0"), r && r.refererInfo && (t = r.refererInfo.referer, n = u.tryAppendQueryString(n, "referrer", t)), r && r.timeout && (n = u.tryAppendQueryString(n, "tmax", r.timeout)), r && r.gdprConsent && (void 0 !== r.gdprConsent.gdprApplies && (f = r.gdprConsent.gdprApplies, n = u.tryAppendQueryString(n, "gdpr", f.toString())), void 0 !== r.gdprConsent.consentString && (l = r.gdprConsent.consentString, n = u.tryAppendQueryString(n, "cmp_cs", l))), r && r.uspConsent && (n = u.tryAppendQueryString(n, "us_privacy", r.uspConsent)), !0 === o.b.getConfig("coppa") && (n = u.tryAppendQueryString(n, "coppa", !0)), n.lastIndexOf("&") === n.length - 1 && (n = n.substring(0, n.length - 1)), u.logMessage("tlCall request built: " + n), { method: "POST", url: n, data: i, bidderRequest: r }; }, interpretResponse: function interpretResponse(e, r) { var t = r.bidderRequest; return (e.body.bids || []).map(function (e) { return function (e, r) { var t = {}, n = r.width || 1, i = r.height || 1, o = r.deal_id || "", u = r.crid || "", p = e.bids[r.imp_id]; 0 != r.cpm && r.ad && (t = { requestId: p.bidId, cpm: r.cpm, width: n, height: i, netRevenue: !0, ad: r.ad, creativeId: u, dealId: o, currency: "USD", ttl: 300, tl_source: r.tl_source }, p.mediaTypes.video && (t.vastXml = r.ad, t.mediaType = "video")); return t; }(t, e); }); }, getUserSyncs: function getUserSyncs(e, r, t, n) { var i = function (e) { if (!e) return; if (e.iframeEnabled) return "iframe"; if (e.pixelEnabled) return "image"; }(e); if (i) { var o = "https://eb2.3lift.com/sync?"; return "image" === i && (o = u.tryAppendQueryString(o, "px", 1), o = u.tryAppendQueryString(o, "src"https://r.search.yahoo.com/,"prebid")), null !== l && (o = u.tryAppendQueryString(o, "gdpr", f), o = u.tryAppendQueryString(o, "cmp_cs", l)), n && (o = u.tryAppendQueryString(o, "us_privacy", n)), [{ type: i, url: o }]; } } }; function m(e) { var r = c(c({}, e.params.video), e.mediaTypes.video); return r.w || (r.w = r.playerSize[0][0]), r.h || (r.h = r.playerSize[0][1]), "instream" === r.context && (r.placement = 1), delete r.playerSize, r; } function b(e, r, t, n) { return e.map((u = r, function (e) { return e && e.userId && e.userId[u]; })).filter(function (e) { return !!e; }).map((i = t, o = n, function (e) { return { source: i, uids: [{ id: e, ext: { rtiPartner: o } }] }; })); var i, o, u; } function g(e) { return e.filter(v).map(function (e) { return { w: e[0], h: e[1] }; }); } function v(e) { return 2 === e.length && "number" == typeof e[0] && "number" == typeof e[1]; } Object(i.registerBidder)(y); } }, [778]); pbjsChunk([80], { 782: function _(e, r, t) { e.exports = t(783); }, 783: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "spec", function () { return v; }); var m = t(0), s = t(1), o = t(11), c = t(2), f = "Bid from response has no auid parameter - ", l = "Bid from response has no adm parameter - ", p = "Array of bid objects is empty", g = "Can't find in requested bids the bid with auid - ", u = "Seatbid array from response has empty item", y = "Response is empty", b = "Response has empty seatbid array", h = "Seatbid from response has no array of bid objects - ", v = { code: "trustx", supportedMediaTypes: [c.b, c.d], isBidRequestValid: function isBidRequestValid(e) { return !!e.params.uid; }, buildRequests: function buildRequests(e, r) { var a, o, p = [], u = {}, c = {}, f = {}, l = "net"; (e || []).forEach(function (e) { "gross" === e.params.priceType && (l = "gross"), o = e.bidderRequestId; var r = e.params.uid, t = e.adUnitCode; p.push(r); var s, n = m.parseSizesInput(e.sizes); a || m.isEmpty(e.params.keywords) || (0 < (s = m.transformBidderParamKeywords(e.params.keywords)).length && s.forEach(E), a = s), c[r] || (c[r] = {}); var d = c[r]; d[t] ? d[t].bids.push(e) : d[t] = { adUnitCode: t, bids: [e], parents: [] }; var i = d[t]; n.forEach(function (e) { f[e] = !0, u[r] || (u[r] = {}), u[r][e] ? u[r][e].push(i) : u[r][e] = [i], i.parents.push({ parent: u[r], key: e, uid: r }); }); }); var t = { pt: l, auids: p.join(","), sizes: m.getKeys(f).join(","), r: o, wrapperType: "Prebid_js", wrapperVersion: "4.7.0" }; return a && (t.keywords = JSON.stringify(a)), r && (r.refererInfo && r.refererInfo.referer && (t.u = r.refererInfo.referer), r.timeout && (t.wtimeout = r.timeout), r.gdprConsent && (r.gdprConsent.consentString && (t.gdpr_consent = r.gdprConsent.consentString), t.gdpr_applies = "boolean" == typeof r.gdprConsent.gdprApplies ? Number(r.gdprConsent.gdprApplies) : 1), r.uspConsent && (t.us_privacy = r.uspConsent)), { method: "GET", url: "https://sofia.trustx.org/hb", data: m.parseQueryStringParameters(t).replace(/&$/, ""), bidsMap: u }; }, interpretResponse: function interpretResponse(e, r, t) { var s = 2 < arguments.length && void 0 !== t ? t : o.a; e = e && e.body; var n, d = [], i = r.bidsMap, a = r.data.pt; return e ? e.seatbid && !e.seatbid.length && (n = b) : n = y, !n && e.seatbid && e.seatbid.forEach(function (e) { !function (e, d, r, t, s) { if (!e) return; var n; e.auid || (n = f + JSON.stringify(e)); { var i, a, o, p, u; e.adm ? (i = d[e.auid]) ? (a = "".concat(e.w, "x").concat(e.h), i[a] && (o = i[a][0], p = o.bids.shift(), u = { requestId: p.bidId, bidderCode: v.code, cpm: e.price, width: e.w, height: e.h, creativeId: e.auid, currency: "USD", netRevenue: "gross" !== r, ttl: 360, dealId: e.dealid }, "video" === e.content_type ? (u.vastXml = e.adm, u.mediaType = c.d, u.adResponse = { content: u.vastXml }, p.renderer || p.mediaTypes && p.mediaTypes.video && "outstream" !== p.mediaTypes.video.context || (u.renderer = function (e, r) { var t = r.install({ id: e.id, url: e.url, loaded: !1 }); try { t.setRender(w); } catch (e) { m.logWarn("Prebid Error calling setRender on renderer", e); } return t; }({ id: p.bidId, url: "https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js" }, s))) : (u.ad = e.adm, u.mediaType = c.b), t.push(u), o.bids.length || o.parents.forEach(function (e) { var r = e.parent, t = e.key, s = e.uid, n = r[t].indexOf(o); -1 < n && r[t].splice(n, 1), r[t].length || (delete r[t], m.getKeys(r).length || delete d[s]); }))) : n = g + e.auid : n = l + JSON.stringify(e); } n && m.logError(n); }(function (e) { e ? e.bid ? e.bid[0] || m.logError(p) : m.logError(h + JSON.stringify(e)) : m.logError(u); return e && e.bid && e.bid[0]; }(e), i, a, d, s); }), n && m.logError(n), d; }, getUserSyncs: function getUserSyncs(e) { if (e.pixelEnabled) return [{ type: "image", url: "https://sofia.trustx.org/push_sync" }]; } }; function E(e) { var r; r = e.value, m.isArray(r) && 0 < r.length && "" === e.value[0] && delete e.value; } function w(e) { e.renderer.push(function () { window.ANOutstreamVideo.renderAd({ targetId: e.adUnitCode, adResponse: e.adResponse }); }); } Object(s.registerBidder)(v); } }, [782]); pbjs.processQueue(); }, {}]; window.modules["via.legacy"] = [function(require,module,exports){"use strict"; DS.service("via", function () { "use strict"; // remove `via` from url, to be used after amplitude logs it to prevent users from sharing such urls function removeFromLocation() { var url = new URL(location.href); url.searchParams.delete("via"); history.replaceState(null, "", url.toString()); } // and add `via` param to any outbound links function addViaToUrl(href, via) { if (!href || href.substr(0, 1) === "#") { return href; // don't add to jumps on the current page, e.g. "Skip to main content" } var url = new URL(href); var apexDomain = new URL(location.href).hostname.split(".").slice(-2).join("."); if (url.hostname.indexOf(apexDomain) === -1) { return href; // don't add it to external links } url.searchParams.set("via", via); return url.toString(); } // keys correspond to "page_types" in editable_components.yml var PREFIXES = { article: "article", homepage: "homepage", "vertical front": "section", "rubric front": "rubric" }; var pageType; function setPageType(amplitudePageType) { pageType = PREFIXES[amplitudePageType]; } var DELIMITER = "_"; function concatVia(node, via) { var tag = node.dataset && node.dataset.via; if (tag) { via = (via.length ? tag + DELIMITER : tag) + via; } return via; } function addToClickedLinks() { document.documentElement.addEventListener("click", function (e) { var a; var via = ""; // detect link nodes and collect via directives to append to the href var node = e.target; // the element where this event originated may have been removed from the dom, e.g. in the case of the OIL CMP which disappears after you interact with it while (node && node !== e.currentTarget) { if (node.tagName === "A") { a = node; } via = concatVia(node, via); node = node.parentNode; } if (a && via) { if (pageType) { via = pageType + DELIMITER + via; } a.href = addViaToUrl(a.href, via); } }); } function addToSubmittedForms() { document.documentElement.addEventListener("submit", function (e) { var form = e.target; // collect via directives var via = ""; var node = e.target; while (node !== e.currentTarget) { via = concatVia(node, via); node = node.parentNode; } if (via) { if (pageType) { via = pageType + DELIMITER + via; } // dynamically create a hidden input for the form url var input = document.createElement("input"); input.type = "hidden"; input.name = "via"; input.value = via; form.appendChild(input); } }); } // start listening only once, when first injected addToClickedLinks(); addToSubmittedForms(); return { setPageType: setPageType, removeFromLocation: removeFromLocation }; }); }, {}]; window.modules["visibility.legacy"] = [function(require,module,exports){"use strict"; DS.service("$visibility", ["$document"https://r.search.yahoo.com/,"$window"https://r.search.yahoo.com/,"_throttle"https://r.search.yahoo.com/,"Eventify", function ($document, $window, _throttle, Eventify) { var list = [], Visible, VisibleEvent; /** * @param {number} a * @param {number} b * @returns {*} * @see http://jsperf.com/math-min-vs-if-condition-vs/8 */ function min(a, b) { return a < b ? a : b; } /** * @param {number} a * @param {number} b * @returns {*} * @see http://jsperf.com/math-min-vs-if-condition-vs/8 */ function max(a, b) { return a > b ? a : b;
}
/**
* Fast loop through watched elements
*/

function onScroll() {
list.forEach(updateVisibility);
}
/**
* updates seen property
* @param {Visble} item
* @param {{}} evt
* @fires Visible#shown
* @fires Visible#hidden
*/

function updateSeen(item, evt) {
var px = evt.visiblePx,
percent = evt.visiblePercent; // if some pixels are visible and we’re greater/equal to threshold

if (px && percent >= item.shownThreshold && !item.seen) {
item.seen = true;
setTimeout(function () {
item.trigger(“shown”, new VisibleEvent(“shown”, evt));
}, 15); // if no pixels or percent is less than threshold
} else if ((!px || percent < item.hiddenThreshold) && item.seen) { item.seen = false; setTimeout(function () { item.trigger("hidden", new VisibleEvent("hidden", evt)); }, 15); } } /** * sets preload property * @param {Visible} item * @param {{}} evt * @param {Number} innerHeight * @fires Visible#preload */ function updatePreload(item, evt, innerHeight) { if (!item.preload && item.preloadThreshhold && shouldBePreloaded(evt.target, evt.rect, item.preloadThreshhold, innerHeight)) { item.preload = true; setTimeout(function () { item.trigger("preload", new VisibleEvent("preload", evt)); }, 15); } } /** * Trigger events * @param {Visible} item */ function updateVisibility(item) { var rect = item.el.getBoundingClientRect(), innerHeight = $window.innerHeight || $document.documentElement.clientHeight, px = getVerticallyVisiblePixels(rect, innerHeight), percent = px / (rect.height || innerHeight), evt = { target: item.el, rect: rect, visiblePx: px, visiblePercent: percent }; updateSeen(item, evt); updatePreload(item, evt, innerHeight); } /** * Return normalized viewport height * @return {number} */ function getViewportHeight() { return $window.innerHeight || $document.documentElement.clientHeight || $document.body.clientHeight; } /** * Return normalized viewport width * @return {number} */ function getViewportWidth() { return $window.innerWidth || $document.documentElement.clientWidth || $document.body.clientWidth; } /** * make sure an element isn't hidden by styles or etc * @param {Element} el * @return {Boolean} */ function isElementNotHidden(el) { return el && el.offsetParent !== null && !el.getAttribute("hidden") && getComputedStyle(el).display !== "none" && getComputedStyle(el).visibility !== "hidden"; } /** * Apparently the fastest way... * @param {Element} el * @returns {boolean} * @example if (!$visibility.isElementInViewport(el)) { ... } */ function isElementInViewport(el) { var rect = el.getBoundingClientRect(); return rect.top >= 0 && rect.left >= 0 && rect.bottom <= ($window.innerHeight || $document.documentElement.clientHeight) && rect.right <= ($window.innerWidth || $document.documentElement.clientWidth); } /** * @param {Element} el * @param {ClientRect} rect * @param {Number} preloadThreshhold * @param {Number} innerHeight * @return {Boolean} */ function shouldBePreloaded(el, rect, preloadThreshhold, innerHeight) { return rect.top <= innerHeight + preloadThreshhold && isElementNotHidden(el); } /** * Create a one-dimensional spacial hash of x * @param {number} x * @param {number} stepSize * @param {number} optimalK * @param {number} base * @return {number} */ function getLinearSpacialHash(x, stepSize, optimalK, base) { var index = Math.floor(x / (stepSize || 1)), remainder = x % stepSize, result = index.toString(base); if (optimalK > 1) {
result += getLinearSpacialHash(remainder, Math.floor(stepSize / base), optimalK – 1, base);
}

return result;
}
/**
* @param {ClientRect} rect
* @param {number} innerHeight
* @returns {number}
*/

function getVerticallyVisiblePixels(rect, innerHeight) {
return min(innerHeight, max(rect.bottom, 0)) – min(max(rect.top, 0), innerHeight);
}
/**
* Get offset of element relative to entire page
*
* @param {Element} el
* @returns {{left: number, top: number}}
* @see http://jsperf.com/offset-vs-getboundingclientrect/7
*/

function getPageOffset(el) {
var offsetLeft = el.offsetLeft,
offsetTop = el.offsetTop;

while (el = el.offsetParent) {
offsetLeft += el.offsetLeft;
offsetTop += el.offsetTop;
}

return {
left: offsetLeft,
top: offsetTop
};
}
/**
* Create a new Visible class to observe when elements enter and leave the viewport
*
* Call destroy function to stop listening (this is until we have better support for watching for Node Removal)
* @param {Element} el
* @param {{shownThreshold: number, hiddenThreshold: number}} [options]
* @class
* @example this.visible = new $visibility.Visible(el);
*/

Visible = function Visible(el, options) {
options = options || {};
this.el = el;
this.seen = false;
this.preload = false;
this.preloadThreshhold = options && options.preloadThreshhold || 0;
this.shownThreshold = options && options.shownThreshold || 0;
this.hiddenThreshold = options && min(options.shownThreshold, options.hiddenThreshold) || 0;
list.push(this);
updateVisibility(this); // set immediately to visible or not
};

Visible.prototype = {
/**
* Stop triggering.
*/
destroy: function destroy() {
// remove from list
list.splice(list.indexOf(this), 1);
}
/**
* @name Visible#on
* @function
* @param {‘shown’|’hidden’} e EventName
* @param {function} cb Callback
*/

/**
* @name Visible#trigger
* @function
* @param {‘shown’|’hidden’} e
* @param {{}}
*/

};
Eventify.enable(Visible.prototype);

VisibleEvent = function VisibleEvent(type, options) {
var _this = this;

this.type = type;
Object.keys(options).forEach(function (key) {
_this[key] = options[key];
});
}; // listen for scroll events (throttled)

$document.addEventListener(“scroll”, _throttle(onScroll, 200)); // public

this.getPageOffset = getPageOffset;
this.getLinearSpacialHash = getLinearSpacialHash;
this.getVerticallyVisiblePixels = getVerticallyVisiblePixels;
this.getViewportHeight = getViewportHeight;
this.getViewportWidth = getViewportWidth;
this.isElementNotHidden = isElementNotHidden;
this.isElementInViewport = isElementInViewport;
this.Visible = Visible;
}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==”function”&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(“Cannot find module ‘”+o+”‘”);throw f.code=”MODULE_NOT_FOUND”,f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==”function”&&require;for(var o=0;o

Source Article