/*! * CookieConsent 3.1.0 * https://github.com/orestbida/cookieconsent * Author Orest Bida * Released under the MIT License */ var e, t; ((e = this), (t = function (e) { 'use strict'; const t = 'opt-in', o = 'opt-out', n = 'show--consent', s = 'show--preferences', a = 'disable--interaction', c = 'data-category', r = 'div', i = 'button', l = 'aria-hidden', d = 'btn-group', f = 'click', _ = 'data-role', u = 'consentModal', p = 'preferencesModal'; class g { constructor() { ((this.t = { mode: t, revision: 0, autoShow: !0, lazyHtmlGeneration: !0, autoClearCookies: !0, manageScriptTags: !0, hideFromBots: !0, cookie: { name: 'cc_cookie', expiresAfterDays: 182, domain: '', path: '/', secure: !0, sameSite: 'Lax', }, }), (this.o = { i: {}, l: '', _: {}, u: {}, p: {}, m: [], v: !1, h: null, C: null, S: null, M: '', T: !0, D: !1, k: !1, A: !1, N: !1, H: [], V: !1, j: !0, I: [], L: !1, F: '', P: !1, O: [], R: [], B: [], $: [], G: !1, J: !1, U: !1, q: [], K: [], W: [], X: {}, Y: {}, Z: {}, ee: {}, te: {}, oe: [], }), (this.ne = { se: {}, ae: {} }), (this.ce = {}), (this.re = { ie: 'cc:onFirstConsent', le: 'cc:onConsent', de: 'cc:onChange', fe: 'cc:onModalShow', _e: 'cc:onModalHide', ue: 'cc:onModalReady', })); } } const m = new g(), b = (e, t) => e.indexOf(t), v = (e, t) => -1 !== b(e, t), y = (e) => Array.isArray(e), h = (e) => 'string' == typeof e, C = (e) => !!e && 'object' == typeof e && !y(e), w = (e) => 'function' == typeof e, S = (e) => Object.keys(e), x = (e) => Array.from(new Set(e)), M = () => document.activeElement, T = (e) => e.preventDefault(), D = (e, t) => e.querySelectorAll(t), k = (e) => e.dispatchEvent(new Event('change')), E = (e) => { const t = document.createElement(e); return (e === i && (t.type = e), t); }, A = (e, t, o) => e.setAttribute(t, o), N = (e, t, o) => { e.removeAttribute(o ? 'data-' + t : t); }, H = (e, t, o) => e.getAttribute(o ? 'data-' + t : t), V = (e, t) => e.appendChild(t), j = (e, t) => e.classList.add(t), I = (e, t) => j(e, 'cm__' + t), L = (e, t) => j(e, 'pm__' + t), F = (e, t) => e.classList.remove(t), P = (e) => { if ('object' != typeof e) return e; if (e instanceof Date) return new Date(e.getTime()); let t = Array.isArray(e) ? [] : {}; for (let o in e) { let n = e[o]; t[o] = P(n); } return t; }, O = () => { const e = {}, { O: t, X: o, Y: n } = m.o; for (const s of t) e[s] = G(n[s], S(o[s])); return e; }, R = (e, t) => dispatchEvent(new CustomEvent(e, { detail: t })), B = (e, t, o, n) => { (e.addEventListener(t, o), n && m.o.m.push({ pe: e, ge: t, me: o })); }, $ = () => { const e = m.t.cookie.expiresAfterDays; return w(e) ? e(m.o.F) : e; }, G = (e, t) => { const o = e || [], n = t || []; return o.filter((e) => !v(n, e)).concat(n.filter((e) => !v(o, e))); }, J = (e) => { ((m.o.R = x(e)), (m.o.F = (() => { let e = 'custom'; const { R: t, O: o, B: n } = m.o, s = t.length; return (s === o.length ? (e = 'all') : s === n.length && (e = 'necessary'), e); })())); }, U = (e, t, o, n) => { const s = 'accept-', { show: a, showPreferences: c, hide: r, hidePreferences: i, acceptCategory: l } = t, d = e || document, _ = (e) => D(d, `[data-cc="${e}"]`), u = (e, t) => { (T(e), l(t), i(), r()); }, p = _('show-preferencesModal'), g = _('show-consentModal'), b = _(s + 'all'), v = _(s + 'necessary'), y = _(s + 'custom'), h = m.t.lazyHtmlGeneration; for (const e of p) (A(e, 'aria-haspopup', 'dialog'), B(e, f, (e) => { (T(e), c()); }), h && (B( e, 'mouseenter', (e) => { (T(e), m.o.N || o(t, n)); }, !0, ), B(e, 'focus', () => { m.o.N || o(t, n); }))); for (let e of g) (A(e, 'aria-haspopup', 'dialog'), B( e, f, (e) => { (T(e), a(!0)); }, !0, )); for (let e of b) B( e, f, (e) => { u(e, 'all'); }, !0, ); for (let e of y) B( e, f, (e) => { u(e); }, !0, ); for (let e of v) B( e, f, (e) => { u(e, []); }, !0, ); }, z = (e, t) => { e && (t && (e.tabIndex = -1), e.focus(), t && e.removeAttribute('tabindex')); }, q = (e, t) => { const o = (n) => { (n.target.removeEventListener('transitionend', o), 'opacity' === n.propertyName && '1' === getComputedStyle(e).opacity && z(((e) => (1 === e ? m.ne.be : m.ne.ve))(t))); }; B(e, 'transitionend', o); }; let K; const Q = (e) => { (clearTimeout(K), e ? j(m.ne.ye, a) : (K = setTimeout(() => { F(m.ne.ye, a); }, 500))); }, W = [ 'M 19.5 4.5 L 4.5 19.5 M 4.5 4.501 L 19.5 19.5', 'M 3.572 13.406 L 8.281 18.115 L 20.428 5.885', 'M 21.999 6.94 L 11.639 17.18 L 2.001 6.82 ', ], X = (e = 0, t = 1.5) => ``, Y = (e) => { const t = m.ne, o = m.o; ((e) => { const n = e === t.he, s = o.i.disablePageInteraction ? t.ye : n ? t.Ce : t.ye; B( s, 'keydown', (t) => { if ('Tab' !== t.key || !(n ? o.k && !o.A : o.A)) return; const s = M(), a = n ? o.q : o.K; 0 !== a.length && (t.shiftKey ? (s !== a[0] && e.contains(s)) || (T(t), z(a[1])) : (s !== a[1] && e.contains(s)) || (T(t), z(a[0]))); }, !0, ); })(e); }, Z = ['[href]', i, 'input', 'details', '[tabindex]'] .map((e) => e + ':not([tabindex="-1"])') .join(','), ee = (e) => { const { o: t, ne: o } = m, n = (e, t) => { const o = D(e, Z); ((t[0] = o[0]), (t[1] = o[o.length - 1])); }; (1 === e && t.D && n(o.he, t.q), 2 === e && t.N && n(o.we, t.K)); }, te = (e, t, o) => { const { de: n, le: s, ie: a, _e: c, ue: r, fe: i } = m.ce, l = m.re; if (t) { const n = { modalName: t }; return ( e === l.fe ? w(i) && i(n) : e === l._e ? w(c) && c(n) : ((n.modal = o), w(r) && r(n)), R(e, n) ); } const d = { cookie: m.o.p }; (e === l.ie ? w(a) && a(P(d)) : e === l.le ? w(s) && s(P(d)) : ((d.changedCategories = m.o.I), (d.changedServices = m.o.ee), w(n) && n(P(d))), R(e, P(d))); }, oe = (e, t) => { try { return e(); } catch (e) { return (!t && console.warn('CookieConsent:', e), !1); } }, ne = (e) => { const { Y: t, ee: o, O: n, X: s, oe: a, p: r, I: i } = m.o; for (const e of n) { const n = o[e] || t[e] || []; for (const o of n) { const n = s[e][o]; if (!n) continue; const { onAccept: a, onReject: c } = n; !n.Se && v(t[e], o) ? ((n.Se = !0), w(a) && a()) : n.Se && !v(t[e], o) && ((n.Se = !1), w(c) && c()); } } if (!m.t.manageScriptTags) return; const l = a, d = e || r.categories || [], f = (e, n) => { if (n >= e.length) return; const s = a[n]; if (s.xe) return f(e, n + 1); const r = s.Me, l = s.Te, _ = s.De, u = v(d, l), p = !!_ && v(t[l], _); if ( (!_ && !s.ke && u) || (!_ && s.ke && !u && v(i, l)) || (_ && !s.ke && p) || (_ && s.ke && !p && v(o[l] || [], _)) ) { s.xe = !0; const t = H(r, 'type', !0); (N(r, 'type', !!t), N(r, c)); let o = H(r, 'src', !0); o && N(r, 'src', !0); const a = E('script'); a.textContent = r.innerHTML; for (const { nodeName: e } of r.attributes) A(a, e, r[e] || H(r, e)); (t && (a.type = t), o ? (a.src = o) : (o = r.src)); const i = !!o && (!t || ['text/javascript', 'module'].includes(t)); if ( (i && (a.onload = a.onerror = () => { f(e, ++n); }), r.replaceWith(a), i) ) return; } f(e, ++n); }; f(l, 0); }, se = 'bottom', ae = 'left', ce = 'center', re = 'right', ie = 'inline', le = 'wide', de = 'pm--', fe = ['middle', 'top', se], _e = [ae, ce, re], ue = { box: { Ee: [le, ie], Ae: fe, Ne: _e, He: se, Ve: re }, cloud: { Ee: [ie], Ae: fe, Ne: _e, He: se, Ve: ce }, bar: { Ee: [ie], Ae: fe.slice(1), Ne: [], He: se, Ve: '' }, }, pe = { box: { Ee: [], Ae: [], Ne: [], He: '', Ve: '' }, bar: { Ee: [le], Ae: [], Ne: [ae, re], He: '', Ve: ae }, }, ge = (e) => { const t = m.o.i.guiOptions, o = t && t.consentModal, n = t && t.preferencesModal; (0 === e && me(m.ne.he, ue, o, 'cm--', 'box', 'cm'), 1 === e && me(m.ne.we, pe, n, de, 'box', 'pm')); }, me = (e, t, o, n, s, a) => { e.className = a; const c = o && o.layout, r = o && o.position, i = o && o.flipButtons, l = !o || !1 !== o.equalWeightButtons, d = (c && c.split(' ')) || [], f = d[0], _ = d[1], u = f in t ? f : s, p = t[u], g = v(p.Ee, _) && _, b = (r && r.split(' ')) || [], y = b[0], h = n === de ? b[0] : b[1], C = v(p.Ae, y) ? y : p.He, w = v(p.Ne, h) ? h : p.Ve, S = (t) => { t && j(e, n + t); }; (S(u), S(g), S(C), S(w), i && S('flip')); const x = a + '__btn--secondary'; if ('cm' === a) { const { je: e, Ie: t } = m.ne; (e && (l ? F(e, x) : j(e, x)), t && (l ? F(t, x) : j(t, x))); } else { const { Le: e } = m.ne; e && (l ? F(e, x) : j(e, x)); } }, be = (e, t) => { const o = m.o, n = m.ne, { hide: s, hidePreferences: a, acceptCategory: c } = e, u = (e) => { (c(e), a(), s()); }, g = o.u && o.u.preferencesModal; if (!g) return; const b = g.title, v = g.closeIconLabel, y = g.acceptAllBtn, w = g.acceptNecessaryBtn, x = g.savePreferencesBtn, M = g.sections || [], T = y || w || x; if (n.Fe) ((n.Pe = E(r)), L(n.Pe, 'body')); else { ((n.Fe = E(r)), j(n.Fe, 'pm-wrapper')); const e = E('div'); (j(e, 'pm-overlay'), V(n.Fe, e), B(e, f, a), (n.we = E(r)), j(n.we, 'pm'), A(n.we, 'role', 'dialog'), A(n.we, l, !0), A(n.we, 'aria-modal', !0), A(n.we, 'aria-labelledby', 'pm__title'), B( n.ye, 'keydown', (e) => { 27 === e.keyCode && a(); }, !0, ), (n.Oe = E(r)), L(n.Oe, 'header'), (n.Re = E('h2')), L(n.Re, 'title'), (n.Re.id = 'pm__title'), (n.Be = E(i)), L(n.Be, 'close-btn'), A(n.Be, 'aria-label', g.closeIconLabel || ''), B(n.Be, f, a), (n.$e = E('span')), (n.$e.innerHTML = X()), V(n.Be, n.$e), (n.Ge = E(r)), L(n.Ge, 'body'), (n.Je = E(r)), L(n.Je, 'footer')); var D = E(r); j(D, 'btns'); var k = E(r), N = E(r); (L(k, d), L(N, d), V(n.Je, k), V(n.Je, N), V(n.Oe, n.Re), V(n.Oe, n.Be), (n.ve = E(r)), A(n.ve, 'tabIndex', -1), V(n.we, n.ve), V(n.we, n.Oe), V(n.we, n.Ge), T && V(n.we, n.Je), V(n.Fe, n.we)); } let H; (b && ((n.Re.innerHTML = b), v && A(n.Be, 'aria-label', v)), M.forEach((e, t) => { const s = e.title, a = e.description, c = e.linkedCategory, d = c && o.P[c], _ = e.cookieTable, u = _ && _.body, p = _ && _.caption, m = u && u.length > 0, b = !!d, v = b && o.X[c], y = (C(v) && S(v)) || [], w = b && (!!a || !!m || S(v).length > 0); var x = E(r); if ((L(x, 'section'), w || a)) { var M = E(r); L(M, 'section-desc-wrapper'); } let T = y.length; if (w && T > 0) { const e = E(r); L(e, 'section-services'); for (const t of y) { const o = v[t], n = (o && o.label) || t, s = E(r), a = E(r), i = E(r), l = E(r); (L(s, 'service'), L(l, 'service-title'), L(a, 'service-header'), L(i, 'service-icon')); const f = ve(n, t, d, !0, c); ((l.innerHTML = n), V(a, i), V(a, l), V(s, a), V(s, f), V(e, s)); } V(M, e); } if (s) { var D = E(r), k = E(b ? i : r); if ( (L(D, 'section-title-wrapper'), L(k, 'section-title'), (k.innerHTML = s), V(D, k), b) ) { const e = E('span'); ((e.innerHTML = X(2, 3.5)), L(e, 'section-arrow'), V(D, e), (x.className += '--toggle')); const t = ve(s, c, d); let o = g.serviceCounterLabel; if (T > 0 && h(o)) { let e = E('span'); (L(e, 'badge'), L(e, 'service-counter'), A(e, l, !0), A(e, 'data-servicecounter', T), o && ((o = o.split('|')), (o = o.length > 1 && T > 1 ? o[1] : o[0]), A(e, 'data-counterlabel', o)), (e.innerHTML = T + (o ? ' ' + o : '')), V(k, e)); } if (w) { L(x, 'section--expandable'); var N = c + '-desc'; (A(k, 'aria-expanded', !1), A(k, 'aria-controls', N)); } V(D, t); } else (A(k, 'role', 'heading'), A(k, 'aria-level', '3')); V(x, D); } if (a) { var I = E('p'); (L(I, 'section-desc'), (I.innerHTML = a), V(M, I)); } if ( w && (A(M, l, 'true'), (M.id = N), ((e, t, o) => { B(k, f, () => { t.classList.contains('is-expanded') ? (F(t, 'is-expanded'), A(o, 'aria-expanded', 'false'), A(e, l, 'true')) : (j(t, 'is-expanded'), A(o, 'aria-expanded', 'true'), A(e, l, 'false')); }); })(M, x, k), m) ) { const e = E('table'), o = E('thead'), s = E('tbody'); if (p) { const t = E('caption'); (L(t, 'table-caption'), (t.innerHTML = p), e.appendChild(t)); } (L(e, 'section-table'), L(o, 'table-head'), L(s, 'table-body')); const a = _.headers, c = S(a), i = n.Ue.createDocumentFragment(), l = E('tr'); for (const e of c) { const o = a[e], n = E('th'); ((n.id = 'cc__row-' + o + t), A(n, 'scope', 'col'), L(n, 'table-th'), (n.innerHTML = o), V(i, n)); } (V(l, i), V(o, l)); const d = n.Ue.createDocumentFragment(); for (const e of u) { const o = E('tr'); L(o, 'table-tr'); for (const n of c) { const s = a[n], c = e[n], i = E('td'), l = E(r); (L(i, 'table-td'), A(i, 'data-column', s), A(i, 'headers', 'cc__row-' + s + t), l.insertAdjacentHTML('beforeend', c), V(i, l), V(o, i)); } V(d, o); } (V(s, d), V(e, o), V(e, s), V(M, e)); } (w || a) && V(x, M); const P = n.Pe || n.Ge; (b ? (H || ((H = E(r)), L(H, 'section-toggles')), H.appendChild(x)) : (H = null), V(P, H || x)); }), y && (n.ze || ((n.ze = E(i)), L(n.ze, 'btn'), A(n.ze, _, 'all'), V(k, n.ze), B(n.ze, f, () => u('all'))), (n.ze.innerHTML = y)), w && (n.Le || ((n.Le = E(i)), L(n.Le, 'btn'), A(n.Le, _, 'necessary'), V(k, n.Le), B(n.Le, f, () => u([]))), (n.Le.innerHTML = w)), x && (n.qe || ((n.qe = E(i)), L(n.qe, 'btn'), L(n.qe, 'btn--secondary'), A(n.qe, _, 'save'), V(N, n.qe), B(n.qe, f, () => u())), (n.qe.innerHTML = x)), n.Pe && (n.we.replaceChild(n.Pe, n.Ge), (n.Ge = n.Pe)), ge(1), o.N || ((o.N = !0), te(m.re.ue, p, n.we), t(e), V(n.Ce, n.Fe), Y(n.we), setTimeout(() => j(n.Fe, 'cc--anim'), 100)), ee(2)); }; function ve(e, t, o, n, s) { const a = m.o, r = m.ne, i = E('label'), d = E('input'), _ = E('span'), u = E('span'), p = E('span'), g = E('span'), b = E('span'); if ( ((g.innerHTML = X(1, 3)), (b.innerHTML = X(0, 3)), (d.type = 'checkbox'), j(i, 'section__toggle-wrapper'), j(d, 'section__toggle'), j(g, 'toggle__icon-on'), j(b, 'toggle__icon-off'), j(_, 'toggle__icon'), j(u, 'toggle__icon-circle'), j(p, 'toggle__label'), A(_, l, 'true'), n ? (j(i, 'toggle-service'), A(d, c, s), (r.ae[s][t] = d)) : (r.se[t] = d), n ? ((e) => { B(d, 'change', () => { const t = r.ae[e], o = r.se[e]; a.Z[e] = []; for (let o in t) { const n = t[o]; n.checked && a.Z[e].push(n.value); } o.checked = a.Z[e].length > 0; }); })(s) : ((e) => { B(d, f, () => { const t = r.ae[e], o = d.checked; a.Z[e] = []; for (let n in t) ((t[n].checked = o), o && a.Z[e].push(n)); }); })(t), (d.value = t), (p.textContent = e.replace(/<.*>.*<\/.*>/gm, '')), V(u, b), V(u, g), V(_, u), a.T) ) (o.readOnly || o.enabled) && (d.checked = !0); else if (n) { const e = a.Y[s]; d.checked = o.readOnly || v(e, t); } else v(a.R, t) && (d.checked = !0); return (o.readOnly && (d.disabled = !0), V(i, d), V(i, _), V(i, p), i); } const ye = () => { const e = E('span'); return (m.ne.Ke || (m.ne.Ke = e), e); }, he = (e, t) => { const o = m.o, n = m.ne, { hide: s, showPreferences: a, acceptCategory: c } = e, p = o.u && o.u.consentModal; if (!p) return; const g = p.acceptAllBtn, b = p.acceptNecessaryBtn, v = p.showPreferencesBtn, y = p.closeIconLabel, h = p.footer, C = p.label, w = p.title, S = (e) => { (s(), c(e)); }; if (!n.Qe) { ((n.Qe = E(r)), (n.he = E(r)), (n.We = E(r)), (n.Xe = E(r)), (n.Ye = E(r)), j(n.Qe, 'cm-wrapper'), j(n.he, 'cm'), I(n.We, 'body'), I(n.Xe, 'texts'), I(n.Ye, 'btns'), A(n.he, 'role', 'dialog'), A(n.he, 'aria-modal', 'true'), A(n.he, l, 'false'), A(n.he, 'aria-describedby', 'cm__desc'), C ? A(n.he, 'aria-label', C) : w && A(n.he, 'aria-labelledby', 'cm__title')); const e = 'box', t = o.i.guiOptions, s = t && t.consentModal, a = ((s && s.layout) || e).split(' ')[0] === e; (w && y && a && (n.Ie || ((n.Ie = E(i)), (n.Ie.innerHTML = X()), I(n.Ie, 'btn'), I(n.Ie, 'btn--close'), B(n.Ie, f, () => { S([]); }), V(n.We, n.Ie)), A(n.Ie, 'aria-label', y)), V(n.We, n.Xe), (g || b || v) && V(n.We, n.Ye), (n.be = E(r)), A(n.be, 'tabIndex', -1), V(n.he, n.be), V(n.he, n.We), V(n.Qe, n.he)); } w && (n.Ze || ((n.Ze = E('h2')), (n.Ze.className = n.Ze.id = 'cm__title'), V(n.Xe, n.Ze)), (n.Ze.innerHTML = w)); let x = p.description; if ( (x && (o.V && (x = x.replace('{{revisionMessage}}', o.j ? '' : p.revisionMessage || '')), n.et || ((n.et = E('p')), (n.et.className = n.et.id = 'cm__desc'), V(n.Xe, n.et)), (n.et.innerHTML = x)), g && (n.tt || ((n.tt = E(i)), V(n.tt, ye()), I(n.tt, 'btn'), A(n.tt, _, 'all'), B(n.tt, f, () => { S('all'); })), (n.tt.firstElementChild.innerHTML = g)), b && (n.je || ((n.je = E(i)), V(n.je, ye()), I(n.je, 'btn'), A(n.je, _, 'necessary'), B(n.je, f, () => { S([]); })), (n.je.firstElementChild.innerHTML = b)), v && (n.ot || ((n.ot = E(i)), V(n.ot, ye()), I(n.ot, 'btn'), I(n.ot, 'btn--secondary'), A(n.ot, _, 'show'), B(n.ot, 'mouseenter', () => { o.N || be(e, t); }), B(n.ot, f, a)), (n.ot.firstElementChild.innerHTML = v)), n.nt || ((n.nt = E(r)), I(n.nt, d), g && V(n.nt, n.tt), b && V(n.nt, n.je), (g || b) && V(n.We, n.nt), V(n.Ye, n.nt)), n.ot && !n.st && ((n.st = E(r)), n.je && n.tt ? (I(n.st, d), V(n.st, n.ot), V(n.Ye, n.st)) : (V(n.nt, n.ot), I(n.nt, d + '--uneven'))), h) ) { if (!n.ct) { let e = E(r), t = E(r); ((n.ct = E(r)), I(e, 'footer'), I(t, 'links'), I(n.ct, 'link-group'), V(t, n.ct), V(e, t), V(n.he, e)); } n.ct.innerHTML = h; } (ge(0), o.D || ((o.D = !0), te(m.re.ue, u, n.he), t(e), V(n.Ce, n.Qe), Y(n.he), setTimeout(() => j(n.Qe, 'cc--anim'), 100)), ee(1), U(n.We, e, be, t)); }, Ce = (e) => { if (!h(e)) return null; if (e in m.o._) return e; let t = e.slice(0, 2); return t in m.o._ ? t : null; }, we = () => m.o.l || m.o.i.language.default, Se = (e) => { e && (m.o.l = e); }, xe = async (e) => { const t = m.o; let o = Ce(e) ? e : we(), n = t._[o]; if ( (h(n) ? (n = await (async (e) => { try { const t = await fetch(e); return await t.json(); } catch (e) { return (console.error(e), !1); } })(n)) : w(n) && (n = await n()), !n) ) throw `Could not load translation for the '${o}' language`; return ((t.u = n), Se(o), !0); }, Me = () => { let e = m.o.i.language.rtl, t = m.ne.Ce; e && t && (y(e) || (e = [e]), v(e, m.o.l) ? j(t, 'cc--rtl') : F(t, 'cc--rtl')); }, Te = () => { const e = m.ne; if (e.Ce) return; ((e.Ce = E(r)), (e.Ce.id = 'cc-main'), e.Ce.setAttribute('data-nosnippet', ''), Me()); let t = m.o.i.root; (t && h(t) && (t = document.querySelector(t)), (t || e.Ue.body).appendChild(e.Ce)); }, De = (e) => oe(() => localStorage.removeItem(e)), ke = (e, t) => { if (t instanceof RegExp) return e.filter((e) => t.test(e)); { const o = b(e, t); return o > -1 ? [e[o]] : []; } }, Ee = (e) => { const { hostname: t, protocol: o } = location, { name: n, path: s, domain: a, sameSite: c, useLocalStorage: r, secure: i } = m.t.cookie, l = e ? (() => { const e = m.o.S, t = e ? new Date() - e : 0; return 864e5 * $() - t; })() : 864e5 * $(), d = new Date(); (d.setTime(d.getTime() + l), (m.o.p.expirationTime = d.getTime())); const f = JSON.stringify(m.o.p); let _ = n + '=' + encodeURIComponent(f) + (0 !== l ? '; expires=' + d.toUTCString() : '') + '; Path=' + s + '; SameSite=' + c; (v(t, '.') && (_ += '; Domain=' + a), i && 'https:' === o && (_ += '; Secure'), r ? ((e, t) => { oe(() => localStorage.setItem(e, t)); })(n, f) : (document.cookie = _), m.o.p); }, Ae = (e, t, o) => { if (0 === e.length) return; const n = o || m.t.cookie.domain, s = t || m.t.cookie.path, a = 'www.' === n.slice(0, 4), c = a && n.substring(4), r = (e, t) => { (t && '.' !== t.slice(0, 1) && (t = '.' + t), (document.cookie = e + '=; path=' + s + (t ? '; domain=' + t : '') + '; expires=Thu, 01 Jan 1970 00:00:01 GMT;')); }; for (const t of e) (r(t, o), o || r(t, n), a && r(t, c)); }, Ne = (e) => { const t = e || m.t.cookie.name, o = m.t.cookie.useLocalStorage; return ((e, t) => { let o; return ((o = oe(() => JSON.parse(t ? e : decodeURIComponent(e)), !0) || {}), o); })(o ? ((n = t), oe(() => localStorage.getItem(n)) || '') : He(t, !0), o); var n; }, He = (e, t) => { const o = document.cookie.match('(^|;)\\s*' + e + '\\s*=\\s*([^;]+)'); return o ? (t ? o.pop() : e) : ''; }, Ve = (e) => { const t = document.cookie.split(/;\s*/), o = []; for (const n of t) { let t = n.split('=')[0]; e ? oe(() => { e.test(t) && o.push(t); }) : o.push(t); } return o; }, je = (e, n = []) => { (((e, t) => { const { O: o, R: n, B: s, N: a, Z: c, $: r, X: i } = m.o; let l = []; if (e) { y(e) ? l.push(...e) : h(e) && (l = 'all' === e ? o : [e]); for (const e of o) c[e] = v(l, e) ? S(i[e]) : []; } else ((l = [...n, ...r]), a && (l = (() => { const e = m.ne.se; if (!e) return []; let t = []; for (let o in e) e[o].checked && t.push(o); return t; })())); ((l = l.filter((e) => !v(o, e) || !v(t, e))), l.push(...s), J(l)); })(e, n), (() => { const e = m.o, { Z: t, B: o, Y: n, X: s, O: a } = e, c = a; e.te = P(n); for (const a of c) { const c = s[a], r = S(c), i = t[a] && t[a].length > 0, l = v(o, a); if (0 !== r.length) { if (((n[a] = []), l)) n[a].push(...r); else if (i) { const e = t[a]; n[a].push(...e); } else n[a] = e.Z[a]; n[a] = x(n[a]); } } })(), (() => { const e = m.o; e.I = m.t.mode === o && e.T ? G(e.$, e.R) : G(e.R, e.p.categories); let n = e.I.length > 0, s = !1; for (const t of e.O) ((e.ee[t] = G(e.Y[t], e.te[t])), e.ee[t].length > 0 && (s = !0)); const a = m.ne.se; for (const t in a) a[t].checked = v(e.R, t); for (const t of e.O) { const o = m.ne.ae[t], n = e.Y[t]; for (const e in o) o[e].checked = v(n, e); } (e.C || (e.C = new Date()), e.M || (e.M = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (e) => (e ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (e / 4)))).toString( 16, ), )), (e.p = { categories: P(e.R), revision: m.t.revision, data: e.h, consentTimestamp: e.C.toISOString(), consentId: e.M, services: P(e.Y), languageCode: m.o.l, }), e.S && (e.p.lastConsentTimestamp = e.S.toISOString())); let c = !1; const r = n || s; ((e.T || r) && (e.T && ((e.T = !1), (c = !0)), (e.S = e.S ? new Date() : e.C), (e.p.lastConsentTimestamp = e.S.toISOString()), Ee(), m.t.autoClearCookies && (c || r) && ((e) => { const t = m.o, o = Ve(), n = ((e) => { const t = m.o; return (e ? t.O : t.I).filter((e) => { const o = t.P[e]; return !!o && !o.readOnly && !!o.autoClear; }); })(e); for (const e in t.ee) for (const n of t.ee[e]) { const s = t.X[e][n].cookies; if (!v(t.Y[e], n) && s) for (const e of s) { const t = ke(o, e.name); Ae(t, e.path, e.domain); } } for (const s of n) { const n = t.P[s].autoClear, a = (n && n.cookies) || [], c = v(t.I, s), r = !v(t.R, s), i = c && r; if (e ? r : i) { n.reloadPage && i && (t.L = !0); for (const e of a) { const t = ke(o, e.name); Ae(t, e.path, e.domain); } } } })(c), ne()), (c && (te(m.re.ie), te(m.re.le), m.t.mode === t)) || (r && te(m.re.de), e.L && ((e.L = !1), location.reload()))); })()); }, Ie = (e) => { const t = m.o.T ? [] : m.o.R; return v(t, e); }, Le = (e, t) => { const o = m.o.T ? [] : m.o.Y[t] || []; return v(o, e); }, Fe = (e, t, o) => { let n = []; const s = (e) => { if (h(e)) { let t = He(e); '' !== t && n.push(t); } else n.push(...Ve(e)); }; if (y(e)) for (let t of e) s(t); else s(e); Ae(n, t, o); }, Pe = (e) => { const { ne: t, o: o } = m; if (!o.k) { if (!o.D) { if (!e) return; he($e, Te); } ((o.k = !0), (o.J = M()), o.v && Q(!0), q(t.he, 1), j(t.ye, n), A(t.he, l, 'false'), setTimeout(() => { z(m.ne.be); }, 100), te(m.re.fe, u)); } }, Oe = () => { const { ne: e, o: t, re: o } = m; t.k && ((t.k = !1), t.v && Q(), z(e.Ke, !0), F(e.ye, n), A(e.he, l, 'true'), z(t.J), (t.J = null), te(o._e, u)); }, Re = () => { const e = m.o; e.A || (e.N || be($e, Te), (e.A = !0), e.k ? (e.U = M()) : (e.J = M()), q(m.ne.we, 2), j(m.ne.ye, s), A(m.ne.we, l, 'false'), setTimeout(() => { z(m.ne.ve); }, 100), te(m.re.fe, p)); }, Be = () => { const e = m.o; e.A && ((e.A = !1), (() => { const e = Je(), t = m.o.P, o = m.ne.se, n = m.ne.ae, s = (e) => v(m.o.$, e); for (const a in o) { const c = !!t[a].readOnly; o[a].checked = c || (e ? Ie(a) : s(a)); for (const t in n[a]) n[a][t].checked = c || (e ? Le(t, a) : s(a)); } })(), z(m.ne.$e, !0), F(m.ne.ye, s), A(m.ne.we, l, 'true'), e.k ? (z(e.U), (e.U = null)) : (z(e.J), (e.J = null)), te(m.re._e, p)); }; var $e = { show: Pe, hide: Oe, showPreferences: Re, hidePreferences: Be, acceptCategory: je }; const Ge = (e, t) => { const o = Ne(t); return e ? o[e] : o; }, Je = () => !m.o.T; ((e.acceptCategory = je), (e.acceptService = (e, t) => { const { O: o, X: n } = m.o; if (!(e && t && h(t) && v(o, t) && 0 !== S(n[t]).length)) return !1; (((e, t) => { const o = m.o, { X: n, Z: s, N: a } = o, c = m.ne.ae[t] || {}, r = m.ne.se[t] || {}, i = S(n[t]); if (((s[t] = []), h(e))) { if ('all' === e) { if ((s[t].push(...i), a)) for (let e in c) ((c[e].checked = !0), k(c[e])); } else if ((v(i, e) && s[t].push(e), a)) for (let t in c) ((c[t].checked = e === t), k(c[t])); } else if (y(e)) for (let o of i) { const n = v(e, o); (n && s[t].push(o), a && ((c[o].checked = n), k(c[o]))); } const l = 0 === s[t].length; ((o.R = l ? o.R.filter((e) => e !== t) : x([...o.R, t])), a && ((r.checked = !l), k(r))); })(e, t), je()); }), (e.acceptedCategory = Ie), (e.acceptedService = Le), (e.eraseCookies = Fe), (e.getConfig = (e) => { const t = m.t, o = m.o.i; return e ? t[e] || o[e] : { ...t, ...o, cookie: { ...t.cookie } }; }), (e.getCookie = Ge), (e.getUserPreferences = () => { const { F: e, Y: t } = m.o, { accepted: o, rejected: n } = (() => { const { T: e, R: t, O: o } = m.o; return { accepted: t, rejected: e ? [] : o.filter((e) => !v(t, e)) }; })(); return P({ acceptType: e, acceptedCategories: o, rejectedCategories: n, acceptedServices: t, rejectedServices: O(), }); }), (e.hide = Oe), (e.hidePreferences = Be), (e.loadScript = (e, t) => { let o = document.querySelector('script[src="' + e + '"]'); return new Promise((n) => { if (o) return n(!0); if (((o = E('script')), C(t))) for (const e in t) A(o, e, t[e]); ((o.onload = () => n(!0)), (o.onerror = () => { (o.remove(), n(!1)); }), (o.src = e), V(document.head, o)); }); }), (e.reset = (e) => { const { Ce: t, ye: o } = m.ne, { name: c, path: r, domain: i, useLocalStorage: l } = m.t.cookie; e && (l ? De(c) : Fe(c, r, i)); for (const { pe: e, ge: t, me: o } of m.o.m) e.removeEventListener(t, o); (t && t.remove(), o && o.classList.remove(a, s, n)); const d = new g(); for (const e in m) m[e] = d[e]; window._ccRun = !1; }), (e.run = async (e) => { const { o: t, t: n, re: s } = m, a = window; if (!a._ccRun) { if ( ((a._ccRun = !0), ((e) => { const { ne: t, t: n, o: s } = m, a = n, r = s, { cookie: i } = a, l = m.ce, d = e.cookie, f = e.categories, _ = S(f) || [], u = navigator, p = document; ((t.Ue = p), (t.ye = p.documentElement), (i.domain = location.hostname), (r.i = e), (r.P = f), (r.O = _), (r._ = e.language.translations), (r.v = !!e.disablePageInteraction), (l.ie = e.onFirstConsent), (l.le = e.onConsent), (l.de = e.onChange), (l._e = e.onModalHide), (l.fe = e.onModalShow), (l.ue = e.onModalReady)); const { mode: g, autoShow: b, lazyHtmlGeneration: y, autoClearCookies: h, revision: w, manageScriptTags: x, hideFromBots: M, } = e; (g === o && (a.mode = g), 'boolean' == typeof h && (a.autoClearCookies = h), 'boolean' == typeof x && (a.manageScriptTags = x), 'number' == typeof w && w >= 0 && ((a.revision = w), (r.V = !0)), 'boolean' == typeof b && (a.autoShow = b), 'boolean' == typeof y && (a.lazyHtmlGeneration = y), !1 === M && (a.hideFromBots = !1), !0 === a.hideFromBots && u && (r.G = (u.userAgent && /bot|crawl|spider|slurp|teoma/i.test(u.userAgent)) || u.webdriver), C(d) && (a.cookie = { ...i, ...d }), a.autoClearCookies, r.V, a.manageScriptTags, ((e) => { const { P: t, X: o, Y: n, Z: s, B: a } = m.o; for (let c of e) { const e = t[c], r = e.services || {}, i = (C(r) && S(r)) || []; ((o[c] = {}), (n[c] = []), (s[c] = []), e.readOnly && (a.push(c), (n[c] = i)), (m.ne.ae[c] = {})); for (let e of i) { const t = r[e]; ((t.Se = !1), (o[c][e] = t)); } } })(_), (() => { if (!m.t.manageScriptTags) return; const e = m.o, t = D(document, 'script[' + c + ']'); for (const o of t) { let t = H(o, c), n = o.dataset.service || '', s = !1; if ( (t && '!' === t.charAt(0) && ((t = t.slice(1)), (s = !0)), '!' === n.charAt(0) && ((n = n.slice(1)), (s = !0)), v(e.O, t) && (e.oe.push({ Me: o, xe: !1, ke: s, Te: t, De: n }), n)) ) { const o = e.X[t]; o[n] || (o[n] = { Se: !1 }); } } })(), Se( (() => { const e = m.o.i.language.autoDetect; if (e) { const t = { browser: navigator.language, document: document.documentElement.lang, }, o = Ce(t[e]); if (o) return o; } return we(); })(), )); })(e), t.G) ) return; (() => { const e = m.o, t = m.t, n = Ne(), { categories: s, services: a, consentId: c, consentTimestamp: r, lastConsentTimestamp: i, data: l, revision: d, } = n, f = y(s); ((e.p = n), (e.M = c)); const _ = !!c && h(c); ((e.C = r), e.C && (e.C = new Date(r)), (e.S = i), e.S && (e.S = new Date(i)), (e.h = void 0 !== l ? l : null), e.V && _ && d !== t.revision && (e.j = !1), (e.T = !(_ && e.j && e.C && e.S && f)), t.cookie.useLocalStorage && !e.T && ((e.T = new Date().getTime() > (n.expirationTime || 0)), e.T && De(t.cookie.name)), e.T, (() => { const e = m.o; for (const t of e.O) { const n = e.P[t]; if (n.readOnly || n.enabled) { e.$.push(t); const n = e.X[t] || {}; for (let s in n) (e.Z[t].push(s), e.i.mode === o && e.Y[t].push(s)); } } })(), e.T ? t.mode === o && (e.R = [...e.$]) : ((e.Y = { ...e.Y, ...a }), (e.Z = { ...e.Y }), J([...e.B, ...s]))); })(); const i = Je(); if (!(await xe())) return !1; if ( (U(null, (r = $e), be, Te), m.o.T && he(r, Te), m.t.lazyHtmlGeneration || be(r, Te), n.autoShow && !i && Pe(!0), i) ) return (ne(), te(s.le)); n.mode === o && ne(t.$); } var r; }), (e.setCookieData = (e) => { let t, o = e.value, n = e.mode, s = !1; const a = m.o; if ('update' === n) { a.h = t = Ge('data'); const e = typeof t == typeof o; if (e && 'object' == typeof t) { !t && (t = {}); for (let e in o) t[e] !== o[e] && ((t[e] = o[e]), (s = !0)); } else (!e && t) || t === o || ((t = o), (s = !0)); } else ((t = o), (s = !0)); return (s && ((a.h = t), (a.p.data = t), Ee(!0)), s); }), (e.setLanguage = async (e, t) => { if (!Ce(e)) return !1; const o = m.o; return !( (e === we() && !0 !== t) || !(await xe(e)) || (Se(e), o.D && he($e, Te), o.N && be($e, Te), Me(), 0) ); }), (e.show = Pe), (e.showPreferences = Re), (e.validConsent = Je), (e.validCookie = (e) => '' !== He(e, !0))); }), 'object' == typeof exports && 'undefined' != typeof module ? t(exports) : 'function' == typeof define && define.amd ? define(['exports'], t) : t(((e = 'undefined' != typeof globalThis ? globalThis : e || self).CookieConsent = {})));