When your spouse is in a “Karen” video, and extra recommendation from Expensive Prudie.

0
39
When your wife is in a “Karen” video, and more advice from Dear Prudie.
Close-up on the mouth of a woman screaming, with a red recording icon in the top right corner.
Picture illustration by Slate. Picture by Penelope Graßhoff/iStock/Getty Photographs Plus.

Danny is on-line weekly to talk dwell with readers. Right here’s an edited transcript of this week’s chat.

Q. My spouse was in a “Karen” video: My spouse was in a really tense state of affairs a couple of month in the past when she was at a park in our hometown. After making an attempt to steadiness a full-time job whereas caring for our three kids for 4 months, she actually simply sort of misplaced it. She snapped. My spouse is now the topic of a “Karen” video that made the rounds final month in our city (fortunately it didn’t unfold past that). She was, and nonetheless is, horrified by her conduct. She is searching for counseling for each the “snap” and the underlying ideas and attitudes that got here out within the video.

Within the meantime, how will we get again our regular life? Many people round city are understandably freezing us out, and a few of my children’ pals’ mother and father are refusing play dates. That is solely including to the loneliness and isolation our household had already been feeling due to the pandemic. I hate to see my children struggling due to my spouse’s unconscionable actions. In need of shifting to a brand new city, what can we do to rebuild the relationships that used to maintain us grounded on this terrible time?

A: Presumably your “normal” life was the one the place your spouse was making an attempt to steadiness a full-time job whereas caring in your three kids, a state of affairs that so overwhelmed her that she “snapped,” so I don’t assume you have to be too desirous to return to it. (One apparent change there may be for you to tackle the higher portion of kid look after the foreseeable future.) Greater than that, your “normal” life was additionally one the place your spouse apparently harbored sure obscure ideas and attitudes that horrify her—that’s nothing to need to hurry again to. (Do they horrify you?) What have you ever two communicated to your children about this, past merely “Something happened, it’s horrifying, but we can’t go into detail”?

I’d like to know extra concerning the particular “underlying thoughts and attitudes” that got here out within the video, as a result of that will assist me provide significant, context-driven recommendation. What specifically is she sorry for? What does she now assume she may have finished in a different way on the time? How a lot injury did she trigger others? Was she merely impolite, or did she threaten another person’s well being and security? What has she finished to attempt to make amends past seeing a therapist? Presumably no matter she did in that park was not associated to her tense full-time job; presumably you referenced “Karen” with out going into even the barest of particulars as a result of she stated or did one thing racist, however you didn’t need to say what it was. Why was your spouse’s response to emphasize to do or say one thing racist? Is that this one thing she’s mentioned together with her therapist? Has she apologized to any of your mates or neighbors, and if not, why? What do they need from her, and from you, earlier than they will reply the query of whether or not they’re able to rebuild? You can not demand that your mates rebuild relationships, and you can’t use your children’ loneliness to strain others into forgiving their mother and father. However you possibly can ask the individuals you recognize and love, sincerely and nondefensively, what you are able to do to begin to rebuild belief collectively. Generally which may imply giving others time and area, or the liberty to say, “I can’t accept this apology,” however it’s a must to be prepared to respect that. In any other case it’s not an apology in any respect, however a requirement to overlook no matter occurred.

Easy methods to Get Recommendation From Prudie:

• Ship questions for publication to prudence@slate.com. (Questions could also be edited.)

• Be a part of the dwell chat Mondays at midday. Submit your questions and feedback right here earlier than or in the course of the dialogue.

• Name the voicemail of the Expensive Prudence podcast at 401-371-DEAR (3327) to listen to your query answered on a future episode of the present.

Q. Baby-free in Albuquerque: My boyfriend (28) and I (26), have been residing collectively for 17 months now and made a cross-country transfer six months in the past. I believed all the pieces was nice and was wanting ahead to getting engaged quickly, as a result of he’s the love of my life. Because it seems, he thought I’d change my thoughts about not wanting children—and I believed he was simply advantageous with not having children. We’ve been by way of a number of (pandemic) months of very robust conversations and plenty of crying on my half. I burst into tears watching an episode of Home Hunters yesterday through which a pair received engaged.

I feel everyone knows the pluses and minuses of getting a toddler, so I gained’t go into them, however my high issues embrace the truth that I don’t actually like kids, I need to have as a lot alone time collectively as potential, and if one thing occurred to my accomplice or we received divorced, I’d be caught elevating a toddler as an alternative of being free to do no matter I would like. The factor I connect to on days the place it sounds higher is the considered sharing my faith, which suggests an awesome deal to me, with my youngster. However she may not undertake it herself, and my accomplice is of a special faith and isn’t prepared to lift her with solely mine. If I wouldn’t have a toddler if we weren’t collectively and it’s not my choice, is it one thing I ought to simply by no means think about, full cease? Or is that this state of affairs one thing to consider over the subsequent 5 years?

A: I feel you have thought of having kids greater than as soon as, particularly in the previous few months. It’s one factor to grant your self a interval of open-minded exploration when your emotions are unclear, however you don’t appear to have unclear emotions in any respect—solely incompatible ones. You don’t need kids, and you don’t need to lose your accomplice, who does need them. However “I really hope we don’t have to break up over this” is just not the identical factor as “Sometimes I really do want children.” The strongest, warmest, most constructive feeling you’ve been capable of generate on the considered having kids is “My religion is really important to me, and I’d enjoy sharing it with someone else.” You don’t like kids, you don’t like spending time with kids, you need to be free to set your individual schedule, you need to prioritize time together with your accomplice over time with dependents, and within the occasion of divorce or bereavement, you’d really feel shackled and resentful on the prospect of getting to take care of a toddler by yourself. I don’t assume there’s a lot right here to rethink, or that’s prone to change in 5 years’ time. I feel you recognize pretty clearly that you just don’t need kids. I don’t need you to have a toddler towards your individual instincts within the hopes it’s going to hold “the love of your life” shut, solely to search out your self feeling caught, annoyed, remoted, beholden, and with out choices. That may not be a very good life for you, and it will not be a wholesome surroundings in your youngster.

In case your accomplice had been prepared to take “Well, I don’t really want one, and it’s not my preference, but if it means losing you otherwise, I’m willing to have a child” as enthusiastic entry into child-rearing, then frankly I’d be involved about his values and normal health as a dad or mum. I don’t know why he believed you had been prone to change your thoughts, nor do I do know what he stated or did to present the impression that he didn’t care about having kids. That’s most likely value dialogue, even when it means extra crying within the brief time period. However kicking this could one other 5 years down the street gained’t spare you tears or heartache. It’s a tough choice, and there’s no avoiding it. However you two should make it collectively, and arrive at it actually.

Q. My husband is a awful worker, and I’m his boss: My husband and I began our personal firm in a inventive discipline about three years in the past. He was having hassle holding down a standard job, and I wasn’t having fun with mine, so we determined to take advantage of his inventive skills and my administrative expertise.

Now I perceive why he had hassle in his earlier jobs. He blows off deadlines, resents shoppers (and can’t be trusted to talk to them instantly), and complains bitterly and endlessly concerning the pure constraints of our job. I’m functionally the supervisor of our firm, and it falls to me to verify all the pieces truly occurs the best way it’s speculated to. He frequently will get upset with me once I implement the planning and deliverables which are outlined in our contracts, and once I schedule “too much” work for us regardless of our workload being fairly regular. He’s very candy exterior of labor, and I like him after we’re simply hanging out collectively. We truly carry out our day-to-day work duties seamlessly as a staff; it’s the administration that we basically disagree on. I’m at my wits’ finish and am significantly contemplating saying that I would like out. I do know I may discover one other job, however I’m undecided he can, actually.

However quitting our enterprise turns into a query of what occurs to our marriage. Do I actually need to keep married to somebody who I don’t assume might be an equal accomplice to me in work, funds, shopping for a house, or having kids? I actually don’t understand how he would be capable to present for himself on his personal. I completely love the work we do; it’s my dream job. I can’t do it with out him, and he can’t go on with out me. I really feel so caught, and I don’t know what to do. We argue about this each few months like clockwork, and nothing actually modifications though he at all times admits he may do higher. My excellent state of affairs can be to remain married and to maintain working on this discipline, however with him simply accepting that we actually do have to work 40–50 hours every week and that it gained’t at all times be tremendous enjoyable and instantly rewarding.

A: Your excellent state of affairs doesn’t presently exist. It additionally appears unlikely that it’s going to exist anytime quickly, as a result of your husband has by no means been capable of deliver himself to simply accept that his work requires a weekly 40-to-50-hour dedication, that he has to talk politely to shoppers if he desires to maintain their enterprise, and even the overall nature of the trade he works in. So it’s with a substantial amount of affection and compassion for you that I say: Let the dream of your “ideal situation” die on the desk proper now. Nor do I feel that you would be able to hold your current state of affairs going indefinitely. It’s solely been three years, and also you’re already at your wits’ finish; what is going to it’s like if 5 years from now you’re nonetheless your husband’s boss, and he nonetheless resents you for reminding him of the phrases of the contracts he’s already signed? At a sure level it simply doesn’t matter how “seamlessly” your day-to-day work goes. The remainder of your job sounds completely insufferable, and also you’re fairly proper to fret about how your husband may deal with the duties of parenthood on the premise of what you’ve seen from him at work.

Cease performing as if being your husband’s full-time mentor/boss/babysitter/assistant is a viable lifelong technique, as a result of it isn’t; you’ll finally get exhausted and annoyed and stop. I don’t assume a “dream job” has ever concerned having to plead with, cajole, or coax your solely worker (who occurs to be your partner) into doing their job; moving into common fights concerning the contracts you’ve signed collectively; or speaking to each single consumer by yourself as a result of your solely co-worker is incapable of getting a civil dialog with any of them. What may you’ve gotten the time and power for in case your husband accepted that you just “really do need to work 40–50 hours a week” and that work isn’t at all times “super fun and immediately rewarding”? What would you prioritize or what sort of profession strikes would you think about should you relinquished the delusion that you’re simply this shut to convincing him? What should you didn’t make his employability your accountability? What should you put the identical consideration and care towards your individual profession that you just’ve been placing towards making an attempt to maintain his profession from foundering?

I understand you two have been in enterprise collectively for years and that you just presently rely upon this revenue; I’m not suggesting you inform him you stop tomorrow after which instantly abandon your current initiatives. However having the identical battle each few months doesn’t change something, so stop ready in your husband to alter. You say that you really want out, and that you just assume you could possibly simply discover one other job; I feel it’s simply that easy, and you must do precisely that. Work out a manageable timeline for wrapping up your previous initiatives and begin making use of for jobs elsewhere.

Q. Need to assist: My accomplice of 1 12 months is depressed, and I’m on the finish of my rope. They’re underemployed (hours had been minimize attributable to COVID) and have taken on gig work to make ends meet, however the ends simply aren’t assembly—they’ve lower than $100 of their checking account more often than not and can’t pay their payments. They don’t have the power to do extra gig work or search for a full-time job; as an alternative, they spend most of their time sleeping, and their waking hours are taken up with video video games, D&D, and different unlucrative pursuits.

I like them and acknowledge that they’re an individual in disaster, however this makes me extremely nervous for our future. At this level, I’m undecided in the event that they’re emotionally able to loving me the best way I like them. They don’t need remedy, and I’m not certain if they are going to be open to medicine even when they finally get well being care, so there’s an opportunity they’ll simply … be like this. Regardless of my finest efforts, I’m starting to resent the large quantity of power that I put into supporting them emotionally, encouraging them to truly exit and work so that they aren’t deep in debt, and making an attempt to plan methods we will spend time collectively that don’t value them any cash or require a lot effort (I would like us to spend a minimum of a number of hours every week collectively to maintain our relationship going, particularly as a result of they dwell with a member of the family who’s uncomfortable with guests and we could also be quarantining individually if COVID will get worse).

