Pro-choice abortion movement: The women left behind.

White arms hold up a "Keep abortion legal" sign in front of the Supreme Court building, amid a crowd of other protesters.
Pro-choice activists demonstrate outside the Supreme Court in Washington on March 4.
Saul Loeb/Getty Images

Subscribe to What Next on Apple Podcasts for the full episode.

As we watch the Senate rush to confirm Amy Coney Barrett to the Supreme Court this week, many people are worried about what her seating on the court will mean for Roe v. Wade and the right to abortion. But reproductive justice activist Laurie Bertram Roberts says we should have already been worried, like, 20 years ago. “I’m serious. We should have been worrying in the ’90s,” Roberts told me on Monday’s episode of What Next.

Laurie Bertram Roberts wasn’t always on this side of the issue. She was raised fundamentalist, but after suffering a miscarriage and later needing an abortion herself (one she was unable to obtain), she became a champion for reproductive rights. She’s spent much of her life straddling the poverty line as a working mother. Roberts now splits her time between Mississippi and Alabama, where she’s running two separate reproductive freedom funds—organizations that offer no-strings-attached cash to women who need help getting an abortion, diapers for their kids, or contraception. I spoke to her about what the pro-choice movement misses and how to avoid complacency in the fight to come. Our conversation has been edited and condensed for clarity.

Mary Harris: How did your views on abortion begin to evolve?

Laurie Bertram Roberts: I needed an abortion. So let me rewind. First, the thing that happened was I had a miscarriage at our biggest hospital in the area, which was a Catholic hospital in Indiana called St. Anthony’s. When I went in there the first time, I just had some light-pink discharge and they said, Well, you’re not bleeding yet. If you start bleeding, come back and we’ll do an ultrasound. But right now, you’re not miscarrying. Go home. And I didn’t have insurance, so I wasn’t really keen on going to the E.R. a bunch of times. But within a few hours, I was bleeding pretty heavily. So I came back and they did an ultrasound and they found a heartbeat, but it was a weak heartbeat. And they said, Well, you’re miscarrying. There’s nothing we can do for you because there’s a heartbeat. Go home.

Because it’s a Catholic hospital. And they weren’t allowed to do an abortion.

A D and C [dilation and curettage]. Yup. Because that’s an abortion. And I didn’t fully understand that at the time. But I do remember my husband saying to me, “They won’t help you because they’re Catholic.” And I didn’t fully understand what he was saying at the time. And I went home and within a few hours I was hemorrhaging and I didn’t want to go back because I didn’t think they were going to help me. And I ended up almost bleeding to death.

Was that the beginning of you thinking differently about abortion?

Oh, yes, because I realized that they literally let me almost die over their beliefs about abortion. So time goes forward and my ex and I break up and we’re separated. I got pregnant shortly after we got separated. We had just had a baby. My daughter Sarah. She’s amazing. And I found myself pregnant, and my doctor had already told me, Don’t have another baby, at least for two years, or it could kill you because I had complications with all my pregnancies. And I really had decided I was going to have an abortion. I went for my first appointment. I had made the appointment for the procedure.

That must have felt like a big step for you.

It was. I did a lot of praying and crying. I mean, a lot.

But in the end, you didn’t end up getting an abortion because you didn’t have the money for it.

I was a turn-away patient. I remember crying at the clinic going, “Don’t you guys have any help for people who don’t have enough money?” And they didn’t. There wasn’t anyone to help me.

You were 18 years old, trying to start college. You were recently separated. You had three kids at home. You were about to have your fourth, even though your doctor had said it was unadvisable.

So more praying, more crying. I love my child. They know this story. They understand. But I kept this story to myself for years because I felt so guilty. How dare I not want my child? What does that say about me? But I know I’m not the only person with this story. Turn-away patients happen all the time. And the trauma that it causes for you, right? My family and I ended up homeless that next year. Babies cost money. C-sections mean you gotta stop working. I stopped going to school.

That’s such a visceral experience. It feels so divorced from the way we talk about abortion on the Supreme Court or in Washington.

When we talk about abortion, we always talk about people who get their abortions. We don’t really talk about what happens when people don’t get their abortions because people aren’t willing to tell those stories, because like me, they feel like if they tell that story, it means that they didn’t love their kid. But that’s not true.

You eventually moved down South and started working with the local chapter of the National Organization for Women, starting as a secretary and eventually becoming president of the Mississippi chapter. You would go to national board meetings and meet with fellow activists from all over the country. What was that like?

We would meet up and we’d have these long three-day meetings. Very few of us are women of color. But I spent a lot of time going, “Excuse me. Well, that’s not really true for women in Mississippi.” “Well, excuse me. That’s not really true for rural women.” “Excuse me. Well, that’s not true for people who are low income.” That was pretty much what I did at every meeting, was just remind them that there were people other than them in the world.

So it was very coastal and very white.

Yeah, it was a lot of older white women who were of a certain income bracket who had big blind spots when it came to race and class.

There’s been so much hand-wringing about how the pro-choice movement reached this place where we are one Supreme Court appointment away from Roe v. Wade falling. I wonder if you look back at your time on the board of an organization like NOW, and you see the problems? You see that the folks who are doing the sort of Washington strategic work weren’t necessarily talking to folks like you.

It wasn’t that they weren’t talking to people like me. It’s that they weren’t listening. People like me were at the tables and have been at the tables for years. And then people like me walk away from the tables because people aren’t listening. And honestly, it goes back even before this. This goes all the way back to women’s suffrage and white women co-opting feminism. They set what the agenda is.

What were they leaving out? 

