/* prebid.js v10.10.0 Updated: 2025-09-09 Modules: userId, adtelligentBidAdapter, mgidBidAdapter, consentManagementGpp, consentManagementTcf, gppControl_usnat, gppControl_usstates, gptPreAuction, storageControl, tcfControl, mygaruIdSystem */ if (window.pbjs && window.pbjs.libLoaded) try { window.pbjs.getConfig("debug") && console.warn( "Attempted to load a copy of Prebid.js that clashes with the existing 'pbjs' instance. Load aborted.", ); } catch (e) {} else ((function () { (() => { var t, r = { 58928: (t, r, e) => { function n(t, r, e, n, o) { for (r = r.split ? r.split(".") : r, n = 0; n < r.length; n++) t = t ? t[r[n]] : o; return t === o ? e : t; } e.d(r, { A: () => n }); }, 35481: (t) => { /* * @license MIT * Fun Hooks v1.1.0 * (c) @snapwich */ ((i.SYNC = 1), (i.ASYNC = 2), (i.QUEUE = 4)); var r = "fun-hooks", e = Object.freeze({ ready: 0 }), n = new WeakMap(); function o(t, r) { return Array.prototype.slice.call(t, r); } function i(t) { var a, f = {}, c = []; function u(t, r) { return "function" == typeof t ? y.call(null, "sync", t, r) : "string" == typeof t && "function" == typeof r ? y.apply(null, arguments) : "object" == typeof t ? l.apply(null, arguments) : void 0; } function l(t, r, e) { var n = !0; void 0 === r && ((r = Object.getOwnPropertyNames(t).filter( (t) => !t.match(/^_/), )), (n = !1)); var o = {}, i = ["constructor"]; do { (r.forEach(function (r) { var n = r.match(/(?:(sync|async):)?(.+)/), a = n[1] || "sync", f = n[2]; if ( !o[f] && "function" == typeof t[f] && -1 === i.indexOf(f) ) { var c = t[f]; o[f] = t[f] = y(a, c, e ? [e, f] : void 0); } }), (t = Object.getPrototypeOf(t))); } while (n && t); return o; } function p(t) { var e = Array.isArray(t) ? t : t.split("."); return e.reduce(function (n, o, i) { var f = n[o], u = !1; return ( f || (i === e.length - 1 ? (a || c.push(function () { u || console.warn( r + ": referenced '" + t + "' but it was never created", ); }), (n[o] = s(function (t) { ((n[o] = t), (u = !0)); }))) : (n[o] = {})) ); }, f); } function s(t) { var r = [], e = [], o = function () {}, i = { before: function (t, e) { return f.call(this, r, "before", t, e); }, after: function (t, r) { return f.call(this, e, "after", t, r); }, getHooks: function (t) { var n = r.concat(e); "object" == typeof t && (n = n.filter(function (r) { return Object.keys(t).every(function (e) { return r[e] === t[e]; }); })); try { Object.assign(n, { remove: function () { return ( n.forEach(function (t) { t.remove(); }), this ); }, }); } catch (t) { console.error( "error adding `remove` to array, did you modify Array.prototype?", ); } return n; }, removeAll: function () { return this.getHooks().remove(); }, }, a = { install: function (n, i, a) { ((this.type = n), (o = a), a(r, e), t && t(i)); }, }; return (n.set(i.after, a), i); function f(t, n, i, a) { var f = { hook: i, type: n, priority: a || 10, remove: function () { var n = t.indexOf(f); -1 !== n && (t.splice(n, 1), o(r, e)); }, }; return ( t.push(f), t.sort(function (t, r) { return r.priority - t.priority; }), o(r, e), this ); } } function y(e, f, u) { var l = f.after && n.get(f.after); if (l) { if (l.type !== e) throw r + ": recreated hookable with different type"; return f; } var y, v = u ? p(u) : s(), d = { get: function (t, r) { return v[r] || Reflect.get.apply(Reflect, arguments); }, }; a || c.push(b); var h = new Proxy(f, d); return ( n.get(h.after).install(e, h, function (t, r) { var n, i = []; t.length || r.length ? (t.forEach(a), (n = i.push(void 0) - 1), r.forEach(a), (y = function (t, r, a) { var f, c = i.slice(), u = 0, l = "async" === e && "function" == typeof a[a.length - 1] && a.pop(); function p(t) { "sync" === e ? (f = t) : l && l.apply(null, arguments); } function s(t) { if (c[u]) { var n = o(arguments); return ( (s.bail = p), n.unshift(s), c[u++].apply(r, n) ); } "sync" === e ? (f = t) : l && l.apply(null, arguments); } return ( (c[n] = function () { var n = o(arguments, 1); "async" === e && l && (delete s.bail, n.push(s)); var i = t.apply(r, n); "sync" === e && s(i); }), s.apply(null, a), f ); })) : (y = void 0); function a(t) { i.push(t.hook); } b(); }), h ); function b() { !a && ("sync" !== e || t.ready & i.SYNC) && ("async" !== e || t.ready & i.ASYNC) ? "sync" !== e && t.ready & i.QUEUE ? (d.apply = function () { var t = arguments; c.push(function () { h.apply(t[1], t[2]); }); }) : (d.apply = function () { throw r + ": hooked function not ready"; }) : (d.apply = y); } } return ( (t = Object.assign({}, e, t)).ready ? (u.ready = function () { ((a = !0), (function (t) { for (var r; (r = t.shift()); ) r(); })(c)); }) : (a = !0), (u.get = p), u ); } t.exports = i; }, 23715: (t, r, e) => { e.d(r, { A: () => n }); const n = { pbGlobal: "pbjs", defineGlobal: !0, features: { NATIVE: !0, VIDEO: !0, UID2_CSTG: !0, GREEDY: !1, AUDIO: !0, LOG_NON_ERROR: !0, LOG_ERROR: !0, }, distUrlBase: "https://cdn.jsdelivr.net/npm/prebid.js@10.10.0/dist/chunks/", skipCalls: {}, }; }, 83435: (t, r, e) => { function n(t, r, e) { r.split && (r = r.split(".")); for ( var n, o, i = 0, a = r.length, f = t; i < a && "__proto__" != (o = "" + r[i++]) && "constructor" !== o && "prototype" !== o; ) f = f[o] = i === a ? e : typeof (n = f[o]) == typeof r ? n : 0 * r[i] != 0 || ~("" + r[i]).indexOf(".") ? {} : []; } e.d(r, { J: () => n }); }, 91490: (t, r, e) => { function n(t) { var r, e, o; if (Array.isArray(t)) { for (e = Array((r = t.length)); r--; ) e[r] = (o = t[r]) && "object" == typeof o ? n(o) : o; return e; } if ("[object Object]" === Object.prototype.toString.call(t)) { for (r in ((e = {}), t)) "__proto__" === r ? Object.defineProperty(e, r, { value: n(t[r]), configurable: !0, enumerable: !0, writable: !0, }) : (e[r] = (o = t[r]) && "object" == typeof o ? n(o) : o); return e; } return t; } e.d(r, { Q: () => n }); }, }, e = {}; function n(t) { var o = e[t]; if (void 0 !== o) return o.exports; var i = (e[t] = { exports: {} }); return (r[t].call(i.exports, i, i.exports, n), i.exports); } ((n.m = r), (t = []), (n.O = (r, e, o, i) => { if (!e) { var a = 1 / 0; for (l = 0; l < t.length; l++) { for (var [e, o, i] = t[l], f = !0, c = 0; c < e.length; c++) (!1 & i || a >= i) && Object.keys(n.O).every((t) => n.O[t](e[c])) ? e.splice(c--, 1) : ((f = !1), i < a && (a = i)); if (f) { t.splice(l--, 1); var u = o(); void 0 !== u && (r = u); } } return r; } i = i || 0; for (var l = t.length; l > 0 && t[l - 1][2] > i; l--) t[l] = t[l - 1]; t[l] = [e, o, i]; }), (n.n = (t) => { var r = t && t.__esModule ? () => t.default : () => t; return (n.d(r, { a: r }), r); }), (n.d = (t, r) => { for (var e in r) n.o(r, e) && !n.o(t, e) && Object.defineProperty(t, e, { enumerable: !0, get: r[e] }); }), (n.g = (function () { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")(); } catch (t) { if ("object" == typeof window) return window; } })()), (n.o = (t, r) => Object.prototype.hasOwnProperty.call(t, r)), (n.r = (t) => { ("undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 })); }), (() => { var t = { 39673: 0 }; n.O.j = (r) => 0 === t[r]; var r = (r, e) => { var o, i, [a, f, c] = e, u = 0; if (a.some((r) => 0 !== t[r])) { for (o in f) n.o(f, o) && (n.m[o] = f[o]); if (c) var l = c(n); } for (r && r(e); u < a.length; u++) ((i = a[u]), n.o(t, i) && t[i] && t[i][0](), (t[i] = 0)); return n.O(l); }, e = (self.pbjsChunk = self.pbjsChunk || []); (e.forEach(r.bind(null, 0)), (e.push = r.bind(null, e.push.bind(e)))); })()); var o = n.O(void 0, [60802, 37769, 51085], () => n(57215)); o = n.O(o); })(); (self.pbjsChunk = self.pbjsChunk || []).push([ [60802], { 67464: (e, t, n) => { n.d(t, { A4: () => c, J7: () => l, Pg: () => u }); var r = n(75049), i = n(10466), o = n(51748), s = n(70736); const a = (0, o.m)(), d = "outstream"; function c(e) { const { url: t, config: n, id: o, callback: c, loaded: l, adUnitCode: u, renderNow: g, } = e; ((this.url = t), (this.config = n), (this.handlers = {}), (this.id = o), (this.renderNow = g), (this.adUnitCode = u), (this.loaded = l), (this.cmd = []), (this.push = (e) => { "function" == typeof e ? this.loaded ? e.call() : this.cmd.push(e) : (0, i.logError)( "Commands given to Renderer.push must be wrapped in a function", ); }), (this.callback = c || (() => { ((this.loaded = !0), this.process()); })), (this.render = function () { const e = arguments, n = () => { this._render ? this._render.apply(this, e) : (0, i.logWarn)( "No render function was provided, please use .setRender on the renderer", ); }; !(function (e) { const t = a.adUnits.find((t) => t.code === e); if (!t) return !1; const n = t?.renderer, r = !!(n && n.url && n.render), i = t?.mediaTypes?.video?.renderer, o = !!(i && i.url && i.render); return !!( (r && !0 !== n.backupOnly) || (o && !0 !== i.backupOnly) ); })(u) ? g ? n() : (this.cmd.unshift(n), (0, r.R)(t, s.tp, d, this.callback, this.documentContext)) : ((0, i.logWarn)( `External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ${u}`, ), n()); }.bind(this))); } function l(e) { return !(!e || (!e.url && !e.renderNow)); } function u(e, t, n) { let r = null; (e.config && e.config.documentResolver && (r = e.config.documentResolver(t, document, n)), r || (r = document), (e.documentContext = r), e.render(t, e.documentContext)); } ((c.install = function (e) { let { url: t, config: n, id: r, callback: i, loaded: o, adUnitCode: s, renderNow: a, } = e; return new c({ url: t, config: n, id: r, callback: i, loaded: o, adUnitCode: s, renderNow: a, }); }), (c.prototype.getConfig = function () { return this.config; }), (c.prototype.setRender = function (e) { this._render = e; }), (c.prototype.setEventHandlers = function (e) { this.handlers = e; }), (c.prototype.handleVideoEvent = function (e) { let { id: t, eventName: n } = e; ("function" == typeof this.handlers[n] && this.handlers[n](), (0, i.logMessage)( `Prebid Renderer event for id ${t} type ${n}`, )); }), (c.prototype.process = function () { for (; this.cmd.length > 0; ) try { this.cmd.shift().call(); } catch (e) { (0, i.logError)( `Error processing Renderer command on ad unit '${this.adUnitCode}':`, e, ); } })); }, 45808: (e, t, n) => { n.d(t, { DL: () => l, Ml: () => i, Ue: () => r, VJ: () => g, hE: () => u, hq: () => c, mo: () => d, pY: () => f, qX: () => o, uc: () => a, yg: () => p, yl: () => s, }); const r = "accessDevice", i = "syncUser", o = "enrichUfpd", s = "enrichEids", a = "fetchBids", d = "reportAnalytics", c = "transmitEids", l = "transmitUfpd", u = "transmitPreciseGeo", g = "transmitTid", f = "loadExternalScript", p = "accessRequestCredentials"; }, 77610: (e, t, n) => { n.d(t, { s: () => i }); var r = n(51409); const i = (0, n(25291).ZI)((e) => r.Ay.resolveAlias(e)); }, 70736: (e, t, n) => { n.d(t, { Tn: () => a, fW: () => o, tW: () => i, tp: () => r, zu: () => s, }); const r = "prebid", i = "bidder", o = "userId", s = "rtd", a = "analytics"; }, 25291: (e, t, n) => { n.d(t, { Dk: () => s, Ez: () => l, Ii: () => o, OI: () => u, TQ: () => m, U3: () => b, XG: () => g, ZI: () => h, Zw: () => c, bt: () => f, e3: () => p, iK: () => a, q7: () => d, }); var r = n(70736), i = n(32592); const o = "component", s = o + "Type", a = o + "Name", d = "adapterCode", c = "storageType", l = "storageKey", u = "write", g = "configName", f = "syncType", p = "syncUrl", m = "_config"; function h(e) { return function (t, n, i) { const c = { [s]: t, [a]: n, [o]: `${t}.${n}` }; return (t === r.tW && (c[d] = e(n)), b(Object.assign(c, i))); }; } const b = (0, i.A_)("sync", (e) => e); }, 53578: (e, t, n) => { n.d(t, { Vx: () => d, l7: () => a, p4: () => h, $V: () => m, nl: () => f, ZP: () => b, $p: () => y, uD: () => p, }); var r = n(58928), i = n(91933), o = n(53202), s = n(45808); const a = [ "data", "ext.data", "yob", "gender", "keywords", "kwarray", "id", "buyeruid", "customdata", ] .map((e) => `user.${e}`) .concat("device.ext.cdep"), d = ["user.eids", "user.ext.eids"], c = [ "user.geo.lat", "user.geo.lon", "device.geo.lat", "device.geo.lon", ], l = ["device.ip"], u = ["device.ipv6"]; function g(e) { return Object.assign( { get() {}, run(e, t, n, r, i) { const o = n && n[r]; if (m(o) && i()) { const e = this.get(o); void 0 === e ? delete n[r] : (n[r] = e); } }, }, e, ); } function f(e) { return ( e.forEach((e) => { e.paths = e.paths.map((e) => { const t = e.split("."), n = t.pop(); return [t.length > 0 ? t.join(".") : null, n]; }); }), function (t, n) { const i = []; for ( var o = arguments.length, s = new Array(o > 2 ? o - 2 : 0), a = 2; a < o; a++ ) s[a - 2] = arguments[a]; const d = p(t, ...s); return ( e.forEach((e) => { if (!1 !== t[e.name]) for (const [o, s] of e.paths) { const a = null == o ? n : (0, r.A)(n, o); if ( (i.push(e.run(n, o, a, s, d.bind(null, e))), !1 === t[e.name]) ) return; } }), i.filter((e) => null != e) ); } ); } function p(e) { for ( var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++ ) n[r - 1] = arguments[r]; return function (t) { return ( e.hasOwnProperty(t.name) || (e[t.name] = !!t.applies(...n)), e[t.name] ); }; } function m(e) { return ( null != e && ("object" != typeof e || Object.keys(e).length > 0) ); } function h(e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.io; return function (n) { return !t(e, n); }; } function b() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o.io; return [ { name: s.DL, paths: a, applies: h(s.DL, e) }, { name: s.hq, paths: d, applies: h(s.hq, e) }, { name: s.hE, paths: c, applies: h(s.hE, e), get: (e) => Math.round(100 * (e + Number.EPSILON)) / 100, }, { name: s.hE, paths: l, applies: h(s.hE, e), get: (e) => (function (e) { if (!e) return null; const t = e.split(".").map(Number); if (4 != t.length) return null; const n = []; for (let e = 0; e < 4; e++) { const t = Math.max(0, Math.min(8, 24 - 8 * e)); n.push((255 << (8 - t)) & 255); } return t.map((e, t) => e & n[t]).join("."); })(e), }, { name: s.hE, paths: u, applies: h(s.hE, e), get: (e) => (function (e) { if (!e) return null; let t = e.split(":").map((e) => parseInt(e, 16)); for (t = t.map((e) => (isNaN(e) ? 0 : e)); t.length < 8; ) t.push(0); if (8 != t.length) return null; const n = []; for (let e = 0; e < 8; e++) { const t = Math.max(0, Math.min(16, 64 - 16 * e)); n.push((65535 << (16 - t)) & 65535); } return t .map((e, t) => e & n[t]) .map((e) => e.toString(16)) .join(":"); })(e), }, { name: s.VJ, paths: ["source.tid"], applies: h(s.VJ, e) }, ].map(g); } const y = (function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o.io; const t = f(b(e)), n = f( (function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o.io; return [ { name: s.hq, paths: ["userId", "userIdAsEids"], applies: h(s.hq, e), }, { name: s.VJ, paths: ["ortb2Imp.ext.tid"], applies: h(s.VJ, e), }, ].map(g); })(e), ); return function (e) { const r = {}; return { ortb2: (n) => (t(r, n, e), n), bidRequest: (t) => (n(r, t, e), t), }; }; })(); (0, o.qB)(s.VJ, "enableTIDs config", () => { if (!i.$W.getConfig("enableTIDs")) return { allow: !1, reason: "TIDs are disabled" }; }); }, 53202: (e, t, n) => { n.d(t, { io: () => s, qB: () => o }); var r = n(10466), i = n(25291); const [o, s] = (function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : (0, r.prefixLog)("Activity control:"); const t = {}; function n(e) { return ((t[e] = t[e] || []), t[e]); } function o(t, n, r, o) { let s; try { s = r(o); } catch (r) { (e.logError(`Exception in rule ${n} for '${t}'`, r), (s = { allow: !1, reason: r })); } return ( s && Object.assign({ activity: t, name: n, component: o[i.Ii] }, s) ); } const s = {}; function a(t) { let { activity: n, name: r, allow: i, reason: o, component: a, } = t; const d = `${r} ${i ? "allowed" : "denied"} '${n}' for '${a}'${o ? ":" : ""}`, c = s.hasOwnProperty(d); if ( (c && clearTimeout(s[d]), (s[d] = setTimeout(() => delete s[d], 1e3)), !c) ) { const t = [d]; (o && t.push(o), (i ? e.logInfo : e.logWarn).apply(e, t)); } } return [ function (e, t, r) { let i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 10; const o = n(e), s = o.findIndex((e) => { let [t] = e; return i < t; }), a = [i, t, r]; return ( o.splice(s < 0 ? o.length : s, 0, a), function () { const e = o.indexOf(a); e >= 0 && o.splice(e, 1); } ); }, function (e, t) { let r, i; for (const [s, d, c] of n(e)) { if (r !== s && i) break; r = s; const n = o(e, d, c, t); if (n) { if (!n.allow) return (a(n), !1); i = n; } } return (i && a(i), !0); }, ]; })(); }, 71852: (e, t, n) => { n.d(t, { $A: () => I, BS: () => P, Hh: () => W, Pk: () => j, Uc: () => B, XO: () => M, _0: () => D, bw: () => _, n6: () => C, qn: () => $, vB: () => N, vW: () => R, vd: () => U, }); var r = n(10466), i = n(18014), o = n(11418), s = n(91933), a = n(67464), d = n(59794), c = n(63006), l = n(45144), u = n(32592), g = n(80356), f = n(13064), p = n(51409), m = n(37841), h = n(80869), b = n(72122); const { AD_RENDER_FAILED: y, AD_RENDER_SUCCEEDED: v, STALE_RENDER: E, BID_WON: A, EXPIRED_RENDER: w, } = o.qY, { EXCEPTION: T } = o.as, I = (0, u.A_)("sync", function (e) { return ( arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : f.U9.resolve() ) .then((t) => t ?? c.n.findBidByAdId(e)) .catch(() => {}); }), C = (0, u.A_)("sync", function (e) { (((0, b.$T)(e.eventtrackers)[b.RO]?.[b.Ni] || []).forEach((e) => (0, r.triggerPixel)(e), ), i.emit(A, e), c.n.addWinningBid(e)); }); function S(e) { let { reason: t, message: n, bid: o, id: s } = e; const a = { reason: t, message: n }; (o && ((a.bid = o), (a.adId = o.adId)), s && (a.adId = s), (0, r.logError)(`Error rendering ad (id: ${s}): ${n}`), i.emit(y, a)); } function O(e) { let { doc: t, bid: n, id: r } = e; const o = { doc: t, bid: n, adId: r }; (p.Ay.callAdRenderSucceededBidder(n.adapterCode || n.bidder, n), i.emit(v, o)); } function B(e, t) { switch (e.event) { case o.qY.AD_RENDER_FAILED: S({ bid: t, id: t.adId, reason: e.info.reason, message: e.info.message, }); break; case o.qY.AD_RENDER_SUCCEEDED: O({ doc: null, bid: t, id: t.adId }); break; default: (0, r.logError)( `Received event request for unsupported event: '${e.event}' (adId: '${t.adId}')`, ); } } function R(e, t, n) { let { resizeFn: r, fireTrackers: i = g.vO } = n; if ("resizeNativeHeight" === e.action) r(e.width, e.height); else i(e, t); } const k = { [o.nl.EVENT]: B }; k[o.nl.NATIVE] = R; const U = (0, u.A_)("sync", function (e, t) { const { ad: n, adUrl: i, cpm: o, originalCpm: s, width: a, height: d, instl: c, } = e, l = { AUCTION_PRICE: s || o, CLICKTHROUGH: t?.clickUrl || "" }; return { ad: (0, r.replaceMacros)(n, l), adUrl: (0, r.replaceMacros)(i, l), width: a, height: d, instl: c, }; }), D = (0, u.A_)("sync", function (e) { let { renderFn: t, resizeFn: n, bidResponse: i, options: s, doc: a, isMainDocument: c = a === document && !(0, r.inIframe)(), } = e; const l = i.mediaType === d.G_; if (c || l) return void S({ reason: o.as.PREVENT_WRITING_ON_MAIN_DOCUMENT, message: l ? "Cannot render video ad without a renderer" : "renderAd was prevented from writing to the main document.", bid: i, id: i.adId, }); const u = U(i, s); t(Object.assign({ adId: i.adId }, u)); const { width: g, height: f } = u; null != (g ?? f) && n(g, f); }); function _(e) { let { renderFn: t, resizeFn: n, adId: a, options: d, bidResponse: c, doc: l, } = e; W(c, () => { if (null != c) { if ( (c.status !== o.tl.RENDERED || ((0, r.logWarn)(`Ad id ${a} has been rendered before`), i.emit(E, c), !s.$W.getConfig("auctionOptions")?.suppressStaleRender)) && (h.uW.isBidNotExpired(c) || ((0, r.logWarn)(`Ad id ${a} has been expired`), i.emit(w, c), !s.$W.getConfig("auctionOptions")?.suppressExpiredRender)) ) try { D({ renderFn: t, resizeFn: n, bidResponse: c, options: d, doc: l, }); } catch (e) { S({ reason: o.as.EXCEPTION, message: e.message, id: a, bid: c, }); } } else S({ reason: o.as.CANNOT_FIND_AD, message: `Cannot find ad '${a}'`, id: a, }); }); } function $(e) { const t = (0, m.BO)(e.metrics); (t.checkpoint("bidRender"), t.timeBetween("bidWon", "bidRender", "render.deferred"), t.timeBetween("auctionEnd", "bidRender", "render.pending"), t.timeBetween("requestBids", "bidRender", "render.e2e"), (e.status = o.tl.RENDERED)); } D.before(function (e, t) { const { bidResponse: n, doc: r } = t; (0, a.J7)(n.renderer) ? ((0, a.Pg)(n.renderer, n, r), O({ doc: r, bid: n, id: n.adId }), e.bail()) : e(t); }, 100); const q = new WeakMap(), x = new WeakSet(); function W(e, t) { null != e ? (q.set(e, t), e.deferRendering || N(e), j(e)) : t(); } function j(e) { x.has(e) || (x.add(e), C(e)); } function N(e) { const t = q.get(e); t && (t(), $(e), q.delete(e)); } function P(e, t, n) { let i; function s(e, n) { S(Object.assign({ id: t, bid: i }, { reason: e, message: n })); } function a(t, n) { const r = e.defaultView?.frameElement; r && (t && ((r.width = t), r.style.width && (r.style.width = `${t}px`)), n && ((r.height = n), r.style.height && (r.style.height = `${n}px`))); } const d = ((c = { resizeFn: a }), function (e, t, n) { k.hasOwnProperty(e) && k[e](t, n, c); }); var c; function u(t) { t.ad ? (e.write(t.ad), e.close(), O({ doc: e, bid: i, id: i.adId })) : (0, l.HH)(i) .then((n) => n( t, { sendMessage: (e, t) => d(e, t, i), mkFrame: r.createIframe, }, e.defaultView, ), ) .then( () => O({ doc: e, bid: i, id: i.adId }), (e) => { (s(e?.reason || o.as.EXCEPTION, e?.message), e?.stack && (0, r.logError)(e)); }, ); const n = document.createComment( `Creative ${i.creativeId} served by ${i.bidder} Prebid.js Header Bidding`, ); (0, r.insertElement)(n, e, "html"); } try { t && e ? I(t).then((r) => { ((i = r), _({ renderFn: u, resizeFn: a, adId: t, options: { clickUrl: n?.clickThrough }, bidResponse: r, doc: e, })); }) : s( o.as.MISSING_DOC_OR_ADID, "missing " + (t ? "doc" : "adId"), ); } catch (e) { s(T, e.message); } } function M() { if (!window.frames[o.IY]) if (document.body) { const e = (0, r.createInvisibleIframe)(); ((e.name = o.IY), document.body.appendChild(e)); } else window.requestAnimationFrame(M); } }, 71958: (e, t, n) => { n.d(t, { U: () => s }); var r = n(51748), i = n(10466); const o = (0, r.m)(); function s(e, t) { ((o.adServers = o.adServers || {}), (o.adServers[e] = o.adServers[e] || {}), Object.keys(t).forEach((n) => { o.adServers[e][n] ? (0, i.logWarn)( `Attempting to add an already registered function property ${n} for AdServer ${e}.`, ) : (o.adServers[e][n] = t[n]); })); } }, 5672: (e, t, n) => { function r(e) { var t = e; return { callBids: function () {}, setBidderCode: function (e) { t = e; }, getBidderCode: function () { return t; }, }; } n.d(t, { A: () => r }); }, 51409: (e, t, n) => { n.d(t, { S1: () => j, Ay: () => re, tS: () => J, pX: () => Y, Mf: () => X, K5: () => H, Gs: () => K, }); var r = n(26665), i = n(10466), o = n(80356), s = n(3516), a = n(62201), d = n(91933), c = n(32592); const l = "requests", u = "wins", g = "auctions"; let f = {}; function p(e, t) { const n = (f[e] = f[e] || { bidders: {} }); return t ? ((n.bidders[t] = n.bidders[t] || {}), n.bidders[t]) : n; } function m(e, t) { return function (n, r) { const i = p(n, t && r); return ((i[e] = (i[e] ?? 0) + 1), i[e]); }; } function h(e, t) { return function (n, r) { return p(n, t && r)[e] ?? 0; }; } const b = m(l, !1), y = m(l, !0), v = m(u, !0), E = m(g, !1), A = h(l, !1), w = h(l, !0), T = h(u, !0), I = h(g, !1); var C = n(10867), S = n(41385), O = n(18014), B = n(11418), R = n(37841), k = n(63006), U = n(70736), D = n(53202), _ = n(45808), $ = n(25291), q = n(53578), x = n(72122); const W = "pbsBidAdapter", j = { CLIENT: "client", SERVER: "server" }, N = { isAllowed: D.io, redact: q.$p }, P = {}, M = {}, F = {}; let G = []; d.$W.getConfig("s2sConfig", (e) => { e && e.s2sConfig && (G = (0, r.cy)(e.s2sConfig) ? e.s2sConfig : [e.s2sConfig]); }); const L = (0, $.ZI)((e) => Z.resolveAlias(e)); function z(e) { return e.configName ?? e.name; } function H(e) { return L(U.tp, W, { [$.XG]: z(e) }); } const V = ["nativeParams", "nativeOrtbRequest", "renderer"]; function Q(e) { let { bidderCode: t, auctionId: n, bidderRequestId: o, adUnits: s, src: a, metrics: d, tids: c, } = e; return s .reduce((e, s) => { const l = s.bids.filter((e) => e.bidder === t); return ( null == t && 0 === l.length && null != s.s2sBid && l.push({ bidder: null }), e.push( l.reduce((e, l) => { c.hasOwnProperty(s.transactionId) || (c[s.transactionId] = (0, i.generateUUID)()); const u = null == (l = Object.assign( {}, l, { ortb2Imp: (0, i.mergeDeep)( {}, s.ortb2Imp, l.ortb2Imp, { ext: { tid: c[s.transactionId] } }, ), }, (0, r.SH)(s, V), )).mediaTypes ? s.mediaTypes : l.mediaTypes; return ( (0, i.isValidMediaTypes)(u) ? (l = Object.assign({}, l, { mediaTypes: u })) : (0, i.logError)( `mediaTypes is not correctly configured for adunit ${s.code}`, ), "client" === a && y(s.code, t), e.push( Object.assign({}, l, { adUnitCode: s.code, transactionId: s.transactionId, adUnitId: s.adUnitId, sizes: u?.banner?.sizes || u?.video?.playerSize || [], bidId: l.bid_id || (0, i.generateUUID)(), bidderRequestId: o, auctionId: n, src: a, metrics: d, auctionsCount: I(s.code), bidRequestsCount: A(s.code), bidderRequestsCount: w(s.code, l.bidder), bidderWinsCount: T(s.code, l.bidder), deferBilling: !!s.deferBilling, }), ), e ); }, []), ), e ); }, []) .reduce(i.flatten, []) .filter((e) => "" !== e); } const J = (0, c.A_)( "sync", function (e, t) { let { getS2SBidders: n = Y } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; if (null == t) return e; { const r = n(t); return e.filter((e) => { if (!r.has(e.bidder)) return !1; if (null == e.s2sConfigName) return !0; const n = z(t); return ( Array.isArray(e.s2sConfigName) ? e.s2sConfigName : [e.s2sConfigName] ).includes(n); }); } }, "filterBidsForAdUnit", ); const K = (0, c.A_)("sync", (e, t) => e, "setupAdUnitMediaTypes"); function Y(e) { (0, r.cy)(e) || (e = [e]); const t = new Set([null]); return ( e .filter((e) => e && e.enabled) .flatMap((e) => e.bidders) .forEach((e) => t.add(e)), t ); } const X = (0, c.A_)( "sync", function (e, t) { let { getS2SBidders: n = Y } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; const r = n(t); return (0, i.getBidderCodes)(e).reduce( (e, t) => (e[r.has(t) ? j.SERVER : j.CLIENT].push(t), e), { [j.CLIENT]: [], [j.SERVER]: [] }, ); }, "partitionBidders", ), Z = { bidderRegistry: P, analyticsRegistry: F, aliasRegistry: M, makeBidRequests: (0, c.A_)( "sync", function (e, t, n, s, a) { let c = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : {}, l = arguments.length > 6 ? arguments[6] : void 0; ((l = (0, R.BO)(l)), O.emit(B.qY.BEFORE_REQUEST_BIDS, e), (0, o.nk)(e), e .map((e) => e.code) .filter(i.uniques) .forEach(E), e.forEach((e) => { ((0, r.Qd)(e.mediaTypes) || (e.mediaTypes = {}), (e.bids = e.bids.filter( (e) => !e.bidder || N.isAllowed(_.uc, L(U.tW, e.bidder)), )), b(e.code)); }), (e = K(e, a))); let { [j.CLIENT]: u, [j.SERVER]: g } = X(e, G); d.$W.getConfig("bidderSequence") === d.Ov && (u = (0, i.shuffle)(u)); const f = (0, C.EN)(), p = [], m = c.global || {}, h = c.bidder || {}, y = {}, v = {}; function A(e, t, n) { const r = e.hasOwnProperty(t) ? e[t] : n(); return (null != t && (e[t] = r), r); } function w(e, t) { const n = N.redact(null != t ? t : L(U.tW, e.bidderCode)), r = A(y, e.bidderCode, i.generateUUID), o = Object.freeze( n.ortb2( (0, i.mergeDeep)({}, m, h[e.bidderCode], { source: { tid: r }, }), ), ); return ( (e.ortb2 = o), (e.bids = e.bids.map( (e) => ((e.ortb2 = o), n.bidRequest(e)), )), e ); } G.forEach((o) => { const s = H(o); if (o && o.enabled && N.isAllowed(_.uc, s)) { const { adUnits: a, hasModuleBids: d } = (function ( e, t, ) { let n = (0, r.Go)(e), o = !1; return ( n.forEach((e) => { const n = e.bids.filter( (e) => e.module === W && e.params?.configName === z(t), ); (1 === n.length ? ((e.s2sBid = n[0]), (o = !0), (e.ortb2Imp = (0, i.mergeDeep)( {}, e.s2sBid.ortb2Imp, e.ortb2Imp, ))) : n.length > 1 && (0, i.logWarn)( 'Multiple "module" bids for the same s2s configuration; all will be ignored', n, ), (e.bids = J(e.bids, t).map( (e) => ( (e.bid_id = (0, i.getUniqueIdentifierStr)()), e ), ))); }), (n = n.filter( (e) => !( (t.filterBidderlessCalls && 1 === e.bids.length && null == e.bids[0].bidder) || (0 === e.bids.length && null == e.s2sBid) ), )), { adUnits: n, hasModuleBids: o } ); })(e, o), c = (0, i.generateUUID)(); ((0 === g.length && d ? [null] : g).forEach((e) => { const d = A(v, e, () => ({})), u = (0, i.generateUUID)(), g = l.fork(), m = w( { bidderCode: e, auctionId: n, bidderRequestId: u, uniquePbsTid: c, bids: Q({ bidderCode: e, auctionId: n, bidderRequestId: u, adUnits: (0, r.Go)(a), src: B.RW.SRC, metrics: g, tids: d, }), auctionStart: t, timeout: o.timeout, src: B.RW.SRC, refererInfo: f, metrics: g, }, s, ); 0 !== m.bids.length && p.push(m); }), a.forEach((e) => { const t = e.bids.filter((e) => p.find((t) => t.bids.find((t) => t.bidId === e.bid_id), ), ); e.bids = t; }), p.forEach((e) => { void 0 === e.adUnitsS2SCopy && (e.adUnitsS2SCopy = a.filter( (e) => e.bids.length > 0 || null != e.s2sBid, )); })); } }); const T = (function (e) { let t = (0, r.Go)(e); return ( t.forEach((e) => { e.bids = J(e.bids, null); }), (t = t.filter((e) => 0 !== e.bids.length)), t ); })(e); return ( u.forEach((e) => { const o = A(v, e, () => ({})), a = (0, i.generateUUID)(), d = l.fork(), c = w({ bidderCode: e, auctionId: n, bidderRequestId: a, bids: Q({ bidderCode: e, auctionId: n, bidderRequestId: a, adUnits: (0, r.Go)(T), src: "client", metrics: d, tids: o, }), auctionStart: t, timeout: s, refererInfo: f, metrics: d, }), u = P[e]; (u || (0, i.logError)( `Trying to make a request for bidder that does not exist: ${e}`, ), u && c.bids && 0 !== c.bids.length && p.push(c)); }), p.forEach((e) => { (S.mW.getConsentData() && (e.gdprConsent = S.mW.getConsentData()), S.t6.getConsentData() && (e.uspConsent = S.t6.getConsentData()), S.ad.getConsentData() && (e.gppConsent = S.ad.getConsentData())); }), p ); }, "makeBidRequests", ), callBids(e, t, n, r, o, s, c) { let l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : {}; if (!t.length) return void (0, i.logWarn)( "callBids executed with no bidRequests. Were they filtered by labels or sizing?", ); const [u, g] = t.reduce( (e, t) => ( e[Number(void 0 !== t.src && t.src === B.RW.SRC)].push(t), e ), [[], []], ); var f = []; g.forEach((e) => { for (var t = -1, n = 0; n < f.length; ++n) if (e.uniquePbsTid === f[n].uniquePbsTid) { t = n; break; } t <= -1 && f.push(e); }); let p = 0; (G.forEach((e) => { if (e && f[p] && Y(e).has(f[p].bidderCode)) { const t = (0, a.g4)( s, o ? { request: o.request.bind(null, "s2s"), done: o.done, } : void 0, ), d = e.bidders, u = P[e.adapter], m = f[p].uniquePbsTid, h = f[p].adUnitsS2SCopy, b = g.filter((e) => e.uniquePbsTid === m); if (u) { const o = { ad_units: h, s2sConfig: e, ortb2Fragments: l, requestBidsTimeout: s, }; if (o.ad_units.length) { const e = b.map( (e) => ( (e.start = (0, i.timestamp)()), function (t) { t || c(e.bidderRequestId); for ( var n = arguments.length, i = new Array(n > 1 ? n - 1 : 0), o = 1; o < n; o++ ) i[o - 1] = arguments[o]; r.apply(e, [t, ...i]); } ), ), s = (0, i.getBidderCodes)(o.ad_units).filter((e) => d.includes(e), ); ((0, i.logMessage)( `CALLING S2S HEADER BIDDERS ==== ${s.length > 0 ? s.join(", ") : 'No bidder specified, using "ortb2Imp" definition(s) only'}`, ), b.forEach((e) => { O.emit(B.qY.BID_REQUESTED, { ...e, tid: e.auctionId, }); }), u.callBids( o, g, n, (t) => e.forEach((e) => e(t)), t, )); } } else (0, i.logError)("missing " + e.adapter); p++; } }), u.forEach((e) => { e.start = (0, i.timestamp)(); const t = P[e.bidderCode]; d.$W.runWithBidder(e.bidderCode, () => { ((0, i.logMessage)("CALLING BIDDER"), O.emit(B.qY.BID_REQUESTED, e)); }); const l = (0, a.g4)( s, o ? { request: o.request.bind(null, e.bidderCode), done: o.done, } : void 0, ), u = r.bind(e); try { d.$W.runWithBidder( e.bidderCode, t.callBids.bind( t, e, n, u, l, () => c(e.bidderRequestId), d.$W.callbackWithBidder(e.bidderCode), ), ); } catch (t) { ((0, i.logError)( `${e.bidderCode} Bid Adapter emitted an uncaught error when parsing their bidRequest`, { e: t, bidRequest: e }, ), u()); } })); }, videoAdapters: [], registerBidAdapter(e, t) { let { supportedMediaTypes: n = [] } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; e && t ? "function" == typeof e.callBids ? ((P[t] = e), S.o2.register(U.tW, t, e.getSpec?.().gvlid), n.includes("video") && Z.videoAdapters.push(t), n.includes("native") && o.mT.push(t)) : (0, i.logError)( "Bidder adaptor error for bidder code: " + t + "bidder must implement a callBids() function", ) : (0, i.logError)("bidAdapter or bidderCode not specified"); }, aliasBidAdapter(e, t, n) { if (void 0 === P[t]) { const r = P[e]; if (void 0 === r) { const n = []; (G.forEach((r) => { if (r.bidders && r.bidders.length) { const i = r && r.bidders; r && i.includes(t) ? (M[t] = e) : n.push(e); } }), n.forEach((e) => { (0, i.logError)( 'bidderCode "' + e + '" is not an existing bidder.', "adapterManager.aliasBidAdapter", ); })); } else try { let a; const d = (function (e) { const t = []; Z.videoAdapters.includes(e) && t.push("video"); o.mT.includes(e) && t.push("native"); return t; })(e); if (r.constructor.prototype != Object.prototype) ((a = new r.constructor()), a.setBidderCode(t)); else { const { useBaseGvlid: o = !1 } = n || {}, d = r.getSpec(), c = o ? d.gvlid : n?.gvlid; null == c && null != d.gvlid && (0, i.logWarn)( `Alias '${t}' will NOT re-use the GVL ID of the original adapter ('${d.code}', gvlid: ${d.gvlid}). Functionality that requires TCF consent may not work as expected.`, ); const l = n && n.skipPbsAliasing; ((a = (0, s.xb)( Object.assign({}, d, { code: t, gvlid: c, skipPbsAliasing: l, }), )), (M[t] = e)); } Z.registerBidAdapter(a, t, { supportedMediaTypes: d }); } catch (t) { (0, i.logError)( e + " bidder does not currently support aliasing.", "adapterManager.aliasBidAdapter", ); } } else (0, i.logMessage)( 'alias name "' + t + '" has been already specified.', ); }, resolveAlias(e) { let t, n = e; for (; M[n] && (!t || !t.has(n)); ) ((n = M[n]), (t = t || new Set()).add(n)); return n; }, registerAnalyticsAdapter(e) { let { adapter: t, code: n, gvlid: r } = e; t && n ? "function" == typeof t.enableAnalytics ? ((t.code = n), (F[n] = { adapter: t, gvlid: r }), S.o2.register(U.Tn, n, r)) : (0, i.logError)( `Prebid Error: Analytics adaptor error for analytics "${n}"\n analytics adapter must implement an enableAnalytics() function`, ) : (0, i.logError)( "Prebid Error: analyticsAdapter or analyticsCode not specified", ); }, enableAnalytics(e) { ((0, r.cy)(e) || (e = [e]), e.forEach((e) => { const t = F[e.provider]; t && t.adapter ? N.isAllowed(_.mo, L(U.Tn, e.provider, { [$.TQ]: e })) && t.adapter.enableAnalytics(e) : (0, i.logError)( `Prebid Error: no analytics adapter found in registry for '${e.provider}'.`, ); })); }, getBidAdapter: (e) => P[e], getAnalyticsAdapter: (e) => F[e], callTimedOutBidders(e, t, n) { ((t = t.map( (t) => ( (t.params = (0, i.getUserConfiguredParams)( e, t.adUnitCode, t.bidder, )), (t.timeout = n), t ), )), (t = (0, i.groupBy)(t, "bidder")), Object.keys(t).forEach((e) => { ne(e, "onTimeout", t[e]); })); }, callBidWonBidder(e, t, n) { ((t.params = (0, i.getUserConfiguredParams)( n, t.adUnitCode, t.bidder, )), v(t.adUnitCode, t.bidder), ne(e, "onBidWon", t)); }, triggerBilling: (() => { const e = new WeakSet(); return (t) => { e.has(t) || (e.add(t), ((0, x.$T)(t.eventtrackers)[x.OA]?.[x.Ni] || []).forEach( (e) => i.internal.triggerPixel(e), ), ne(t.bidder, "onBidBillable", t)); }; })(), callSetTargetingBidder(e, t) { ne(e, "onSetTargeting", t); }, callBidViewableBidder(e, t) { ne(e, "onBidViewable", t); }, callBidderError(e, t, n) { ne(e, "onBidderError", { error: t, bidderRequest: n }); }, callAdRenderSucceededBidder(e, t) { ne(e, "onAdRenderSucceeded", t); }, callDataDeletionRequest: (0, c.A_)("sync", function () { for ( var e = arguments.length, t = new Array(e), n = 0; n < e; n++ ) t[n] = arguments[n]; const r = "onDataDeletionRequest"; (Object.keys(P) .filter((e) => !M.hasOwnProperty(e)) .forEach((e) => { const n = ee(e, r); if (null != n) { const i = k.n.getBidsRequested().filter( (t) => (function (e) { const t = new Set(); for (; M.hasOwnProperty(e) && !t.has(e); ) (t.add(e), (e = M[e])); return e; })(t.bidderCode) === e, ); te(e, r, ...n, i, ...t); } }), Object.entries(F).forEach((e) => { let [n, o] = e; const s = o?.adapter?.[r]; if ("function" == typeof s) try { s.apply(o.adapter, t); } catch (e) { (0, i.logError)(`error calling ${r} of ${n}`, e); } })); }), }; function ee(e, t) { const n = P[e], r = n?.getSpec && n.getSpec(); if (r && r[t] && "function" == typeof r[t]) return [r, r[t]]; } function te(e, t, n, r) { try { (0, i.logInfo)(`Invoking ${e}.${t}`); for ( var o = arguments.length, s = new Array(o > 4 ? o - 4 : 0), a = 4; a < o; a++ ) s[a - 4] = arguments[a]; d.$W.runWithBidder(e, r.bind(n, ...s)); } catch (n) { (0, i.logWarn)(`Error calling ${t} of ${e}`); } } function ne(e, t, n) { if (n?.source !== B.RW.SRC) { const r = ee(e, t); null != r && te(e, t, ...r, n); } } const re = Z; }, 3516: (e, t, n) => { n.d(t, { JN: () => k, JS: () => D, a$: () => I, eI: () => C, fn: () => U, xb: () => S, }); var r = n(5672), i = n(51409), o = n(91933), s = n(63320), a = n(73391), d = n(80356), c = n(36220), l = n(11418), u = n(18014), g = n(26665), f = n(10466), p = n(32592), m = n(63006), h = n(77156), b = n(37841), y = n(53202), v = n(77610), E = n(70736), A = n(45808); const w = ["cpm", "ttl", "creativeId", "netRevenue", "currency"], T = { auctionId: (e) => e.ortb2?.source?.tid, transactionId: (e) => e.ortb2Imp?.ext?.tid, }; function I(e) { const t = Array.isArray(e.supportedMediaTypes) ? { supportedMediaTypes: e.supportedMediaTypes } : void 0; function n(e) { const n = S(e); i.Ay.registerBidAdapter(n, e.code, t); } (n(e), Array.isArray(e.aliases) && e.aliases.forEach((t) => { let r, o, s = t; ((0, g.Qd)(t) && ((s = t.code), (r = t.gvlid), (o = t.skipPbsAliasing)), (i.Ay.aliasRegistry[s] = e.code), n( Object.assign({}, e, { code: s, gvlid: r, skipPbsAliasing: o, }), )); })); } const C = (0, f.memoize)((e) => { let { bidderCode: t } = e; const n = (0, y.io)(A.VJ, (0, v.s)(E.tW, t)); function r(e, t, r) { return T.hasOwnProperty(t) ? n ? T[t](e) : null : Reflect.get(e, t, r); } function i(e, t) { const n = new Proxy(e, t); return ( Object.entries(e) .filter((e) => { let [t, n] = e; return "function" == typeof n; }) .forEach((t) => { let [r, i] = t; n[r] = i.bind(e); }), n ); } const o = (0, f.memoize)( (e) => i(e, { get: r }), (e) => e.bidId, ); return { bidRequest: o, bidderRequest: (e) => i(e, { get: (t, n, i) => ("bids" === n ? e.bids.map(o) : r(t, n, i)), }), }; }); function S(e) { return Object.assign((0, r.A)(e.code), { getSpec: function () { return Object.freeze(Object.assign({}, e)); }, registerSyncs: t, callBids: function (n, r, a, d, c, p) { if (!Array.isArray(n.bids)) return; const m = C(n), y = {}; const v = []; function E() { (a(), o.$W.runWithBidder(e.code, () => { (u.emit(l.qY.BIDDER_DONE, n), t(v, n.gdprConsent, n.uspConsent, n.gppConsent)); })); } const A = D(n).measureTime("validate", () => n.bids.filter((t) => (function (t) { if (!e.isBidRequestValid(t)) return ( (0, f.logWarn)( `Invalid bid sent to bidder ${e.code}: ${JSON.stringify(t)}`, ), !1 ); return !0; })(m.bidRequest(t)), ), ); if (0 === A.length) return void E(); const w = {}; (A.forEach((e) => { w[e.bidId] = e; }), B(e, A, n, d, p, { onRequest: (e) => u.emit(l.qY.BEFORE_BIDDER_HTTP, n, e), onResponse: (t) => { (c(e.code), v.push(t)); }, onPaapi: (e) => { const t = w[e.bidId]; t ? k(t, e) : (0, f.logWarn)( "Received fledge auction configuration for an unknown bidId", e, ); }, onError: (t, r) => { (r.timedOut || c(e.code), i.Ay.callBidderError(e.code, r, n), u.emit(l.qY.BIDDER_ERROR, { error: r, bidderRequest: n, }), (0, f.logError)( `Server call for ${e.code} failed: ${t} ${r.status}. Continuing without bids.`, { bidRequests: A }, )); }, onBid: (t) => { const n = w[t.requestId], i = t; if (n) { if ( ((i.adapterCode = n.bidder), (function (e, t) { const n = h.u.get(t, "allowAlternateBidderCodes") || !1; let r = h.u.get(t, "allowedAlternateBidderCodes"); if ( e && t && t !== e && ((r = (0, g.cy)(r) ? r .map((e) => e.trim().toLowerCase()) .filter((e) => !!e) .filter(f.uniques) : r), !n || ((0, g.cy)(r) && "*" !== r[0] && !r.includes(e))) ) return !0; return !1; })(t.bidderCode, n.bidder)) ) return ( (0, f.logWarn)( `${t.bidderCode} is not a registered partner or known bidder of ${n.bidder}, hence continuing without bid. If you wish to support this bidder, please mark allowAlternateBidderCodes as true in bidderSettings.`, ), void r.reject( n.adUnitCode, t, l.Tf.BIDDER_DISALLOWED, ) ); ((i.originalCpm = t.cpm), (i.originalCurrency = t.currency), (i.meta = t.meta || Object.assign({}, t[n.bidder])), (i.deferBilling = n.deferBilling), (i.deferRendering = i.deferBilling && (t.deferRendering ?? "function" != typeof e.onBidBillable))); const o = Object.assign( (0, s.O)(n), i, (0, f.pick)(n, Object.keys(T)), ); !(function (e, t) { const n = (0, b.BO)(t.metrics); (n.checkpoint("addBidResponse"), (y[e] = !0), n.measureTime("addBidResponse.validate", () => U(e, t), ) ? r(e, t) : r.reject(e, t, l.Tf.INVALID)); })(n.adUnitCode, o); } else ((0, f.logWarn)( `Bidder ${e.code} made bid for unknown request ID: ${t.requestId}. Ignoring.`, ), r.reject(null, t, l.Tf.INVALID_REQUEST_ID)); }, onCompletion: E, })); }, }); function t(t, n, r, i) { R(e, t, n, r, i); } } const O = ["bids", "paapi"], B = (0, p.A_)( "async", function (e, t, n, r, i, o) { let { onRequest: s, onResponse: a, onPaapi: d, onError: c, onBid: u, onCompletion: p, } = o; const m = D(n); p = m.startTiming("total").stopBefore(p); const b = C(n); let w = m.measureTime("buildRequests", () => e.buildRequests(t.map(b.bidRequest), b.bidderRequest(n)), ); if ((Array.isArray(w) || (w = [w]), !w || 0 === w.length)) return void p(); const T = (0, f.delayExecution)(p, w.length); w.forEach((t) => { const n = m.fork(); function o(e) { (null != e && (e.metrics = n.fork().renameWith()), u(e)); } const p = i(function (r, i) { w(); try { r = JSON.parse(r); } catch (e) {} ((r = { body: r, headers: { get: i.getResponseHeader.bind(i) }, }), a(r)); try { r = n.measureTime("interpretResponse", () => e.interpretResponse(r, t), ); } catch (t) { return ( (0, f.logError)( `Bidder ${e.code} failed to interpret the server's response. Continuing without bids`, null, t, ), void T() ); } let s, c; (r && !Object.keys(r).some((e) => !O.includes(e)) ? ((s = r.bids), (c = r.paapi)) : (s = r), (0, g.cy)(c) && c.forEach(d), s && ((0, g.cy)(s) ? s.forEach(o) : o(s)), T()); }), b = i(function (e, t) { (w(), c(e, t), T()); }); s(t); const w = n.startTiming("net"), I = "TRUE" === (0, f.getParameterByName)(l.M).toUpperCase() || (0, f.debugTurnedOn)(); function C(n) { const r = t.options; return Object.assign(n, r, { browsingTopics: !( r?.hasOwnProperty("browsingTopics") && !r.browsingTopics ) && (h.u.get(e.code, "topicsHeader") ?? !0) && (0, y.io)(A.DL, (0, v.s)(E.tW, e.code)), suppressTopicsEnrollmentWarning: r?.hasOwnProperty( "suppressTopicsEnrollmentWarning", ) ? r.suppressTopicsEnrollmentWarning : !I, }); } switch (t.method) { case "GET": r( `${t.url}${(function (e) { if (e) return `?${"object" == typeof e ? (0, f.parseQueryStringParameters)(e) : e}`; return ""; })(t.data)}`, { success: p, error: b }, void 0, C({ method: "GET", withCredentials: !0 }), ); break; case "POST": const n = t.options?.endpointCompression, i = (e) => { let { url: t, payload: n } = e; r( t, { success: p, error: b }, n, C({ method: "POST", contentType: "text/plain", withCredentials: !0, }), ); }; (n && I && (0, f.logWarn)( `Skipping GZIP compression for ${e.code} as debug mode is enabled`, ), n && !I && (0, f.isGzipCompressionSupported)() ? (0, f.compressDataWithGZip)(t.data).then((e) => { const n = new URL(t.url, window.location.origin); (n.searchParams.has("gzip") || n.searchParams.set("gzip", "1"), i({ url: n.href, payload: e })); }) : i({ url: t.url, payload: "string" == typeof t.data ? t.data : JSON.stringify(t.data), })); break; default: ((0, f.logWarn)( `Skipping invalid request from ${e.code}. Request type ${t.method} must be GET or POST`, ), T()); } }); }, "processBidderRequests", ), R = (0, p.A_)( "async", function (e, t, n, r, s) { const d = o.$W.getConfig("userSync.aliasSyncEnabled"); if (e.getUserSyncs && (d || !i.Ay.aliasRegistry[e.code])) { let i = e.getUserSyncs( { iframeEnabled: a.zt.canBidderRegisterSync( "iframe", e.code, ), pixelEnabled: a.zt.canBidderRegisterSync("image", e.code), }, t, n, r, s, ); i && (Array.isArray(i) || (i = [i]), i.forEach((t) => { a.zt.registerSync(t.type, e.code, t.url); }), a.zt.bidderDone(e.code)); } }, "registerSyncs", ), k = (0, p.A_)("sync", (e, t) => {}, "addPaapiConfig"); function U(e, t) { let { index: n = m.n.index } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; function r(e) { return `Invalid bid from ${t.bidderCode}. Ignoring bid: ${e}`; } return e ? t ? (function () { const e = Object.keys(t); return w.every( (n) => e.includes(n) && ![void 0, null].includes(t[n]), ); })() ? "native" !== t.mediaType || (0, d.Bm)(t, { index: n }) ? "video" !== t.mediaType || (0, c.vk)(t, { index: n }) ? !( "banner" === t.mediaType && !(function (e, t) { let { index: n = m.n.index } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; if ( (t.width || 0 === parseInt(t.width, 10)) && (t.height || 0 === parseInt(t.height, 10)) ) return ( (t.width = parseInt(t.width, 10)), (t.height = parseInt(t.height, 10)), !0 ); if (null != t.wratio && null != t.hratio) return ( (t.wratio = parseInt(t.wratio, 10)), (t.hratio = parseInt(t.hratio, 10)), !0 ); const r = n.getBidRequest(t), i = n.getMediaTypes(t), o = (r && r.sizes) || (i && i.banner && i.banner.sizes), s = (0, f.parseSizesInput)(o); if (1 === s.length) { const [e, n] = s[0].split("x"); return ( (t.width = parseInt(e, 10)), (t.height = parseInt(n, 10)), !0 ); } return !1; })(e, t, { index: n }) ) || ((0, f.logError)( r("Banner bids require a width and height"), ), !1) : ((0, f.logError)( r( "Video bid does not have required vastUrl or renderer property", ), ), !1) : ((0, f.logError)( r("Native bid missing some required properties."), ), !1) : ((0, f.logError)( r( `Bidder ${t.bidderCode} is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params.`, ), ), !1) : ((0, f.logWarn)( `Some adapter tried to add an undefined bid for ${e}.`, ), !1) : ((0, f.logWarn)( "No adUnitCode was supplied to addBidResponse.", ), !1); } function D(e) { return (0, b.BO)(e.metrics).renameWith((t) => [ `adapter.client.${t}`, `adapters.client.${e.bidderCode}.${t}`, ]); } }, 75049: (e, t, n) => { n.d(t, { R: () => c }); var r = n(45808), i = n(77610), o = n(53202), s = n(10466); const a = new WeakMap(), d = [ "debugging", "outstream", "aaxBlockmeter", "adagio", "adloox", "arcspan", "airgrid", "browsi", "brandmetrics", "clean.io", "humansecurityMalvDefense", "humansecurity", "confiant", "contxtful", "hadron", "mediafilter", "medianet", "azerionedge", "a1Media", "geoedge", "qortex", "dynamicAdBoost", "51Degrees", "symitridap", "wurfl", "nodalsAi", "anonymised", "optable", "justtag", "tncId", "ftrackId", "id5", ]; function c(e, t, n, c, l, u) { if (!(0, o.io)(r.pY, (0, i.s)(t, n))) return; if (!n || !e) return void (0, s.logError)( "cannot load external script without url and moduleCode", ); if (!d.includes(n)) return void (0, s.logError)( `${n} not whitelisted for loading external JavaScript`, ); l || (l = document); const g = m(l, e); if (g) return ( c && "function" == typeof c && (g.loaded ? c() : g.callbacks.push(c)), g.tag ); const f = a.get(l) || {}, p = { loaded: !1, tag: null, callbacks: [] }; return ( (f[e] = p), a.set(l, f), c && "function" == typeof c && p.callbacks.push(c), (0, s.logWarn)(`module ${n} is loading external JavaScript`), (function (t, n, r, i) { r || (r = document); var o = r.createElement("script"); ((o.type = "text/javascript"), (o.async = !0)); const a = m(r, e); a && (a.tag = o); o.readyState ? (o.onreadystatechange = function () { ("loaded" !== o.readyState && "complete" !== o.readyState) || ((o.onreadystatechange = null), n()); }) : (o.onload = function () { n(); }); ((o.src = t), i && (0, s.setScriptAttributes)(o, i)); return ((0, s.insertElement)(o, r), o); })( e, function () { p.loaded = !0; try { for (let e = 0; e < p.callbacks.length; e++) p.callbacks[e](); } catch (e) { (0, s.logError)( "Error executing callback", "adloader.js:loadExternalScript", e, ); } }, l, u, ) ); function m(e, t) { const n = a.get(e); return n && n[t] ? n[t] : null; } } }, 3129: (e, t, n) => { n.d(t, { Q: () => r }); const r = (0, n(32592).A_)("sync", () => {}); }, 62201: (e, t, n) => { n.d(t, { RD: () => y, Rz: () => b, g4: () => h, hd: () => v, p3: () => f, }); var r = n(45808), i = n(77610), o = n(53202), s = n(91933), a = n(32592), d = n(10466); const c = { fetch: window.fetch.bind(window), makeRequest: (e, t) => new Request(e, t), timeout(e, t) { const n = new AbortController(); let r = setTimeout(() => { (n.abort(), (0, d.logError)(`Request timeout after ${e}ms`, t), (r = null)); }, e); return { signal: n.signal, done() { r && clearTimeout(r); }, }; }, }, l = "GET", u = "POST", g = "Content-Type", f = (0, a.A_)( "async", function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 ? arguments[1] : void 0, n = arguments.length > 2 ? arguments[2] : void 0; return ( e.withCredentials && (e.withCredentials = t && n ? (0, o.io)(r.yg, (0, i.s)(t, n)) : (0, d.hasDeviceAccess)()), e ); }, "processRequestOptions", ); function p() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 3e3, { request: t, done: n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, r = arguments.length > 2 ? arguments[2] : void 0, i = arguments.length > 3 ? arguments[3] : void 0, o = (t, n) => { let o; (null == e || null != n?.signal || s.$W.getConfig("disableAjaxTimeout") || ((o = c.timeout(e, t)), (n = Object.assign({ signal: o.signal }, n))), f(n, r, i)); let a = c.fetch(t, n); return (null != o?.done && (a = a.finally(o.done)), a); }; return ( (null == t && null == n) || (o = ((e) => function (r, i) { const o = new URL( null == r?.url ? r : r.url, document.location, ).origin; let s = e(r, i); return (t && t(o), n && (s = s.finally(() => n(o))), s); })(o)), o ); } function m(e, t) { let n, { status: r, statusText: i = "", headers: o, url: s } = e; function a(e) { if (void 0 === n) try { n = new DOMParser().parseFromString( t, o?.get(g)?.split(";")?.[0], ); } catch (t) { ((n = null), e && e(t)); } return n; } return { readyState: XMLHttpRequest.DONE, status: r, statusText: i, responseText: t, response: t, responseType: "", responseURL: s, get responseXML() { return a(d.logError); }, getResponseHeader: (e) => (o?.has(e) ? o.get(e) : null), toJSON() { return Object.assign({ responseXML: a() }, this); }, timedOut: !1, }; } function h() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 3e3, { request: t, done: n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; const r = p( e, { request: t, done: n }, arguments.length > 2 ? arguments[2] : void 0, arguments.length > 3 ? arguments[3] : void 0, ); return function (e, t, n) { !(function (e, t) { const { success: n, error: r } = "object" == typeof t && null != t ? t : { success: "function" == typeof t ? t : () => null, error: (e, t) => (0, d.logError)("Network error", e, t), }; e.then((e) => e.text().then((t) => [e, t])).then( (e) => { let [t, i] = e; const o = m(t, i); t.ok || 304 === t.status ? n(i, o) : r(t.statusText, o); }, (e) => r( "", Object.assign(m({ status: 0 }, ""), { reason: e, timedOut: "AbortError" === e?.name, }), ), ); })( r( (function (e, t) { let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; const r = n.method || (t ? u : l); if (r === l && t) { const r = (0, d.parseUrl)(e, n); (Object.assign(r.search, t), (e = (0, d.buildUrl)(r))); } const i = new Headers(n.customHeaders); i.set(g, n.contentType || "text/plain"); const o = { method: r, headers: i }; return ( r !== l && t && (o.body = t), n.withCredentials && (o.credentials = "include"), isSecureContext && (["browsingTopics", "adAuctionHeaders"].forEach((e) => { n[e] && (o[e] = !0); }), null != n.suppressTopicsEnrollmentWarning && (o.suppressTopicsEnrollmentWarning = n.suppressTopicsEnrollmentWarning)), n.keepalive && (o.keepalive = !0), c.makeRequest(e, o) ); })( e, n, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, ), ), t, ); }; } function b(e, t) { return ( !(!window.navigator || !window.navigator.sendBeacon) && window.navigator.sendBeacon(e, t) ); } const y = h(), v = p(); }, 71186: (e, t, n) => { n.d(t, { AA: () => O, BU: () => M, HN: () => K, NE: () => $, UZ: () => B, ZV: () => L, mO: () => G, mX: () => q, sR: () => x, v8: () => P, w1: () => j, }); var r = n(10466), i = n(26665), o = n(1124), s = n(80356), a = n(51640), d = n(67464), c = n(91933), l = n(73391), u = n(32592), g = n(36220), f = n(59794), p = n(63006), m = n(77156), h = n(18014), b = n(51409), y = n(11418), v = n(13064), E = n(37841), A = n(77459), w = n(51748), T = n(10939), I = n(15482); const { syncUsers: C } = l.zt, S = "started", O = "inProgress", B = "completed"; h.on(y.qY.BID_ADJUSTMENT, function (e) { !(function (e) { const t = (0, A.y)(e.cpm, e); t >= 0 && (e.cpm = t); })(e); }); const R = 4, k = {}, U = {}, D = [], _ = (0, w.m)(); const $ = (0, u.A_)("sync", (e) => {}); function q(e) { let { adUnits: t, adUnitCodes: n, callback: i, cbTimeout: l, labels: u, auctionId: m, ortb2Fragments: A, metrics: w, } = e; w = (0, E.BO)(w); const q = t, G = u, L = n, z = m || (0, r.generateUUID)(), H = l, V = new Set(), Q = (0, v.v6)(), J = (0, v.v6)(); let K = [], Y = i, Z = []; const ee = (0, T.H)({ startTime: (e) => e.responseTimestamp, ttl: (e) => null == (0, I.S9)() ? null : 1e3 * Math.max((0, I.S9)(), e.ttl), }); let te, ne, re, ie, oe = [], se = [], ae = []; function de() { return { auctionId: z, timestamp: te, auctionEnd: ne, auctionStatus: ie, adUnits: q, adUnitCodes: L, labels: G, bidderRequests: Z, noBids: oe, bidsReceived: ee.toArray(), bidsRejected: K, winningBids: se, timeout: H, metrics: w, seatNonBids: ae, }; } function ce(e) { if ( (e ? h.emit(y.qY.AUCTION_TIMEOUT, de()) : clearTimeout(re), void 0 === ne) ) { let n = []; (e && ((0, r.logMessage)(`Auction ${z} timedOut`), (n = Z.filter((e) => !V.has(e.bidderRequestId)).flatMap( (e) => e.bids, )), n.length && h.emit(y.qY.BID_TIMEOUT, n)), (ie = B), (ne = Date.now()), w.checkpoint("auctionEnd"), w.timeBetween( "requestBids", "auctionEnd", "requestBids.total", ), w.timeBetween( "callBids", "auctionEnd", "requestBids.callBids", ), Q.resolve(), h.emit(y.qY.AUCTION_END, de()), N(q, function () { try { if (null != Y) { const t = ee .toArray() .filter((e) => L.includes(e.adUnitCode)) .reduce(X, {}); (Y.apply(_, [t, e, z]), (Y = null)); } } catch (e) { (0, r.logError)( "Error executing bidsBackHandler", null, e, ); } finally { n.length && b.Ay.callTimedOutBidders(t, n, H); const e = c.$W.getConfig("userSync") ?? {}; e.enableOverride || C(e.syncDelay); } })); } } function le() { (c.$W.resetBidder(), (0, r.logInfo)( `Bids Received for Auction with id: ${z}`, ee.toArray(), ), (ie = B), ce(!1)); } function ue(e) { V.add(e); } function ge(e) { e.forEach((e) => { var t; ((t = e), (Z = Z.concat(t))); }); const t = {}, n = { bidRequests: e, run: () => { ($(this), (re = setTimeout(() => ce(!0), H)), (ie = O), h.emit(y.qY.AUCTION_INIT, de())); const n = (function (e, t) { let { index: n = p.n.index } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, i = 0, l = !1; const u = new Set(), m = {}; function b() { (i--, l && 0 === i && e()); } function E(e, t, n) { return ( (m[t.requestId] = !0), (function (e, t) { let { index: n = p.n.index } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; const i = n.getBidderRequest(e), o = n.getAdUnit(e), s = (i && i.start) || e.requestTimestamp; (Object.assign(e, { responseTimestamp: e.responseTimestamp || (0, r.timestamp)(), requestTimestamp: e.requestTimestamp || s, cpm: parseFloat(e.cpm) || 0, bidder: e.bidder || e.bidderCode, adUnitCode: t, }), null != o?.ttlBuffer && (e.ttlBuffer = o.ttlBuffer)); e.timeToRespond = e.responseTimestamp - e.requestTimestamp; })(t, e), i++, n(b) ); } function A(e, i) { E(e, i, (e) => { const l = (function (e) { let { index: t = p.n.index } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; h.emit(y.qY.BID_ADJUSTMENT, e); const n = t.getAdUnit(e); e.instl = 1 === n?.ortb2Imp?.instl; const r = t.getBidRequest(e)?.renderer || n.renderer, i = e.mediaType, s = t.getMediaTypes(e), a = s && s[i]; var l = a && a.renderer, u = null; !l || !l.render || (!0 === l.backupOnly && e.renderer) ? !r || !r.render || (!0 === r.backupOnly && e.renderer) || (u = r) : (u = l); u && ((e.renderer = d.A4.install({ url: u.url, config: u.options, renderNow: null == u.url, })), e.renderer.setRender(u.render)); const g = F( e.mediaType, s, c.$W.getConfig("mediaTypePriceGranularity"), ), f = (0, o.j)( e.cpm, "object" == typeof g ? g : c.$W.getConfig("customPriceBucket"), c.$W.getConfig( "currency.granularityMultiplier", ), ); return ( (e.pbLg = f.low), (e.pbMg = f.med), (e.pbHg = f.high), (e.pbAg = f.auto), (e.pbDg = f.dense), (e.pbCg = f.custom), e ); })(i); (h.emit(y.qY.BID_ACCEPTED, l), l.mediaType === f.G_ || l.mediaType === f.FY ? (function (e, t, n) { let { index: i = p.n.index } = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, o = !0; const s = i.getMediaTypes({ requestId: t.originalRequestId || t.requestId, adUnitId: t.adUnitId, })?.video, d = s && s?.context, l = s && s?.useCacheKey, { useLocal: u, url: f, ignoreBidderCacheKey: m, } = c.$W.getConfig("cache") || {}; u ? (0, a.Sb)(t) : f && (l || d !== g.H6) && (!t.videoCacheKey || m ? ((o = !1), M(e, t, n, s)) : t.vastUrl || ((0, r.logError)( "videoCacheKey specified but not required vastUrl for video bid", ), (o = !1))); o && (P(e, t), n()); })(t, l, e) : ((0, s.l6)(l) && (0, s.gs)(l, n.getAdUnit(l)), P(t, l), e())); }); } function w(e, n, i) { return E(e, n, (e) => { ((n.rejectionReason = i), (0, r.logWarn)( `Bid from ${n.bidder || "unknown bidder"} was rejected: ${i}`, n, ), h.emit(y.qY.BID_REJECTED, n), t.addBidRejected(n), e()); }); } function T() { const n = this; let o = t.getBidRequests(); const s = c.$W.getConfig("auctionOptions"); if ((u.add(n), s && !(0, r.isEmpty)(s))) { const e = s.secondaryBidders; e && !o.every((t) => e.includes(t.bidderCode)) && (o = o.filter((t) => !e.includes(t.bidderCode))); } ((l = o.every((e) => u.has(e))), n.bids.forEach((e) => { m[e.bidId] || (t.addNoBid(e), h.emit(y.qY.NO_BID, e)); }), l && 0 === i && e()); } return { addBidResponse: (function () { function e(e, t) { x.call( { dispatch: A }, e, t, (() => { let n = !1; return (r) => { n || (w(e, t, r), (n = !0)); }; })(), ); } return ((e.reject = w), e); })(), adapterDone: function () { W(v.U9.resolve()).finally(() => T.call(this)); }, }; })(le, this); (b.Ay.callBids( q, e, n.addBidResponse, n.adapterDone, { request(e, n) { (l(k, n), l(t, e), U[e] || (U[e] = { SRA: !0, origin: n }), t[e] > 1 && (U[e].SRA = !1)); }, done(e) { (k[e]--, D[0] && i(D[0]) && D.shift()); }, }, H, ue, A, ), J.resolve()); }, }; function i(e) { let t = !0; const n = c.$W.getConfig("maxRequestsPerOrigin") || R; return ( e.bidRequests.some((e) => { let r = 1; const i = void 0 !== e.src && e.src === y.RW.SRC ? "s2s" : e.bidderCode; return ( U[i] && (!1 === U[i].SRA && (r = Math.min(e.bids.length, n)), k[U[i].origin] + r > n && (t = !1)), !t ); }), t && e.run(), t ); } function l(e, t) { void 0 === e[t] ? (e[t] = 1) : e[t]++; } i(n) || ((0, r.logWarn)( "queueing auction due to limited endpoint capacity", ), D.push(n)); } return ( (0, I.lc)(() => ee.refresh()), h.on(y.qY.SEAT_NON_BID, (e) => { var t; e.auctionId === z && ((t = e.seatnonbid), (ae = ae.concat(t))); }), { addBidReceived: function (e) { ee.add(e); }, addBidRejected: function (e) { K = K.concat(e); }, addNoBid: function (e) { oe = oe.concat(e); }, callBids: function () { ((ie = S), (te = Date.now())); const e = w.measureTime("requestBids.makeRequests", () => b.Ay.makeBidRequests(q, te, z, H, G, A, w), ); ((0, r.logInfo)( `Bids Requested for Auction with id: ${z}`, e, ), w.checkpoint("callBids"), e.length < 1 ? ((0, r.logWarn)( "No valid bid requests returned for auction", ), le()) : j.call({ dispatch: ge, context: this }, e)); }, addWinningBid: function (e) { ((se = se.concat(e)), b.Ay.callBidWonBidder(e.adapterCode || e.bidder, e, t), e.deferBilling || b.Ay.triggerBilling(e)); }, setBidTargeting: function (e) { b.Ay.callSetTargetingBidder(e.adapterCode || e.bidder, e); }, getWinningBids: () => se, getAuctionStart: () => te, getAuctionEnd: () => ne, getTimeout: () => H, getAuctionId: () => z, getAuctionStatus: () => ie, getAdUnits: () => q, getAdUnitCodes: () => L, getBidRequests: () => Z, getBidsReceived: () => ee.toArray(), getNoBids: () => oe, getNonBids: () => ae, getFPD: () => A, getMetrics: () => w, end: Q.promise, requestsDone: J.promise, getProperties: de, } ); } const x = (0, u.u2)( (0, u.A_)( "async", function (e, t, n) { !(function (e) { const t = c.$W.getConfig("maxBid"); return !t || !e.cpm || t >= Number(e.cpm); })(t) ? n(y.Tf.PRICE_TOO_HIGH) : this.dispatch.call(null, e, t); }, "addBidResponse", ), ), W = (0, u.A_)("sync", (e) => e, "responsesReady"), j = (0, u.A_)( "sync", function (e) { this.dispatch.call(this.context, e); }, "addBidderRequests", ), N = (0, u.A_)( "async", function (e, t) { t && t(); }, "bidsBackCallback", ); function P(e, t) { (!(function (e) { let t; const n = !0 === m.u.get(e.bidderCode, "allowZeroCpmBids") ? e.cpm >= 0 : e.cpm > 0; e.bidderCode && (n || e.dealId) && (t = (function (e, t) { let { index: n = p.n.index } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; if (!t) return {}; const r = n.getBidRequest(t); var i = {}; const o = K(t.mediaType, e); (Y(i, o, t, r), e && m.u.getOwn(e, y.iD.ADSERVER_TARGETING) && (Y(i, m.u.ownSettingsFor(e), t, r), (t.sendStandardTargeting = m.u.get( e, "sendStandardTargeting", )))); return i; })(e.bidderCode, e)); e.adserverTargeting = Object.assign(e.adserverTargeting || {}, t); })(t), (0, E.BO)(t.metrics).timeSince( "addBidResponse", "addBidResponse.total", ), e.addBidReceived(t), h.emit(y.qY.BID_RESPONSE, t)); } const M = (0, u.A_)( "async", function (e, t, n, r) { (0, a.X5)(e, t, n); }, "callPrebidCache", ); function F(e, t, n) { if (e && n) { if (e === f.G_) { const e = t?.[f.G_]?.context ?? "instream"; if (n[`${f.G_}-${e}`]) return n[`${f.G_}-${e}`]; } return n[e]; } } const G = function (e) { let { index: t = p.n.index } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; const n = F( e.mediaType, t.getMediaTypes(e), c.$W.getConfig("mediaTypePriceGranularity"), ); return "string" == typeof e.mediaType && n ? "string" == typeof n ? n : "custom" : c.$W.getConfig("priceGranularity"); }, L = (e) => (t) => { const n = e || G(t); return n === y.UE.AUTO ? t.pbAg : n === y.UE.DENSE ? t.pbDg : n === y.UE.LOW ? t.pbLg : n === y.UE.MEDIUM ? t.pbMg : n === y.UE.HIGH ? t.pbHg : n === y.UE.CUSTOM ? t.pbCg : void 0; }, z = () => (e) => (e.creativeId ? e.creativeId : ""), H = () => (e) => e.meta && e.meta.advertiserDomains && e.meta.advertiserDomains.length > 0 ? [e.meta.advertiserDomains].flat()[0] : "", V = () => (e) => e.meta && (e.meta.networkId || e.meta.networkName) ? e?.meta?.networkName || e?.meta?.networkId : "", Q = () => (e) => { const t = e?.meta?.primaryCatId; return Array.isArray(t) ? t[0] || "" : t || ""; }; function J(e, t) { return { key: e, val: "function" == typeof t ? function (e, n) { return t(e, n); } : function (e) { return e[t]; }, }; } function K(e, t) { const n = Object.assign({}, m.u.settingsFor(null)); if ( (n[y.iD.ADSERVER_TARGETING] || (n[y.iD.ADSERVER_TARGETING] = [ J(y.xS.BIDDER, "bidderCode"), J(y.xS.AD_ID, "adId"), J(y.xS.PRICE_BUCKET, L()), J(y.xS.SIZE, "size"), J(y.xS.DEAL, "dealId"), J(y.xS.SOURCE, "source"), J(y.xS.FORMAT, "mediaType"), J(y.xS.ADOMAIN, H()), J(y.xS.ACAT, Q()), J(y.xS.DSP, V()), J(y.xS.CRID, z()), ]), "video" === e) ) { const e = n[y.iD.ADSERVER_TARGETING].slice(); if ( ((n[y.iD.ADSERVER_TARGETING] = e), [y.xS.UUID, y.xS.CACHE_ID].forEach((t) => { void 0 === e.find((e) => e.key === t) && e.push(J(t, "videoCacheKey")); }), c.$W.getConfig("cache.url") && (!t || !1 !== m.u.get(t, "sendStandardTargeting"))) ) { const t = (0, r.parseUrl)(c.$W.getConfig("cache.url")); void 0 === e.find((e) => e.key === y.xS.CACHE_HOST) && e.push( J(y.xS.CACHE_HOST, function (e) { return ( e?.adserverTargeting?.[y.xS.CACHE_HOST] || t.hostname ); }), ); } } return n; } function Y(e, t, n, o) { var s = t[y.iD.ADSERVER_TARGETING]; return ( (n.size = n.getSize()), (s || []).forEach(function (s) { var a = s.key, d = s.val; if ( (e[a] && (0, r.logWarn)("The key: " + a + " is being overwritten"), (0, i.fp)(d)) ) try { d = d(n, o); } catch (e) { (0, r.logError)("bidmanager", "ERROR", e); } ((void 0 === t.suppressEmptyKeys || !0 !== t.suppressEmptyKeys) && a !== y.xS.DEAL && a !== y.xS.ACAT && a !== y.xS.DSP && a !== y.xS.CRID) || (!(0, r.isEmptyStr)(d) && null != d) ? (e[a] = d) : (0, r.logInfo)( "suppressing empty key '" + a + "' from adserver targeting", ); }), e ); } function X(e, t) { return ( e[t.adUnitCode] || (e[t.adUnitCode] = { bids: [] }), e[t.adUnitCode].bids.push(t), e ); } }, 63006: (e, t, n) => { n.d(t, { n: () => l }); var r = n(10466), i = n(71186); function o(e) { Object.assign(this, { getAuction(t) { let { auctionId: n } = t; if (null != n) return e().find((e) => e.getAuctionId() === n); }, getAdUnit(t) { let { adUnitId: n } = t; if (null != n) return e() .flatMap((e) => e.getAdUnits()) .find((e) => e.adUnitId === n); }, getMediaTypes(e) { let { adUnitId: t, requestId: n } = e; if (null != n) { const e = this.getBidRequest({ requestId: n }); if (null != e && (null == t || e.adUnitId === t)) return e.mediaTypes; } else if (null != t) { const e = this.getAdUnit({ adUnitId: t }); if (null != e) return e.mediaTypes; } }, getBidderRequest(t) { let { requestId: n, bidderRequestId: r } = t; if (null != n || null != r) { let t = e().flatMap((e) => e.getBidRequests()); return ( null != r && (t = t.filter((e) => e.bidderRequestId === r)), null == n ? t[0] : t.find( (e) => e.bids && null != e.bids.find((e) => e.bidId === n), ) ); } }, getBidRequest(t) { let { requestId: n } = t; if (null != n) return e() .flatMap((e) => e.getBidRequests()) .flatMap((e) => e.bids) .find((e) => e && e.bidId === n); }, getOrtb2(e) { return ( this.getBidderRequest(e)?.ortb2 || this.getAuction(e)?.getFPD()?.global?.ortb2 ); }, }); } var s = n(11418), a = n(37841), d = n(10939), c = n(15482); const l = (function () { const e = (0, d.H)({ startTime: (e) => e.end.then(() => e.getAuctionEnd()), ttl: (e) => null == (0, c.S9)() ? null : e.end.then( () => 1e3 * Math.max( (0, c.S9)(), ...e.getBidsReceived().map((e) => e.ttl), ), ), }); (0, c.lc)(() => e.refresh()); const t = { onExpiry: e.onExpiry }; function n(t) { for (const n of e) if (n.getAuctionId() === t) return n; } function l() { return e.toArray().flatMap((e) => e.getBidsReceived()); } return ( (t.addWinningBid = function (e) { const t = (0, a.BO)(e.metrics); (t.checkpoint("bidWon"), t.timeBetween("auctionEnd", "bidWon", "adserver.pending"), t.timeBetween("requestBids", "bidWon", "adserver.e2e")); const i = n(e.auctionId); i ? i.addWinningBid(e) : (0, r.logWarn)("Auction not found when adding winning bid"); }), Object.entries({ getAllWinningBids: { name: "getWinningBids" }, getBidsRequested: { name: "getBidRequests" }, getNoBids: {}, getAdUnits: {}, getBidsReceived: { pre: (e) => e.getAuctionStatus() === i.UZ }, getAdUnitCodes: { post: r.uniques }, }).forEach((n) => { let [r, { name: i = r, pre: o, post: s }] = n; const a = null == o ? (e) => e[i]() : (e) => (o(e) ? e[i]() : []), d = null == s ? (e) => e : (e) => e.filter(s); t[r] = () => d(e.toArray().flatMap(a)); }), (t.getAllBidsForAdUnitCode = function (e) { return l().filter((t) => t && t.adUnitCode === e); }), (t.createAuction = function (t) { const n = (0, i.mX)(t); return ( (function (t) { e.add(t); })(n), n ); }), (t.findBidByAdId = function (e) { return l().find((t) => t.adId === e); }), (t.getStandardBidderAdServerTargeting = function () { return (0, i.HN)()[s.iD.ADSERVER_TARGETING]; }), (t.setStatusForBids = function (e, r) { const i = t.findBidByAdId(e); if ((i && (i.status = r), i && r === s.tl.BID_TARGETING_SET)) { const e = n(i.auctionId); e && e.setBidTargeting(i); } }), (t.getLastAuctionId = function () { const t = e.toArray(); return t.length && t[t.length - 1].getAuctionId(); }), (t.clearAllAuctions = function () { e.clear(); }), (t.index = new o(() => e.toArray())), t ); })(); }, 88417: (e, t, n) => { n.d(t, { Ai: () => l, kl: () => u }); var r = n(26665), i = n(10466), o = n(91933), s = n(32592), a = n(765); const d = "outstream", c = [ [ "mimes", (e) => Array.isArray(e) && e.length > 0 && e.every((e) => "string" == typeof e), ], ["minduration", r.Fq], ["maxduration", r.Fq], ["startdelay", r.Fq], ["maxseq", r.Fq], ["poddur", r.Fq], ["protocols", r.Uu], ["battr", r.Uu], ["maxextended", r.Fq], ["minbitrate", r.Fq], ["maxbitrate", r.Fq], ["delivery", r.Uu], ["api", r.Uu], ["companiontype", r.Uu], ["feed", r.Fq], ["stitched", r.Fq], ["nvol", r.Fq], ], l = new Map(c); function u(e) {} (0, s.A_)( "sync", function (e, t, n, r, s) { if (n && (s || r !== d)) { const { url: t, useLocal: n } = o.$W.getConfig("cache") || {}; return t || n || !e.vastXml || e.vastUrl ? !(!e.vastUrl && !e.vastXml) : ((0, i.logError)( `\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\n Try enabling either prebid cache with ${(0, a.k)()}.setConfig({ cache: {url: "..."} });\n or local cache with ${(0, a.k)()}.setConfig({ cache: { useLocal: true }});\n `, ), !1); } return ( !(r === d && !s) || !!(e.renderer || (t && t.renderer) || n.renderer) ); }, "checkAudioBidSetup", ); }, 15482: (e, t, n) => { n.d(t, { S9: () => l, cT: () => c, lc: () => u }); var r = n(91933), i = n(10466); const o = "minBidCacheTTL"; let s = 1, a = null; const d = []; function c(e) { return e.ttl - (e.hasOwnProperty("ttlBuffer") ? e.ttlBuffer : s); } function l() { return a; } function u(e) { d.push(e); } (r.$W.getConfig("ttlBuffer", (e) => { "number" == typeof e.ttlBuffer ? (s = e.ttlBuffer) : (0, i.logError)("Invalid value for ttlBuffer", e.ttlBuffer); }), r.$W.getConfig(o, (e) => { const t = a; ((a = e?.[o]), (a = "number" == typeof a ? a : null), t !== a && d.forEach((e) => e(a))); })); }, 77156: (e, t, n) => { n.d(t, { u: () => a }); var r = n(58928), i = n(10466), o = n(51748), s = n(11418); const a = new (class { constructor(e, t) { ((this.getSettings = e), (this.defaultScope = t)); } get(e, t) { let n = this.getOwn(e, t); return (void 0 === n && (n = this.getOwn(null, t)), n); } getOwn(e, t) { return ( (e = this.#e(e)), (0, r.A)(this.getSettings(), `${e}.${t}`) ); } getScopes() { return Object.keys(this.getSettings()).filter( (e) => e !== this.defaultScope, ); } settingsFor(e) { return (0, i.mergeDeep)( {}, this.ownSettingsFor(null), this.ownSettingsFor(e), ); } ownSettingsFor(e) { return ((e = this.#e(e)), this.getSettings()[e] || {}); } #e(e) { return null == e ? this.defaultScope : e; } })(() => (0, o.m)().bidderSettings || {}, s.iD.BD_SETTING_STANDARD); }, 63320: (e, t, n) => { n.d(t, { O: () => o }); var r = n(10466); function i() { let { src: e = "client", bidder: t = "", bidId: n, transactionId: i, adUnitId: o, auctionId: s, } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; var a = e; (Object.assign(this, { bidderCode: t, width: 0, height: 0, adId: (0, r.getUniqueIdentifierStr)(), requestId: n, transactionId: i, adUnitId: o, auctionId: s, mediaType: "banner", source: a, }), (this.getSize = function () { return this.width + "x" + this.height; })); } function o(e) { return new i(e); } }, 765: (e, t, n) => { n.d(t, { k: () => i, rT: () => s, uP: () => o }); var r = n(23715); function i() { return r.A.pbGlobal; } function o() { return r.A.defineGlobal; } function s() { return r.A.distUrlBase; } }, 91933: (e, t, n) => { n.d(t, { $W: () => m, Ov: () => l }); var r = n(1124), i = n(10466), o = n(26665), s = n(58928), a = n(11418); const d = "TRUE" === (0, i.getParameterByName)(a.M).toUpperCase(), c = {}, l = "random", u = {}; ((u[l] = !0), (u.fixed = !0)); const g = l, f = { LOW: "low", MEDIUM: "medium", HIGH: "high", AUTO: "auto", DENSE: "dense", CUSTOM: "custom", }; function p(e) { const t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1] ? { priceGranularity: f.MEDIUM, customPriceBucket: {}, mediaTypePriceGranularity: {}, bidderSequence: g, auctionOptions: {}, } : {}; function n(e) { return t[e]; } function s(n, r) { (t.hasOwnProperty(n) || Object.defineProperty(e, n, { enumerable: !0 }), (t[n] = r)); } const a = { publisherDomain: { set(e) { (null != e && (0, i.logWarn)( "publisherDomain is deprecated and has no effect since v7 - use pageUrl instead", ), s("publisherDomain", e)); }, }, priceGranularity: { set(e) { c(e) && ("string" == typeof e ? s("priceGranularity", d(e) ? e : f.MEDIUM) : (0, o.Qd)(e) && (s("customPriceBucket", e), s("priceGranularity", f.CUSTOM), (0, i.logMessage)("Using custom price granularity"))); }, }, customPriceBucket: {}, mediaTypePriceGranularity: { set(e) { null != e && s( "mediaTypePriceGranularity", Object.keys(e).reduce( (t, r) => ( c(e[r]) ? "string" == typeof e ? (t[r] = d(e[r]) ? e[r] : n("priceGranularity")) : (0, o.Qd)(e) && ((t[r] = e[r]), (0, i.logMessage)( `Using custom price granularity for ${r}`, )) : (0, i.logWarn)( `Invalid price granularity for media type: ${r}`, ), t ), {}, ), ); }, }, bidderSequence: { set(e) { u[e] ? s("bidderSequence", e) : (0, i.logWarn)( `Invalid order: ${e}. Bidder Sequence was not set.`, ); }, }, auctionOptions: { set(e) { (function (e) { if (!(0, o.Qd)(e)) return ( (0, i.logWarn)("Auction Options must be an object"), !1 ); for (const t of Object.keys(e)) { if ( "secondaryBidders" !== t && "suppressStaleRender" !== t && "suppressExpiredRender" !== t ) return ( (0, i.logWarn)( `Auction Options given an incorrect param: ${t}`, ), !1 ); if ("secondaryBidders" === t) { if (!(0, o.cy)(e[t])) return ( (0, i.logWarn)( `Auction Options ${t} must be of type Array`, ), !1 ); if (!e[t].every(o.O8)) return ( (0, i.logWarn)( `Auction Options ${t} must be only string`, ), !1 ); } else if ( ("suppressStaleRender" === t || "suppressExpiredRender" === t) && !(0, o.Lm)(e[t]) ) return ( (0, i.logWarn)( `Auction Options ${t} must be of type boolean`, ), !1 ); } return !0; })(e) && s("auctionOptions", e); }, }, }; return ( Object.defineProperties( e, Object.fromEntries( Object.entries(a).map((e) => { let [r, i] = e; return [ r, Object.assign( { get: n.bind(null, r), set: s.bind(null, r), enumerable: t.hasOwnProperty(r), configurable: !t.hasOwnProperty(r), }, i, ), ]; }), ), ), e ); function d(e) { return Object.keys(f).find((t) => e === f[t]); } function c(e) { if (!e) return ( (0, i.logError)( "Prebid Error: no value passed to `setPriceGranularity()`", ), !1 ); if ("string" == typeof e) d(e) || (0, i.logWarn)( "Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.", ); else if ((0, o.Qd)(e) && !(0, r.q)(e)) return ( (0, i.logError)( "Invalid custom price value passed to `setPriceGranularity()`", ), !1 ); return !0; } } const m = (function () { const e = []; let t, n, r, a = null; function l() { t = {}; const e = p({ debug: d, bidderTimeout: 3e3, enableSendAllBids: true, useBidCache: false, deviceAccess: true, disableAjaxTimeout: false, maxNestedIframes: 10, maxBid: 5e3, userSync: { topics: c }, }); (n && v( Object.keys(n).reduce( (t, r) => (n[r] !== e[r] && (t[r] = e[r] || {}), t), {}, ), ), (n = e), (r = {})); } function u() { if (a && r && (0, o.Qd)(r[a])) { const e = r[a], t = new Set([...Object.keys(n), ...Object.keys(e)]), s = {}; for (const r of t) { const t = n[r], a = e[r]; s[r] = void 0 === a ? t : void 0 === t ? a : (0, o.Qd)(a) ? (0, i.mergeDeep)({}, t, a) : a; } return s; } return { ...n }; } const [g, f] = [ u, function () { const e = u(); return ( Object.defineProperty(e, "ortb2", { get: function () { throw new Error( "invalid access to 'orbt2' config - use request parameters instead", ); }, }), e ); }, ].map( (e) => function () { if ( arguments.length <= 1 && "function" != typeof (arguments.length <= 0 ? void 0 : arguments[0]) ) { const t = arguments.length <= 0 ? void 0 : arguments[0]; return t ? (0, s.A)(e(), t) : u(); } return y(...arguments); }, ), [m, h] = [f, g].map( (e) => function () { let t = e(...arguments); return (t && "object" == typeof t && (t = (0, o.Go)(t)), t); }, ); function b(e) { if (!(0, o.Qd)(e)) return void (0, i.logError)( "setConfig options must be an object", ); const r = Object.keys(e), s = {}; (r.forEach((r) => { let a = e[r]; (0, o.Qd)(t[r]) && (0, o.Qd)(a) && (a = Object.assign({}, t[r], a)); try { s[r] = n[r] = a; } catch (e) { (0, i.logWarn)(`Cannot set config for property ${r} : `, e); } }), v(s)); } function y(t, n) { let r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, o = n; if ( ("string" != typeof t && ((o = t), (t = "*"), (r = n || {})), "function" != typeof o) ) return void (0, i.logError)("listener must be a function"); const s = { topic: t, callback: o }; return ( e.push(s), r.init && o("*" === t ? f() : { [t]: f(t) }), function () { e.splice(e.indexOf(s), 1); } ); } function v(t) { const n = Object.keys(t); (e .filter((e) => n.includes(e.topic)) .forEach((e) => { e.callback({ [e.topic]: t[e.topic] }); }), e.filter((e) => "*" === e.topic).forEach((e) => e.callback(t))); } function E(e) { let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; try { (!(function (e) { if (!(0, o.Qd)(e)) throw new Error( "setBidderConfig bidder options must be an object", ); if (!Array.isArray(e.bidders) || !e.bidders.length) throw new Error( "setBidderConfig bidder options must contain a bidders list with at least 1 bidder", ); if (!(0, o.Qd)(e.config)) throw new Error( "setBidderConfig bidder options must contain a config object", ); })(e), e.bidders.forEach((n) => { (r[n] || (r[n] = p({}, !1)), Object.keys(e.config).forEach((s) => { const a = e.config[s], d = r[n][s]; if ((0, o.Qd)(a) && (null == d || (0, o.Qd)(d))) { const e = t ? i.mergeDeep : Object.assign; r[n][s] = e({}, d || {}, a); } else r[n][s] = a; })); })); } catch (e) { (0, i.logError)(e); } } function A(e, t) { a = e; try { return t(); } finally { w(); } } function w() { a = null; } return ( l(), { getCurrentBidder: function () { return a; }, resetBidder: w, getConfig: f, getAnyConfig: g, readConfig: m, readAnyConfig: h, setConfig: b, mergeConfig: function (e) { if (!(0, o.Qd)(e)) return void (0, i.logError)( "mergeConfig input must be an object", ); const t = (0, i.mergeDeep)(u(), e); return (b({ ...t }), t); }, setDefaults: function (e) { (0, o.Qd)(t) ? (Object.assign(t, e), Object.assign(n, e)) : (0, i.logError)("defaults must be an object"); }, resetConfig: l, runWithBidder: A, callbackWithBidder: function (e) { return function (t) { return function () { if ("function" == typeof t) { for ( var n = arguments.length, r = new Array(n), o = 0; o < n; o++ ) r[o] = arguments[o]; return A(e, t.bind(this, ...r)); } (0, i.logWarn)( "config.callbackWithBidder callback is not a function", ); }; }; }, setBidderConfig: E, getBidderConfig: function () { return r; }, mergeBidderConfig: function (e) { return E(e, !0); }, } ); })(); }, 41385: (e, t, n) => { n.d(t, { B1: () => a, SL: () => v, ad: () => m, et: () => h, mW: () => f, o2: () => b, t6: () => p, }); var r = n(10466), i = n(26665), o = n(13064), s = n(91933); const a = Object.freeze({}), d = "gdpr", c = "gpp", l = "usp", u = "coppa"; class g { #t; #n; #r; #i; #o = !0; #s; constructor() { this.reset(); } #a(e) { ((this.#i = !0), (this.#n = e), this.#r.resolve(e)); } reset() { ((this.#r = (0, o.v6)()), (this.#t = !1), (this.#n = null), (this.#i = !1), (this.generatedTime = null)); } enable() { this.#t = !0; } get enabled() { return this.#t; } get ready() { return this.#i; } get promise() { return this.#i ? o.U9.resolve(this.#n) : (this.#t || this.#a(null), this.#r.promise); } setConsentData(e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (0, r.timestamp)(); ((this.generatedTime = t), (this.#o = !0), this.#a(e)); } getConsentData() { return this.#n; } get hash() { return ( this.#o && ((this.#s = (0, r.cyrb53Hash)( JSON.stringify( this.#n && this.hashFields ? this.hashFields.map((e) => this.#n[e]) : this.#n, ), )), (this.#o = !1)), this.#s ); } } const f = new (class extends g { hashFields = ["gdprApplies", "consentString"]; getConsentMeta() { const e = this.getConsentData(); if (e && e.vendorData && this.generatedTime) return { gdprApplies: e.gdprApplies, consentStringSize: (0, i.O8)(e.vendorData.tcString) ? e.vendorData.tcString.length : 0, generatedAt: this.generatedTime, apiVersion: e.apiVersion, }; } })(), p = new (class extends g { getConsentMeta() { if (this.getConsentData() && this.generatedTime) return { generatedAt: this.generatedTime }; } })(), m = new (class extends g { hashFields = ["applicableSections", "gppString"]; getConsentMeta() { if (this.getConsentData() && this.generatedTime) return { generatedAt: this.generatedTime }; } })(), h = (() => { function e() { return !!s.$W.getConfig("coppa"); } return { getCoppa: e, getConsentData: e, getConsentMeta: e, reset() {}, get promise() { return o.U9.resolve(e()); }, get hash() { return e() ? "1" : "0"; }, }; })(), b = (function () { const e = {}, t = {}, n = {}; return { register(r, i, o) { o && (((e[i] = e[i] || {})[r] = o), t.hasOwnProperty(i) ? t[i] !== o && (t[i] = n) : (t[i] = o)); }, get(r) { const i = { modules: e[r] || {} }; return ( t.hasOwnProperty(r) && t[r] !== n && (i.gvlid = t[r]), i ); }, }; })(), y = { [d]: f, [l]: p, [c]: m, [u]: h }; const v = (function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : y; const t = Object.entries(e); return Object.assign( { get promise() { return o.U9.all( t.map((e) => { let [t, n] = e; return n.promise.then((e) => [t, e]); }), ).then((e) => Object.fromEntries(e)); }, get hash() { return (0, r.cyrb53Hash)( t .map((e) => { let [t, n] = e; return n.hash; }) .join(":"), ); }, }, Object.fromEntries( ["getConsentData", "getConsentMeta", "reset"].map((e) => { return [ e, ((n = e), function () { return Object.fromEntries( t.map((e) => { let [t, r] = e; return [t, r[n]()]; }), ); }), ]; var n; }), ), ); })(); }, 11418: (e, t, n) => { n.d(t, { IY: () => A, M: () => i, RW: () => f, Tf: () => m, UE: () => c, XQ: () => o, Zh: () => u, _B: () => v, as: () => a, cA: () => d, h0: () => h, iD: () => r, jO: () => b, nl: () => E, oA: () => y, qY: () => s, tl: () => p, x5: () => g, xS: () => l, }); const r = { PL_CODE: "code", PL_SIZE: "sizes", PL_BIDS: "bids", BD_BIDDER: "bidder", BD_ID: "paramsd", BD_PL_ID: "placementId", ADSERVER_TARGETING: "adserverTargeting", BD_SETTING_STANDARD: "standard", }, i = "pbjs_debug", o = { GOOD: 1 }, s = { AUCTION_INIT: "auctionInit", AUCTION_TIMEOUT: "auctionTimeout", AUCTION_END: "auctionEnd", BID_ADJUSTMENT: "bidAdjustment", BID_TIMEOUT: "bidTimeout", BID_REQUESTED: "bidRequested", BID_RESPONSE: "bidResponse", BID_REJECTED: "bidRejected", NO_BID: "noBid", SEAT_NON_BID: "seatNonBid", BID_WON: "bidWon", BIDDER_DONE: "bidderDone", BIDDER_ERROR: "bidderError", SET_TARGETING: "setTargeting", BEFORE_REQUEST_BIDS: "beforeRequestBids", BEFORE_BIDDER_HTTP: "beforeBidderHttp", REQUEST_BIDS: "requestBids", ADD_AD_UNITS: "addAdUnits", AD_RENDER_FAILED: "adRenderFailed", AD_RENDER_SUCCEEDED: "adRenderSucceeded", TCF2_ENFORCEMENT: "tcf2Enforcement", AUCTION_DEBUG: "auctionDebug", BID_VIEWABLE: "bidViewable", STALE_RENDER: "staleRender", EXPIRED_RENDER: "expiredRender", BILLABLE_EVENT: "billableEvent", BID_ACCEPTED: "bidAccepted", RUN_PAAPI_AUCTION: "paapiRunAuction", PBS_ANALYTICS: "pbsAnalytics", PAAPI_BID: "paapiBid", PAAPI_NO_BID: "paapiNoBid", PAAPI_ERROR: "paapiError", BEFORE_PBS_HTTP: "beforePBSHttp", BROWSI_INIT: "browsiInit", BROWSI_DATA: "browsiData", }, a = { PREVENT_WRITING_ON_MAIN_DOCUMENT: "preventWritingOnMainDocument", NO_AD: "noAd", EXCEPTION: "exception", CANNOT_FIND_AD: "cannotFindAd", MISSING_DOC_OR_ADID: "missingDocOrAdid", }, d = { bidWon: "adUnitCode" }, c = { LOW: "low", MEDIUM: "medium", HIGH: "high", AUTO: "auto", DENSE: "dense", CUSTOM: "custom", }, l = { BIDDER: "hb_bidder", AD_ID: "hb_adid", PRICE_BUCKET: "hb_pb", SIZE: "hb_size", DEAL: "hb_deal", SOURCE: "hb_source", FORMAT: "hb_format", UUID: "hb_uuid", CACHE_ID: "hb_cache_id", CACHE_HOST: "hb_cache_host", ADOMAIN: "hb_adomain", ACAT: "hb_acat", CRID: "hb_crid", DSP: "hb_dsp", }, u = { BIDDER: "hb_bidder", AD_ID: "hb_adid", PRICE_BUCKET: "hb_pb", SIZE: "hb_size", DEAL: "hb_deal", FORMAT: "hb_format", UUID: "hb_uuid", CACHE_HOST: "hb_cache_host", }, g = { title: "hb_native_title", body: "hb_native_body", body2: "hb_native_body2", privacyLink: "hb_native_privacy", privacyIcon: "hb_native_privicon", sponsoredBy: "hb_native_brand", image: "hb_native_image", icon: "hb_native_icon", clickUrl: "hb_native_linkurl", displayUrl: "hb_native_displayurl", cta: "hb_native_cta", rating: "hb_native_rating", address: "hb_native_address", downloads: "hb_native_downloads", likes: "hb_native_likes", phone: "hb_native_phone", price: "hb_native_price", salePrice: "hb_native_saleprice", rendererUrl: "hb_renderer_url", adTemplate: "hb_adTemplate", }, f = { SRC: "s2s", DEFAULT_ENDPOINT: "https://prebid.adnxs.com/pbs/v1/openrtb2/auction", SYNCED_BIDDERS_KEY: "pbjsSyncs", }, p = { BID_TARGETING_SET: "targetingSet", RENDERED: "rendered", BID_REJECTED: "bidRejected", }, m = { INVALID: "Bid has missing or invalid properties", INVALID_REQUEST_ID: "Invalid request ID", BIDDER_DISALLOWED: "Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes", FLOOR_NOT_MET: "Bid does not meet price floor", CANNOT_CONVERT_CURRENCY: "Unable to convert currency", DSA_REQUIRED: "Bid does not provide required DSA transparency info", DSA_MISMATCH: "Bid indicates inappropriate DSA rendering method", PRICE_TOO_HIGH: "Bid price exceeds maximum value", }, h = { body: "desc", body2: "desc2", sponsoredBy: "sponsored", cta: "ctatext", rating: "rating", address: "address", downloads: "downloads", likes: "likes", phone: "phone", price: "price", salePrice: "saleprice", displayUrl: "displayurl", }, b = { sponsored: 1, desc: 2, rating: 3, likes: 4, downloads: 5, price: 6, saleprice: 7, phone: 8, address: 9, desc2: 10, displayurl: 11, ctatext: 12, }, y = { ICON: 1, MAIN: 3 }, v = [ "privacyIcon", "clickUrl", "adTemplate", "rendererUrl", "type", ], E = { REQUEST: "Prebid Request", RESPONSE: "Prebid Response", NATIVE: "Prebid Native", EVENT: "Prebid Event", }, A = "__pb_locator__"; }, 1124: (e, t, n) => { n.d(t, { j: () => u, q: () => f }); var r = n(10466), i = n(91933); const o = 2, s = { buckets: [{ max: 5, increment: 0.5 }] }, a = { buckets: [{ max: 20, increment: 0.1 }] }, d = { buckets: [{ max: 20, increment: 0.01 }] }, c = { buckets: [ { max: 3, increment: 0.01 }, { max: 8, increment: 0.05 }, { max: 20, increment: 0.5 }, ], }, l = { buckets: [ { max: 5, increment: 0.05 }, { max: 10, increment: 0.1 }, { max: 20, increment: 0.5 }, ], }; function u(e, t) { let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, r = parseFloat(e); return ( isNaN(r) && (r = ""), { low: "" === r ? "" : g(e, s, n), med: "" === r ? "" : g(e, a, n), high: "" === r ? "" : g(e, d, n), auto: "" === r ? "" : g(e, l, n), dense: "" === r ? "" : g(e, c, n), custom: "" === r ? "" : g(e, t, n), } ); } function g(e, t, n) { let s = ""; if (!f(t)) return s; const a = t.buckets.reduce((e, t) => (e.max > t.max ? e : t), { max: 0, }); let d = 0; const c = t.buckets.find((t) => { if (e > a.max * n) { let e = t.precision; (void 0 === e && (e = o), (s = (t.max * n).toFixed(e))); } else { if (e <= t.max * n && e >= d * n) return ((t.min = d), t); d = t.max; } }); return ( c && (s = (function (e, t, n) { const s = void 0 !== t.precision ? t.precision : o, a = t.increment * n, d = t.min * n; let c = Math.floor; const l = i.$W.getConfig("cpmRoundingFunction"); "function" == typeof l && (c = l); const u = Math.pow(10, s + 2), g = (e * u - d * u) / (a * u); let f, p; try { f = c(g) * a + d; } catch (e) { p = !0; } (p || "number" != typeof f) && ((0, r.logWarn)( "Invalid rounding function passed in config", ), (f = Math.floor(g) * a + d)); return ((f = Number(f.toFixed(10))), f.toFixed(s)); })(e, c, n)), s ); } function f(e) { if ((0, r.isEmpty)(e) || !e.buckets || !Array.isArray(e.buckets)) return !1; let t = !0; return ( e.buckets.forEach((e) => { (e.max && e.increment) || (t = !1); }), t ); } }, 45144: (e, t, n) => { n.d(t, { HH: () => c, kj: () => d, xh: () => a }); var r = n(13064), i = n(10466), o = n(63293), s = n(32592); const a = 3, d = (0, s.A_)("sync", function (e) { return o.G; }), c = (function () { const e = {}; return function (t) { const n = d(t); return ( e.hasOwnProperty(n) || (e[n] = new r.U9((e) => { const t = (0, i.createInvisibleIframe)(); ((t.srcdoc = `