Even when I’ve finished my finest to make spending time with me straightforward, they typically cancel and say they’re unable to get away from bed. I wrestle with my very own psychological well being points and perceive their wrestle (to not point out the stress of poverty) however am beginning to really feel uncared for, though I acknowledge that this has nothing to do with me. I like them. I see flashes of the individual that I need to construct a life with, however it’s getting tougher to decide to somebody who’s unable to indicate they look after me. How can I finest assist them? Do I have to get out now earlier than I might be actually devastated by shedding a future with them? I need to assist them, however I additionally want to guard myself.

A: You’ve solely been courting this individual for one 12 months, and right here’s the way you describe your relationship: “I’m not sure if they’re capable of loving me the way I love them. … I resent the massive amount of energy I put into supporting them … trying to plan ways to keep our relationship going. … When I have done my best, they often cancel. … I see flashes of the person I want to build a life with, but they’re unable to show they care for me.” Only a few sentences after describing how exhausted and remoted you’re feeling pouring all of your power into supporting your accomplice, you ask me “How can I best support them?” as if the issue you two had been going through was merely that you just weren’t making an attempt laborious sufficient or giving them sufficient. Nevertheless it’s not a query of being extra supportive. It’s a query of whether or not you see a cheerful, equitable, thrilling future forward for the 2 of you. You’re as a lot part of this relationship as your accomplice is, and your happiness is of equal significance. You’ve finished lots to satisfy your accomplice midway—greater than midway—and also you’re fairly cleareyed about taking their straitened circumstances into consideration on the subject of reciprocity; you’re not demanding they get an awesome job in finance tomorrow or overwhelm you with a burst of spontaneous power.

I do assume this explicit relationship appears completed, however you might run into comparable patterns sooner or later. If I may impress upon you one factor, it will be this: Deciding to interrupt up with somebody is a query of mutual compatibility, not a query of whether or not they’re a very good individual or should obtain assist for his or her issues or deserve well being care. Your accomplice’s struggles could also be very actual, they could completely want and deserve higher psychological well being remedy than what they’re presently receiving, and that has nothing to do with whether or not you need to hold courting. Attempt not to think about this as an either-or state of affairs the place you both A) keep and proceed to use your shoulder to the wheel, and single-handedly handle your accomplice’s life for them regardless of how a lot it exhausts you, or B) “get out” for the sake of your individual well-being. Such an method to courting signifies that so long as you’re with somebody, it’s incumbent upon you to drag out all of the stops once they’re in any type of disaster—till you hit a breaking level, at which level you haven’t any selection however to go away them to protect your individual well-being. That type of method to courting makes it in order that the one time you’re feeling capable of say no to a accomplice’s request (even, crucially, requests which are merely implied, and never ones your accomplice has truly made from you) is whenever you’re breaking apart with them.

Q. Pet not welcome: My husband and I’ve lived in a condominium complicated for greater than 20 years. We’re quiet and respectful, pay our condominium charge on time, and sustain our mortgage and property. We even have a owners insurance coverage coverage and in any other case strive our greatest to observe all guidelines and rules. Our daughter was introduced up right here and now lives in one other a part of the state, shut sufficient to go to as soon as each one to 2 months. She and her partner adopted an lovely terrier pet, who is good, pleasant, and appears to like individuals. They at all times decide up after the canine, hold her leashed, not too long ago had her spayed, and so forth.

A few month in the past, they got here for a go to and stayed two nights with the pet. Inside every week, we acquired a discover from administration to remind all residents that canines usually are not allowed to go to the property, EVER. Throughout their go to, my daughter and son-in-law took their canine out to the again of our unit at 2 a.m. to verify she didn’t have an accident in the course of the night time. One of many neighbors noticed them, and my daughter advised me how bizarre it was to see this individual doing their laundry in the course of the night time (supposedly, that is towards the foundations and residents are supposed to watch quiet time between the hours of 10 p.m. and seven a.m. There are indicators particularly asking us to not do laundry throughout these hours). She additionally observed the lady was not pleasant and pointedly watched them with the canine. I discover myself feeling livid, realizing that they rigorously decide up after the canine with luggage they’ve prepared always.

There’s a neighbor with particular permission to have their “emotional support” animal (a canine that often and annoyingly barks). Do I take this additional with administration? Insist to have particular permission? I discover myself getting irritated about it and actually indignant at this nosy neighbor in addition to the sensation that we’re being singled out. Our canine customer by no means barked or bothered anybody (we saved her very shut and leashed, she didn’t run as much as anybody or in any other case trigger any issues in the course of the go to).

A: You’ve gotten a neighbor who barely annoys you! If I believed that something like peace or happiness lay on the opposite facet of meticulously documenting her personal infractions, like utilizing a dryer after formal laundry hours are over, I’d let you know, however I actually, actually don’t consider something of the sort lies in that course. Your daughter’s canine sounds nice! However you additionally knew the complicated guidelines don’t permit visits from canines, so I don’t assume you must work your self up itemizing all of the methods through which this canine is additional particular. It’s sort of annoying that your neighbor didn’t converse to you instantly, however all that’s occurred is that you just’ve acquired a bland reminder out of your administration firm. She doesn’t have the facility to harm you, so don’t expend an excessive amount of power on resenting her.

If you wish to e-mail your administration firm and ask for future dispensation on in a single day visits from a selected canine, I feel that’s advantageous, and there’s a good likelihood they’ll hear you out. But when they are saying no, they are saying no, and your daughter will both should discover a dogsitter on future visits or e-book a room at a pet-friendly resort.

Q. My terrible mom texts me on daily basis in quarantine: My mother divorced my father once I was younger and raised me alone for a number of years earlier than remarrying and beginning a brand new household. I’ve at all times acquired totally different (worse) remedy than my half siblings from my mother. Associates and boyfriends have remarked for years on how she treats me—she ignores me or attributes my phrases to my husband, insults my look, and questions my life selections each time I see her. I’ve saved my distance however preserve a veneer of politeness.

When the pandemic hit, she began texting me on daily basis to “check in”—however in observe she makes use of it as an opportunity to vent. Open questions like “How are you doing?” have given method to questions with room for under blandly cheerful responses, like “What are you grateful for today?” If I reply to her with one thing constructive, she second-guesses me. If I reply with one thing damaging or difficult, she ignores it and talks about what’s on her thoughts. I’ve taken to answering with brief, ambivalent replies to present her little or no room to maneuver.

The factor is, I’m having a horrible time in quarantine and actually do want somebody to speak to! My husband has been tweaking his despair medicine and has been having frequent panic assaults, and plenty of my coping mechanisms really feel very far-off proper now. Once I examine my telephone within the morning and see her textual content, it looks like my day is off on a foul foot earlier than it’s even began. I’d wish to ask her to cease pretending to care how I’m doing whereas making me assist her course of her quarantine emotions, however I’m frightened it’s going to blow up and exhaust me much more. What do I do?

A: If I believed there was any likelihood your mom might be guided or pushed into being the type of individual you may speak to whenever you’re going by way of a tough time, I’d do my finest to advise you on how to take action, however she appears to be remarkably constant and implacable in how she treats you. I feel the most effective you possibly can hope for in your relationship is to attenuate how a lot time and power you spend on her. That will sound bleak, however I feel it’s a very good basis for hopefulness. Yow will discover form individuals to vent to, develop new coping methods, reground your relationship together with your husband, restructure your relationship to your telephone, and achieve worthwhile insights into your patterns together with your mom, all with out seeking to her for assist or steering. If which means setting her texts to “Do Not Disturb” and ignoring 80 p.c of them, try this; if which means spending 30 seconds every morning telling her one thing bland, repetitive, and formulaic in order to present her no conversational buy to maintain going, try this. If which means saying, “I don’t have the energy for these conversations. I’ll let you know when I’m free to talk,” and ignoring no matter her response could also be so you possibly can go do one thing genuinely stress-free and significant, then try this. (My vote’s for No. 3.)

In the long term, I hope yow will discover methods to disconnect the concept in case your mom blows up at you, you subsequently should exhaust your self making an attempt to placate her. I understand it’s not a change that may be made in a single day, and that regardless of how relentlessly and reliably she tears you down, a part of you may at all times want that your mom will lastly say one thing form, loving, and nurturing to you. However I feel no matter you do subsequent, you must behave as should you knew surely that your mom’s response goes to be unreasonable, unloving, demanding, and demanding. Painful as that assumption could also be, I feel it’s going to free you as much as pursue what’s finest for you, slightly than attempt to tiptoe round her within the hopes you possibly can keep away from one thing that sounds pretty unavoidable.

Q. Re: Baby-free in Albuquerque: I simply need to respectfully level out that the response “Well, I don’t really want a child, but if it means losing you otherwise, I’m willing to have a child” is just not essentially at all times the worst response or a purpose to query the individual’s health as a dad or mum. My accomplice already had a toddler from a earlier marriage, and his choice was to be finished. I didn’t have any kids, and I used to be making some slightly massive sacrifices by staying in a location that was higher for his profession. We mentioned it for a very long time—greater than two years—and finally determined to have kids, though he was not tremendous passionate about going by way of the infant section once more! And for what it’s value, our now-18-month-old has completely melted his dad’s coronary heart!

I do know this can be a totally different state of affairs and this author adamantly doesn’t need kids. I simply need to level out that there’s room for nuance, even in such a fraught choice as kids, and typically it’s OK to make compromises. I feel there are a very good fraction of {couples} who usually are not precisely equally on board about kids however nonetheless discover a method to be good mother and father.

A. That will very nicely be true! And naturally, most individuals who resolve to turn into mother and father don’t accomplish that as a result of they consider each minute of the endeavor goes to be amusing riot; many expertise moments of uncertainty, trepidation, terror, resentment, worry, and so forth. Unalloyed optimism and whole, dependable enthusiasm is just not a vital requirement for being a very good dad or mum. However I additionally assume too typically individuals are inclined to gamble, or swallow essential reservations, on the energy of sentiments like “You’ll just fall in love right away when the baby gets here.” What’s most attention-grabbing right here, I feel, is why this letter that you just acknowledge could be very in contrast to your individual state of affairs activated a few of your fears. It sounds such as you and your accomplice mentioned the potential of kids rigorously and with out making use of undue emotional strain for a number of years, that you just each knew the varied dangers and rewards, that neither of you lacked details about how tough elevating a new child might be, and that each of you felt free to go away the connection if significant compromise proved not possible. I don’t assume it’s a must to fear that your accomplice was secretly on this letter author’s camp and compelled himself to undertake an outlook towards his personal finest pursuits merely as a result of he was afraid of shedding you. There’s a world of distinction between “I’m not sure, but this relationship is deeply important to me. Let’s keep talking” and “I really don’t want children, and the idea of having to raise a child by myself if anything happened to our relationship devastates me, but maybe we should keep dating for five more years just in case I’m wrong.”

Danny M. Lavery: Thanks, everybody. See you subsequent week!

When you missed Half 1 of this week’s chat, click on right here to learn it.

Focus on this column on our Fb web page!

From Easy methods to Do It

