Theres Good News: Sparkle N Swirl brings dirty soda trend to Central Oregon

    17
    0

    ${n}</script>`),
    (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] || { que: [] };
    o
    ? ((n[o] = n[o] || { que: [] }), 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] || { que: [] };
    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].que || []).forEach(function(e) {
    let t = o[r].que;
    e === n && t.splice(t.indexOf(e), 1);
    })
    : (o.que || []).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: o.S,
    getWindowTop: s.mb,
    getWindowSelf: s.l4,
    getHighEntropySUA: g,
    getLowEntropySUA: f,
    getDocument: s.YE
    },
    w = (0, h.i8)(‘FPD’),
    I = (0, i.A_)(‘sync’, 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] = e;
    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) <= t.length));
    } while (o);
    return n;
    });
    },
    9214: (e, t, n) => {
    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;
    i++
    )
    n[i – 1] = arguments[i];
    const r = l[e];
    if (r) return r(…n);
    c(e).before((e, t) => {
    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 < t;
    i++
    )
    n[i] = arguments[i];
    return n.push(function() {}), e.apply(this, n);
    });
    }
    },
    1371: (e, t, n) => {
    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 = i.z$
    } =
    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;
    r++
    )
    n[r – 1] = arguments[r];
    return o(Object.assign({}, e, { adId: i }), …n);
    }),
    n,
    t
    );
    });
    })(e);
    },
    !1
    );
    }
    function b(e, t) {
    return function(n, i) {
    !(function(e) {
    let {
    instl: t,
    adId: n,
    adUnitCode: i,
    width: o,
    height: s
    } = e;
    if (t) return;
    function a(e) {
    return e ? e + ‘px’ : ‘100%’;
    }
    function d(e) {
    let t = c(n, i),
    r = document.getElementById(t);
    return r && r.querySelector(e);
    }
    function c(e, t) {
    return (0, r.II)() ? l(e) : (0, r.t1)() ? u(t) : t;
    }
    function l(e) {
    const t = window.googletag
    .pubads()
    .getSlots()
    .find(t =>
    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 < t;
    r++
    )
    i[r – 1] = arguments[r];
    return (n || C.U9.resolve()).then(() => 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 < 0 || e.id % 1 != 0
    )
    )
    return t(‘native asset ID must be a nonnegative integer’);
    if (n(e => 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 =>
    E.n.getAdUnitCodes().includes(e.adUnitCode)
    ),
    n = E.n.getLastAuctionId();
    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 < n);
    e.reverse();
    try {
    f = c.top.document.referrer;
    } catch (e) {}
    const y = g || b ? l : null,
    v = i.$W.getConfig(‘pageUrl’) || u || null;
    let E = i.$W.getConfig(‘pageUrl’) || y || o(v, c);
    return (
    y &&
    y.indexOf(‘?’) > -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 ? i.length : r;
    decodeURIComponent(
    i.slice(0, r).replace(/^s+/, ”)
    ).indexOf(e) >= 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 }),
    e
    );
    }, []);
    })(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 <= t
    ? ((t -= c),
    (0, f.fH)(
    `AdUnit ‘${d}’ auction keys comprised of ${c} characters. Deducted from running threshold; new limit is ${t}`,
    n[d]
    ),
    (e[d] = n[d]))
    : (0, f.JE)(
    `The following keys for adUnitCode ‘${d}’ exceeded the current limit of the ‘auctionKeyMaxChars’ setting.nThe key-set size was ${c}, the current allotted amount was ${t}.n`,
    n[d]
    ),
    r + 1 === o.length &&
    0 === Object.keys(e).length &&
    (0, f.vV)(
    ‘No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting.’
    ),
    e
    );
    }, {});
    })(k, $))),
    g.forEach(e => {
    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) < 0
    ? (i[t.toUpperCase()] = n[e][t])
    : (i[t] = n[e][t]),
    window.apntag.setKeywords(e, i, {
    overrideKeyValue: !0
    });
    }
    })
    );
    }),
    (t.isApntagDefined = function() {
    if (window.apntag && (0, f.fp)(window.apntag.setKeywords))
    return !0;
    }),
    t
    );
    })(i.n);
    },
    8230: (e, t, n) => {
    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 te(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 < n;
    r++
    )
    i[r] = arguments[r];
    t(e, …i);
    };
    }
    return {
    logError: t(H),
    logWarn: t(F),
    logMessage: t(M),
    logInfo: t(G)
    };
    }
    function z(e, t) {
    e = [].slice.call(e);
    let n = i.$W.getCurrentBidder();
    return (
    t && e.unshift(t),
    n && e.unshift(r(‘#aaa’)),
    e.unshift(r(‘#3b88c3’)),
    e.unshift(‘%cPrebid’ + (n ? `%c${n}` : ”)),
    e
    );
    function r(e) {
    return `display: inline-block; color: #fff; background: ${e}; padding: 1px 4px; border-radius: 3px;`;
    }
    }
    function J() {
    return !!i.$W.getConfig(‘debug’);
    }
    const Q = (() => {
    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 <= 0)
    );
    }
    function se(e) {
    return ee(e) && (!e || 0 === e.length);
    }
    function ae(e, t, n, i) {
    let r;
    (t = t || document),
    (r = n
    ? t.getElementsByTagName(n)
    : t.getElementsByTagName(‘head’));
    try {
    if (
    ((r = r.length ? r : t.getElementsByTagName(‘body’)),
    r.length)
    ) {
    r = r[0];
    let t = i ? null : r.firstChild;
    return r.insertBefore(e, t);
    }
    } catch (e) {}
    }
    function de(e, t) {
    let n = null;
    return new s.U9(i => {
    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.bidder).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 < 1)
    throw new Error(
    `numRequiredCalls must be a positive number. Got ${t}`
    );
    let n = 0;
    return function() {
    n++, n === t && e.apply(this, arguments);
    };
    }
    function Ue(e, t) {
    return e.reduce(function(e, n) {
    return (e[n[t]] = e[n[t]] || []).push(n), e;
    }, {});
    }
    function De(e, t) {
    return t
    .filter(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 < n.length; i++) {
    const r = n[i];
    if (‘__proto__’ === r || ‘constructor’ === r) continue;
    const o = t[r];
    ie(o)
    ? (e[r] || (e[r] = {}), ze(e[r], o))
    : Array.isArray(o)
    ? Array.isArray(e[r])
    ? o.forEach(t => {
    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 < e.length; o++)
    (t = e.charCodeAt(o)),
    (i = n(i ^ t, 2654435761)),
    (r = n(r ^ t, 1597334677));
    return (
    (i =
    n(i ^ (i >>> 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 < o;
    a++
    )
    s[a – 1] = arguments[a];
    const d = this;
    return g(t.apply(d, s)).measureHookTime(e + n, r, function(
    e
    ) {
    return i.call(d, e, …s);
    });
    };
    };
    }
    const m = h(‘requestBids.’, e => 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 < t ? -1 : 1;
    }
    function r() {
    let e =
    arguments.length > 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 < e;
    n++
    )
    t[n] = arguments[n];
    return function(e, n) {
    for (const i of t) {
    const t = i(e, n);
    if (0 !== t) return t;
    }
    return 0;
    };
    }
    function a() {
    let e =
    arguments.length > 0 && void 0 !== arguments[0]
    ? arguments[0]
    : i;
    return (t, n) => (e(n, t) < 0 ? n : t);
    }
    function d() {
    return a(
    o(
    arguments.length > 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 <= 0 && n && n();
    }
    0 === t.length && n
    ? n()
    : t.forEach((t, e) =>
    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) => {
    n.d(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: c.W },
    adUnitCode: {
    fn: function(e, t) {
    const i = t.adUnitCode;
    i && (0, p.J)(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 < e;
    r++
    )
    t[r] = arguments[r];
    const s = t.shift(),
    o = t.length > 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 < t.length; s++) {
    const u = t.slice(s).join(‘.’);
    if (
    (o.setCookie(e, ‘1’, void 0, void 0, u),
    (i = o.getCookie(e)),
    o.setCookie(
    e,
    ”,
    ‘Thu, 01 Jan 1970 00:00:01 GMT’,
    void 0,
    u
    ),
    ‘1’ !== i)
    )
    return n;
    n = u;
    }
    };
    }
    t.d(n, { w: () => 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 < s;
    c++
    )
    i[c – 2] = arguments[c];
    n(a, …i);
    }
    }
    if (!b[P])
    return void o(
    null,
    `USP framework (${P}) is not a supported framework. Aborting consentManagement module and resuming auction.`
    );
    const a = {
    onSuccess: o,
    onError: function(n) {
    for (
    var t = arguments.length,
    e = new Array(t > 1 ? t – 1 : 0),
    a = 1;
    a < t;
    a++
    )
    e[a – 1] = arguments[a];
    o(
    null,
    `${n} Resuming auction without consent data as per consentManagement config.`,
    …e
    );
    }
    };
    b[P](a),
    e ||
    (0 === v
    ? h(void 0, a)
    : (t = setTimeout(
    a.onError.bind(
    null,
    ‘USPAPI workflow exceeded timeout threshold.’
    ),
    v
    )));
    }
    const y = (0, u.Ak)(‘usp’, function(n, t) {
    var e = this;
    S || U(),
    D(function(o) {
    if (null != o) {
    for (
    var s = arguments.length,
    i = new Array(s > 1 ? s – 1 : 0),
    c = 1;
    c < s;
    c++
    )
    i[c – 1] = arguments[c];
    (0, a.JE)(o, …i);
    }
    n.call(e, t);
    });
    });
    function h(n, t) {
    let { onSuccess: e, onError: o } = t;
    !n || !n.usPrivacy
    ? o(
    ‘USPAPI returned unexpected value during lookup process.’,
    n
    )
    : (!(function(n) {
    n && n.usPrivacy && (m = n.usPrivacy);
    })(n),
    e(m));
    }
    function U() {
    let n =
    arguments.length > 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 < a.length; ++n) {
    const c = a.slice(a.length – n – 1, a.length).join(‘.’);
    try {
    if ((g.setCookie(e, t, o, null, ‘.’ + c), r)) {
    const o = g.getCookie(e);
    if (o && o === t) break;
    }
    } catch (e) {}
    }
    }
    function U(e, t, o) {
    const n =
    (void 0 === e?.storage?.type || e?.storage?.type === I) &&
    g.cookiesAreEnabled(),
    i =
    (void 0 === e?.storage?.type || e?.storage?.type === b) &&
    g.localStorageIsEnabled(),
    s = S((0, c.EN)().page),
    d = S(document.location.href, !0),
    p = ‘undefined’ != typeof criteo_pubtag,
    f = (function(e, t, o, n, r, a, c) {
    let i =
    ‘https://gum.criteo.com/sid/json?origin=prebid’ +
    (e ? ‘&topUrl=’ + encodeURIComponent(e) : ”) +
    (t ? ‘&domain=’ + encodeURIComponent(t) : ”) +
    (o ? ‘&bundle=’ + encodeURIComponent(o) : ”) +
    (n ? ‘&info=’ + encodeURIComponent(n) : ”) +
    (r ? ‘&cw=1’ : ”) +
    (c ? ‘&pbt=1’ : ”) +
    (a ? ‘&lsw=1’ : ”);
    const s = l.t6.getConsentData();
    s && (i += `&us_privacy=${encodeURIComponent(s)}`);
    const d = l.mW.getConsentData();
    d &&
    ((i =
    i +
    ” +
    (d.consentString
    ? ‘&gdprString=’ + encodeURIComponent(d.consentString)
    : ”)),
    (i = i + ‘&gdpr=’ + (!0 === d.gdprApplies ? 1 : 0)));
    const p = l.ad.getConsentData();
    return (
    p &&
    ((i =
    i +
    ” +
    (p.gppString
    ? ‘&gpp=’ + encodeURIComponent(p.gppString)
    : ”)),
    (i =
    i +
    ” +
    (p.applicableSections
    ? ‘&gpp_sid=’ +
    encodeURIComponent(p.applicableSections)
    : ”))),
    i
    );
    })(s, d, t.bundle, t.dnaBundle, n, i, p),
    h = {
    success: t => {
    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) ? e : [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, r.E)(‘prebidServerBidAdapter’);
    }
    },
    e => {
    e.O(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] = e;
    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 < e;
    n++
    )
    t[n] = arguments[n];
    return i(…t, s.config);
    })),
    t.set(r, e);
    }
    var i;
    }),
    d(n, t)
    );
    }
    var g = n(2938),
    m = n(3172),
    b = n(1692),
    h = n(5555),
    p = n(6894),
    y = n(5973),
    I = n(6916),
    w = n(5569),
    v = n(5139),
    S = n(6811),
    D = n(3441),
    E = n(8230),
    O = n(8934);
    const k = ‘User ID’,
    $ = g.X0,
    j = g.qk,
    A = ‘_pbjs_id_optout’,
    U = (0, g.CK)(‘userId’),
    T = { isAllowed: v.io };
    let C,
    x,
    N,
    L,
    _,
    P,
    H = [],
    M = [],
    J = {},
    q = [];
    const V = (() => {
    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 < i;
    });
    n.splice(-1 === a ? n.length : a, 0, [i, e]);
    });
    }),
    Object.fromEntries(
    Object.entries(r).map(e => {
    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 <= 150) return e;
    (0, u.JE)(
    `User ID – Googletag Publisher Provided ID for ${_} is not between 32 and 150 characters – ${e}`
    );
    }
    }
    const ne = (0, p.Ak)(‘userId’, function(e, t) {
    let { mkDelay: n = h.cb, getIds: r = ge } =
    arguments.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 < t;
    r++
    )
    n[r – 1] = arguments[r];
    (0, u.JE)(`Invalid userSync.userId config: ${e}`, …n);
    }
    return Array.isArray(e)
    ? e.filter(e => {
    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 < t;
    r++
    )
    n[r – 1] = arguments[r];
    (0, u.fH)(
    ‘UserID: received data deletion request; deleting all stored IDs…’
    ),
    H.forEach(e => {
    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(), Se(t);
    })(t.idPriority, q),
    ee({ ready: !0 })));
    })),
    ((0, r.m)().getUserIds = se),
    ((0, r.m)().getUserIdsAsEids = ie),
    ((0, r.m)().getEncryptedEidsForSource = Oe(ce)),
    ((0, r.m)().registerSignalSources = le),
    ((0, r.m)().refreshUserIds = Oe(fe)),
    ((0, r.m)().getUserIdsAsync = Oe(ge)),
    ((0, r.m)().getUserIdsAsEidBySource = ae),
    oe() || O.gH.before(re, 100);
    }
    ke(o.$W),
    (0, c.xG)(
    ‘userId’,
    function(e) {
    (e.findRootDomain = y.S),
    (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 < winners.length; i++) {
    var winningBid = winners[i];
    if (winningBid && winningBid.adId) {
    if (tlpbjs.config.debug)
    console.log(‘tlpbjs: winning bid id: ‘ + winningBid.adId);
    if (state.div) {
    state.div.innerHTML = ”;
    state.div.align = ‘center’;
    state.div.style = ‘padding:0;margin:0;border:0pt none;’;
    let iframe = document.createElement(‘iframe’);
    iframe.frameBorder = 0;
    iframe.setAttribute(‘marginwidth’, ‘0’);
    iframe.setAttribute(‘marginheight’, ‘0’);
    iframe.scrolling = ‘no’;
    iframe.style =
    ‘overflow:hidden;display:block;border-style:none;border:0px;’;
    state.div.appendChild(iframe);
    var iframeDoc = iframe.contentWindow.document;
    tlpbjs.renderAd(iframeDoc, winningBid.adId);
    }
    }
    }
    };

    tlpbjs.tlRequestBids = function(state) {
    if (state.gamSlotId) {
    tlpbjs.requestBids({
    adUnitCodes: [state.gamSlot.getSlotElementId()],
    bidsBackHandler: function() {
    tlpbjs.setTargetingForGPTAsync([state.gamSlot.getSlotElementId()]);
    googletag.pubads().refresh([state.gamSlot]);
    }
    });
    } else {
    tlpbjs.requestBids({
    adUnitCodes: [state.divId],
    bidsBackHandler: function() {
    tlpbjs.nativeRender(state);
    }
    });
    }
    };

    tlpbjs.getPPID = function() {
    if (localStorage) {
    var permutive_id = localStorage.getItem(‘permutive-id’);
    if (permutive_id) {
    return permutive_id;
    } else {
    var teal_id = localStorage.getItem(‘teal-id’);
    if (teal_id) {
    return teal_id;
    }
    var newUUID = crypto
    ? crypto.randomUUID().toString()
    : Math.random()
    .toString()
    .replace(‘0.’, ”) +
    Math.random()
    .toString()
    .replace(‘0.’, ”);
    localStorage.setItem(‘teal-id’, newUUID);
    return newUUID;
    }
    } else {
    return new crypto()
    ? crypto.randomUUID().toString()
    : Math.random()
    .toString()
    .replace(‘0.’, ”) +
    Math.random()
    .toString()
    .replace(‘0.’, ”);
    }
    };

    tlpbjs.que.push(function() {
    tlpbjs.setConfig({
    s2sConfig: {
    accountId: tlpbjs.config.account,
    bidders: [‘teal-s2s’],
    timeout: 2200,
    maxTimeout: 2200,
    enabled: true,
    adapter: ‘prebidServer’,
    endpoint: ‘https://a.bids.ws/openrtb2/auction’,
    syncEndpoint: ‘https://a.bids.ws/cookie_sync’,
    coopSync: true,
    allowUnknownBidderCodes: true
    },
    ortb2: {
    ext: {
    prebid: {
    storedrequest: {
    id: tlpbjs.config.account
    }
    }
    }
    },
    useBidCache: true,
    bidderTimeout: 2500,
    enableTIDs: true,
    bidderSequence: ‘random’,
    enableSendAllBids: false,
    auctionOptions: {
    suppressStaleRender: true
    },
    consentManagement: {
    usp: {
    cmpApi: ‘iab’,
    timeout: 0
    },
    …(typeof __tcfapi === ‘function’ && {
    gdpr: {
    cmpApi: ‘iab’,
    allowAuctionWithoutConsent: true,
    timeout: 0,
    defaultGdprScope: true
    }
    })
    },
    userSync: {
    ppid: tlpbjs.config.domain,
    filterSettings: {
    iframe: {
    bidders: ‘*’,
    filter: ‘include’
    }
    },
    userIds: [
    {
    name: ‘pubProvidedId’,
    params: {
    eids: [
    {
    source: tlpbjs.config.domain,
    uids: [
    {
    id: tlpbjs.getPPID(),
    atype: 1,
    ext: {
    stype: ‘ppuid’
    }
    }
    ]
    }
    ]
    }
    },
    {
    name: ‘criteo’
    },
    {
    name: ‘sharedId’,
    storage: {
    name: ‘_sharedID’,
    type: ‘cookie’,
    expires: 365
    }
    }
    ]
    }
    });
    tlpbjs.bidderSettings = {
    standard: {
    adserverTargeting: [
    {
    key: ‘tl_bidder’,
    val: function(bidResponse) {
    return bidResponse.bidderCode;
    }
    },
    {
    key: ‘tl_adid’,
    val: function(bidResponse) {
    return bidResponse.adId;
    }
    },
    {
    key: ‘tl_pb’,
    val: function(bidResponse) {
    return bidResponse.pbHg;
    }
    },
    {
    key: ‘tl_size’,
    val: function(bidResponse) {
    return bidResponse.size;
    }
    },
    {
    key: ‘tl_source’,
    val: function(bidResponse) {
    return bidResponse.source;
    }
    },
    {
    key: ‘tl_format’,
    val: function(bidResponse) {
    return bidResponse.mediaType;
    }
    }
    ]
    }
    };
    tlpbjs.onEvent(‘beforeRequestBids’, function(adUnits) {
    adUnits.forEach(a => {
    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 <= 2 (1×1,2×2 etc.)
    var tooSmall = false;
    var maxSize = [0, 0];
    if (sizes && sizes[0]) {
    if (Number.isInteger(sizes[0])) {
    maxSize = sizes;
    } else {
    sizes.forEach(e => {
    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] <= 2) {
    tooSmall = true;
    }
    } else {
    tooSmall = true;
    }
    var slot = document.getElementById(divId);
    if (slot) {
    //check to see if there is already an recovered slot in parent
    var emptyParent = true;
    if (
    slot.parentNode &&
    slot.parentNode.children &&
    slot.parentNode.children.forEach
    ) {
    slot.parentNode.children.forEach(e => {
    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] <= 160) state.storedImp = ‘recovered160x600’;
    else if (maxSize[1] >= 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

    REDMOND, Ore. (KTVZ) — Sparkle N Swirl Dirty Sodas, a new food cart specializing in mixed sodas with cream, has opened in Central Oregon. The cart is located in the lot next to the High Desert Music Hall in Redmond.

    The business aims to provide a family-friendly alternative to traditional beverage carts. According to owner Shannon Carnahan, the “dirty soda” concept is popular in other regions and she wanted to bring the specialized drinks to the local community.

    Dirty sodas consist of flavored sodas mixed with cream. While the cart has recently established its location in Redmond, it previously appeared at various local events throughout the region, including Winterfest.

    Owner Carnahan said she opened the business to fill a specific niche in the local food and beverage scene. She noted that many existing mobile beverage services in the area focus on adult-oriented options.

    “Nobody’s doing just dirty sodas. There are lots of bar carts, there’s alcohol, but there’s nothing family-friendly just for families,” Carnahan said. “So I brought dirty sodas so that everybody can enjoy them, no matter what age you are. If you love sodas, you’re going to love dirty sodas even better.”

    The food cart maintains a rotating menu that changes to reflect different seasons and holidays. Sparkle N Swirl recently offered a selection of special drinks for Valentine’s Day. The current seasonal menu includes warm beverage options such as cocoa and cider drinks.

    Tyson Beauchemin

    Tyson Beauchemin is a photojournalist for KTVZ News.

    BE PART OF THE CONVERSATION

    KTVZ 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.