Home news Record-breaking floods, hail and wind cause widespread damage in Grundy County

Record-breaking floods, hail and wind cause widespread damage in Grundy County

9
0

${n}`),
(t.onload = () => e(t.contentWindow.render)),
document.body.appendChild(t);
})),
e[n]
);
};
})();
},
3005: (e, t, n) => {
n.d(t, {
$T: () => a,
Ni: () => i,
OA: () => o,
RO: () => s,
fR: () => r
});
const i = 1,
r = 2,
o = 1,
s = 500;
function a(e) {
return (e ?? []).reduce((e, t) => {
let { event: n, method: i, url: r } = t;
const o = (e[n] = e[n] ?? {});
return (o[i] = o[i] ?? []).push(r), e;
}, {});
}
},
5023: (e, t, n) => {
n.d(t, { AU: () => m, Ic: () => v, kQ: () => y, on: () => h });
var i = n(1069),
r = n(8969),
o = n(6853),
s = n(3272);
const a = ‘eventHistoryTTL’;
let d = null;
const c = (0, o.H)({ monotonic: !0, ttl: () => d });
s.$W.getConfig(a, e => {
const t = d;
(e = e?.[a]),
(d = ‘number’ == typeof e ? 1e3 * e : null),
t !== d && c.refresh();
});
let l = Array.prototype.slice,
u = Array.prototype.push,
f = Object.values(r.qY);
const g = r.cA,
p = (function() {
let e = {},
t = {};
function n(e) {
return f.includes(e);
}
return (
(t.has = n),
(t.on = function(t, r, o) {
if (n(t)) {
let n = e[t] || { that: [] }; o ? ((n[o] = n[o] || { that: [] }), n[o].que.push(r)) : n.que.push(r), (e[t] = n);
} else
i.vV(
‘Wrong event name : ‘ + t + ‘ Valid event names :’ + f
);
}),
(t.emit = function(t) {
!(function(t, n) {
i.OG(‘Emitting event for: ‘ + t);
let r = n[0] || {},
o = r[g[t]],
s = e[t] || { that: [] };
var a = Object.keys(s);
let d = [];
c.add({
eventType: t,
args: r,
id: o,
elapsedTime: i.V()
}),
o && a.includes(o) && u.apply(d, s[o].que), u.apply(d, s.que), (d || []).forEach(function(e) {
if (e)
try {
e.apply(null, n);
} catch (e) {
i.vV(
‘Error executing handler:’,
‘events.js’,
e,
t
);
}
});
})(t, l.call(arguments, 1));
}),
(t.off = function(t, n, r) {
let o = e[t];
i.Im(o) ||
(i.Im(o.que) && i.Im(o[r])) ||
(r && (i.Im(o[r]) || i.Im(o[r].que))) || (r? (o[r].that || []).forEach(function(e) {
let t = o[r].what; e === n && t.splice(t.indexOf(e), 1); }) : (what || []).forEach(function(e) {
let t = o.que;
e === n && t.splice(t.indexOf(e), 1);
}),
(e[t] = o));
}),
(t.get = function() {
return e;
}),
(t.addEvents = function(e) {
f = f.concat(e);
}),
(t.getEvents = function() {
return c.toArray().map(e => Object.assign({}, e));
}),
t
);
})();
i.cD(p.emit.bind(p));
const {
on: h,
off: m,
get: b,
getEvents: y,
emit: v,
addEvents: E,
has: A
} = p;
},
687: (e, t, n) => {
n.d(t, { w: () => I });
var i = n(9214),
r = n(7934),
o = n(5973),
s = n(1069),
a = n(3172),
d = n(3272),
c = n(5555);
const l = [
‘architecture’,
‘bitness’,
‘model’,
‘platformVersion’,
‘fullVersionList’
],
u = [‘brands’, ‘mobile’, ‘platform’],
f = (function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: window.navigator?.userAgentData;
const t =
e && u.some(t => void 0 !== e[t])
? Object.freeze(p(1, e))
: null;
return function() {
return t;
};
})(),
g = (function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: window.navigator?.userAgentData;
const t = {},
n = new WeakMap();
return function() {
let i =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: l;
if (!n.has(i)) {
const e = Array.from(i);
e.sort(), n.set(i, e.join(‘|’));
}
const r = n.get(i);
if (!t.hasOwnProperty(r))
try {
t[r] = e
.getHighEntropyValues(i)
.then(e =>
(0, s.Im)(e) ? null : Object.freeze(p(2, e))
)
.catch(() => null);
} catch (e) {
t[r] = c.U9.resolve(null);
}
return t[r];
};
})();
function p(e, t) {
function n(e, t) {
const n = { brand: e };
return (
(0, s.O8)(t) && !(0, s.xQ)(t) && (n.version = t.split(‘.’)), n
);
}
const i = { source: e };
return (
t.platform && (i.platform = n(t.platform, t.platformVersion)),
(t.fullVersionList || t.brands) &&
(i.browsers = (t.fullVersionList || t.brands).map(e => {
let { brand: t, version: i } = e;
return n(t, i);
})),
void 0 !== t.mobile && (i.mobile = t.mobile ? 1 : 0),
[‘model’, ‘bitness’, ‘architecture’].forEach(e => {
const n = t[e];
(0, s.O8)(n) && (i[e] = n); }), i ); } var h = n(3858), m = n(5139), b = n(3441), y = n(6811), v = n(5569), E = n(8944); const A = { getRefererInfo: r.EN, findRootDomain: oS, getWindowTop: s.mb, getWindowSelf: s.l4, getHighEntropySUA: g, getLowEntropySUA: f, getDocument: s.YE }, w = (0, h.i8)(‘FPD’),(‘FPD’, i.inc’, i. e => { const t = [
e,
C().catch(() => null),
c.U9.resolve(
‘cookieDeprecationLabel’ in navigator &&
(0, m.io)(y.Ue, (0, b.s)(v.tp, ‘cdep’)) &&
navigator.cookieDeprecationLabel.getValue()
).catch(() => null)
];
return c.U9.all(t).then(e => {
let [t, n, i] = and; const r = A.getRefererInfo(); if ( (Object.entries(O).forEach(e => { let [n, i] = e;
const o = i(t, r);
o &&
Object.keys(o).length > 0 &&
(t[n] = (0, s.D9)({}, o, t[n]));
}),
n &&
(0, a.J)(
t,
‘device.sua’,
Object.assign({}, n, t.device.sua)
),
i)
) {
const e = { cdep: i };
(0, a.J)(
t,
‘device.ext’,
Object.assign({}, e, t.device.ext)
);
}
const o = A.getDocument().documentElement.lang;
o && (0, a.J)(t, ‘site.ext.data.documentLang’, o), (t = w(t));
for (let e of h.Dy)
if ((0, h.O$)(t, e)) {
t[e] = (0, s.D9)({}, R(t, r), t[e]);
break;
}
return t;
});
});
function T(e) {
try {
return e(A.getWindowTop());
} catch (t) {
return e(A.getWindowSelf());
}
}
function C() {
const e = d.$W.getConfig(‘firstPartyData.uaHints’);
return Array.isArray(e) && 0 !== e.length
? A.getHighEntropySUA(e)
: c.U9.resolve(A.getLowEntropySUA());
}
function B(e) {
return (0, s.SH)(e, Object.keys(e));
}
const O = {
site(e, t) {
if (!h.Dy.filter(e => ‘site’ !== e).some(h.O$.bind(null, e)))
return B({ page: t.page, ref: t.ref });
},
device: () =>
T(e => {
const t = (0, s.Ot)().screen.width,
n = (0, s.Ot)().screen.height,
{ width: i, height: r } = (0, E.M)(),
o = {
w: t,
h: n,
dnt: (0, s.l9)() ? 1 : 0,
ua: e.navigator.userAgent,
language: e.navigator.language.split(‘-‘).shift(),
ext: { vpw: i, vph: r }
};
return (
e.navigator?.webdriver && (0, a.J)(o, ‘ext.webdriver’, !0),
o
);
}),
regs() {
const e = {};
T(e => e.navigator.globalPrivacyControl) &&
(0, a.J)(e, ‘ext.gpc’, ‘1’);
const t = d.$W.getConfig(‘coppa’);
return ‘boolean’ == typeof t && (e.coppa = t ? 1 : 0), e;
}
};
function R(e, t) {
const n = (0, r.gR)(t.page, { noLeadingWww: !0 }),
i = T(e =>
e.document.querySelector(“meta[name=’keywords’]”)
)?.content?.replace?.(/s/g, ”);
return B({
domain: n,
keywords: i,
publisher: B({ domain: A.findRootDomain(n) })
});
}
},
3858: (e, t, n) => {
n.d(t, { Dy: () => r, O$: () => s, i8: () => o });
var i = n(1069);
const r = [‘dooh’, ‘app’, ‘site’];
function o(e) {
return function(t) {
return (
r.reduce(
(n, r) => (
s(t, r) &&
(null != n
? ((0, i.JE)(
`${e} specifies both ‘${n}’ and ‘${r}’; dropping the latter.`
),
delete t[r])
: (n = r)),
n
),
null
),
t
);
};
}
function s(e, t) {
return null != e[t] && Object.keys(e[t]).length > 0;
}
},
5973: (e, t, n) => {
n.d(t, { S: () => o });
var i = n(1069);
const r = (0, n(2938).CK)(‘fpdEnrichment’),
o = (0, i.Bj)(function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: window.location.host;
if (!r.cookiesAreEnabled()) return e;
const t = e.split(‘.’);
if (2 === t.length) return e;
let n,
o,
s = -2;
const a = `_rdc${Date.now()}`,
d = ‘writeable’;
do {
n = t.slice(s).join(‘.’);
let e = new Date((0, i.vE)() + 1e4).toUTCString();
r.setCookie(a, d, e, ‘Lax’, n, void 0);
r.getCookie(a, void 0) === d
? ((o = !1),
r.setCookie(
a,
”,
‘Thu, 01 Jan 1970 00:00:01 GMT’,
void 0,
n,
void 0
))
: ((s += -1), (o = Math.abs(s) {
n.d(t, {
A_: () => s,
Gc: () => d,
Y6: () => g,
Yn: () => c,
bz: () => f,
u2: () => p,
xG: () => u
});
var i = n(8128),
r = n.n(i),
o = n(5555);
let s = r()({ ready: r().SYNC | r().ASYNC | r().QUEUE });
const a = (0, o.v6)();
s.ready = (() => {
const e = s.ready;
return function() {
try {
return e.apply(s, arguments);
} finally {
a.resolve();
}
};
})();
const d = a.promise,
c = s.get;
const l = {};
function u(e, t) {
let { postInstallAllowed: n = !1 } =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
s(
‘async’,
function(i) {
i.forEach(e => t(…e)), n && (l[e] = t);
},
e
)([]);
}
function f(e) {
for (
var t = arguments.length,
n = new Array(t > 1 ? t – 1 : 0),
i = 1;
i {
t.push(n), e(t);
});
}
function g(e, t) {
return (
Object.defineProperties(
t,
Object.fromEntries(
[‘before’, ‘after’, ‘getHooks’, ‘removeAll’].map(t => [
t,
{ get: () => e[t] }
])
)
),
t
);
}
function p(e) {
return g(e, function() {
for (
var t = arguments.length, n = new Array(t), i = 0;
i {
n.d(t, {
D4: () => o,
GE: () => a,
G_: () => r,
LM: () => s,
s6: () => i
});
const i = ‘native’,
r = ‘video’,
o = ‘banner’,
s = ‘adpod’,
a = [i, r, o];
},
2449: (e, t, n) => {
n.d(t, {
Bm: () => y,
IX: () => C,
Nh: () => l,
Zj: () => A,
gs: () => E,
l6: () => p,
mT: () => c,
nk: () => m,
vO: () => v,
yl: () => B
});
var i = n(1069),
r = n(6881),
o = n(8969),
s = n(9075),
a = n(6031),
d = n(3005);
const c = [],
l = Object.keys(o.x5).map(e => o.x5[e]),
u = {
image: {
ortb: {
ver: ‘1.2’,
assets: [
{
required: 1,
id: 1,
img: { type: 3, wmin: 100, hmin: 100 }
},
{ required: 1, id: 2, title: { len: 140 } },
{ required: 1, id: 3, data: { type: 1 } },
{ required: 0, id: 4, data: { type: 2 } },
{
required: 0,
id: 5,
img: { type: 1, wmin: 20, hmin: 20 }
}
]
},
image: { required: !0 },
title: { required: !0 },
sponsoredBy: { required: !0 },
clickUrl: { required: !0 },
body: { required: !1 },
icon: { required: !1 }
}
},
f = k(o.h0),
g = k(o.jO);
function p(e) {
return e.native && ‘object’ == typeof e.native;
}
function h(e) {
if (
(e &&
e.type &&
(function(e) {
if (!e || !Object.keys(u).includes(e))
return (0, i.vV)(`${e} nativeParam is not supported`), !1;
return !0;
})(e.type) &&
(e = u[e.type]),
!e || !e.ortb || b(e.ortb))
)
return e;
}
function m(e) {
e.forEach(e => {
const t = e.nativeParams || e?.mediaTypes?.native;
t && (e.nativeParams = h(t)),
e.nativeParams &&
(e.nativeOrtbRequest =
e.nativeParams.ortb ||
(function(e) {
if (!e && !(0, i.Qd)(e))
return void (0, i.vV)(
‘Native assets object is empty or not an object: ‘,
e
);
const t = { ver: ‘1.2’, assets: [] };
for (let n in e) {
if (o._B.includes(n)) continue;
if (!o.x5.hasOwnProperty(n)) {
(0, i.vV)(
`Unrecognized native asset code: ${n}. Asset will be ignored.`
);
continue;
}
if (‘privacyLink’ === n) {
t.privacy = 1;
continue;
}
const r = e[n];
let s = 0;
r.required &&
(0, i.Lm)(r.required) &&
(s = Number(r.required));
const a = { id: t.assets.length, required: s };
if (n in o.h0)
(a.data = { type: o.jO[o.h0[n]]}),
r.len && (a.data.len = r.len);
else if (‘icon’ === n || ‘image’ === n) {
if (
((a.img = {
type: ‘icon’ === n ? o.oA.ICON : o.oA.MAIN
}),
r.aspect_ratios)
)
if ((0, i.cy)(r.aspect_ratios))
if (r.aspect_ratios.length) {
const {
min_width: e,
min_height: t
} = r.aspect_ratios[0];
(0, i.Fq)(e) && (0, i.Fq)(t)
? ((a.img.wmin = e), (a.img.hmin = t))
: (0, i.vV)(
‘image.aspect_ratios min_width or min_height are invalid: ‘,
e,
t
);
const n = r.aspect_ratios
.filter(
e => e.ratio_width && e.ratio_height
)
.map(
e => `${e.ratio_width}:${e.ratio_height}`
);
n.length > 0 &&
(a.img.ext = { aspectratios: n });
} else
(0, i.vV)(
“image.aspect_ratios was passed, but it’s empty:”,
r.aspect_ratios
);
else
(0, i.vV)(
“image.aspect_ratios was passed, but it’s not a an array:”,
r.aspect_ratios
);
r.sizes &&
(2 === r.sizes.length &&
(0, i.Fq)(r.sizes[0]) &&
(0, i.Fq)(r.sizes[1])
? ((a.img.w = r.sizes[0]),
(a.img.h = r.sizes[1]),
delete a.img.hmin,
delete a.img.wmin)
: (0, i.vV)(
‘image.sizes was passed, but its value is not an array of integers:’,
r.sizes
));
} else
‘title’ === n
? (a.title = { len: r.len || 140 })
: ‘ext’ === n && ((a.ext = r), delete a.required);
t.assets.push(a);
}
return t;
})(e.nativeParams));
});
}
function b(e) {
const t = e.assets;
if (!Array.isArray(t) || 0 === t.length)
return (
(0, i.vV)(
“assets in mediaTypes.native.ortb is not an array, or it’s empty. Assets: “,
t
),
!1
);
const n = t.map(e => e.id);
return t.length !== new Set(n).size ||
n.some(e => e !== parseInt(e, 10))
? ((0, i.vV)(
“each asset object must have ‘id’ property, it must be unique and it must be an integer”
),
!1)
: e.hasOwnProperty(‘eventtrackers’) &&
!Array.isArray(e.eventtrackers)
? ((0, i.vV)(
‘ortb.eventtrackers is not an array. Eventtrackers: ‘,
e.eventtrackers
),
!1)
: t.every(e =>
(function(e) {
if (!(0, i.Qd)(e))
return (
(0, i.vV)(
‘asset must be an object. Provided asset: ‘,
e
),
!1
);
if (e.img) {
if (!(0, i.Et)(e.img.w) && !(0, i.Et)(e.img.wmin))
return (
(0, i.vV)(
“for img asset there must be ‘w’ or ‘wmin’ property”
),
!1
);
if (!(0, i.Et)(e.img.h) && !(0, i.Et)(e.img.hmin))
return (
(0, i.vV)(
“for img asset there must be ‘h’ or ‘hmin’ property”
),
!1
);
} else if (e.title) {
if (!(0, i.Et)(e.title.len))
return (
(0, i.vV)(
“for title asset there must be ‘len’ property defined”
),
!1
);
} else if (e.data) {
if (!(0, i.Et)(e.data.type))
return (
(0, i.vV)(
“for data asset ‘type’ property must be a number”
),
!1
);
} else if (
e.video &&
!(
Array.isArray(e.video.mimes) &&
Array.isArray(e.video.protocols) &&
(0, i.Et)(e.video.minduration) &&
(0, i.Et)(e.video.maxduration)
)
)
return (
(0, i.vV)(‘video asset is not properly configured’),
!1
);
return !0;
})(e)
);
}
function y(e) {
let { index: t = r.n.index } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
const n = t.getAdUnit(e);
if (!n) return !1;
let o = n.nativeOrtbRequest;
return (function(e, t) {
if (!e?.link?.url)
return (
(0, i.vV)(
“native response doesn’t have ‘link’ property. Ortb response: “,
e
),
!1
);
let n = t.assets.filter(e => 1 === e.required).map(e => e.id),
r = e.assets.map(e => e.id);
const o = n.every(e => r.includes(e));
o ||
(0, i.vV)(
`didn’t receive a bid with all required assets. Required ids: ${n}, but received ids in response: ${r}`
);
return o;
})(e.native?.ortb || S(e.native, o), o);
}
function v(e, t) {
const n = t.native.ortb || R(t.native);
return (
‘click’ === e.action
? (function(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: null,
{ fetchURL: n = i.z$ } =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
if (t) {
const i = (e.assets || [])
.filter(e => e.link)
.reduce((e, t) => ((e[t.id] = t.link), e), {}),
r = e.link?.clicktrackers || [];
let o = i[t],
s = r;
o && (s = o.clicktrackers || []), s.forEach(e => n(e));
} else (e.link?.clicktrackers || []).forEach(e => n(e)); })(n, e?.assetId) : (function(e) { let { runMarkup: t = e => (0, i.ro)(e), fetchURL: n = iz$ } = arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {},
{ [d.Ni]: r = [], [d.fR]: o = [] } =
(0, d.$T)(e.eventtrackers || [])[d.OA] || {};
e.imptrackers && (r = r.concat(e.imptrackers));
r.forEach(e => n(e)),
(o = o.map(e => “)),
e.jstracker && (o = o.concat([e.jstracker]));
o.length && t(o.join(‘n’));
})(n),
e.action
);
}
function E(e, t) {
const n = t?.nativeOrtbRequest,
i = e.native?.ortb;
if (n && i) {
const t = (function(e, t) {
const n = {},
i = t?.assets || [];
(n.clickUrl = e.link?.url), (n.privacyLink = e.privacy);
for (const t of e?.assets || []) {
const e = i.find(e => t.id === e.id);
t.title
? (n.title = t.title.text)
: t.img
? (n[e?.img?.type === o.oA.MAIN ? ‘image’ : ‘icon’] = {
url: t.img.url,
width: t.img.w,
height: t.img.h
})
: t.data && (n[f[g[e?.data?.type]]]= t.data.value);
}
n.impressionTrackers = [];
let r = [];
e.imptrackers && n.impressionTrackers.push(…e.imptrackers);
for (const t of e?.eventtrackers || [])
t.event === d.OA &&
t.method === d.Ni &&
n.impressionTrackers.push(t.url),
t.event === d.OA && t.method === d.fR && r.push(t.url);
(r = r.map(e => “)),
e?.jstracker && r.push(e.jstracker);
r.length && (n.javascriptTrackers = r.join(‘n’));
return n;
})(i, n);
Object.assign(e.native, t);
}
[‘rendererUrl’, ‘adTemplate’].forEach(n => {
const i = t?.nativeParams?.[n];
i && (e.native[n] = O(i));
});
}
function A(e) {
let { index: t = r.n.index } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {},
n = {};
const i = t.getAdUnit(e),
s =
null == i?.nativeParams?.ortb &&
!1 !== i?.nativeParams?.sendTargetingKeys,
a = (function(e) {
const t = {};
e?.nativeParams?.ext &&
Object.keys(e.nativeParams.ext).forEach(e => {
t[e] = `hb_native_${e}`;
});
return { …o.x5, …t };
})(i),
d = { …e.native, …e.native.ext };
return (
delete d.ext,
Object.keys(d).forEach(t => {
const r = a[t];
let o = O(e.native[t]) || O(e?.native?.ext?.[t]);
if (‘adTemplate’ === t || !r || !o) return;
let d = i?.nativeParams?.[t]?.sendId;
if (
(‘boolean’ != typeof d &&
(d = i?.nativeParams?.ext?.[t]?.sendId),
d)
) {
o = `${r}:${e.adId}`;
}
let c = i?.nativeParams?.[t]?.sendTargetingKeys;
‘boolean’ != typeof c &&
(c = i?.nativeParams?.ext?.[t]?.sendTargetingKeys);
(‘boolean’ == typeof c ? c : s) && (n[r] = o);
}),
n
);
}
function w(e, t) {
let n =
arguments.length > 2 &&
void 0 !== arguments[2] &&
arguments[2],
i = [];
return (
Object.entries(e)
.filter(e => {
let [i, r] = e;
return (
r &&
((!1 === n && ‘ext’ === i) || null == t || t.includes(i))
);
})
.forEach(e => {
let [r, s] = e;
!1 === n && ‘ext’ === r
? i.push(…w(s, t, !0))
: (n || o.x5.hasOwnProperty(r)) &&
i.push({ key: r, value: O(s) });
}),
i
);
}
function I(e, t, n) {
let { index: d = r.n.index } =
arguments.length > 3 && void 0 !== arguments[3]
? arguments[3]
: {};
const c = { message: ‘assetResponse’, adId: e.adId };
let l = (0, s.vd)(t).native;
return (
l
? ((c.native = Object.assign({}, l)),
(c.renderer = (0, a.kj)(t)),
(c.rendererVersion = a.xh),
null != n &&
(l.assets = l.assets.filter(e => {
let { key: t } = e;
return n.includes(t);
})))
: (l = (function(e, t, n) {
const r = {
…(0, i.SH)(e.native, [‘rendererUrl’, ‘adTemplate’]),
assets: w(e.native, n),
nativeKeys: o.x5
};
return (
e.native.ortb
? (r.ortb = e.native.ortb)
: t.mediaTypes?.native?.ortb &&
(r.ortb = S(e.native, t.nativeOrtbRequest)),
r
);
})(t, d.getAdUnit(t), n)),
Object.assign(c, l)
);
}
const T = Object.fromEntries(
Object.entries(o.x5).map(e => {
let [t, n] = e;
return [n, t];
})
);
function C(e, t) {
const n = e.assets.map(e => T[e]);
return I(e, t, n);
}
function B(e, t) {
return I(e, t, null);
}
function O(e) {
return e?.url || e;
}
function R(e) {
const t = { link: {}, eventtrackers: [] };
return (
Object.entries(e).forEach(e => {
let [n, i] = e;
switch (n) {
case ‘clickUrl’:
t.link.url = i;
break;
case ‘clickTrackers’:
t.link.clicktrackers = Array.isArray(i) ? i : [i];
break;
case ‘impressionTrackers’:
(Array.isArray(i) ? i : [i]).forEach(e => {
t.eventtrackers.push({
event: d.OA,
method: d.Ni,
url: e
});
});
break;
case ‘javascriptTrackers’:
t.jstracker = Array.isArray(i) ? i.join(”) : i;
break;
case ‘privacyLink’:
t.privacy = i;
}
}),
t
);
}
function S(e, t) {
const n = { …R(e), assets: [] };
function r(e, r) {
let o = t.assets.find(e);
null != o && ((o = (0, i.Go)(o)), r(o), n.assets.push(o));
}
return (
Object.keys(e)
.filter(t => !!e[t])
.forEach(t => {
const n = O(e[t]);
switch (t) {
case ‘title’:
r(
e => null != e.title,
e => {
e.title = { text: n };
}
);
break;
case ‘image’:
case ‘icon’:
const e = ‘image’ === t ? o.oA.MAIN : o.oA.ICON;
r(
t => null != t.img && t.img.type === e,
e => {
e.img = { url: n };
}
);
break;
default:
t in o.h0 &&
r(
e =>
null != e.data && e.data.type === o.jO[o.h0[t]],
e => {
e.data = { value: n };
}
);
}
}),
n
);
}
function k(e) {
var t = {};
for (var n in e) t[e[n]]= n;
return t;
}
},
1e3: (e, t, n) => {
n.d(t, {
Cf: () => a,
S3: () => r,
Tb: () => o,
WR: () => s,
e4: () => c,
pS: () => u,
qN: () => d,
yB: () => f,
zt: () => i
});
const i = [‘request’, ‘imp’, ‘bidResponse’, ‘response’],
[r, o, s, a] = i,
[d, c] = [‘default’, ‘pbs’],
l = new Set(i);
const { registerOrtbProcessor: u, getProcessors: f } = (function() {
const e = {};
return {
registerOrtbProcessor(t) {
let {
type: n,
name: r,
fn: o,
priority: s = 0,
dialects: a = [d]
} = t;
if (!l.has(n))
throw new Error(
`ORTB processor type must be one of: ${i.join(‘, ‘)}`
);
a.forEach(t => {
e.hasOwnProperty(t) || (e[t] = {}),
e[t].hasOwnProperty(n) || (e[t][n] = {}),
(e[t][n][r] = { priority: s, fn: o });
});
},
getProcessors: t => e[t] || {}
};
})();
},
8934: (e, t, n) => {
n.d(t, { gH: () => se });
var i = n(7873),
r = n(1069),
o = n(433),
s = n(3172),
a = n(2449),
d = n(8969),
c = n(9075),
l = n(6031);
const { REQUEST: u, RESPONSE: f, NATIVE: g, EVENT: p } = d.nl,
h = {
[u]: function(e, t, n) {
(0, c.bw)({
renderFn(t) {
e(
Object.assign(
{
message: f,
renderer: (0, l.kj)(n),
rendererVersion: l.xh
},
t
)
);
},
resizeFn: b(t.adId, n),
options: t.options,
adId: t.adId,
bidResponse: n
});
},
[p]: function(e, t, n) {
if (null == n)
return void (0, r.vV)(
`Cannot find ad ‘${t.adId}’ for x-origin event request`
);
if (n.status !== d.tl.RENDERED)
return void (0, r.JE)(
`Received x-origin event request without corresponding render request for ad ‘${n.adId}’`
);
return (0, c.Uc)(t, n);
}
};
function m() {
window.addEventListener(
‘message’,
function(e) {
!(function(e) {
var t = e.message ? ‘message’ : ‘data’,
n = {};
try {
n = JSON.parse(e[t]);
} catch (e) {
return;
}
if (n && n.adId && n.message && h.hasOwnProperty(n.message))
(0, c.$A)(n.adId, n.message === d.nl.REQUEST).then(t => {
var i, o;
h[n.message](
((i = n.adId),
(o = (function(e) {
return null == e.origin && 0 === e.ports.length
? function() {
const e =
‘Cannot post message to a frame with null origin. Please update creatives to use MessageChannel, see https://github.com/prebid/Prebid.js/issues/7870’;
throw ((0, r.vV)(e), new Error(e));
}
: e.ports.length > 0
? function(t) {
e.ports[0].postMessage(JSON.stringify(t));
}
: function(t) {
e.source.postMessage(
JSON.stringify(t),
e.origin
);
};
})(e)),
function(e) {
for (
var t = arguments.length,
n = new Array(t > 1 ? t – 1 : 0),
r = 1;
r
t
.getTargetingKeys()
.find(n => t.getTargeting(n).includes(e))
);
return t ? t.getSlotElementId() : null;
}
function u(e) {
let t = window.apntag.getTag(e);
return t && t.targetId;
}
[‘div’, ‘iframe’].forEach(e => {
let t = d(e + ‘:not([style*=”display: none”])’);
if (t) {
let e = t.style;
(e.width = a(o)), (e.height = a(s));
} else
(0, r.vV)(
`Unable to locate matching page element for adUnitCode ${i}. Can’t resize it to ad’s dimensions. Please review setup.`
);
});
})({ …t, width: n, height: i, adId: e });
};
}
Object.assign(h, {
[g]: function(e, t, n) {
if (null == n)
return void (0, r.vV)(
`Cannot find ad for x-origin event request: ‘${t.adId}’`
);
switch (t.action) {
case ‘assetRequest’:
(0, c.Hh)(n, () => e((0, a.IX)(t, n)));
break;
case ‘allAssetRequest’:
(0, c.Hh)(n, () => e((0, a.yl)(t, n)));
break;
default:
(0, c.vW)(t, n, { resizeFn: b(t.adId, n) }), (0, c.Pk)(n);
}
}
});
var y = n(8230),
v = n(3272),
E = n(6881),
A = n(7779),
w = n(9214),
I = n(3597),
T = n(1580),
C = n(5555),
B = n(5569);
const O = ‘__tlpbjs_debugging__’;
function R() {
return (0, i.m)().installedModules.includes(‘debugging’);
}
function S(e) {
return new C.U9(t => {
(0, T.R)(e, B.tp, ‘debugging’, t);
});
}
function k() {
let { alreadyInstalled: e = R, script: t = S } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
n = null;
return function() {
return (
null == n &&
(n = new C.U9((n, o) => {
setTimeout(() => {
if (e()) n();
else {
const e =
‘https://cdn.jsdelivr.net/npm/prebid.js@9.50.0/dist/debugging-standalone.js’;
(0, r.OG)(
`Debugging module not installed, loading it from “${e}”…`
),
((0, i.m)()._installDebugging = !0),
t(e)
.then(() => {
(0, i.m)()._installDebugging({
DEBUG_KEY: O,
hook: w.A_,
config: v.$W,
createBid: I.O,
logger: (0, r.h0)(‘DEBUG:’)
});
})
.then(n, o);
}
});
})),
n
);
};
}
const U = (function() {
let { load: e = k(), hook: t = (0, w.Yn)(‘requestBids’) } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
n = null,
i = !1;
function r(e) {
for (
var t = arguments.length,
i = new Array(t > 1 ? t – 1 : 0),
r = 1;
r e.apply(this, i));
}
function o() {
t.getHooks({ hook: r }).remove(), (i = !1);
}
return {
enable: function() {
i || ((n = e()), t.before(r, 99), (i = !0));
},
disable: o,
reset: function() {
(n = null), o();
}
};
})();
U.reset;
v.$W.getConfig(‘debugging’, function(e) {
let { debugging: t } = e;
t?.enabled ? U.enable() : U.disable();
});
var D = n(2938),
_ = n(1445),
$ = n(5023),
j = n(6894),
x = n(687),
q = n(6916),
N = n(2713),
W = n(3895);
const P = new Map([
[
‘format’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘object’ == typeof e)
],
[‘w’, r.Fq],
[‘h’, r.Fq],
[‘btype’, r.Uu],
[‘battr’, r.Uu],
[‘pos’, r.Fq],
[
‘mimes’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘string’ == typeof e)
],
[‘topframe’, e => [1, 0].includes(e)],
[‘expdir’, r.Uu],
[‘api’, r.Uu],
[‘id’, r.O8],
[‘vcm’, e => [1, 0].includes(e)]]);
var V = n(1371);
function M(e, t) {
return function() {
if (document.prerendering && e()) {
const e = this,
n = Array.from(arguments);
return new Promise(i => {
document.addEventListener(
‘prerenderingchange’,
() => {
(0, r.fH)(
‘Auctions were suspended while page was prerendering’
),
i(t.apply(e, n));
},
{ once: !0 }
);
});
}
return Promise.resolve(t.apply(this, arguments));
};
}
var G = n(7377);
const F = (0, i.m)(),
{ triggerUserSyncs: H } = y.zt,
{ ADD_AD_UNITS: L, REQUEST_BIDS: z, SET_TARGETING: J } = d.qY,
Q = {
bidWon: function(e) {
if (
!E.n
.getBidsRequested()
.map(e => e.bids.map(e => e.adUnitCode))
.reduce(r.Bq)
.filter(r.hj)
.includes(e)
)
return void (0, r.vV)(
‘The “‘ + e + ‘” placement is not defined.’
);
return !0;
}
};
function K(e, t) {
let n = [];
return (
(0, r.cy)(e) &&
(t ? e.length === t : e.length > 0) &&
(e.every(e => (0, r.Uu)(e, 2))
? (n = e)
: (0, r.Uu)(e, 2) && n.push(e)),
n
);
}
function Y(e, t) {
const n = (0, o.A)(e, `ortb2Imp.${t}`),
i = (0, o.A)(e, `mediaTypes.${t}`);
if (!n && !i) return;
const a = { [V.G_]: W.Zy, [V.D4]: P }[t];
a &&
[…a].forEach(n => {
let [i, a] = n;
const d = (0, o.A)(e, `mediaTypes.${t}.${i}`),
c = (0, o.A)(e, `ortb2Imp.${t}.${i}`);
(null == d && null == c) ||
(null == d
? (0, s.J)(e, `mediaTypes.${t}.${i}`, c)
: null == c
? (0, s.J)(e, `ortb2Imp.${t}.${i}`, d)
: ((0, r.JE)(
`adUnit ${e.code}: specifies conflicting ortb2Imp.${t}.${i} and mediaTypes.${t}.${i}, the latter will be ignored`,
e
),
(0, s.J)(e, `mediaTypes.${t}.${i}`, c)));
});
}
function X(e) {
const t = (0, r.Go)(e),
n = t.mediaTypes.banner,
i = null == n.sizes ? null : K(n.sizes),
o = e.ortb2Imp?.banner?.format ?? n?.format;
let a;
if (null != o) {
(0, s.J)(t, ‘ortb2Imp.banner.format’, o), (n.format = o);
try {
a = o
.filter(t => {
let { w: n, h: i, wratio: o, hratio: s } = t;
return null != (n ?? i) && null != (o ?? s)
? ((0, r.JE)(
‘Ad unit banner.format specifies both w/h and wratio/hratio’,
e
),
!1)
: (null != n && null != i) || (null != o && null != s);
})
.map(e => {
let { w: t, h: n, wratio: i, hratio: r } = e;
return [t ?? i, n ?? r];
});
} catch (t) {
(0, r.vV)(
`Invalid format definition on ad unit ${e.code}`,
o
);
}
null == a ||
null == i ||
(0, r.bD)(i, a) ||
(0, r.JE)(
`Ad unit ${e.code} has conflicting sizes and format definitions`,
e
);
}
const d = a ?? i ?? [],
c = e.ortb2Imp?.banner?.expdir ?? n.expdir;
return (
null != c &&
((n.expdir = c), (0, s.J)(t, ‘ortb2Imp.banner.expdir’, c)),
d.length > 0
? ((n.sizes = d), (t.sizes = d))
: ((0, r.vV)(
‘Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250]…]. Removing invalid mediaTypes.banner object from request.’
),
delete t.mediaTypes.banner),
Y(t, ‘banner’),
t
);
}
function Z(e) {
const t = (0, r.Go)(e),
n = t.mediaTypes.video;
if (n.playerSize) {
let e = ‘number’ == typeof n.playerSize[0] ? 2 : 1;
const i = K(n.playerSize, e);
i.length > 0
? (2 === e &&
(0, r.fH)(
“Transforming video.playerSize from [640,480] to [[640,480]]so it’s in the proper format.”
),
(n.playerSize = i),
(t.sizes = i))
: ((0, r.vV)(
‘Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request.’
),
delete t.mediaTypes.video.playerSize);
}
return (0, W.aP)(t), Y(t, ‘video’), t;
}
function ee(e) {
function t(t) {
return (
(0, r.vV)(
`Error in adUnit “${e.code}”: ${t}. Removing native request from ad unit`,
e
),
delete i.mediaTypes.native,
i
);
}
function n(e) {
for (const t of [‘sendTargetingKeys’, ‘types’])
if (o.hasOwnProperty(t)) {
const n = e(t);
if (n) return n;
}
}
const i = (0, r.Go)(e),
o = i.mediaTypes.native;
if (o.ortb) {
if (
o.ortb.assets?.some(
e => !(0, r.Et)(e.id) || e.id t(`ORTB native requests cannot specify “${e}”`)))
return i;
const e = Object.keys(d.x5).filter(e =>
d.x5[e].includes(‘hb_native_’)
),
s = Object.keys(o).filter(t => e.includes(t));
s.length > 0 &&
((0, r.vV)(
`when using native OpenRTB format, you cannot use legacy native properties. Deleting ${s} keys from request.`
),
s.forEach(e => delete i.mediaTypes.native[e]));
} else
n(
e =>
`mediaTypes.native.${e} is deprecated, consider using native ORTB instead`
);
return (
o.image &&
o.image.sizes &&
!Array.isArray(o.image.sizes) &&
((0, r.vV)(
‘Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request.’
),
delete i.mediaTypes.native.image.sizes),
o.image &&
o.image.aspect_ratios &&
!Array.isArray(o.image.aspect_ratios) &&
((0, r.vV)(
‘Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request.’
),
delete i.mediaTypes.native.image.aspect_ratios),
o.icon &&
o.icon.sizes &&
!Array.isArray(o.icon.sizes) &&
((0, r.vV)(
‘Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request.’
),
delete i.mediaTypes.native.icon.sizes),
i
);
}
function te(e, t) {
let n = e?.mediaTypes?.[t]?.pos;
if (!(0, r.Et)(n) || isNaN(n) || !isFinite(n)) {
let n = `Value of property ‘pos’ on ad unit ${e.code} should be of type: Number`;
(0, r.JE)(n), delete e.mediaTypes[t].pos;
}
return e;
}
function ne(e) {
const t = t => `adUnit.code ‘${e.code}’ ${t}`,
n = e.mediaTypes,
i = e.bids;
return null == i || (0, r.cy)(i)
? null == i && null == e.ortb2Imp
? ((0, r.vV)(
t(
“has no ‘adUnit.bids’ and no ‘adUnit.ortb2Imp’. Removing adUnit from auction”
)
),
null)
: n && 0 !== Object.keys(n).length
? (null == e.ortb2Imp ||
(null != i && 0 !== i.length) ||
((e.bids = [{ bidder: null }]),
(0, r.OG)(
t(
“defines ‘adUnit.ortb2Imp’ with no ‘adUnit.bids’; it will be seen only by S2S adapters”
)
)),
e)
: ((0, r.vV)(
t(
“does not define a ‘mediaTypes’ object. This is a required field for the auction, so this adUnit has been removed.”
)
),
null)
: ((0, r.vV)(
t(
“defines ‘adUnit.bids’ that is not an array. Removing adUnit from auction”
)
),
null);
}
!(function() {
let e = null;
try {
e = window.sessionStorage;
} catch (e) {}
if (null !== e) {
let t = U,
n = null;
try {
n = e.getItem(O);
} catch (e) {}
null !== n && t.enable();
}
})(),
(F.bidderSettings = F.bidderSettings || {}),
(F.libLoaded = !0),
(F.version = ‘v9.50.0’),
(0, r.fH)(‘Prebid.js v9.50.0 loaded’),
(F.installedModules = F.installedModules || []), (F.adUnits = F.adUnits || []),
(F.triggerUserSyncs = H);
const ie = {
validateAdUnit: ne,
validateBannerMediaType: X,
validateSizes: K
};
Object.assign(ie, { validateNativeMediaType: ee }),
Object.assign(ie, { validateVideoMediaType: Z });
const re = (0, w.A_)(
‘sync’,
function(e) {
const t = [];
return (
e.forEach(e => {
if (null == (e = ne(e))) return;
const n = e.mediaTypes;
let i, r, o;
n.banner &&
((i = X(e)),
n.banner.hasOwnProperty(‘pos’) && (i = te(i, ‘banner’))),
n.video &&
((r = Z(i || e)),
n.video.hasOwnProperty(‘pos’) && (r = te(r, ‘video’))),
n.native && (o = ee(r || i || e));
const s = Object.assign({}, i, r, o);
t.push(s);
}),
t
);
},
‘checkAdUnitSetup’
);
function oe(e) {
const t = E.n[e]().filter(e => EngetAdUnitCodes().includes(e.adUnitCode) ), n = EngetLastAuctionId(); return t .map(e => e.adUnitCode) .filter(r.hj) .map(e => t.filter(t => t.auctionId === n && t.adUnitCode === e) ) .filter(e => e && e[0] && e[0].adUnitCode) .map(e => ({ [e[0].adUnitCode]: { bids: e } }))
.reduce((e, t) => Object.assign(e, t), {});
}
(F.getAdserverTargetingForAdUnitCodeStr = function(e) {
if (
((0, r.fH)(
‘Invoking tlpbjs.getAdserverTargetingForAdUnitCodeStr’,
arguments
),
e)
) {
var t = F.getAdserverTargetingForAdUnitCode(e);
return (0, r.$D)(t);
}
(0, r.OG)(
‘Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode’
);
}),
(F.getHighestUnusedBidResponseForAdUnitCode = function(e) {
if (e) {
const t = E.n.getAllBidsForAdUnitCode(e).filter(A.Yl);
return t.length ? t.reduce(N.Vk) : {};
}
(0, r.OG)(
‘Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode’
);
}),
(F.getAdserverTargetingForAdUnitCode = function(e) {
return F.getAdserverTargeting(e)[e];
}),
(F.getAdserverTargeting = function(e) {
return (
(0, r.fH)(‘Invoking tlpbjs.getAdserverTargeting’, arguments),
A.iS.getAllTargeting(e)
);
}),
(F.getConsentMetadata = function() {
return (
(0, r.fH)(‘Invoking tlpbjs.getConsentMetadata’),
q.SL.getConsentMeta()
);
}),
(F.getNoBids = function() {
return (
(0, r.fH)(‘Invoking tlpbjs.getNoBids’, arguments),
oe(‘getNoBids’)
);
}),
(F.getNoBidsForAdUnitCode = function(e) {
return {
bids: E.n.getNoBids().filter(t => t.adUnitCode === e)
};
}),
(F.getBidResponses = function() {
return (
(0, r.fH)(‘Invoking tlpbjs.getBidResponses’, arguments),
oe(‘getBidsReceived’)
);
}),
(F.getBidResponsesForAdUnitCode = function(e) {
return {
bids: E.n.getBidsReceived().filter(t => t.adUnitCode === e)
};
}),
(F.setTargetingForGPTAsync = function(e, t) {
(0, r.fH)(‘Invoking tlpbjs.setTargetingForGPTAsync’, arguments),
(0, r.II)()
? A.iS.setTargetingForGPT(e, t)
: (0, r.vV)(‘window.googletag is not defined on the page’);
}),
(F.setTargetingForAst = function(e) {
(0, r.fH)(‘Invoking tlpbjs.setTargetingForAn’, arguments),
A.iS.isApntagDefined()
? (A.iS.setTargetingForAst(e),
$.Ic(J, A.iS.getAllTargeting()))
: (0, r.vV)(‘window.apntag is not defined on the page’);
}),
(F.renderAd = (0, w.A_)(‘async’, function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.renderAd’, arguments),
(0, r.OG)(‘Calling renderAd with adId :’ + t),
(0, c.BS)(e, t, n);
})),
(F.removeAdUnit = function(e) {
if (((0, r.fH)(‘Invoking tlpbjs.removeAdUnit’, arguments), !e))
return void (F.adUnits = []);
let t;
(t = (0, r.cy)(e) ? e : [e]),
t.forEach(e => {
for (let t = F.adUnits.length – 1; t >= 0; t–)
F.adUnits[t].code === e && F.adUnits.splice(t, 1);
});
}),
(F.requestBids = (function() {
const e = (0, w.A_)(
‘async’,
function() {
let {
bidsBackHandler: e,
timeout: t,
adUnits: n,
adUnitCodes: i,
labels: o,
auctionId: s,
ttlBuffer: a,
ortb2: d,
metrics: c,
defer: l
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
$.Ic(z);
const u = t || v.$W.getConfig(‘bidderTimeout’);
(0, r.fH)(‘Invoking tlpbjs.requestBids’, arguments),
null == i || Array.isArray(i) || (i = [i]),
i && i.length
? (n = n.filter(e => i.includes(e.code)))
: (i = n && n.map(e => e.code)),
(i = i.filter(r.hj));
const f = {
global: (0, r.D9)(
{},
v.$W.getAnyConfig(‘ortb2’) || {},
d || {}
),
bidder: Object.fromEntries(
Object.entries(v.$W.getBidderConfig())
.map(e => {
let [t, n] = e;
return [t, (0, r.Go)(n.ortb2)];
})
.filter(e => {
let [t, n] = e;
return null != n;
})
)
};
return (0, x.w)(C.U9.resolve(f.global)).then(
t => (
(f.global = t),
se({
bidsBackHandler: e,
timeout: u,
adUnits: n,
adUnitCodes: i,
labels: o,
auctionId: s,
ttlBuffer: a,
ortb2Fragments: f,
metrics: c,
defer: l
})
)
);
},
‘requestBids’
);
return (0, w.Y6)(
e,
M(
() => !v.$W.getConfig(‘allowPrerendering’),
function() {
let t =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {}, n = t.adUnits || F.adUnits; return ( (t.adUnits = (0, r.cy)(n) ? n.slice() : [n]),
(t.metrics = (0, j.K7)()),
t.metrics.checkpoint(‘requestBids’),
(t.defer = (0, C.v6)({
promiseFactory: e => new Promise(e)
})),
e.call(this, t),
t.defer.promise
);
}
)
);
})());
const se = (0, w.A_)(
‘async’,
function() {
let {
bidsBackHandler: e,
timeout: t,
adUnits: n,
ttlBuffer: i,
adUnitCodes: o,
labels: a,
auctionId: d,
ortb2Fragments: c,
metrics: l,
defer: u
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
const f = (0, _.pX)(v.$W.getConfig(‘s2sConfig’) || []);
function g(t, n, i) {
if (‘function’ == typeof e)
try {
e(t, n, i);
} catch (e) {
(0, r.vV)(‘Error executing bidsBackHandler’, null, e);
}
u.resolve({ bids: t, timedOut: n, auctionId: i });
}
!(function(e) {
e.forEach(e => (0, W.V0)(e));
})(n),
(n = (0, j.BO)(l).measureTime(‘requestBids.validate’, () =>
re(n)
));
const p = {};
if (
(n.forEach(e => {
const t = Object.keys(e.mediaTypes || { banner: ‘banner’ }),
n = e.bids.map(e => e.bidder),
o = _.Ay.bidderRegistry,
s = n.filter(e => !f.has(e));
e.adUnitId = (0, r.lk)();
const a = e.ortb2Imp?.ext?.tid;
a &&
(p.hasOwnProperty(e.code)
? (0, r.JE)(
`Multiple distinct ortb2Imp.ext.tid were provided for twin ad units ‘${e.code}’`
)
: (p[e.code] = a)),
null == i ||
e.hasOwnProperty(‘ttlBuffer’) ||
(e.ttlBuffer = i),
s.forEach(n => {
const i = o[n],
s = i && i.getSpec && i.getSpec(),
a = (s && s.supportedMediaTypes) || [‘banner’];
t.some(e => a.includes(e)) ||
((0, r.JE)((0, r.bz)(e, n)),
(e.bids = e.bids.filter(e => e.bidder !== n)));
});
}),
n && 0 !== n.length)
) {
n.forEach(e => {
const t = e.ortb2Imp?.ext?.tid || p[e.code] || (0, r.lk)();
p.hasOwnProperty(e.code) || (p[e.code] = t),
(e.transactionId = t),
(0, s.J)(e, ‘ortb2Imp.ext.tid’, t);
});
const e = E.n.createAuction({
adUnits: n,
adUnitCodes: o,
callback: g,
cbTimeout: t,
labels: a,
auctionId: d,
ortb2Fragments: c,
metrics: l
});
let i = n.length;
i > 15 &&
(0, r.fH)(
`Current auction ${e.getAuctionId()} contains ${i} adUnits.`,
n
),
o.forEach(t =>
A.iS.setLatestAuctionForAdUnit(t, e.getAuctionId())
),
e.callBids();
} else
(0, r.OG)(‘No adUnits configured. No bids requested.’), g();
},
‘startAuction’
);
F.requestBids.before(function(e, t) {
function n(e) {
for (var t; (t = e.shift()); ) t();
}
n(D.s0), n(ae), e.call(this, t);
}, 49),
(F.addAdUnits = function(e) {
(0, r.fH)(‘Invoking tlpbjs.addAdUnits’, arguments),
F.adUnits.push.apply(F.adUnits, (0, r.cy)(e) ? e : [e]),
$.Ic(L);
}),
(F.onEvent = function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.onEvent’, arguments),
(0, r.fp)(t)
? !n || Q[e].call(null, n)
? $.on(e, t, n)
: (0, r.vV)(
‘The id provided is not valid for event “‘ +
e +
‘” and no handler was set.’
)
: (0, r.vV)(
‘The event handler provided is not a function and was not set on event “‘ +
e +
‘”.’
);
}),
(F.offEvent = function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.offEvent’, arguments),
(n && !Q[e].call(null, n)) || $.AU(e, t, n);
}),
(F.getEvents = function() {
return (0, r.fH)(‘Invoking tlpbjs.getEvents’), $.kQ();
}),
(F.registerBidAdapter = function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.registerBidAdapter’, arguments);
try {
const i = n ? (0, G.xb)(n) : e();
_.Ay.registerBidAdapter(i, t);
} catch (e) {
(0, r.vV)(‘Error registering bidder adapter : ‘ + e.message);
}
}),
(F.registerAnalyticsAdapter = function(e) {
(0, r.fH)(
‘Invoking tlpbjs.registerAnalyticsAdapter’,
arguments
);
try {
_.Ay.registerAnalyticsAdapter(e);
} catch (e) {
(0, r.vV)(
‘Error registering analytics adapter : ‘ + e.message
);
}
}),
(F.createBid = function(e) {
return (
(0, r.fH)(‘Invoking tlpbjs.createBid’, arguments), (0, I.O)(e)
);
});
const ae = [],
de = (0, w.A_)(
‘async’,
function(e) {
e && !(0, r.Im)(e)
? ((0, r.fH)(‘Invoking tlpbjs.enableAnalytics for: ‘, e),
_.Ay.enableAnalytics(e))
: (0, r.vV)(
‘tlpbjs.enableAnalytics should be called with option {}’
);
},
‘enableAnalyticsCb’
);
function ce(e) {
if (‘function’ == typeof e)
try {
e.call();
} catch (e) {
(0, r.vV)(‘Error processing command :’, e.message, e.stack);
}
else
(0, r.vV)(
‘Commands written into tlpbjs.cmd.push must be wrapped in a function’
);
}
function le(e) {
e.forEach(function(e) {
if (void 0 === e.called)
try {
e.call(), (e.called = !0);
} catch (e) {
(0, r.vV)(‘Error processing command :’, ‘prebid.js’, e);
}
});
}
(F.enableAnalytics = function(e) {
ae.push(de.bind(this, e));
}),
(F.aliasBidder = function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.aliasBidder’, arguments),
e && t
? _.Ay.aliasBidAdapter(e, t, n)
: (0, r.vV)(
‘bidderCode and alias must be passed as arguments’,
‘tlpbjs.aliasBidder’
);
}),
(F.aliasRegistry = _.Ay.aliasRegistry),
v.$W.getConfig(‘aliasRegistry’, e => {
‘private’ === e.aliasRegistry && delete F.aliasRegistry;
}),
(F.getAllWinningBids = function() {
return E.n.getAllWinningBids();
}),
(F.getAllPrebidWinningBids = function() {
return (
(0, r.JE)(
‘getAllPrebidWinningBids may be removed or renamed in a future version. This function returns bids that have won in prebid and have had targeting set but have not (yet?) won in the ad server. It excludes bids that have been rendered.’
),
E.n
.getBidsReceived()
.filter(e => e.status === d.tl.BID_TARGETING_SET)
);
}),
(F.getHighestCpmBids = function(e) {
return A.iS.getWinningBids(e);
}),
(F.clearAllAuctions = function() {
E.n.clearAllAuctions();
}),
(F.markWinningBidAsUsed = function(e) {
let t,
{
adId: n,
adUnitCode: i,
analytics: o = !1,
events: s = !1
} = e;
i && null == n
? (t = A.iS.getWinningBids(i))
: n
? (t = E.n.getBidsReceived().filter(e => e.adId === n))
: (0, r.JE)(
‘Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function.’
),
t.length > 0 &&
(o || s ? (0, c.n6)(t[0]) : E.n.addWinningBid(t[0]),
(0, c.qn)(t[0]));
}),
(F.getConfig = v.$W.getAnyConfig),
(F.readConfig = v.$W.readAnyConfig),
(F.mergeConfig = v.$W.mergeConfig),
(F.mergeBidderConfig = v.$W.mergeBidderConfig),
(F.setConfig = v.$W.setConfig),
(F.setBidderConfig = v.$W.setBidderConfig),
F.que.push(() => m()),
(F.processQueue = M(
() => (0, i.m)().delayPrerendering,
function() {
(F.que.push = F.cmd.push = ce),
(0, c.XO)(),
w.A_.ready(),
le(F.que),
le(F.cmd);
}
)),
(F.triggerBilling = e => {
let { adId: t, adUnitCode: n } = e;
E.n
.getAllWinningBids()
.filter(
e => e.adId === t || (null == t && e.adUnitCode === n)
)
.forEach(e => {
_.Ay.triggerBilling(e), (0, c.vB)(e);
});
});
},
7873: (e, t, n) => {
n.d(t, { E: () => s, m: () => o });
const i = window,
r = (i.tlpbjs = i.tlpbjs || {});
function o() {
return r;
}
function s(e) {
r.installedModules.push(e);
}
(r.cmd = r.cmd || []), (r.que = r.que || []),
i === window &&
((i._pbjsGlobals = i._pbjsGlobals || []),
i._pbjsGlobals.push(‘tlpbjs’));
},
7934: (e, t, n) => {
n.d(t, { EN: () => d, gR: () => s });
var i = n(3272),
r = n(1069);
function o(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: window;
if (!e) return e;
if (/w+:///.exec(e)) return e;
let n = t.location.protocol;
try {
n = t.top.location.protocol;
} catch (e) {}
return /^///.exec(e) ? n + e : `${n}//${e}`;
}
function s(e) {
let { noLeadingWww: t = !1, noPort: n = !1 } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
try {
e = new URL(o(e));
} catch (e) {
return;
}
return (
(e = n ? e.hostname : e.host),
t && e.startsWith(‘www.’) && (e = e.substring(4)),
e
);
}
function a(e) {
try {
const t = e.querySelector(“link[rel=’canonical’]”);
if (null !== t) return t.href;
} catch (e) {}
return null;
}
const d = (function(e) {
let t,
n,
i,
r =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: window;
return r.top !== r
? e
: function() {
const o = a(r.document),
s = r.location.href;
return (
(t === o && s === n) || ((t = o), (n = s), (i = e())), i
);
};
})(
((c = window),
function() {
const e = [],
t = (function(e) {
try {
if (!e.location.ancestorOrigins) return;
return e.location.ancestorOrigins;
} catch (e) {}
})(c),
n = i.$W.getConfig(‘maxNestedIframes’);
let d,
l,
u,
f,
g = !1,
p = 0,
h = !1,
m = !1,
b = !1;
do {
const n = d,
i = m;
let o,
s = !1,
f = null;
(m = !1), (d = d ? d.parent : c);
try {
o = d.location.href || null;
} catch (e) {
s = !0;
}
if (s)
if (i) {
const e = n.context;
try {
(f = e.sourceUrl),
(l = f),
(b = !0),
(h = !0),
d === c.top && (g = !0),
e.canonicalUrl && (u = e.canonicalUrl);
} catch (e) {}
} else {
(0, r.JE)(
‘Trying to access cross domain iframe. Continuing without referrer and location’
);
try {
const e = n.document.referrer;
e && ((f = e), d === c.top && (g = !0));
} catch (e) {}
!f &&
t &&
t[p – 1] &&
((f = t[p – 1]), d === c.top && (b = !0)),
f && !h && (l = f);
}
else {
if (o && ((f = o), (l = f), (h = !1), d === c.top)) {
g = !0;
const e = a(d.document);
e && (u = e);
}
d.context && d.context.sourceUrl && (m = !0);
}
e.push(f), p++;
} while (d !== c.top && p -1 &&
-1 === E.indexOf(‘?’) &&
(E = `${E}${y.substring(y.indexOf(‘?’))}`),
{
reachedTop: g,
isAmp: h,
numIframes: p – 1,
stack: e,
topmostLocation: l || null,
location: y,
canonicalUrl: v,
page: E,
domain: s(E) || null,
ref: f || null,
legacy: {
reachedTop: g,
isAmp: h,
numIframes: p – 1,
stack: e,
referer: l || null,
canonicalUrl: v
}
}
);
})
);
var c;
},
2938: (e, t, n) => {
n.d(t, {
CK: () => b,
X0: () => g,
qk: () => f,
s0: () => p,
vM: () => m
});
var i = n(1069),
r = n(2693),
o = n(5569),
s = n(5139),
a = n(2604),
d = n(6811),
c = n(3272),
l = n(1445),
u = n(3441);
const f = ‘html5’,
g = ‘cookie’;
let p = [];
function h() {
let { moduleName: e, moduleType: t } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
{ isAllowed: n = s.io } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
function r(i, r) {
let s = e;
const f = c.$W.getCurrentBidder();
f && t === o.tW && l.Ay.aliasRegistry[f] === e && (s = f);
return i({ valid: n(d.Ue, (0, u.s)(t, s, { [a.Zw]: r })) });
}
function h(e, t, n) {
if (!n || ‘function’ != typeof n) return r(e, t);
p.push(function() {
let i = r(e, t);
n(i);
});
}
function m(e) {
const t = e.charAt(0).toUpperCase() + e.substring(1),
n = () => window[e],
r = function(t) {
return h(
function(t) {
if (t && t.valid)
try {
return !!n();
} catch (t) {
(0, i.vV)(`${e} api disabled`);
}
return !1;
},
f,
t
);
};
return {
[`has${t}`]: r,
[`${e}IsEnabled`]: e =>
h(
function(e) {
if (e && e.valid)
try {
return (
n().setItem(‘prebid.cookieTest’, ‘1’),
‘1’ === n().getItem(‘prebid.cookieTest’)
);
} catch (e) {
} finally {
try {
n().removeItem(‘prebid.cookieTest’);
} catch (e) {}
}
return !1;
},
f,
e
),
[`setDataIn${t}`]: (e, t, i) =>
h(
function(i) {
i && i.valid && r() && n().setItem(e, t);
},
f,
i
),
[`getDataFrom${t}`]: (e, t) =>
h(
function(t) {
return t && t.valid && r() ? n().getItem(e) : null;
},
f,
t
),
[`removeDataFrom${t}`]: (e, t) =>
h(
function(t) {
t && t.valid && r() && n().removeItem(e);
},
f,
t
)
};
}
return {
setCookie: function(e, t, n, i, r, o) {
return h(
function(o) {
if (o && o.valid) {
const o =
r && ” !== r
? ` ;domain=${encodeURIComponent(r)}`
: ”,
s = n && ” !== n ? ` ;expires=${n}` : ”,
a =
null != i && ‘none’ == i.toLowerCase()
? ‘; Secure’
: ”;
document.cookie = `${e}=${encodeURIComponent(
t
)}${s}; path=/${o}${i ? `; SameSite=${i}` : ”}${a}`;
}
},
g,
o
);
},
getCookie: function(e, t) {
return h(
function(t) {
if (t && t.valid) {
let t = window.document.cookie.match(
‘(^|;)\s*’ + e + ‘\s*=\s*([^;]*)\s*(;|$)’
);
return t ? decodeURIComponent(t[2]) : null;
}
return null;
},
g,
t
);
},
cookiesAreEnabled: function(e) {
return h(
function(e) {
return !(!e || !e.valid) && (0, i.GE)();
},
g,
e
);
},
…m(‘localStorage’),
…m(‘sessionStorage’),
findSimilarCookies: function(e, t) {
return h(
function(t) {
if (t && t.valid) {
const t = [];
if ((0, i.N9)()) {
const n = document.cookie.split(‘;’);
for (; n.length; ) {
const i = n.pop();
let r = i.indexOf(‘=’);
r = r = 0 &&
t.push(decodeURIComponent(i.slice(r + 1)));
}
}
return t;
}
},
g,
t
);
}
};
}
function m() {
let { moduleType: e, moduleName: t, bidderCode: n } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
function i() {
throw new Error(
‘Invalid invocation for getStorageManager: must set either bidderCode, or moduleType + moduleName’
);
}
return (
n
? (((e && e !== o.tW) || t) && i(), (e = o.tW), (t = n))
: (t && e) || i(),
h({ moduleType: e, moduleName: t })
);
}
function b(e) {
return h({ moduleName: e, moduleType: o.tp });
}
(0, s.qB)(d.Ue, ‘deviceAccess config’, function() {
if (!(0, i.N9)()) return { allow: !1 };
}),
(0, s.qB)(d.Ue, ‘bidderSettings.*.storageAllowed’, function(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: r.u;
if (e[a.Dk] !== o.tW) return;
let n = t.get(e[a.q7]’storageAllowed’);
if (n && !0 !== n) {
const t = e[a.Zw];
n = Array.isArray(n) ? n.some(e => e === t) : n === t;
} else n = !!n;
return n ? void 0 : { allow: n };
});
},
7779: (e, t, n) => {
n.d(t, { Yl: () => w, iS: () => B, uW: () => A });
var i = n(6881),
r = n(7863),
o = n(2693),
s = n(3272),
a = n(8969),
d = n(5023),
c = n(9214),
l = n(1371),
u = n(2449),
f = n(1069),
g = n(433),
p = n(2713),
h = [];
const m = 20,
b = ‘targetingControls.allowTargetingKeys’,
y = ‘targetingControls.addTargetingKeys’,
v = `Only one of “${b}” or “${y}” can be set`,
E = Object.keys(a.xS).map(e => a.xS[e]);
let A = {
isActualBid: e => e.getStatusCode() === a.XQ.GOOD,
isBidNotExpired: e =>
e.responseTimestamp + 1e3 * (0, r.cT)(e) > (0, f.vE)(),
isUnusedBid: e =>
e &&
((e.status && ![a.tl.RENDERED].includes(e.status)) || !e.status)
};
function w(e) {
return !Object.values(A).some(t => !t(e));
}
const I = (0, c.A_)(‘sync’, function(e, t) {
let n =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: 0,
i =
arguments.length > 3 &&
void 0 !== arguments[3] &&
arguments[3],
r =
arguments.length > 4 && void 0 !== arguments[4]
? arguments[4]
: f.Q0;
if (!i) {
const i = [],
o = s.$W.getConfig(‘sendBidsControl.dealPrioritization’);
let a = (0, f.$z)(e, ‘adUnitCode’);
return (
Object.keys(a).forEach(e => {
let s = [],
d = (0, f.$z)(a[e]’bidderCode’);
Object.keys(d).forEach(e => {
s.push(d[e].reduce(t));
}),
n
? ((s = o
? s.sort(T(!0))
: s.sort((e, t) => t.cpm – e.cpm)),
i.push(…s.slice(0, n)))
: ((s = s.sort(r)), i.push(…s));
}),
i
);
}
return e;
});
function T() {
let e =
arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
return function(t, n) {
return void 0 !== t.adserverTargeting.hb_deal &&
void 0 === n.adserverTargeting.hb_deal
? -1
: void 0 === t.adserverTargeting.hb_deal &&
void 0 !== n.adserverTargeting.hb_deal
? 1
: e
? n.cpm – t.cpm
: n.adserverTargeting.hb_pb – t.adserverTargeting.hb_pb;
};
}
function C(e, t) {
return (arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: () => window.googletag.pubads().getSlots())().reduce(
(e, n) => {
const i = (0, f.fp)(t) && t(n);
return (
Object.keys(e)
.filter((0, f.fp)(i) ? i : (0, f.iC)(n))
.forEach(t => e[t].push(n)),
e
);
},
Object.fromEntries(e.map(e => [e, []]))
);
}
const B = (function(e) {
let t = {},
n = {};
function i(e) {
let t =
arguments.length > 1 &&
void 0 !== arguments[1] &&
arguments[1],
n =
arguments.length > 2 &&
void 0 !== arguments[2] &&
arguments[2];
const i = E.concat(u.Nh),
r = s.$W.getConfig(
‘targetingControls.allowSendAllBidsTargetingKeys’
),
o = r ? r.map(e => a.xS[e]) : i;
return e.reduce((e, r) => {
if (t || (n && r.dealId)) {
const t = (function(e, t) {
return t.reduce(
(t, n) => (
e.adserverTargeting[n] &&
t.push({
[`${n}_${e.bidderCode}`.substring(0, 20)]: [
e.adserverTargeting[n]
]}),
t
),
[]
);
})(
r,
i.filter(
e =>
void 0 !== r.adserverTargeting[e] &&
(n || -1 !== o.indexOf(e))
)
);
t && e.push({ [r.adUnitCode]: t });
}
return e;
}, []);
}
function r(t) {
return ‘string’ == typeof t
? [t]
: (0, f.cy)(t)
? t
: e.getAdUnitCodes() || [];
}
function A() {
let t =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: p.Bq,
i =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: void 0,
r = e.getBidsReceived().reduce((e, t) => {
const i = s.$W.getConfig(‘useBidCache’),
r = s.$W.getConfig(‘bidCacheFilterFunction’),
o = n[t.adUnitCode] === t.auctionId,
a = !(i && !o && ‘function’ == typeof r) || !!r(t);
return (
(i || o) &&
a &&
(0, g.A)(t, ‘video.context’) !== l.LM &&
w(t) &&
((t.latestTargetedAuctionId = n[t.adUnitCode]),
e.push(t)),
e
);
}, []);
return I(r, t, void 0, void 0, void 0, i);
}
function B(e, n) {
let i = t.getWinningBids(n, e),
r = O();
return (
(i = i.map(e => ({
[e.adUnitCode]: Object.keys(e.adserverTargeting)
.filter(
t =>
void 0 === e.sendStandardTargeting ||
e.sendStandardTargeting ||
-1 === r.indexOf(t)
)
.reduce((t, n) => {
const i = [e.adserverTargeting[n]],
r = { [n.substring(0, m)]: i };
if (n === a.xS.DEAL) {
const o = `${n}_${e.bidderCode}`.substring(0, m),
s = { [o]: i };
return […t, r, s];
}
return […t, r];
}, [])
}))),
i
);
}
function O() {
return e
.getStandardBidderAdServerTargeting()
.map(e => e.key)
.concat(E)
.filter(f.hj);
}
return (
(t.setLatestAuctionForAdUnit = function(e, t) {
n[e] = t;
}),
(t.resetPresetTargeting = function(e, t) {
if ((0, f.II)()) {
const n = r(e);
Object.values(C(n, t)).forEach(e => {
e.forEach(e => {
!(function(e) {
h.forEach(t => {
e.getTargeting(t) && e.clearTargeting(t);
});
})(e);
});
});
}
}),
(t.resetPresetTargetingAST = function(e) {
r(e).forEach(function(e) {
const t = window.apntag.getTag(e);
if (t && t.keywords) {
const n = Object.keys(t.keywords),
i = {};
n.forEach(e => {
h.includes(e.toLowerCase()) || (i[e] = t.keywords[e]);
}),
window.apntag.modifyTag(e, { keywords: i });
}
});
}),
(t.getAllTargeting = function(t, n, d) {
let c =
arguments.length > 3 && void 0 !== arguments[3]
? arguments[3]
: p.Vk,
l =
arguments.length > 4 && void 0 !== arguments[4]
? arguments[4]
: f.Q0;
d ||= A(c, l);
const g = r(t),
E = s.$W.getConfig(‘enableSendAllBids’),
w = s.$W.getConfig(‘sendBidsControl.bidLimit’),
C = (E && (n || w)) || 0,
{ customKeysByUnit: R, filteredBids: S } = (function(e, t) {
const n = [],
i = {},
r = s.$W.getConfig(
‘targetingControls.alwaysIncludeDeals’
);
return (
t.forEach(t => {
const s = e.includes(t.adUnitCode),
a =
!0 === o.u.get(t.bidderCode, ‘allowZeroCpmBids’)
? t.cpm >= 0
: t.cpm > 0,
d = r && t.dealId;
s &&
(d || a) &&
(n.push(t),
Object.keys(t.adserverTargeting)
.filter(
(function() {
let e = O();
e = e.concat(u.Nh);
return function(t) {
return -1 === e.indexOf(t);
};
})()
)
.forEach(e => {
const n = e.substring(0, m),
r = i[t.adUnitCode] || {},
o = [t.adserverTargeting[e]];
r[n]
? (r[n] = r[n].concat(o).filter(f.hj))
: (r[n] = o),
(i[t.adUnitCode] = r);
}));
}),
{ filteredBids: n, customKeysByUnit: i }
);
})(g, d);
let k = (function(t, n, r) {
const o =
!1 !==
s.$W.getConfig(
‘targetingControls.allBidsCustomTargeting’
),
d = B(t, r)
.concat(
(function(e) {
const t = s.$W.getConfig(
‘targetingControls.alwaysIncludeDeals’
);
return i(e, s.$W.getConfig(‘enableSendAllBids’), t);
})(t)
)
.concat(
(function(t) {
function n(e) {
return e?.[a.iD.ADSERVER_TARGETING];
}
function i(e) {
const t = n(e);
return Object.keys(t).map(function(e) {
return (
(0, f.O8)(t[e]) &&
(t[e] = t[e].split(‘,’).map(e => e.trim())),
(0, f.cy)(t[e]) || (t[e] = [t[e]]),
{ [e]: t[e] }
);
});
}
return e
.getAdUnits()
.filter(e => t.includes(e.code) && n(e))
.reduce((e, t) => {
const n = i(t);
return n && e.push({ [t.code]: n }), e;
}, []);
})(r)
);
o &&
d.push(
…(function(e, t) {
return e.reduce((e, n) => {
const i = Object.assign({}, n),
r = t[i.adUnitCode],
o = [];
return (
r &&
Object.keys(r).forEach(e => {
e && r[e] && o.push({ [e]: r[e] });
}),
e.push({ [i.adUnitCode]: o }), and ); }, []);
})(t, n)
);
return (
d.forEach(e => {
!(function(e) {
Object.keys(e).forEach(t => {
e[t].forEach(e => {
const t = Object.keys(e);
-1 === h.indexOf(t[0]) && (h = t.concat(h));
});
});
})(e);
}),
d
);
})(I(S, c, C, void 0, l), R, g);
const U = Object.keys(Object.assign({}, a.Zh, a.x5));
let D = s.$W.getConfig(b);
const _ = s.$W.getConfig(y);
if (null != _ && null != D) throw new Error(v);
(D = null != _ ? U.concat(_) : D || U),
Array.isArray(D) &&
D.length > 0 &&
(k = (function(e, t) {
const n = Object.assign({}, a.xS, a.x5),
i = Object.keys(n),
r = {};
(0, f.fH)(
`allowTargetingKeys – allowed keys [ ${t
.map(e => n[e])
.join(‘, ‘)} ]`
),
e.map(e => {
const o = Object.keys(e)[0],
s = e[o].filter(e => {
const o = Object.keys(e)[0],
s =
0 ===
i.filter(e => 0 === o.indexOf(n[e]))
.length ||
t.find(e => {
const t = n[e];
return 0 === o.indexOf(t);
});
return (r[o] = !s), s;
});
e[o] = s;
});
const o = Object.keys(r).filter(e => r[e]);
return (
(0, f.fH)(
`allowTargetingKeys – removed keys [ ${o.join(
‘, ‘
)} ]`
),
e.filter(e => e[Object.keys(e)[0]].length > 0)
);
})(k, D)),
(k = (function(e) {
let t = e.map(e => ({
[Object.keys(e)[0]]: e[Object.keys(e)[0]].map(e => ({
[Object.keys(e)[0]]: e[Object.keys(e)[0]].join(‘,’)
}))
.reduce((e, t) => Object.assign(t, e), {})
}));
return (
(t = t.reduce(function(e, t) {
var n = Object.keys(t)[0];
return (e[n] = Object.assign({}, e[n]t[n])), e;
}, {})),
t
);
})(k));
const $ = s.$W.getConfig(
‘targetingControls.auctionKeyMaxChars’
);
return (
$ &&
((0, f.fH)(
`Detected ‘targetingControls.auctionKeyMaxChars’ was active for this auction; set with a limit of ${$} characters. Running checks on auction keys…`
),
(k = (function(e, t) {
let n = (0, f.Go)(e),
i = Object.keys(n)
.map(e => ({
adUnitCode: e,
adserverTargeting: n[e]
}))
.sort(T());
return i.reduce(function(e, i, r, o) {
let s =
((a = i.adserverTargeting),
Object.keys(a).reduce(function(e, t) {
return (
e + `${t}%3d${encodeURIComponent(a[t])}%26`
);
}, ”));
var a;
r + 1 === o.length && (s = s.slice(0, -3));
let d = i.adUnitCode,
c = s.length;
return (
c {
k[e] || (k[e] = {});
}),
k
);
}),
s.$W.getConfig(‘targetingControls’, function(e) {
null != (0, g.A)(e, b) &&
null != (0, g.A)(e, y) &&
(0, f.vV)(v);
}),
(t.setTargetingForGPT = (0, c.A_)(
‘sync’,
function(n, i) {
let r = t.getAllTargeting(n),
o = Object.fromEntries(h.map(e => [e, null]));
Object.entries(C(Object.keys(r), i)).forEach(e => {
let [t, n] = e;
n.length > 1 &&
(0, f.JE)(
`Multiple slots found matching: ${t}. Targeting will be set on all matching slots, which can lead to duplicate impressions if more than one are requested from GAM. To resolve this, ensure the arguments to setTargetingForGPTAsync resolve to a single slot by explicitly matching the desired slotElementID.`
),
n.forEach(e => {
Object.keys(r[t]).forEach(e => {
let n = r[t][e];
‘string’ == typeof n &&
-1 !== n.indexOf(‘,’) &&
(n = n.split(‘,’)),
(r[t][e] = n);
}),
(0, f.OG)(
`Attempting to set targeting-map for slot: ${e.getSlotElementId()} with targeting-map:`,
r[t]
),
e.updateTargetingFromMap(
Object.assign({}, o, r[t])
);
});
}),
Object.keys(r).forEach(t => {
Object.keys(r[t]).forEach(n => { ‘hb_adid’ === n && e.setStatusForBids(r[t][n]a.tl.BID_TARGETING_SET);
});
}),
t.targetingDone(r),
d.Ic(a.qY.SET_TARGETING, r);
},
‘setTargetingForGPT’
)),
(t.targetingDone = (0, c.A_)(
‘sync’,
function(e) {
return e;
},
‘targetingDone’
)),
(t.getWinningBids = function(e, t) {
let n =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: p.Vk,
i =
arguments.length > 3 && void 0 !== arguments[3]
? arguments[3]
: f.Q0;
const s = t || A(n, i),
a = r(e);
return s
.filter(e => a.includes(e.adUnitCode))
.filter(e =>
!0 === o.u.get(e.bidderCode, ‘allowZeroCpmBids’)
? e.cpm >= 0
: e.cpm > 0
)
.map(e => e.adUnitCode)
.filter(f.hj)
.map(e =>
s
.filter(t => (t.adUnitCode === e ? t : null))
.reduce(p.Vk)
);
}),
(t.setTargetingForAst = function(e) {
let n = t.getAllTargeting(e);
try {
t.resetPresetTargetingAST(e);
} catch (e) {
(0, f.vV)(‘unable to reset targeting for AST’ + e);
}
Object.keys(n).forEach(e =>
Object.keys(n[e]).forEach(t => {
if (
((0, f.OG)(
`Attempting to set targeting for targetId: ${e} key: ${t} value: ${n[e][t]}`
),
(0, f.O8)(n[e][t]) || (0, f.cy)(n[e][t]))
) {
let i = {},
r = /pt[0-9]/;
t.search(r) {
n.d(t, { qh: () => u, zt: () => g });
var i = n(1069),
r = n(3272),
o = n(2938),
s = n(5139),
a = n(6811),
d = n(2604),
c = n(5569),
l = n(3441);
const u = {
syncEnabled: !0,
filterSettings: { image: { bidders: ‘*’, filter: ‘include’ } },
syncsPerBidder: 5,
syncDelay: 3e3,
auctionDelay: 500
};
r.$W.setDefaults({ userSync: (0, i.Go)(u) });
const f = (0, o.CK)(‘usersync’);
const g = (function(e) {
let t = {},
n = { image: []iframe: [] },
o = new Set(),
s = {},
u = { image: !0, iframe: !1 },
f = e.config;
function g() {
if (f.syncEnabled && e.browserSupportsCookies) {
try {
!(function() {
if (!u.iframe) return;
p(n.iframe, e => {
let [t, r] = e;
(0, i.OG)(`Invoking iframe user sync for bidder: ${t}`),
(0, i.SG)(r),
(function(e, t) {
e.image = e.image.filter(e => e[0] !== t);
})(n, t);
});
})(),
(function() {
if (!u.image) return;
p(n.image, e => {
let [t, n] = e;
(0, i.OG)(
`Invoking image pixel user sync for bidder: ${t}`
),
(0, i.z$)(n);
});
})();
} catch (e) {
return (0, i.vV)(‘Error firing user syncs’, e);
}
n = { image: []iframe: [] };
}
}
function p(e, t) {
(0, i.k4)(e).forEach(t);
}
function h(e, t) {
let n = f.filterSettings;
if (
(function(e, t) {
if (e.all && e[t])
return (
(0, i.JE)(
`Detected presence of the “filterSettings.all” and “filterSettings.${t}” in userSync config. You cannot mix “all” with “iframe/image” configs; they are mutually exclusive.`
),
!1
);
let n = e.all ? e.all : e[t],
r = e.all ? ‘all’ : t;
if (!n) return !1;
let o = n.filter,
s = n.bidders;
if (o && ‘include’ !== o && ‘exclude’ !== o)
return (
(0, i.JE)(
`UserSync “filterSettings.${r}.filter” setting ‘${o}’ is not a valid option; use either ‘include’ or ‘exclude’.`
),
!1
);
if (
‘*’ !== s &&
!(
Array.isArray(s) &&
s.length > 0 &&
s.every(e => (0, i.O8)(e) && ‘*’ !== e)
)
)
return (
(0, i.JE)(
`Detected an invalid setup in userSync “filterSettings.${r}.bidders”; use either ‘*’ (to represent all bidders) or an array of bidders.`
),
!1
);
return !0;
})(n, e)
) {
u[e] = !0;
let i = n.all ? n.all : n[e],
r = ‘*’ === i.bidders ? [t] : i.bidders;
const o = {
include: (e, t) => !e.includes(t),
exclude: (e, t) => e.includes(t)
};
return o[i.filter || ‘include’](r, t);
}
return !u[e];
}
return (
r.$W.getConfig(‘userSync’, e => {
if (e.userSync) {
let t = e.userSync.filterSettings;
(0, i.Qd)(t) &&
(t.image ||
t.all ||
(e.userSync.filterSettings.image = {
bidders: ‘*’,
filter: ‘include’
}));
}
f = Object.assign(f, e.userSync);
}),
e.regRule(a.Ml, ‘userSync config’, e => {
if (!f.syncEnabled)
return { allow: !1, reason: ‘syncs are disabled’ };
if (e[d.Dk] === c.tW) {
const n = e[d.bt]i = e[d.iK];
if (!t.canBidderRegisterSync(n, i))
return {
allow: !1,
reason: `${n} syncs are not enabled for ${i}`
};
}
}),
(t.registerSync = (t, r, u) =>
o.has(r)
? (0, i.OG)(
`already fired syncs for “${r}”, ignoring registerSync call`
)
: f.syncEnabled && (0, i.cy)(n[t])
? r
? 0 !== f.syncsPerBidder &&
Number(s[r]) >= f.syncsPerBidder
? (0, i.JE)(`Number of user syncs exceeded for “${r}”`)
: void (
e.isAllowed(
a.Ml,
(0, l.s)(c.tW, r, { [d.bt]: t, [d.e3]: u })
) &&
(n[t].push([r, u]),
(s = (function(e, t) {
return e[t] ? (e[t] += 1) : (e[t] = 1), e;
})(s, r)))
)
: (0, i.JE)(‘Bidder is required for registering sync’)
: (0, i.JE)(`User sync type “${t}” not supported`)),
(t.bidderDone = o.add.bind(o)),
(t.syncUsers = function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: 0;
if (e) return setTimeout(g, Number(e));
g();
}),
(t.triggerUserSyncs = () => {
f.enableOverride && t.syncUsers();
}),
(t.canBidderRegisterSync = (e, t) =>
!f.filterSettings || !h(e, t)),
t
);
})(
Object.defineProperties(
{
config: r.$W.getConfig(‘userSync’),
isAllowed: s.io,
regRule: s.qB
},
{
browserSupportsCookies: {
get: function() {
return !(0, i.Vt)() && f.cookiesAreEnabled();
}
}
}
)
);
},
1069: (e, t, n) => {
n.d(t, {
$D: () => U,
$z: () => Ue,
Bg: () => Ke,
Bj: () => Qe,
Bk: () => ge,
Bq: () => he,
CA: () => K,
D4: () => me,
D9: () => Le,
Dl: () => Ge,
El: () => Ye,
Et: () => ne,
Ez: () => Y,
Fq: () => We,
GE: () => Se,
Go: () => we,
II: () => ye,
Im: () => oe,
JE: () => F,
Lm: () => re,
N9: () => Re,
O8: () => ee,
OG: () => M,
Ot: () => T,
PB: () => Je,
Q0: () => Ee,
Qd: () => ie,
SB: () => $e,
SG: () => ue,
SH: () => De,
Tz: () => fe,
U6: () => ke,
Up: () => Pe,
Uu: () => Ve,
V: () => Oe,
Vt: () => Te,
YE: () => P,
ZA: () => be,
ZK: () => Ze,
_s: () => ae,
al: () => Ie,
bD: () => He,
bL: () => k,
bz: () => Ne,
c$: () => Fe,
cD: () => w,
cf: () => j,
cy: () => te,
dp: () => J,
fH: () => G,
fp: () => Z,
gM: () => Ce,
h0: () => L,
hj: () => pe,
hw: () => Q,
iC: () => qe,
k4: () => Ae,
kK: () => _,
l4: () => N,
l9: () => je,
lk: () => S,
mM: () => C,
mb: () => q,
nT: () => Xe,
ro: () => le,
s0: () => R,
t1: () => ve,
vE: () => Be,
vV: () => H,
wD: () => _e,
xQ: () => se,
y$: () => D,
z$: () => ce
});
var i = n(3272),
r = n(5751),
o = n(8969),
s = n(5555),
a = n(7873),
d = ‘String’,
c = ‘Function’,
l = ‘Number’,
u = ‘Object’,
f = ‘Boolean’,
g = Object.prototype.toString;
let p,
h,
m = Boolean(window.console),
b = Boolean(m && window.console.log),
y = Boolean(m && window.console.info),
v = Boolean(m && window.console.warn),
E = Boolean(m && window.console.error);
const A = (0, a.m)();
function w(e) {
p = e;
}
function I() {
null != p && p(…arguments);
}
const T = (function() {
let e;
return () => (
(!h || !e || Date.now() – e > 20) &&
(C.resetWinDimensions(), (e = Date.now())),
h
);
})();
const C = {
checkCookieSupport: Se,
createTrackPixelIframeHtml: function(e) {
let t =
!(arguments.length > 1 && void 0 !== arguments[1]) ||
arguments[1],
n =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: ”; if ( ! e ) return ” ; t &&(e = encodeURI(e)); n &&(n = `sandbox=”${n}”`); return “; }, getWindowSelf: N, getWindowTop: q, canAccessWindowTop: V, getWindowLocation: W, insertUserSyncIframe: ue, insertElement: ae, isFn: Z, triggerPixel: ce, logError: H, logWarn: F, logMessage: M, logInfo: G, parseQS: Me, formatQS : function ( e ) { return Object . keys ( e ) . map ( t => Array . isArray ( e )[t])
? e[t].map(e => `${t}[]=${e}`).join(‘&’)
: `${t}=${e[t]}`
)
.join(‘&’);
},
deepEqual: He,
resetWinDimensions: function() {
const e = V() ? C.getWindowTop() : C.getWindowSelf();
h = {
screen: {
width: e.screen?.width,
height: e.screen?.height,
availWidth: e.screen?.availWidth,
availHeight: e.screen?.availHeight,
colorDepth: e.screen?.colorDepth
},
innerHeight: e.innerHeight,
innerWidth: e.innerWidth,
outerWidth: e.outerWidth,
outerHeight: e.outerHeight,
visualViewport: {
height: e.visualViewport?.height,
width: e.visualViewport?.width
},
document: {
documentElement: {
clientWidth: e.document?.documentElement?.clientWidth,
clientHeight: e.document?.documentElement?.clientHeight,
scrollTop: e.document?.documentElement?.scrollTop,
scrollLeft: e.document?.documentElement?.scrollLeft
},
body: {
scrollTop: document.body?.scrollTop,
scrollLeft: document.body?.scrollLeft,
clientWidth: document.body?.clientWidth,
clientHeight: document.body?.clientHeight
}
}
};
}
};
var B,
O =
((B = 0),
function() {
return ++B;
});
function R() {
return (
O() +
Math.random()
.toString(16)
.substr(2)
);
}
function S(e) {
return e
? (
e ^
((window && window.crypto && window.crypto.getRandomValues
? crypto.getRandomValues(new Uint8Array(1))[0] % 16
: 16 * Math.random()) >>
(e / 4))
).toString(16)
: ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, S);
}
function k(e) {
let t = ”;
for (var n in e)
e.hasOwnProperty(n) &&
(t += n + ‘=’ + encodeURIComponent(e[n]) + ‘&’);
return (t = t.replace(/&$/, ”)), t;
}
function U(e) {
return e && Object.getOwnPropertyNames(e).length > 0
? Object.keys(e)
.map(t => `${t}=${encodeURIComponent(e[t])}`)
.join(‘&’)
: ”;
}
function D(e) {
return ‘string’ == typeof e
? e
.split(/s*,s*/)
.map(e => e.match(/^(d+)x(d+)$/i))
.filter(e => e)
.map(e => {
let [t, n, i] = e;
return [parseInt(n, 10), parseInt(i, 10)];
})
: Array.isArray(e)
? x(e)
? [e]
: e.filter(x)
: [];
}
function _(e) {
return D(e).map($);
}
function $(e) {
return e[0] + ‘x’ + e[1];
}
function j(e) {
return { w: e[0]h: e[1] }; } function x(e) { return height(e) && 2 === e.length && !isNaN(e[0]) && !isNaN(e[1]);
}
function q() {
return window.top;
}
function N() {
return window.self;
}
function W() {
return window.location;
}
function P() {
return document;
}
function V() {
try {
if (C.getWindowTop().location.href) return !0;
} catch (e) {
return !1;
}
}
function M() {
J() && b && console.log.apply(console, z(arguments, ‘MESSAGE:’));
}
function G() {
J() && y && console.info.apply(console, z(arguments, ‘INFO:’));
}
function F() {
J() && v && console.warn.apply(console, z(arguments, ‘WARNING:’)),
I(o.qY.AUCTION_DEBUG, { type: ‘WARNING’, arguments });
}
function H() {
J() && E && console.error.apply(console, z(arguments, ‘ERROR:’)),
I(o.qY.AUCTION_DEBUG, { type: ‘ERROR’, arguments });
}
function L(e) {
function t(t) {
return function() {
for (
var n = arguments.length, i = new Array(n), r = 0;
r {
const e = {
border: ‘0px’,
hspace: ‘0’,
vspace: ‘0’,
marginWidth: ‘0’,
marginHeight: ‘0’,
scrolling: ‘no’,
frameBorder: ‘0’,
allowtransparency: ‘true’
};
return function(t, n) {
let i =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
const r = t.createElement(‘iframe’);
return (
Object.assign(r, Object.assign({}, e, n)),
Object.assign(r.style, i),
r
);
};
})();
function K() {
return Q(
document,
{ id: R(), width: 0, height: 0, src: ‘about:blank’ },
{ display: ‘none’, height: ‘0px’, width: ‘0px’, border: ‘0px’ }
);
}
function Y(e) {
return Me(W().search)[e] || ”;
}
function X(e, t) {
return g.call(e) === ‘[object ‘ + t + ‘]’;
}
function Z(e) {
return X(e, c);
}
function ee(e) {
return X(e, d);
}
const te = Array.isArray.bind(Array);
function ne(e) {
return X(e, l);
}
function ie(e) {
return X(e, u);
}
function re(e) {
return X(e, f);
}
function oe(e) {
return (
!e ||
(te(e) || ee(e) ? !(e.length > 0) : Object.keys(e).length {
const r = function() {
e.removeEventListener(‘load’, r),
e.removeEventListener(‘error’, r),
null != n && window.clearTimeout(n),
i();
};
e.addEventListener(‘load’, r),
e.addEventListener(‘error’, r),
null != t && (n = window.setTimeout(r, t));
});
}
function ce(e, t, n) {
const i = new Image();
t && C.isFn(t) && de(i, n).then(t), (i.src = e);
}
function le(e) {
if (!e) return;
const t = K();
var n;
C.insertElement(t, document, ‘body’),
(n = t.contentWindow.document).open(),
n.write(e),
n.close();
}
function ue(e, t, n) {
let i = C.createTrackPixelIframeHtml(
e,
!1,
‘allow-scripts allow-same-origin’
),
r = document.createElement(‘div’);
r.innerHTML = i;
let o = r.firstChild;
t && C.isFn(t) && de(o, n).then(t),
C.insertElement(o, document, ‘html’, !0);
}
function fe(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: encodeURI;
if (!e) return ”;
let n =

‘;
return (n += ‘

‘), n;
}
function ge(e) {
return Array.from(e.matchAll(/$({[^}]+})/g))
.map(e => e[1])
.reduce(
(e, t) => e.replace(‘$’ + encodeURIComponent(t), ‘$’ + t),
encodeURI(e)
);
}
function pe(e, t, n) {
return n.indexOf(e) === t;
}
function he(e, t) {
return e.concat(t);
}
function me(e, t) {
if (e)
return t
.flatMap(e => e.bids)
.find(t => [‘bidId’, ‘adId’, ‘bid_id’].some(n => t[n] === e));
}
function be() {
return (arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: A.adUnits ) .map(e => e.bids.map(e => e.bidders).reduce(he, []))
.reduce(he, [])
.filter(e => void 0 !== e)
.filter(pe);
}
function ye() {
if (
window.googletag &&
Z(window.googletag.pubads) &&
Z(window.googletag.pubads().getSlots)
)
return !0;
}
function ve() {
if (window.apntag && Z(window.apntag.getTag)) return !0;
}
const Ee = (e, t) => t.cpm – e.cpm;
function Ae(e) {
let t = e.length;
for (; t > 0; ) {
let n = Math.floor(Math.random() * t);
t–;
let i = e[t];
(e[t] = e[n]), (e[n] = i);
}
return e;
}
function we(e) {
return (0, r.Q)(e) || {};
}
function Ie() {
try {
return C.getWindowSelf() !== C.getWindowTop();
} catch (e) {
return !0;
}
}
function Te() {
return /^((?!chrome|android|crios|fxios).)*safari/i.test(
navigator.userAgent
);
}
function Ce(e, t) {
if (e)
return Object.entries(t).reduce((e, t) => {
let [n, i] = t;
return e.replace(
new RegExp(‘\$\{‘ + n + ‘\}’, ‘g’),
i || ”
);
}, e);
}
function Be() {
return new Date().getTime();
}
function Oe() {
return (
(window.performance &&
window.performance.now &&
window.performance.now()) ||
0
);
}
function Re() {
return !1 !== i.$W.getConfig(‘deviceAccess’);
}
function Se() {
if (window.navigator.cookieEnabled || document.cookie.length)
return !0;
}
function ke(e, t) {
if (t e[t])
.reduce((t, n) => Object.assign(t, { [n]: e[n] }), {});
}
function _e(e) {
const t = [‘banner’, ‘native’, ‘video’],
n = [‘instream’, ‘outstream’, ‘adpod’];
return (
!!Object.keys(e).every(e => t.includes(e)) &&
(!e.video || !e.video.context || n.includes(e.video.context))
);
}
function $e(e, t, n) {
return e
.filter(e => e.code === t)
.flatMap(e => e.bids)
.filter(e => e.bidder === n)
.map(e => e.params || {});
}
function je() {
return (
‘1’ === navigator.doNotTrack ||
‘1’ === window.doNotTrack ||
‘1’ === navigator.msDoNotTrack ||
‘yes’ === navigator.doNotTrack
);
}
const xe = (e, t) =>
e.getAdUnitPath() === t || e.getSlotElementId() === t;
function qe(e) {
return t => xe(e, t);
}
function Ne(e, t) {
const n = Object.keys(e.mediaTypes || { banner: ‘banner’ }).join(
‘, ‘
);
return `n ${e.code} is a ${n} ad unitn containing bidders that don’t support ${n}: ${t}.n This bidder won’t fetch demand.n `;
}
const We = Number.isInteger.bind(Number);
function Pe(e, t) {
return ‘object’ != typeof e
? {}
: t.reduce((n, i, r) => {
if (‘function’ == typeof i) return n;
let o = i,
s = i.match(/^(.+?)sass(.+?)$/i);
s && ((i = s[1]), (o = s[2]));
let a = e[i];
return (
‘function’ == typeof t[r + 1] && (a = t[r + 1](a, n)),
void 0 !== a && (n[o] = a),
n
);
}, {});
}
function Ve(e, t) {
return te(e) && (!t || e.length === t) && e.every(e => We(e));
}
function Me(e) {
return e
? e
.replace(/^?/, ”)
.split(‘&’)
.reduce((e, t) => {
let [n, i] = t.split(‘=’);
return (
/[]$/.test(n)
? ((n = n.replace(‘[]’, ”)),
(e[n] = e[n] || []),
e[n].push(i))
: (e[n] = i || ”),
e
);
}, {})
: {};
}
function Ge(e, t) {
let n = document.createElement(‘a’);
t && ‘noDecodeWholeURL’ in t && t.noDecodeWholeURL
? (n.href = e)
: (n.href = decodeURIComponent(e));
let i =
t && ‘decodeSearchAsString’ in t && t.decodeSearchAsString;
return {
href: n.href,
protocol: (n.protocol || ”).replace(/:$/, ”),
hostname: n.hostname,
port: +n.port,
pathname: n.pathname.replace(/^(?!/)/, ‘/’),
search: i ? n.search : C.parseQS(n.search || ”),
hash: (n.hash || ”).replace(/^#/, ”),
host: n.host || window.location.host
};
}
function Fe(e) {
return (
(e.protocol || ‘http’) +
‘://’ +
(e.host || e.hostname + (e.port ? `:${e.port}` : ”)) +
(e.pathname || ”) +
(e.search ? `?${C.formatQS(e.search || ”)}` : ”) +
(e.hash ? `#${e.hash}` : ”)
);
}
function He(e, t) {
let { checkTypes: n = !1 } =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
if (e === t) return !0;
if (
‘object’ != typeof e ||
null === e ||
‘object’ != typeof t ||
null === t
)
return !1;
const i = Array.isArray(e),
r = Array.isArray(t);
if (i && r) {
if (e.length !== t.length) return !1;
for (let i = 0; i < e.length; i++)
if (!He(e[i]t[i]{ checkTypes: n })) return !1;
return !0;
}
if (i || r) return !1;
if (n && e.constructor !== t.constructor) return !1;
const o = Object.keys(e),
s = Object.keys(t);
if (o.length !== s.length) return !1;
for (const i of o) {
if (!Object.prototype.hasOwnProperty.call(t, i)) return !1;
if (!He(e[i]t[i]{ checkTypes: n })) return !1;
}
return !0;
}
function Le(e) {
for (
let t = 0;
t < (arguments.length <= 1 ? 0 : arguments.length – 1);
t++
) {
const n =
t + 1 < 1 || arguments.length <= t + 1
? void 0
: arguments[t + 1];
ie(n) && ze(e, n);
}
return e;
}
function ze(e, t) {
if (!ie(e) || !ie(t)) return;
const n = Object.keys(t);
for (let i = 0; i {
e[r].some(e => He(e, t)) || e[r].push(t);
})
: (e[r] = […o])
: (e[r] = o);
}
}
function Je(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: 0,
n = function(e, t) {
if (Z(Math.imul)) return Math.imul(e, t);
var n = (4194303 & e) * (t |= 0);
return (
4290772992 & e && (n += ((4290772992 & e) * t) | 0), 0 | n
);
},
i = 3735928559 ^ t,
r = 1103547991 ^ t;
for (let t, o = 0; o >> 16), 2246822507) ^
n(r ^ (r >>> 13), 3266489909)),
(r =
n(r ^ (r >>> 16), 2246822507) ^
n(i ^ (i >>> 13), 3266489909)),
(4294967296 * (2097151 & r) + (i >>> 0)).toString()
);
}
function Qe(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: function(e) {
return e;
};
const n = new Map(),
i = function() {
const i = t.apply(this, arguments);
return (
n.has(i) || n.set(i, e.apply(this, arguments)), n.get(i)
);
};
return (i.clear = n.clear.bind(n)), i;
}
function Ke(e, t) {
Object.entries(t).forEach(t => {
let [n, i] = t;
return e.setAttribute(n, i);
});
}
function Ye(e, t) {
let n =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: e => e,
i = 0,
r = e.length && e.length – 1;
const o = n(t);
for (; r – i > 1; ) {
const t = i + Math.round((r – i) / 2);
o > n(e[t]) ? (i = t) : (r = t);
}
for (; e.length > i && o > n(e[i]); ) i++;
return i;
}
const Xe = (function() {
let e;
return function() {
if (void 0 !== e) return e;
try {
void 0 === window.CompressionStream
? (e = !1)
: (new window.CompressionStream(‘gzip’), (e = !0));
} catch (t) {
e = !1;
}
return e;
};
})();
async function Ze(e) {
‘string’ != typeof e && (e = JSON.stringify(e));
const t = new TextEncoder().encode(e),
n = new Blob([t])
.stream()
.pipeThrough(new window.CompressionStream(‘gzip’)),
i = await new Response(n).blob(),
r = await i.arrayBuffer();
return new Uint8Array(r);
}
},
2621: (e, t, n) => {
function i(e) {
return (
!e?.gdprApplies || !0 === e?.vendorData?.purpose?.consents?.[1]
);
}
n.d(t, { C: () => i });
},
6894: (e, t, n) => {
n.d(t, { Ak: () => m, BO: () => g, K7: () => p });
var i = n(3272);
const r = ‘performanceMetrics’,
o =
window.performance && window.performance.now
? () => window.performance.now()
: () => Date.now(),
s = new WeakMap();
function a() {
let {
now: e = o,
mkNode: t = l,
mkTimer: n = c,
mkRenamer: i = e => e,
nodes: r = s
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return function() {
return (function o(s) {
let a =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: e => ({
forEach(t) {
t(e);
}
});
a = i(a);
const d =
((c = ‘timestamps’),
function(e) {
return s.dfWalk({
visit(t, n) {
const i = n[c];
if (i.hasOwnProperty(e)) return i[e];
}
});
});
var c;
function l(e, t) {
const n = a(e);
s.dfWalk({
follow: (e, t) =>
t.propagate && (!e || !e.stopPropagation),
visit(e, i) {
n.forEach(n => {
null == e
? (i.metrics[n] = t)
: (i.groups.hasOwnProperty(n) || (i.groups[n] = []),
i.groups[n].push(t));
});
}
});
}
function u(t) {
return n(e, e => l(t, e));
}
function f() {
let e = {};
return (
s.dfWalk({
visit(t, n) {
e = Object.assign(
{},
!t || t.includeGroups ? n.groups : null,
n.metrics,
e
);
}
}),
e
);
}
const g = {
startTiming: u,
measureTime: function(e, t) {
return u(e).stopAfter(t)();
},
measureHookTime: function(e, t, n) {
const i = u(e);
return n(
(function(e) {
const t = i.stopBefore(e);
return (
(t.bail = e.bail && i.stopBefore(e.bail)),
(t.stopTiming = i),
(t.untimed = e),
t
);
})(t)
);
},
checkpoint: function(t) {
s.timestamps[t] = e();
},
timeSince: function(t, n) {
const i = d(t),
r = null != i ? e() – i : null;
return null != n && l(n, r), r;
},
timeBetween: function(e, t, n) {
const i = d(e),
r = d(t),
o = null != i && null != r ? r – i : null;
return null != n && l(n, o), o;
},
setMetric: l,
getMetrics: f,
fork: function() {
let {
propagate: e = !0,
stopPropagation: n = !1,
includeGroups: i = !1
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return o(
t([
[
s,
{
propagate: e,
stopPropagation: n,
includeGroups: i
}
]
]),
a
);
},
join: function(e) {
let {
propagate: t = !0,
stopPropagation: n = !1,
includeGroups: i = !1
} =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
const o = r.get(e);
null != o &&
o.addParent(s, {
propagate: t,
stopPropagation: n,
includeGroups: i
});
},
newMetrics: function() {
return o(s.newSibling(), a);
},
renameWith: function(e) {
return o(s, e);
},
toJSON: () => f()
};
return r.set(g, s), g;
})(t([]));
};
}
function d(e, t, n) {
return function() {
t && t();
try {
return e.apply(this, arguments);
} finally {
n && n();
}
};
}
function c(e, t) {
const n = e();
let i = !1;
function r() {
i || (t(e() – n), (i = !0));
}
return (
(r.stopBefore = e => d(e, r)),
(r.stopAfter = e => d(e, null, r)),
r
);
}
function l(e) {
return {
metrics: {},
timestamps: {},
groups: {},
addParent(t, n) {
e.push([t, n]);
},
newSibling: () => l(e.slice()),
dfWalk() {
let t,
{
visit: n,
follow: i = () => !0,
visited: r = new Set(),
inEdge: o
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
if (!r.has(this)) {
if ((r.add(this), (t = n(o, this)), null != t)) return t;
for (const [s, a] of e)
if (
i(o, a) &&
((t = s.dfWalk({
visit: n,
follow: i,
visited: r,
inEdge: a
})),
null != t)
)
return t;
}
}
};
}
const u = (() => {
const e = function() {},
t = () => ({}),
n = { forEach: e },
i = () => null;
(i.stopBefore = e => e), (i.stopAfter = e => e);
const r = Object.defineProperties(
{ dfWalk: e, newSibling: () => r, addParent: e },
Object.fromEntries(
[‘metrics’, ‘timestamps’, ‘groups’].map(e => [e, { get: t }])
)
);
return a({
now: () => 0,
mkNode: () => r,
mkRenamer: () => () => n,
mkTimer: () => i,
nodes: { get: e, set: e }
})();
})();
let f = !0;
function g(e) {
return (f && e) || u;
}
i.$W.getConfig(r, e => {
f = !!e[r];
});
const p = (() => {
const e = a();
return function() {
return f ? e() : u;
};
})();
function h(e, t) {
return function(n, i) {
return function(r) {
for (
var o = arguments.length,
s = new Array(o > 1 ? o – 1 : 0),
a = 1;
a e.metrics);
h(‘addBidResponse.’, (e, t) => t.metrics);
},
5555: (e, t, n) => {
n.d(t, { U9: () => s, cb: () => a, v6: () => d });
var i = n(43),
r = n(7873);
const o = (0, r.m)().setTimeout ?? i.w,
s = (0, r.m)().Promise ?? i.k;
function a() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: 0;
return new s(t => {
o(t, e);
});
}
function d() {
let e,
t,
{ promiseFactory: n = e => new s(e) } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
function i(e) {
return t => e(t);
}
return {
promise: n((n, i) => {
(e = n), (t = i);
}),
resolve: i(e),
reject: i(t)
};
}
},
2713: (e, t, n) => {
function i(e, t) {
return e === t ? 0 : e 0 && void 0 !== arguments[0]
? arguments[0]
: e => e;
return (t, n) => i(e(t), e(n));
}
function o() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: i;
return (t, n) => -e(t, n) || 0;
}
function s() {
for (
var e = arguments.length, t = new Array(e), n = 0;
n 0 && void 0 !== arguments[0]
? arguments[0]
: i;
return (t, n) => (e(n, t) 0 && void 0 !== arguments[0]
? arguments[0]
: i
)
);
}
n.d(t, { Bp: () => a, Bq: () => f, NV: () => r, Vk: () => u });
const c = r(e => e.cpm),
l = r(e => e.responseTimestamp),
u = d(s(c, o(r(e => e.timeToRespond)))),
f = d(s(c, o(l)));
d(s(c, l));
},
6853: (e, t, n) => {
n.d(t, { H: () => l });
var i = n(5555),
r = n(1069);
let o = null,
s = 0,
a = [];
function d() {
document.hidden
? (o = Date.now())
: ((s += Date.now() – (o ?? 0)),
(o = null),
a.forEach(e => {
let { callback: t, startTime: n, setTimerId: i } = e;
return i(c(t, s – n)());
}),
(a = []));
}
function c(e, t) {
const n = s;
let i = setTimeout(() => {
s === n && null == o
? e()
: null != o
? a.push({
callback: e,
startTime: n,
setTimerId(e) {
i = e;
}
})
: (i = c(e, s – n)());
}, t);
return () => i;
}
function l() {
let {
startTime: e = r.vE,
ttl: t = () => null,
monotonic: n = !1,
slack: o = 5e3
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
const s = new Map(),
a = [],
d = [],
l = n
? e => d.push(e)
: e =>
d.splice(
(0, r.El)(d, e, e => e.expiry),
0,
e
);
let u, f;
function g() {
if ((f && clearTimeout(f), d.length > 0)) {
const e = (0, r.vE)();
(u = Math.max(e, d[0].expiry + o)),
(f = c(() => {
const e = (0, r.vE)();
let t = 0;
for (const n of d) {
if (n.expiry > e) break;
a.forEach(e => {
try {
e(n.item);
} catch (e) {
(0, r.vV)(e);
}
}),
s.delete(n.item),
t++;
}
d.splice(0, t), (f = null), g();
}, u – e));
} else f = null;
}
function p(n) {
const r = {},
s = h;
let a;
const [d, c] = Object.entries({ start: e, delta: t }).map(e => {
let t,
[d, c] = e;
return function() {
const e = (t = {});
i.U9.resolve(c(n)).then(n => {
e === t &&
((r[d] = n),
s === h &&
null != r.start &&
null != r.delta &&
((a = r.start + r.delta),
l(p),
(null == f || u > a + o) && g()));
});
};
}),
p = {
item: n,
refresh: c,
get expiry() {
return a;
}
};
return d(), c(), p;
}
let h = {};
return {
[Symbol.iterator]: () => s.keys(),
add(e) {
!s.has(e) && s.set(e, p(e));
},
clear() {
(d.length = 0), g(), s.clear(), (h = {});
},
toArray: () => Array.from(s.keys()),
refresh() {
(d.length = 0), g();
for (const e of s.values()) e.refresh();
},
onExpiry: e => (
a.push(e),
() => {
const t = a.indexOf(e);
t >= 0 && a.splice(t, 1);
}
)
};
}
document.addEventListener(‘visibilitychange’, d);
},
3895: (e, t, n) => {
n.d(t, {
H6: () => a,
V0: () => c,
Zy: () => d,
aP: () => l,
vk: () => u
});
var i = n(1069),
r = n(3272),
o = n(9214),
s = n(6881);
const a = ‘outstream’,
d = new Map([
[
‘mimes’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘string’ == typeof e)
],
[‘minduration’, i.Fq],
[‘maxduration’, i.Fq],
[‘startdelay’, i.Fq],
[‘maxseq’, i.Fq],
[‘poddur’, i.Fq],
[‘protocols’, i.Uu],
[‘w’, i.Fq],
[‘h’, i.Fq],
[‘podid’, i.O8],
[‘podseq’, i.Fq],
[‘rqddurs’, i.Uu],
[‘placement’, i.Fq],
[‘plcmt’, i.Fq],
[‘linearity’, i.Fq],
[‘skip’, e => [1, 0].includes(e)],
[‘skipmin’, i.Fq],
[‘skipafter’, i.Fq],
[‘sequence’, i.Fq],
[‘slotinpod’, i.Fq],
[‘mincpmpersec’, i.Et],
[‘battr’, i.Uu],
[‘maxextended’, i.Fq],
[‘minbitrate’, i.Fq],
[‘maxbitrate’, i.Fq],
[‘boxingallowed’, i.Fq],
[‘playbackmethod’, i.Uu],
[‘playbackend’, i.Fq],
[‘delivery’, i.Uu],
[‘pos’, i.Fq],
[‘api’, i.Uu],
[‘companiontype’, i.Uu],
[‘poddedupe’, i.Uu]
]);
function c(e) {
const t = e?.mediaTypes?.video;
null != t &&
null == t.plcmt &&
(t.context === a || [2, 3, 4].includes(t.placement)
? (t.plcmt = 4)
: t.context !== a &&
[2, 6].includes(t.playbackmethod) &&
(t.plcmt = 2));
}
function l(e, t) {
const n = e?.mediaTypes?.video;
(0, i.Qd)(n)
? null != n &&
Object.entries(n).forEach(r => {
let [o, s] = r;
if (!d.has(o)) return;
d.get(o)(s) ||
(‘function’ == typeof t
? t(o, s, e)
: (delete n[o],
(0, i.JE)(
`Invalid prop in adUnit “${e.code}”: Invalid value for mediaTypes.video.${o} ORTB property. The property has been removed.`
)));
})
: (0, i.JE)(
‘validateOrtbVideoFields: videoParams must be an object.’
);
}
function u(e) {
let { index: t = s.n.index } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
const n = t.getMediaTypes(e)?.video,
i = n && n?.context,
r = n && n?.useCacheKey,
o = t.getAdUnit(e);
return f(e, o, n, i, r);
}
const f = (0, o.A_)(
‘sync’,
function(e, t, n, o, s) {
if (n && (s || o !== a)) {
const { url: t, useLocal: n } = r.$W.getConfig(‘cache’) || {};
return t || n || !e.vastXml || e.vastUrl
? !(!e.vastUrl && !e.vastXml)
: ((0, i.vV)(
‘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 tlpbjs.setConfig({ cache: {url: “…”} });n or local cache with tlpbjs.setConfig({ cache: { useLocal: true }});n ‘
),
!1);
}
return (
!(o === a && !s) ||
!!(e.renderer || (t && t.renderer) || n.renderer)
);
},
‘checkVideoBidSetup’
);
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[769],
{
8944: (t, e, n) => {
n.d(e, { M: () => i });
var c = n(1069);
function i() {
const t = (0, c.Ot)();
try {
const e =
t.innerHeight ||
t.document.documentElement.clientHeight ||
t.document.body.clientHeight ||
0;
return {
width:
t.innerWidth ||
t.document.documentElement.clientWidth ||
t.document.body.clientWidth ||
0,
height: e
};
} catch (t) {
return {};
}
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[139],
{
43: (t, e, n) => {
n.d(e, { k: () => c, w: () => r });
const s = 0,
l = 1;
class c {
#t;
#e;
constructor(t) {
if (‘function’ != typeof t)
throw new Error(‘resolver not a function’);
const e = [],
n = [];
let [c, r] = [s, l].map(
t =>
function(l) {
if (t === s && ‘function’ == typeof l?.then) l.then(c, r);
else if (!e.length)
for (e.push(t, l); n.length; ) n.shift()();
}
);
try {
t(c, r);
} catch (t) {
r(t);
}
(this.#t = e), (this.#e = n);
}
then(t, e) {
const n = this.#t;
return new this.constructor((l, c) => {
const r = () => {
let r = n[1],
[h, i] = n[0] === s ? [t, l] : [e, c];
if (‘function’ == typeof h) {
try {
r = h(r);
} catch (t) {
return void c(t);
}
i = l;
}
i(r);
};
n.length ? r() : this.#e.push(r);
});
}
catch(t) {
return this.then(null, t);
}
finally(t) {
let e;
return this.then(
n => ((e = n), t()),
n => ((e = this.constructor.reject(n)), t())
).then(() => e);
}
static #n(t, e, n) {
let s = t.length;
function l() {
e.apply(this, arguments), –s
this.resolve(t).then(
t => l(!0, t, e),
t => l(!1, t, e)
)
);
}
static race(t) {
return new this((e, n) => {
this.#n(t, (t, s) => (t ? e(s) : n(s)));
});
}
static all(t) {
return new this((e, n) => {
let s = [];
this.#n(
t,
(t, e, l) => (t ? (s[l] = e) : n(e)),
() => e(s)
);
});
}
static allSettled(t) {
return new this(e => {
let n = [];
this.#n(
t,
(t, e, s) =>
(n[s] = t
? { status: ‘fulfilled’, value: e }
: { status: ‘rejected’, reason: e }),
() => e(n)
);
});
}
static resolve(t) {
return new this(e => e(t));
}
static reject(t) {
return new this((e, n) => n(t));
}
}
function r(t) {
let e =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: 0;
if (e > 0) return setTimeout(t, e);
t();
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[85],
{
4595: (e, t, n) => {
n.d(t, { G: () => s });
const s =
‘(()=>{“use strict”;window.render=function({ad:e,adUrl:t,width:n,height:i,instl:d},{mkFrame:r},s){if(!e&&!t)throw{reason:”noAd”,message:”Missing ad markup or URL”};{if(null==i){const e=s.document?.body;[e,e?.parentElement].filter((e=>null!=e?.style)).forEach((e=>e.style.height=”100%”))}const h=s.document,o={width:n??”100%”,height:i??”100%”};if(t&&!e?o.src=t:o.srcdoc=e,h.body.appendChild(r(h,o)),d&&s.frameElement){const e=s.frameElement.style;e.width=n?`${n}px`:”100vw”,e.height=i?`${i}px`:”100vh”}}}})();’;
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[109]{ 965: (t, e, n) => { nd(e, { c5: () => o }); var a = n(5555); const l = 0, c = 1, r = 2; function o(t) { let { apiName: e, apiVersion: n, apiArgs: o = [‘command’, ‘callback’, ‘parameter’, ‘version’],
callbackArgs: s = [‘returnValue’, ‘success’],
mode: i = l
} = t,
u =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: window;
const f = {},
d = `${e}Call`,
p = `${e}Return`;
function b(t) {
const e =
‘string’ == typeof t.data && t.data.includes(p)
? JSON.parse(t.data)
: t.data;
if (e?.[p]?.callId) { const t = e[p];
f.hasOwnProperty(t.callId) &&
f[t.callId](…s.map(e => t[e]));
}
}
const [k, m] = (function() {
let t,
n = u,
a = !1;
for (; null != n; ) {
try {
if (‘function’ == typeof n[e]) {
(t = n), (a = !0);
break;
}
} catch (t) {}
try {
if (n.frames[`${e}Locator`]) {
t = n;
break;
}
} catch (t) {}
if (n === u.top) break;
n = n.parent;
}
return [t, a];
})();
if (!k) return;
function g(t) {
return (
(t = Object.assign({ version: n }, t)), o.map(e => [e, t[e]])
);
}
function h(t, e, n, a) {
const l = ‘function’ == typeof t;
return function(r, o) {
if ((a && a(), i !== c)) {
(null == o || o ? e : n)(l ? void 0 : r);
}
l && t.apply(this, arguments);
};
}
let v;
return (
m
? (v = function() {
let t =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return new a.U9((n, a) => {
const o = k[e](
…g({
…t,
callback:
t.callback || i === r
? h(t.callback, n, a)
: void 0
}).map(t => {
let [e, n] = t;
return n;
})
);
(i === c || (null == t.callback && i === l)) && n(o);
});
})
: (u.addEventListener(‘message’, b, !1),
(v = function(t) {
let e =
arguments.length > 1 &&
void 0 !== arguments[1] &&
arguments[1];
return new a.U9((n, a) => {
const l = Math.random().toString(),
r = {
[d]: {
…Object.fromEntries(
g(t).filter(t => {
let [e] = t;
return ‘callback’ !== e;
})
),
callId: l
}
};
(f[l] = h(
t?.callback,
n,
a,
(e || null == t?.callback) &&
(() => {
delete f[l];
})
)),
k.postMessage(r, ‘*’),
i === c && n();
});
})),
Object.assign(v, {
isDirect: m,
close() {
!m && u.removeEventListener(‘message’, b);
}
})
);
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[10],
{
3806: (t, n, e) => {
e.d(n, { yq: () => c });
var o = e(6894),
a = e(1069),
s = e(7873),
i = e(5555),
r = e(2604);
function c() {
let t,
n,
e,
{
namespace: c,
displayName: l,
consentDataHandler: u,
parseConsentData: m,
getNullConsent: d,
cmpHandlers: f,
DEFAULT_CMP: g = ‘iab’,
DEFAULT_CONSENT_TIMEOUT: p = 1e4
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
function C(t) {
return `consentManagement.${c} ${t}`;
}
function D(t, n) {
return t(
Object.assign({ [`${c}Consent`]: u.getConsentData() }, n)
);
}
function h() {
return n().then(t => {
let { error: n } = t;
return { error: n, consentData: u.getConsentData() };
});
}
function T() {
null == t &&
((t = (function(t, n) {
const e = new WeakSet();
return (0, o.Ak)(t, function(t, o) {
return n()
.then(n => {
let { consentData: s, error: i } = n;
!i ||
(s && e.has(i)) ||
(e.add(i), (0, a.JE)(i.message, …(i.args || []))),
t.call(this, o);
})
.catch(n => {
(0, a.vV)(
`${n?.message} Canceling auction as per consentManagement config.`,
…(n?.args || [])
),
t.stopTiming(),
‘function’ == typeof o.bidsBackHandler
? o.bidsBackHandler()
: (0, a.vV)(‘Error executing bidsBackHandler’);
});
});
})(c, () => n())),
(0, s.m)().requestBids.before(t, 50),
r.U3.before(D),
(0, a.fH)(
`${l} consentManagement module has been activated…`
));
}
return function(o) {
if (((o = o?.[c]), !o || ‘object’ != typeof o))
return (
(0, a.JE)(
C(‘config not defined, exiting consent manager module’)
),
null != t &&
((0, s.m)()
.requestBids.getHooks({ hook: t })
.remove(),
r.U3.getHooks({ hook: D }).remove(),
(t = null)),
{}
);
let b, k;
(0, a.O8)(o.cmpApi)
? (b = o.cmpApi)
: ((b = g),
(0, a.fH)(
C(
`config did not specify cmp. Using system default setting (${g}).`
)
)),
(0, a.Et)(o.timeout)
? (k = o.timeout)
: ((k = p),
(0, a.fH)(
C(
`config did not specify timeout. Using system default setting (${p}).`
)
));
const H = (0, a.Et)(o.actionTimeout) ? o.actionTimeout : null;
let w;
‘static’ === b
? (0, a.Qd)(o.consentData)
? ((e = o.consentData),
(k = null),
(w = () => new i.U9(t => t(u.setConsentData(m(e))))))
: (0, a.vV)(
C(
“config with cmpApi: ‘static’ did not specify consentData. No consents will be available to adapters.”
)
)
: f.hasOwnProperty(b)
? (w = f[b])
: (u.setConsentData(null),
(0, a.JE)(
`${l} CMP framework (${b}) is not a supported framework. Aborting consentManagement module and resuming auction.`
),
(w = () => i.U9.resolve()));
const y = () =>
(function(t) {
let n,
{
name: e,
consentDataHandler: o,
setupCmp: a,
cmpTimeout: s,
actionTimeout: i,
getNullConsent: r
} = t;
return (
o.enable(),
new Promise((t, c) => {
let l,
u = !1;
function m(a) {
null != n && clearTimeout(n),
(n =
null != a
? setTimeout(() => {
const n =
o.getConsentData() ?? (u ? l : r()),
a =
‘timeout waiting for ‘ +
(u
? ‘user action on CMP’
: ‘CMP to load’);
o.setConsentData(n),
t({
consentData: n,
error: new Error(`${e} ${a}`)
});
}, a)
: null);
}
a(function(t) {
(l = t), u || ((u = !0), null != i && m(i));
}).then(
() => t({ consentData: o.getConsentData() }),
c
),
null != s && m(s);
})
.finally(() => {
n && clearTimeout(n);
})
.catch(t => {
throw (o.setConsentData(null), t);
})
);
})({
name: l,
consentDataHandler: u,
setupCmp: w,
cmpTimeout: k,
actionTimeout: H,
getNullConsent: d
});
return (
(n = (() => {
let t;
return function() {
return (
null == t &&
(t = y().catch(n => {
throw ((t = null), n);
})),
t
);
};
})()),
T(),
{
cmpHandler: b,
cmpTimeout: k,
actionTimeout: H,
staticConsentData: e,
loadConsentData: h,
requestBidsHook: t
}
);
};
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[618],
{
981: (e, t, i) => {
i.d(t, { m: () => h });
var r = i(9466),
d = i(1e3),
n = i(433),
a = i(1069),
s = i(5825),
b = i(1445),
o = i(3272),
p = i(3172);
var c = i(3323);
var l = i(7873);
var f = i(1371);
var u = i(3005);
const v = {
[d.S3]: {
extPrebid: {
fn: function(e, t) {
(0, p.J)(
e,
‘ext.prebid’,
(0, a.D9)(
{
auctiontimestamp: t.auctionStart,
targeting: {
includewinners: !0,
includebidderkeys: !1
}
},
e.ext?.prebid
)
),
o.$W.getConfig(‘debug’) && (e.ext.prebid.debug = !0);
}
},
extPrebidChannel: {
fn: function(e) {
(0, p.J)(
e,
‘ext.prebid.channel’,
Object.assign(
{ name: ‘pbjs’, version: (0, l.m)().version },
e.ext?.prebid?.channel
)
);
}
},
extPrebidAliases: {
fn: function(e, t, i) {
let { am: r = b.Ay } =
arguments.length > 3 && void 0 !== arguments[3]
? arguments[3]
: {};
if (r.aliasRegistry[t.bidderCode]) {
const i = r.bidderRegistry[t.bidderCode];
if (!i || !i.getSpec().skipPbsAliasing) {
(0, p.J)(
e,
`ext.prebid.aliases.${t.bidderCode}`,
r.aliasRegistry[t.bidderCode]
);
const d =
o.$W.getConfig(`gvlMapping.${t.bidderCode}`) ||
i?.getSpec?.().gvlid;
d &&
(0, p.J)(
e,
`ext.prebid.aliasgvlids.${t.bidderCode}`,
d
);
}
}
}
}
},
[d.Tb]: { params: { fn: cW }, adUnitCode: { fn: function(e, t) { const i = t.adUnitCode; i && (0, pJ)(e, ‘ext.prebid.adunitcode’, i); } } },
[d.WR]: {
mediaType: { fn: s.o, priority: 99 },
videoCache: {
fn: function(e, t) {
if (e.mediaType === f.G_) {
let { cacheId: i, url: r } =
(0, n.A)(t, ‘ext.prebid.cache.vastXml’) || {};
if (!i || !r) {
const {
hb_uuid: e,
hb_cache_host: d,
hb_cache_path: a
} = (0, n.A)(t, ‘ext.prebid.targeting’) || {};
e &&
d &&
a &&
((i = e), (r = `https://${d}${a}?uuid=${e}`));
}
i &&
r &&
Object.assign(e, { videoCacheKey: i, vastUrl: r });
}
},
priority: -10
},
bidderCode: {
fn(e, t, i) {
(e.bidderCode = i.seatbid.seat),
(e.adapterCode =
(0, n.A)(t, ‘ext.prebid.meta.adaptercode’) ||
i.bidRequest?.bidder ||
e.bidderCode);
}
},
pbsBidId: {
fn(e, t) {
const i = (0, n.A)(t, ‘ext.prebid.bidid’);
(0, a.O8)(i) && (e.pbsBidId = i);
}
},
adserverTargeting: {
fn(e, t) {
const i = (0, n.A)(t, ‘ext.prebid.targeting’);
(0, a.Qd)(i) && (e.adserverTargeting = i);
}
},
extPrebidMeta: {
fn(e, t) {
e.meta = (0, a.D9)(
{},
(0, n.A)(t, ‘ext.prebid.meta’),
e.meta
);
}
},
pbsWinTrackers: {
fn: function(e, t) {
(e.eventtrackers = e.eventtrackers || []),
[
[t.burl, u.OA],
[t?.ext?.prebid?.events?.win, u.RO]
].filter(t => {
let [i, r] = t;
return (
i &&
null ==
e.eventtrackers.find(e => {
let { method: t, event: d, url: n } = e;
return d === r && t === u.Ni && n === i;
})
);
})
.forEach(t => {
let [i, r] = t;
e.eventtrackers.push({
method: u.Ni,
event: r,
url: i
});
});
}
}
},
[d.Cf]: {
serverSideStats: {
fn(e, t, i) {
Object.entries({
errors: ‘serverErrors’,
responsetimemillis: ‘serverResponseTimeMs’
}).forEach(e => {
let [r, d] = e;
const a = (0, n.A)(
t,
`ext.${r}.${i.bidderRequest.bidderCode}`
);
a &&
((i.bidderRequest[d] = a),
i.bidRequests.forEach(e => (e[d] = a)));
});
}
}
}
};
var g = i(9766);
const h = (0, a.Bj)(() => (0, r.U)((0, g.T)(), v, (0, d.yB)(d.e4)));
},
5825: (e, t, i) => {
i.d(t, { o: () => a, s: () => n });
var r = i(1371),
d = i(5561);
const n = { [r.D4]: ‘banner’, [r.s6]: ‘native’, [r.G_]: ‘video’ };
function a(e, t, i) {
let a = i.mediaType;
a ||
((a = d.X.hasOwnProperty(t.mtype)
? d.X[t.mtype]
: t.ext?.prebid?.type),
n.hasOwnProperty(a) || (a = r.D4)),
(e.mediaType = a);
}
},
3323: (e, t, i) => {
i.d(t, { W: () => d });
var r = i(3172);
function d(e, t) {
let i = t.params;
i && (0, r.J)(e, `ext.prebid.bidder.${t.bidder}`, i);
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[498],
{
9766: (e, t, r) => {
r.d(t, { T: () => f, A: () => m });
const n = new WeakMap();
var i = r(1069),
s = r(1371);
var o = r(3895);
var a = r(5561);
var d = r(1e3),
p = r(3858);
const c = {
[d.S3]: {
fpd: {
priority: 99,
fn(e, t) {
(0, i.D9)(e, t.ortb2);
}
},
onlyOneClient: { priority: -99, fn: (0, p.i8)(‘ORTB request’) },
props: {
fn(e, t) {
Object.assign(e, {
id: e.id || (0, i.lk)(),
test: e.test || 0
});
const r = parseInt(t.timeout, 10);
isNaN(r) || (e.tmax = r);
}
}
},
[d.Tb]: {
fpd: {
priority: 99,
fn(e, t) {
(0, i.D9)(e, t.ortb2Imp);
}
},
id: {
fn(e, t) {
e.id = t.bidId;
}
},
banner: {
fn: function(e, t, r) {
if (r.mediaType && r.mediaType !== s.D4) return;
const n = t?.mediaTypes?.banner;
if (n) {
const r = { topframe: !0 === (0, i.al)() ? 0 : 1 };
n.sizes &&
null == t.ortb2Imp?.banner?.format &&
(r.format = (0, i.y$)(n.sizes).map(i.cf)),
n.hasOwnProperty(‘pos’) && (r.pos = n.pos),
(e.banner = (0, i.D9)(r, e.banner));
}
}
},
pbadslot: {
fn(e) {
const t = e.ext?.data?.pbadslot;
(t && ‘string’ == typeof t) || delete e.ext?.data?.pbadslot;
}
},
secure: {
fn(e, t) {
e.secure = e.secure ?? 1;
}
}
},
[d.WR]: {
mediaType: { priority: 99, fn: a.K },
banner: {
fn: (function() {
let {
createPixel: e = e =>
(0, i.Tz)(decodeURIComponent(e), i.Bk)
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return function(t, r) {
t.mediaType === s.D4 &&
(r.adm && r.nurl
? (t.ad = e(r.nurl) + r.adm)
: r.adm
? (t.ad = r.adm)
: r.nurl && (t.adUrl = r.nurl));
};
})()
},
props: {
fn(e, t, r) {
Object.entries({
requestId: r.bidRequest?.bidId,
seatBidId: t.id,
cpm: t.price,
currency: r.ortbResponse.cur || r.currency,
width: t.w,
height: t.h,
wratio: t.wratio,
hratio: t.hratio,
dealId: t.dealid,
creative_id: t.crid,
creativeId: t.crid,
burl: t.burl,
ttl: t.exp || r.ttl,
netRevenue: r.netRevenue
})
.filter(e => {
let [t, r] = e;
return void 0 !== r;
})
.forEach(t => {
let [r, n] = t;
return (e[r] = n);
}),
e.meta || (e.meta = {}),
t.adomain && (e.meta.advertiserDomains = t.adomain),
t.ext?.dsa && (e.meta.dsa = t.ext.dsa),
t.cat &&
((e.meta.primaryCatId = t.cat[0]),
(e.meta.secondaryCatIds = t.cat.slice(1))),
t.attr && (e.meta.attr = t.attr),
t.ext?.eventtrackers &&
(e.eventtrackers = (e.eventtrackers ?? []).concat(
t.ext.eventtrackers
));
}
}
}
};
(c[d.Tb].native = {
fn: function(e, t, r) {
if (r.mediaType && r.mediaType !== s.s6) return;
let n = t.nativeOrtbRequest;
n &&
((n = Object.assign({}, r.nativeRequest, n)),
n.assets?.length
? (e.native = (0, i.D9)(
{},
{ request: JSON.stringify(n), ver: n.ver },
e.native
))
: (0, i.JE)(
‘mediaTypes.native is set, but no assets were specified. Native request skipped.’,
t
));
}
}),
(c[d.WR].native = {
fn: function(e, t) {
if (e.mediaType === s.s6) {
let r;
if (
((r =
‘string’ == typeof t.adm ? JSON.parse(t.adm) : t.adm),
!(0, i.Qd)(r) || !Array.isArray(r.assets))
)
throw new Error(
‘ORTB native response contained no assets’
);
e.native = { ortb: r };
}
}
}),
(c[d.Tb].video = {
fn: function(e, t, r) {
if (r.mediaType && r.mediaType !== s.G_) return;
const n = t?.mediaTypes?.video;
if (!(0, i.Im)(n)) {
const t = Object.fromEntries(
Object.entries(n).filter(e => {
let [t] = e;
return o.Zy.has(t);
})
);
if (n.playerSize) {
const e = (0, i.y$)(n.playerSize).map(i.cf);
e.length > 1 &&
(0, i.JE)(
‘video request specifies more than one playerSize; all but the first will be ignored’
),
Object.assign(t, e[0]);
}
e.video = (0, i.D9)(t, e.video);
}
}
}),
(c[d.WR].video = { fn: function(e, t, r) { e.mediaType === s.G_ && (r?.imp?.video?.w && r?.imp?.video?.h && ([e.playerWidth, e.playerHeight] = [
r.imp.video.w,
r.imp.video.h
]),
t.adm && (e.vastXml = t.adm),
t.nurl && (e.vastUrl = t.nurl));
}
});
var u = r(9466);
function m() {
let {
context: e = {},
processors: t = f,
overrides: r = {},
imp: s,
request: o,
bidResponse: a,
response: p
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
const c = new WeakMap();
function u(e, i, s, o) {
let a;
return function() {
return (
null == a &&
(a = (function() {
let a = s.bind(
this,
(function(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
if (!n.has(e)) {
const t = Object.entries(e);
t.sort((e, t) =>
(e = e[1].priority || 0) ===
(t = t[1].priority || 0)
? 0
: e > t
? -1
: 1
),
n.set(
e,
t.map(e => {
let [t, r] = e;
return [t, r.fn];
})
);
}
const r = n
.get(e)
.filter(e => {
let [r] = e;
return !t.hasOwnProperty(r) || t[r];
})
.map(function(e) {
let [r, n] = e;
return t.hasOwnProperty(r)
? t[r].bind(this, n)
: n;
});
return function() {
const e = Array.from(arguments);
r.forEach(t => {
t.apply(this, e);
});
};
})(t()[e] || {}, r[e] || {})
);
return (
i && (a = i.bind(this, a)),
function() {
try {
return a.apply(this, arguments);
} catch (e) {
o.call(this, e, …arguments);
}
}
);
})()),
a.apply(this, arguments)
);
};
}
const m = u(
d.Tb,
s,
function(e, t, r) {
const n = {};
return e(n, t, r), n;
},
function(e, t, r) {
(0,
i.vV)(
‘Error while converting bidRequest to ORTB imp; request skipped.’,
{ error: e, bidRequest: t, context: r }
);
}
),
l = u(
d.S3,
o,
function(e, t, r, n) {
const i = { imp: t };
return e(i, r, n), i;
},
function(e, t, r, n) {
throw ((0, i.vV)(‘Error while converting to ORTB request’, {
error: e,
imps: t,
bidderRequest: r,
context: n
}),
e);
}
),
b = u(
d.WR,
a,
function(e, t, r) {
const n = {};
return e(n, t, r), n;
},
function(e, t, r) {
(0,
i.vV)(
‘Error while converting ORTB seatbid.bid to bidResponse; bid skipped.’,
{ error: e, bid: t, context: r }
);
}
),
y = u(
d.Cf,
p,
function(e, t, r, n) {
const i = { bids: t };
return e(i, r, n), i;
},
function(e, t, r, n) {
throw ((0, i.vV)(
‘Error while converting from ORTB response’,
{
error: e,
bidResponses: t,
ortbResponse: r,
context: n
}
),
e);
}
);
return {
toORTB(t) {
let { bidderRequest: r, bidRequests: n, context: s = {} } = t;
n = n || r.bids;
const o = {
req: Object.assign({ bidRequests: n }, e, s),
imp: {}
};
o.req.impContext = o.imp;
const a = n
.map(t => {
const n = Object.assign(
{ bidderRequest: r, reqContext: o.req },
e,
s
),
a = m(t, n);
if (null != a) {
if (a.hasOwnProperty(‘id’))
return (
Object.assign(n, { bidRequest: t, imp: a }),
(o.imp[a.id] = n),
a
);
(0, i.vV)(
‘Converted ORTB imp does not specify an id, ignoring bid request’,
t,
a
);
}
})
.filter(Boolean),
d = l(a, r, o.req);
return (o.req.bidderRequest = r), null != d && c.set(d, o), d;
},
fromORTB(e) {
let { request: t, response: r } = e;
const n = c.get(t);
if (null == n)
throw new Error(
‘ortbRequest passed to `fromORTB` must be the same object returned by `toORTB`’
);
function s(e) {
let r =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
return Object.assign(e, { ortbRequest: t }, r);
}
const o = Object.fromEntries(
(t.imp || []).map(e => [e.id, e])
),
a = (r.seatbid || [])
.flatMap(e =>
(e.bid || []).map(t => {
if (
o.hasOwnProperty(t.impid) &&
n.imp.hasOwnProperty(t.impid)
)
return b(
t,
s(n.imp[t.impid]{
imp: o[t.impid],
seatbid: e,
ortbResponse: r
})
);
(0, i.vV)(
‘ORTB response seatbid[].bid[].impid does not match any imp in request; ignoring bid’,
t
);
})
)
.filter(Boolean);
return y(a, r, s(n.req));
}
};
}
const f = (0, i.Bj)(() => (0, u.U)(c, (0, d.yB)(d.qN)));
},
9466: (e, t, r) => {
r.d(t, { U: () => i });
var n = r(1e3);
function i() {
for (
var e = arguments.length, t = new Array(e), r = 0;
r 1 ? i(…t) : t[0];
return Object.fromEntries(
n.zt.map(e => [e, Object.assign({}, s[e]o[e])])
);
}
},
5561: (e, t, r) => {
r.d(t, { K: () => s, X: () => i });
var n = r(1371);
const i = { 1: n.D4, 2: n.G_, 4: n.s6 };
function s(e, t, r) {
if (e.mediaType) return;
const n = r.mediaType;
if (!n && !i.hasOwnProperty(t.mtype))
throw new Error(‘Cannot determine mediaType for response’);
e.mediaType = n || i[t.mtype];
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[225],
{
6743: (n, t, l) => {
l.d(t, { x4: () => i });
var e = l(7873),
r = l(2713);
function u(n, t, l) {
let r =
!(arguments.length > 3 && void 0 !== arguments[3]) ||
arguments[3];
if (t === l) return n;
let u = n;
try {
u = (0, e.m)().convertCurrency(n, t, l);
} catch (n) {
if (!r) throw n;
}
return u;
}
function i() {
let n =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: n => [n.cpm, n.currency],
t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: (function() {
let n =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: null,
t =
!(
arguments.length > 1 && void 0 !== arguments[1]
) || arguments[1],
l =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: u;
return function(e, r) {
return null == n && (n = r), l(e, r, n, t);
};
})();
return (0, r.NV)(l => t.apply(null, n(l)));
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[764],
{
2339: (o, n, t) => {
function e(o, n) {
return function() {
const t = document.domain.split(‘.’),
e = `_gd${Date.now()}_${n}`;
for (let n, i, s = 0; s e });
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[81],
{
6117: (e, t, n) => {
var r = n(7873),
s = n(1069),
a = n(3172),
o = n(3272),
c = n(6916),
i = n(1e3),
p = n(687),
d = n(965),
l = n(3806);
let u,
g,
f = {};
const C = 2,
m = {
iab: function(e) {
return new Promise((t, n) => {
const r = (0, d.c5)({
apiName: ‘__tcfapi’,
apiVersion: C,
apiArgs: [‘command’, ‘version’, ‘callback’, ‘parameter’]
});
r || n(new Error(‘TCF2 CMP not found.’)),
r.isDirect
? (0, s.fH)(
‘Detected CMP API is directly accessible, calling it now…’
)
: (0, s.fH)(
‘Detected CMP is outside the current iframe where Prebid.js is located, calling it now…’
),
r({
command: ‘addEventListener’,
callback: function(r, a) {
if (
((0, s.fH)(‘Received a response from CMP’, r), a)
) {
try {
e(b(r));
} catch (e) {}
if (
!1 === r.gdprApplies ||
‘tcloaded’ === r.eventStatus ||
‘useractioncomplete’ === r.eventStatus
)
try {
c.mW.setConsentData(b(r)), t();
} catch (e) {
n(e);
}
} else
n(
Error(
‘CMP unable to register callback function. Please check CMP setup.’
)
);
}
});
});
}
};
function b(e) {
if (
(function() {
const t =
e && ‘boolean’ == typeof e.gdprApplies
? e.gdprApplies
: u,
n = e && e.tcString;
return !(
‘boolean’ == typeof t &&
(!0 !== t || (n && (0, s.O8)(n)))
);
})()
)
throw Object.assign(
new Error(
‘CMP returned unexpected value during lookup process.’
),
{ args: [e] }
);
return D(e);
}
function D(e) {
const t = {
consentString: e ? e.tcString : void 0,
vendorData: e || void 0,
gdprApplies:
e && ‘boolean’ == typeof e.gdprApplies ? e.gdprApplies : u
};
return (
e &&
e.addtlConsent &&
(0, s.O8)(e.addtlConsent) &&
(t.addtlConsent = e.addtlConsent),
(t.apiVersion = C),
t
);
}
const v = (0, l.yq)({
namespace: ‘gdpr’,
displayName: ‘TCF’,
consentDataHandler: c.mW,
cmpHandlers: m,
parseConsentData: b,
getNullConsent: () => D(null)
});
o.$W.getConfig(‘consentManagement’, e =>
(function(e) {
return (
(e = e && (e.gdpr || e.usp || e.gpp ? e.gdpr : e)),
null != e?.consentData?.getTCData &&
(e.consentData = e.consentData.getTCData),
(u = !0 === e?.defaultGdprScope),
(g = !!e?.dsaPlatform),
(f = v({ gdpr: e })),
f.loadConsentData?.()?.catch?.(() => null)
);
})(e.consentManagement)
),
p.w.before(function(e, t) {
return e(
t.then(e => {
const t = c.mW.getConsentData();
return (
t &&
(‘boolean’ == typeof t.gdprApplies &&
(0, a.J)(e, ‘regs.ext.gdpr’, t.gdprApplies ? 1 : 0),
(0, a.J)(e, ‘user.ext.consent’, t.consentString)),
g && (0, a.J)(e, ‘regs.ext.dsa.dsarequired’, 3),
e
);
})
);
}),
(0, i.pS)({
type: i.S3,
name: ‘gdprAddtlConsent’,
fn: function(e, t) {
const n = t.gdprConsent?.addtlConsent;
n &&
‘string’ == typeof n &&
(0, a.J)(
e,
‘user.ext.ConsentedProvidersSettings.consented_providers’,
n
);
}
}),
(0, r.E)(‘consentManagementTcf’);
}
},
e => {
e.O(0, [802, 109, 10, 769, 139, 85]() => {
return (t = 6117), e((e.s = t));
var t;
});
e.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[662],
{
6056: (n, t, e) => {
var o = e(7873),
a = e(1069),
s = e(3172),
i = e(3272),
c = e(1445),
r = e(6916),
u = e(6894),
l = e(9214),
f = e(687),
g = e(965);
const d = ‘iab’;
let p,
m,
P = d,
v = 50,
S = !1;
const b = {
iab: function(n) {
let { onSuccess: t, onError: e } = n;
let o = (function() {
const n = {};
return {
consentDataCallback: (o, a) => {
a && o.uspString && (n.usPrivacy = o.uspString),
n.usPrivacy
? h(n, { onSuccess: t, onError: e })
: e(‘Unable to get USP consent string.’);
}
};
})();
const s = (0, g.c5)({
apiName: ‘__uspapi’,
apiVersion: 1,
apiArgs: [‘command’, ‘version’, ‘callback’]
});
if (!s) return e(‘USP CMP not found.’);
s.isDirect
? (0, a.fH)(
‘Detected USP CMP is directly accessible, calling it now…’
)
: (0, a.fH)(
‘Detected USP CMP is outside the current iframe where Prebid.js is located, calling it now…’
);
s({ command: ‘getUSPData’, callback: o.consentDataCallback }),
s({
command: ‘registerDeletion’,
callback: (n, t) =>
(null == t || t) && c.Ay.callDataDeletionRequest(n)
}).catch(n => {
(0, a.vV)(‘Error invoking CMP `registerDeletion`:’, n);
});
},
static: function(n) {
let { onSuccess: t, onError: e } = n;
h(p, { onSuccess: t, onError: e });
}
};
function D(n) {
let t = null,
e = !1;
function o(o, a) {
if (
(null != t && clearTimeout(t),
(e = !0),
r.t6.setConsentData(o),
null != n)
) {
for (
var s = arguments.length,
i = new Array(s > 2 ? s – 2 : 0),
c = 2;
c 1 ? t – 1 : 0),
a = 1;
a 1 ? s – 1 : 0),
c = 1;
c 0 && void 0 !== arguments[0] && arguments[0];
S ||
((0, a.fH)(
‘USPAPI consentManagement module has been activated’ +
(n
? ”
: ` using default values (api: ‘${P}’, timeout: ${v}ms)`)
),
(S = !0),
r.t6.enable()),
D();
}
i.$W.getConfig(‘consentManagement’, n =>
(function(n) {
((n = n && n.usp) && ‘object’ == typeof n) ||
(0, a.JE)(
‘consentManagement.usp config not defined, using defaults’
),
n && (0, a.O8)(n.cmpApi)
? (P = n.cmpApi)
: ((P = d),
(0, a.fH)(
`consentManagement.usp config did not specify cmpApi. Using system default setting (${d}).`
)),
n && (0, a.Et)(n.timeout)
? (v = n.timeout)
: ((v = 50),
(0, a.fH)(
‘consentManagement.usp config did not specify timeout. Using system default setting (50).’
)),
‘static’ === P &&
((0, a.Qd)(n.consentData) &&
(0, a.Qd)(n.consentData.getUSPData)
? (n.consentData.getUSPData.uspString &&
(p = {
usPrivacy: n.consentData.getUSPData.uspString
}),
(v = 0))
: (0, a.vV)(
“consentManagement config with cmpApi: ‘static’ did not specify consentData. No consents will be available to adapters.”
)),
U(!0);
})(n.consentManagement)
),
(0, l.Yn)(‘requestBids’).before(y, 50),
f.w.before(function(n, t) {
return n(
t.then(n => {
const t = r.t6.getConsentData();
return t && (0, s.J)(n, ‘regs.ext.us_privacy’, t), n;
})
);
}),
(0, o.E)(‘consentManagementUsp’);
}
},
n => {
n.O(0, [109, 802, 769, 139, 85]() => {
return (t = 6056), n((n.s = t));
var t;
});
n.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[931],
{
2843: (e, t, o) => {
var n = o(7873),
r = o(1069),
a = o(8044),
c = o(7934),
i = o(9214),
s = o(2938),
d = o(5569),
l = o(6916);
const p = ‘criteo’,
g = (0, s.vM)({ moduleType: d.fW, moduleName: p }),
u = ‘cto_bidid’,
m = ‘cto_bundle’,
b = ‘html5’,
I = ‘cookie’,
y = new Date(0).toString(),
f = new Date((0, r.vE)() + 33696e6).toString();
function S(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
const o = (0, r.Dl)(e, { noDecodeWholeURL: !0 });
return t
? `${o.hostname}`
: `${o.protocol}://${o.hostname}${o.port ? ‘:’ + o.port : ”}/`;
}
function h(e, t) {
return e?.storage?.type === b
? g.getDataFromLocalStorage(t)
: e?.storage?.type === I
? g.getCookie(t)
: g.getCookie(t) || g.getDataFromLocalStorage(t);
}
function C(e, t, o, n) {
t &&
o &&
(e?.storage?.type === b
? g.setDataInLocalStorage(t, o)
: (e?.storage?.type === I || g.setDataInLocalStorage(t, o),
v(t, o, f, n, !0)));
}
function v(e, t, o, n, r) {
const a = n.split(‘.’);
for (let n = 0; n {
const n = JSON.parse(t);
if (
(n.pixels &&
n.pixels.forEach(t =>
(function(e, t, o) {
o.writeBundleInStorage &&
o.bundlePropertyName &&
o.storageKeyName
? (0, a.RD)(
o.pixelUrl,
{
success: n => {
if (n) {
const r = JSON.parse(n);
r &&
r[o.bundlePropertyName] &&
C(
e,
o.storageKeyName,
r[o.bundlePropertyName],
t
);
}
},
error: e => {
(0, r.vV)(
‘criteoIdSystem: unable to sync user id’,
e
);
}
},
void 0,
{ method: ‘GET’, withCredentials: !0 }
)
: (0, r.z$)(o.pixelUrl);
})(e, d, t)
),
n.acwsUrl)
) {
(‘string’ == typeof n.acwsUrl
? [n.acwsUrl]
: n.acwsUrl
).forEach(e => (0, r.z$)(e));
} else n.bundle && C(e, m, n.bundle, d);
if (n.bidId) {
C(e, u, n.bidId, d);
const t = { criteoId: n.bidId };
o(t);
} else
v((c = u), ”, y, d, !0),
g.removeDataFromLocalStorage(c),
o();
var c;
},
error: e => {
(0, r.vV)(‘criteoIdSystem: unable to sync user id’, e), o();
}
};
(0, a.RD)(f, h, void 0, {
method: ‘GET’,
contentType: ‘application/json’,
withCredentials: !0
});
}
const D = {
name: p,
gvlid: 91,
decode: e => e,
getId(e) {
let t = (function(e) {
return {
bundle: h(e, m),
dnaBundle: h(e, ‘cto_dna_bundle’),
bidId: h(e, u)
};
})(e);
return {
id: t.bidId ? { criteoId: t.bidId } : void 0,
callback: o => U(e, t, o)
};
},
eids: { criteoId: { source: ‘criteo.com’, atype: 1 } }
};
(0, i.bz)(‘userId’, D), (0, n.E)(‘criteoIdSystem’);
}
},
e => {
e.O(0, [802, 769, 139, 85]() => {
return (t = 2843), e((e.s = t));
var t;
});
e.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[328],
{
1134: (e, t, n) => {
n.d(t, { Gk: () => M });
var r = n(7873),
s = n(9759),
i = n(1069),
d = n(8969),
o = n(1445),
a = n(3272),
c = n(7377),
u = n(5023);
const p = {
appnexuspsp: {
adapter: ‘prebidServer’,
enabled: !0,
endpoint: {
p1Consent: ‘https://ib.adnxs.com/openrtb2/prebid’,
noP1Consent: ‘https://ib.adnxs-simple.com/openrtb2/prebid’
},
syncEndpoint: {
p1Consent: ‘https://prebid.adnxs.com/pbs/v1/cookie_sync’,
noP1Consent:
‘https://prebid.adnxs-simple.com/pbs/v1/cookie_sync’
},
maxTimeout: 1e3
},
rubicon: {
adapter: ‘prebidServer’,
enabled: !0,
endpoint: {
p1Consent:
‘https://prebid-server.rubiconproject.com/openrtb2/auction’,
noP1Consent:
‘https://prebid-server.rubiconproject.com/openrtb2/auction’
},
syncEndpoint: {
p1Consent:
‘https://prebid-server.rubiconproject.com/cookie_sync’,
noP1Consent:
‘https://prebid-server.rubiconproject.com/cookie_sync’
},
maxTimeout: 500
},
openwrap: {
adapter: ‘prebidServer’,
enabled: !0,
endpoint: {
p1Consent:
‘https://ow.pubmatic.com/openrtb2/auction?source=pbjs’,
noP1Consent:
‘https://ow.pubmatic.com/openrtb2/auction?source=pbjs’
},
maxTimeout: 500
}
};
var l = n(8044),
b = n(9214),
f = n(2621),
g = n(9766),
m = n(3172),
h = n(3597),
C = n(981),
y = n(3323),
B = n(5825),
v = n(1e3),
R = n(6953),
q = n(3441),
E = n(5569),
x = n(5139),
O = n(6811),
S = n(6743),
I = n(2713),
j = n(433);
function T(e) {
let { global: t, bidder: n } = e;
return Object.fromEntries(
Object.entries(n).map(e => {
let [n, r] = e;
return [n, A(r, (0, i.D9)({}, t, r))];
})
);
}
function A(e, t) {
return Object.fromEntries(
Object.entries(e).map(e => {
let [n, r] = e;
const s = t[n]; return ( Array . isArray ( r ) ? ! ( 0 , i . bD ) ( r , s ) && Array . isArray ( s ) & & ( r = s ) : null != r & & ‘object’ == typeof r && ( r = A ( r , s ) ) ;
[n, r]
);
})
);
}
function P(e, t) {
let { global: n, bidder: r } = e;
const s = (function(e) {
let { eids: t, conflicts: n = new Set() } = e;
const r = [],
s = [],
i = {};
return (
t.forEach(e => {
(!1 === e.bidders ? r : s).push(e);
}),
s.forEach(e => {
let { eid: t, bidders: s } = e;
n.has(t.source)
? s.forEach(e => {
(i[e] = i[e] || []).push(t);
})
: r.push({ eid: t, bidders: s });
}),
{
global: r.map(e => {
let { eid: t } = e;
return t;
}),
permissions: r
.filter(e => {
let { bidders: t } = e;
return !1 !== t;
})
.map(e => {
let { eid: t, bidders: n } = e;
return { source: t.source, bidders: n };
}),
bidder: i
}
);
})(
(function(e) {
let { global: t, bidder: n } = e;
const r = [],
s = {},
d = new Set();
function o(e) {
let t = r.find(t => (0, i.bD)(t.eid, e));
return (
null == t &&
((t = { eid: e, bidders: new Set() }), r.push(t)),
null == s[e.source]
? (s[e.source] = t.eid)
: t.eid === e && d.add(e.source),
t
);
}
return (
R.Vx.forEach(e => {
((0, j.A)(t, e) || []).forEach(e => {
o(e).bidders = !1;
});
}),
Object.entries(n).forEach(e => {
let [t, n] = e;
R.Vx.forEach(e => {
((0, j.A)(n, e) || []).forEach(e => {
const n = o(e);
!1 !== n.bidders && n.bidders.add(t);
});
});
}),
{
eids: r.map(e => {
let { eid: t, bidders: n } = e;
return { eid: t, bidders: n && Array.from(n) };
}),
conflicts: d
}
);
})({ global: n, bidder: r })
);
function d(e) {
delete e?.user?.eids, delete e?.user?.ext?.eids;
}
return (
(n = (0, i.Go)(n)),
(r = (0, i.Go)(r)),
d(n),
Object.values(r).forEach(d),
s.global.length && (0, m.J)(n, ‘user.ext.eids’, s.global),
t?.length &&
s.permissions.forEach(
e => (e.bidders = e.bidders.filter(e => t.includes(e)))
),
s.permissions.length &&
(0, m.J)(n, ‘ext.prebid.data.eidpermissions’, s.permissions),
Object.entries(s.bidder).forEach(e => {
let [t, n] = e;
n.length && (0, m.J)(r[t]’user.ext.eids’, n);
}),
{ global: n, bidder: r }
);
}
function w(e, t) {
return null == e || 0 === Object.keys(e.bidder || {}).length
? e
: ((e = P(e, t)), { …e, bidder: T(e) });
}
var D = n(1371);
const U = new Set([
‘bidderCode’,
‘bidderRequestId’,
‘uniquePbsTid’,
‘bids’,
‘timeout’
]),
$ = (() => {
const e = (0, I.Bp)(
(0, S.x4)(e => [e.bidfloor, e.bidfloorcur])
);
return function(t) {
let n;
for (const r of t) {
if (null == r?.bidfloorcur || null == r?.bidfloor)
return null;
n = null == n ? r : e(n, r);
}
return n;
};
})(),
J = (0, g.A)({
processors: C.m,
context: { netRevenue: !0 },
imp(e, t, n) {
Object.assign(n, t.pbsData);
const r = e(t, n);
if (
((t.bids || []).forEach(e => {
e.ortb2Imp &&
Object.keys(e.ortb2Imp).length > 0 &&
(0, m.J)(r, `ext.prebid.imp.${e.bidder}`, e.ortb2Imp);
}),
Object.values(B.s).some(e => r[e]))
)
return (r.secure = t.ortb2Imp?.secure ?? 1), r;
},
request(e, t, n, r) {
if (t.length) {
let { s2sBidRequest: s } = r;
const i = e(t, n, r);
return (
(i.tmax = Math.floor(
s.s2sConfig.timeout ??
Math.min(
0.75 * s.requestBidsTimeout,
s.s2sConfig.maxTimeout ?? M.maxTimeout
)
)),
(i.ext.tmaxmax = i.ext.tmaxmax || s.requestBidsTimeout),
[i.app, i.dooh, i.site].forEach(e => {
e &&
!e.publisher?.id &&
(0, m.J)(e, ‘publisher.id’, s.s2sConfig.accountId);
}),
r.transmitTids ||
(0, m.J)(i, ‘ext.prebid.createtids’, !1),
i
);
}
(0, i.vV)(
‘Request to Prebid Server rejected due to invalid media type(s) in adUnit.’
);
},
bidResponse(e, t, n) {
let r = n.actualBidRequests.get(n.seatbid.seat);
null == r && (r = n.actualBidRequests.get(null)),
r &&
Object.assign(n, {
bidRequest: r,
bidderRequest: n.actualBidderRequests.find(
e => e.bidderCode === r.bidder
)
});
const s = e(t, n);
return (
(s.requestBidder = r?.bidder),
s.native?.ortb && (s.adm = s.native.ortb),
(s.requestTimestamp = n.requestTimestamp),
{
bid: Object.assign(
(0, h.O)(d.XQ.GOOD, {
src: d.RW.SRC,
bidId: r ? r.bidId || r.bid_Id : null,
transactionId: n.adUnit.transactionId,
adUnitId: n.adUnit.adUnitId,
auctionId: n.bidderRequest.auctionId
}),
s,
{
deferRendering: !!n.adUnit.deferBilling,
deferBilling: !!n.adUnit.deferBilling
}
),
adUnit: n.adUnit.code
}
);
},
overrides: {
[v.Tb]: {
id(e, t, n, r) {
t.id = r.impId;
},
params(e, t, n, r) {
const s = r.s2sBidRequest.s2sConfig.adapterOptions;
for (const e of r.actualBidRequests.values())
(0, y.W)(t, e, r, r),
s &&
s[e.bidder] &&
Object.assign(
t.ext.prebid.bidder[e.bidder],
s[e.bidder]
);
},
bidfloor(e, t, n, r) {
const s = $(
(function*() {
for (const t of r.actualBidRequests.values()) {
const n = {};
e(n, t, r), yield n;
}
})()
);
null != s && Object.assign(t, s);
},
extBidfloor(e, t, n, r) {
function s(e, t) {
null != t &&
((0, m.J)(e, ‘ext.bidfloor’, t.bidfloor),
(0, m.J)(e, ‘ext.bidfloorcur’, t.bidfloorcur));
}
const d = Array.from(r.actualBidRequests.values()).map(
n => {
const s = (0, i.Go)(t);
return e(s, n, r), s;
}
);
Object.values(D.GE).forEach(e => {
s(t[e]$(d.map(t => t[e]?.ext)));
}),
(t[D.D4]?.format || []).forEach((e, t) => {
s(e, $(d.map(e => e[D.D4].format[t]?.ext)));
});
}
},
[v.S3]: {
fpd(e, t, n, r) {
r.transmitTids && (0, m.J)(t, ‘source.tid’, n.auctionId),
(0, i.D9)(t, r.s2sBidRequest.ortb2Fragments?.global),
r.s2sBidRequest.s2sConfig.extPrebid &&
‘object’ ==
typeof r.s2sBidRequest.s2sConfig.extPrebid &&
(0, m.J)(
t,
‘ext.prebid’,
(0, i.D9)(
t.ext?.prebid || {},
r.s2sBidRequest.s2sConfig.extPrebid
)
),
r.getRedactor().ortb2(t);
const s = Object.entries(
r.s2sBidRequest.ortb2Fragments?.bidder || {}
)
.filter(e => {
let [t] = e;
const n = r.s2sBidRequest.s2sConfig.bidders;
return (
r.s2sBidRequest.s2sConfig.allowUnknownBidderCodes ||
(n && n.includes(t))
);
})
.map(e => {
let [t, n] = e;
return {
bidders: [t],
config: { ortb2: r.getRedactor(t).ortb2(n) }
};
});
s.length && (0, m.J)(t, ‘ext.prebid.bidderconfig’, s);
},
extPrebidAliases(e, t, n, r) {
r.actualBidderRequests.forEach(n => e(t, n, r));
},
sourceExtSchain(e, t, n, r) {
let s = t?.ext?.prebid?.schains || [];
const i = new Set(s.flatMap(e => e.bidders));
(s = Object.values(
s
.concat(
r.actualBidderRequests
.filter(e => !i.has(e.bidderCode))
.map(e => ({
bidders: [e.bidderCode]schain: e?.bids?.[0]?.schain })) ) .filter(e => { let { bidders: t, schain: n } = e; return t?.length > 0 && n; }) .reduce((e, t) => { let { bidders: n, schain: r } = t; const s = JSON.stringify(r); return ( e.hasOwnProperty(s) || (e[s] = { bidders: new Set(), schain: r }), n.forEach(t => e[s].bidders.add(t)),
e
);
}, {})
).map(e => {
let { bidders: t, schain: n } = e;
return { bidders: Array.from(t), schain: n };
})),
s.length && (0, m.J)(t, ‘ext.prebid.schains’, s);
}
},
[v.Cf]: {
serverSideStats(e, t, n, r) {
r.actualBidderRequests.forEach(s =>
e(t, n, { …r, bidderRequest: s, bidRequests: s.bids })
);
},
paapiConfigs(e, t, n, r) {
const s = Object.values(r.impContext).flatMap(e =>
(e.paapiConfigs || []).map(t => {
const n = e.actualBidderRequests.find(
e => e.bidderCode === t.bidder
),
r = e.actualBidRequests.get(t.bidder);
return {
adUnitCode: e.adUnit.code,
ortb2: n?.ortb2,
ortb2Imp: r?.ortb2Imp,
bidder: t.bidder,
config: t.config
};
})
);
s.length > 0 && (t.paapi = s);
}
}
}
});
var k = n(6894);
const _ = a.$W.getConfig,
V = d.RW.SRC;
let N,
W = 0;
const M = {
bidders: Object.freeze([]),
syncTimeout: 1e3,
maxBids: 1,
adapter: ‘prebidServer’,
allowUnknownBidderCodes: !1,
adapterOptions: {},
syncUrlModifier: {},
ortbNative: { eventtrackers: [{ event: 1, methods: [1, 2] }]}, maxTimeout: 1500 }; function G(e) { if (!e) return; e = Array.isArray(e) ? And : [e];
const t = new Set();
return e.filter(e => {
var n;
if (
((n = e),
[‘endpoint’, ‘syncEndpoint’].forEach(e => {
if ((0, i.O8)(n[e])) {
let t = n[e];
n[e] = { p1Consent: t, noP1Consent: t };
}
!(0, i.Qd)(n[e]) ||
(n[e].p1Consent && n[e].noP1Consent) ||
[‘p1Consent’, ‘noP1Consent’].forEach(t => {
n[e][t] ||
(0, i.JE)(
`s2sConfig.${e}.${t} not defined. PBS request will be skipped in some P1 scenarios.`
);
});
}),
(function(e) {
if (e.defaultVendor) {
let t = e.defaultVendor,
n = Object.keys(e);
if (!p[t])
return (
(0, i.vV)(
‘Incorrect or unavailable prebid server default vendor option: ‘ +
t
),
!1
);
Object.keys(p[t]).forEach(r => {
(M[r] !== e[r] && n.includes(r)) || (e[r] = p[t][r]);
});
} else null == e.adapter && (e.adapter = ‘prebidServer’);
return !0;
})(e) &&
(function(e) {
for (const t of [‘accountId’, ‘endpoint’])
if (null == e[t])
return (
(0, i.vV)(
t + ‘ missing in server to server config’
),
!1
);
return !0;
})(e) &&
e.enabled)
)
return (
Array.isArray(e.bidders) &&
(e.bidders = e.bidders.filter(
e => !t.has(e) && (t.add(e), !0)
)),
!0
);
(0, i.JE)(‘prebidServer: s2s config is disabled’, e);
});
}
function F(e, t, n, r, s) {
if (N.length === W) return;
W++;
let d = {};
const o = _(‘userSync.filterSettings’);
if (o) {
const { all: e, iframe: t, image: n } = o,
r = t || e,
s = n || e;
r && (d = Object.assign({ iframe: r }, d)),
s && (d = Object.assign({ image: s }, d));
}
const a = {
uuid: (0, i.lk)(),
bidders: e,
account: s.accountId,
filterSettings: d
};
let c = s.userSyncLimit;
(0, i.Et)(c) && c > 0 && (a.limit = c),
t &&
((a.gdpr = t.gdprApplies ? 1 : 0),
!1 !== t.gdprApplies && (a.gdpr_consent = t.consentString)),
n && (a.us_privacy = n),
r &&
((a.gpp_sid = r.applicableSections.join()),
(a.gpp = r.gppString)),
‘boolean’ == typeof s.coopSync && (a.coopSync = s.coopSync);
const u = JSON.stringify(a);
(0, l.RD)(
H(s.syncEndpoint, t),
e => {
try {
L((e = JSON.parse(e)).bidder_status, s);
} catch (e) {
(0, i.vV)(e);
}
},
u,
{ contentType: ‘text/plain’, withCredentials: !0 }
);
}
function L(e, t) {
if (0 === e.length) return;
const n = e.shift();
n.no_cookie
? (function(e, t, n, r, s) {
s.syncUrlModifier &&
‘function’ == typeof s.syncUrlModifier[n] &&
(t = s.syncUrlModifier[n](e, t, n));
!(function(e, t, n, r, s) {
t
? ‘image’ === e || ‘redirect’ === e
? ((0, i.OG)(
`Invoking image pixel user sync for bidder: “${n}”`
),
(0, i.z$)(t, r, s))
: ‘iframe’ === e
? ((0, i.OG)(
`Invoking iframe user sync for bidder: “${n}”`
),
(0, i.SG)(t, r, s))
: ((0, i.vV)(
`User sync type “${e}” not supported for bidder: “${n}”`
),
r())
: ((0, i.vV)(`No sync url for bidder “${n}”: ${t}`),
r());
})(e, t, n, r, s.syncTimeout);
})(
n.usersync.type,
n.usersync.url,
n.bidder,
L.bind(null, e, t),
t
)
: L(e, t);
}
function H(e, t) {
const n = (0, f.C)(t),
r = n ? e.p1Consent : e.noP1Consent;
return (
r || (0, i.JE)(‘Missing matching consent URL when gdpr=’ + n), r
);
}
function Y(e) {
let t, n, r;
return (
Array.isArray(e) &&
e.length > 0 &&
((t = e[0].gdprConsent),
(n = e[0].uspConsent),
(r = e[0].gppConsent)),
{ gdprConsent: t, uspConsent: n, gppConsent: r }
);
}
a.$W.setDefaults({ s2sConfig: M }),
_(‘s2sConfig’, e => {
let { s2sConfig: t } = e;
var n;
(n = G((n = t))).length && (N = n);
});
const z = (0, b.A_)(
‘async’,
function(e, t, n, r) {
let { onResponse: s, onError: c, onBid: p, onFledge: l } = r,
{ gdprConsent: b } = Y(t);
const f = (0, i.Go)(e.ad_units),
g = f
.map(e => e.bids.map(e => e.bidder).filter(i.hj))
.reduce(i.Bq, [])
.filter(i.hj),
m = e.metrics.measureTime(‘buildRequests’, () =>
(function(e, t, n, r) {
const s = (0, i.vE)(),
d = new Set(),
c = [],
u = (0, o.K5)(e.s2sConfig),
p = (() => {
const e = (0, R.$p)(u),
t = {};
return n =>
null == n
? e
: (t.hasOwnProperty(n) ||
(t[n] = (0, R.$p)((0, q.s)(E.tW, n))),
t[n]);
})();
(n = n.map(e => p().bidRequest(e))).forEach(e => {
const r = new Map();
(n.bids = e.bids.map(e => p(e.bidder).bidRequest(e))),
e.bids.forEach(n => {
null != n.mediaTypes &&
(0, i.JE)(
`Prebid Server adapter does not (yet) support bidder-specific mediaTypes for the same adUnit. Size mapping configuration will be ignored for adUnit: ${e.code}, bidder: ${n.bidder}`
),
r.set(n.bidder, (0, i.D4)(n.bid_id, t));
});
let s = e.code,
o = 1;
for (; d.has(s); ) o++, (s = `${e.code}-${o}`);
d.add(s),
c.push({
…e,
adUnitCode: e.code,
pbsData: {
impId: s,
actualBidRequests: r,
adUnit: e
}
});
});
const l = {
…Object.fromEntries(
Object.entries(t[0]).filter(e => {
let [t] = e;
return !U.has(t);
})
),
paapi: { enabled: t.some(e => e.paapi?.enabled) }
};
return J.toORTB({
bidderRequest: l,
bidRequests: c,
context: {
currency:
a.$W.getConfig(‘currency.adServerCurrency’) ||
‘USD’,
ttl: e.s2sConfig.defaultTtl || 60,
requestTimestamp: s,
s2sBidRequest: {
…e,
ortb2Fragments: w(e.ortb2Fragments, r)
},
requestedBidders: r,
actualBidderRequests: t,
nativeRequest: e.s2sConfig.ortbNative,
getRedactor: p,
transmitTids: (0, x.io)(O.VJ, u)
}
});
})(e, t, f, g)
),
h = {
endpointUrl: H(e.s2sConfig.endpoint, b),
requestJson: m && JSON.stringify(m),
customHeaders: e?.s2sConfig?.customHeaders ?? {}
};
if (
(u.Ic(d.qY.BEFORE_PBS_HTTP, h),
(0, i.fH)(‘BidRequest: ‘ + h),
m && h.requestJson && h.endpointUrl)
) {
const t = e.metrics.startTiming(‘net’);
n(
h.endpointUrl,
{
success: function(n) {
let r;
t();
try {
r = JSON.parse(n);
const { bids: t, paapi: s } = e.metrics.measureTime(
‘interpretResponse’,
() =>
(function(e, t) {
return J.fromORTB({ response: e, request: t });
})(r, m)
);
t.forEach(p), s && s.forEach(l);
} catch (e) {
(0, i.vV)(e);
}
!r || (r.status && r.status.includes(‘Error’))
? ((0, i.vV)(
‘error parsing response: ‘,
r ? r.status : ‘not valid JSON’
),
s(!1, g))
: s(!0, g, r);
},
error: function() {
t(), c.apply(this, arguments);
}
},
h.requestJson,
{
contentType: ‘text/plain’,
withCredentials: !0,
browsingTopics: (0, x.io)(O.DL, (0, o.K5)(e.s2sConfig)),
customHeaders: h.customHeaders
}
);
} else (0, i.vV)(‘PBS request not made. Check endpoints.’);
},
‘processPBSRequest’
);
function K(e, t) {
return e?.extPrebid?.returnallbidstatus
? t?.ext?.seatnonbid
: void 0;
}
function Q(e) {
return e?.ext?.prebid?.analytics?.tags;
}
o.Ay.registerBidAdapter(
new (function() {
const e = new s.A(‘prebidServer’);
return (
(e.callBids = function(e, t, n, r, s) {
const p = (e.metrics = (0, k.BO)(t?.[0]?.metrics)
.newMetrics()
.renameWith(t => [
`adapter.s2s.${t}`,
`adapters.s2s.${e.s2sConfig.defaultVendor}.${t}`
]));
(r = p.startTiming(‘total’).stopBefore(r)),
t.forEach(e =>
(0, k.BO)(e.metrics).join(p, {
continuePropagation: !1
})
);
let { gdprConsent: l, uspConsent: b, gppConsent: f } = Y(t);
if (Array.isArray(N)) {
if (
e.s2sConfig &&
e.s2sConfig.syncEndpoint &&
H(e.s2sConfig.syncEndpoint, l)
) {
const t =
(e.s2sConfig.extPrebid &&
e.s2sConfig.extPrebid.aliases) ??
{};
F(
e.s2sConfig.bidders
.map(e => o.Ay.aliasRegistry[e] || t[e] || e)
.filter((e, t, n) => n.indexOf(e) === t),
l,
b,
f,
e.s2sConfig
);
}
z(e, t, s, {
onResponse: function(n, s, i) {
n && t.forEach(e => u.Ic(d.qY.BIDDER_DONE, e));
const { seatNonBidData: c, atagData: g } = (function(
e,
t
) {
return { atagData: Q(t), seatNonBidData: K(e, t) };
})(e.s2sConfig, i);
if (
(c &&
u.Ic(d.qY.SEAT_NON_BID, {
seatnonbid: i.ext.seatnonbid,
auctionId: t[0].auctionId,
requestedBidders: s,
response: i,
adapterMetrics: p
}),
c || g)
) {
const e = {
seatnonbid: c,
atag: g,
auctionId: t[0].auctionId,
requestedBidders: s,
response: i,
adapterMetrics: p
};
u.Ic(d.qY.PBS_ANALYTICS, e);
}
r(!1),
(function(e, t, n, r) {
e.forEach(e => {
let s = o.Ay.getBidAdapter(e);
s &&
s.registerSyncs &&
a.$W.runWithBidder(
e,
s.registerSyncs.bind(s, []t, n, r)
);
});
})(s, l, b, f);
},
onError(n, s) {
const { p1Consent: o = ”, noP1Consent: a = ” } =
e?.s2sConfig?.endpoint || {};
o === a
? (0, i.vV)(
`Prebid server call failed: ‘${n}’. Endpoint: “${o}”}`,
s
)
: (0, i.vV)(
`Prebid server call failed: ‘${n}’. Endpoints: p1Consent “${o}”, noP1Consent “${a}”}`,
s
),
t.forEach(e =>
u.Ic(d.qY.BIDDER_ERROR, {
error: s,
bidderRequest: e
})
),
r(s.timedOut);
},
onBid: function(t) {
let { adUnit: r, bid: s } = t;
const o = (s.metrics = e.metrics.fork().renameWith());
o.checkpoint(‘addBidResponse’),
(null != s.requestId && null != s.requestBidder) ||
e.s2sConfig.allowUnknownBidderCodes
? o.measureTime(‘addBidResponse.validate’, () =>
(0, c.fn)(r, s)
)
? n(r, s)
: n.reject(r, s, d.Tf.INVALID)
: ((0, i.JE)(
`PBS adapter received bid from unknown bidder (${s.bidder}), but ‘s2sConfig.allowUnknownBidderCodes’ is not set. Ignoring bid.`
),
n.reject(r, s, d.Tf.BIDDER_DISALLOWED));
},
onFledge: e => {
a.$W.runWithBidder(e.bidder, () => {
(0, c.JN)(
{ auctionId: t[0].auctionId, …e }, { config: e.config } ); }); } }); } }), Object.assign(this, { callBids: e.callBids, setBidderCode: e.setBidderCode, type: V }) ); })(), ‘prebidServer’ ), (0, rE)(‘prebidServerBidAdapter’); } }, e => { eO(0, [802, 618, 498, 225, 769, 139, 85]() => {
return (t = 1134), e((e.s = t));
var t;
});
e.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[41],
{
2115: (d, e, n) => {
var t = n(7873),
s = n(9214),
i = n(1069);
const o = {
name: ‘pubProvidedId’,
gvlid: n(6916).B1,
decode(d) {
const e = d ? { pubProvidedId: d } : void 0;
return (
(0, i.fH)(
‘PubProvidedId: Decoded value ‘ + JSON.stringify(e)
),
e
);
},
getId(d) {
const e = (d && d.params) || {};
let n = [];
return (
(0, i.cy)(e.eids) && (n = n.concat(e.eids)),
‘function’ == typeof e.eidsFunction &&
(n = n.concat(e.eidsFunction())),
{ id: n }
);
}
};
(0, s.bz)(‘userId’, o), (0, t.E)(‘pubProvidedIdSystem’);
}
},
d => {
d.O(0, [802, 769, 139, 85]() => {
return (e = 2115), d((d.s = e));
var e;
});
d.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[496],
{
5862: (e, o, t) => {
var n = t(7873),
r = t(1069),
d = t(9214),
i = t(2938),
a = t(6916),
u = t(5569),
c = t(2339);
const s = (0, i.vM)({ moduleType: u.fW, moduleName: ‘sharedId’ }),
l = ‘cookie’,
m = ‘html5’,
p = ‘_pubcid_optout’,
f = ‘PublisherCommonId’;
function g(e, o) {
if (o === l) return s.getCookie(e);
if (o === m && s.hasLocalStorage()) {
const o = s.getDataFromLocalStorage(`${e}_exp`);
if (!o) return s.getDataFromLocalStorage(e);
if (new Date(o).getTime() – Date.now() > 0)
return s.getDataFromLocalStorage(e);
}
}
function b(e, o) {
return function(t, n) {
o
? v(o, e, () => {
t(n() || e);
})()
: t(e);
};
}
function v(e) {
let o =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: ”,
t = arguments.length > 2 ? arguments[2] : void 0;
if (!e) return;
const n = (0, r.Dl)(e);
n.search.id = encodeURIComponent(‘pubcid:’ + o);
const d = (0, r.c$)(n);
return function() {
(0, r.z$)(d, t);
};
}
function h() {
return !!(
(s.cookiesAreEnabled() && g(p, l)) ||
(s.hasLocalStorage() && g(p, m))
);
}
const I = {
name: ‘sharedId’,
aliasName: ‘pubCommonId’,
gvlid: a.B1,
decode(e, o) {
if (h())
return void (0, r.fH)(‘PubCommonId decode: Has opted-out’);
(0, r.fH)(‘ Decoded value PubCommonId ‘ + e);
return { pubcid: e };
},
getId: function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
o = arguments.length > 1 ? arguments[1] : void 0,
t = arguments.length > 2 ? arguments[2] : void 0;
if (h()) return void (0, r.fH)(‘PubCommonId: Has opted-out’);
if (o?.coppa)
return void (0, r.fH)(
‘PubCommonId: IDs not provided for coppa requests, exiting PubCommonId’
);
const { params: { create: n = !0, pixelUrl: d } = {} } = e;
let i = t;
if (!i) {
try {
‘object’ == typeof window[f] && (i = window[f].getId());
} catch (e) {}
i || (i = n && (0, r.N9)() ? (0, r.lk)() : void 0);
}
return { id: i, callback: b(i, d) };
},
extendId: function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
o = arguments.length > 1 ? arguments[1] : void 0,
t = arguments.length > 2 ? arguments[2] : void 0;
if (h())
return (
(0, r.fH)(‘PubCommonId: Has opted-out’), { id: void 0 }
);
if (o?.coppa)
return void (0, r.fH)(
‘PubCommonId: IDs not provided for coppa requests, exiting PubCommonId’
);
const { params: { extend: n = !1, pixelUrl: d } = {} } = e;
if (n) {
if (d) {
return { callback: v(d, t) };
}
return { id: t };
}
},
domainOverride: (0, c.w)(s, ‘sharedId’),
eids: {
pubcid(e, o) {
const t = {
source: ‘pubcid.org’,
uids: e.map(e => ({ id: e, atype: 1 }))
};
return (
null != o?.params?.inserter &&
(t.inserter = o.params.inserter),
t
);
}
}
};
(0, d.bz)(‘userId’, I), (0, n.E)(‘sharedIdSystem’);
}
},
e => {
e.O(0, [764, 802, 769, 139, 85]() => {
return (o = 5862), e((e.s = o));
var o;
});
e.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[469],
{
4836: (e, t, n) => {
var r = n(7873),
o = n(3272),
s = n(5023),
i = n(1445),
a = n(8969),
c = n(9214),
u = n(1069);
const l = new Map();
function d(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: l;
const n = {};
function r(e) {
const t = JSON.stringify([
e.source?.toLowerCase(),
…Object.keys(e)
.filter(e => ![‘uids’, ‘source’].includes(e))
.sort()
.map(t => e[t])
]);
n.hasOwnProperty(t) ? n[t].uids.push(…e.uids) : (n[t] = e);
}
return (
Object.entries(e).forEach(e => {
let [n, o] = and; o = Array.isArray(o) ? o: [o];
const s = t.get(n);
let i;
if (‘pubProvidedId’ === n) i = (0, u.Go)(o);
else if (‘function’ == typeof s)
try {
(i = s(o)),
Array.isArray(i) || (i = [i]),
i.forEach(
e =>
(e.uids = e.uids.filter(e => {
let { id: t } = e;
return (0, u.O8)(t);
}))
),
(i = i.filter(e => {
let { uids: t } = e;
return t?.length > 0;
}));
} catch (e) {
(0, u.vV)(`Could not generate EID for “${n}”`, e);
}
else
i = o.map(e =>
(function(e, t, n) {
if (n && e) {
let t = {};
t.source = (0, u.fp)(n.getSource)
? n.getSource(e)
: n.source;
const r = (0, u.fp)(n.getValue) ? n.getValue(e) : e;
if ((0, u.O8)(r)) {
const o = { id: r, atype: n.atype };
if ((0, u.fp)(n.getUidExt)) {
const t = n.getUidExt(e);
t && (o.ext = t);
}
if (
((t.uids = [o]),
n.inserter || (0, u.fp)(n.getInserter))
) {
const r = (0, u.fp)(n.getInserter)
? n.getInserter(e)
: n.inserter;
null != r && (t.inserter = r);
}
if (n.matcher || (0, u.fp)(n.getMatcher)) {
const r = (0, u.fp)(n.getMatcher)
? n.getMatcher(e)
: n.matcher;
null != r && (t.matcher = r);
}
if (
(null != n.mm && (t.mm = n.mm),
(0, u.fp)(n.getEidExt))
) {
const r = n.getEidExt(e);
r && (t.ext = r);
}
return t;
}
}
return null;
})(e, 0, s)
);
Array.isArray(i) && i.filter(e => null != e).forEach(r);
}),
Object.values(n)
);
}
function f(e) {
const t = new Map(),
n = {};
return (
Object.entries(e).forEach(e => {
let [r, o] = e;
const s = o();
if (s) {
n[r] = s.idObj[r];
let e = s.submodule.eids?.[r];
‘function’ == typeof e &&
((i = e),
(e = function() {
for (
var e = arguments.length, t = new Array(e), n = 0;
n {
let e;
return () => (null == e && (e = (0, p.K7)()), e);
})();
function F(e) {
return V()
.fork()
.renameWith(t => [`userId.mod.${t}`, `userId.mods.${e}.${t}`]);
}
function W(e, t) {
t = t || e.storageMgr;
const n =
‘function’ == typeof e.submodule.domainOverride
? e.submodule.domainOverride()
: null,
r = e.config.storage.name;
return function(e, o, s) {
t.setCookie(r + (e || ”), o, s, ‘Lax’, n);
};
}
function G(e, t) {
const n = e.config.storage;
try {
const r = new Date(
Date.now() + 864e5 * n.expires
).toUTCString(),
o = (0, u.Qd)(t) ? JSON.stringify(t) : t;
e.enabledStorageTypes.forEach(t => {
switch (t) {
case $:
!(function(e, t, n) {
const r = e.config.storage,
o = W(e);
o(null, t, n),
o(‘_cst’, me(), n),
‘number’ == typeof r.refreshInSeconds &&
o(‘_last’, new Date().toUTCString(), n);
})(e, o, r);
break;
case j:
!(function(e, t, n) {
const r = e.config.storage,
o = e.storageMgr;
o.setDataInLocalStorage(`${r.name}_exp`, n),
o.setDataInLocalStorage(`${r.name}_cst`, me()),
o.setDataInLocalStorage(
r.name,
encodeURIComponent(t)
),
‘number’ == typeof r.refreshInSeconds &&
o.setDataInLocalStorage(
`${r.name}_last`,
new Date().toUTCString()
);
})(e, o, r);
}
});
} catch (e) {
(0, u.vV)(e);
}
}
function R(e) {
ve(e),
e.enabledStorageTypes.forEach(t => {
switch (t) {
case $:
!(function(e) {
const t = W(e, U),
n = new Date(Date.now() – 864e5).toUTCString();
[”, ‘_last’, ‘_cst’].forEach(e => {
try {
t(e, ”, n);
} catch (e) {
(0, u.vV)(e);
}
});
})(e);
break;
case j:
!(function(e) {
[”, ‘_last’, ‘_exp’, ‘_cst’].forEach(t => {
try {
U.removeDataFromLocalStorage(
e.config.storage.name + t
);
} catch (e) {
(0, u.vV)(e);
}
});
})(e);
}
});
}
function B(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: void 0;
const n = e.config.storage,
r = t ? `${n.name}_${t}` : n.name;
let o;
try {
e.enabledStorageTypes.find(t => {
switch (t) {
case $:
o = (function(e, t) {
return e.storageMgr.getCookie(t);
})(e, r);
break;
case j:
o = (function(e, t) {
const n = e.storageMgr,
r = e.config.storage,
o = n.getDataFromLocalStorage(`${r.name}_exp`);
return ” === o
? n.getDataFromLocalStorage(t)
: o && new Date(o).getTime() – Date.now() > 0
? decodeURIComponent(n.getDataFromLocalStorage(t))
: void 0;
})(e, r);
}
return !!o;
}),
‘string’ == typeof o &&
‘{‘ === o.trim().charAt(0) &&
(o = JSON.parse(o));
} catch (e) {
(0, u.vV)(e);
}
return o;
}
function Q(e, t, n) {
t = V()
.fork()
.startTiming(‘userId.callbacks.total’)
.stopBefore(t);
const r = (0, u.U6)(() => {
clearTimeout(x), t();
}, e.length);
e.forEach(function(e) {
const t = F(e.submodule.name)
.startTiming(‘callback’)
.stopBefore(r);
try {
e.callback(function(r) {
r
? (e.config.storage && G(e, r),
(e.idObj = e.submodule.decode(r, e.config)),
n.refresh(),
he(n))
: (0, u.fH)(
`${k}: ${e.submodule.name} – request id responded with an empty value`
),
t();
}, B.bind(null, e));
} catch (n) {
(0, u.vV)(`Error in userID module ‘${e.submodule.name}’:`, n),
t();
}
e.callback = void 0;
});
}
function K(e) {
return Object.fromEntries(
Object.entries(e)
.map(e => {
let [t, n] = e;
return [t, n()?.idObj?.[t]];
})
.filter(e => {
let [t, n] = e;
return null != n;
})
);
}
function Y(e, t, n) {
const r = {};
return (
e.forEach(e => {
const o = n(e),
s = (function(e) {
if (e.primaryIds) return e.primaryIds;
const t = Object.keys(e.eids ?? {});
if (t.length > 1)
throw new Error(
`ID submodule ${e.name} can provide multiple IDs, but does not specify ‘primaryIds’`
);
return t;
})(o);
t(e).forEach(t => {
const n = (r[t] = r[t] ?? []),
i = J[t]?.indexOf(o.name) ?? (s.includes(t) ? 0 : -1),
a = n.findIndex(e => {
let [t] = e;
return t {
let [t, n] = e;
return [
t,
n.map(e => {
let [t, n] = e;
return n;
})
];
})
)
);
}
function z() {
const e = {
submodules: [],
global: {},
bidder: {},
combined: {},
refresh() {
let t =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: [];
const n = new Set(t.map(e => e.submodule));
(e.submodules = e.submodules
.filter(e => !n.has(e.submodule))
.concat(t)),
(function() {
const t = Y(
e.submodules,
e => Object.keys(e.idObj ?? {}),
e => e.submodule
),
n = {},
r = {};
function o(e, t, n) {
return function() {
for (const {
allowed: r,
bidders: o,
module: s
} of n) {
if (
!T.isAllowed(
S.yl,
(0, D.s)(w.fW, s?.config?.name, { init: !1 })
)
)
continue;
const i = s.idObj?.[e];
if (null != i) {
if (r) return s;
if (t) {
const t = e =>
e
.map(e => e.module.submodule.name)
.join(‘, ‘);
return (
(0, u.JE)(
`userID modules ${t(
n
)} provide the same ID (‘${e}’); ${
s.submodule.name
} is the preferred source, but it’s configured only for some bidders, unlike ${t(
n.filter(e => null == e.bidders)
)}. Other bidders will not see the “${e}” ID.`
),
null
);
}
if (null == o) return null;
}
}
return null;
};
}
Object.entries(t).forEach(e => {
let [t, s] = e,
i = !0;
const a = new Set();
(s = s.map(e => {
let t = null;
return (
Array.isArray(e.config.bidders) &&
e.config.bidders.length > 0
? ((t = e.config.bidders),
t.forEach(e => a.add(e)))
: (i = !1),
{ module: e, bidders: t }
);
})),
i ||
(n[t] = o(
t,
!0,
s.map(e => {
let { bidders: t, module: n } = e;
return {
allowed: null == t,
bidders: t,
module: n
};
})
)),
a.forEach(e => {
(r[e] = r[e] ?? {}),
(r[e][t] = o(
t,
!1,
s.map(t => {
let { bidders: n, module: r } = t;
return {
allowed: n?.includes(e),
bidders: n,
module: r
};
})
));
});
});
const s = Object.values(r)
.concat([n])
.reduce((e, t) => Object.assign(e, t), {});
Object.assign(e, { global: n, bidder: r, combined: s });
})();
}
};
return e;
}
function X(e) {
let { adUnits: t, ortb2Fragments: n } = e;
if (
((n = n ?? { global: {}, bidder: {} }),
(function(e) {
const { global: t, bidder: n } = e,
{ global: r, bidder: o } = C,
s = f(r);
s.length > 0 &&
(0, m.J)(
t,
‘user.ext.eids’,
(t.user?.ext?.eids ?? []).concat(s)
),
Object.entries(o).forEach(e => {
let [t, r] = e;
const o = f(r);
o.length > 0 &&
(0, m.J)(
n,
`${t}.user.ext.eids`,
(n[t]?.user?.ext?.eids ?? []).concat(o)
);
});
})(n),
[t].some(e => !Array.isArray(e) || !e.length))
)
return;
const r = K(C.global),
o = n.global.user?.ext?.eids || [];
t.forEach(e => {
e.bids &&
(0, u.cy)(e.bids) &&
e.bids.forEach(e => {
const t = Object.assign({}, r, K(C.bidder[e.bidder] ?? {})),
s = o.concat(n.bidder?.[e.bidder]?.user?.ext?.eids || []);
Object.keys(t).length > 0 && (e.userId = t),
s.length > 0 && (e.userIdAsEids = s);
});
});
}
const Z = {};
let ee;
function te() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: ie() || [];
const t = _ && e.find(e => e.source === _);
if (t && ‘string’ == typeof t?.uids?.[0]?.id) {
const e = t.uids[0].id.replace(/[W_]/g, ”);
if (e.length >= 32 && e.length 2 && void 0 !== arguments[2]
? arguments[2]
: {};
h.U9.race([r().catch(() => null), n(L)]).then(() => {
X(t),
V().join((0, p.BO)(t.metrics), {
propagate: !1,
includeGroups: !0
}),
e.call(this, t);
});
}),
re = (0, p.Ak)(‘userId’, function(e, t) {
X(t), e.call(this, t);
});
function oe() {
return !!O.gH.getHooks({ hook: ne }).length;
}
function se() {
return K(C.combined);
}
function ie() {
return f(C.combined);
}
function ae(e) {
return ie().filter(t => t.source === e)[0];
}
function ce(e, t, n) {
return de().then(() => {
let r = {};
if ((0, u.fp)(n)) {
(0, u.fH)(
`${k} – Getting encrypted signal from custom function : ${n.name} & source : ${e} `
);
const t = n(e);
r[e] = t ? ue(t) : null;
} else {
const n = ae(e);
(0, u.fH)(
`${k} – Getting encrypted signal for eids :${JSON.stringify(
n
)}`
),
(0, u.Im)(n) ||
(r[n.source] = !0 === t ? ue(n) : n.uids[0].id);
}
return (
(0, u.fH)(`${k} – Fetching encrypted eids: ${r[e]}`), r[e]
);
});
}
function ue(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: 1,
n = ”;
if (1 === t)
n =
‘object’ == typeof e
? window.btoa(JSON.stringify(e))
: window.btoa(e);
return `${t}||${n}`;
}
function le() {
if (!(0, u.II)()) return;
window.googletag.secureSignalProviders =
window.googletag.secureSignalProviders || [];
const e = o.$W.getConfig(‘userSync.encryptedSignalSources’);
if (e) {
const t = e.registerDelay || 0;
setTimeout(() => {
e.sources &&
e.sources.forEach(e => {
let { source: t, encrypt: n, customFunc: r } = e;
t.forEach(e => {
window.googletag.secureSignalProviders.push({
id: e,
collectorFunction: () => ce(e, n, r)
});
});
});
}, t);
} else
(0, u.JE)(
`${k} – ESP : encryptedSignalSources config not defined under userSync Object`
);
}
function de(e) {
return ee(e).then(
() => se(),
e =>
e === Z
? Promise.resolve().then(ge)
: ((0, u.vV)(‘Error initializing userId’, e),
h.U9.reject(e))
);
}
function fe() {
let { submoduleNames: e } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
t = arguments.length > 1 ? arguments[1] : void 0;
return de({ refresh: !0, submoduleNames: e }).then(
e => (t && (0, u.fp)(t) && t(), e)
);
}
function ge() {
return de();
}
function me() {
let e = Number(I.SL.hash);
const t = [];
for (; e > 0; ) t.push(String.fromCharCode(255 & e)), (e >>>= 8);
return btoa(t.join());
}
function be(e, t) {
const n = I.SL.getConsentData();
if (e.config.storage) {
let r,
o = B(e),
s = !1;
if (‘number’ == typeof e.config.storage.refreshInSeconds) {
const t = new Date(B(e, ‘last’));
s =
t &&
Date.now() – t.getTime() >
1e3 * e.config.storage.refreshInSeconds;
}
if (
!o ||
s ||
t ||
(function(e) {
const t = B(e, ‘cst’);
return !t || t !== me();
})(e)
) {
const t = Object.assign(
{ enabledStorageTypes: e.enabledStorageTypes },
e.config
);
r = e.submodule.getId(t, n, o);
} else
‘function’ == typeof e.submodule.extendId &&
(r = e.submodule.extendId(e.config, n, o));
(0, u.Qd)(r) &&
(r.id && (G(e, r.id), (o = r.id)),
‘function’ == typeof r.callback && (e.callback = r.callback)),
o && (e.idObj = e.submodule.decode(o, e.config));
} else if (e.config.value) e.idObj = e.config.value;
else {
const t = e.submodule.getId(e.config, n);
(0, u.Qd)(t) &&
(‘function’ == typeof t.callback && (e.callback = t.callback),
t.id && (e.idObj = e.submodule.decode(t.id, e.config)));
}
}
function he(e) {
const t = f(e.combined);
if (t.length && _) {
const e = te(t);
e &&
((0, u.II)()
? window.googletag.pubads().setPublisherProvidedId(e)
: ((window.googletag = window.googletag || {}),
(window.googletag.cmd = window.googletag.cmd || []),
window.googletag.cmd.push(function() {
window.googletag.pubads().setPublisherProvidedId(e);
})));
}
}
function pe(e, t) {
let n =
arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
return V()
.fork()
.measureTime(‘userId.init.modules’, function() {
if (!t.length) return [];
if (
(t.forEach(e => ve(e)),
!(t = t.filter(
e =>
(!e.config.storage || !!e.enabledStorageTypes.length) &&
T.isAllowed(S.yl, (0, D.s)(w.fW, e.config.name))
)).length)
)
return (0, u.JE)(`${k} – no ID module configured`), [];
const r = t.reduce(
(e, t) =>
F(t.submodule.name).measureTime(‘init’, () => {
try {
be(t, n), e.push(t);
} catch (e) {
(0, u.vV)(
`Error in userID module ‘${t.submodule.name}’:`,
e
);
}
return e;
}),
[]
);
return e.refresh(r), he(e), r;
});
}
function ye(e) {
return e?.storage?.type?.trim().split(/s*&s*/) || [];
}
function Ie(e) {
function t(e) {
for (
var t = arguments.length,
n = new Array(t > 1 ? t – 1 : 0),
r = 1;
r {
if (!e?.name) return t(‘must specify “name”‘, e);
if (e.storage) {
if (!e.storage.name || !e.storage.type)
return t(
‘must specify “storage.name” and “storage.type”‘,
e
);
if (
!(function(e) {
return ye(e).every(e => we.has(e));
})(e)
)
return t(‘invalid “storage.type”‘, e);
[‘expires’, ‘refreshInSeconds’].forEach(n => {
let r = e.storage[n];
null != r &&
‘number’ != typeof r &&
((r = Number(r)),
isNaN(r)
? (t(
`storage.${n} must be a number and will be ignored`,
e
),
delete e.storage[n])
: (e.storage[n] = r));
});
}
return !0;
})
: (null != e && t(‘must be an array’, e), []);
}
const we = new Set([j, $]);
function ve(e) {
if (e.enabledStorageTypes) return;
const t = ye(e.config);
e.enabledStorageTypes = t.filter(t => {
switch (t) {
case j:
return (function(e) {
return !(
!e.storageMgr.localStorageIsEnabled() ||
(U.getDataFromLocalStorage(A) &&
((0, u.fH)(
`${k} – opt-out localStorage found, storage disabled`
),
1))
);
})(e);
case $:
return (function(e) {
return !(
!e.storageMgr.cookiesAreEnabled() ||
(U.getCookie(A) &&
((0, u.fH)(
`${k} – opt-out cookie found, storage disabled`
),
1))
);
})(e);
}
return !1;
});
}
function Se(e) {
l.clear(),
Object.entries(
Y(
e,
e => Object.keys(e.eids || {}),
e => e
)
).forEach(e => {
let [t, n] = e;
return l.set(t, n[0].eids[t]);
});
}
function De() {
Se(q);
const e = Ie(M);
if (!e.length) return;
const t = q.filter(e => !(H || []).find(t => t.name === e.name));
H.splice(0, H.length),
t
.map(t => {
const n = (e || []).find(
e =>
e.name &&
(e.name.toLowerCase() === t.name.toLowerCase() ||
(t.aliasName &&
e.name.toLowerCase() === t.aliasName.toLowerCase()))
);
return (
n && t.name !== n.name && (n.name = t.name),
n
? {
submodule: t,
config: n,
callback: void 0,
idObj: void 0,
storageMgr: (0, g.vM)({
moduleType: w.fW,
moduleName: n.name
})
}
: null
);
})
.filter(e => null !== e)
.forEach(e => H.push(e)),
H.length &&
(oe() ||
(O.gH.getHooks({ hook: re }).remove(),
O.gH.before(ne, 100),
i.Ay.callDataDeletionRequest.before(Ee),
b.Q.after(e => e(te()))),
(0, u.fH)(
`${k} – usersync config updated for ${H.length} submodules: `,
H.map(e => e.submodule.name)
));
}
function Ee(e) {
for (
var t = arguments.length,
n = new Array(t > 1 ? t – 1 : 0),
r = 1;
r {
if (‘function’ == typeof e.submodule.onDataDeletionRequest)
try {
e.submodule.onDataDeletionRequest(
e.config,
e.idObj,
…n
);
} catch (t) {
(0, u.vV)(
`Error calling onDataDeletionRequest for ID submodule ${e.submodule.name}`,
t
);
}
R(e);
}),
e.apply(this, n);
}
function Oe(e) {
return function() {
return Promise.resolve(e.apply(this, arguments));
};
}
function ke(e) {
let { mkDelay: t = h.cb } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
(_ = void 0),
(H = []),
(M = []),
(C = z()),
(ee = (function() {
let { mkDelay: e = h.cb } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
const t = (0, h.v6)(),
n = (0, h.v6)();
let r,
o,
i = !1;
function l(e) {
return (
(o = V().fork()),
null != r && r.reject(Z),
(r = (0, h.v6)()),
h.U9.race([e, r.promise]).finally(
o.startTiming(‘userId.total’)
)
);
}
let d = C,
f = H;
function g(e) {
return function() {
if (d === C && f === H) return e(…arguments);
};
}
function m() {
return I.SL.promise.finally(
o.startTiming(‘userId.init.consent’)
);
}
let b = l(
h.U9.all([c.Gc, t.promise])
.then(m)
.then(
g(() => {
pe(d, f);
})
)
.then(() =>
n.promise.finally(
o.startTiming(‘userId.callbacks.pending’)
)
)
.then(
g(() => {
const e = d.submodules.filter(e =>
(0, u.fp)(e.callback)
);
if (e.length) return new h.U9(t => Q(e, t, d));
})
)
);
return function() {
let {
refresh: r = !1,
submoduleNames: o = null,
ready: c = !1
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return (
c &&
!i &&
((i = !0),
t.resolve(),
L > 0
? n.resolve()
: s.on(a.qY.AUCTION_END, function t() {
s.AU(a.qY.AUCTION_END, t), e(N).then(n.resolve);
})),
r &&
i &&
(b = l(
b
.catch(() => null)
.then(m)
.then(
g(() => {
const e = pe(
d,
f.filter(
e =>
null == o || o.includes(e.submodule.name)
),
!0
).filter(e => null != e.callback);
if (e.length) return new h.U9(t => Q(e, t, d));
})
)
)),
b
);
};
})({ mkDelay: t })),
null != P && P(),
(q = []),
(P = e.getConfig(‘userSync’, e => {
const t = e.userSync;
t &&
((_ = t.ppid),
t.userIds &&
((M = t.userIds),
(N = (0, u.Et)(t.syncDelay)
? t.syncDelay
: E.qh.syncDelay),
(L = (0, u.Et)(t.auctionDelay)
? t.auctionDelay
: E.qh.auctionDelay),
De(),
(function(e, t) {
if (e) {
const n = {},
r = new Map(
t.map(e =>
e.aliasName ? [e.aliasName, e.name] : []
)
);
Object.keys(e).forEach(t => {
const o = (0, u.cy)(e[t])
? […e[t]].reverse()
: [];
n[t] = o.map(e => (r.has(e) ? r.get(e) : e)); }), (J = n); } else J = {}; C.refresh(), See(t); })( t.idPriority, q), yes({ ready: !0 }))); })), ((0, rm)().getUserIds = se), ((0, rm)().getUserIdsAsEids = ie), ((0, rm)().getEncryptedIdsForSource = Oe(ce)), ((0, rm)().registerSignalSources = le), ((0, rm)().refreshUserIds = Oe(fe)), ((0, rm)().getUserIdAsync = Oe(ge)), ((0, rm)().getUserIdAsAidBySource = ae), oe() || O.gH.before(re, 100); } ke(o.$W), (0, c.xG)( ‘userId’, function(e) { (e.findRootDomain = yS), (q || []).find(t => t.name === e.name) ||
(q.push(e),
I.o2.register(w.fW, e.name, e.gvlid),
De(),
ee({ refresh: !0, submoduleNames: [e.name] }));
},
{ postInstallAllowed: !0 }
),
(0, r.E)(‘userId’);
}
},
e => {
e.O(0, [802, 769, 139, 85]() => {
return (t = 4836), e((e.s = t));
var t;
});
e.O();
}
]);
})(),
tlpbjs.processQueue();

tlpbjs.config = {};
tlpbjs.config.domain = window.location.hostname.replace(‘www.’, ”);
if (account) {
tlpbjs.config.account = account;
} else {
tlpbjs.config.account = ‘tl’;
}
tlpbjs.config.debug = window.location.search.indexOf(‘tlpbjs=debug’) > -1;
tlpbjs.defineSlot = window.googletag.defineSlot;

tlpbjs.nativeRender = function(state) {
var winners = tlpbjs.getHighestCpmBids([state.divId]);
if (tlpbjs.config.debug) console.log(‘tlpbjs: winners: ‘ + winners.length);
for (var i = 0; i {
if (a.mediaTypes && a.mediaTypes.banner && a.mediaTypes.banner.sizes) {
delete a.mediaTypes.banner.sizes;
}
});
});
window.pbjs = window.pbjs || window.tlpbjs;
});

tlpbjs.renderTlDynamicAd = function(state) {
tlpbjs.que.push(function() {
if (!tlpbjs.adUnits.find(e => e.code === state.divId)) {
var new_unit = [
{
code: state.divId,
mediaTypes: {
banner: {
sizes: [[1, 1]]}
},
ortb2Imp: {
ext: {
prebid: {
storedrequest: {
id: state.storedImp
},
…(window.location.search.indexOf(‘tl=test’) > -1 && {
storedauctionresponse: { id: ‘test-placement300x250’ }
})
}
}
},
bids: [
{
bidder: ‘teal-s2s’
}
]
}
];
tlpbjs.addAdUnits(new_unit);
}

var other_eids;
if (window.owpbjs && window.owpbjs.getUserIdsAsEids) {
other_eids = window.owpbjs.getUserIdsAsEids();
} else if (window.ihowpbjs && window.ihowpbjs.getUserIdsAsEids) {
other_eids = window.ihowpbjs.getUserIdsAsEids();
} else if (window.pbjs && window.pbjs.getUserIdsAsEids) {
other_eids = window.pbjs.getUserIdsAsEids();
}
if (other_eids && other_eids.filter) {
other_eids = other_eids.filter(
e =>
![‘criteo.com’, tlpbjs.config.domain, ‘pubcid.org’].includes(
e[‘source’]
)
);
tlpbjs.mergeConfig({
ortb2: {
user: {
ext: {
eids: other_eids
}
}
}
});
}

tlpbjs.tlRequestBids(state);
});
};

tlpbjs.initGam = function(state) {
window.googletag = window.googletag || { cmd: [] };
window.googletag.cmd.push(function() {
if (state.gamSlotId) {
state.gamSlot = window.googletag
.pubads()
.getSlots()
.find(element => element.getSlotElementId() === state.divId);
if (!state.gamSlot) {
if (state.size && Array.isArray(state.size)) {
if (!state.size.includes(1)) {
state.size = [state.size, [1, 1]];
}
} else {
state.size = [[1, 1]];
}
state.gamSlot = tlpbjs
.defineSlot(state.gamSlotId, state.size, state.divId)
.addService(googletag.pubads());
} else {
var sizes = state.gamSlot.getSizes();
if (!sizes.find(e => e[‘width’] == 1)) { var sizeArray = [[1, 1]];
sizes.forEach(e => sizeArray.push([e[‘width’]e[‘height’]]));
state.gamSlot.defineSizeMapping(
googletag
.sizeMapping()
.addSize([0, 0]sizeArray)
.build()
);
}
}
}
});
};
}

function triggerTealReplace(account) {
window.googletag = window.googletag || { cmd: [] };
window.googletag.cmd.push(function() {
if (window.location.search.indexOf(‘tl=disable’) > -1) return;
var identifier = ‘recovered-ad-slot-‘;
var gptDefineSlot = window.googletag.defineSlot;
var adCounter = 0;

if (!window.tlpbjs || !window.tlpbjs.config)
loadTlpbjs(account ? account : ‘npg’);

function defineSlotOverride(adUnitPath, sizes, divId) {
//only pass 0,0 if parent node has recovered child already
var div = document.getElementById(divId);
var emptyParent = true;
if (
div.parentNode &&
div.parentNode.children &&
div.parentNode.children.forEach
) {
div.parentNode.children.forEach(e => {
if (e.id.startsWith(identifier)) {
emptyParent = false;
}
});
}
var slot = gptDefineSlot(adUnitPath, emptyParent ? sizes : [0, 0]divId);
runAuctionForSlot(divId, slot.getSizes());
return slot;
}
function runAuctionForSlot(divId, sizes, isRefresh) {
//check sizes – don’t render if width or height {
if (Array.isArray(e) && e[0] > maxSize[0]) {
maxSize[0] = e[0];
} else if (e.width > maxSize[0]) {
maxSize[0] = e.width;
}
if (Array.isArray(e) && e[1] > maxSize[1]) {
maxSize[1] = e[1];
} else if (e.height > maxSize[1]) {
maxSize[1] = e.height;
}
});
}
if (maxSize[0] <= 2 || maxSize[1] {
if (e.id.startsWith(identifier)) {
emptyParent = false;
}
});
}
if (emptyParent || isRefresh) {
slot.innerHTML = ”;
if (!isRefresh) slot.id = identifier + adCounter++;
if (!tooSmall) {
var urlParams = new URLSearchParams(window.location.search);
var state = {
divId: slot.id,
div: slot,
…(urlParams.get(‘tlgamslot’) && {
gamSlotId: urlParams.get(‘tlgamslot’)
}),
size: maxSize
};

if (maxSize[0] >= 728) state.storedImp = ‘recovered728x90’;
else if (maxSize[0] = 250) state.storedImp = ‘recovered300x250’;
else if (maxSize[0] >= 320) state.storedImp = ‘recovered320x100’;

if (state.storedImp) {
if (state.gamSlotId) {
if (isRefresh)
state.gamSlot = window.googletag
.pubads()
.getSlots()
.find(
element => element.getSlotElementId() === state.divId
);
else window.tlpbjs.initGam(state);
}
window.tlpbjs.renderTlDynamicAd(state);
observeSlotInView(state); //start refresh timer
}
}
}
}
}

function observeSlotInView(state) {
var observer = new IntersectionObserver(
function(entries) {
entries.forEach(entry => {
if (entry.isIntersecting) {
observer.unobserve(state.div); // Stop observing once in view
setTimeout(
() => runAuctionForSlot(state.divId, state.size, true),
30000
); // Call after 30 seconds
}
});
},
{ threshold: 0.1 }
); // Trigger when at least 10% of the slot is in view

observer.observe(state.div);
}

window.googletag.defineSlot = defineSlotOverride;
window.googletag
.pubads()
.getSlots()
.forEach(e => {
runAuctionForSlot(e.getSlotElementId(), e.getSizes());
});
});
}

circle-arrow

Play Button

Stop Button

chevron-right

chevron-left

chevron-up

search

warning

chevron-left-skinny

chevron-right-skinny

x

clock

calendar

play-button

cancel-circle

user

twitter

facebook

youtube

instagram

email

linkedin

Skip to Content

A fallen tree
Noel Hardin – KQ2 News
A fallen tree

GRUNDY COUNTY, Mo. (KQTV) — A historic storm system brought record-breaking rainfall and baseball to golfball-sized hail to Grundy County on Saturday night, causing hundreds of thousands of dollars in damage and flooding rivers, creeks and farmland across the area.

According to preliminary estimates, at least 8.8 inches of rain fell in some locations, breaking a record set in the 1800s.

The heavy rain began around 5 p.m. and continued until roughly midnight, with the bulk of the precipitation occurring in a five-hour window.

Golfball to baseball-sized hail was also reported, damaging buildings and vehicles.

Winds knocked down trees and branches, and there was even a reported train derailment north of Trenton due to debris.

Glen Briggs, Emergency Management Director for Grundy County, said the storm is unlike any he has seen in his 19 years on the job.

“We’ve had some big floods, but this one, I think it’s going to be record breaking,” Briggs said. “We had the entire month’s worth of May rainfall and a third of June’s rainfall in five hours last night.”

Initial damage estimates include at least $300,000 in road infrastructure damage.

Briggs said somewhere north of 200 homes have experienced some form of hail or water damage, though those numbers remain preliminary. Farmland damage is also extensive.

“I have no idea. Lots of farm fields,” Briggs said. “Every river and creek is at or near flood stage right now. Or above.”

Cleanup efforts are already underway. Crews have been focused on removing tree debris from roadways and pushing roads back open before addressing washouts and damaged culverts.

Briggs noted that several state highways are being worked on by MoDOT after underground tubes were undermined by flooding.

Despite the destruction, Briggs expressed pride in the community’s response.

“It makes me feel tired, but also proud of our community,” he said. “We’re a tight knit community, and everybody’s coming together. I’ve already had lots of Facebook messages, ‘Is there anybody who needs help? Where can I go help out?’ It’s a tiring job, but it’s also thankful to see how our community comes together in times like this.”

The severe weather threat is not over. More rain is expected Sunday night, and officials are urging residents to remain vigilant.

“We’re not done with the weather threat again,” Briggs warned. “There’s more weather threat tonight, more weather threat tomorrow. Please pay attention. This is an abnormal amount of rain. The soil is saturated, so it’s not going to take much. You might think half an inch of rain might not cause major flash flooding, but it might tonight and tomorrow. Just pay attention to this being an abnormal situation.”

Author Profile Photo

Noel Hardin

Noel Hardin is the Health and Social Services reporter at KQ2 News.

BE PART OF THE CONVERSATION

KQ2 is committed to providing a forum for civil and constructive conversation.

Please keep your comments respectful and relevant. You can review our Community Guidelines by
clicking here.

If you would like to share a story idea, please submit it
here.