Q. Intercourse with my ex was unbelievable, and I can’t discover anybody pretty much as good: My ex and I not too long ago broke up. It was a really intense however short-lived relationship. Our intercourse life was out of this world. I’ve been placing myself on the market once more and have had a number of sexual experiences, some higher than others. The issue is, I had a number of the finest intercourse of my life with my ex, and all I can take into consideration when having intercourse with actually anybody else is my ex. Everybody else pales as compared. I’m scared that if I can’t have something even near the same sexual compatibility, I’ll at all times really feel like one thing is missing. I had a horrible intercourse life with my husband of greater than a decade, and I’m simply not prepared to return to that. What ought to I do? Learn what Stoya and Wealthy needed to say.

Danny M. Lavery’s new e-book, One thing That Might Shock and Discredit You, is out now.

'));else {
if (!0 === d.b.getConfig("enableSendAllBids")) return;
p.native = {
title: (t = e.native).merchandise[0].title,
physique: t.merchandise[0].description,
sponsoredBy: t.advertiser.description,
icon: t.advertiser.emblem,
picture: t.merchandise[0].picture,
clickUrl: t.merchandise[0].click_url,
privacyLink: t.privateness.optout_click_url,
privacyIcon: t.privateness.optout_image_url,
cta: t.merchandise[0].call_to_action,
value: t.merchandise[0].value,
impressionTrackers: t.impression_pixels.map(perform (t) {
return t.url;
})
}, p.mediaType = h.c;
}
} else e.video ? (p.vastUrl = e.displayurl, p.mediaType = h.d) : p.advert = e.inventive;
c.push(p);
}), c;
},
onTimeout: perform onTimeout(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleBidTimeout();
},
onBidWon: perform onBidWon(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleBidWon(t);
},
onSetTargeting: perform onSetTargeting(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleSetTargeting(t);
}
};

perform T() {
return "undefined" != typeof Criteo && Criteo.PubTag && Criteo.PubTag.Adapters && Criteo.PubTag.Adapters.Prebid;
}

perform C(t) t.sizes;

perform A(t, e) {
return Array.isArray(t[0]) ? t.map(perform (t) {
return e(t);
}) : [e(t)];
}

perform S(t) {
return t[0] + "x" + t[1];
}

perform I(t) {
return void 0 === t[0] && void 0 === t[1] ? "2x2" : t[0] + "x" + t[1];
}

perform R(t) {
return void 0 !== f.deepAccess(t, "params.video") && void 0 !== f.deepAccess(t, "mediaTypes.video");
}

perform x() {
strive {
var t,
e,
r,
i,
o,
n = "criteo_fast_bid",
s = "// Hash: ",
a = y.getDataFromLocalStorage(n);
null !== a && (t = a.indexOf("n"), (e = a.substr(0, t).trim()).substr(0, s.size) !== s ? (f.logWarn("No hash present in FastBid"), y.removeDataFromLocalStorage(n)) : (r = e.substr(s.size), i = a.substr(t + 1), Object(p.confirm)(i, r, g, b) ? (f.logInfo("Utilizing Criteo FastBid"), (o = doc.createElement("script")).kind = "textual content/javascript", o.textual content = i, f.insertElement(o)) : (f.logWarn("Invalid Criteo FastBid discovered"), y.removeDataFromLocalStorage(n))));
} catch (t) {}
}

Object(i.registerBidder)(s);
},
382: perform _(t, e, r) {
"use strict";

Object.defineProperty(e, "__esModule", {
worth: !0
});
var a = r(383),
p = r(384);

e.confirm = perform (t, e, r, i) {
var o = new a.BigInteger(a.b64toHex(e)),
n = new a.BigInteger(a.b64toHex(r)),
s = o.modPowInt(i, n);
return a.removeExtraSymbols(s.toHexString()) === p.Sha256.hash(t);
};
},
383: perform _(t, e, r) {
"use strict";

var i;
Object.defineProperty(e, "__esModule", {
worth: !0
});
var o = (g.prototype.toHexString = perform () {
if (this.s < 0) return "-" + this.negate().toHexString(); var t, e = !1, r = "", i = this.t, o = this.DB - i * this.DB % 4; if (0 < i--) for (o < this.DB && 0 < (t = this[i] >> o) && (e = !0, r = c(t)); 0 <= i;) = this[--i] >> (o += this.DB - 4)) : (t = this[i] >> (o -= 4) & 15, o <= 0 && (o += this.DB, --i)), 0 < t && (e = !0), e && (r += c(t)); return e ? r : "0"; }, g.prototype.fromHexString = perform (t) { if (null !== t) { this.t = 0, this.s = 0; for (var e = t.size, r = !1, i = 0; 0 <= --e;) = (o & (1 << this.DB - i) - 1) << i, this[this.t++] = o >> this.DB - i) : this[this.t - 1]

this.clamp(), r && g.ZERO.subTo(this, this);
}
}, g.prototype.negate = perform () {
var t = T();
return g.ZERO.subTo(this, t), t;
}, g.prototype.abs = perform () {
return this.s < 0 ? this.negate() : this; }, g.prototype.mod = perform (t) { var e = T(); return this.abs().divRemTo(t, null, e), this.s < 0 && 0 < e.compareTo(g.ZERO) && t.subTo(e, e), e; }, g.prototype.copyTo = perform (t) { for (var e = this.t - 1; 0 <= e; --e) { t[e] = this[e]; } t.t = this.t, t.s = this.s; }, g.prototype.lShiftTo = perform (t, e) { for (var r = t % this.DB, i = this.DB - r, o = (1 << i) - 1, n = Math.flooring(t / this.DB), s = this.s << r & this.DM, a = this.t - 1; 0 <= a; --a) s, s = (this[a] & o) << r; for (a = n - 1; 0 <= a; --a) { e[a] = 0; } e[n] = s, e.t = this.t + n + 1, e.s = this.s, e.clamp(); }, g.prototype.invDigit = perform () { 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; }, g.prototype.dlShiftTo = perform (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; }, g.prototype.squareTo = perform (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(); }, g.prototype.multiplyTo = perform (t, e) { var r = this.abs(), i = t.abs(), o = r.t; for (e.t = o + i.t; 0 <= --o;) { e[o] = 0; } for (o = 0; o < i.t; ++o) { e[o + r.t] = r.am(0, i[o], e, o, 0, r.t); } e.s = 0, e.clamp(), this.s != t.s && g.ZERO.subTo(e, e); }, g.prototype.divRemTo = perform (t, e, r) { var i = t.abs(); if (!(i.t <= 0)) { var o = this.abs(); if (o.t < i.t) return null != e && e.fromHexString("0"), void (null != r && this.copyTo(r)); null == r && (r = T()); var n = T(), s = this.s, a = t.s, p = this.DB - C(i[i.t - 1]); 0 < p ? (i.lShiftTo(p, n), o.lShiftTo(p, r)) : (i.copyTo(n), o.copyTo(r)); var u = n.t, c = n[u - 1]; if (0 != c) { var d = c * (1 << this.F1) + (1 < u ? n[u - 2] >> this.F2 : 0),
h = this.FV / d,
f = (1 << this.F1) / d, l = 1 << this.F2, m = r.t, v = m - u, y = null == e ? T() : e; for (n.dlShiftTo(v, y), 0 <= r.compareTo(y) && (r[r.t++] = 1, r.subTo(y, r)), g.ONE.dlShiftTo(u, y), y.subTo(n, n); n.t < u;) { n[n.t++] = 0; } for (; 0 <= --v;) { var b = r[--m] == c ? this.DM : Math.flooring(r[m] * h + (r[m - 1] + l) * f); if ((r[m] += n.am(0, b, r, v, 0, u)) < b) for (n.dlShiftTo(v, y), r.subTo(y, r); r[m] < --b;) { r.subTo(y, r); } } null != e && (r.drShiftTo(u, e), s != a && g.ZERO.subTo(e, e)), r.t = u, r.clamp(), 0 < p && r.rShiftTo(p, r), s < 0 && g.ZERO.subTo(r, r); } } }, g.prototype.rShiftTo = function (t, e) { e.s = this.s; var r = Math.floor(t / this.DB); if (r >= this.t) e.t = 0;else = (this.s & n) << o), e.t = this.t - r, e.clamp(); }, g.prototype.drShiftTo = perform (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; }, g.prototype.subTo = perform (t, e) { for (var r = 0, i = 0, o = Math.min(t.t, this.t); r < o;) { 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(); }, g.prototype.clamp = perform () { for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t;) { --this.t; } }, g.prototype.modPowInt = perform (t, e) , g.prototype.exp = perform (t, e) { if (4294967295 < t || t < 1) return g.ONE; var r, i = T(), o = T(), n = e.convert(this), s = C(t) - 1; for (n.copyTo(i); 0 <= --s;) { e.sqrTo(i, o), 0 < (t & 1 << s) ? e.mulTo(o, n, i) : (r = i, i = o, o = r); } return e.revert(i); }, g.prototype.isEven = perform () { return 0 == (0 < this.t ? 1 & this[0] : this.s); }, g.prototype.compareTo = perform (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; }, g.prototype.am1 = perform (t, e, r, i, o, n) { for (; 0 <= --n;) { var s = e * this[t++] + r[i] + o; o = Math.floor(s / 67108864), r[i++] = 67108863 & s; } return o; }, g.prototype.am2 = function (t, e, r, i, o, n) { for (var s = 32767 & e, a = e >> 15; 0 <= --n;) { var p = 32767 & this[t], u = this[t++] >> 15,
c = a * p + u * s;
o = ((p = s * p + ((32767 & c) << 15) + r[i] + (1073741823 & o)) >>> 30) + (c >>> 15) + a * u + (o >>> 30), r[i++] = 1073741823 & p;
}

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

return o;
}, g);

perform g(t) {
null !== t && this.fromHexString(t);
}

perform T() {
return new o(null);
}