They were leaving out, like, Medicaid expansion. Medicaid expansion is a major thing in states that don’t have it. It impacts maternal health. It impacts senior health. It impacts general health of the community.

Do you want to just explain what exactly an abortion fund like yours does?

So you call us or you text us, because sometimes we do stuff by text, especially for domestic violence victims. For example, we had a domestic violence victim where it took us three weeks to get her set up because she could only text on the sly when her abuser wasn’t paying attention.

So when someone calls us, we find out how far along they are and if we can assist them. Are you from Mississippi? Where do you live? What exactly do you need? How much money do you need toward your procedure? Do you need travel money? If they’re really early, sometimes we’ll see if they have a couple pay periods that they can wait, that they can put together some more money. So we’re really strategizing with them on all of these things. We book their hotel. We make sure to pay for their incidentals online already so they don’t have to put up a credit card. Sometimes we’re booking Ubers for people. Sometimes we’re picking people up. Lately, because of COVID, we’re not picking people up. Sometimes we’re flying out of state with people. Sometimes we’re doing long-distance abortion doula services. We’re in constant contact with them. Someone is on call for them 24 hours a day from the time that they leave the state till the time they come home; there’s someone specifically assigned to them to be on call.

In every profile I’ve read of you, there’s this moment where the reporter talks about the breadth of the work that you do. We’re talking about funding abortions, but that’s not all of the work that you do. After an abortion, you’ll take a woman to Red Lobster to have something to eat, or you’ll get a stroller for the woman down the street who’s worried that child protective services is going to come do an inspection of her house, or you have a diaper bank for people who need that kind of help. Do you think a lot about why it is that supporting parents is seen as so divorced from everything else about sex, like abortion?

I think about it a lot, and I think about how absurd it is. I don’t think they’re separate issues. I think it’s all connected, especially considering most of the people who call us are already parents. So I don’t think you can talk about abortion without talking about parenting, especially since parenting is one of the options that they have.

A lot of people who are pro-choice think that if we talk about parenting in the same context as abortion, then somehow we’re ceding some kind of ground to the anti-choicers. I don’t feel that way. I don’t want anyone to ever have an abortion they don’t want. I don’t want anyone to have to parent if they don’t want to. And I don’t want anyone to ever go into an adoption that they’ll regret. So when we talk about people having all of their options on the table, we want all of those options to be without stigma and without coercion. And I don’t feel like there are unequal options. Even people who say they’re on our side somehow still think of parenting as the good option and abortion as this other option—and that they’re divorced from each other. But a lot of our parents are coming to have an abortion because they’re good parents, because they see having another child as something that’s not going to be beneficial to their family.

Do you think about the day after Roe ends and what happens then?

Only for the last eight years.

I guess we should be pretty clear about the implications. My understanding is that in Mississippi, where you were, there’s a trigger law.

In Alabama too.

So if Roe is overturned, that means full stop on abortion right away.

Yep. And one of the reasons it’s important to own a clinic [like the one my fund, the Yellowhammer Fund, bought in Alabama earlier this year] is to expand the services so that if a trigger ban happens, they can still be open and sustained, doing full reproductive care: contraception, OB-GYN, trans health care.

Buying a clinic is a hedge in some ways—making a commitment that this will not be shut down.

That’s our hope. We’ve been thinking about: How do we address these things? How do we talk about self-managed abortion in responsible ways? How do we start working on making sure people aren’t going to be criminalized if they’re engaging in self-managed abortion?

You’ve said that people should consider hoarding misoprostol.

Yeah, I wasn’t joking.

You said people need to prepare for a future outside of clinics, too?

I’m talking about midwifery-centered care, a midwifery-centered model that is more inclusive of people who cannot easily come to clinics. People like me who have severe fibromyalgia and can’t always make it to a clinic. People in the undocumented community who are not always safe coming to clinics due to stuff like roadblocks or lack of accessibility to a driver’s license. And I’m not even talking about abortion care per se. I’m hoping that we get to a place where telemed for abortion care is accessible to people, and to get to that place on the state levels, we’re going to need to shift statehouses and governorships. And that’s going to take a minute. But in the meantime, we need to be talking about: What does autonomous pelvic health care look like in a community setting? What does teaching people about birth control look like in the community setting so that they’re prepared to go to their doctor and they don’t settle for being offered three options when there’s really a plethora of options, which is happening to poor women every day?

Listening to you talk about women-centered care and midwifery, it almost sounds like going back in time, because my understanding is that in the 1800s, many women manage their pregnancies with midwives and midwives were doing abortions. And 100-plus years later, we are where we are.

And there’s actually no medical reason why midwives can’t perform abortions, if we’re being honest. Midwives already do miscarriage management. So there is no reason why a midwife could not handle a first-term abortion. The only reason that access is cut off and why primary care doctors are not handling medical abortions in office is because of laws on the books, like if you provide more than 10 abortions a year, you’re an abortion clinic. We have allowed abortion to be sectioned off away from the rest of health care. We’ve made it this stigmatized, sectioned-off, ostracized part of health care.

Subscribe to What Next on Apple Podcasts

Get more news from Mary Harris every weekday.

');
}

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

nn")), 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

Next Post

How to Move to Australia: Guide to Visas, Work, Residency & More

Tue Oct 27 , 2020
Explore the world’s best beaches. Maybe befriend koalas. In January of 2018, I did the unthinkable: left my full-time editor job and swanky NYC apartment, sold or donated everything I owned, and began my digital-nomad adventure. After backpacking around Southeast Asia for two months, I managed to spend an incredible […]

You May Like