perform C(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 = o, e.nbi = T, e.nbits = C;

for (var n = [], s = "0".charCodeAt(0), a = 0; a <= 9; ++a) { n[s++] = a; } for (s = "a".charCodeAt(0), a = 10; a < 36; ++a) { n[s++] = a; } for (s = "A".charCodeAt(0), a = 10; a < 36; ++a) { n[s++] = a; } perform p(t, e) { var r = n[t.charCodeAt(e)]; return null == r ? -1 : r; } e.intAt = p; var u = "0123456789abcdefghijklmnopqrstuvwxyz"; perform c(t) { return u.charAt(t); } e.int2char = c; e.b64toHex = perform (t) { for (var e = "", r = 0, i = 0, o = 0; o < t.size && "=" != t.charAt(o); ++o) (r = 0 == r ? (e += c(n >> 2), i = 3 & n, 1) : 1 == r ? (e += c(i << 2 return 1 == r && (e += c(i << 2)), e; }, e.removeExtraSymbols = perform (t) { return t.substitute(/^1f+00/, "").substitute("3031300d060960864801650304020105000420"https://news.google.com/__i/rss/rd/articles/,""); }; var d = (h.prototype.convert = perform (t) , h.prototype.revert = perform (t) { return t; }, h.prototype.scale back = perform (t) { t.divRemTo(this.m, null, t); }, h.prototype.mulTo = perform (t, e, r) { t.multiplyTo(e, r), this.scale back(r); }, h.prototype.sqrTo = perform (t, e) { t.squareTo(e), this.scale back(e); }, h); perform h(t) { this.m = t; } var f = (l.prototype.convert = perform (t) { var e = T(); return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && 0 < e.compareTo(o.ZERO) && this.m.subTo(e, e), e; }, l.prototype.revert = perform (t) { var e = T(); return t.copyTo(e), this.scale back(e), e; }, l.prototype.scale back = perform (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; } perform m(t) { var e = T(); return e.fromHexString(t.toString()), e; } e.nbv = m, o.ZERO = m(0), o.ONE = m(1), i = "Microsoft Web Explorer" == navigator.appName ? (o.prototype.am = o.prototype.am2, 30) : "Netscape" != navigator.appName ? (o.prototype.am = o.prototype.am1, 26) : (o.prototype.am = o.prototype.am3, 28), o.prototype.DB = i, o.prototype.DM = (1 << i) - 1, o.prototype.DV = 1 << i; o.prototype.FV = Math.pow(2, 52), o.prototype.F1 = 52 - i, o.prototype.F2 = 2 * i - 52; }, 384: perform _(t, e, r) { "use strict"; Object.defineProperty(e, "__esModule", { worth: !0 }); var i = (S.hash = perform (t) { t = S.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)).size / 4 + 2, o = Math.ceil(i / 16), n = new Array(o), s = 0; s < o; s++) { n[s] = new Array(16); for (var a = 0; a < 16; a++) t.charCodeAt(64 * s + 4 * a + 2) << 8 } var p = 8 * (t.length - 1) / Math.pow(2, 32), u = 8 * (t.length - 1) >>> 0;

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

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

r[0] = r[0] + h >>> 0, r[1] = r[1] + f >>> 0, r[2] = r[2] + l >>> 0, r[3] = r[3] + m >>> 0, r[4] = r[4] + v >>> 0, r[5] = r[5] + y >>> 0, r[6] = r[6] + b >>> 0, r[7] = r[7] + g >>> 0;
}

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

perform S() {}

e.Sha256 = i;
}
}, [380]);
pbjsChunk([187], {
481: perform _(e, r, t) {
e.exports = t(482);
},
482: perform _(e, r, t) {
"use strict";

Object.defineProperty(r, "__esModule", {
worth: !0
}), t.d(r, "spec", perform () {
return m;
});
var b = t(0),
y = t(2),
h = t(3),
i = t(11),
l = t.n(i),
a = t(483),
n = t.n(a),
s = t(1);

perform v(e) {
return (v = "perform" == typeof Image && "image" == _typeof(Image.iterator) ? perform (e) {
return _typeof(e);
} : perform (e) {
return e && "perform" == typeof Image && e.constructor === Image && e !== Image.prototype ? "image" : _typeof(e);
})(e);
}

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

perform p(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 && "quantity" != typeof e.params.id ? r.ext.sid = "".concat(e.params.measurement[0], "x").concat(e.params.measurement[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;
}

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

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

for (var t = 0; t < e.size; t++) { if (e[t][0] === r[0] && e[t][1] === r[1]) return 1; } } perform u(e, r, t, i) { var a = []; if (window.headertag && "perform" == typeof window.headertag.getIdentityInfo) { var n, s = window.headertag.getIdentityInfo(); if (s && "object" === v(s)) for (var o in s) !(n = s[o]).responsePending && n.knowledge && "object" === v(n.knowledge) && Object.keys(n.knowledge).size && a.push(n.knowledge); } var d, p = {}; p.id = e[0].bidderRequestId, p.imp = t, p.web site = {}, p.ext = {}, p.ext.supply = "prebid", e[0].schain && (p.supply = { ext: { schain: e[0].schain } }), 0 < a.size && (p.consumer = {}, p.consumer.eids = a), doc.referrer && "" !== doc.referrer && (p.web site.ref = doc.referrer), r && (r.gdprConsent && ((d = r.gdprConsent).hasOwnProperty("gdprApplies") && (p.regs = { ext: { gdpr: d.gdprApplies ? 1 : 0 } }), d.hasOwnProperty("consentString") && (p.consumer = p.consumer || {}, p.consumer.ext = )), r.uspConsent && b.deepSetValue(p, "regs.ext.us_privacy", r.uspConsent), r.refererInfo && (p.web site.web page = r.refererInfo.referer)); var c = {}, u = r && r.bidderCode || "ix", m = h.b.getConfig(u); if (m) { if ("object" === v(m.firstPartyData)) { var f = m.firstPartyData, y = "?"; for (var l in f) { f.hasOwnProperty(l) && (y += "".concat(encodeURIComponent(l), "=").concat(encodeURIComponent(f[l]), "&")); } y = y.slice(0, -1), p.web site.web page += y; } "quantity" == typeof m.timeout && (c.t = m.timeout); } return c.s = e[0].params.siteId, c.v = i, c.r = JSON.stringify(p), c.ac = "j", c.sd = 1, 8.1 === i && (c.nf = 1), { methodology: "GET", url: "https://as-sec.casalemedia.com/cygnus", knowledge: c }; } var m = { code: "ix", gvlid: 10, supportedMediaTypes: o, isBidRequestValid: perform isBidRequestValid(e) { if (!d(e.params.measurement)) return b.logError("ix bidder params: bid measurement has invalid format."), !1; if (!c(e.sizes, e.params.measurement)) return b.logError("ix bidder params: bid measurement is just not included in advert unit sizes."), !1; if (e.hasOwnProperty("mediaType") && !b.incorporates(o, e.mediaType)) return !1; if (e.hasOwnProperty("mediaTypes") && !b.deepAccess(e, "mediaTypes.banner.sizes") && !b.deepAccess(e, "mediaTypes.video.playerSize")) return !1; if ("string" != typeof e.params.siteId && "quantity" != typeof e.params.siteId) return b.logError("ix bidder params: siteId should be string or quantity worth."), !1; var r, t, i = e.params.hasOwnProperty("bidFloor"), a = e.params.hasOwnProperty("bidFloorCur"); return !!(!i && !a || i && a && (r = e.params.bidFloor, t = e.params.bidFloorCur, Boolean("quantity" == typeof r && "string" == typeof t && t.match(/^[A-Z]{3}$/)))) || (b.logError("ix bidder params: bidFloor / bidFloorCur parameter has invalid format."), !1); }, buildRequests: perform buildRequests(e, r) { for (var t, i, a = [], n = [], s = [], o = null, d = 0; d < e.size; d++) { (o = e[d]).mediaType !== y.d && !b.deepAccess(o, "mediaTypes.video") || (o.mediaType === y.d || c(o.mediaTypes.video.playerSize, o.params.measurement) ? s.push(perform (e) { var r = p(e); r.video = b.deepClone(e.params.video), r.video.w = e.params.measurement[0], r.video.h = e.params.measurement[1]; var t = b.deepAccess(e, "mediaTypes.video.context"); return t && ("instream" === t ? r.video.placement = 1 : "outstream" === t ? r.video.placement = 4 : b.logWarn("ix bidder params: video context '".concat(t, "' is just not supported"))), r; }(o)) : b.logError("Bid measurement is just not included in video playerSize")), o.mediaType !== y.b && !b.deepAccess(o, "mediaTypes.banner") && (o.mediaType || o.mediaTypes) || n.push((i = void 0, (i = p(t = o)).banner = {}, i.banner.w = t.params.measurement[0], i.banner.h = t.params.measurement[1], i.banner.topframe = b.inIframe() ? 0 : 1, i)); } return 0 < n.size && a.push(u(e, r, n, 7.2)), 0 < s.size && a.push(u(e, r, s, 8.1)), a; }, interpretResponse: perform interpretResponse(e, r) { var t = []; if (!e.hasOwnProperty("physique") || !e.physique.hasOwnProperty("seatbid")) return t; for (var i, a, n, s, o = e.physique, d = o.seatbid, p = 0; p < d.size; p++) { if (d[p].hasOwnProperty("bid")) for (var c = d[p].bid, u = JSON.parse(r.knowledge.r), m = 0; m < c.size; m++) { var f = perform (r, e) { if (r) return l()(e, perform (e) { return e.id === r; }); }(c[m].impid, u.imp); i = c[m], a = o.cur, n = f, s = void 0, s = {}, P.hasOwnProperty(a) ? s.cpm = i.value / P[a] : s.cpm = i.value / g, s.requestId = i.impid, s.dealId = b.deepAccess(i, "ext.dealid"), s.netRevenue = I, s.forex = a, s.creativeId = i.hasOwnProperty("crid") ? i.crid : "-", b.deepAccess(i, "ext.vasturl") ? (s.vastUrl = i.ext.vasturl, s.width = n.video.w, s.top = n.video.h, s.mediaType = y.d, s.ttl = x) : (s.advert = i.adm, s.width = i.w, s.top = i.h, s.mediaType = y.b, s.ttl = w), s.meta = {}, s.meta.networkId = b.deepAccess(i, "ext.dspid"), s.meta.brandId = b.deepAccess(i, "ext.advbrandid"), s.meta.brandName = b.deepAccess(i, "ext.advbrand"), t.push(s); } } return t; }, transformBidParams: perform transformBidParams(e) { return b.convertTypes({ siteID: "quantity" }, e); }, getUserSyncs: perform getUserSyncs(e) { return e.iframeEnabled ? [{ type: "iframe", url: "https://js-sec.indexww.com/um/ixmatch.html" }] : []; } }; Object(s.registerBidder)(m); } }, [481]); pbjsChunk([184], { 493: perform _(e, t, r) { e.exports = r(494); }, 494: perform _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { worth: !0 }), r.d(t, "spec", perform () { return l; }); var s = r(0), d = r(3), n = r(1), a = r(9); perform g() { return (g = Object.assign || perform (e) { for (var t = 1; t < arguments.size; t++) { var r = arguments[t]; for (var n in r) { Object.prototype.hasOwnProperty.name(r, n) && (e[n] = r[n]); } } return e; }).apply(this, arguments); } var o, i, c, u = Object(a.b)(), l = { code: "kargo", isBidRequestValid: perform isBidRequestValid(e) !e.params) && !!e.params.placementId; , buildRequests: perform buildRequests(e, t) { var r, n = d.b.getConfig("forex"), a = n && n.adServerCurrency || "USD", o = {}, i = {}; s._each(e, perform (e) { o[e.bidId] = e.params.placementId, i[e.bidId] = e.sizes; }), 0 < e.size && e[0].userId && e[0].userId.tdid && (r = e[0].userId.tdid); var c = g({}, { sessionId: l._getSessionId(), requestCount: l._getRequestCount(), timeout: t.timeout, forex: a, cpmGranularity: 1, timestamp: new Date().getTime(), cpmRange: { flooring: 0, ceil: 20 }, bidIDs: o, bidSizes: i, prebidRawBidRequests: e }, l._getAllMetadata(r, t.uspConsent)), u = encodeURIComponent(JSON.stringify(c)); return g({}, t, { methodology: "GET", url: "".concat("https://krk.kargo.com"https://news.google.com/__i/rss/rd/articles/,"/api/v2/bid"), knowledge: "json=".concat(u), forex: a }); }, interpretResponse: perform interpretResponse(e, t) { var r = e.physique, n = []; for (var a in r) { var o = r[a], i = void 0; o.metadata && o.metadata.landingPageDomain && (i = { clickUrl: o.metadata.landingPageDomain }), n.push({ requestId: a, cpm: Quantity(o.cpm), width: o.width, top: o.top, advert: o.adm, ttl: 300, creativeId: o.id, dealId: o.targetingCustom, netRevenue: !0, forex: t.forex, meta: i }); } return n; }, getUserSyncs: perform getUserSyncs(e) { var t = [], r = l._generateRandomUuid(), n = l._getClientId(); if (e.iframeEnabled && r && n) for (var a = 0; a < 5; a++) { t.push({ kind: "iframe", url: "https://crb.kargo.com/api/v1/initsyncrnd/{UUID}?seed={SEED}&idx={INDEX}".replace("{UUID}", n).substitute("{SEED}", r).substitute("{INDEX}", a) }); } return t; }, _readCookie: perform _readCookie(e) { if (!u.cookiesAreEnabled()) return null; for (var t = "".concat(e, "="), r = doc.cookie.break up(";"), 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() 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); } }, [493]); pbjsChunk([110], { 677: function _(e, r, t) { e.exports = t(678); }, 678: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "FASTLANE_ENDPOINT", function () { return o; }), t.d(r, "VIDEO_ENDPOINT", function () { return l; }), t.d(r, "SYNC_ENDPOINT", function () { return a; }), t.d(r, "spec", function () { return h; }), r.hasVideoMediaType = c, r.masSizeOrdering = S, r.determineRubiconVideoSizeId = C, r.getPriceGranularity = j, r.hasValidVideoParams = k, r.hasValidSupplyChainParams = T, r.encodeParam = w, r.resetUserSync = function () { R = !1; }; var g = t(0), i = t(1), b = t(3), u = t(2); function v(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 s.return(); finally { if (n) throw o; } } return t; }(e, r) || function (e, r) 16(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 n(e, r) { (null == r || r > e.size) && (r = e.size);

for (var t = 0, i = new Array(r); t < r; t++) { i[t] = e[t]; } return i; } perform y() { return (y = Object.assign || perform (e) { for (var r = 1; r < arguments.size; r++) { var t = arguments[r]; for (var i in t) { Object.prototype.hasOwnProperty.name(t, i) && (e[i] = t[i]); } } return e; }).apply(this, arguments); } perform p(e, r, t) { return r in e ? Object.defineProperty(e, r, { worth: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } perform x(e) { return (x = "perform" == typeof Image && "image" == _typeof(Image.iterator) ? perform (e) { return _typeof(e); } : perform (e) { return e && "perform" == typeof Image && e.constructor === Image && e !== Image.prototype ? "image" : _typeof(e); })(e); } var o = "https://fastlane.rubiconproject.com/a/api/fastlane.json", l = "https://prebid-server.rubiconproject.com/openrtb2/auction", a = "https://eus.rubiconproject.com/usync.html", d = { FASTLANE: { id: "dt.id", keyv: "dt.keyv", pref: "dt.pref" }, PREBID_SERVER: { id: "id", keyv: "keyv" } }, f = { 1: "468x60", 2: "728x90", 5: "120x90", 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" }; g._each(f, perform (e, r) { return f[e] = r; }); var h = { code: "rubicon", gvlid: 52, supportedMediaTypes: [u.b, u.d], isBidRequestValid: perform isBidRequestValid(e) { if ("object" !== x(e.params)) return !1; for (var r = 0, t = ["accountId"https://news.google.com/__i/rss/rd/articles/,"siteId"https://news.google.com/__i/rss/rd/articles/,"zoneId"]; r < t.size; r++) { if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return g.logError("Rubicon: improper format of accountId or siteId or zoneId."), !1; } var i = m(e, !0); return !!i && ("video" !== i || okay(e)); }, buildRequests: perform buildRequests(e, u) { var n, r = e.filter(perform (e) { return "video" === m(e); }).map(perform (e) { e.startTime = new Date().getTime(); var r, t, i = { id: e.transactionId, take a look at: b.b.getConfig("debug") ? 1 : 0, cur: ["USD"], supply: { tid: e.transactionId }, tmax: b.b.getConfig("TTL") || 1e3, imp: [{ exp: 300, id: e.adUnitCode, secure: 1, ext: p({}, e.bidder, e.params), video: g.deepAccess(e, "mediaTypes.video") || {} }], ext: { prebid: { cache: { vastxml: { returnCreative: !1 } }, concentrating on: { includewinners: !0, includebidderkeys: !1, pricegranularity: j(b.b) }, bidders: { rubicon: } } } }; "rubicon" !== e.bidder && (i.ext.prebid.aliases = p({}, e.bidder, "rubicon")), t = "perform" != typeof e.getFloor || b.b.getConfig("rubicon.disableFloors") ? parseFloat(g.deepAccess(e, "params.flooring")) : "object" !== x(r = e.getFloor({ forex: "USD", mediaType: "video", measurement: A(e, "video") })) || "USD" !== r.forex || isNaN(parseInt(r.flooring)) ? void 0 : parseFloat(r.flooring), isNaN(t) || (i.imp[0].bidfloor = t), i.imp[0].ext[e.bidder].video.size_id = C(e), perform (r, t, e) { if (!r) return; "object" === x(b.b.getConfig("app")) ? r.app = b.b.getConfig("app") : r.web site = { web page: I(t, e) }; "object" === x(b.b.getConfig("machine")) && (r.machine = b.b.getConfig("machine")); t.params.video.language && ["web site"https://news.google.com/__i/rss/rd/articles/,"device"].forEach(function (e) { r[e] && (r[e].content material = y({ language: t.params.video.language }, r[e].content material)); }); }(i, e, u), perform (e, r) { "object" === x(e.imp[0].video) && void 0 === e.imp[0].video.skip && (e.imp[0].video.skip = r.params.video.skip); "object" === x(e.imp[0].video) && void 0 === e.imp[0].video.skipafter && (e.imp[0].video.skipafter = r.params.video.skipdelay); "object" === x(e.imp[0].video) && void 0 === e.imp[0].video.pos && ("atf" === r.params.place ? e.imp[0].video.pos = 1 : "btf" === r.params.place && (e.imp[0].video.pos = 3)); var t = A(r, "video"); e.imp[0].video.w = t[0], e.imp[0].video.h = t[1]; }(i, e); var n, o = _(e, "PREBID_SERVER"); o && g.deepSetValue(i, "consumer.ext.digitrust", o), u.gdprConsent && ("boolean" == typeof u.gdprConsent.gdprApplies && (n = u.gdprConsent.gdprApplies ? 1 : 0), g.deepSetValue(i, "regs.ext.gdpr", n), g.deepSetValue(i, "consumer.ext.consent", u.gdprConsent.consentString)), u.uspConsent && g.deepSetValue(i, "regs.ext.us_privacy", u.uspConsent), e.userId && "object" === x(e.userId) && (e.userId.tdid || e.userId.pubcid || e.userId.lipb || e.userId.idl_env) && (g.deepSetValue(i, "consumer.ext.eids", []), e.userId.tdid && i.consumer.ext.eids.push({ supply: "adserver.org", uids: [{ id: e.userId.tdid, ext: { rtiPartner: "TDID" } }] }), e.userId.pubcid && i.consumer.ext.eids.push({ supply: "pubcommon", uids: [{ id: e.userId.pubcid }] }), e.userId.lipb && e.userId.lipb.lipbid && (i.consumer.ext.eids.push({ supply: "liveintent.com", uids: [{ id: e.userId.lipb.lipbid }] }), i.consumer.ext.tpid = { supply: "liveintent.com", uid: e.userId.lipb.lipbid }, Array.isArray(e.userId.lipb.segments) && e.userId.lipb.segments.size && g.deepSetValue(i, "rp.goal.LIseg", e.userId.lipb.segments)), e.userId.idl_env && i.consumer.ext.eids.push({ supply: "liveramp.com", uids: [{ id: e.userId.idl_env }] })), !0 === b.b.getConfig("coppa") && g.deepSetValue(i, "regs.coppa", 1), e.schain && T(e.schain) && g.deepSetValue(i, "supply.ext.schain", e.schain); var a, s = y({}, e.params.stock, b.b.getConfig("fpd.context")), d = y({}, e.params.customer, b.b.getConfig("fpd.consumer")); g.isEmpty(s) && g.isEmpty(d) || (a = { bidders: [u.bidderCode], config: { fpd: {} } }, g.isEmpty(s) || (a.config.fpd.web site = s), g.isEmpty(d) || (a.config.fpd.consumer = d), g.deepSetValue(i, "ext.prebid.bidderconfig.0", a)); var c = g.deepAccess(e, "fpd.context.pbAdSlot"); return "string" == typeof c && c && g.deepSetValue(i.imp[0].ext, "context.knowledge.adslot", c), e.storedAuctionResponse && g.deepSetValue(i.imp[0], "ext.prebid.storedauctionresponse.id", e.storedAuctionResponse.toString()), g.deepSetValue(i.imp[0], "ext.prebid.auctiontimestamp", u.auctionStart), { methodology: "POST", url: l, knowledge: i, bidRequest: e }; }); return !0 !== b.b.getConfig("rubicon.singleRequest") ? r.concat(e.filter(perform (e) { return "banner" === m(e); }).map(perform (e) { var i = h.createSlotParams(e, u); return { methodology: "GET", url: o, knowledge: h.getOrderedParams(i).scale back(perform (e, r) , "") + "slots=1&rand=".concat(Math.random()), bidRequest: e }; })) : (n = e.filter(perform (e) { return "banner" === m(e); }).scale back(perform (e, r) []).push(r), e; , {}), r.concat(Object.keys(n).scale back(perform (r, e) { var t, i; return t = n[e], i = 10, t.map(perform (e, r) { return r % i == 0 ? t.slice(r, r + i) : null; }).filter(perform (e) { return e; }).forEach(perform (e) { var i = h.combineSlotUrlParams(e.map(perform (e) { return h.createSlotParams(e, u); })); r.push({ methodology: "GET", url: o, knowledge: h.getOrderedParams(i).scale back(perform (e, r) g.isNumber(t) ? "".concat(e).concat(w(r, t), "&") : e; , "") + "slots=".concat(e.size, "&rand=").concat(Math.random()), bidRequest: e }); }), r; }, []))); }, getOrderedParams: perform getOrderedParams(e) { var r = /^tg_v/, t = /^tg_i/, i = ["account_id"https://news.google.com/__i/rss/rd/articles/,"site_id"https://news.google.com/__i/rss/rd/articles/,"zone_id"https://news.google.com/__i/rss/rd/articles/,"size_id"https://news.google.com/__i/rss/rd/articles/,"alt_size_ids"https://news.google.com/__i/rss/rd/articles/,"p_pos"https://news.google.com/__i/rss/rd/articles/,"gdpr"https://news.google.com/__i/rss/rd/articles/,"gdpr_consent"https://news.google.com/__i/rss/rd/articles/,"us_privacy"https://news.google.com/__i/rss/rd/articles/,"rp_schain"https://news.google.com/__i/rss/rd/articles/,"tpid_tdid"https://news.google.com/__i/rss/rd/articles/,"tpid_liveintent.com"https://news.google.com/__i/rss/rd/articles/,"tg_v.LIseg"https://news.google.com/__i/rss/rd/articles/,"dt.id"https://news.google.com/__i/rss/rd/articles/,"dt.keyv"https://news.google.com/__i/rss/rd/articles/,"dt.pref"https://news.google.com/__i/rss/rd/articles/,"rf"https://news.google.com/__i/rss/rd/articles/,"p_geo.latitude"https://news.google.com/__i/rss/rd/articles/,"p_geo.longitude"https://news.google.com/__i/rss/rd/articles/,"kw"].concat(Object.keys(e).filter(function (e) { return r.take a look at(e); })).concat(Object.keys(e).filter(perform (e) { return t.take a look at(e); })).concat(["tk_flint"https://news.google.com/__i/rss/rd/articles/,"x_source.tid"https://news.google.com/__i/rss/rd/articles/,"x_source.pchain"https://news.google.com/__i/rss/rd/articles/,"p_screen_res"https://news.google.com/__i/rss/rd/articles/,"rp_floor"https://news.google.com/__i/rss/rd/articles/,"rp_secure"https://news.google.com/__i/rss/rd/articles/,"tk_user_key"]); return i.concat(Object.keys(e).filter(perform (e) { return -1 === i.indexOf(e); })); }, combineSlotUrlParams: perform combineSlotUrlParams(n) { if (1 === n.size) return n[0]; var i = n.scale back(perform (r, t, i) { return Object.keys(t).forEach(perform (e) (r[e] = new Array(n.size)), r[e].splice(i, 1, t[e]); ), r; }, {}), o = new RegExp("^([^;]*)(;1)+$"); return Object.keys(i).forEach(perform (e) { var r = i[e].be a part of(";"), t = r.match(o); i[e] = t ? t[1] : r; }), i; }, createSlotParams: perform createSlotParams(e, r) { e.startTime = new Date().getTime(); var t, i = e.params, n = A(e, "banner"), o = v(i.latLong || [], 2), a = o[0], s = o[1], d = b.b.getConfig("rubicon.int_type"), c = ; "perform" != typeof e.getFloor || b.b.getConfig("rubicon.disableFloors") || (t = e.getFloor({ forex: "USD", mediaType: "banner", measurement: "*" }), c.rp_hard_floor = "object" !== x(t) || "USD" !== t.forex || isNaN(parseInt(t.flooring)) ? void 0 : t.flooring), c.p_pos = "atf" === i.place || "btf" === i.place ? i.place : "", e.userId && (e.userId.tdid && (c.tpid_tdid = e.userId.tdid), e.userId.lipb && e.userId.lipb.lipbid && (c["tpid_liveintent.com"] = e.userId.lipb.lipbid, Array.isArray(e.userId.lipb.segments) && e.userId.lipb.segments.size && (c["tg_v.LIseg"] = e.userId.lipb.segments.be a part of(","))), e.userId.idl_env && (c["tpid_liveramp.com"] = e.userId.idl_env)), r.gdprConsent && ("boolean" == typeof r.gdprConsent.gdprApplies && (c.gdpr = Quantity(r.gdprConsent.gdprApplies)), c.gdpr_consent = r.gdprConsent.consentString), r.uspConsent && (c.us_privacy = encodeURIComponent(r.uspConsent)); var u = y({}, i.customer, b.b.getConfig("fpd.consumer")); Object.keys(u).forEach(perform (e) Array.isArray(u[e]) ? u[e].toString() : JSON.stringify(u[e])); ); var p = y({}, i.stock, b.b.getConfig("fpd.context")); Object.keys(p).forEach(perform (e) Array.isArray(p[e]) ? p[e].toString() : JSON.stringify(p[e])); ); var l = (i.key phrases || []).concat(g.deepAccess(b.b.getConfig("fpd.consumer"), "key phrases") || [], g.deepAccess(b.b.getConfig("fpd.context"), "key phrases") || []); c.kw = Array.isArray(l) && l.size ? l.be a part of(",") : ""; var f = g.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof f && f && (c["tg_i.dfp_ad_unit_code"] = f.substitute(/^/+/, "")); var m = _(e, "FASTLANE"); return y(c, m), !0 === b.b.getConfig("coppa") && (c.coppa = 1), e.schain && T(e.schain) && (c.rp_schain = h.serializeSupplyChain(e.schain)), c; }, serializeSupplyChain: perform serializeSupplyChain(e) { if (!T(e)) return ""; var r = e.ver, t = e.full, i = e.nodes; return "".concat(r, ",").concat(t, "!").concat(h.serializeSupplyChainNodes(i)); }, serializeSupplyChainNodes: perform serializeSupplyChainNodes(e) { var t = ["asi"https://news.google.com/__i/rss/rd/articles/,"sid"https://news.google.com/__i/rss/rd/articles/,"hp"https://news.google.com/__i/rss/rd/articles/,"rid"https://news.google.com/__i/rss/rd/articles/,"name"https://news.google.com/__i/rss/rd/articles/,"domain"]; return e.map(perform (r) { return t.map(perform (e) ).be a part of(","); }).be a part of("!"); }, interpretResponse: perform interpretResponse(d, e) { var c = e.bidRequest; if (!(d = d.physique) || "object" !== x(d)) return []; if (d.seatbid) { var r = g.deepAccess(d, "ext.errors.rubicon"); Array.isArray(r) && 0 < r.size && g.logWarn("Rubicon: Error in video response"); var o = []; return d.seatbid.forEach(perform (n) { (n.bid || []).forEach(perform (e) { var r = ; e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid); var t, i = g.deepAccess(d, "ext.responsetimemillis.rubicon"); c && i && (c.serverResponseTimeMs = i), g.deepAccess(e, "ext.prebid.kind") === u.d ? (r.mediaType = u.d, (t = g.deepAccess(e, "ext.prebid.concentrating on")) && "object" === x(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === x(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)) : g.logWarn("Rubicon: video response acquired non-video media kind"), o.push(r); }); }), o; } var t = d.adverts; return "object" !== x(c) || Array.isArray(c) || "video" !== m(c) || "object" !== x(t) || (t = t[c.adUnitCode]), !Array.isArray(t) || t.size < 1 ? [] : t.scale back(perform (e, r, t) { if ("okay" !== r.standing) return e; var i, n, o, a, s = Array.isArray(c) ? c[t] : c; return s && "object" === x(s) ? (i = { requestId: s.bidId, forex: "USD", creativeId: r.creative_id || "".concat(r.community || ""https://news.google.com/__i/rss/rd/articles/,"-").concat(r.advertiser || ""), cpm: r.cpm || 0, dealId: r.deal, ttl: 300, netRevenue: !1 !== b.b.getConfig("rubicon.netRevenue"), rubicon: { advertiserId: r.advertiser, networkId: r.community }, meta: { advertiserId: r.advertiser, networkId: r.community } }, r.creative_type && (i.mediaType = r.creative_type), r.creative_type === u.d ? (i.width = s.params.video.playerWidth, i.top = s.params.video.playerHeight, i.vastUrl = r.creative_depot_url, i.impression_id = r.impression_id, i.videoCacheKey = r.impression_id) : (i.advert = (o = r.script, a = r.impression_id, "nnnx3c!-- Rubicon Challenge Advert Tag --x3en

nn

nn")), n = v(f[r.size_id].break up("x").map(perform (e) {
return Quantity(e);
}), 2), i.width = n[0], i.top = n[1]), i.rubiconTargeting = (Array.isArray(r.concentrating on) ? r.concentrating on : []).scale back(perform (e, r) {
return e[r.key] = r.values[0], e;
}, {
rpfl_elemid: s.adUnitCode
}), e.push(i)) : g.logError("Rubicon: bidRequest undefined at index place:".concat(t), c, d), e;
}, []).type(perform (e, r) );
},
getUserSyncs: perform getUserSyncs(e, r, t, i) {
if (!R && e.iframeEnabled) {
var n = "";
return t && "string" == typeof t.consentString && ("boolean" == typeof t.gdprApplies ? n += "?gdpr=".concat(Quantity(t.gdprApplies), "&gdpr_consent=").concat(t.consentString) : n += "?gdpr_consent=".concat(t.consentString)), i && (n += "".concat(n ? "&" : "?"https://news.google.com/__i/rss/rd/articles/,"us_privacy=").concat(encodeURIComponent(i))), R = !0, {
kind: "iframe",
url: a + n
};
}
},
transformBidParams: perform transformBidParams(e) {
return g.convertTypes({
accountId: "quantity",
siteId: "quantity",
zoneId: "quantity"
}, e);
}
};

perform _(e, r) {
var t,
i = 0 < arguments.size && void 0 !== e ? e : {}, n = 1 < arguments.size ? r : void 0; if (!n || !d[n]) return null; var o = d[n]; var a = perform () { var e = g.deepAccess(i, "userId.digitrustid.knowledge"); if (e) return e; var r = window.DigiTrust && (b.b.getConfig("digiTrustId") || window.DigiTrust.getUser({ member: "T9QSFKPDN9" })); return r && r.success && r.id || null; }(); if (!a || a.privateness && a.privateness.optout) return null; var s = (p(t = {}, o.id, a.id), p(t, o.keyv, a.keyv), t); return o.pref && (s[o.pref] = 0), s; } perform I(e, r) perform A(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(g.deepAccess(e, "mediaTypes.video.playerSize")) && 1 === e.mediaTypes.video.playerSize.size ? i = e.mediaTypes.video.playerSize[0] : Array.isArray(e.sizes) && 0 < e.sizes.size && Array.isArray(e.sizes[0]) && 1 < e.sizes[0].size && (i = e.sizes[0]), i; } var n = []; return Array.isArray(t.sizes) ? n = t.sizes : void 0 !== g.deepAccess(e, "mediaTypes.banner.sizes") ? n = s(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) && 0 < e.sizes.size ? n = s(e.sizes) : g.logWarn("Rubicon: no sizes are setup or discovered"), S(n); } perform s(e) { return g.parseSizesInput(e).scale back(perform (e, r) { var t = parseInt(f[r], 10); return t && e.push(t), e; }, []); } perform c(e) { return "object" === x(g.deepAccess(e, "params.video")) && void 0 !== g.deepAccess(e, "mediaTypes.".concat(u.d)); } perform m(e, r) { var t = 1 < arguments.size && void 0 !== r && r; return c(e) ? -1 === ["outstream"https://news.google.com/__i/rss/rd/articles/,"instream"].indexOf(g.deepAccess(e, "mediaTypes.".concat(u.d, ".context"))) ? void (t && g.logError("Rubicon: mediaTypes.video.context should be outstream or instream")) : A(e, "video").size < 2 ? void (t && g.logError("Rubicon: couldn't decide the playerSize of the video")) : (t && g.logMessage("Rubicon: making video request for adUnit", e.adUnitCode), "video") : 0 === A(e, "banner").size ? void (t && g.logError("Rubicon: couldn't decide the sizes for banner request")) : (t && g.logMessage("Rubicon: making banner request for adUnit", e.adUnitCode), "banner"); } perform S(e) { var n = [15, 2, 9]; return e.type(perform (e, r) -1 < i ? -1 === t ? 1 : -1 === i ? -1 : t - i : e - r; ); } function C(e) { var r = parseInt(g.deepAccess(e, "params.video.size_id")); return isNaN(r) ? "outstream" === g.deepAccess(e, "mediaTypes.".concat(u.d, ".context")) ? 203 : 201 : r; } function j(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 k(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(g.deepAccess(r, "mediaTypes.video." + e)) !== n[e] && (t = !1, g.logError("Rubicon: mediaTypes.video." + e + " is required and must be of type: " + n[e])); }), t; } function T(e) { var r = !1, t = ["asi"https://news.google.com/__i/rss/rd/articles/,"sid"https://news.google.com/__i/rss/rd/articles/,"hp"]; return e.nodes && ((r = e.nodes.reduce(function (e, r) { return e ? t.every(function (e) { return r[e]; }) : e; }, !0)) || g.logError("Rubicon: required schain params missing")), r; } function w(e, r) { return "rp_schain" === e ? "rp_schain=".concat(r) : "".concat(e, "=").concat(encodeURIComponent(r)); } var R = !1; Object(i.registerBidder)(h); } }, [677]); pbjsChunk([93], { 719: function _(e, t, r) { e.exports = r(720); }, 720: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return o; }), r.d(t, "_isInbounds", function () { return a; }), t._getPlatform = v; var n = r(1), y = r(0), i = r(2), c = r(3), g = r(10), d = 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 o, a = e[Symbol.iterator](); !(n = (o = a.next()).done) && (r.push(o.value), !t || r.length !== t); n = !0) { ; } } catch (e) { i = !0, s = e; } finally { try a.return(); finally { if (i) throw s; } } return r; }(e, t) || function (e, t) I)nt(?:8(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.size) && (t = e.size);

for (var r = 0, n = new Array(t); r < t; r++) { n[r] = e[r]; } return n; } perform u() { return (u = Object.assign || perform (e) { for (var t = 1; t < arguments.size; t++) { var r = arguments[t]; for (var n in r) { Object.prototype.hasOwnProperty.name(r, n) && (e[n] = r[n]); } } return e; }).apply(this, arguments); } perform p(e, t, r) { return t in e ? Object.defineProperty(e, t, { worth: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e; } var b = "sonobi", l = Object(y.generateUUID)(), o = { code: b, supportedMediaTypes: [i.b, i.d], isBidRequestValid: perform 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: perform buildRequests(e, t) { var r = e.map(perform (e) { var t = perform (e) { if (e.params.ad_unit) return e.params.ad_unit; return e.params.placement_id; }(e); return /^[/]?[d]+[[/].+[/]?]?$/.take a look at(t) ? (t = "/" === t.charAt(0) ? t : "/" + t, p({}, "".concat(t, "|").concat(e.bidId), "".concat(f(e)).concat(m(e)))) : /^[0-9a-fA-F]{20}$/.take a look at(t) && 20 === t.size ? p({}, e.bidId, "".concat(t, "|").concat(f(e)).concat(m(e))) : void Object(y.logError)("The advert unit code or Sonobi Placement id for slot ".concat(e.bidId, " is invalid")); }), n = {}; r.forEach(perform (e) { u(n, e); }); var i = { key_maker: JSON.stringify(n), ref: t.refererInfo.referer, s: Object(y.generateUUID)(), pv: l, vp: v(), lib_name: "prebid", lib_v: "3.23.0", us: 0 }; c.b.getConfig("userSync") && c.b.getConfig("userSync").syncsPerBidder && (i.us = c.b.getConfig("userSync").syncsPerBidder), d.a.canBidderRegisterSync("iframe", b) ? 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)); var s = perform (t) { var e = perform () { var e = window.DigiTrust && (c.b.getConfig("digiTrustId") || window.DigiTrust.getUser({ member: t })); return e && e.success && e.id || null; }(); if (!e || e.privateness && e.privateness.optout) return null; return e; }("fhnS5drwmH"); s && (i.digid = s.id, i.digkeyv = s.keyv), e[0].schain && (i.schain = JSON.stringify(e[0].schain)), Object(y.deepAccess)(e[0], "userId") && 0 < Object.keys(e[0].userId).size && (i.userid = JSON.stringify(e[0].userId)); var o = e[0].params.key phrases; if (o && (i.kw = o), 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")), { methodology: "GET", url: a, withCredentials: !0, knowledge: i, bidderRequests: e }; }, interpretResponse: perform interpretResponse(e, l) { var f = e.physique, m = [], v = l.knowledge.ref; return 0 === Object.keys(f.slots).size || Object.keys(f.slots).forEach(perform (e) { var t = f.slots[e], r = e.break up("|").slice(-1)[0], n = perform (e, t) { for (var r = 0; r < e.size; r++) { if (e[r].bidId === t) return e[r]; } }(l.bidderRequests, r), i = null; "video" === t.sbi_ct && (i = "video"https://news.google.com/__i/rss/rd/articles/,"outstream" === Object(y.deepAccess)(n, "mediaTypes.video.context") && (i = "outstream")); var s, o, a, c, d, u, p, b = j(i, v); t.sbi_aid && t.sbi_mouse && t.sbi_size && (a = void 0 === (o = (s = h(t.sbi_size.break up("x"), 2))[0]) ? 1 : o, d = void 0 === (c = s[1]) ? 1 : c, u = , t.sbi_dozer && (u.dealId = t.sbi_dozer), "video" === i ? (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), delete u.advert, delete u.width, delete u.top) : "outstream" === i && n && (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), u.renderer = perform (e, t) { var r = 2 < arguments.size && void 0 !== arguments[2] ? arguments[2] : {}, n = g.a.set up({ id: t.assist, url: "https://mtrx.go.sonobi.com/sbi_outstream_renderer.js", config: r, loaded: !1, adUnitCode: e }); strive { n.setRender(O); } catch (e) { Object(y.logWarn)("Prebid Error calling setRender on renderer", e); } return n.setEventHandlers({ impression: perform impression() { return Object(y.logMessage)("Sonobi outstream video impression occasion"); }, loaded: perform loaded() { return Object(y.logMessage)("Sonobi outstream video loaded occasion"); }, ended: perform ended() { Object(y.logMessage)("Sonobi outstream renderer video occasion"); } }), n; }(n.adUnitCode, u, Object(y.deepAccess)(n, "renderer.choices")), p = Object(y.deepAccess)(n, "params.sizes"), Array.isArray(p) && Array.isArray(p[0]) && (p = p[0]), p && (u.width = p[0], u.top = p[1])), m.push(u)); }), m; }, getUserSyncs: perform getUserSyncs(e, t) { var r = []; strive { e.pixelEnabled && t[0].physique.sbi_px.forEach(perform (e) { r.push({ kind: e.kind, url: e.url }); }); } catch (e) {} return r; } }; perform f(e) { return Object(y.deepAccess)(e, "mediaTypes.video") ? "" : e.params.sizes ? Object(y.parseSizesInput)(e.params.sizes).be a part of(",") : Object(y.deepAccess)(e, "mediaTypes.banner.sizes") ? Object(y.parseSizesInput)(Object(y.deepAccess)(e, "mediaTypes.banner.sizes")).be a part of(",") : e.sizes ? Object(y.parseSizesInput)(e.sizes).be a part of(",") : void 0; } perform m(e) f=".concat(e.params.flooring) : ""; var j = perform j(i, s) { return perform (e, t) ; }; var a = perform a(e) { var r = 0 < arguments.size && void 0 !== e ? e : window; return perform () { var e = 0 < arguments.size && 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; }; }; perform v() { var e = 0 < arguments.size && void 0 !== arguments[0] ? arguments[0] : window, t = a(e), r = 992, n = 768; return t(0, 768) ? "cellular" : t(n, r) ? "pill" : "desktop"; } perform O(i) { i.renderer.push(perform () { var e = h(i.getSize().break up("x"), 2), t = e[0], r = e[1], n = new window.SbiOutstreamRenderer(); n.init({ vastUrl: i.vastUrl, top: r, width: t }), n.setRootElement(i.adUnitCode); }); } Object(n.registerBidder)(o); } }, [719]); pbjsChunk([85], { 741: perform _(e, r, t) { e.exports = t(742); }, 742: perform _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { worth: !0 }), t.d(r, "spec", perform () { return n; }); var a = t(1), d = t(0), p = 12, o = 11, c = 0, u = 22, n = { code: "teads", supportedMediaTypes: ["video"https://news.google.com/__i/rss/rd/articles/,"banner"], isBidRequestValid: perform isBidRequestValid(e) d.logError("Teads placementId and pageId parameters are required. Bid aborted."), a; , buildRequests: perform buildRequests(e, r) { var t = e.map(I), a = { referrer: perform (e) { var r = ""; e && e.refererInfo && e.refererInfo.referer && (r = e.refererInfo.referer); return r; }(r), knowledge: t, deviceWidth: display screen.width, hb_version: "3.23.0" }; e[0].schain && (a.schain = e[0].schain); var n, d, i, s = r.gdprConsent; return r && s && (n = "boolean" == typeof s.gdprApplies, d = "string" == typeof s.consentString, i = n ? perform (e, r, t) { var a = p; e ? perform (e, r) e.hasGlobalConsent : !(!e (r, t) && (a = o) : a = c; return a; }(s.gdprApplies, s.vendorData, s.apiVersion) : u, a.gdpr_iab = { consent: d ? s.consentString : "", standing: i, apiVersion: s.apiVersion }), r && r.uspConsent && (a.us_privacy = r.uspConsent), { methodology: "POST", url: "https://a.teads.tv/hb/bid-request", knowledge: JSON.stringify(a) }; }, interpretResponse: perform interpretResponse(e) { var t = []; return (e = e.physique).responses && e.responses.forEach(perform (e) { var r = { cpm: e.cpm, width: e.width, top: e.top, forex: e.forex, netRevenue: !0, ttl: e.ttl, advert: e.advert, requestId: e.bidId, creativeId: e.creativeId, placementId: e.placementId }; e.dealId && (r.dealId = e.dealId), t.push(r); }), t; } }; perform I(e) { var r, t = {}, a = d.getValue(e.params, "placementId"), n = d.getValue(e.params, "pageId"); return t.sizes = (r = e, d.parseSizesInput(perform (e) { var r = d.deepAccess(e, "mediaTypes.video.playerSize"), t = d.deepAccess(e, "mediaTypes.video.sizes"), a = d.deepAccess(e, "mediaTypes.banner.sizes"); return d.isArray(a) || d.isArray(r) || d.isArray(t) ? [a, t, r].scale back(perform (r, e) { return d.isArray(e) && (d.isArray(e[0]) ? e.forEach(perform (e) { r.push(e); }) : r.push(e)), r; }, []) : e.sizes; }(r))), t.bidId = d.getBidIdParameter("bidId", e), t.bidderRequestId = d.getBidIdParameter("bidderRequestId", e), t.placementId = parseInt(a, 10), t.pageId = parseInt(n, 10), t.adUnitCode = d.getBidIdParameter("adUnitCode", e), t.auctionId = d.getBidIdParameter("auctionId", e), t.transactionId = d.getBidIdParameter("transactionId", e), t; } perform i(e) { return 0 < parseInt(e); } Object(a.registerBidder)(n); } }, [741]); pbjsChunk([76], { 761: function _(r, e, t) { r.exports = t(762); }, 762: function _(r, e, t) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), t.d(e, "tripleliftAdapterSpec", function () { return s; }); var n = t(2), i = t(1), o = t(0), u = t(3); function p(r) { return function (r) { if (Array.isArray(r)) return d(r); }(r) || function (r) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(r)) return Array.from(r); }(r) || function (r, e) (r) || 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 d(r, e) { (null == e || e > r.size) && (e = r.size);

for (var t = 0, n = new Array(e); t < e; t++) { n[t] = r[t]; } return n; } var a = !0, c = null, s = { code: "triplelift", supportedMediaTypes: [n.b], isBidRequestValid: perform isBidRequestValid(r) { return void 0 !== r.params.inventoryCode; }, buildRequests: perform buildRequests(r, e) { var t, n = "https://tlx.3lift.com/header/auction?", i = perform (r) { var e = {}, t = r[0].schain; e.imp = r.map(perform (r, e) { return { id: e, tagid: r.params.inventoryCode, flooring: r.params.flooring, banner: { format: r.sizes.filter(l).map(perform (r) { return { w: r[0], h: r[1] }; }) } }; }); var n = [].concat(p(perform (r) { return f(r, "tdid"https://news.google.com/__i/rss/rd/articles/,"adserver.org"https://news.google.com/__i/rss/rd/articles/,"TDID"); }(r)), p(perform (r) { return f(r, "idl_env"https://news.google.com/__i/rss/rd/articles/,"liveramp.com"https://news.google.com/__i/rss/rd/articles/,"idl"); }(r)), p(perform (r) { return f(r, "criteoId"https://news.google.com/__i/rss/rd/articles/,"criteo.com"https://news.google.com/__i/rss/rd/articles/,"criteoId"); }(r))); 0 < n.size && (e.consumer = { ext: { eids: n } }); t && (e.ext = { schain: t }); return e; }(r); return n = o.tryAppendQueryString(n, "lib"https://news.google.com/__i/rss/rd/articles/,"prebid"), n = o.tryAppendQueryString(n, "v"https://news.google.com/__i/rss/rd/articles/,"3.23.0"), e && e.refererInfo && (t = e.refererInfo.referer, n = o.tryAppendQueryString(n, "referrer", t)), e && e.timeout && (n = o.tryAppendQueryString(n, "tmax", e.timeout)), e && e.gdprConsent && (void 0 !== e.gdprConsent.gdprApplies && (a = e.gdprConsent.gdprApplies, n = o.tryAppendQueryString(n, "gdpr", a.toString())), void 0 !== e.gdprConsent.consentString && (c = e.gdprConsent.consentString, n = o.tryAppendQueryString(n, "cmp_cs", c))), e && e.uspConsent && (n = o.tryAppendQueryString(n, "us_privacy", e.uspConsent)), !0 === u.b.getConfig("coppa") && (n = o.tryAppendQueryString(n, "coppa", !0)), n.lastIndexOf("&") === n.size - 1 && (n = n.substring(0, n.size - 1)), o.logMessage("tlCall request constructed: " + n), { methodology: "POST", url: n, knowledge: i, bidderRequest: e }; }, interpretResponse: perform interpretResponse(r, e) { var t = e.bidderRequest; return (r.physique.bids || []).map(perform (r) { return perform (r, e) { var t = {}, n = e.width || 1, i = e.top || 1, u = e.deal_id || "", o = e.crid || ""; 0 != e.cpm && e.advert && (t = { requestId: r.bids[e.imp_id].bidId, cpm: e.cpm, width: n, top: i, netRevenue: !0, advert: e.advert, creativeId: o, dealId: u, forex: "USD", ttl: 300, tl_source: e.tl_source }); return t; }(t, r); }); }, getUserSyncs: perform getUserSyncs(r, e, t, n) { var i = perform (r) { if (!r) return; if (r.iframeEnabled) return "iframe"; if (r.pixelEnabled) return "picture"; }(r); if (i) { var u = "https://eb2.3lift.com/sync?"; return "picture" === i && (u = o.tryAppendQueryString(u, "px", 1), u = o.tryAppendQueryString(u, "src"https://news.google.com/__i/rss/rd/articles/,"prebid")), null !== c && (u = o.tryAppendQueryString(u, "gdpr", a), u = o.tryAppendQueryString(u, "cmp_cs", c)), n && (u = o.tryAppendQueryString(u, "us_privacy", n)), [{ type: i, url: u }]; } } }; perform f(r, e, t, n) { return r.map((o = e, perform (r) { return r && r.userId && r.userId[o]; })).filter(perform (r) { return !!r; }).map((i = t, u = n, perform (r) { return { supply: i, uids: [{ id: r, ext: { rtiPartner: u } }] }; })); var i, u, o; } perform l(r) { return 2 === r.size && "quantity" == typeof r[0] && "quantity" == typeof r[1]; } Object(i.registerBidder)(s); } }, [761]); pbjsChunk([75], { 763: perform _(e, r, t) { e.exports = t(764); }, 764: perform _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { worth: !0 }), t.d(r, "spec", perform () { return v; }); var m = t(0), s = t(1), o = t(10), 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 = "Cannot discover in requested bids the bid with auid - ", u = "Seatbid array from response has empty merchandise", 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: perform isBidRequestValid(e) { return !!e.params.uid; }, buildRequests: perform buildRequests(e, r) { var a, o, p = [], u = {}, c = {}, f = {}, l = "web"; (e || []).forEach(perform (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.key phrases) || (0 < (s = m.transformBidderParamKeywords(e.params.key phrases)).size && 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], mother and father: [] }; var i = d[t]; n.forEach(perform (e) { f[e] = !0, u[r] || (u[r] = {}), u[r][e] ? u[r][e].push(i) : u[r][e] = [i], i.mother and father.push({ dad or mum: u[r], key: e, uid: r }); }); }); var t = { pt: l, auids: p.be a part of(","), sizes: m.getKeys(f).be a part of(","), r: o, wrapperType: "Prebid_js", wrapperVersion: "3.23.0" }; return a && (t.key phrases = 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 ? Quantity(r.gdprConsent.gdprApplies) : 1), r.uspConsent && (t.us_privacy = r.uspConsent)), { methodology: "GET", url: "https://sofia.trustx.org/hb", knowledge: m.parseQueryStringParameters(t).substitute(/&$/, ""), bidsMap: u }; }, interpretResponse: perform interpretResponse(e, r, t) { var s = 2 < arguments.size && void 0 !== t ? t : o.a; e = e && e.physique; var n, d = [], i = r.bidsMap, a = r.knowledge.pt; return e ? e.seatbid && !e.seatbid.size && (n = b) : n = y, !n && e.seatbid && e.seatbid.forEach(perform (e) { !perform (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.value, width: e.w, top: e.h, creativeId: e.auid, forex: "USD", netRevenue: "gross" !== r, ttl: 360, dealId: e.dealid }, "video" === e.content_type ? (u.vastXml = e.adm, u.mediaType = c.d, u.adResponse = { content material: u.vastXml }, p.renderer || p.mediaTypes && p.mediaTypes.video && "outstream" !== p.mediaTypes.video.context || (u.renderer = perform (e, r) { var t = r.set up({ id: e.id, url: e.url, loaded: !1 }); strive { 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.advert = e.adm, u.mediaType = c.b), t.push(u), o.bids.size || o.mother and father.forEach(perform (e) (delete r[t], m.getKeys(r).size ))) : n = g + e.auid : n = l + JSON.stringify(e); } n && m.logError(n); }(perform (e) (e), i, a, d, s); }), n && m.logError(n), d; }, getUserSyncs: perform getUserSyncs(e) { if (e.pixelEnabled) return [{ type: "image", url: "https://sofia.trustx.org/push_sync" }]; } }; perform E(e) { var r; r = e.worth, m.isArray(r) && 0 < r.size && "" === e.worth[0] && delete e.worth; } perform w(e) { e.renderer.push(perform () { window.ANOutstreamVideo.renderAd({ targetId: e.adUnitCode, adResponse: e.adResponse }); }); } Object(s.registerBidder)(v); } }, [763]); 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 = "_"; perform concatVia(node, through) { var tag = node.dataset && node.dataset.through; if (tag) { through = (through.size ? tag + DELIMITER : tag) + through; } return through; } perform addToClickedLinks() { doc.documentElement.addEventListener("click on", perform (e) { var a; var through = ""; // detect hyperlink nodes and accumulate through directives to append to the href var node = e.goal; // the aspect the place this occasion originated might have been faraway from the dom, e.g. within the case of the OIL CMP which disappears after you work together with it whereas (node && node !== e.currentTarget) { if (node.tagName === "A") { a = node; } through = concatVia(node, through); node = node.parentNode; } if (a && through) { if (pageType) { through = pageType + DELIMITER + through; } a.href = addViaToUrl(a.href, through); } }); } perform addToSubmittedForms() { doc.documentElement.addEventListener("submit", perform (e) { var type = e.goal; // accumulate through directives var through = ""; var node = e.goal; whereas (node !== e.currentTarget) { through = concatVia(node, through); node = node.parentNode; } if (through) { if (pageType) { through = pageType + DELIMITER + through; } // dynamically create a hidden enter for the shape url var enter = doc.createElement("enter"); enter.kind = "hidden"; enter.title = "through"; enter.worth = through; type.appendChild(enter); } }); } // begin listening solely as soon as, 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://news.google.com/__i/rss/rd/articles/,"$window"https://news.google.com/__i/rss/rd/articles/,"_throttle"https://news.google.com/__i/rss/rd/articles/,"Eventify", function ($document, $window, _throttle, Eventify) { var list = [], Seen, VisibleEvent; /** * @param {quantity} a * @param {quantity} b * @returns {*} * @see http://jsperf.com/math-min-vs-if-condition-vs/8 */ perform 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;
}
/**
* Quick loop by way of watched components
*/

perform onScroll() {
record.forEach(updateVisibility);
}
/**
* updates seen property
* @param {Visble} merchandise
* @param {{}} evt
* @fires Seen#proven
* @fires Seen#hidden
*/

perform updateSeen(merchandise, evt) {
var px = evt.visiblePx,
p.c = evt.visiblePercent; // if some pixels are seen and we're higher/equal to threshold

if (px && p.c >= merchandise.shownThreshold && !merchandise.seen) {
merchandise.seen = true;
setTimeout(perform () {
merchandise.set off("proven", new VisibleEvent("proven", evt));
}, 15); // if no pixels or p.c is lower than threshold
} else if ((!px || p.c < 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 normalized viewport width * @return {number} */ function getViewportWidth() /** * 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) /** * @param {Factor} el * @param {ClientRect} rect * @param {Quantity} preloadThreshhold * @param {Quantity} innerHeight * @return {Boolean} */ perform shouldBePreloaded(el, rect, preloadThreshhold, innerHeight) { return rect.high <= 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) {
outcome += getLinearSpacialHash(the rest, Math.flooring(stepSize / base), optimalK - 1, base);
}

return outcome;
}
/**
* @param {ClientRect} rect
* @param {quantity} innerHeight
* @returns {quantity}
*/

perform getVerticallyVisiblePixels(rect, innerHeight) {
return min(innerHeight, max(rect.backside, 0)) - min(max(rect.high, 0), innerHeight);
}
/**
* Get offset of aspect relative to whole web page
*
* @param {Factor} el
* @returns {{left: quantity, high: quantity}}
* @see http://jsperf.com/offset-vs-getboundingclientrect/7
*/

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

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

return {
left: offsetLeft,
high: offsetTop
};
}
/**
* Create a brand new Seen class to watch when components enter and depart the viewport
*
* Name destroy perform to cease listening (that is till we've higher assist for expecting Node Elimination)
* @param {Factor} el
* @param {{shownThreshold: quantity, hiddenThreshold: quantity}} [options]
* @class
* @instance this.seen = new $visibility.Seen(el);
*/

Seen = perform Seen(el, choices) {
choices = choices || {};
this.el = el;
this.seen = false;
this.preload = false;
this.preloadThreshhold = choices && choices.preloadThreshhold || 0;
this.shownThreshold = choices && choices.shownThreshold || 0;
this.hiddenThreshold = choices && min(choices.shownThreshold, choices.hiddenThreshold) || 0;
record.push(this);
updateVisibility(this); // set instantly to seen or not
};

Seen.prototype = {
/**
* Cease triggering.
*/
destroy: perform destroy() {
// take away from record
record.splice(record.indexOf(this), 1);
}
/**
* @title Seen#on
* @perform
* @param 'hidden' e EventName
* @param {perform} cb Callback
*/

/**
* @title Seen#set off
* @perform
* @param 'hidden' e
* @param {{}}
*/

};
Eventify.allow(Seen.prototype);

VisibleEvent = perform VisibleEvent(kind, choices) {
var _this = this;

this.kind = kind;
Object.keys(choices).forEach(perform (key) {
_this[key] = choices[key];
});
}; // pay attention for scroll occasions (throttled)

$doc.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.Seen = Seen;
}]);
}, {}];
require=(perform e(t,n,r){perform s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="perform"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Can't discover module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].name(l.exports,perform(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=="perform"&&require;for(var o=0;o
Filmy Online

LEAVE A REPLY

Please enter your comment!
Please enter your name here