"use strict";
function _typeof(e) {
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
return typeof e
} : function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
}, _typeof(e)
}
!function () {
var e = Object.defineProperty;
window.pnFullTPVersion = !0, "function" != typeof Object.assign && Object.defineProperty(Object, "assign", {
value: function (e, n) {
if (null == e) throw new TypeError("Cannot convert undefined or null to object");
for (var t = Object(e), r = 1; r < arguments.length; r++) {
var o = arguments[r];
if (null != o) for (var i in o) Object.prototype.hasOwnProperty.call(o, i) && (t[i] = o[i])
}
return t
}, writable: !0, configurable: !0
});
var n = new WeakMap;
function t(e, t) {
return n.get(e) && n.get(e).get(t)
}
function r(e, n, r) {
if (void 0 === n) throw new TypeError;
var o = t(n, r);
return o && o.get(e)
}
function o(e, r, o, i) {
if (i && !["string", "symbol"].includes(_typeof(i))) throw new TypeError;
(t(o, i) || function (e, t) {
var r = n.get(e) || new Map;
n.set(e, r);
var o = r.get(t) || new Map;
return r.set(t, o), o
}(o, i)).set(e, r)
}
function i(e, n, t) {
return r(e, n, t) ? r(e, n, t) : Object.getPrototypeOf(n) ? i(e, Object.getPrototypeOf(n), t) : void 0
}
var a, s, c = {
decorate: function (e, n, t, r) {
if (!Array.isArray(e) || 0 === e.length) throw new TypeError;
return void 0 !== t ? function (e, n, t, r) {
return e.reverse().forEach((function (e) {
r = e(n, t, r) || r
})), r
}(e, n, t, r) : "function" == typeof n ? function (e, n) {
return e.reverse().forEach((function (e) {
var t = e(n);
t && (n = t)
})), n
}(e, n) : void 0
}, defineMetadata: function (e, n, t, r) {
o(e, n, t, r)
}, getMetadata: function (e, n, t) {
return i(e, n, t)
}, getOwnMetadata: function (e, n, t) {
return r(e, n, t)
}, hasMetadata: function (e, n, t) {
return !!i(e, n, t)
}, hasOwnMetadata: function (e, n, t) {
return !!r(e, n, t)
}, metadata: function (e, n) {
return function (t, r) {
o(e, n, t, r)
}
}
};
window.Reflect = window.Reflect || {}, Object.assign(window.Reflect, c), (s = a || (a = {}))[s.Transient = 0] = "Transient", s[s.Singleton = 1] = "Singleton", s[s.ResolutionScoped = 2] = "ResolutionScoped", s[s.ContainerScoped = 3] = "ContainerScoped";
var u = a, l = function (e, n) {
return (l = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (e, n) {
e.__proto__ = n
} || function (e, n) {
for (var t in n) Object.prototype.hasOwnProperty.call(n, t) && (e[t] = n[t])
})(e, n)
};
function d(e, n) {
if ("function" != typeof n && null !== n) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null");
function t() {
this.constructor = e
}
l(e, n), e.prototype = null === n ? Object.create(n) : (t.prototype = n.prototype, new t)
}
var p = function () {
return p = Object.assign || function (e) {
for (var n, t = 1, r = arguments.length; t < r; t++) for (var o in n = arguments[t]) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);
return e
}, p.apply(this, arguments)
};
function f(e, n) {
var t = {};
for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && n.indexOf(r) < 0 && (t[r] = e[r]);
if (null != e && "function" == typeof Object.getOwnPropertySymbols) {
var o = 0;
for (r = Object.getOwnPropertySymbols(e); o < r.length; o++) n.indexOf(r[o]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[o]) && (t[r[o]] = e[r[o]])
}
return t
}
function m(e, n) {
return function (t, r) {
n(t, r, e)
}
}
function v(e, n) {
if ("object" == ("undefined" == typeof Reflect ? "undefined" : _typeof(Reflect)) && "function" == typeof Reflect.metadata) return Reflect.metadata(e, n)
}
function g(e, n, t, r) {
return new (t || (t = Promise))((function (o, i) {
function a(e) {
try {
c(r.next(e))
} catch (e) {
i(e)
}
}
function s(e) {
try {
c(r.throw(e))
} catch (e) {
i(e)
}
}
function c(e) {
e.done ? o(e.value) : function (e) {
return e instanceof t ? e : new t((function (n) {
n(e)
}))
}(e.value).then(a, s)
}
c((r = r.apply(e, n || [])).next())
}))
}
function h(e, n) {
var t, r, o, i, a = {
label: 0, sent: function () {
if (1 & o[0]) throw o[1];
return o[1]
}, trys: [], ops: []
};
return i = {
next: s(0),
throw: s(1),
return: s(2)
}, "function" == typeof Symbol && (i[Symbol.iterator] = function () {
return this
}), i;
function s(i) {
return function (s) {
return function (i) {
if (t) throw new TypeError("Generator is already executing.");
for (; a;) try {
if (t = 1, r && (o = 2 & i[0] ? r.return : i[0] ? r.throw || ((o = r.return) && o.call(r), 0) : r.next) && !(o = o.call(r, i[1])).done) return o;
switch (r = 0, o && (i = [2 & i[0], o.value]), i[0]) {
case 0:
case 1:
o = i;
break;
case 4:
return a.label++, {value: i[1], done: !1};
case 5:
a.label++, r = i[1], i = [0];
continue;
case 7:
i = a.ops.pop(), a.trys.pop();
continue;
default:
if (!(o = (o = a.trys).length > 0 && o[o.length - 1]) && (6 === i[0] || 2 === i[0])) {
a = 0;
continue
}
if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {
a.label = i[1];
break
}
if (6 === i[0] && a.label < o[1]) {
a.label = o[1], o = i;
break
}
if (o && a.label < o[2]) {
a.label = o[2], a.ops.push(i);
break
}
o[2] && a.ops.pop(), a.trys.pop();
continue
}
i = n.call(e, a)
} catch (e) {
i = [6, e], r = 0
} finally {
t = o = 0
}
if (5 & i[0]) throw i[1];
return {value: i[0] ? i[1] : void 0, done: !0}
}([i, s])
}
}
}
function y(e) {
var n = "function" == typeof Symbol && Symbol.iterator, t = n && e[n], r = 0;
if (t) return t.call(e);
if (e && "number" == typeof e.length) return {
next: function () {
return e && r >= e.length && (e = void 0), {value: e && e[r++], done: !e}
}
};
throw new TypeError(n ? "Object is not iterable." : "Symbol.iterator is not defined.")
}
function w(e, n) {
var t = "function" == typeof Symbol && e[Symbol.iterator];
if (!t) return e;
var r, o, i = t.call(e), a = [];
try {
for (; (void 0 === n || n-- > 0) && !(r = i.next()).done;) a.push(r.value)
} catch (e) {
o = {error: e}
} finally {
try {
r && !r.done && (t = i.return) && t.call(i)
} finally {
if (o) throw o.error
}
}
return a
}
function _() {
for (var e = [], n = 0; n < arguments.length; n++) e = e.concat(w(arguments[n]));
return e
}
function b(e, n, t) {
if (t || 2 === arguments.length) for (var r, o = 0, i = n.length; o < i; o++) (r || !(o in n)) && (r || (r = Array.prototype.slice.call(n, 0, o)), r[o] = n[o]);
return e.concat(r || Array.prototype.slice.call(n))
}
var k = "injectionTokens";
function C(e) {
return !!e.useClass
}
function I(e) {
return !!e.useFactory
}
var S = function () {
function e(e) {
this.wrap = e, this.reflectMethods = ["get", "getPrototypeOf", "setPrototypeOf", "getOwnPropertyDescriptor", "defineProperty", "has", "set", "deleteProperty", "apply", "construct", "ownKeys"]
}
return e.prototype.createProxy = function (e) {
var n, t = this, r = !1;
return new Proxy({}, this.createHandler((function () {
return r || (n = e(t.wrap()), r = !0), n
})))
}, e.prototype.createHandler = function (e) {
var n = {};
return this.reflectMethods.forEach((function (t) {
n[t] = function () {
for (var n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r];
return n[0] = e(), Reflect[t].apply(void 0, _(n))
}
})), n
}, e
}();
function E(e) {
return "string" == typeof e || "symbol" == _typeof(e)
}
function T(e) {
return "object" == _typeof(e) && "token" in e && "transform" in e
}
function P(e) {
return !!e.useToken
}
function x(e) {
return null != e.useValue
}
var A = function () {
function e() {
this._registryMap = new Map
}
return e.prototype.entries = function () {
return this._registryMap.entries()
}, e.prototype.getAll = function (e) {
return this.ensure(e), this._registryMap.get(e)
}, e.prototype.get = function (e) {
this.ensure(e);
var n = this._registryMap.get(e);
return n[n.length - 1] || null
}, e.prototype.set = function (e, n) {
this.ensure(e), this._registryMap.get(e).push(n)
}, e.prototype.setAll = function (e, n) {
this._registryMap.set(e, n)
}, e.prototype.has = function (e) {
return this.ensure(e), this._registryMap.get(e).length > 0
}, e.prototype.clear = function () {
this._registryMap.clear()
}, e.prototype.ensure = function (e) {
this._registryMap.has(e) || this._registryMap.set(e, [])
}, e
}(), O = A, M = function (e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return d(n, e), n
}(O), N = M, R = function () {
this.scopedResolutions = new Map
};
function L(e, n, t) {
var r = w(e.toString().match(/constructor\(([\w, ]+)\)/) || [], 2)[1], o = function (e, n) {
return null === e ? "at position #" + n : '"' + e.split(",")[n].trim() + '" at position #' + n
}(void 0 === r ? null : r, n);
return function (e, n, t) {
return void 0 === t && (t = " "), _([e], n.message.split("\n").map((function (e) {
return t + e
}))).join("\n")
}("Cannot inject the dependency " + o + ' of "' + e.name + '" constructor. Reason:', t)
}
var U = function (e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return d(n, e), n
}(O), D = function (e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return d(n, e), n
}(O), j = function () {
this.preResolution = new U, this.postResolution = new D
}, V = new Map, F = function () {
function e(e) {
this.parent = e, this._registry = new N, this.interceptors = new j, this.disposed = !1, this.disposables = new Set
}
return e.prototype.register = function (e, n, t) {
var r;
if (void 0 === t && (t = {lifecycle: u.Transient}), this.ensureNotDisposed(), r = function (e) {
return C(e) || x(e) || P(e) || I(e)
}(n) ? n : {useClass: n}, P(r)) for (var o = [e], i = r; null != i;) {
var a = i.useToken;
if (o.includes(a)) throw new Error("Token registration cycle detected! " + _(o, [a]).join(" -> "));
o.push(a);
var s = this._registry.get(a);
i = s && P(s.provider) ? s.provider : null
}
if ((t.lifecycle === u.Singleton || t.lifecycle == u.ContainerScoped || t.lifecycle == u.ResolutionScoped) && (x(r) || I(r))) throw new Error('Cannot use lifecycle "' + u[t.lifecycle] + '" with ValueProviders or FactoryProviders');
return this._registry.set(e, {provider: r, options: t}), this
}, e.prototype.registerType = function (e, n) {
return this.ensureNotDisposed(), E(n) ? this.register(e, {useToken: n}) : this.register(e, {useClass: n})
}, e.prototype.registerInstance = function (e, n) {
return this.ensureNotDisposed(), this.register(e, {useValue: n})
}, e.prototype.registerSingleton = function (e, n) {
if (this.ensureNotDisposed(), E(e)) {
if (E(n)) return this.register(e, {useToken: n}, {lifecycle: u.Singleton});
if (n) return this.register(e, {useClass: n}, {lifecycle: u.Singleton});
throw new Error('Cannot register a type name as a singleton without a "to" token')
}
var t = e;
return n && !E(n) && (t = n), this.register(e, {useClass: t}, {lifecycle: u.Singleton})
}, e.prototype.resolve = function (e, n) {
void 0 === n && (n = new R), this.ensureNotDisposed();
var t = this.getRegistration(e);
if (!t && E(e)) throw new Error('Attempted to resolve unregistered dependency token: "' + e.toString() + '"');
if (this.executePreResolutionInterceptor(e, "Single"), t) {
var r = this.resolveRegistration(t, n);
return this.executePostResolutionInterceptor(e, r, "Single"), r
}
if (function (e) {
return "function" == typeof e || e instanceof S
}(e)) {
r = this.construct(e, n);
return this.executePostResolutionInterceptor(e, r, "Single"), r
}
throw new Error("Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function.")
}, e.prototype.executePreResolutionInterceptor = function (e, n) {
var t, r;
if (this.interceptors.preResolution.has(e)) {
var o = [];
try {
for (var i = y(this.interceptors.preResolution.getAll(e)), a = i.next(); !a.done; a = i.next()) {
var s = a.value;
"Once" != s.options.frequency && o.push(s), s.callback(e, n)
}
} catch (e) {
t = {error: e}
} finally {
try {
a && !a.done && (r = i.return) && r.call(i)
} finally {
if (t) throw t.error
}
}
this.interceptors.preResolution.setAll(e, o)
}
}, e.prototype.executePostResolutionInterceptor = function (e, n, t) {
var r, o;
if (this.interceptors.postResolution.has(e)) {
var i = [];
try {
for (var a = y(this.interceptors.postResolution.getAll(e)), s = a.next(); !s.done; s = a.next()) {
var c = s.value;
"Once" != c.options.frequency && i.push(c), c.callback(e, n, t)
}
} catch (e) {
r = {error: e}
} finally {
try {
s && !s.done && (o = a.return) && o.call(a)
} finally {
if (r) throw r.error
}
}
this.interceptors.postResolution.setAll(e, i)
}
}, e.prototype.resolveRegistration = function (e, n) {
if (this.ensureNotDisposed(), e.options.lifecycle === u.ResolutionScoped && n.scopedResolutions.has(e)) return n.scopedResolutions.get(e);
var t, r = e.options.lifecycle === u.Singleton, o = e.options.lifecycle === u.ContainerScoped, i = r || o;
return t = x(e.provider) ? e.provider.useValue : P(e.provider) ? i ? e.instance || (e.instance = this.resolve(e.provider.useToken, n)) : this.resolve(e.provider.useToken, n) : C(e.provider) ? i ? e.instance || (e.instance = this.construct(e.provider.useClass, n)) : this.construct(e.provider.useClass, n) : I(e.provider) ? e.provider.useFactory(this) : this.construct(e.provider, n), e.options.lifecycle === u.ResolutionScoped && n.scopedResolutions.set(e, t), t
}, e.prototype.resolveAll = function (e, n) {
var t = this;
void 0 === n && (n = new R), this.ensureNotDisposed();
var r = this.getAllRegistrations(e);
if (!r && E(e)) throw new Error('Attempted to resolve unregistered dependency token: "' + e.toString() + '"');
if (this.executePreResolutionInterceptor(e, "All"), r) {
var o = r.map((function (e) {
return t.resolveRegistration(e, n)
}));
return this.executePostResolutionInterceptor(e, o, "All"), o
}
var i = [this.construct(e, n)];
return this.executePostResolutionInterceptor(e, i, "All"), i
}, e.prototype.isRegistered = function (e, n) {
return void 0 === n && (n = !1), this.ensureNotDisposed(), this._registry.has(e) || n && (this.parent || !1) && this.parent.isRegistered(e, !0)
}, e.prototype.reset = function () {
this.ensureNotDisposed(), this._registry.clear(), this.interceptors.preResolution.clear(), this.interceptors.postResolution.clear()
}, e.prototype.clearInstances = function () {
var e, n;
this.ensureNotDisposed();
try {
for (var t = y(this._registry.entries()), r = t.next(); !r.done; r = t.next()) {
var o = w(r.value, 2), i = o[0], a = o[1];
this._registry.setAll(i, a.filter((function (e) {
return !x(e.provider)
})).map((function (e) {
return e.instance = void 0, e
})))
}
} catch (n) {
e = {error: n}
} finally {
try {
r && !r.done && (n = t.return) && n.call(t)
} finally {
if (e) throw e.error
}
}
}, e.prototype.createChildContainer = function () {
var n, t;
this.ensureNotDisposed();
var r = new e(this);
try {
for (var o = y(this._registry.entries()), i = o.next(); !i.done; i = o.next()) {
var a = w(i.value, 2), s = a[0], c = a[1];
c.some((function (e) {
return e.options.lifecycle === u.ContainerScoped
})) && r._registry.setAll(s, c.map((function (e) {
return e.options.lifecycle === u.ContainerScoped ? {
provider: e.provider,
options: e.options
} : e
})))
}
} catch (e) {
n = {error: e}
} finally {
try {
i && !i.done && (t = o.return) && t.call(o)
} finally {
if (n) throw n.error
}
}
return r
}, e.prototype.beforeResolution = function (e, n, t) {
void 0 === t && (t = {frequency: "Always"}), this.interceptors.preResolution.set(e, {
callback: n,
options: t
})
}, e.prototype.afterResolution = function (e, n, t) {
void 0 === t && (t = {frequency: "Always"}), this.interceptors.postResolution.set(e, {
callback: n,
options: t
})
}, e.prototype.dispose = function () {
return g(this, void 0, void 0, (function () {
var e;
return h(this, (function (n) {
switch (n.label) {
case 0:
return this.disposed = !0, e = [], this.disposables.forEach((function (n) {
var t = n.dispose();
t && e.push(t)
})), [4, Promise.all(e)];
case 1:
return n.sent(), [2]
}
}))
}))
}, e.prototype.getRegistration = function (e) {
return this.isRegistered(e) ? this._registry.get(e) : this.parent ? this.parent.getRegistration(e) : null
}, e.prototype.getAllRegistrations = function (e) {
return this.isRegistered(e) ? this._registry.getAll(e) : this.parent ? this.parent.getAllRegistrations(e) : null
}, e.prototype.construct = function (e, n) {
var t = this;
if (e instanceof S) return e.createProxy((function (e) {
return t.resolve(e, n)
}));
var r = function () {
var r = V.get(e);
if (!r || 0 === r.length) {
if (0 === e.length) return new e;
throw new Error('TypeInfo not known for "' + e.name + '"')
}
var o = r.map(t.resolveParams(n, e));
return new (e.bind.apply(e, _([void 0], o)))
}();
return function (e) {
return "function" == typeof e.dispose && !(e.dispose.length > 0)
}(r) && this.disposables.add(r), r
}, e.prototype.resolveParams = function (e, n) {
var t = this;
return function (r, o) {
var i, a, s;
try {
return function (e) {
return "object" == _typeof(e) && "token" in e && "multiple" in e
}(r) ? T(r) ? r.multiple ? (i = t.resolve(r.transform)).transform.apply(i, _([t.resolveAll(r.token)], r.transformArgs)) : (a = t.resolve(r.transform)).transform.apply(a, _([t.resolve(r.token, e)], r.transformArgs)) : r.multiple ? t.resolveAll(r.token) : t.resolve(r.token, e) : T(r) ? (s = t.resolve(r.transform, e)).transform.apply(s, _([t.resolve(r.token, e)], r.transformArgs)) : t.resolve(r, e)
} catch (e) {
throw new Error(L(n, o, e))
}
}
}, e.prototype.ensureNotDisposed = function () {
if (this.disposed) throw new Error("This container has been disposed, you cannot interact with a disposed container")
}, e
}(), B = new F;
var q = function (e) {
return function (e, n) {
return function (t, r, o) {
var i = Reflect.getOwnMetadata(k, t) || {};
i[o] = n ? {
token: e,
transform: n.transformToken,
transformArgs: n.args || []
} : e, Reflect.defineMetadata(k, i, t)
}
}(e)
};
var z = function () {
return function (e) {
V.set(e, function (e) {
var n = Reflect.getMetadata("design:paramtypes", e) || [], t = Reflect.getOwnMetadata(k, e) || {};
return Object.keys(t).forEach((function (e) {
n[+e] = t[e]
})), n
}(e))
}
};
var H = function (e) {
return void 0 === e && (e = []), function (n) {
return e.forEach((function (e) {
var n = e.token, t = e.options, r = f(e, ["token", "options"]);
return B.register(n, r, t)
})), n
}
};
var W, G, J, Q, X = function () {
return function (e) {
z()(e), B.registerSingleton(e)
}
};
if ("undefined" == typeof Reflect || !Reflect.getMetadata) throw new Error("tsyringe requires a reflect polyfill. Please add 'import \"reflect-metadata\"' to the top of your entry point.");
if (window.pnInitPerformance = performance.now(), window.pnHasPolyfilled || (window.pnHasPolyfilled = !1), window.pnFullTPVersion || (window.pnFullTPVersion = !1), void 0 !== window.pn && void 0 !== window.pn.container) throw new Error("Piano SDK is loaded twice on same page. Try to fix that to prevent the message.");
!window.pnFullTPVersion && "undefined" != typeof Proxy && (W = function () {
return G
}, G = new Proxy({}, {
get: function (e, n, t) {
return "isv" === n || W
}, apply: function (e, n, t) {
return G
}
}), B.resolve = new Proxy(B.resolve, {
apply: function (e, n, t) {
if (B.isRegistered(t[0])) return Reflect.apply(e, n, t);
B.register(t[0], {useValue: G});
var r = B.resolve(t[0]);
return Q[t[0]] = r, r
}
})), J = window.pn || {}, (Q = window.pn = {}).container = B, Q.singleton = X, Q.injectable = z, Q.inject = q, Q.registry = H, Q.instanceCachingFactory = function (e) {
var n;
return function (t) {
return null == n && (n = e(t)), n
}
}, Q.predefinedOptions = J, B.register("predefinedOptions", {useValue: J});
var Y, $, K = !1;
try {
if (!window.pnHasPolyfilled) {
if ("undefined" == typeof Proxy) throw new Error("The browser cannot Proxy");
if (new Promise((function (e) {
})), Object.assign({}, {}), [""].includes(""), !Element.prototype.closest) throw new Error("There is no closest method of a DOM element")
}
} catch (s) {
K = !0
}
if (K) throw Y = function () {
var e, n = document.querySelectorAll("script");
if (n.length) for (var t = 0, r = n; t < r.length; t++) {
var o = r[t],
i = null === (e = null == o ? void 0 : o.src) || void 0 === e ? void 0 : e.match(/^.*?(tinypass.com|piano.io)/i);
if (i) return i[0]
}
return "https://sandbox.tinypass.com"
}(), delete window.pn, ($ = document.createElement("script")).type = "text/javascript", $.async = !0, $.src = "".concat(Y, "/api/piano.es5.js"), document.getElementsByTagName("head")[0].appendChild($), new Error("Load full version of piano SDK");
var Z, ee = (Z = function (e) {
return new Promise((function (n, t) {
var r = document.createElement("style");
r.type = "text/css", r.innerHTML = e, r.onload = n, r.onerror = t, document.getElementsByTagName("head")[0].appendChild(r)
}))
}, {
name: "css", loadOfferCss: function () {
Z(".tp-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#121214;z-index:300000;opacity:0;transition:opacity .25s linear}.tp-backdrop.tp-active{opacity:.9}.tp-modal .tp-close.tp-square{background:#ccc;border-radius:0;border:0;top:0;right:-40px}.tp-modal .tp-close{display:none;position:absolute;top:-15px;right:-15px;width:30px;height:30px;background:#fff url(\"data:image/svg+xml,%3Csvg width='20' height='20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.51 7.208l-.706-.708-2.798 2.798L7.207 6.5l-.707.707 2.798 2.799L6.503 12.8l.707.707 2.796-2.795 2.792 2.792.707-.707-2.792-2.792 2.798-2.798z' fill='%23000' fill-opacity='.4'/%3E%3C/svg%3E\") center center no-repeat;border:none;box-shadow:0 0 10px rgba(28,37,68,.15);outline:none;z-index:300100;border-radius:40px;opacity:0;cursor:pointer;transform:scale(.25);-webkit-appearance:none;-moz-appearance:none;appearance:none}.tp-modal .tp-close:hover,.tp-modal .tp-close:focus{box-shadow:0 0 10px 2px rgba(28,37,68,.15)}.tp-modal .tp-close:focus{border:1px solid}.tp-modal .tp-close.tp-active{display:block;opacity:1;transform:scale(1)}.tp-modal .tp-iframe-wrapper[dir=rtl] .tp-close{right:initial;left:-20px}.tp-modal .tp-iframe-wrapper.piano-id-modal-ver-2 .tp-close{top:0;right:0;width:64px;height:64px;box-shadow:none;outline:none;border-radius:0;border-left:1px solid rgba(15,15,21,.2);background:url(\"data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg %3E%3Cpath d='M3 3L13 13M13 3L3 13' stroke='%230F0F15' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E%0A\") center center no-repeat;opacity:.3}.tp-modal .tp-iframe-wrapper.piano-id-modal-ver-2 .tp-close.tp-active{opacity:.3}.tp-modal .tp-iframe-wrapper.piano-id-modal-ver-2 .tp-close:hover,.tp-modal .tp-iframe-wrapper.piano-id-modal-ver-2 .tp-close:focus{box-shadow:none;border:none;border-left:1px solid rgba(15,15,21,.06);opacity:1}.tp-modal .tp-iframe-wrapper.piano-id-modal-ver-2[dir=rtl] .tp-close{right:auto;left:0;border-left:none;border-right:1px solid rgba(15,15,21,.2)}.tp-modal .tp-iframe-wrapper.piano-id-modal-ver-2[dir=rtl] .tp-close:hover,.tp-modal .tp-iframe-wrapper.piano-id-modal-ver-2[dir=rtl] .tp-close:focus{border-left:none;border-right:1px solid rgba(15,15,21,.06)}.tp-modal{z-index:300050}@media screen and (max-width: 650px){.tp-modal .tp-close{right:0}.tp-modal .tp-iframe-wrapper[dir=rtl] .tp-close{right:initial;left:0}}.tp-modal .tp-iframe-wrapper.tp-curtain{width:600px;height:480px}.tp-modal-open{overflow:hidden!important;height:100vh;-webkit-overflow-scrolling:touch}.tp-modal-open.tp-modal-resizing{-webkit-overflow-scrolling:auto}.tp-modal-close{overflow:auto}.tp-iframe-wrapper{position:relative;margin:50px auto;box-shadow:0 0 10px rgba(0,0,0,.21)}.tp-iframe-wrapper.no-shadow{box-shadow:unset}.tp-modal{overflow-x:hidden;overflow-y:scroll!important;display:none;position:fixed;top:0;bottom:0;left:0;right:0;transform:translateZ(0)}.tp-modal .tp-message{font-family:Graphik Web Regular,Helvetica,Arial,sans-serif;padding:10px}.tp-modal .tp-btn-container{padding-left:10px;padding-bottom:10px}.tp-cxense-placeholder-modal{width:100%;background-color:#fff;max-width:912px;display:block;overflow:hidden;height:auto;opacity:1}.tp-widget-placeholder>div:after{display:block;content:\"\";clear:both}.tp-btn{text-decoration:none;cursor:pointer;padding:0 18px;line-height:40px;border-collapse:separate;border-radius:4px;text-align:center;vertical-align:middle;display:inline-block;color:#fff;border:none;box-shadow:inset 0 -1px rgba(216,218,221,0);background:#3878D8;background-position:bottom;text-shadow:none;font-family:Graphik Web Regular,Helvetica,Arial,sans-serif;white-space:nowrap;outline:0}.tp-please-wait.tp-active{display:block;opacity:.9;transition:opacity .25s linear}.tp-please-wait{position:absolute;top:0;left:0;background-color:#999;opacity:0;width:100%;height:100%;display:none;text-align:center;color:#fff;font-weight:lighter;font-family:Open Sans,sans-serif;font-size:15px}.tp-please-wait.tp-overlap{position:fixed;z-index:300150}.tp-please-wait.tp-local-overlap{position:absolute}.tp-please-wait>.tp-icon{width:80px;height:80px;margin:100px auto 20px}.pn-spinner{color:gray;display:inline-block;position:relative;width:80px;height:80px}.pn-spinner div{transform-origin:40px 40px;animation:pn-spinner 1.2s linear infinite}.pn-spinner div:after{content:\" \";display:block;position:absolute;top:3px;left:37px;width:6px;height:18px;border-radius:20%;background:#fff}.pn-spinner div:nth-child(1){transform:rotate(0);animation-delay:-1.1s}.pn-spinner div:nth-child(2){transform:rotate(30deg);animation-delay:-1s}.pn-spinner div:nth-child(3){transform:rotate(60deg);animation-delay:-.9s}.pn-spinner div:nth-child(4){transform:rotate(90deg);animation-delay:-.8s}.pn-spinner div:nth-child(5){transform:rotate(120deg);animation-delay:-.7s}.pn-spinner div:nth-child(6){transform:rotate(150deg);animation-delay:-.6s}.pn-spinner div:nth-child(7){transform:rotate(180deg);animation-delay:-.5s}.pn-spinner div:nth-child(8){transform:rotate(210deg);animation-delay:-.4s}.pn-spinner div:nth-child(9){transform:rotate(240deg);animation-delay:-.3s}.pn-spinner div:nth-child(10){transform:rotate(270deg);animation-delay:-.2s}.pn-spinner div:nth-child(11){transform:rotate(300deg);animation-delay:-.1s}.pn-spinner div:nth-child(12){transform:rotate(330deg);animation-delay:0s}@keyframes pn-spinner{0%{opacity:1}to{opacity:0}}.tp-please-wait>.tp-icon.tp-centered{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tp-iframe-wrapper.no-width .tp-close,.tp-iframe-wrapper.no-height .tp-close,.tp-modal.no-width .tp-close,.tp-modal.no-height .tp-close{display:none}.tp-banner{position:fixed;bottom:0;left:0;width:100%}.tp-banner>.tp-container-inner,.tp-banner>.tp-container-inner>iframe{width:inherit!important}.tp-modal-overscroll-prevented{overscroll-behavior:contain;width:100%;overflow-x:unset;overflow-y:scroll}.tp-scroll-prevented{height:100vh;overflow:hidden;touch-action:none}.tp-body-scroll-prevented{touch-action:none}\n")
}
});
pn.container.register("css", {useValue: ee}), pn.css = pn.container.resolve("css");
var ne, te, re = function (e) {
return {}.toString.call(e).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
}, oe = Math.round(1e4 * Math.random()), ie = window.document, ae = /^(?:text|application)\/javascript/i,
se = /^(?:text|application)\/xml/i, ce = "application/json", ue = "text/html", le = /^\s*$/,
de = function e(n) {
var t = ke({}, n || {});
for (ne in e.settings) void 0 === t[ne] && (t[ne] = e.settings[ne]);
fe(t), t.crossDomain || (t.crossDomain = /^([\w-]+:)?\/\/([^\/]+)/.test(t.url) && RegExp.$2 != window.location.host);
var r = t.dataType, o = /=\?/.test(t.url);
if ("jsonp" == r || o) return o || (t.url = ye(t.url, "callback=?")), e.JSONP(t);
t.url || (t.url = window.location.toString()), we(t);
var i, a = t.accepts[r], s = {}, c = /^([\w-]+:)\/\//.test(t.url) ? RegExp.$1 : window.location.protocol,
u = e.settings.xhr();
t.crossDomain || (s["X-Requested-With"] = "XMLHttpRequest"), a && (s.Accept = a, a.indexOf(",") > -1 && (a = a.split(",", 2)[0]), u.overrideMimeType && u.overrideMimeType(a)), (t.contentType || t.data && "GET" != t.type.toUpperCase()) && (s["Content-Type"] = t.contentType || "application/x-www-form-urlencoded"), t.headers = ke(s, t.headers || {});
var l = t.xhrFields && t.xhrFields.withCredentials;
l && (u.withCredentials = l), u.onreadystatechange = function () {
if (4 == u.readyState) {
clearTimeout(i);
var e, n = !1;
if (u.status >= 200 && u.status < 300 || 304 == u.status || 0 == u.status && "file:" == c) {
r = r || function (e) {
return e && (e == ue ? "html" : e == ce ? "json" : ae.test(e) ? "script" : se.test(e) && "xml") || "text"
}(u.getResponseHeader("content-type")), e = u.responseText;
try {
"script" == r ? (0, eval)(e) : "xml" == r ? e = u.responseXML : "json" == r && (e = le.test(e) ? null : JSON.parse(e))
} catch (e) {
n = e
}
n ? ve(n, "parsererror", u, t) : me(e, u, t)
} else ve(null, "error", u, t)
}
};
var d = !("async" in t) || t.async;
for (te in u.open(t.type, t.url, d), t.headers) u.setRequestHeader(te, t.headers[te]);
return !1 === function (e, n) {
var t = n.context;
if (!1 === n.beforeSend.call(t, e, n) || !1 === pe(n, t, "ajaxBeforeSend", [e, n])) return !1;
pe(n, t, "ajaxSend", [e, n])
}(u, t) ? (u.abort(), !1) : (t.timeout > 0 && (i = setTimeout((function () {
u.onreadystatechange = he, u.abort(), ve(null, "timeout", u, t)
}), t.timeout)), u.send(t.data ? t.data : null), u)
};
function pe(e, n, t, r) {
if (e.global) return !0
}
function fe(e) {
e.global && 0 == de.active++ && pe(e)
}
function me(e, n, t) {
var r = t.context, o = "success";
t.success.call(r, e, o, n), pe(t), ge(o, n, t)
}
function ve(e, n, t, r) {
var o = r.context;
r.error.call(o, t, n, e), pe(r), ge(n, t, r)
}
function ge(e, n, t) {
var r = t.context;
t.complete.call(r, n, e), pe(t), function (e) {
e.global && !--de.active && pe(e)
}(t)
}
function he() {
}
function ye(e, n) {
return (e + "&" + n).replace(/[&?]{1,2}/, "?")
}
function we(e) {
"object" === re(e.data) && (e.data = function (e, n) {
var t = [];
return t.add = function (e, n) {
void 0 !== n && (n = null == n ? "" : n, this.push(_e(e) + "=" + _e(n)))
}, be(t, e, n), t.join("&").replace("%20", "+")
}(e.data)), e.data && (!e.type || "GET" == e.type.toUpperCase()) && (e.url = ye(e.url, e.data))
}
de.active = 0, de.JSONP = function (e) {
if (!("type" in e)) return de(e);
var n, t = "jsonp" + (e.cache ? "Callback" : ++oe), r = ie.createElement("script"), o = {
abort: function () {
t in window && (window[t] = he), ge("abort", o, e)
}
}, i = ie.getElementsByTagName("head")[0] || ie.documentElement;
return e.error && (r.onerror = function () {
o.abort(), e.error()
}), window[t] = function (r) {
clearTimeout(n), delete window[t], me(r, o, e)
}, we(e), r.src = e.url.replace(/=\?/, "=" + t), i.insertBefore(r, i.firstChild), e.timeout > 0 && (n = setTimeout((function () {
o.abort(), ge("timeout", o, e)
}), e.timeout)), o
}, de.settings = {
type: "GET",
beforeSend: he,
success: he,
error: he,
complete: he,
context: null,
global: !0,
xhr: function () {
return new window.XMLHttpRequest
},
accepts: {
script: "text/javascript, application/javascript",
json: ce,
xml: "application/xml, text/xml",
html: ue,
text: "text/plain"
},
crossDomain: !1,
timeout: 0
}, de.get = function (e, n) {
return de({url: e, success: n})
}, de.post = function (e, n, t, r) {
return "function" === re(n) && (r = r || t, t = n, n = null), de({
type: "POST",
url: e,
data: n,
success: t,
dataType: r
})
}, de.getJSON = function (e, n) {
return de({url: e, success: n, dataType: "json"})
};
var _e = encodeURIComponent;
function be(e, n, t, r) {
var o = "array" === re(n);
for (var i in n) {
var a = n[i];
r && (i = t ? r : r + "[" + (o ? "" : i) + "]"), !r && o ? e.add(a.name, a.value) : (t ? "array" === re(a) : "object" === re(a)) ? be(e, a, t, i) : e.add(i, a)
}
}
function ke(e) {
return Array.prototype.slice.call(arguments, 1).forEach((function (n) {
for (ne in n) void 0 !== n[ne] && (e[ne] = n[ne])
})), e
}
var Ce = de, Ie = {
send: function (e, n, t, r, o, i) {
void 0 === i && (i = !0), void 0 === i && (i = !0);
var a = new XMLHttpRequest;
a.open(t, e, i), a.onreadystatechange = function () {
4 === a.readyState && n && n(a.responseText)
}, a.setRequestHeader("Content-type", o), a.send(r)
}, request: function (e) {
return e.dataType = e.dataType || "json", Ce(e)
}
};
pn.container.register("ajax", {useValue: Ie}), pn.ajax = pn.container.resolve("ajax");
var Se, Ee, Te, Pe, xe;
pn.container.register("jqUtils", {
useValue: (Se = function (e) {
return "function" == typeof e
}, Ee = function (e, n) {
return e ? Te(e, n)[0] : null
}, Te = function (e, n) {
if (!e) return [];
var t = n || document, r = e.split(","), o = [];
return r.forEach((function (e) {
var n = e.trim();
try {
o = o.concat(Array.prototype.slice.call(t.querySelectorAll(n)))
} catch (e) {
var r = n.indexOf(" ") > -1;
if ("." !== n[0] || r) if ("#" !== n[0] || r) o = o.concat(Array.prototype.slice.call(t.querySelectorAll(n))); else {
var i = document.getElementById(n.substring(1));
o = o.concat(i ? [i] : [])
} else o = o.concat(Array.prototype.slice.call(t.getElementsByClassName(n.substring(1))))
}
})), o
}, Pe = function (e, n, t) {
t.setAttribute(e, n)
}, xe = [], {
scrollTop: function () {
return window.pageYOffset || document.documentElement.scrollTop
}, winSize: function () {
var e = window, n = document, t = n.documentElement, r = n.getElementsByTagName("body")[0],
o = e.innerWidth || t.clientWidth || r.clientWidth;
return {height: e.innerHeight || t.clientHeight || r.clientHeight, width: o}
}, isPlainObject: function (e) {
return "[object Object]" === Object.prototype.toString.call(e)
}, isEmptyObject: function (e) {
return 0 === Object.keys(e).length && e.constructor === Object
}, isFunction: Se, inArray: function (e, n) {
return n.indexOf(e)
}, type: function (e) {
return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/, "$1").toLowerCase()
}, remove: function (e) {
var n;
null === (n = e.parentNode) || void 0 === n || n.removeChild(e)
}, empty: function (e) {
for (; e.firstChild;) e.removeChild(e.firstChild)
}, queryEl: Ee, qa: Te, filter: function (e, n) {
return Array.prototype.filter.call(document.querySelectorAll(e), n)
}, addClass: function (e, n) {
n.classList.add(e)
}, toggleClass: function (e, n) {
n.classList.toggle(e)
}, removeClass: function (e, n) {
n.classList.remove(e)
}, getWidth: function (e) {
var n = getComputedStyle(e, null), t = n.paddingLeft, r = n.paddingRight,
o = e.getBoundingClientRect().width;
return o -= parseFloat(t) + parseFloat(r)
}, show: function (e) {
e.style.display = "block"
}, hide: function (e) {
e.style.display = "none"
}, getHeight: function (e) {
var n = getComputedStyle(e, null), t = n.paddingTop, r = n.paddingBottom,
o = e.getBoundingClientRect().height;
return o -= parseFloat(t) + parseFloat(r)
}, visible: function (e) {
return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
}, append: function (e, n) {
e.appendChild(n)
}, setAttr: Pe, setAttrs: function (e, n) {
Object.keys(e).forEach((function (t) {
Pe(t, e[t], n)
}))
}, getAttr: function (e, n) {
return "string" == typeof e && (e = Ee(e)), e ? e.getAttribute(n) : null
}, ready: function (e) {
"loading" != document.readyState ? e() : document.addEventListener("DOMContentLoaded", (function () {
return e()
}))
}, delegate: function (e, n, t, r) {
var o = function (t) {
for (var o = t.target; o && null != o; o = o.parentNode) {
var i = xe.findIndex((function (t) {
return t.parentEl === e && t.elementSelector === n
}));
if (o.matches && o.matches(n) && i >= 0) {
r.call(o, t);
break
}
}
};
xe.push({parentEl: e, elementSelector: n, handler: o, eventName: t}), e.addEventListener(t, o, !1)
}, undelegate: function (e, n) {
xe = xe.filter((function (t) {
var r = t.parentEl !== e && t.elementSelector !== n;
return r || t.parentEl.removeEventListener(t.eventName, t.handler), r
}))
}, on: function (e, n, t) {
e.addEventListener(n, (function (e) {
t(e)
}), !1)
}, off: function (e, n, t) {
e.removeEventListener(n, t)
}, deepExtend: function e() {
for (var n = [], t = 0; t < arguments.length; t++) n[t] = arguments[t];
for (var r = {}, o = 0, i = function (n) {
for (var t in n) n.hasOwnProperty(t) && ("[object Object]" === Object.prototype.toString.call(n[t]) ? r[t] = e(r[t], n[t]) : r[t] = n[t])
}; o < n.length; o++) i(n[o]);
return r
}, param: function (e, n) {
var t = [], r = function (e, n) {
return encodeURIComponent(e) + "=" + encodeURIComponent(Se(n) ? n() : n || 0 === n || !1 === n ? n : "")
};
return Object.keys(e).forEach((function (o) {
n && n[o] || (Array.isArray(e[o]) ? e[o].forEach((function (e) {
t.push(r(o, e))
})) : t.push(r(o, e[o])))
})), t.join("&")
}
})
}), pn.jqUtils = pn.container.resolve("jqUtils");
var Ae = {};
!function (n, t) {
for (var r in t) e(n, r, {get: t[r], enumerable: !0})
}(Ae, {
cookie: function () {
return Re
}, localStorage: function () {
return Le
}, sessionStorage: function () {
return Ue
}
});
var Oe = function (e) {
var n = new Date, t = function (e) {
e && n.setDate(n.getDate() + e)
};
if (e instanceof Date) n = e; else if ("number" == typeof e) t(e); else {
var r = e, o = r.days, i = r.minutes;
t(o), i && n.setMinutes(n.getMinutes() + i)
}
return n
}, Me = function (e) {
var n = e.replace(/\+/g, " ").replace(/^\s+|\s+$/g, "");
try {
return decodeURIComponent(n)
} catch (e) {
return n
}
}, Ne = function (e) {
return 0 === e.indexOf('"') && (e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")), Me(e)
}, Re = function () {
var e = function (e, n, t) {
var r = void 0 === t ? {} : t, o = r.path, i = r.domain, a = r.expires, s = r.secure, c = r.samesite,
u = r.raw, l = r.priority;
return (u ? e : encodeURIComponent(e)) + "=" + (u ? n : encodeURIComponent(n)) + (a ? "; expires=".concat(Oe(a).toUTCString()) : "") + (o ? "; path=".concat(o) : "") + (i ? "; domain=".concat(i) : "") + (s ? "; secure" : "") + (c ? "boolean" == typeof c ? "; sameSite" : "; sameSite=".concat(c) : "") + (l ? "; priority=".concat(l) : "")
}, n = function (n, t, r, o) {
void 0 === t || void 0 !== o && function (e) {
return encodeURI(e).split(/%(?:u[\dA-F]{2})?[\dA-F]{2}|./).length - 1
}(t) > o || (document.cookie = e(n, t, r))
}, t = function (e) {
for (var n = document.cookie.split(";"), t = 0; t < n.length; t++) {
var r = n[t].split("=");
if (e(Me(r[0]), r[1] || "")) return
}
};
function r(e) {
var n = null, r = {};
return t((function (t, o) {
if (e) {
if (t === e) return n = Ne(o), !0
} else r[t] = Ne(o)
})), e ? n : r
}
var o, i = function (e, t) {
n(e, "", Object.assign({}, t, {expires: -1}))
}, a = (o = "_cookie_test", function (e) {
void 0 === e && (e = []);
var t = window.location.hostname.split("."),
a = (new Date).getTime().toString(36) + Math.round(2147483647 * Math.random()).toString(36),
s = new Date;
s.setSeconds(s.getSeconds() + 30);
for (var c = 0; c < t.length; c++) try {
var u = t.slice(-(c + 1)).join(".");
if (!e.includes(u)) {
n(o, a, {expires: s, path: "/", domain: u});
var l = r(o) === a;
if (i(o, {path: "/", domain: u}), l) return u
}
} catch (e) {
}
});
return {
set: n, get: r, getNames: function () {
var e = [];
return t((function (n) {
e.push(n)
})), e
}, remove: i, getTopLevelDomain: a, __private__: {_generateCookieString: e}
}
}(), Le = function () {
var e = "_ls_ttl", n = function () {
try {
var n = window.localStorage.getItem(e);
return n ? JSON.parse(n) : null
} catch (e) {
return null
}
}, t = function (n) {
try {
Object.keys(n).length ? window.localStorage.setItem(e, JSON.stringify(n)) : window.localStorage.removeItem(e)
} catch (e) {
}
}, r = function () {
var e = o(), r = n(), i = {};
!r || (Object.keys(r).forEach((function (n) {
if (e.includes(n)) if (function (e) {
return !e || e > Date.now()
}(r[n] ? parseInt(r[n], 36) : null)) i[n] = r[n]; else try {
window.localStorage.removeItem(n)
} catch (e) {
}
})), JSON.stringify(r) !== JSON.stringify(i) && t(i))
}, o = function () {
try {
return Object.keys(window.localStorage)
} catch (e) {
return []
}
};
return r(), {
get: function (e) {
var n;
r();
try {
return null !== (n = window.localStorage.getItem(e)) && void 0 !== n ? n : null
} catch (e) {
return null
}
}, set: function (e, r, o) {
if (void 0 === o && (o = {}), function (e, r) {
var o = n();
if (void 0 === r) return null != o && o[e] && (delete o[e], t(o)), !0;
var i = Oe(r).getTime();
return i > Date.now() && ((o = o || {})[e] = i.toString(36), t(o), !0)
}(e, o.expires)) try {
window.localStorage.setItem(e, r)
} catch (e) {
}
}, getNames: o, remove: function (e) {
try {
window.localStorage.removeItem(e)
} catch (e) {
}
r()
}, expires: r, __protected__: {
get ttlName() {
return e
}
}
}
}(), Ue = {
get: function (e) {
try {
return window.sessionStorage.getItem(e)
} catch (e) {
return null
}
}, set: function (e, n) {
try {
window.sessionStorage.setItem(e, n)
} catch (e) {
}
}, getNames: function () {
try {
return Object.keys(window.sessionStorage)
} catch (e) {
return []
}
}, remove: function (e) {
try {
window.sessionStorage.removeItem(e)
} catch (e) {
}
}
}, De = function () {
return De = Object.assign || function (e) {
for (var n, t = 1, r = arguments.length; t < r; t++) for (var o in n = arguments[t]) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);
return e
}, De.apply(this, arguments)
}, je = function (e, n) {
return void 0 === n && (n = "_pctx"), {
cookieName: n, readonly: !1, init: function (n) {
var t;
return null !== (t = null != n ? n : e) && void 0 !== t ? t : null
}, refresh: function (e) {
return e
}, update: function (e) {
return e
}, set: function (e) {
return e
}, get: function (e) {
return e
}
}
}, Ve = function (e) {
return De(De({}, je(e)), {cookieName: null})
}, Fe = je("anon"), Be = function (e) {
return e ? Object.keys(e) : []
}, qe = function (e) {
return Array.isArray(e)
}, ze = function (e) {
return null == e
}, He = function (e) {
return !ze(e)
}, We = function (e) {
return "object" == _typeof(e)
}, Ge = function (e) {
return "string" == typeof e
}, Je = function () {
for (var e = (new Date).getTime().toString(36); e.length < 16;) e += Math.round(2147483647 * Math.random()).toString(36);
return e.substr(0, 16)
}, Qe = function (e, n) {
return e && Be(e).filter((function (t) {
return n(e[t])
})).reduce((function (n, t) {
var r;
return De(De({}, n), ((r = {})[t] = e[t], r))
}), {})
}, Xe = function () {
var e = {};
return {
add: function (n) {
e[n] = !0
}, values: function () {
return Be(e)
}
}
}, Ye = function (e) {
return "true" === e || !0 === e
}, $e = function (e, n) {
var t, r = NaN, o = NaN;
return function (i) {
var a = null == n ? void 0 : n();
return (i !== o || r !== a) && (r = a, o = i, t = e(i)), t
}
}, Ke = function (e) {
var n;
return function (t) {
var r = e();
r !== n && (n = r, t(r))
}
}, Ze = function e(n, t) {
try {
return n()
} catch (n) {
return t ? e(t) : null
}
}, en = function (e, n) {
return void 0 === n && (n = !1), Ze((function () {
return JSON.parse(e)
}), (function () {
return n ? JSON.parse(window.atob(e)) : null
})) || null
}, nn = function (e, n) {
if (e === n) return !0;
if (!e || !n) return null;
var t = Be(e), r = Be(n);
return t.length === r.length && !t.some((function (t) {
return e[t] !== n[t]
}))
}, tn = function (e) {
return Qe(e, (function (e) {
return "CX" !== (null == e ? void 0 : e.type)
}))
}, rn = De(De({}, je(null)), {
init: function (e) {
return tn(e || null)
}, refresh: tn, set: function (e, n) {
return null === e ? null : Qe(De(De({}, n), e), (function (e) {
return null !== e
}))
}
}), on = function () {
return window.pdl || {}
}, an = function (e, n) {
return n({protect: !0}), Je()
}, sn = De(De({}, Ve()), {
init: function (e, n) {
return n({protect: !0}), on().pageViewId || Je()
}, refresh: an, update: an, set: function (e, n, t) {
return t({protect: !0}), e
}
}), cn = De(De({}, je(null, "_pcid")), {
init: function (e, n) {
return n({protect: !0}), e || Je()
}, update: function (e, n) {
return n({protect: !0}), Je()
}, set: function (e, n, t) {
return t({protect: !0}), e
}
}), un = "DL", ln = ["PA", "DMP", "COMPOSER", "ID", "VX", "ESP", "SOCIAL_FLOW", un].map((function (e, n) {
return {name: e, id: n}
})), dn = ln.reduce((function (e, n, t) {
var r, o = n.name;
return De(De({}, e), ((r = {})[o] = t, r[o.toLowerCase()] = t, r))
}), {});
dn["social flow"] = dn.SOCIAL_FLOW, dn["Social Flow"] = dn.SOCIAL_FLOW;
var fn = Ke((function () {
var e;
return null === (e = Zn(on().consent)) || void 0 === e ? void 0 : e.products
})), mn = function () {
var e = ln;
return function () {
return fn((function (n) {
e = n ? ln.filter((function (e) {
return n.includes(e.name) || e.name === un
})) : ln
})), e
}
}(), vn = function (e, n, t) {
var r = mn().reduce((function (r, o) {
var i = o.id;
return r[i] = t(null == e ? void 0 : e[i], null == n ? void 0 : n[i], i), r
}), {});
return nn(r, n) ? n : r
}, gn = function (e) {
var n = Number(e);
if (Number.isNaN(n)) {
var t = dn[e.toLowerCase()];
return null != t ? t : null
}
return n < ln.length ? n : null
}, hn = function (e, n) {
return Be(e).reduce((function (t, r) {
var o = ln[Number(r)].name, i = e[r];
return t[o] = n ? n(i, o) : i, t
}), {})
}, yn = "opt-in", wn = "essential", _n = "opt-out", bn = "custom", kn = [yn, wn, _n], Cn = kn.concat(bn),
In = Cn.reduce((function (e, n, t) {
var r;
return De(De({}, e), ((r = {})[t] = n, r))
}), {}), Sn = [yn, bn, wn, _n], En = function (e) {
return Cn.includes(e)
}, Tn = {AD: ["DMP", "SOCIAL_FLOW"], CP: ["COMPOSER"], AM: ["PA"], PR: ["ESP", "VX", "ID"], DL: ["DL"]},
Pn = Be(Tn).reduce((function (e, n) {
return Tn[n].forEach((function (t) {
var r = dn[t];
e[r] = n
})), e
}), {}), xn = Ke((function () {
var e;
return null === (e = Zn(on().consent)) || void 0 === e ? void 0 : e.defaultPurposes
})), An = function () {
var e = De({}, Pn);
return function () {
return xn((function (n) {
e = De({}, Pn), n && Be(n).forEach((function (t) {
var r, o = dn[t];
e[o] = null === (r = n[t]) || void 0 === r ? void 0 : r.substring(0, 32)
}))
})), e
}
}(), On = function (e, n) {
return vn(e, n, (function (e, n, t) {
return e || n || An()[t]
}))
}, Mn = De(De({}, je(null, "_pprv")), {
init: function (e) {
return Ln() ? On(e || null, null) : null
}, set: function (e, n) {
return Ln() ? null == e ? n : On(function (e) {
return Be(e).reduce((function (n, t) {
var r = gn(t), o = Fn(e[t]);
return null === r || o === Dn || r === dn[un] || o && (n[r] = o), n
}), {})
}(e), n) : null
}
}), Nn = function () {
return on().consent_modifiers || null
}, Rn = function () {
return !!on().requireConsent
}, Ln = function () {
return "v2" === on().requireConsent
}, Un = function (e, n) {
var t;
return e === bn && !(null !== (t = Nn()) && void 0 !== t && t[n])
}, Dn = "DL", jn = ["AD", "AM", "CP", "PR", Dn].reduce((function (e, n) {
var t;
return De(De({}, e), ((t = {})[n] = n, t[n.toLowerCase()] = n, t))
}), {}), Vn = function (e) {
return jn[(null == e ? void 0 : e.toLowerCase()) || ""] || null
}, Fn = function (e) {
return Vn(e) || (null == e ? void 0 : e.substring(0, 32))
}, Bn = function (e, n, t) {
return "".concat(e.join(", "), " ").concat(e.length > 1 ? t : n)
}, qn = function (e) {
return '"'.concat(e, '" can not be applied for the dl product')
};
function zn(e, n, t, r, o) {
var i = function (e) {
return {error: e}
}, a = function (n, t, r) {
var o = [];
if (!En(n)) return i(function (e) {
return "".concat(e, " is unknown consent mode")
}(n));
var a = mn().reduce((function (i, a) {
var s = a.id, c = a.name;
return (!t || (null == e ? void 0 : e[s]) === t || (null == r ? void 0 : r.includes(s))) && (Un(n, c) ? o.push(c) : i[s] = {mode: n}), i
}), {});
return o.length ? i(function (e) {
return Bn(e, "does", "do") + "n't have modifier in the pdl. Custom mode can't be applied"
}(o)) : Object.keys(a).length ? {consent: a} : null
}, s = function (n, t) {
var r = Fn(t);
return jn[r] || Object.values(e || {}).includes(r) ? a(n, r) : i("Unknown purpose. Provide a product or define within pdl config")
};
return Ln() ? o ? function (e, n, t) {
var r = Fn(n), o = qe(t) ? t : [t], c = o.map(gn).filter(He);
if (!c.length) return Vn(n) ? s(e, n) : i(function (e) {
return "Custom purpose: " + Bn(e, "is", "are") + " unknown"
}(o));
if (r !== Dn && c.includes(dn.DL)) return {error: qn(r)};
if (r === Dn && c.some((function (e) {
return e !== dn.DL
}))) return i('the "DL" purpose is reserved');
var u = a(e, r, c);
if (null != u && u.error) return u;
var l = c.reduce((function (e, n) {
return e[n] = r, e
}), {});
return {consent: (null == u ? void 0 : u.consent) || null, purposes: l}
}(r, t, o) : r ? s(r, t) : function (e) {
return a(e)
}(t) : i("Consent v2 is disabled")
}
var Hn = function (e, n) {
if (!e) return null;
var t = hn(n || Pn);
return mn().reduce((function (n, r) {
var o, i = r.name, a = t[i], s = (null === (o = e[i]) || void 0 === o ? void 0 : o.mode) || yn;
return n[a] ? (n[a].mode = function (e, n) {
var t = Sn.indexOf(e), r = Sn.indexOf(n);
return Sn[Math.max(t, r)]
}(n[a].mode, s), n[a].products.push(i)) : n[a] = {mode: s, products: [i]}, n
}), {})
}, Wn = ["include", "exclude", "obfuscate"], Gn = function (e, n) {
return '"'.concat(e, '" should be one of ').concat(n.join(", "))
}, Jn = function () {
}, Qn = function (e, n) {
return function (t) {
return n(e + t)
}
}, Xn = function (e, n) {
void 0 === n && (n = Jn);
var t = dn[e.toLowerCase()];
return void 0 !== t ? ln[t].name : (n('"'.concat(e, '" is not found')), null)
}, Yn = function (e) {
return function (e) {
return kn.includes(e)
}(e) ? e : null
}, $n = function (e, n) {
void 0 === n && (n = Jn);
var t = e.source, r = e.patches || [];
return Yn(t) || (n(Gn("source", kn)), t = yn), qe(r) || (n('"patches" should be an array'), r = []), r = r.reduce((function (e, t, r) {
if (!We(t) || qe(t)) return n("patch[".concat(r, "]: should be type of {action, item, with?}")), e;
var o = t.action, i = t.item;
return Wn.includes(o) ? i && We(i) && i.key && i.type ? (e.push(t), e) : (n("patch[".concat(r, ']: "item" should be type of {key, type}')), e) : (n("patch[".concat(r, "]: ") + Gn("action", Wn)), e)
}), []), {source: t, patches: r}
}, Kn = function (e, n) {
if (void 0 === n && (n = Jn), !e) return null;
var t = {};
e.products && (qe(e.products) ? t.products = e.products.reduce((function (e, t) {
var r = Xn(t, Qn("consent.products: ", n));
return r && e.push(r), e
}), []) : n("consent.products: should be an array")), e.defaultPreset && (t.defaultPreset = Be(e.defaultPreset).reduce((function (t, r) {
var o = Xn(r, Qn("consent.defaultPreset: ", n)), i = Yn(e.defaultPreset[r]);
return i || n("consent.defaultPreset: " + Gn(r, kn)), o && i && (t[o] = i), t
}), {}));
var r = e.defaultPurposes;
return r && (t.defaultPurposes = Be(r).reduce((function (e, t) {
var o = Qn("consent.defaultPurposes: ", n), i = Xn(t, o), a = r[t], s = Fn(a);
return s === Dn || i === un ? o('"'.concat(t, ": ").concat(a, '" - invalid config')) : i && s && (e[i] = s), e
}), {})), t
}, Zn = $e(Kn),
et = [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 2, 2, 2, 2, 2, 0], [1, 2, 2, 2, 2, 2, 2, 1], [0, 2, 0, 2, 2, 2, 0, 0], [1, 2, 2, 2, 2, 2, 1, 1], [2, 0, 0, 2, 2, 2, 2, 0], [2, 0, 2, 2, 2, 2, 2, 0], [2, 2, 2, 2, 2, 2, 0, 2], [2, 2, 0, 0, 0, 0, 2, 0], [2, 2, 1, 2, 1, 2, 2, 1], [2, 2, 1, 1, 2, 2, 2, 1]],
nt = function (e) {
return e.reduce((function (e, n, t) {
var r;
return De(De({}, e), ((r = {})[t] = {mode: In[n]}, r))
}), {})
}, tt = et.map((function (e, n) {
return {id: n, preset: nt(e)}
})), rt = Ke((function () {
var e;
return null === (e = Zn(on().consent)) || void 0 === e ? void 0 : e.defaultPreset
})), ot = function () {
var e = tt;
return function () {
return rt((function (n) {
e = tt.slice(), n && (e[0] = {id: 0, preset: De({}, e[0].preset)}, Be(n).forEach((function (t) {
var r = n[t], o = dn[t];
e[0].preset[o] = {mode: r}
})))
})), e
}
}(), it = function (e, n) {
return vn(e, n, (function (e, n, t) {
var r = (null == e ? void 0 : e.mode) || (null == n ? void 0 : n.mode) || ot()[0].preset[t].mode;
return r !== (null == n ? void 0 : n.mode) ? {mode: r} : n
}))
}, at = De(De({}, je(null, "_pprv")), {
init: function (e) {
return Rn() && e ? it(e, null) : null
}, set: function (e, n) {
var t, r;
return Rn() ? null == e ? n : (r = function (e) {
return "number" == typeof e
}(e) ? (null === (t = ot()[e]) || void 0 === t ? void 0 : t.preset) || null : qe(e) ? function (e) {
var n = null;
return e.forEach((function (e) {
var t = et[e];
n || !t ? !n || !t || (n = n.map((function (e, n) {
return Math.min(e, t[n])
}))) : n = t
})), n && nt(n)
}(e) : function (e) {
return Be(e).reduce((function (n, t) {
var r = e[t], o = gn(t);
if (null === o) return n;
var i = En(r.mode) ? r.mode : null;
return i && (n || (n = {}), n[o] = {mode: i}), n
}), null)
}(e), r ? it(r, n) : n) : null
}, get: $e((function (e) {
return e && hn(e, (function (e, n) {
var t, r = De({}, e);
return r.mode === bn && (r.modifier = (null === (t = Nn()) || void 0 === t ? void 0 : t[n]) || null), r
}))
}), (function () {
return Nn()
}))
}), st = De(De({}, Ve()), {init: ot, set: ot}), ct = De(De({}, Ve()), {init: mn, set: mn}),
ut = De(De({}, Ve(null)), {
readonly: !0, set: function () {
return null
}, get: Nn
}), lt = function (e) {
var n = Number(e);
return Number.isNaN(n) ? String(e) : n
}, dt = function (e) {
return qe(e) ? e : e.split(",").map((function (e) {
return e.trim().replace(/^['"](.+)['"]$/, "$1")
}))
}, pt = function (e) {
return e
}, ft = {
id: pt,
type: pt,
zone: pt,
createdAt: lt,
modifiedAt: lt,
authors: dt,
section: pt,
tags: dt,
keywords: dt,
title: pt,
description: pt,
isNative: Ye
}, mt = function (e) {
return "last" === e
};
function vt(e, n) {
if (void 0 === e && (e = "meta"), function (e) {
return "first" === e
}(n)) return document.querySelector(e);
var t = document.querySelectorAll(e);
return mt(n) ? t[t.length - 1] : Array.from(t)
}
var gt = function () {
var e = null;
return {
refresh: function () {
(e = vt() || null) && setTimeout((function () {
e = null
}), 0)
}, find: function (n, t) {
return void 0 === t && (t = !1), e ? e.reduce((function (e, r) {
for (var o = 0, i = n; o < i.length; o++) {
var a = i[o], s = (("name" === a ? r.name : r.getAttribute(a)) || "").trim().toLowerCase(),
c = r.content;
if (s && (!t || c)) {
e[s] || (e[s] = []), e[s].push(r);
break
}
}
return e
}), {}) : null
}
}
}(), ht = function (e) {
var n, t = e.getContent || function (e) {
return e.content
};
return e.selector ? (n = vt(e.selector, e.take || "first")) && t(n) || null : function () {
var n = gt.find(e.attr || ["name"], e.hasContent), r = e.names || [], o = !function (e) {
return "all" === e
}(e.take), i = mt(e.take);
if (!n) return null;
for (var a = function (e) {
var r = [], a = n[e];
if (a) {
if (o) {
var s = a[i ? a.length - 1 : 0];
return {value: t(s) || ""}
}
a.forEach((function (e) {
r = r.concat(t(e) || "")
}))
}
if (r.length) return {value: r}
}, s = 0, c = r; s < c.length; s++) {
var u = a(c[s]);
if ("object" == _typeof(u)) return u.value
}
return null
}()
}, yt = function (e) {
for (var n = 0, t = e; n < t.length; n++) {
var r = t[n], o = ht(r);
if (o) return o
}
}, wt = function (e, n, t) {
var r = ft[n];
if (!Boolean(e[n]) && r) {
var o = ("function" == typeof t ? t : function () {
return qe(t) ? yt(t) : ht(t)
})(), i = o && r(o);
i && (e[n] = i)
}
}, _t = function (e) {
return {names: [e]}
}, bt = {
januar: "01",
january: "01",
jan: "01",
februar: "02",
february: "02",
feb: "02",
mars: "03",
march: "03",
mar: "03",
april: "04",
apr: "04",
mai: "05",
may: "05",
juni: "06",
june: "06",
jun: "06",
juli: "07",
july: "07",
jul: "07",
august: "08",
aug: "08",
september: "09",
sept: "09",
sep: "09",
oktober: "10",
october: "10",
okt: "10",
oct: "10",
november: "11",
nov: "11",
desember: "12",
december: "12",
dec: "12",
des: "12"
}, kt = function (e) {
var n = e.replace(/DAY/g, "(0?[1-9]|[12][0-9]|3[01])").replace(/MONTHLONG/g, "(" + Be(bt).join("|") + ")").replace(/MONTH/g, "(0?[1-9]|1[012])").replace(/YEAR2/g, "([0-9][0-9])").replace(/YEAR/g, "(197[1-9]|19[8-9][0-9]|20[0-9][0-9])").replace(/TIME/g, "([0-9][0-9]):([0-9][0-9]):([0-9][0-9])(?:\\.[0-9][0-9][0-9])?([zZ]|[+-][0-9][0-9](?::?[0-9][0-9])?)?"),
t = e.replace(/.*?([YMD])(EAR|ONTH|AY).*?/g, "$1").substring(0, 3);
return [new RegExp(n), t]
},
Ct = ["\\bDAY\\.MONTH\\.YEAR\\b", "\\bDAY\\.?\\s{0,3}MONTHLONG\\.?\\s{1,3}YEAR\\b", "\\bYEAR-MONTH-DAY(?:[tT]|\\b)", "\\bMONTHLONG\\.?\\s{0,3}DAY(?:st|nd|rd|th)?,?\\s{1,3}YEAR\\b", "\\bDAY(?:st|nd|rd|th|\\.)?\\s{0,3}MONTHLONG\\.?,?\\s{1,3}YEAR\\b", "\\bYEAR[/年]MONTH[/月]DAY(?=\\b|日)", "\\bDAY\\.MONTH\\.YEAR2\\b", "\\bDAY/MONTH/YEAR\\b"].map(kt),
It = kt("YEAR-MONTH-DAY[tT]TIME")[0], St = function (e) {
return e && parseInt(e, 10) || 0
};
function Et(e, n, t, r, o, i, a) {
var s = new Date(Date.UTC(St(e), St(n) - 1, St(t), St(r), St(o), St(i))),
c = (a || "").match(/^([+-][0-9][0-9])(?::?([0-9][0-9])?)$/);
c && (s = new Date(s.getTime() - 36e5 * Number(c[1]) - 6e4 * (Number(c[2]) || 0)));
var u = Date.now() - s.getTime();
return u > 0 || -u < 1728e5 ? s.toISOString() : null
}
var Tt = function (e) {
return e.replace(/<\/?[^>?]*\/?>/g, " ").replace(/\s+/g, " ").trim()
};
function Pt(e) {
return void 0 === e && (e = ""), Tt(e.replace(/,(?=\s*(jr|sr)(\.?)\b)/g, " "))
}
var xt, At = function (e) {
return De(De({}, e), {take: "last"})
}, Ot = function (e) {
return De(De({}, e), {
take: "last", hasContent: !0, getContent: function (e) {
return Tt(e.content || "")
}
})
}, Mt = [At({
attr: ["name", "property", "itemprop"],
names: ["cxenseparse:publishtime", "cxenseparse:recs:publishtime", "article:published_time", "date", "dc.date", "dc.date.created", "dc.terms.issued", "pub_date", "article.published", "datepublished", "og:article:published_time"]
}), At({
selector: "time.published[datetime],time[pubdate][datetime]", getContent: function (e) {
return e.getAttribute("datetime")
}
}), At({
selector: "time[datetime]", getContent: function (e) {
return e.getAttribute("datetime")
}
})], Nt = {selector: 'meta[property="article:modified_time"]'}, Rt = [{
attr: ["property", "name"],
names: ["cxenseparse:author", "og:article:author", "article:author", "og:book:author", "book:author", "author", "dc.creator", "article.author"],
take: "all",
getContent: function (e) {
var n = e.getAttribute("data-separator"), t = e.content;
return n ? Pt(t).split(n) : function (e) {
return void 0 === e && (e = ""), Pt(e.replace(/\n+/, ";").replace(/(\<|<)br(\>|>)/, ";").replace(/\b(and|und|og)\b/g, ";")).split(/[,;]/)
}(t)
}
}], Lt = [Ot({names: ["cxenseparse:keywords"]}), Ot({
attr: ["property", "name"],
names: ["news_keywords"]
}), Ot({names: ["keywords"]})], Ut = [Ot({names: ["cxenseparse:description"]}), Ot({
attr: ["property"],
names: ["og:description"]
}), Ot({names: ["description"]})],
Dt = [{names: ["cxenseparse:title"]}, At({attr: ["property", "name"], names: ["og:title"]})],
jt = function (e) {
wt(e, "createdAt", (function () {
var e = yt(Mt);
return e ? function (e) {
var n = (e = e.toLowerCase()).match(It);
if (n) return Et(n[1], n[2], n[3], n[4], n[5], n[6], n[7]);
for (var t = 0, r = Ct; t < r.length; t++) {
var o = r[t], i = e.match(o[0]);
if (i) return Et(2 === (i = "DMY" === o[1] ? ["", i[3], i[2], i[1]] : "MDY" === o[1] ? ["", i[3], i[1], i[2]] : i)[1].length ? (St(i[1]) < 60 ? "20" : "19") + i[1] : i[1], i[2].length <= 2 ? i[2] : bt[i[2]], i[3])
}
}(e.toLowerCase()) : null
})), wt(e, "modifiedAt", Nt), wt(e, "authors", Rt), wt(e, "keywords", (function () {
var e = yt(Lt);
return e && e.length <= 1024 ? e : null
})), wt(e, "title", Dt), wt(e, "description", Ut)
}, Vt = function () {
var e = Array.from(document.querySelectorAll("meta[property^=content]")).reduce((function (e, n) {
var t,
r = null === (t = null == n ? void 0 : n.getAttribute("property")) || void 0 === t ? void 0 : t.split(":").pop(),
o = ft[r];
return o && n && (e[r] = o((null == n ? void 0 : n.getAttribute("content")) || "")), e
}), {});
return gt.refresh(), function (e) {
wt(e, "type", {
attr: ["property"],
names: ["og:type"]
}), wt(e, "section", _t("section")), wt(e, "id", _t("id")), wt(e, "authors", _t("author"))
}(e), jt(e), e
}, Ft = De(De({}, Ve(null)), {
init: function () {
return Vt()
}, refresh: function (e) {
var n = Vt();
return null != e && e._fixed_ && (null == e || e._fixed_.forEach((function (e) {
delete n[e]
}))), De(De({}, e), n)
}, set: function (e, n) {
if (null === e) return {};
var t = new Set(n && n._fixed_), r = function (n, t) {
Be(Qe(e, n)).forEach(t)
};
return r(He, (function (e) {
t.add(e)
})), r(ze, (function (e) {
t.delete(e)
})), Qe(De(De(De({}, n), e), {_fixed_: Array.from(t.values())}), He)
}, get: $e((function (e) {
var n = De({}, e);
return delete n._fixed_, e && n
}))
}), Bt = De(De({}, je(null, "_pcus")), {
init: function (e) {
return void 0 === e && (e = null), e && Qe(e, (function (e) {
return We(e) && Array.isArray(e.segments)
}))
}
}), qt = {
pageViewId: sn,
browserId: cn,
users: rn,
userStatus: Fe,
siteId: je(),
consent: at,
consentPresets: st,
products: ct,
consentModifiers: ut,
purposes: Mn,
content: Ft,
userSegments: Bt
}, zt = {
path: "/",
expires: 395,
samesite: "lax",
secure: "https:" === window.location.protocol,
domain: Re.getTopLevelDomain(["pantheon.io", "go-vip.net", "go-vip.co"])
}, Ht = function (e) {
return e.getTime().toString(36)
}, Wt = function (e) {
return e ? Ze((function () {
return new Date(parseInt(e, 36))
})) : null
}, Gt = "_t", Jt = function (e, n) {
var t = n.encode, r = n.decode, o = !1, i = null, a = null, s = null;
!function () {
var n, t = null === (n = r(e || "")) || void 0 === n ? void 0 : n[Gt];
if (t) {
var s = t.split("|");
i = Wt(s[0]), a = Wt(s[1]), o = !!i
}
}();
var c = function (e) {
return i = i || function (e) {
var n = new Date;
if (e instanceof Date) n = e; else {
if ("number" != typeof e) return null;
n.setDate(n.getDate() + e)
}
return n
}(e.expires), i
};
return {
get fixedAt() {
return o ? [a, i] : null
}, onChange: function (e) {
s = e
}, setMode: function (e) {
var n = o;
(o = e) !== n && (i = null, a = null, null == s || s(o))
}, bindOptions: function (e) {
return o && (i = c(e)) ? De(De({}, e), {expires: i}) : e
}, decode: function (e) {
var n = r(e);
return null != n && n[Gt] && delete n[Gt], n
}, encode: function (e, n) {
return o ? (i = c(n)) && (e[Gt] = Ht(i) + "|" + Ht(a = a || new Date)) : delete e[Gt], t(e)
}
}
}, Qt = "essential", Xt = "optional", Yt = "mandatory", $t = function (e, n, t) {
return void 0 === n && (n = Xt), void 0 === t && (t = !1), {
cookieName: e, consent: n, encode: function (e) {
return function (e, n) {
void 0 === n && (n = !1);
var t = JSON.stringify(e);
return Ze((function () {
return n ? window.btoa(t) : t
})) || t
}(e, t)
}, decode: function (e) {
return en(e, !0)
}
}
}, Kt = String.fromCharCode, Zt = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$", er = {};
!function (e) {
e.URI = "URI"
}(xt || (xt = {}));
var nr = {
URI: {
prefix: "{u}", compress: function (e) {
return null == e ? "" : function (e, n, t) {
if (null == e) return "";
var r, o, i, a = {}, s = {}, c = "", u = "", l = "", d = 2, p = 3, f = 2, m = [], v = 0, g = 0;
for (i = 0; i < e.length; i += 1) if (c = e.charAt(i), Object.prototype.hasOwnProperty.call(a, c) || (a[c] = p++, s[c] = !0), u = l + c, Object.prototype.hasOwnProperty.call(a, u)) l = u; else {
if (Object.prototype.hasOwnProperty.call(s, l)) {
if (l.charCodeAt(0) < 256) {
for (r = 0; r < f; r++) v <<= 1, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++;
for (o = l.charCodeAt(0), r = 0; r < 8; r++) v = v << 1 | 1 & o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o >>= 1
} else {
for (o = 1, r = 0; r < f; r++) v = v << 1 | o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o = 0;
for (o = l.charCodeAt(0), r = 0; r < 16; r++) v = v << 1 | 1 & o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o >>= 1
}
0 == --d && (d = Math.pow(2, f), f++), delete s[l]
} else for (o = a[l], r = 0; r < f; r++) v = v << 1 | 1 & o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o >>= 1;
0 == --d && (d = Math.pow(2, f), f++), a[u] = p++, l = String(c)
}
if ("" !== l) {
if (Object.prototype.hasOwnProperty.call(s, l)) {
if (l.charCodeAt(0) < 256) {
for (r = 0; r < f; r++) v <<= 1, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++;
for (o = l.charCodeAt(0), r = 0; r < 8; r++) v = v << 1 | 1 & o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o >>= 1
} else {
for (o = 1, r = 0; r < f; r++) v = v << 1 | o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o = 0;
for (o = l.charCodeAt(0), r = 0; r < 16; r++) v = v << 1 | 1 & o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o >>= 1
}
0 == --d && (d = Math.pow(2, f), f++), delete s[l]
} else for (o = a[l], r = 0; r < f; r++) v = v << 1 | 1 & o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o >>= 1;
0 == --d && (d = Math.pow(2, f), f++)
}
for (o = 2, r = 0; r < f; r++) v = v << 1 | 1 & o, g == n - 1 ? (g = 0, m.push(t(v)), v = 0) : g++, o >>= 1;
for (; ;) {
if (v <<= 1, g == n - 1) {
m.push(t(v));
break
}
g++
}
return m.join("")
}(e, 6, (function (e) {
return Zt.charAt(e)
}))
}, decompress: function (e) {
return null == e ? "" : "" == e ? null : function (e, n, t) {
var r, o, i, a, s, c, u, l = [], d = 4, p = 4, f = 3, m = "", v = [],
g = {val: t(0), position: n, index: 1};
for (r = 0; r < 3; r += 1) l[r] = r;
for (i = 0, s = Math.pow(2, 2), c = 1; c != s;) a = g.val & g.position, g.position >>= 1, 0 == g.position && (g.position = n, g.val = t(g.index++)), i |= (a > 0 ? 1 : 0) * c, c <<= 1;
switch (i) {
case 0:
for (i = 0, s = Math.pow(2, 8), c = 1; c != s;) a = g.val & g.position, g.position >>= 1, 0 == g.position && (g.position = n, g.val = t(g.index++)), i |= (a > 0 ? 1 : 0) * c, c <<= 1;
u = Kt(i);
break;
case 1:
for (i = 0, s = Math.pow(2, 16), c = 1; c != s;) a = g.val & g.position, g.position >>= 1, 0 == g.position && (g.position = n, g.val = t(g.index++)), i |= (a > 0 ? 1 : 0) * c, c <<= 1;
u = Kt(i);
break;
case 2:
return ""
}
for (l[3] = u, o = u, v.push(u); ;) {
if (g.index > e) return "";
for (i = 0, s = Math.pow(2, f), c = 1; c != s;) a = g.val & g.position, g.position >>= 1, 0 == g.position && (g.position = n, g.val = t(g.index++)), i |= (a > 0 ? 1 : 0) * c, c <<= 1;
switch (u = i) {
case 0:
for (i = 0, s = Math.pow(2, 8), c = 1; c != s;) a = g.val & g.position, g.position >>= 1, 0 == g.position && (g.position = n, g.val = t(g.index++)), i |= (a > 0 ? 1 : 0) * c, c <<= 1;
l[p++] = Kt(i), u = p - 1, d--;
break;
case 1:
for (i = 0, s = Math.pow(2, 16), c = 1; c != s;) a = g.val & g.position, g.position >>= 1, 0 == g.position && (g.position = n, g.val = t(g.index++)), i |= (a > 0 ? 1 : 0) * c, c <<= 1;
l[p++] = Kt(i), u = p - 1, d--;
break;
case 2:
return v.join("")
}
if (0 == d && (d = Math.pow(2, f), f++), l[u]) m = l[u]; else {
if (u !== p) return null;
m = o + o.charAt(0)
}
v.push(m), l[p++] = o + m.charAt(0), o = m, 0 == --d && (d = Math.pow(2, f), f++)
}
}((e = e.replace(/ /g, "+")).length, 32, (function (n) {
return function (e, n) {
if (!er[e]) {
er[e] = {};
for (var t = 0; t < e.length; t++) er[e][e.charAt(t)] = t
}
return er[e][n]
}(Zt, e.charAt(n))
}))
}
}
}, tr = Be(nr).reduce((function (e, n) {
return e[nr[n].prefix] = nr[n], e
}), {}), rr = {
cookieName: "_pctx", consent: Yt, encode: function (e, n) {
void 0 === n && (n = xt.URI);
var t = JSON.stringify(e), r = nr[n].compress(t);
return nr[n].prefix + r
}, decode: function (e) {
var n = function (e) {
var n = e.slice(0, 3), t = e.slice(3);
if (!tr[n]) return null;
var r = tr[n].decompress(t);
if (!r) return null;
try {
return JSON.parse(r)
} catch (e) {
return null
}
}(e || "");
return We(n) ? n : null
}
}, or = function () {
var e, n;
return !(null === (n = null === (e = on().cookies) || void 0 === e ? void 0 : e._pprv) || void 0 === n || !n.jsonOnly)
}, ir = {_pprv: $t("_pprv", Yt, !or()), _pcid: $t("_pcid", Qt), _pcus: $t("_pcus", Xt, !0), _pctx: rr},
ar = function (e) {
return Be(e).reduce((function (n, t) {
return n[t] = function (e) {
var n = e.cookieName, t = e.consent, r = Re.get(n), o = !!r, i = Jt(r, e), a = !!i.fixedAt, s = o,
c = null, u = De({}, zt), l = null, d = function () {
return o && s
}, p = function (e) {
var t = f(e), r = c || (l ? i.encode(l, t) : "");
if (!r) {
var o = Re.get(n), s = i.decode(o || "");
r = s ? i.encode(s, t) : ""
}
r && (a = !0, Re.set(n, r, i.bindOptions(t)))
}, f = function (e) {
return De(De({}, u), Qe(e || {}, He))
}, m = function (e) {
Re.remove(n, f(e))
}, v = function (e, n) {
var t = e && n;
!d() && t && p(), d() && !t && m(), d() && t && !a && p(), o = e, s = n
};
return i.onChange((function () {
d() && (a = !1, p())
})), {
get cookieName() {
return n
}, get cookieEnabled() {
return d()
}, get fixedAt() {
return i.fixedAt
}, get consent() {
return t
}, set: function (e, n) {
l = e, d() && p(n)
}, get: function () {
return i.decode(Re.get(n) || "")
}, remove: m, setCookieOptions: function (e) {
u = f(e), d() && p()
}, setCookieEnabled: function (e, n) {
void 0 === n && (n = null), c = e ? n : null, v(e, s)
}, lazyActive: function () {
v(o, !0)
}, setFixedMode: function (e) {
i.setMode(e)
}
}
}(e[t]), n
}), {})
}(ir), sr = "__pctx_connection__", cr = "uvm42pas28m", ur = {}, lr = function () {
var e = function () {
var e = null, n = null;
return {
register: function (t) {
return e = De(De({}, t.fields), e), n = De(De({}, t.cookieByName), n)
}, get wrappers() {
return n
}, get: function () {
var e = {};
return n && Be(n).forEach((function (t) {
e = De(De({}, e), n[t].get())
})), e
}, set: function (t, r) {
void 0 === r && (r = null);
var o = {};
Be(t).forEach((function (i) {
var a = t[i], s = null == e ? void 0 : e[i];
s && (o[s] || (o[s] = {
wrapper: null == n ? void 0 : n[s],
data: {},
update: !1
}), o[s].data[i] = a, (!r || !o[s].update && a !== r[i]) && (o[s].update = !0))
})), Be(o).forEach((function (e) {
var n = o[e], t = n.wrapper;
n.update && t.set(o[e].data)
}))
}
}
}(), n = {}, t = null, r = new Map, o = new Map, i = [], a = function (e, n, t) {
void 0 === t && (t = !1);
var r = [];
return Be(n).forEach((function (i) {
var a = n[i], s = !o.has(i) || o.get(i) === e || t;
a && s ? o.set(i, e) : !a && s ? o.delete(i) : r.push(i)
})), r.length > 0 ? r : null
};
return function (s, c) {
var u = Je();
return r.set(u, s), c && e.register(c), n = De(De({}, e.get()), n), {
getInitCookieData: function () {
return n
}, getCachedData: function () {
return t || ur
}, setProtectionData: function (e) {
return a(u, e)
}, setProtectionDataUnsafe: function (e) {
return a(u, e, !0)
}, updateData: function (r) {
return function (r, a) {
var s = {}, c = {};
Be(a).forEach((function (e) {
o.has(e) ? s[e] = (null == t ? void 0 : t[e]) || null : c[e] = a[e]
}));
var u = t || n, l = De(De({}, t), c);
return nn(l, u) || (e.set(l, u), t = l, i.forEach((function (e) {
return (0, e[1])(c)
}))), Be(s).length > 0 ? s : null
}(0, r)
}, onUpdateData: function (e) {
!function (e, n) {
i.push([e, n])
}(u, e)
}, terminate: function () {
(function (e) {
i = i.filter((function (n) {
return n[0] !== e
}))
})(u), r.delete(u)
}, setCookieOptions: function () {
return null
}, setCookieEnabled: function () {
return null
}, get registeredCookiesWrapper() {
return e.wrappers
}
}
}
}, dr = function (e) {
return void 0 === e && (e = !1), function (n, t) {
var r = lr();
try {
Object.defineProperty(window, sr, {
configurable: e, set: function (e) {
var n = e();
n === cr ? e(r) : "mrlqf5trgho" === n && (r = lr())
}
})
} catch (e) {
}
return window[sr] = function (e) {
return e && (r = e), cr
}, r(n, t)
}
}(), pr = function (e) {
return e.includes("*")
}, fr = function (e, n) {
return [new RegExp("^" + e.replace(/\*/g, ".*") + "$"), n]
}, mr = function (e) {
return Be(e).filter(pr).map((function (n) {
return fr(n, e[n])
}))
}, vr = function (e, n) {
for (var t = 0, r = n; t < r.length; t++) {
var o = r[t];
if (o[0].test(e)) return o[1]
}
return null
}, gr = function (e, n) {
switch (e) {
case yn:
return !0;
case wn:
return n === Qt || n === Yt;
case _n:
return n === Yt;
default:
return !0
}
}, hr = function (e) {
switch (e) {
case"include":
case"obfuscate":
return !0;
case"exclude":
return !1
}
}, yr = function (e) {
var n = Object.assign({}, e.items), t = mr(n), r = function (e) {
return n[e] || vr(e, t) || Xt
};
return function (n, t) {
var o = on().requireConsent, i = !qe(n), a = i ? [n] : n, s = function () {
var n = function () {
return a.map((function (e) {
return {name: e, allowed: !o}
}))
}, i = t || e.getConsent();
if (!i) return n();
if (i.mode === bn) {
var s = function (e, n, t) {
var r = n && $n(n, t);
if (!r) return null;
for (var o = [], i = {}, a = 0, s = r.patches; a < s.length; a++) {
var c = s[a], u = c.action, l = c.with, d = void 0 === l ? null : l, p = c.item;
if (p.type === e) {
var f = {action: u, data: d};
i[p.key] = f, pr(p.key) && o.push(fr(p.key, f))
}
}
return {
source: r.source, getModifier: function (e) {
return i[e] || vr(e, o)
}
}
}(e.type, i.modifier, e.log);
if (!s) return n();
var c = s.source;
return a.map((function (e) {
var n = s.getModifier(e), t = function (e, n) {
return "obfuscate" === e ? n : null
}(null == n ? void 0 : n.action, null == n ? void 0 : n.data),
o = {name: e, allowed: null != n && n.action ? hr(n.action) : gr(c, r(e))};
return null !== t && (o.data = t), o
}))
}
return a.map((function (e) {
return {name: e, allowed: gr(i.mode, r(e))}
}))
}();
return i ? s[0] : s
}
}, wr = Object.freeze({
__proto__: null,
createCheckConsentWrapper: yr,
createMask: fr,
getByMask: vr,
isMask: pr,
itemsToMask: mr
}), _r = function (e) {
var n = e && e.length;
return 16 === n || 36 === n ? e : null
}, br = function () {
var e = {
pa_vid: function (e) {
return _r(en(e || "", !0) || e)
}, atuserid: function (e) {
var n;
return _r((null === (n = en(e || "", !0)) || void 0 === n ? void 0 : n.val) || "")
}
};
return function (n) {
for (var t = function (n) {
try {
var t = function () {
if (n.ls) return function (e) {
var n = function (e) {
return Ze((function () {
return window.localStorage.getItem(e)
}))
}, t = n(e), r = Ze((function () {
return parseInt(en(n("_ls_ttl"))[e], 36)
}));
return r && r <= Date.now() ? null : t
}(n.ls) || null;
var t = Re.get(n);
return e[n] && t ? e[n](t) : t
}();
if (t) return {value: t}
} catch (e) {
}
}, r = 0, o = n; r < o.length; r++) {
var i = t(o[r]);
if ("object" == _typeof(i)) return i.value
}
return null
}
}(), kr = [{ls: "_cX_P"}, "cX_P"], Cr = {PA: {browserId: ["pa_vid", "atuserid"].concat(kr)}, DMP: {browserId: kr}},
Ir = {browserId: {source: "DMP"}}, Sr = function (e) {
var n, t = De(De({}, Ir), function (e, n) {
return void 0 === n && (n = Jn), Be(e || {}).reduce((function (t, r) {
var o = null == e ? void 0 : e[r], i = Xn((null == o ? void 0 : o.source) || "", n);
return t[r] = De(De({}, o), {source: i}), t
}), {})
}(null === (n = on()) || void 0 === n ? void 0 : n.migration));
Be(t).forEach((function (n) {
var r, o, i = e.params.get(n), a = t[n] === Ir[n],
s = null === (r = t[n]) || void 0 === r ? void 0 : r.source,
c = s && (null === (o = Cr[s]) || void 0 === o ? void 0 : o[n]) || [];
if (i && c.length) {
var u = br(c);
u && (i.readonly = !1, e.updateValues(n, u, !0), i.readonly = !a)
}
}))
}, Er = "@@Data-layer/", Tr = Er + "update_value", Pr = Er + "refresh_value", xr = Er + "refresh_locked_key",
Ar = function () {
var e = De({}, window.pdl), n = function (e) {
return function (e, n) {
return We(e) ? Be(e).reduce((function (t, r) {
var o = e[r], i = n[r], a = i && i(o);
return void 0 !== a && (t[r] = a), t
}), {}) : e
}(e, {
path: String, domain: String, secure: Ye, expires: function (e) {
return e instanceof Date ? e : Number(e)
}, samesite: function (e) {
return Ge(e) ? e : Ye(e)
}
})
};
return null != e && e.cookies && (e.cookies = Be(e.cookies).reduce((function (t, r) {
return t[r] = n(e.cookies[r]), t
}), {})), null != e && e.cookieDefault && (e.cookieDefault = n(e.cookieDefault)), e
}, Or = function (e) {
var n = Be(ir).reduce((function (e, n) {
return e[n] = ir[n].consent, e
}), {}), t = function (n) {
var t;
return n || (null === (t = e.get("consent")) || void 0 === t ? void 0 : t.DL) || null
}, r = yr({items: n, type: "cookie", getConsent: t}), o = t(), i = function (n) {
var t, o = {_pprv: !on().requireConsent},
i = null === (t = e.getConnection()) || void 0 === t ? void 0 : t.registeredCookiesWrapper;
if (i) {
var a = Be(i).map((function (e) {
return i[e].cookieName
}));
r(a, n).forEach((function (e) {
var n = e.name, t = e.allowed, r = e.data, a = t && !o[n];
i[n].setCookieEnabled(a, r || null)
}))
}
};
e.addChangeListener("consent", (function (e) {
var n = (null == e ? void 0 : e.DL) || null;
(null == o ? void 0 : o.mode) !== (null == n ? void 0 : n.mode) && (o = n, i(n))
})), i(o)
}, Mr = function (e, n, t) {
var r = 1 === t ? "can not be" : "was";
console.warn('[DL]: Consent v2: the "'.concat(e, '" has a conflicted consent mode, ') + "mode ".concat(r, ' changed to "').concat(n, '"'))
}, Nr = function (e, n, t) {
var r, o = function (e, n) {
return {
fields: Be(e).reduce((function (n, t) {
var r = e[t].cookieName;
return null !== r && (n[t] = r), n
}), {}), cookieByName: n
}
}(e, n), i = dr("data-layer", o), a = !1, s = new Map, c = new Set, u = new Map, l = function () {
if (!i) throw new Error("DataLayer can't be connected");
return i
}, d = function (e) {
var n = l().registeredCookiesWrapper;
n && e(n)
}, p = function (e) {
d((function (n) {
e.forEach((function (e) {
var t = n[e];
t && t.lazyActive()
}))
}))
}, f = function () {
var e = null;
return d((function (n) {
e = Be(n).reduce((function (e, t) {
var r = n[t].cookieEnabled, o = n[t].fixedAt || null;
return e[n[t].cookieName] = r ? {enabled: r, fixedAt: o} : null, e
}), {})
})), e
}, m = function () {
var e = {}, n = function (n) {
return Be(e).reduce((function (t, r) {
var o = e[r];
return void 0 !== o[n] && (t[r] = o[n]), t
}), {})
};
return {
add: function (n, t) {
e[n] = t
}, call: function () {
var e;
e = n("protect"), Be(e).length > 0 && l().setProtectionData(e), function () {
var e = n("protectUnsafe");
Be(e).length > 0 && l().setProtectionDataUnsafe(e)
}()
}
}
}, v = function (e, n) {
return Be(e).reduce((function (t, r) {
var o = u.get(r), i = e[r];
return o && (t[r] = n ? n(o, i) : o.get(i)), t
}), {})
}, g = function () {
return {params: u, getConnection: l, addChangeListener: C, get: w, updateValues: y}
}, h = function (e) {
var n = !1;
Be(e).forEach((function (t) {
var o, i = t, a = u.get(i);
if (a) {
var c = e[i];
r[i] !== c && (r[i] = c, n = !0, null === (o = s.get(i)) || void 0 === o || o.forEach((function (e) {
return e(a.get(c))
})))
}
})), n && c.forEach((function (e) {
return e(v(r))
}))
}, y = function (e, n, t) {
var o;
void 0 === t && (t = !1);
var i = e, a = Xe();
Ge(e) && ((o = {})[e] = n, i = o);
var s = m(), c = m();
i = Be(i).reduce((function (e, n) {
var t = i[n], o = u.get(n), l = n;
return null != o && o.readonly || (o && o.cookieName && a.add(o.cookieName), !o || t === r[n]) ? e : t === Pr ? (e[n] = o.refresh(r[n], (function (e) {
c.add(l, e)
})), e[n] !== r[n] && s.add(l, {protectUnsafe: !1}), e) : t === Tr ? (e[n] = o.update(r[n], (function (e) {
c.add(l, e)
})), e) : (e[n] = o.set(t, r[n], (function (e) {
c.add(l, e)
})), e)
}), {}), p(a.values()), s.call();
var d = l().updateData(i);
if (d && t) {
var f = Be(d).reduce((function (e, n) {
var t;
return De(De({}, e), ((t = {})[n] = !1, t))
}), {});
l().setProtectionDataUnsafe(f), l().updateData(i)
}
return c.call(), d && v(d)
};
function w(e) {
var n, t, o = Xe(), i = Ge(e);
return void 0 === e ? t = r : i ? ((n = {})[e] = r[e], t = n) : t = e.reduce((function (e, n) {
return u.has(n) && (e[n] = r[n]), e
}), {}), t = v(t, (function (e, n) {
return e.cookieName && o.add(e.cookieName), e.get(n)
})), p(o.values()), i ? t[e] : t
}
function _(e, n) {
return y(e, n, !1)
}
var b = function (e, n) {
void 0 === n && (n = !1);
var t = e;
return qe(e) || (t = [e]), y(t.reduce((function (e, n) {
return e[n] = Tr, e
}), {}), void 0, n)
}, k = function (e, n, t) {
var r;
void 0 === t && (t = !1);
var o = t ? l().setProtectionDataUnsafe : l().setProtectionData, i = e;
return Ge(e) && ((r = {})[e] = n, i = r), o(i)
};
function C(e, n) {
var t;
Ge(e) ? null === (t = s.get(e)) || void 0 === t || t.add(n) : c.add(e)
}
return {
init: function (n) {
if (void 0 === n && (n = {}), !a) {
i || (i = dr("data-layer", o)), function (e) {
var n = De(De({}, e), Ar()), t = n.cookieDefault;
d((function (e) {
Be(e).forEach((function (r) {
var o, i, a, s, c = e[r].cookieName,
u = null === (o = n.cookies) || void 0 === o ? void 0 : o[c],
l = "fixed" === (null === (i = n.cookies) || void 0 === i ? void 0 : i.storageMode);
null === (s = (a = e[r]).setFixedMode) || void 0 === s || s.call(a, l), (t || u) && e[r].setCookieOptions(De(De({}, t), u))
}))
}))
}(n), a = !0, Be(e).forEach((function (n) {
var t = e[n];
s.set(n, new Set), u.set(n, t)
}));
var c = !1, p = l().getInitCookieData(), f = l().getCachedData(), v = m(),
y = Be(e).reduce((function (n, t) {
var r = t, o = e[t];
return n[t] = (null == f ? void 0 : f[r]) || o.init(null == p ? void 0 : p[r], (function (e) {
v.add(r, e)
})), null != f && f[r] || (c = !0), n
}), {});
r = y, c && l().updateData(y), v.call(), l().onUpdateData((function (e) {
return h(e)
})), null == t || t(g())
}
}, set: _, get: w, update: function (e) {
return b(e)
}, refresh: function () {
var e;
if (l().setProtectionData(((e = {})[xr] = !0, e))) return !1;
var n = [];
u.forEach((function (e, t) {
return n.push(t)
}));
var t = n.reduce((function (e, n) {
return e[n] = Pr, e
}), {});
return y(t), !0
}, protect: function (e, n) {
return k(e, n)
}, addChangeListener: C, removeChangeListener: function (e) {
c.delete(e), s.forEach((function (n) {
return n.delete(e)
}))
}, terminate: function () {
null == i || i.terminate(), s.clear(), c.clear(), i = null, a = !1, r = {}
}, updateMigration: function () {
a && Sr(g())
}, get isReady() {
return a
}, utils: {
validateModifier: $n, validateConsent: Kn, checkConsent: wr, setConsent: function (e, n, t) {
w("consent");
var r = zn(w("purposes"), 0, e, n, t);
return r ? r.error ? r.error : (_({consent: r.consent, purposes: r.purposes}), null) : null
}, getConsent: function () {
var e = w(["consent", "purposes"]), n = e.consent, t = e.purposes;
return Hn(n, t)
}, notAcquiredConsent: Ln() ? Be(Tn).reduce((function (e, n) {
return e[n] = {mode: "not-acquired", products: Tn[n]}, e
}), {}) : null
}, get cookies() {
return f()
}, get cookieEnabled() {
return f()
}, setUnsafe: function (e, n) {
y(e, n, !0)
}, protectUnsafe: function (e, n) {
return k(e, n, !0)
}, updateUnsafe: function (e) {
return b(e, !0)
}, setCookieEnabled: function (e) {
d((function (n) {
var t = Be(e);
t.length ? t.forEach((function (t) {
var r = n[t];
r && r.setCookieEnabled(e[t])
})) : Be(n).forEach((function (t) {
n[t].setCookieEnabled(e)
}))
}))
}
}
}(qt, ar, (function (e) {
Or(e), Sr(e), function (e) {
var n = null, t = {}, r = function (n) {
var r = Hn(n, e.get("purposes"));
if (r && n) {
var o = !1, i = Be(r).reduce((function (e, i) {
var a = r[i].mode;
return r[i].products.forEach((function (r) {
var i;
a !== (null === (i = n[r]) || void 0 === i ? void 0 : i.mode) && (Un(a, r) ? t[r] || (t[r] = !0, Mr(r, a, 1)) : (e[r] = {mode: a}, o = !0, Mr(r, a, 2)))
})), e
}), {});
o && e.updateValues({consent: i})
}
};
e.addChangeListener("consent", (function (e) {
Ln() && (n && (clearTimeout(n), n = null), n = setTimeout((function () {
r(e), n = null
}), 200))
})), Ln() && r(e.get("consent"))
}(e)
})), Rr = function (e) {
return function () {
var n = e.dataLayer.get("consent");
return n && n[e.productName] || null
}
}, Lr = function (e, n) {
var t = null, r = function (r) {
var o = (null == r ? void 0 : r[e.productName]) || null;
o !== t && (t = o, n(o))
};
return e.dataLayer.addChangeListener("consent", r), function () {
e.dataLayer.removeChangeListener(r)
}
}, Ur = function (e, n) {
return e.utils.checkConsent.createCheckConsentWrapper(n)
}, Dr = function (e, n, t) {
var r = e.utils.checkConsent, o = r.itemsToMask(n), i = Object.keys(n).filter((function (e) {
return !r.isMask(e)
}));
return t().filter((function (e) {
return i.includes(e) || r.getByMask(e, o)
}))
}, jr = function (e, n, t) {
var r = Rr(t), o = Ur(t.dataLayer, {items: t.items, type: n, getConsent: r}), i = function (n) {
var r;
null === (r = o(Dr(t.dataLayer, t.items, e.getNames), n)) || void 0 === r || r.forEach((function (n) {
n.allowed ? n.data && e.set(n.name, n.data) : e.remove(n.name)
}))
};
return function () {
var e = void 0 === t.checkConsentOnInit && t.enableAutoRemove;
t.enableAutoRemove && Lr(t, i), e && i(r())
}(), Object.assign({}, e, {
set: function (n, t, r) {
var i, a = o(n);
if (null != a && a.allowed) {
var s = null !== (i = a.data) && void 0 !== i ? i : t, c = r ? [n, s, r] : [n, s];
e.set.apply(null, c)
}
}, check: o
})
}, Vr = function (e) {
var n = function (e) {
var n, t, r = Le.__protected__.ttlName, o = {dataLayer: e, productName: "DL"}, i = (t = Ur(o.dataLayer, {
items: (n = {}, n[r] = "mandatory", n),
type: "localStorage",
getConsent: Rr(o)
}), function () {
var e = t(r);
return e.allowed && !e.data
}), a = !0, s = function () {
(a = i()) || Le.remove(r)
};
return Lr(o, s), s(), function () {
return a
}
}(e.dataLayer), t = jr(Le, "localStorage", e);
return Object.assign({}, t, {
set: function (e, r, o) {
var i = o;
return (null == o ? void 0 : o.expires) && !n() && delete (i = Object.assign({}, o)).expires, t.set(e, r, i)
}
})
}, Fr = function (e) {
var n = e.dataLayer.utils.checkConsent, t = Rr(e), r = {}, o = [], i = {}, a = {};
Object.keys(e.items).forEach((function (t) {
var a = e.items[t];
if (a.type) {
var s = a, c = s.type, u = s.domain, l = s.path, d = {};
i[t] = c, u && (d.domain = u), l && (d.path = l), n.isMask(t) ? o.push(n.createMask(t, d)) : r[t] = d
} else i[t] = a
}));
var s, c = Ur(e.dataLayer, {items: i, type: "cookie", getConsent: t}), u = function (t) {
var s;
null === (s = c(Dr(e.dataLayer, i, Re.getNames), t)) || void 0 === s || s.forEach((function (e) {
var t = function () {
return r[e.name] || n.getByMask(e.name, o) || a
};
e.allowed ? e.data && Re.set(e.name, e.data, t()) : Re.remove(e.name, t())
}))
};
s = !(void 0 !== e.checkConsentOnInit || !e.enableAutoRemove), e.enableAutoRemove && (a = e.enableAutoRemove, Lr(e, u)), s && u(t());
return Object.assign({}, Re, {
check: c, set: function (e, n, t, r) {
var o, i = c(e);
null != i && i.allowed && Re.set(e, null !== (o = i.data) && void 0 !== o ? o : n, t, r)
}
})
}, Br = function (e, n) {
return void 0 === n && (n = ""), Object.entries(e).reduce((function (e, t) {
var r = t[0], o = t[1];
return e[r] = function (e, n) {
void 0 === n && (n = "Method");
var t = function () {
var t;
return null === (t = null == pn ? void 0 : pn.util) || void 0 === t || t.debug("".concat(n, " is deprecated")), e.apply(this, arguments)
};
return t.skipLog = e, t
}(o, n + String(r)), e
}), {})
},
qr = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(location.hostname),
zr = Ae.cookie.getTopLevelDomain(), Hr = {
COMPOSER: {
cookie: {
items: {
__tbc: "mandatory",
xbc: "mandatory",
__tac: "mandatory",
__tae: "mandatory",
__pls: {type: "mandatory", domain: zr, path: "/"},
"__pls_*": {type: "mandatory", domain: zr, path: "/"},
"_pc_*": {type: "mandatory", domain: "", path: "/"},
_pcus: "optional",
_pcer: {type: "essential", domain: zr, path: "/"}
}
},
localStorage: {
items: {
__pnml: "mandatory",
"__tp-customVariables": "essential",
"__tp-customVariables-expiration": "essential"
}, enableAutoRemove: !0
}
},
VX: {
cookie: {
items: {
"__ut_*": "mandatory",
__ut: "mandatory",
__pvi: "optional",
__pat: "optional",
__pnahc: "mandatory",
"glt_*": "optional",
"__utg_*": "optional",
__gom: "optional",
"tpcc_*": {type: "optional", domain: qr ? "" : zr, path: "/"}
}
},
localStorage: {
items: {
"__tp-gaAccount": "optional",
"__tp-trackOnlyAids": "optional",
"__tp-metricsGAAccount": "optional",
"__tp-exrs": "optional",
tp__unprocessedCookies: "optional",
"tp__unprocessedСookies": "optional",
"__tp-gaAccount-expiration": "optional",
"__tp-trackOnlyAids-expiration": "optional",
"__tp-metricsGAAccount-expiration": "optional",
"__tp-exrs-expiration": "optional"
}, enableAutoRemove: !0
}
},
DMP: {
cookie: {items: {cX_P: "essential"}, enableAutoRemove: {domain: zr, path: "/"}},
localStorage: {items: {_cX_P: "essential"}, enableAutoRemove: !0}
},
ID: {
cookie: {
items: {
__utp: "mandatory",
"__utp_*": "mandatory",
__pid: "mandatory",
__pil: "essential",
__idr: "essential",
__eea: "essential",
"piano-id-initial-gm-sso-shown-*": "mandatory"
}
}, localStorage: {items: {"pnid-tc-string": "optional"}, enableAutoRemove: !0}
}
}, Wr = ["opt-in", "essential", "opt-out", "custom"],
Gr = ["PA", "DMP", "COMPOSER", "ID", "VX", "ESP", "SOCIAL_FLOW", "DL"].reduce((function (e, n, t) {
var r;
return p(p({}, e), ((r = {})[n.toLowerCase()] = {name: n, id: t}, r))
}), {});
Gr["social flow"] = Gr.SOCIAL_FLOW;
var Jr = function (e) {
return Gr[e.toLowerCase()] || null
}, Qr = function () {
return window.pdl || null
}, Xr = function () {
var e;
return !(null === (e = Qr()) || void 0 === e || !e.requireConsent)
}, Yr = function () {
var e;
return "v2" === (null === (e = Qr()) || void 0 === e ? void 0 : e.requireConsent)
}, $r = function () {
return Xr() ? Yr() ? 2 : 1 : null
}, Kr = function () {
return !(Xr() && !Yr()) || (console.error('Consent v2 is disabled. To use the feature set pdl.requireConsent = "v2"'), !1)
}, Zr = function () {
return !Yr() || (console.error("Consent v2 is enabled. To change consent use tp.consent.setByPurpose or tp.consent.setAllPurposes"), !1)
}, eo = Object.entries({
AD: ["DMP", "SOCIAL_FLOW"],
CP: ["COMPOSER"],
AM: ["PA"],
PR: ["ESP", "VX", "ID"],
DL: ["DL"]
}).reduce((function (e, n) {
var t = n[0];
return n[1].forEach((function (n) {
e[Jr(n).id] = t
})), e
}), {}), no = function (e) {
var n = e.reduce((function (e, n) {
var t, r = n.id;
return p(p({}, e), ((t = {})[r] = 4, t))
}), {}), t = Nr.get("purposes") || {};
return {
addConsent: function (e, t) {
var r = Jr(e).id;
n[r] = function (e) {
return Wr.indexOf(e)
}(t)
}, addPurpose: function (e, n) {
t[Jr(e).id] = n
}, toModeParamString: function () {
return JSON.stringify(n)
}, toPurposeParamString: function () {
return Object.entries(t).some((function (e) {
var n = e[0];
return e[1] !== eo[n]
})) ? JSON.stringify(t) : null
}
}
};
pn.container.register("consent", {
useValue: function () {
var e = !1, n = [], t = {composer: null, vx: null, dmp: null, id: null};
var r = function (e) {
e(t)
}, o = Br({
setByPreset: function (e) {
Zr() && Nr.set("consent", e)
}, set: function (e, n) {
var t;
Zr() && ("string" == typeof e ? Nr.set("consent", ((t = {})[e] = n, t)) : Nr.set("consent", e))
}, get: function (e) {
var n = Nr.get("consent");
return e && n ? n[e] : n
}
}, "tp.consent.");
return {
setByPreset: o.setByPreset, set: o.set, get: o.get, setByPurpose: function (e, n, t) {
if (Kr()) {
if (!n) return void pn.util.error("consent.setByPurpose: mode is required");
var r = Nr.utils.setConsent(e, n, t);
r && pn.util.error("consent.setByPurpose: [DL]: " + r)
}
}, setAllPurposes: function (e) {
if (Kr()) {
var n = Nr.utils.setConsent(e);
n && pn.util.error("consent.setAllPurpose: [DL]: " + n)
}
}, getByPurpose: function () {
return Nr.utils.getConsent()
}, get composer() {
return t.composer
}, get vx() {
return t.vx
}, get dmp() {
return t.dmp
}, get id() {
return t.id
}, __protected__: {
getVersion: $r, addConsentsToParams: function (e) {
var n, t = Nr.get("products"), r = 2 === $r() ? Nr.utils.getConsent() : null,
o = 1 === $r() ? Nr.get("consent") : null,
i = !(null === (n = Qr()) || void 0 === n || !n.requireConsent);
if (!(r && o || i)) return e;
var a = no(t);
o && Object.keys(o).forEach((function (e) {
a.addConsent(e, o[e].mode)
})), r && Object.keys(r).forEach((function (e) {
var n = r[e], t = n.mode;
n.products.forEach((function (n) {
a.addConsent(n, t), a.addPurpose(n, e)
}))
}));
var s = a.toModeParamString(), c = a.toPurposeParamString();
return s && (e.consent_modes = s), c && (e.consent_purposes = c), e
}, init: function () {
var o, i = pn.debug ? function (e) {
var n;
null === (n = pn.util) || void 0 === n || n.debug("[PDL validation]: " + e)
} : void 0, a = Qr(), s = function () {
var e;
return (null === (e = Qr()) || void 0 === e ? void 0 : e.consent_modifiers) || null
}();
s && (Object.keys(s).forEach((function (e) {
var n, t = s[e], r = null === (n = Jr(e)) || void 0 === n ? void 0 : n.name;
r && (delete s[e], s[r] = t)
})), null === (o = Nr.get("products")) || void 0 === o || o.forEach((function (e) {
var n = e.name;
if (s[n]) {
var t = function (e) {
return pn.debug ? function (n) {
var t;
null === (t = pn.util) || void 0 === t || t.debug("[PDL validation]: consent_modifier: ".concat(e, " - ").concat(n))
} : void 0
}(n);
s[n] = Nr.utils.validateModifier(s[n], t)
}
}))), null != a && a.consent && (a.consent = Nr.utils.validateConsent(a.consent, i) || a.consent);
var c = {domain: pn.cookieDomain || Ae.cookie.getTopLevelDomain(), path: pn.cookiePath || "/"};
Object.entries(Hr).forEach((function (e) {
var n, r = e[0], o = e[1], i = r, a = i.toLowerCase(), s = {dataLayer: Nr, productName: i};
t[a] = {
cookie: Fr(p(p(p({}, s), o.cookie), {enableAutoRemove: null !== (n = o.cookie.enableAutoRemove) && void 0 !== n ? n : c})),
localStorage: Vr(p(p({}, s), o.localStorage))
}
})), n.forEach(r), n = [], e = !0
}, getConsentConfig: function () {
return pn.debug ? Hr : null
}, async: function (t) {
e ? r(t) : n.push(t)
}
}
}
}()
}), pn.consent = pn.container.resolve("consent");
var to = {
name: "cookie", raw: !1, set: function (e, n, t) {
var r = t;
Ae.cookie.set(e, n, r)
}, get: function (e) {
return Ae.cookie.get(e) || void 0
}, remove: function (e, n) {
return null !== Ae.cookie.get(e) && (Ae.cookie.remove(e, n), !0)
}
};
pn.container.register("cookie", {useValue: to}), pn.cookie = pn.container.resolve("cookie");
var ro = function () {
var e = function () {
try {
return window.localStorage
} catch (e) {
return null
}
}();
window.name || (window.name = Math.floor(1e8 * Math.random()));
return {
get: function (n) {
if (e && "function" == typeof e.getItem) {
var t = Ae.localStorage.get(n);
try {
return JSON.parse(t)
} catch (e) {
return t
}
}
}, set: function (n, t) {
!e || "function" != typeof e.getItem || Ae.localStorage.set(n, JSON.stringify(t))
}, remove: function (n) {
!e || "function" != typeof e.getItem || Ae.localStorage.remove(n)
}
}
}();
pn.container.register("localStorage", {useValue: ro}), pn.localStorage = pn.container.resolve("localStorage");
var oo = function () {
var e = function () {
return "1.9.34"
};
return window.__tpVersion = "1.9.34", {name: "versionService", getTinypassVersion: e}
}();
pn.container.register("versionService", {useValue: oo}), pn.versionService = pn.container.resolve("versionService");
var io = function (e) {
void 0 === e && (e = pn.container);
var n, t, r, o = e.resolve("ajax"), i = e.resolve("localStorage"), a = e.resolve("consent"), s = 3600, c = 2500,
u = "tp__unprocessedCookies", l = {};
function d() {
n && clearTimeout(n), n = setTimeout((function () {
o.request({
url: pn.cloudflareWorkerUrl + "?maxAge=2628000",
type: "POST",
data: JSON.stringify(l),
crossDomain: !0,
xhrFields: {withCredentials: !0},
success: function () {
l = {}, i.remove(u)
},
error: function (e, n) {
console.error(n)
}
})
}), c)
}
function p() {
try {
var e = i.get(u);
e && Object.keys(e).forEach((function (n) {
l[n] = e[n]
}))
} catch (e) {
console.error(e)
}
}
return t = "tp__unprocessedСookies", (r = i.get(t)) && (i.remove(t), i.get(u) || i.set(u, r)), {
name: "itp",
init: function () {
!pn.cloudflareWorkerUrl || !pn.util.isSafariOrUiWebView() || (p(), Object.keys(l).length > 0 && d())
},
synchronizeCookie: function (e, n, t) {
!pn.cloudflareWorkerUrl || !pn.util.isSafariOrUiWebView() || (p(), function (e, n, t) {
l[e] = {value: n}, t && (t instanceof Date ? l[e].expires = t : l[e].maxAge = t * s)
}(e, n, t), function () {
var e = a.vx;
null !== e && e.localStorage.set(u, JSON.stringify(l))
}(), d())
}
}
}();
pn.container.register("itp", {useValue: io}), pn.itp = pn.container.resolve("itp");
pn.container.register("util", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t = e.resolve("jqUtils"), r = e.resolve("cookie"), o = e.resolve("versionService"),
i = e.resolve("itp"), a = e.resolve("consent"), s = "",
c = {ENABLED_AFTER_DISABLED: -2, NOT_DETECTED: -1, DISABLED: 0, ENABLED: 1};
void 0 === "testString".toHex && Object.defineProperty(String.prototype, "toHex", {
enumerable: !1,
value: function () {
for (var e = "", n = 0; n < this.length; ++n) e += "" + this.charCodeAt(n).toString(16);
return e
}
});
var u = function (e, n, t) {
var o = {path: "/", expires: 0};
void 0 !== n && (o.domain = n), void 0 !== t && (o.path = t), r.remove(e, o)
}, l = function (e, n, t) {
-1 !== n.indexOf("abril.com.br") && u(e, ".abril.com.br", t), -1 !== n.indexOf("scotsman.com") && u(e, ".scotsman.com", t)
}, d = function (e) {
var n;
if (0 === document.cookie.length) return null;
if (e instanceof RegExp) for (var t = document.cookie.split(";"), r = 0; r < t.length; r++) {
var o = t[r].indexOf("=");
if (-1 !== o) {
var i, a = t[r].substr(0, o).trim();
if (e.test(a)) {
i = t[r].substr(o + 1).trim();
try {
return decodeURIComponent(i)
} catch (n) {
m('Could not uri-decode cookie "' + e.toString() + '"', n)
}
return i
}
}
} else {
var s = ("; " + document.cookie).split("; " + e + "=");
if (s.length >= 2) {
var c = null === (n = s.pop()) || void 0 === n ? void 0 : n.split(";").shift();
if (void 0 === c) return null;
try {
return decodeURIComponent(c)
} catch (n) {
m('Could not uri-decode cookie "' + e + '"', n)
}
return c
}
}
return null
}, f = function (e) {
if (0 === document.cookie.length) return [];
for (var n = [], t = document.cookie.split(";"), r = 0; r < t.length; r++) {
var o = t[r].indexOf("=");
if (-1 !== o) {
var i, a = t[r].substr(0, o).trim();
if (e instanceof RegExp && e.test(a)) {
i = t[r].substr(o + 1).replace(/^\s+|\s+$/g, "");
try {
i = decodeURIComponent(i)
} catch (n) {
m('Could not uri-decode cookie "' + e.toString() + '"', n)
}
n.push({name: a, value: i})
} else if (a === e) {
i = t[r].substr(o + 1).replace(/^\s+|\s+$/g, "");
try {
i = decodeURIComponent(i)
} catch (n) {
m('Could not uri-decode cookie "' + e + '"', n)
}
n.push({name: a, value: i})
}
}
}
return n
};
function m() {
for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];
!0 === pn.debug && g.apply(void 0, e)
}
function v() {
for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];
var t;
g.apply(void 0, e), (t = "string" == typeof arguments[0] ? new Error(arguments[0]) : new Error).stack && g(t.stack)
}
function g() {
for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];
if (window.console && window.console.log && window.console.log.apply && window.console.log.apply.call && void 0 !== window.console && void 0 !== window.console.log) {
var t = ["TP:"];
try {
for (var r = 0; r < e.length; r++) t.push(e[r])
} catch (n) {
t = e
}
$() && (t = y(t)), "object" == _typeof(window.console.log) ? window.console.log.apply.call(this, console, t) : console.log.apply(console, t)
}
}
var h = function () {
var e = 0;
return window.pageYOffset ? e = window.pageYOffset : e = "number" == typeof (e = document.documentElement || document.body.parentNode).scrollTop ? e.scrollTop : document.body.scrollTop, e
}, y = function (e) {
var n = "";
try {
for (var t = 0; t < e.length; t++) try {
n += JSON.stringify(e[t]) + ", "
} catch (e) {
n += "" + e
}
return [n]
} catch (n) {
return e
}
}, w = function () {
var e, n;
return "CSS1Compat" === document.compatMode ? (e = document.documentElement.clientWidth, n = document.documentElement.clientHeight) : (e = document.body.clientWidth, n = document.body.clientHeight), {
x: e,
y: n
}
}, _ = function (e) {
e = e.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var n = new RegExp("[\\?&]" + e + "=([^]*)").exec(location.search);
return null === n ? "" : decodeURIComponent(n[1].replace(/\+/g, " "))
}, b = function (e) {
var n = e(location.href);
if (history && "function" == typeof history.replaceState) {
var t = "object" == _typeof(window.next) && "object" == _typeof(window.next.router) ? {
url: e(history.state.url || ""),
as: e(history.state.as || ""),
options: history.state.options
} : history.state;
history.replaceState(t, document.title, n)
} else location.href = n
}, k = function (e, n, t) {
var r = p({path: "/", expires: 730}, t && {domain: t}), o = T();
for (var i in o) u(e, o[i]);
r.domain && l(e, r.domain), (pn.cookieDomain || pn.cookiePath) && (r.domain = pn.cookieDomain ? pn.cookieDomain : r.domain, u(e, r.domain, r.path), r.path = pn.cookiePath ? pn.cookiePath : r.path, u(e, r.domain, r.path)), u(e), J("composer", e, n, r)
}, C = function () {
return Ae.cookie.getTopLevelDomain()
}, I = function (e) {
return pn.useAidSpecifiedCookies && pn.aid ? e + "_" + pn.aid : e
}, S = function () {
var e, n = I("__pls"), t = d(n);
if (t) try {
if ((e = JSON.parse(t)) && !Array.isArray(e)) throw new Error("Push list subscriptions must be an array")
} catch (e) {
m("Can't get push list subscriptions", e)
}
return e
}, E = function (e) {
n = e;
var t = C();
J("vx", "__pat", n, {path: "/", expires: 30, domain: t})
}, T = function () {
var e, n = [];
n.push(document.domain);
for (var t = (null === (e = document.domain) || void 0 === e ? void 0 : e.split(".")) || []; t.length >= 2;) n.push("." + t.join(".")), t.shift();
return n
}, P = function (e) {
var n = G(e);
return "boolean" === t.type(n) || "string" === t.type(n) && n.length ? !0 === n || "true" === n ? c.ENABLED : c.DISABLED : c.NOT_DETECTED
}, x = function () {
var e = G("__pnahc"), n = !1;
return void 0 === e && (e = "0", n = !0), {cookieValue: parseInt(e, 10), isFirst: n}
}, A = {}, O = function (e) {
A[e] ? A[e].counter++ : A[e] = {counter: 1, waiters: []}
}, M = function (e, n) {
if (A[e] && (A[e].counter--, A[e].counter <= 0)) {
var t = [];
A[e].waiters.forEach((function (e) {
t.push(e)
})), delete A[e], t.forEach((function (e) {
e(void 0 !== n ? n : {})
}))
}
}, N = function () {
return navigator.userAgent || navigator.vendor || window.opera
}, R = function () {
return o.getTinypassVersion().indexOf("SNAPSHOT") >= 0
}, L = function () {
return "https:" === document.location.protocol
}, U = function (e, n) {
var t = [], r = e.indexOf(n);
return -1 === r ? t.push(e) : (t.push(e.substr(0, r)), t.push(e.substr(r + 1))), t
}, D = function (e) {
var n, t, r = U(e, "=");
void 0 !== e && (n = r[0], t = r[1]);
var o = "";
return void 0 !== n && (o += encodeURIComponent(decodeURIComponent(n))), void 0 !== t && (o += "=" + encodeURIComponent(decodeURIComponent(t))), o
}, j = function (e) {
if (!e) return "";
var n = function (e) {
var n = e.indexOf("?"), t = e.indexOf("#"), r = !1;
-1 !== t && (r = !0);
var o = !1;
-1 !== n && (o = !0), r && o && t < n && (o = !1);
var i, a = "", s = "";
if (o) {
var c = U(e, "?");
if (i = c[0], r) {
var u = U(c[1], "#");
a = u[0], s = u[1]
} else a = c[1]
} else if (r) {
var l = U(e, "#");
i = l[0], s = l[1]
} else i = e;
return {schemeDomainAndPath: i, queryString: a, hash: s, hasQueryString: o, hasHash: r}
}(e = e.replace(/^((%20)|\s)+/, "")), t = encodeURI(decodeURI(n.schemeDomainAndPath));
return n.hasQueryString && (t += "?" + function (e) {
var n = "";
if (void 0 !== e) for (var t = e.split("&"), r = 0; r < t.length; r++) r > 0 && (n += "&"), n += D(t[r]);
return n
}(n.queryString)), n.hasHash && (t += "#" + encodeURIComponent(decodeURIComponent(n.hash))), t
}, V = function (e) {
var n = parseInt(e, 10);
return !(isNaN(parseFloat(n)) || n < 0 || n > 255)
}, F = function (e) {
var n = document.createElement("a");
n.href = /^https?:\/\//i.test(e) ? e : "http://" + e;
var t = n.hostname;
return 0 === t.indexOf("www.") && (t = t.replace("www.", "")), t
};
function B() {
return null !== N().match(/Version.+Safari/)
}
var q = function (e, n) {
return new RegExp("\\?" + n, "gi").test(e) ? e.split("&").length > 1 ? e.replace(new RegExp(n + "[^&]+&?", "gi"), "") : e.replace(new RegExp("\\?" + n + "[^&]+&?", "gi"), "") : new RegExp("\\&" + n, "gi").test(e) ? e.replace(new RegExp("\\&" + n + "[^&]+", "gi"), "") : e
}, z = function (e) {
try {
var n = new Error;
H({trace: ee(n.stack, 6), desc: "clearing __tp cookie", accessTokenList: e})
} catch (e) {
}
}, H = function (e) {
try {
var n = pn.user.getProvider(), t = JSON.stringify([p({
aid: pn.aid,
up: n.getName(),
url: window.location.href,
t: (new Date).getTime(),
v: o.getTinypassVersion(),
tags: ["sdk"]
}, e)]);
pn.api.callApi("/anon/error/log", {log_message: t})
} catch (e) {
}
};
var W = function (e) {
e || (e = 730);
var n = pn.getMaxCookieExpirationInDays();
if (null !== n) {
var t;
"number" == typeof e ? (t = new Date).setDate(t.getDate() + e) : t = e;
var r = new Date;
if (r.setDate(r.getDate() + n), t > r) return n
}
return e
}, G = function (e) {
return r.get(e)
}, J = function (e, n, t, o) {
var i;
a[e] || m("CONSENT ERROR: Consent module was not initiliazed"), Q(n, t, o, (null === (i = a[e]) || void 0 === i ? void 0 : i.cookie.set) || r.set)
}, Q = function (e, n, t, o) {
void 0 === o && (o = r.set), t = t || {}, "11C6aYHwtb" === pn.aid ? (t.samesite = "none", t.secure = !0) : t.samesite = "lax", t.expires && (t.expires = W(t.expires)), o(e, n, t), void 0 !== i.synchronizeCookie && i.synchronizeCookie(e, n, t.expires)
}, X = "__tp-", Y = "-expiration", $ = function () {
var e = ["__webdriver_evaluate", "__selenium_evaluate", "__webdriver_script_function", "__webdriver_script_func", "__webdriver_script_fn", "__fxdriver_evaluate", "__driver_unwrapped", "__webdriver_unwrapped", "__driver_evaluate", "__selenium_unwrapped", "__fxdriver_unwrapped"],
n = ["_phantom", "__nightmare", "_selenium", "callPhantom", "callSelenium", "_Selenium_IDE_Recorder"];
for (var t in n) {
if (window[n[t]]) return !0
}
for (var r in e) {
var o = e[r];
if (window.document[o]) return !0
}
for (var i in window.document) if (i.match(/\$[a-z]dc_/) && window.document[i].cache_) return !0;
return !!(window.external && window.external.toString && window.external.toString() && -1 !== window.external.toString().indexOf("Sequentum") || window.document.documentElement.getAttribute("selenium") || window.document.documentElement.getAttribute("webdriver") || window.document.documentElement.getAttribute("driver"))
}, K = function () {
return G("__tac")
}, Z = function () {
return document.referrer
}, ee = function (e, n) {
return e && e.split("\n").filter((function (e, t) {
return t > 1 && t < n + 1
})).map((function (e) {
return e.trim()
})).join("")
}, ne = function e(n, t) {
try {
return n()
} catch (n) {
return t ? e(t) : null
}
}, te = function (e, n) {
return void 0 === n && (n = !1), ne((function () {
return JSON.parse(e)
}), (function () {
return n ? JSON.parse(window.atob(e)) : null
})) || null
}, re = function () {
return Nr.isReady ? Nr.get("userSegments") : null
};
return {
name: "util",
__private__: {getAdjustedCookieExpiration: W},
__protected__: {
deleteTLDCookieForSpecificDomains: l, documentReady: function (e) {
var n = function n() {
document.removeEventListener("DOMContentLoaded", n), window.removeEventListener("load", n), e()
};
"complete" === document.readyState || "loading" !== document.readyState && !document.documentElement.doScroll ? window.setTimeout(e) : (document.addEventListener("DOMContentLoaded", n), window.addEventListener("load", n))
}, getCookie: G, setCookieConsent: J, setCookie: Q, getLocalStorageItem: function (e) {
var n = X + e, t = Ae.localStorage.get(n), r = Ae.localStorage.get(n + Y);
return r && r < Math.floor((new Date).getTime() / 1e3) ? (Ae.localStorage.remove(n), Ae.localStorage.remove(n + Y), null) : t
}, hasLocalStorage: function () {
try {
return "object" == _typeof(window.localStorage) && "function" == typeof window.localStorage.getItem
} catch (e) {
return !1
}
}, randomStringCxCompatible: function () {
for (var e = (new Date).getTime().toString(36); e.length < 16;) e += Math.round(2147483647 * Math.random()).toString(36);
return e.substr(0, 16)
}, setLocalStorageItem: function (e, n, t, r, o) {
void 0 === o && (o = !0);
var i = (o ? X : "") + n, s = a[e];
s ? s.localStorage.set(i, t, {expires: r}) : v("There is no such initiated consentProduct ->", e)
}, removeLocalStorageItem: function (e) {
var n = X + e;
Ae.localStorage.remove(n)
}, cameFromFbSubscriptions: function () {
return 0 === _("redirect_uri").indexOf("https://www.facebook.com/subscriptions/account-linking/confirm/")
}, logRemoveTokens: function (e) {
var n, t;
H({
uid: null !== (n = e.uid) && void 0 !== n ? n : "n",
desc: "clearing __utp cookie",
actions: null !== (t = e.actions) && void 0 !== t ? t : "n"
})
}, waitAllPromises: function (e) {
return Promise.all(e)
}, isInteger: function (e) {
return "number" == typeof e && isFinite(e) && Math.floor(e) === e
}, racePromise: function (e) {
return Promise.race(e)
}, isCxenseBot: function () {
var e = N();
return /(cxensebot)/i.test(e)
}, isHttpsProtocol: L, isApplePayAllowed: function () {
var e = !1;
try {
e = B() && window.ApplePaySession && window.ApplePaySession.canMakePayments()
} catch (e) {
g("ApplePay error", e)
}
return (R() || L()) && e
}, isDevEndpoint: R, setVxUsersToDataLayer: function (e) {
var n = Nr.get("users"), t = !1, r = n ? Object.keys(n).reduce((function (e, r) {
var o;
return "VX" === (null === (o = n[r]) || void 0 === o ? void 0 : o.type) && (t = !0, e[r] = null), e
}), {}) : {};
(n && t || e) && Nr.set("users", p(p({}, r), e))
}
},
toJSON: function (e, n) {
void 0 === n && (n = !1);
var t = JSON.stringify(e);
return ne((function () {
return n ? window.btoa(t) : t
})) || t
},
parseJSON: te,
addScript: function (e, n) {
var t, r = document.createElement("script"), o = document.getElementsByTagName("script")[0];
null === (t = o.parentNode) || void 0 === t || t.insertBefore(r, o), r.type = "text/javascript", r.async = !0, r.onload = n, r.src = e
},
isScriptAdded: function (e) {
for (var n = document.getElementsByTagName("script"), t = 0, r = n.length; t < r; t++) if (n[t].src.indexOf(e) > -1) return !0;
return !1
},
fromUnderscoreToCamelCase: function (e) {
return e.slice().replace(/_[a-z]/g, (function (e) {
return e.replace("_", "").toUpperCase()
}))
},
randomString: function (e) {
e || (e = 5);
var n = "", t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
if (window.crypto && window.crypto.getRandomValues && "function" == typeof Uint32Array) {
var r = new Uint32Array(e);
window.crypto.getRandomValues(r);
for (var o = 0; o < e; o++) n += t.charAt(r[o] % 62)
} else for (o = 0; o < e; o++) n += t.charAt(Math.floor(62 * Math.random()));
return n
},
log: g,
debug: m,
error: v,
findCookieByName: d,
findCookiesByName: f,
removeVoucherCodeFromUrl: function (e) {
return q(e, "voucher_code")
},
removeSharedAccountCodeFromUrl: function (e) {
return q(e, "shared_account_code")
},
deleteCookie: u,
mapArrayIndex: function (e, n) {
return n
},
getScroll: h,
getPageSize: function () {
return {
x: Math.max(document.documentElement.clientWidth, document.body.scrollWidth, document.documentElement.scrollWidth, document.body.offsetWidth, document.documentElement.offsetWidth),
y: Math.max(document.documentElement.clientHeight, document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight)
}
},
getViewport: w,
center: function (e, n) {
var t = h(), r = w();
return (r = {
x: r.x / 2 - e / 2,
y: r.y / 2 - n / 2 + t
}).x = Math.max(0, r.x), r.y = Math.max(10, r.y), r
},
centerScreen: function (e, n) {
e = e || 0, n = n || 0;
var r = void 0 !== window.screenLeft ? window.screenLeft : window.screen.left,
o = void 0 !== window.screenTop ? window.screenTop : window.screen.top, i = t.winSize();
return {
left: (i.width || document.documentElement.clientWidth || window.screen.width) / 2 - e / 2 + r,
top: (i.height || document.documentElement.clientHeight || window.screen.height) / 2 - n / 2 + o
}
},
getQueryParamByName: _,
hasQueryParamByName: function (e) {
var n = {};
return location.search.substr(1).split("&").forEach((function (e) {
var t = e.split("="), r = t[0], o = t[1] && decodeURIComponent(t[1]);
r in n ? n[r].push(o) : n[r] = [o]
})), n.hasOwnProperty(e)
},
removeQueryParamByName: function (e) {
b((function (n) {
return function (e, n) {
var t, r = e.split("#"), o = r[0].split("?");
if (r.length >= 2 && (t = r[1]), n = Array.isArray(n) ? n : [n], o.length >= 2) {
for (var i = o[1].split(/[&;]/g), a = 0; a < n.length; a++) for (var s = encodeURIComponent(n[a]) + "=", c = i.length; c-- > 0;) -1 !== i[c].lastIndexOf(s, 0) && i.splice(c, 1);
return e = o[0] + (i.length > 0 ? "?" + i.join("&") : ""), t ? e + "#" + t : e
}
return e
}(n, e)
}))
},
setAccessTokenListCookie: function (e, n, r) {
var o = I("__ut");
if (e && "string" === t.type(e.value)) {
var i = new Date, a = {domain: void 0, path: "/", expires: 730, secure: !0};
e.cookie_domain && "localhost" !== e.cookie_domain && t.inArray(e.cookie_domain, T()) >= 0 && (a.domain = e.cookie_domain), pn.cookieDomain && (a.domain = pn.cookieDomain), pn.cookiePath && (a.path = pn.cookiePath);
var s = T();
for (var c in s) u("__tac", s[c]), u("__tae", s[c]), u(o, s[c]);
e.value && J("composer", "__tac", e.value, a), J("composer", "__tae", i.getTime(), a), J("vx", o, n, a), "" === n && !r && z(e)
} else {
var l = T();
if (l.push(void 0), pn.cookieDomain && l.push(pn.cookieDomain), pn.cookiePath) for (var c in l) u("__tac", l[c], pn.cookiePath), u("__tae", l[c], pn.cookiePath), u("__eea", l[c], pn.cookiePath), u(o, l[c], pn.cookiePath);
for (var c in l) u("__tac", l[c]), u("__tae", l[c]), u("__eea", l[c]), u(o, l[c]);
r || z(e)
}
},
setTpccCookies: function () {
var e = _("tpcc");
if (e) {
var n = new Date, t = JSON.stringify({date: n.getTime()}), r = C();
/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(location.hostname) && (r = ""), r || (r = ""), J("vx", "tpcc_" + e, t, {
path: "/",
expires: 90,
domain: r
})
}
},
getCampaigns: function (e) {
var n = f(/^tpcc_.+/), t = _("tpcc"), r = "tpcc_".concat(t), o = !1;
n.forEach((function (n) {
e[n.name] = n.value, t && n.name === r && (o = !0)
})), t && !o && (e[r] = JSON.stringify({date: Date.now()}))
},
getCustomCookies: function () {
var e = {};
return f(/^_pc_.+/).forEach((function (n) {
e[decodeURIComponent(n.name)] = n.value
})), e
},
ADBLOCKER_STATUS: c,
getAdblockStatus: function () {
var e = c.NOT_DETECTED, n = x();
return pn.adblockerCookieName && (e = P(pn.adblockerCookieName)), e === c.NOT_DETECTED && (e = P("__pac")), e === c.NOT_DETECTED && (e = P("__adblocker")), function (e, n) {
e <<= 1, n === c.ENABLED ? e |= 1 : e &= -2, n !== c.NOT_DETECTED && J("vx", "__pnahc", e + "", {
path: "/",
expires: 90
})
}(n.cookieValue, e), e === c.ENABLED && (n.isFirst || function (e) {
return 1 == (e >> 0 & 1)
}(n.cookieValue) || (e = c.ENABLED_AFTER_DISABLED)), e
},
getAdblockerStatusReason: function () {
return void 0 !== window.blockAdBlock ? "1" : "0"
},
getAdblockerHistoryCookieInfo: x,
waitCall: function (e, n) {
A[e] ? A[e].waiters.push(n) : n()
},
startCall: O,
doneCall: M,
hasCall: function (e) {
return !!A[e]
},
debounce: function (e, n, t) {
var r;
return function () {
var o = this, i = Array.prototype.slice.call(arguments), a = t && !r;
clearTimeout(r), r = setTimeout((function () {
r = null, t || e.apply(o, i)
}), n), a && e.apply(o, i)
}
},
throttle: function (e, n) {
var t, r, o = !1;
return function i() {
if (o) return t = arguments, void (r = this);
e.apply(this, arguments), o = !0, setTimeout((function () {
o = !1, t && (i.apply(r, t), t = r = null)
}), n)
}
},
profile: function (e) {
function n() {
return n.__invokeCount++, e.apply(this, arguments)
}
return Object.defineProperty(n, "__invokeCount", {
writable: !0,
value: 0
}), Object.defineProperty(n, "invokeCount", {
get: function () {
return this.__invokeCount
}
}), n
},
setTbcCookieFromResponse: function (e) {
e && e.browser && void 0 !== e.browser.tbc && k("__tbc", e.browser.tbc, e.browser.cookie_domain), e && e.tbc && e.tbc.cookie_value && k("__tbc", e.tbc.cookie_value, e.tbc.cookie_domain)
},
setTacCookieFromResponse: function (e) {
var n = (new Date).getTime(), t = K(), r = function (e, r) {
!e || e === t || (k("__tac", e, r), k("__tae", n, r))
};
e.browser && r(e.browser.tac, e.browser.cookie_domain), e.tac && r(e.tac.cookie_value, e.tac.cookie_domain)
},
setXbcCookieFromResponse: function (e) {
var n = "xbc";
if (e.xbc && e.xbc.cookie_value) {
var t = {path: "/", expires: 730};
if (e.xbc.cookie_domain && "localhost" !== e.xbc.cookie_domain && (t.domain = e.xbc.cookie_domain, l(n, e.xbc.cookie_domain)), pn.cookieDomain || pn.cookiePath) {
var r = T();
for (var o in r) u(n, r[o]);
t.domain = pn.cookieDomain ? pn.cookieDomain : t.domain, l(n, t.domain, t.path), t.path = pn.cookiePath ? pn.cookiePath : t.path, l(n, t.domain, t.path)
}
u(n), J("composer", n, e.xbc.cookie_value, t)
}
},
getTbcCookie: function () {
return G("__tbc")
},
getPcidCookie: function () {
return G("_pcid")
},
getTacCookie: K,
getAidSpecifiedName: I,
getUserTokenCookie: function () {
var e = I("__ut"), n = d(e);
return void 0 !== n && n && n.length >= 0 ? n : null
},
getPushListsCookie: S,
setPushListsCookie: function (e) {
if (e) {
var n = I("__pls"), t = S() || [];
t.indexOf(e) > -1 || (t.push(e), u(n), J("composer", n, JSON.stringify(t), {
path: "/",
expires: 730,
domain: C()
}))
}
},
setAppTimezoneOffsetFromResponse: function (e) {
e && e.browser && void 0 !== e.browser.app_timezone_offset ? E(e.browser.app_timezone_offset) : e && void 0 !== e.timezone_offset && E(e.timezone_offset)
},
setAppTimezoneOffset: E,
getAppTimezoneOffset: function () {
return null == n && (n = G("__pat")), n || 0
},
getBrowserTimezoneOffset: function () {
return -Math.round((new Date).getTimezoneOffset())
},
str2timestamp: function (e) {
if (void 0 !== e && 0 !== e.length) {
if ("string" != typeof e && (e = "" + e), (e = e.trim()).match(/^[0-9]{0,10}$/)) return parseInt(e);
if (e.match(/^[0-9]{13,}$/)) return parseInt(e) / 1e3;
var n = Date.parse(e);
if (n) return n / 1e3;
if ((e = (e = (e = (e = e.replace(/00:([0-9]{2}(:[0-9]{2})?\s*[AP]M)/i, "12:$1").replace(/([0-9]{2})([AP|M])/i, "$1 $2")).replace(/\s*(at|@|\-|on|\|)\s*/gi, " ")).replace(/\s*(mon(day)?|tue(s?day)?|wed(nesday)?|thu((rs)?day)?|fri(day)?|sat(urday)?|sun(day)?)\s*/gi, "")).replace(/([0-9]{1,2})(st|nd|rd|th)/, "$1")).match(/\s+ET$/)) e = 240 === (new Date).getTimezoneOffset() ? e.replace(/\s+ET$/, " EDT") : e.replace(/\s+ET$/, " EST");
if (e = e.trim(), n = Date.parse(e)) return n / 1e3;
var t = e.match(/!^([a-z]+)[-/ ]([0-9]+)[-/ ]([0-9]+)(.*)$!i/);
if (t ? e = t[2] + " " + t[1] + " " + t[3] + t[4] : (t = e.match(/!^([0-9]+)[-/ ]([a-z]+)[-/ ]([0-9]+)(.*)$!i/)) && (e = t[1] + " " + t[2] + " " + t[3] + t[4]), n = Date.parse(e)) return n / 1e3
}
},
getPossibleCookieDomains: T,
isMobileTabletIOs: function () {
var e = N();
return /iPad|iPhone|iPod/.test(e) && !window.MSStream
},
isIphone: function () {
var e = N();
return /iPhone/.test(e) && !window.MSStream
},
isIOS: function () {
var e = N();
return /iPad|iPhone|iPod/.test(e) && !window.MSStream
},
isIOsUiWebView: function () {
var e = N();
return /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e)
},
isSafariOrIOsUiWebView: function () {
var e = N();
return /(iPhone|iPod|iPad).*AppleWebKit/i.test(e)
},
isSafariOrUiWebView: function () {
var e = N();
return /(Macintosh|iPhone|iPod|iPad)(?!.*Chrome)(?!.*Firefox)(?!.*Opera)(?!.*MSIE)(?!.*Trident)(.*AppleWebKit|.*Safari)/i.test(e)
},
isFBOrInstWebView: function () {
var e = N();
return e.indexOf("FBAN") > -1 || e.indexOf("FBAV") > -1 || e.indexOf("Instagram") > -1
},
isAndroid: function () {
var e = N();
return /(android)/i.test(e)
},
isSafari: B,
isIE: function () {
var e = -1 !== (navigator && navigator.appVersion || "").indexOf("MSIE"),
n = (navigator && navigator.userAgent || "").indexOf("Trident/") > 0;
return e || n
},
isCriOS: function () {
return -1 !== (navigator && navigator.userAgent || "").indexOf("CriOS")
},
isEdge: function () {
return /Edg(e?)/i.test(N())
},
isRelativeUrl: function (e) {
return /^\/(?:\w+|\.{1,2}\/\w+)/.test(e)
},
prepareUrlParameter: j,
getReferrer: Z,
getHostname: F,
extractCookieDomain: function (e) {
if (e && e.length && "." === e[0]) return e;
var n = e || window.location.href, t = F(n);
return function (e) {
var n = e.split("."), t = !0;
return 4 === n.length && V(n[0]) && V(n[1]) && V(n[2]) && V(n[3]) || (t = !1), t
}(t) ? t : "localhost" === t ? null : "." + t
},
setCurrentDomainFromResponse: function (e) {
e && void 0 !== e.browser && void 0 !== e.browser.cookie_domain && M("domainIsReceived", e.browser.cookie_domain), e && e.tbc && e.tbc.cookie_domain && M("domainIsReceived", e.tbc.cookie_domain)
},
getCurrentDomainFromCookie: function (e, n) {
void 0 === n && (n = !1);
try {
return te(G(e), n).domain
} catch (e) {
O("domainIsReceived")
}
},
isBot: $,
getAffiliateToken: function (e) {
var n = window.location.hash.slice(1);
if (n) {
var t = n.split("="), r = t[0], o = t[1];
r && o && r === e && (b((function (e) {
return e.split("#")[0]
})), s = o)
}
return s
},
removeAffiliateToken: function () {
s = ""
},
asUint8Array: function (e) {
for (var n = new Uint8Array(e.length), t = e.split(""), r = 0; r < e.length; r++) n[r] = t[r].charCodeAt(0);
return n
},
setUserSegments: function (e) {
var n = e.userSegments || {}, t = Object.keys(n).reduce((function (e, t) {
var r = n[t].segments;
return Array.isArray(r) && r.length && (e[t] = {segments: n[t].segments}), e
}), {});
Nr.set("userSegments", Object.keys(t).length ? t : null)
},
getPageViewContext: function () {
var e = Nr.isReady && Nr.get("content") || {},
n = e.createdAt ? new Date(e.createdAt).getTime() : 0;
return (!n || isNaN(n)) && (n = void 0), {
pageTitle: e.title || window.document.title,
referrerUrl: j(Z() || window.document.referrer),
url: j(window.location.href),
pageViewId: Nr.isReady && Nr.get("pageViewId") || null,
author: (e.authors || []).join(","),
created: n,
section: e.section,
tags: e.tags,
contentType: e.type || ""
}
},
getBrowserId: function () {
return Nr.isReady ? Nr.get("browserId") : null
},
getCookieConsents: function () {
return Nr.utils.getConsent() || Nr.utils.notAcquiredConsent
},
getUserSegments: re,
getUserSegmentsString: function () {
return JSON.stringify(re())
},
requireJsFile: function (e) {
return new Promise((function (n, t) {
var r = document.createElement("script");
r.onload = n, r.onerror = n, r.type = "text/javascript", r.charset = "utf-8", r.async = !0, r.src = e, document.getElementsByTagName("head")[0].appendChild(r)
}))
}
}
}()
}), pn.util = pn.container.resolve("util");
var ao = "composer-control-policy", so = "composer-request-control-policy", co = function (e) {
var n = {}, t = e;
if (e) {
if ("object" != _typeof(e)) try {
t = JSON.parse(e)
} catch (e) {
}
n = ["deny-web", "deny-all", "deny-fbia"].reduce((function (e, n) {
return t[n] && (e[n] = t[n]), e
}), {})
}
return n
}, uo = function (e) {
var n = !1, t = Object.keys(e).reduce((function (t, r) {
return function (e) {
return !!e && Math.ceil(Date.now() / 1e3) <= e
}(e[r]) ? t[r] = e[r] : n = !0, t
}), {});
return {needToRemove: !Object.keys(t).length, needToUpdate: n, newValue: t}
};
pn.container.register("composerControlPolicy", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("localStorage"), t = co(n.get(ao)), r = function (e) {
var r = uo(t), o = r.needToUpdate, i = r.needToRemove, a = r.newValue;
t = p(p({}, a), e), (o || e) && n.set(ao, JSON.stringify(t)), !e && i && n.remove(ao)
};
r();
var o = function (e) {
return r(), !!t["deny-all"] || !!t[e]
};
return {
get denyFbia() {
return o("deny-fbia")
}, get denyWeb() {
return o("deny-web")
}, get denyAll() {
return o("deny-all")
}, __private__: {
setPolicyByRequest: function (e) {
var n;
if (e.getAllResponseHeaders().includes(so)) {
var t = e.getResponseHeader(so);
t && r(((n = {})[t] = function (e) {
return void 0 === e && (e = 15), Math.ceil(Date.now() / 1e3) + 60 * e
}(), n))
}
}, checkLS: function () {
t = co(n.get(ao))
}
}
}
}()
}), pn.composerControlPolicy = pn.container.resolve("composerControlPolicy");
var lo = function () {
pn.container.resolve("jqUtils");
var e, n = pn.container.resolve("util"), t = pn.container.resolve("ajax"), r = n.findCookieByName(/__TP_*/);
if (void 0 !== window._tpm && void 0 !== window._tpm.paywallID) {
var o = window._tpm.paywallID;
e = n.__protected__.getCookie("umc_" + o)
}
var i = function () {
return pn.getApiEndpoint()
}, a = function (t, o) {
var i = n.__protected__.getCookie("__tac");
(void 0 === t || !t) && (t = {}), t.aid = pn.aid, e && (t.umc = e), r && (t.tp_access_token_v2 = r), i && (t.tac = i), !t.user_provider && o && !o.isv && (t.user_provider = o.getName()), (void 0 === t.user_token || !t.user_token) && o && !o.isv && (t.user_token = "string" == typeof o.getToken() ? o.getToken() : "");
var a = n.getAffiliateToken(pn.affiliateTokenName);
a && (t.affiliate_token = a)
};
function s(e, r, o, s, c, u) {
var l;
n.debug("Calling API method: " + e), l = void 0 !== s ? s : i(), l += e, (void 0 === r || !r) && (r = {});
var d, f, m = n.getTbcCookie();
m && (r.tbc = m), pn.user && (d = pn.user.getProvider()), a(r, d), f = function (e) {
n.debug("API Response", e), e && (n.setTbcCookieFromResponse(e), n.setAppTimezoneOffsetFromResponse(e), n.setCurrentDomainFromResponse(e)), void 0 !== o && o(e)
};
var v = function (e) {
var n = "/access/list", t = "/access/check";
if (e !== n && e !== t && "/user/access/list" !== e && "/user/access/check.jwt" !== e) return null;
var r = Math.floor((new Date).getTime() / 1e3);
return e === n ? {
code: 0,
count: 0,
data: [],
limit: 0,
offset: 0,
total: 0,
ts: r
} : e === t ? {
code: 0,
ts: 1548942314,
access: {
access_id: null,
parent_access_id: null,
granted: !1,
resource: null,
user: null,
expire_date: r
}
} : {code: 403, ts: r, message: "User doesn't have permission to call this method"}
}(e);
if (null === v || pn.user.getProvider().isUserValid()) {
!function (e) {
!pn.isDoubleOptInCheckOnAccessCheckEnabled || "/access/check" === e && pn.doubleOptIn.check()
}(e);
var g = r.aid, h = p({}, r);
delete h.aid;
var y = {type: null != u ? u : "POST", dataType: "json", data: h};
l += "?aid=" + g, y.url = l, c && (y.async = !1), y.success = function (e) {
f(e)
}, y.error = function (e) {
var t = {code: 503, message: "Error: Received error when requesting API response from URL: " + l};
n.log(t.message), f(t)
}, t.request(y)
} else f(v)
}
return {
name: "api", callApi: function (e, n, t, r, o, i) {
return s(e, n, t, r, o, i)
}, getEndpoint: function () {
return i()
}, getCallParams: function (e, n) {
return a(e, n)
}
}
}();
pn.container.register("api", {useValue: lo}), pn.api = pn.container.resolve("api");
var po = function () {
var e, n, t, r, o, i, a, s, c, u, l, d = pn.container.resolve("jqUtils"), p = pn.container.resolve("util"),
f = {}, m = {}, v = [], g = {},
h = (e = {}, i = 1, a = window, s = !1, u = "addEventListener", l = a[c = "postMessage"], e[c] = function (e, n, t) {
!n || (e = "string" == typeof e ? e : d.param(e), t = t || parent, l ? t[c](e, n.replace(/([^:]+:\/\/[^\/]+).*/, "$1")) : n && (t.location = n.replace(/#.*$/, "") + "#" + +new Date + i++ + "&" + e))
}, e.receiveMessage = o = function (e, i, c) {
l ? (e && (r && o(), r = function (n) {
if ("string" == typeof i && n.origin !== i || d.isFunction(i) && i(n.origin) === s) return s;
e(n)
}), a[u] ? a[e ? u : "removeEventListener"]("message", r, s) : a[e ? "attachEvent" : "detachEvent"]("onmessage", r)) : (n && clearInterval(n), n = null, e && (c = "number" == typeof i ? i : "number" == typeof c ? c : 100, n = setInterval((function () {
var n = document.location.hash, r = /^#?\d+&/;
n !== t && r.test(n) && (t = n, e({data: n.replace(r, "")}))
}), c)))
}, e), y = function (e, n) {
var t = {}, r = {true: !0, false: !1, null: null};
return e.replace(/\+/g, " ").split("&").forEach((function (e, o) {
var i = o.split("="), a = "";
try {
a = decodeURIComponent(i[0])
} catch (e) {
return
}
var s, c = t, u = 0, l = a.split("]["), d = l.length - 1;
if (/\[/.test(l[0]) && /\]$/.test(l[d]) ? (l[d] = l[d].replace(/\]$/, ""), d = (l = l.shift().split("[").concat(l)).length - 1) : d = 0, 2 === i.length) if (s = decodeURIComponent(i[1]), n && (s = s && !isNaN(s) ? +s : "undefined" === s ? void 0 : void 0 !== r[s] ? r[s] : s), d) for (; u <= d; u++) c = c[a = "" === l[u] ? c.length : l[u]] = u < d ? c[a] || (l[u + 1] && isNaN(l[u + 1]) ? {} : []) : s; else Array.isArray(t[a]) ? t[a].push(s) : void 0 !== t[a] ? t[a] = [t[a], s] : t[a] = s; else a && (t[a] = n ? void 0 : "")
})), t
};
var w = function (e, n, t) {
t && C(t) && !(t in m) ? p.error("Cannot send message to unmanaged iframe: " + t) : t && m[t].element && ("popup" === m[t].config.displayMode || "popup" !== m[t].config.displayMode && m[t].element.contentWindow ? _(e, n, t) : (v.push({
event: e,
params: n,
recipient: t
}), d.on(m[t].element, "load", function (e) {
return function () {
var n = v.filter((function (n) {
return n.recipient === e
}));
v = v.filter((function (n) {
return n.recipient !== e
}));
for (var t = n.length; t--;) {
var r = n.pop();
_(r.event, r.params, r.recipient)
}
}
}(t))))
}, _ = function (e, n, t) {
var r, o = {}, i = "popup" === m[t].config.displayMode ? "opener" : "parent";
o.sender = C(t) ? i : t, o.recipient = C(t) ? t : i, o.event = e, o.params = n;
var a = m[t].element;
r = "popup" === m[t].config.displayMode ? m[t].container : a && a.contentWindow ? a.contentWindow : a && "[object Window]" === a.toString() ? m[t].element : window[i], h.postMessage(JSON.stringify(o), f[t].postMessageUrl, r)
};
var b = function (e) {
f[e.iframeId] = {
iframeConfig: null,
receive: null,
postMessageUrl: null,
initializedListener: !1,
initializedKeystrokeHandler: !1
}, m[e.iframeId] = e
}, k = function (e) {
return !(!f[e] || !f[e].iframeConfig)
}, C = function (e) {
return !(f[e] && f[e].iframeConfig)
}, I = function (e) {
var n = S(e);
return n.showCloseButton && "inline" !== n.displayMode
}, S = function (e) {
var n = f[e], t = n && n.iframeConfig && n.iframeConfig.iframe;
return t && t.config
};
function E(e) {
var n, t, r = !1;
try {
n = JSON.parse(e.data)
} catch (t) {
try {
(n = y(e.data)) && (r = !0)
} catch (n) {
return void p.debug("Error parsing postMessage: " + e.data)
}
}
if (T(n), r) {
var o;
for (var i in m) (t = m[i]).config.isCurtain && (o = !0, t.config.parent && f[t.config.parent].receive && f[t.config.parent].receive(n), f[i].receive && f[i].receive(n));
o || p.debug("Error parsing postMessage: " + e.data)
} else if (!C(n.sender) || n.sender && n.sender in m) {
if (p.debug((k(n.sender) ? "iframe(" + n.recipient : "the parent") + ") received event '" + n.event + "' from iframe(" + n.sender + ")", n), f[n.sender].receive && f[n.sender].receive(n), m[n.sender] && ((t = m[n.sender]).config.parent && f[t.config.parent].receive)) {
n.sender = t.config.parent, f[t.config.parent].receive(n, !0)
}
} else p.debug("Received message from unmanaged iframe: " + n.sender)
}
var T = function (e) {
(g[e.event] || []).forEach((function (n) {
n(e)
}))
};
return {
name: "postmessage", init: function (e, n) {
if (b(e.iframe), e.postMessageUrl) {
if (e.iframe.iframeId) {
f[e.iframe.iframeId].initializedKeystrokeHandler || (f[e.iframe.iframeId].initializedKeystrokeHandler = !0, d.delegate(window, "#".concat(e.iframe.iframeId), "keyup", (function (e) {
return function (e) {
27 === e.keyCode && k(e.data.iframeId) && I(e.data.iframeId) && w("close", null, e.data.iframeId)
}(e)
}))), f[e.iframe.iframeId].postMessageUrl = e.postMessageUrl, f[e.iframe.iframeId].initializedListener || (f[e.iframe.iframeId].initializedListener = !0, f[e.iframe.iframeId].receive = e.receive, h.receiveMessage(E)), f[e.iframe.iframeId].iframeConfig = e;
var t = n || {};
t.height = document.documentElement.offsetHeight, t.width = e.iframeParams && e.iframeParams.width ? e.iframeParams.width : document.documentElement.offsetWidth, w("loaded", t, e.iframe.iframeId)
}
} else p.error("Must specify postMessageUrl to send and receive postMessages")
}, __protected__: {
isIframeManaged: function (e) {
var n = m[e];
return n && C(n)
}
}, send: w, removeIframe: function (e) {
delete m[e], delete f[e]
}, broadcast: function (e, n, t) {
for (var r in m) m.hasOwnProperty(r) && r === t || w(e, n, r)
}, subscribe: function (e, n) {
g[e] = g[e] || [], g[e].push(n)
}, unsubscribe: function (e, n) {
g[e] instanceof Array && (g[e] = g[e].filter((function (e) {
return e !== n
})))
}
}
}();
pn.container.register("postmessage", {useValue: po}), pn.postmessage = pn.container.resolve("postmessage");
var fo = function () {
var e = pn.container.resolve("jqUtils"), n = pn.container.resolve("util"),
t = pn.container.resolve("postmessage");
return {
name: "eventUtils", createEventManager: function (r) {
var o, i = {};
for (o = 0; o < r.length; o++) i[r[o]] = [];
var a = {
addEvent: function (e) {
void 0 === i[e] && (i[e] = [])
}, hasIframeCallback: function (e, n) {
var t, r;
if (i[e] && i[e].length > 0) for (r = 0, null, t = null; r < i[e].length; ++r) if ("object" == _typeof(t = i[e][r]) && n === t.iframeId) return !0;
return !1
}, hasCallback: function (e) {
return i[e] && i[e].length > 0
}, registerCallback: function (e, t) {
var r, o, a, s = "string" == typeof e ? e : null, c = "object" == _typeof(e) ? e : null;
if (s) {
if (r = "function" == typeof t ? t : null, void 0 === i[s]) return;
i[s].push(r)
}
if (c) for (a in o = "string" == typeof t ? t : null, i) "function" == typeof c[a] && (n.debug("Registering " + a + " callback for iframe " + o), i[a].push({
iframeId: o,
callback: c[a]
}))
}, fireCallbacks: function (e, n, t, r) {
return a.fire(t, e, r, n)
}, fire: function (r, o, a, s, c, u) {
var l, d, p, f = !1, m = [];
s && m.push(s), c && m.push(c), u && m.push(u);
var v = s && s.resultCallbackId, g = function (t) {
if (a) try {
if (m.length > 1) return d.apply(null, m);
if ("loginRequired" === o) {
var i = e.deepExtend({}, t.term);
return delete t.term, d(t, r, i)
}
return d(t, r)
} catch (e) {
n.debug(e)
}
};
if (void 0 !== i[o]) {
for (p = 0, l = null, d = null; p < i[o].length; ++p) {
if ("function" == typeof (d = i[o][p])) n.debug("firing callback for event '" + o + "' from iframe(" + r + ")"), l = g(s), f = !0; else if ("object" == _typeof(d)) {
if (r !== d.iframeId) continue;
n.debug("firing callback for event '" + o + "' from iframe(" + r + ")"), d = d.callback, l = g(s), f = !0
}
v && (s.result = l, s.event = o, t.send("resultCallback", s, r))
}
return !f && v && (s.callbackNotFound = !0, s.event = o, t.send("resultCallback", s, r)), l
}
}, fireCallbacksAndStopOnFirstFalse: function (e, t, r, o) {
for (var a = [], s = 4; s < arguments.length; s++) a[s - 4] = arguments[s];
if (void 0 === i[e]) return !0;
for (var c = !0, u = 0; u < i[e].length; u++) {
var l = i[e][u];
if ("function" == typeof l) {
n.debug("firing callback for event '" + e + "'");
try {
var d = [];
if (d.push(t), d.push(r), d.push(o), d = d.concat([].slice.call(a)), !1 === l.apply(null, d)) {
n.debug("callback for event '" + e + "' returned false"), c = !1;
break
}
} catch (t) {
n.debug("firing callback for event '" + e + "' failed", t)
}
}
}
return c
}
};
return a
}
}
}();
pn.container.register("eventUtils", {useValue: fo}), pn.eventUtils = pn.container.resolve("eventUtils");
var mo = function () {
var e = pn.container.resolve("util"), n = pn.container.resolve("api"), t = pn.container.resolve("eventUtils"),
r = pn.container.resolve("localStorage"), o = t.createEventManager(["userChanged", "logout"]),
i = "janrain", a = function () {
return e.getUserTokenCookie()
}, s = function () {
var e = a();
return !!(void 0 !== e && e && e.length >= 0)
}, c = !1, u = !1, l = {onCaptureSessionCreated: []}, d = {
loginRequiredScreen: "signIn",
appName: null,
appId: null,
clientId: null,
settings: null,
disableLogout: !1,
startCapture: !1
}, p = {register: "traditionalRegistration", login: "signIn"};
var f = function (e) {
return e && p.hasOwnProperty(e.startScreen) ? p[e.startScreen] : d.loginRequiredScreen
};
var m = function () {
d.disableLogout || e.setAccessTokenListCookie(void 0, void 0, !0)
}, v = !0, g = function () {
var e = window.janrain;
return e && e.capture && e.capture.ui && e.capture.ui.hasActiveSession()
};
function h() {
e.log("JANRAIN:", "Processing janrain user"), v ? v = !1 : e.startCall("refreshUserToken"), e.log("JANRAIN:", "hasActiveSession:" + g());
var t = y();
if (!g()) return e.log("JANRAIN:", "No token found. Done processing user"), m(), void e.doneCall("refreshUserToken");
if (s()) return e.log("JANRAIN:", "Using __ut. Done processing user"), void e.doneCall("refreshUserToken");
var r = {janrain_capture_token: t, url: e.prepareUrlParameter(window.location.href)};
n.callApi("/anon/janrain/verifyAccountInfo", r, (function (n) {
if (n && n.access) try {
e.log("JANRAIN:", "Verify success. Done processing user"), e.setAccessTokenListCookie(n.access.access_token, n.access.user_token);
var t = {access_token: n.access.access_token, user_token: n.access.user_token};
n.access.user && (t.user = {
uid: n.access.user.uid,
email: n.access.user.email,
firstName: n.access.user.first_name,
lastName: n.access.user.last_name,
valid: n.access.user.valid
}), function (e, n) {
if (void 0 !== l[e] && 0 !== l[e].length) for (var t = 0; t < l[e].length; ++t) l[e][t].apply(null, arguments)
}("onCaptureSessionCreated", t), o.fireCallbacks("userChanged", t, void 0, !0)
} finally {
e.doneCall("refreshUserToken")
} else e.log("JANRAIN:", "Verify failed")
}))
}
var y = function () {
return r.get("janrainCaptureToken")
}, w = function () {
var n = window.janrain;
n.events.onProviderLogoutComplete.addHandler((function () {
m()
})), n.events.onCaptureSessionEnded.addHandler((function (n) {
e.log("JANRAIN: Events received for logout", n), m()
})), _()
}, _ = function () {
if (g()) return e.log("JANRAIN:", "Found early active session via function"), void h();
if (!g() && !s() && !y()) return e.log("JANRAIN:", "not found __ut cookie and janrain token"), void h();
var n = !1, t = window.janrain;
t.events.onCaptureSessionFound.addHandler((function (t) {
b() ? n && (e.log("JANRAIN: Events received for logged in user", t), h()) : h()
})), t.events.onCaptureSessionNotFound.addHandler((function (t) {
b() ? n && (e.log("JANRAIN: Events received for logged out user", t), h()) : h()
})), t.events.onCaptureFederateNoLogin.addHandler((function (e) {
n = e
})), t.events.onCaptureFederateLogin.addHandler((function (n) {
e.log("JANRAIN: Events received for SSO login", n), h()
}))
}, b = function () {
var e = window.janrain;
return e && e.settings && e.settings.capture && e.settings.capture.federate
};
function k(e, n) {
if (!c) throw "Janrain is not configured";
var t = 0;
!function r() {
var o = window.janrain;
if (u) o.events[e].addHandler((function (e) {
n(e)
})); else {
if (t > 100) throw "Janrain is not initialized";
t++, window.setTimeout(r, 100)
}
}()
}
return {
name: i, isv: !1, init: function (n) {
if (!c) {
if (!n.appName || !n.appId || !n.clientId) throw "Must specify appName, appId, and clientId to initialize janrain";
for (var t in d) void 0 !== n[t] && (d[t] = n[t]);
if (n.settings && (d.settings = n.settings), n.loginRequiredScreen && (d.loginRequiredScreen = n.loginRequiredScreen), d.settings) {
"object" != _typeof(window.janrain) && (window.janrain = {}), "object" != _typeof(window.janrain.settings) && (window.janrain.settings = {});
var r = window.janrain;
r.settings = d.settings, "object" != _typeof(window.janrain.settings.capture) && (window.janrain.settings.capture = {}), r.settings.appUrl = "https://" + d.appName + ".rpxnow.com", r.settings.capture.captureServer = "https://" + d.appName + ".janraincapture.com", r.settings.capture.appId = d.appId, r.settings.capture.clientId = d.clientId;
var o, i = d.appName.replace(/\./g, "-"), a = "http://widget-cdn.rpxnow.com/load/" + i,
s = "https://rpxnow.com/load/" + i;
o = e.__protected__.isHttpsProtocol() ? s : a, pn.push(["addExternalLibrary", o, function () {
r.ready = !0
}])
}
e.log("JANRAIN:", "start refresh user token"), e.startCall("refreshUserToken", 3e4), e.waitCall("refreshUserToken", (function () {
e.log("JANRAIN:", "end refresh user token")
})), function () {
var n = 100, t = 0;
function r() {
var o = window.janrain;
if (window.janrain && window.janrain.ready && window.janrain.capture && window.janrain.capture.ui && window.janrain.capture.ui.hasActiveSession) (function () {
var n = window.janrain, t = function (t) {
n.events[t].addHandler((function () {
for (var n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r];
e.log("JANRAIN: ", t, n)
}))
};
pn.debug && n.events.captureEvents.forEach(t)
})(), w(), d.startCapture && o.capture.ui.start(), u = !0; else {
if (t > n) throw "Janrain is not initialized";
t++, window.setTimeout(r, 100)
}
}
r()
}(), c = !0, pn.zIndexes = {backdrop: 900, modal: 950, close: 990};
var l = function (n) {
e.log("JANRAIN: onLogin"), window.janrain.capture.ui.modal.close(), h()
};
k("onCaptureLoginSuccess", l), k("onCaptureRegistrationSuccess", l)
}
}, isUserValid: s, getToken: a, getName: function () {
return i
}, onLoginSuccess: function (n) {
e.setAccessTokenListCookie({value: n.token_list, cookie_domain: n.cookie_domain}, n.user_token)
}, login: function (e, n) {
if (!c) throw "Janrain is not configured";
var t = 0;
!function r() {
if (u) try {
window.janrain.capture.ui.renderScreen(f(n)), "function" == typeof e && function (e, n) {
l[e] = [], l[e].push(n)
}("onCaptureSessionCreated", e)
} catch (e) {
return t++, void window.setTimeout(r, 100)
} else {
if (t > 100) throw "Janrain is not initialized";
t++, window.setTimeout(r, 100)
}
}()
}, logout: function (e) {
if (!c) throw "Janrain is not configured";
var n = 100, t = 0, r = 0;
function i() {
r > n ? e() : g() ? (r++, window.setTimeout(i, 100)) : e()
}
m(), function r() {
if (u) {
var a = window.janrain;
a.capture.ui.modal.close(), a.capture.ui.endCaptureSession(), o.fireCallbacks("logout", null, void 0, !0), e && i()
} else {
if (t > n) throw "Janrain is not initialized";
t++, window.setTimeout(r, 100)
}
}()
}, isConfigured: function () {
return c
}, getLoginRequiredScreen: f, addEventHandler: k, registerCallback: function (e, n) {
o.addEvent(e), o.registerCallback(e, (function (e) {
n(e)
}))
}
}
}();
pn.container.register("janrain", {useValue: mo}), pn.janrain = pn.container.resolve("janrain");
var vo = {
name: "sha1", hash: function (e, n) {
function t(e, n) {
return e << n | e >>> 32 - n
}
function r(e) {
var n, t = "";
for (n = 7; n >= 0; n--) t += (e >>> 4 * n & 15).toString(16);
return t
}
n = n || 32;
var o, i, a, s, c, u, l, d, p, f = new Array(80), m = 1732584193, v = 4023233417, g = 2562383102,
h = 271733878, y = 3285377520;
e = function (e) {
e = e.replace(/\r\n/g, "\n");
for (var n = "", t = 0; t < e.length; t++) {
var r = e.charCodeAt(t);
r < 128 ? n += String.fromCharCode(r) : r > 127 && r < 2048 ? (n += String.fromCharCode(r >> 6 | 192), n += String.fromCharCode(63 & r | 128)) : (n += String.fromCharCode(r >> 12 | 224), n += String.fromCharCode(r >> 6 & 63 | 128), n += String.fromCharCode(63 & r | 128))
}
return n
}(e);
var w = e.length, _ = new Array;
for (i = 0; i < w - 3; i += 4) a = e.charCodeAt(i) << 24 | e.charCodeAt(i + 1) << 16 | e.charCodeAt(i + 2) << 8 | e.charCodeAt(i + 3), _.push(a);
switch (w % 4) {
case 0:
i = 2147483648;
break;
case 1:
i = e.charCodeAt(w - 1) << 24 | 8388608;
break;
case 2:
i = e.charCodeAt(w - 2) << 24 | e.charCodeAt(w - 1) << 16 | 32768;
break;
case 3:
i = e.charCodeAt(w - 3) << 24 | e.charCodeAt(w - 2) << 16 | e.charCodeAt(w - 1) << 8 | 128
}
for (_.push(i); _.length % 16 != 14;) _.push(0);
for (_.push(w >>> 29), _.push(w << 3 & 4294967295), o = 0; o < _.length; o += 16) {
for (i = 0; i < 16; i++) f[i] = _[o + i];
for (i = 16; i <= 79; i++) f[i] = t(f[i - 3] ^ f[i - 8] ^ f[i - 14] ^ f[i - 16], 1);
for (s = m, c = v, u = g, l = h, d = y, i = 0; i <= 19; i++) p = t(s, 5) + (c & u | ~c & l) + d + f[i] + 1518500249 & 4294967295, d = l, l = u, u = t(c, 30), c = s, s = p;
for (i = 20; i <= 39; i++) p = t(s, 5) + (c ^ u ^ l) + d + f[i] + 1859775393 & 4294967295, d = l, l = u, u = t(c, 30), c = s, s = p;
for (i = 40; i <= 59; i++) p = t(s, 5) + (c & u | c & l | u & l) + d + f[i] + 2400959708 & 4294967295, d = l, l = u, u = t(c, 30), c = s, s = p;
for (i = 60; i <= 79; i++) p = t(s, 5) + (c ^ u ^ l) + d + f[i] + 3395469782 & 4294967295, d = l, l = u, u = t(c, 30), c = s, s = p;
m = m + s & 4294967295, v = v + c & 4294967295, g = g + u & 4294967295, h = h + l & 4294967295, y = y + d & 4294967295
}
return (p = r(m) + r(v) + r(g) + r(h) + r(y)).toLowerCase().slice(0, n)
}
};
pn.sha1 = vo, pn.container.register("sha1", {useValue: vo});
var go = function () {
function e(e, n) {
this._isActive = !1, this.targets = [], this.timeout = 200, this.util = n, this.callback = e
}
return e.prototype._mutationSearch = function () {
var e = this;
this.targets.forEach((function (n) {
var t = e._getState(n.element);
!t === n.currentState && (n.currentState = t, e.callback([{target: n.element}]))
})), this._isActive && setTimeout(this._mutationSearch.bind(this), this.timeout)
}, e.prototype._getState = function (e) {
var n = [].slice.call(e.attributes).reduce((function (n, t) {
return n[t.name] = e.getAttribute(t.name), n
}), {});
return JSON.stringify(n)
}, e.prototype.observe = function (e) {
this.targets.push({
id: this.util.randomString(),
element: e,
currentState: this._getState(e)
}), this._isActive || (this._isActive = !0, this._mutationSearch())
}, e.prototype.disconnect = function () {
this._isActive = !1, this.targets = []
}, e
}(), ho = function () {
pn.container.resolve("jqUtils");
var e = pn.container.resolve("util"),
n = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
t = {attributes: !0};
return {
name: "observer", create: function (r, o) {
r || e.error("element must be NODE");
var i = new (n || go)((function (e) {
var n = e.map((function (e) {
return e.target
}));
return "function" == typeof o && o(n)
}), e);
return i.observe(r, t), i
}
}
}();
pn.container.register("observer", {useValue: ho}), pn.observer = pn.container.resolve("observer");
var yo, wo, _o = function () {
var e, n, t, r = pn.container.resolve("jqUtils"), o = pn.container.resolve("util"),
i = pn.container.resolve("postmessage"), a = pn.container.resolve("eventUtils"),
s = pn.container.resolve("sha1"), c = {}, u = {}, l = a.createEventManager(["close"]),
d = "tp-container-inner", p = new Map, f = {continuation: !0}, m = [], v = "tp-modal-overscroll-prevented",
g = "tp-scroll-prevented", h = "tp-body-scroll-prevented", y = {
_initialScrollPosition: {x: 0, y: 0}, applyFix: function () {
var e = window.visualViewport ? Math.max(window.scrollY, document.documentElement.scrollTop, window.visualViewport.pageTop) : Math.max(window.scrollY, document.documentElement.scrollTop);
this.saveInitialScroll(window.scrollX, e), t && (C(), _(), w(t, v))
}, removeFix: function () {
document.querySelectorAll(".tp-iframe-wrapper.tp-active").length || (this._scrollBack(), n && (n.disconnect(), n = null), k())
}, _scrollBack: function () {
(this._initialScrollPosition.y || this._initialScrollPosition.x) && I(this._initialScrollPosition.x, this._initialScrollPosition.y)
}, saveInitialScroll: function (e, n) {
this._initialScrollPosition.x = e, this._initialScrollPosition.y = n
}, modalOpened: function () {
this.applyFix()
}, modalClosed: function () {
this.removeFix()
}
}, w = function (e, n) {
e.classList.add(n)
}, _ = function () {
w(document.documentElement, g), w(document.body, h)
}, b = function (e) {
document.querySelectorAll(".".concat(e)).forEach((function (n) {
n.classList.remove(e)
}))
}, k = function () {
b(g), b(h)
}, C = function () {
var e = document.querySelectorAll(".tp-iframe-wrapper"), t = e[e.length - 1];
(n = new MutationObserver((function (e, n) {
for (var t = 0, r = e; t < r.length; t++) {
var o = r[t];
"attributes" === o.type && "style" === o.attributeName && I(0, 0)
}
}))).observe(t, {attributes: !0, childList: !0, subtree: !0})
}, I = function (e, n) {
function t(e) {
return /\{\s*\[native code\]\s*\}/.test("" + e)
}
try {
if (t(window.scrollTo)) return void window.scrollTo(e, n);
if (t(window.scroll)) return void window.scroll(e, n);
document.body && (document.body.scrollTop = 0)
} catch (e) {
console.warn("Can not perform scroll: " + e.message)
}
};
r.on(window, "resize", (function () {
var e;
if ($(), o.isAndroid()) {
var n = null === (e = document.querySelector(".tp-iframe-wrapper.tp-active")) || void 0 === e ? void 0 : e.closest(".tp-modal");
n && n.scrollBy(0, 1)
}
})), o.isIOS() && r.on(window, "orientationchange", (function () {
setTimeout((function () {
return $()
}), 100)
})), i.subscribe("close", (function () {
y.modalClosed()
})), i.subscribe("toggleIframeShadow", (function (e) {
T(e.params.isEnabled)
})), i.subscribe("toggleLoadingContainer", (function (e) {
if (e.params.isEnabled) return ne();
te()
}));
var S, E, T = function (e) {
var n = document.querySelector(".tp-iframe-wrapper");
if (n) {
if (e) return n.classList.contains("no-shadow") && n.classList.remove("no-shadow");
n.classList.add("no-shadow")
}
}, P = function (e) {
(function (e) {
i.send("checkProccessesForClose", {}, e.iframeId)
})(e), "popup" === e.config.displayMode ? e.container.close() : (function (e) {
if (o.debug("Removing iframe", e), e.element && (r.hide(e.element), "inline" === e.config.displayMode)) {
var n = e.element.parentElement;
n && r.hide(n)
}
e.resizeObserver && e.resizeObserver.disconnect(), ("modal" === e.config.displayMode || "inline" === e.config.displayMode) && (e.waitFinishProcesses = !0)
}(e), L(), D())
}, x = function () {
for (var e in c) {
var n = c[e];
if ("modal" === n.config.displayMode && !n.waitFinishProcesses && !n.config.isPreload) return !0
}
return !1
}, A = function (e) {
var n = document.createElement("form"),
t = {id: "form_" + e.iframeId, method: "post", action: e.iframeSrc, target: e.iframeId};
return r.setAttrs(t, n), [{name: "userToken", value: e.userToken}].forEach((function (e) {
var t = document.createElement("input"), o = {type: "hidden", name: e.name};
r.setAttrs(o, t), t.value = e.value, r.append(n, t)
})), n
}, O = function (e) {
return c[e]
}, M = function () {
function e(e, n, t) {
this.$ = e, this._operationWithContainer = t, this.util = n, this._initModalContainer(), this.iOSBottomToolbarHeight = 90
}
return e.prototype._initModalContainer = function () {
var e = this;
return this.container || (this.container = document.createElement("div"), this.element = this.container, this.$.addClass("tp-modal", this.container), this.close = document.createElement("button"), this.$.setAttr("type", "button", this.close), this.$.setAttr("aria-label", "Close", this.close), this.$.addClass("tp-close", this.close), this.iframeWrapper = document.createElement("div"), this.$.addClass("tp-iframe-wrapper", this.iframeWrapper), this.$.append(this.iframeWrapper, this.close), this.container.style.zIndex = pn.zIndexes.modal + "", this.close.style.zIndex = pn.zIndexes.close + "", this.$.on(this.close, "click", (function () {
"function" == typeof e.closeClick && e.closeClick()
})), this.util.isIOS() && !this.util.isFBOrInstWebView() && (this.iframeWrapper.style.marginBottom = "".concat(this.iOSBottomToolbarHeight, "px")), this.$.append(this.container, this.iframeWrapper), this._operationWithContainer("body", (function (n) {
e.$.append(n, e.container)
}))), this.container
}, e.prototype.getContainer = function (e, n) {
return this._initModalContainer(), this.closeClick = n, void 0 === e && (e = !0), e ? this.showCloseButton() : this.hideCloseButton(), this.iframeWrapper
}, e.prototype.show = function (e) {
this._initModalContainer(), void 0 === e && (e = !0), e ? this.showCloseButton() : this.hideCloseButton(), this.$.addClass("tp-active", this.container)
}, e.prototype.hide = function () {
this._initModalContainer(), this.$.removeClass("tp-active", this.container)
}, e.prototype.showCloseButton = function () {
this._initModalContainer(), this.$.addClass("tp-active", this.close)
}, e.prototype.hideCloseButton = function () {
this._initModalContainer(), this.$.removeClass("tp-active", this.close)
}, e
}(), N = function (e, n, t) {
for (var r in o.debug("Search container to close", e, n, t), c) {
var i = c[r];
e && r !== e || t && "inline" === i.config.displayMode || t && i.config.isPreload || ("modal" === i.config.displayMode && R(i), P(i))
}
l.fireCallbacks("close", null, e, !0)
}, R = function (e) {
var n = m.shift();
S && !n && r.removeClass("tp-active", S), e.iframeParams.shown = !1, r.removeClass("tp-active", e.container), n ? (r.hide(t), t = n, r.show(t)) : (L(), D())
}, L = function () {
!t || (q("body", (function (e) {
r.addClass("tp-modal-close", e), r.removeClass("tp-modal-open", e), e.classList.contains("body-fixed") && r.removeClass("body-fixed", e)
})), r.hide(t))
}, U = function (e, n, i) {
if (function () {
if (S) return S;
var e = document.createElement("div");
r.addClass("tp-backdrop", e), e.style.zIndex = pn.zIndexes.backdrop + "", q("body", (function (n) {
r.append(n, e)
})), S = e
}(), r.visible(S)) {
var a = r.qa(".tp-modal").find((function (e) {
return r.visible(e)
}));
n && !i ? (a && (r.hide(a), m.unshift(a)), e && r.show(e)) : n && (a ? (e && m.push(e), t = a) : e && r.show(e))
} else r.show(S), e && function (e) {
r.visible(e) || (q("body", (function (e) {
r.removeClass("tp-modal-close", e), r.addClass("tp-modal-open", e)
})), r.show(e), (o.isIphone() || o.isSafariOrIOsUiWebView() || o.isAndroid()) && y.modalOpened())
}(e), E = window.setTimeout((function () {
r.addClass("tp-active", S)
}), 50)
}, D = function () {
S && (r.removeClass("tp-active", S), r.hide(S), clearTimeout(E)), y.modalClosed()
}, j = function (e) {
S && (S.style.height = "100%");
var n = r.queryEl(".tp-close", e);
n && r.removeClass("tp-square", n)
}, V = function (e, n) {
if (e) {
K(e.element, n);
var t = Object.assign({}, n, {animate: !1});
switch (e.config.displayMode) {
case"modal":
K(e.container, t), q("body", (function (e) {
r.addClass("tp-modal-resizing", e), setTimeout((function () {
r.removeClass("tp-modal-resizing", e)
}), 50)
}));
break;
case"inline":
var o = r.queryEl("." + d, e.container);
o && K(o, n)
}
}
}, F = function (e, n, o) {
var i = e.container, a = i.parentElement;
a && a.classList.contains("tp-modal") ? t = a : a = t, e.iframeParams = e.iframeParams || {}, e.iframeParams.shown || (e.iframeParams.shown = !0, U(a, n, o), o || (i.classList.contains("tp-active") || r.addClass("tp-active", i), j(i)))
}, B = {}, q = function e(n, t) {
var o = r.queryEl(n);
B[n] || (B[n] = 0), o ? (delete B[n], t(o)) : B[n] < 100 && (B[n] += 1, setTimeout((function () {
e(n, t)
}), 50))
}, z = function (e, n) {
if (void 0 === e.showCloseButton && (e.showCloseButton = !0), e.container) return e.container;
var i = new M(r, o, q);
return e.isPreload || (t = i.element), i.getContainer(e.showCloseButton, n)
}, H = function (e) {
var n = {container: null, containerReady: !1};
if (!e.iframeParams.containerSelector) return o.log("Inline offer must have a valid containerSelector"), n;
if (n.container = e.singleContainer || r.queryEl(e.iframeParams.containerSelector), !n.container) return o.log("Invalid containerSelector"), n;
var t = e.config, i = "object" == _typeof(t) && null !== t;
return r.empty(n.container), i ? !!t.preview || (e.iframeParams.width = r.getWidth(n.container)) : e.iframeParams.width = e.iframeParams.width || r.getWidth(n.container), n.containerReady = !0, n
}, W = function (e) {
var n = r.winSize(), t = e.width ? e.width : n.width, i = e.height ? e.height : n.height,
a = o.centerScreen(t, i);
return {width: t, height: i, top: a.top, left: a.left}
}, G = function (e, n) {
var t = W(e),
r = window.open(n, o.randomString(16), "scrollbars=yes,location=yes,status=0,toolbar=0,resizable=1, width=" + t.width + ", height=" + t.height + ", top=" + t.top + ", left=" + t.left);
return window.focus && r && r.focus(), r
}, J = 1, Q = function (e, n, t) {
var i = "iframe-" + J++ + "-" + o.randomString();
n.iframeId && (i = n.iframeId);
var a = document.createElement("iframe"), s = {
id: i,
name: i,
title: i,
scrolling: "no",
allowtransparency: "true",
allow: "payment",
allowfullscreen: "true"
};
(!pn.isSensitiveDataProtectionEnabled || e.isSensitiveDataProtectionDisabled) && (s.src = t), Object.keys(s).forEach((function (e) {
r.setAttr(e, s[e], a)
}));
var c = {
overflow: "hidden",
backgroundColor: "transparent",
border: "0",
width: "inline" === e.displayMode ? n.width + "px" : "0px",
height: "0px"
};
Object.keys(c).forEach((function (e) {
a.style[e] = c[e]
}));
try {
r.setAttr("frameBorder", "0", a)
} catch (e) {
o.log(e)
}
return a
}, X = function (e, n) {
var t = function (e) {
return r.queryEl("." + d, e.container) ? r.getWidth(e.container) : 0
}(e);
return !(!t || !n) && Math.abs(t - n) < .1
}, Y = function (e, n, t) {
var o = setInterval((function () {
r.empty(e)
}), 150);
r.ready((function () {
clearInterval(o), r.append(e, n), pn.isSensitiveDataProtectionEnabled && (r.append(n, t), t.submit())
}))
}, $ = function () {
for (var e in c) {
var n = c[e];
if (!n.config.preview && "inline" === n.config.displayMode && n.container && V(n, {width: r.getWidth(n.container)}), "modal" === n.config.displayMode && n.container) {
var t = Math.max(document.documentElement.clientWidth, document.body.offsetWidth, document.documentElement.offsetWidth);
i.send("RESIZE_MODAL_CHECKOUT", {iframe: n, width: t}, n.iframeId)
}
}
}, K = function (e, n) {
!e || (void 0 !== n.width && (e.style.width = n.width + "px", (0 === n.width && !e.classList.contains("no-width") || 0 !== n.width && e.classList.contains("no-width")) && r.toggleClass("no-width", e)), void 0 !== n.height && (n.animate, e.style.height = n.height + "px", (0 === n.height && !e.classList.contains("no-height") || 0 !== n.height && e.classList.contains("no-height")) && r.toggleClass("no-height", e)))
}, Z = function (e) {
var n = document.createElement("div");
return n.innerHTML = e.trim(), n.firstChild
}, ee = function (e) {
return void 0 === e && (e = ""), '
')
}, ne = function () {
e || (e = Z(ee())) && document.body.appendChild(e)
}, te = function () {
!e || (document.body.removeChild(e), e = null)
}, re = function (e) {
if (e && null != e && e.container && !p.has(e.iframeId)) {
var n = Z(ee("tp-local-overlap"));
n && (e.container.appendChild(n), p.set(e.iframeId, n))
}
}, oe = function (e) {
if (e && null != e && e.container && p.has(e.iframeId)) {
var n = p.get(e.iframeId);
n && (e.container.removeChild(n), p.delete(e.iframeId))
}
};
function ie(e) {
!e || !e.element || (function (e) {
var n;
return !!e && !(null === (n = null == e ? void 0 : e.element.getBoundingClientRect()) || void 0 === n || !n.width)
}(e) && function (e) {
e && e.container && (re(e), e.container.addEventListener("load", (function () {
oe(e)
}), {once: !0, capture: !0}))
}(e), e.element.src = e.element.src)
}
function ae() {
for (var e in c) {
var n = c[e];
n && ie(n)
}
}
return {
name: "containerUtils",
fakeOfferId: "fakeOfferId",
createContainer: function (e) {
var n, t, a, p, m = {}, v = document.createElement("form"), g = !0, h = e.iframeParams;
if ("inline" !== h.displayMode && !h.width && (h.width = window.innerWidth), a = e.config.buildQueryStringFn ? function (n) {
return e.config.buildQueryStringFn(n, r)
} : function (e) {
var n = r.param(e, f);
return n + "&_qh=" + s.hash(n, 10)
}, "popup" === h.displayMode) {
h.width || (h.width = window.innerWidth);
var y = e.url + "?" + a(h);
t = G(h, y);
try {
p = t.document
} catch (e) {
try {
p = t
} catch (e) {
p = null, console.warn("Unable to get popup element")
}
}
u[h.iframeId] = {
container: t, interval: setInterval((function () {
u[h.iframeId].container.closed && (clearInterval(u[h.iframeId].interval), u[h.iframeId].container.close(), e.onCloseCallback && e.onCloseCallback())
}), 100)
}
} else {
if ("inline" === h.displayMode) {
void 0 !== e.config.showCloseButton && delete e.config.showCloseButton;
var w = H(e);
t = w.container, g = !!w.containerReady
} else t = z(e.config, (function () {
N(h.iframeId, e.parent)
}));
pn.isSensitiveDataProtectionEnabled && (m = {
userToken: h.userToken,
iframeId: h.iframeId
}, delete h.userToken), n = e.url + "?" + a(h), p = Q(e.config, h, n)
}
l.registerCallback(e, h.iframeId);
var _ = c[h.iframeId] = {
iframeId: h.iframeId,
config: e.config,
element: p,
container: t,
iframeParams: h,
containerReady: g
};
if (i.init({
postMessageUrl: e.postMessageUrl,
parent: e.parent,
receive: e.receive,
iframe: _,
iframeParams: h
}), r.on(document, "keyup", (function (e) {
})), pn.isSensitiveDataProtectionEnabled && (m.iframeSrc = n, v = A(m)), "modal" === h.displayMode) r.on(window, "resize", (function () {
j(t)
})), pn.isSensitiveDataProtectionEnabled ? (r.append(t, p), r.append(t, v), null == v || v.submit()) : r.append(t, p); else if ("inline" === h.displayMode) {
if (c[h.iframeId].containerReady) {
var b = document.createElement("div");
r.addClass(d, b), r.append(b, p), e.config.isPreload && r.hide(b), ("complete" === document.readyState || "loading" !== document.readyState && !document.documentElement.doScroll) && t ? (r.empty(t), r.append(t, b), pn.isSensitiveDataProtectionEnabled && (r.append(b, v), null == v || v.submit())) : Y(t, b, v)
} else {
var k = document.createElement("div");
r.setAttr("id", "temp-inline-" + h.iframeId, k), r.hide(k), q("body", (function (e) {
r.append(e, k)
})), r.append(k, p)
}
if (window.ResizeObserver) {
var C = new ResizeObserver((function (e) {
var n = r.getWidth(_.container);
if (n > 0) {
if ("inline" === _.config.displayMode && X(_, n)) return;
V(_, {width: n})
}
}));
C.observe(_.container), _.resizeObserver = C
}
}
return o.debug("creating iframe: ", e), _
},
showPreloadedContainer: function (e) {
if ("modal" === e.config.displayMode) {
if (x()) return void o.log("Modal is already shown; must be one modal per time");
!function (e) {
(t = e.container.closest(".tp-modal")) || o.error("there is no such modal container"), F(e, !0, !0)
}(e)
} else "inline" === e.config.displayMode ? function (e) {
r.show(e.container);
var n = r.queryEl(".".concat(d), e.container);
n && r.show(n), V(e, {width: r.getWidth(e.container)})
}(e) : o.log("Unexpected displayMode of preloaded iframe\n");
return e.config.isPreload = !1, e.iframeParams.isPreload = !1, o.debug("show preloaded iframe: ", e.config), e
},
redirectContainer: function (e, n) {
var t = n.url + "?" + r.param(n.iframeParams, f), o = c[e];
if ("popup" === o.config.displayMode) o.container.location = t; else {
var a = o.element;
(a.contentWindow || a).location = t
}
o.config = n.config, i.init({
postMessageUrl: n.postMessageUrl,
receive: n.receive,
iframe: c[n.iframeParams.iframeId],
iframeParams: n.iframeParams
})
},
hasModalIframe: x,
getForm: A,
getIframe: O,
generateIframe: Q,
generateIframeWrapper: function () {
var e = document.createElement("div"), n = {
overflow: "hidden",
backgroundColor: "transparent",
border: "0",
width: "0px",
height: "0px",
position: "absolute",
display: "block",
top: "-1px",
left: "-1px"
};
return Object.keys(n).forEach((function (t) {
e.style[t] = n[t]
})), e
},
getPopupPosition: W,
generatePopup: G,
initInlineContainer: H,
getModalContainer: z,
centerBackdrop: function (e) {
if (S) {
var n = r.winSize();
e.offsetHeight > n.height ? S.style.height = n.height + "" : S.style.height = "100%"
}
},
showBackdrop: U,
hideBackdrop: D,
checkBackdropAndContainer: F,
resizeIframe: V,
centerIt: j,
operationWithContainer: q,
closeContainer: N,
closeModalContainer: function (e, n) {
N(e, n, !0)
},
purgeIframe: function (e, n) {
o.debug("Purging iframe", e);
var t = c[e];
try {
if (t.resizeObserver && t.resizeObserver.disconnect(), i.removeIframe(t.iframeId), r.remove(t.element), "inline" === t.config.displayMode) {
var a = r.queryEl(".tp-container-inner", t.container);
a && r.remove(a)
}
} catch (e) {
}
delete c[e]
},
hideModalContainer: function (e) {
var n = [];
for (var t in c) {
var o = c[t];
e && t !== e || "inline" !== o.config.displayMode && "modal" === o.config.displayMode && (R(o), r.hide(o.container), n.push(t))
}
return n
},
closeModal: R,
hideCloseButton: function (e) {
if (e) {
var n = r.queryEl(".tp-close", e);
n && n.classList.contains("tp-active") && r.removeClass("tp-active", n)
}
},
activateContainers: function (e) {
if (e && e.length) for (var n in c) for (var t = c[n], o = 0; o < e.length; o++) if (n === e[o]) {
var i = t.container, a = i.parentElement;
a && U(a), r.addClass("tp-active", i), r.show(i)
}
},
showWaitPanel: ne,
hideWaitPanel: te,
addClassToContainer: function (e, n) {
r.addClass(n, e.container)
},
turnOnRTL: function (e) {
e.container && e.container.setAttribute && e.container.setAttribute("dir", "rtl")
},
turnOffRTL: function (e) {
e.container && e.container.removeAttribute && e.container.removeAttribute("dir")
},
setIframesPopstateHandlers: function () {
!o.isIphone() && !o.isSafariOrIOsUiWebView() || window.addEventListener("popstate", ae)
},
__protected__: {
setElementSizes: K, closeInlineContainers: function (e) {
Array.prototype.slice.call(document.querySelectorAll(e + " > ." + d + " > iframe")).forEach((function (e) {
e.id && function (e) {
var n = O(e);
n.config.child && N(n.config.child), N(e)
}(e.id)
}))
}, addChildToInlineIframe: function (e, n) {
if (e) {
var t = O(n);
t && t.config && (t.config.child = e.iframeId)
}
}, closeAndRemoveIframe: P
},
__private__: {mobileModalFix: y}
}
}();
pn.container.register("containerUtils", {useValue: _o}), pn.containerUtils = pn.container.resolve("containerUtils"), function (e) {
e.EXTERNAL_LINK = "EXTERNAL_LINK", e.EXTERNAL_EVENT = "EXTERNAL_EVENT"
}(yo || (yo = {})), function (e) {
e.LOG_MICRO_CONVERSION = "logMicroConversion", e.LOG_AUTO_MICRO_CONVERSION = "logAutoMicroConversion", e.LOG_TELEMETRY = "logTelemetry", e.LOG_CONVERSION = "logConversion", e.LOG_FUNNEL_STEP = "logFunnelStep", e.LOG_ESP_MICRO_CONVERSION = "logEspMicroConversion", e.LOG_BEACON_REQUEST = "logBeaconRequest", e.LOG_CUSTOM_FORM_IMPRESSION = "logCustomFormImpression", e.LOG_CUSTOM_FORM_SUBMISSION = "logCustomFormSubmission"
}(wo || (wo = {}));
var bo;
pn.container.register("log", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("ajax"), t = e.resolve("util");
e.resolve("postmessage").subscribe("iframeLogRequest", (function (e) {
var n = "browser_id" in e.queryParams ? e.queryParams : a(e.queryParams);
i(e.url, n)
}));
var r = function (e) {
var n = [];
for (var t in e) {
var r = e[t];
n.push(encodeURIComponent(t) + "=" + encodeURIComponent("object" == _typeof(r) ? JSON.stringify(r) : r))
}
return n.join("&")
}, o = function () {
var e = window.doNotTrack || window.navigator.doNotTrack || window.navigator.msDoNotTrack;
return !!e && ("1" === e.charAt(0) || "yes" === e)
}, i = function (e, o) {
var i = r(o);
t.isRelativeUrl(e.trim()) ? i.length > 6e3 ? n.request({
type: "POST",
url: pn.getTrackingEndpoint() + e,
data: i
}) : n.request({
url: pn.getTrackingEndpoint() + e + "?" + i,
dataType: "jsonp"
}) : t.log("Url parameter is incorrect")
}, a = function (e, n) {
var r, o;
void 0 === n && (n = !1);
var i = t.getBrowserId(), a = p({}, e), s = function (e, n) {
n && (a[e] = n)
};
if (s("browser_id", i), n) {
var c = t.getPageViewContext();
s("page_title", c.pageTitle), s("url", c.url), s("page_view_id", c.pageViewId), s("referrer", c.referrerUrl), s("content_author", c.author), s("content_created", null === (r = c.created) || void 0 === r ? void 0 : r.toString()), s("content_section", c.section), s("tags", (null === (o = c.tags) || void 0 === o ? void 0 : o.join(",")) || null), s("content_type", c.contentType)
}
return a
}, s = function (e) {
return a(e, !0)
}, c = function (e, n, r) {
var o = s({
tracking_id: e,
event_group_id: n,
custom_params: r || "",
cookie_consents: t.getCookieConsents(),
previous_user_segments: t.getUserSegmentsString()
});
e ? n ? i("/api/v3/conversion/logMicroConversion", o) : t.log("Parameter eventGroupId is required to log micro conversion.") : t.log("Parameter trackingId is required to log micro conversion.")
}, u = function (e, n, r, o) {
var a = s({
tracking_id: e,
event_type: r,
event_group_id: n,
custom_params: o || "",
cookie_consents: t.getCookieConsents(),
previous_user_segments: t.getUserSegmentsString()
});
e ? n ? (console.log(a), i("/api/v3/conversion/logAutoMicroConversion", a)) : t.log("Parameter eventGroupId is required to log auto micro conversion.") : t.log("Parameter trackingId is required to log auto micro conversion.")
}, l = function (e, n, r, o, a) {
var c = s({
tracking_id: e,
esp_widget_id: n,
event_type: o,
event_group_id: r,
custom_params: a || "",
cookie_consents: t.getCookieConsents(),
previous_user_segments: t.getUserSegmentsString()
});
e ? r ? n ? i("/api/v3/conversion/logEspMicroConversion", c) : t.log("Parameter espWidgetId is required to log esp micro conversion.") : t.log("Parameter eventGroupId is required to log esp micro conversion.") : t.log("Parameter trackingId is required to log esp micro conversion.")
}, d = function (e, n, r, o, a, c, u, l) {
var d = s({
tracking_id: e,
term_id: n,
term_name: r,
cookie_consents: t.getCookieConsents(),
previous_user_segments: t.getUserSegmentsString()
});
e ? n ? r ? (void 0 !== o && (d.step_number = o), void 0 !== a && (d.amount = a), void 0 !== c && (d.currency = c), void 0 !== u && (d.custom_params = u), void 0 !== l && (d.conversion_category = l), i("/api/v3/conversion/log", d)) : t.log("Parameter termName is required to log conversion.") : t.log("Parameter termId is required to log conversion.") : t.log("Parameter trackingId is required to log conversion.")
}, f = function (e, n, t, r, o, i, a, s) {
if ("object" == _typeof(e)) {
var c = e;
d(c.tracking_id, c.term_id, c.term_name, c.step_number, c.amount, c.currency, c.custom_params, c.conversion_category)
} else d(e, n, t, r, o, i, a, s)
}, m = function (e, n, r, o) {
var a = s({
tracking_id: e,
step_number: n,
step_name: r,
custom_params: o || "",
cookie_consents: t.getCookieConsents(),
previous_user_segments: t.getUserSegmentsString()
});
e ? n ? r ? i("/api/v3/conversion/logFunnelStep", a) : t.log("Parameter stepName is required to log funnel step.") : t.log("Parameter stepNumber is required to log funnel step.") : t.log("Parameter trackingId is required to log funnel step.")
}, v = function (e, n, r) {
n || t.log("Parameter formName is required to log impression."), r || t.log("Parameter source is required to log impression.");
var o = {
aid: pn.aid,
pageview_id: pn.main.fetchPageViewId(),
custom_form_name: n,
custom_form_source: r,
cookie_consents: t.getCookieConsents(),
previous_user_segments: t.getUserSegmentsString()
}, a = pn.user.getProvider().getToken();
return a && (o.user_token = a), e && (o.tracking_id = e), i("/api/v3/customform/log/impression", o)
}, g = function (e, n, r) {
n || t.log("Parameter formName is required to log submission."), r || t.log("Parameter source is required to log submission.");
var o = {
aid: pn.aid,
pageview_id: pn.main.fetchPageViewId(),
custom_form_name: n,
custom_form_source: r,
cookie_consents: t.getCookieConsents(),
previous_user_segments: t.getUserSegmentsString()
}, a = pn.user.getProvider().getToken();
return a && (o.user_token = a), e && (o.tracking_id = e), i("/api/v3/customform/log/submission", o)
}, h = function (e, i) {
if (!o()) {
var a, s = r(i), c = e + "?" + s;
if (navigator.sendBeacon) if (c.length > 6e3) {
var u = new Blob([s], {type: "application/x-www-form-urlencoded"});
navigator.sendBeacon(e, u)
} else navigator.sendBeacon(c); else (a = -1 !== navigator.appVersion.indexOf("MSIE 9") ? {
dataType: "jsonp",
url: c
} : {type: "post", url: c, async: !1, xhrFields: {withCredentials: !0}}).error = function () {
for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];
t.debug.apply(t, b(["Beacon request has been failed"], e, !1))
}, n.request(a)
}
};
return {
name: "log",
logMicroConversion: c,
logConversion: f,
logFunnelStep: m,
logEspMicroConversion: l,
logBeaconRequest: h,
logAutoMicroConversion: u,
__protected__: {
handleEvent: function (e, t) {
var i = t.trackingId, a = t.termId, s = t.termName, d = t.stepNumber, p = t.stepName,
y = t.amount, w = t.currency, _ = t.customParams, b = t.conversionCategory,
k = t.eventGroupId, C = t.eventType, I = t.url, S = t.params, E = t.formName, T = t.source,
P = t.espWidgetId;
t.body;
switch (e) {
case wo.LOG_TELEMETRY:
return void function (e, t) {
if (!o()) {
var i = e + "?" + r(t);
navigator.sendBeacon ? navigator.sendBeacon(i) : n.send(i, null, "POST", null, "application/json", !0)
}
}(I, S);
case wo.LOG_CONVERSION:
return void f(i, a, s, d, y, w, _, b);
case wo.LOG_AUTO_MICRO_CONVERSION:
return void u(i, k, C, _);
case wo.LOG_BEACON_REQUEST:
return void h(I, S);
case wo.LOG_CUSTOM_FORM_IMPRESSION:
return void v(i, E, T);
case wo.LOG_CUSTOM_FORM_SUBMISSION:
return void g(i, E, T);
case wo.LOG_ESP_MICRO_CONVERSION:
return void l(i, P, k, C, _);
case wo.LOG_FUNNEL_STEP:
return void m(i, d, p, _);
case wo.LOG_MICRO_CONVERSION:
return void c(i, k, _)
}
},
logCustomFormImpression: v,
logCustomFormSubmission: g,
logEspMicroConversion: l,
logAutoMicroConversion: u
},
__private__: {doLog: i, logBeaconRequest: h}
}
}()
}), pn.log = pn.container.resolve("log"), function (e) {
e.TRACK_EVENT = "track", e.TRACK_CUSTOM_EVENT = "trackCustom"
}(bo || (bo = {}));
var ko = function () {
var e = pn.container.resolve("util"), n = !1, t = function (t, r, o) {
n ? (o || (o = {}), e.log("fbpixel: Track Facebook Pixel event", r, o), window.fbq(t, r, o)) : e.log("fbpixel: Skip tracking event - Facebook Pixel is not initalized", r, o)
}, r = function () {
return n
};
return {
name: "fbpixel", isInitialized: r, __private__: {isInitialized: r}, __protected__: {
init: function () {
if (!n) {
var t = pn.getFbPixelId();
if (!t) return void e.error("fbpixel: Facebook Pixel ID is not defined");
e.log("fbpixel: Initialize Facebook Pixel tracking", t), function (e, n, t, r, o, i, a) {
e.fbq || (o = e.fbq = function () {
o.callMethod ? o.callMethod.apply(o, arguments) : o.queue.push(arguments)
}, e._fbq || (e._fbq = o), o.push = o, o.loaded = !0, o.version = "2.0", o.queue = [], (i = n.createElement(t)).async = !0, i.src = "https://connect.facebook.net/en_US/fbevents.js", (a = n.getElementsByTagName(t)[0]).parentNode.insertBefore(i, a))
}(window, document, "script"), window.fbq("set", "autoConfig", "false", t), window.fbq("init", t), n = !0
}
}, handleEvent: function (e, n) {
var r = n.eventName, o = n.eventParams;
switch (e) {
case bo.TRACK_EVENT:
return void t(bo.TRACK_EVENT, r, o);
case bo.TRACK_CUSTOM_EVENT:
return void t(bo.TRACK_CUSTOM_EVENT, r, o)
}
}
}
}
}();
pn.container.register("fbpixel", {useValue: ko}), pn.fbpixel = pn.container.resolve("fbpixel");
pn.container.register("clientConfiguration", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t, r = e.resolve("ajax");
return {
configuration: n, getConfiguration: function () {
return g(void 0, void 0, void 0, (function () {
return h(this, (function (e) {
return n ? [2, n] : (t || (t = new Promise((function (e, o) {
r.request({
url: pn.getApiEndpoint() + "/anon/assets/sdk-runtime-config.js?aid=" + pn.aid,
type: "GET",
success: function (r) {
0 === (null == r ? void 0 : r.code) ? (n = r.client_configurations_dto, e(r.client_configurations_dto), t = void 0) : o()
},
error: function () {
return o()
}
})
}))), [2, t])
}))
}))
}
}
}()
});
var Co, Io = function () {
var e = {}, n = {};
return {
name: "gaCollectingService", setParam: function (e, t) {
t && (n[e] = t)
}, getParams: function () {
return p({aid: pn.aid, tags: pn.tags, debug: pn.debug, url: window.location.href}, n)
}, setParamMap: function (e) {
n = p(p({}, n), e)
}, isEventExcluded: function (n) {
return e[n]
}, setExcludedEvents: function (n) {
e = p(p({}, e), n)
}
}
}();
pn.container.register("gaCollectingService", {useValue: Io}), pn.gaCollectingService = pn.container.resolve("gaCollectingService"), function (e) {
e.EMIT_GA_EVENT = "emitGAEvent", e.EMIT_METRICS_EVENT = "emitMetricsEvent"
}(Co || (Co = {}));
var So = {
experienceExecute: !0,
meterActive: !0,
meterExpired: !0,
beforeBrowserEvent: !1,
setResponseVariable: !0,
startCheckout: !1,
showOffer: !0,
showTemplate: !0,
termSelected: !0,
promoApplied: !0,
promoInvalid: !0,
submitPayment: !1,
checkoutCustomEvent: !0,
checkoutStateChange: !1,
receiptDisplayed: !1,
checkoutSuccess: !0,
checkoutRestarted: !1,
checkoutError: !0,
checkoutClose: !1,
publisherLoginRequired: !1,
loginRequired: !1,
loginDisplayed: !1,
registrationDisplayed: !1,
loginSuccess: !0,
registrationSuccess: !0,
logout: !1
}, Eo = function () {
var e, n = pn.container.resolve("util"), t = (pn.container.resolve("api"), pn.container.resolve("postmessage")),
r = pn.container.resolve("gaCollectingService"), o = pn.container.resolve("clientConfiguration"),
i = "pianoTracker", a = "performanceTracker", s = "gaAccount", c = "metricsGAAccount", u = "trackOnlyAids",
l = "disabled", d = {
gaAccount: void 0,
trackerName: i,
trackOnlyAids: [],
metricsGAAccount: void 0,
isGAEnabled: !1,
isGAAppended: !1,
isMetricsEnabled: !1,
isTrackerAppended: !1,
isMetricsTrackerAppended: !1
}, p = [], f = !1, m = !0, v = !1, y = !1, w = [], _ = function (e) {
if (e.hitType = "timing", !d.isMetricsTrackerAppended) return S("send", e), void function () {
if (!y) {
if (y = !0, x(), !d.metricsGAAccount) return void function () {
return g(this, void 0, void 0, (function () {
var e;
return h(this, (function (n) {
switch (n.label) {
case 0:
return [4, o.getConfiguration()];
case 1:
return e = n.sent(), [2, O({
is_enabled: e.is_performance_metrics_enabled,
ga_account: e.performance_metrics_ga_account,
track_only_aids: e.performance_metrics_track_only_aids
})]
}
}))
}))
}().then((function () {
return N()
})).catch((function (e) {
n.error("PN catch: something vent wrong with GA injection: ".concat(e))
}));
N().catch((function (e) {
n.error("PN catch: something vent wrong with GA injection: ".concat(e))
}))
}
}();
if (d.isMetricsEnabled) {
if (!window.ga || !d.isMetricsTrackerAppended) return void S("send", e);
w.length && E(), P("send", e)
}
};
function b() {
v || (v = !0, m ? setTimeout((function () {
m = !1, k()
}), 3e3) : k())
}
function k() {
x(), d.gaAccount ? M().catch((function () {
})) : function () {
return g(this, void 0, void 0, (function () {
var e;
return h(this, (function (n) {
switch (n.label) {
case 0:
return [4, o.getConfiguration()];
case 1:
return e = n.sent(), [2, A(e.ga_account)]
}
}))
}))
}().then((function () {
return M()
})).catch((function () {
}))
}
var C = function (e, n) {
p.push({action: e, params: n})
}, I = function () {
if (window.ga && d.isTrackerAppended) for (; p.length;) {
var e = p.pop();
T(e.action, e.params)
}
}, S = function (e, n) {
w.push({action: e, params: n})
}, E = function () {
if (window.ga && d.isMetricsTrackerAppended) for (; w.length;) {
var e = w.pop();
P(e.action, e.params)
}
}, T = function (e, n) {
if (!r.isEventExcluded(n.eventCategory)) {
if (!window.ga || !d.isTrackerAppended) return void C(e, n);
window.ga(d.trackerName + "." + e, n)
}
}, P = function (e, n) {
if (d.isMetricsEnabled) {
if (!window.ga || !d.isMetricsTrackerAppended) return void S(e, n);
window.ga(a + "." + e, n)
}
}, x = function () {
if (!f) {
if (tp.gaClientId && (e = tp.gaClientId), n.__protected__.hasLocalStorage()) {
var t = n.__protected__.getLocalStorageItem(s), r = n.__protected__.getLocalStorageItem(c),
o = n.__protected__.getLocalStorageItem(u);
d.isGAEnabled = !!t && t !== l, d.isMetricsEnabled = !!r && r !== l, d.gaAccount = t, d.metricsGAAccount = r, d.trackOnlyAids = o || []
}
f = !0
}
};
var A = function (e) {
d.isGAEnabled = !!e, d.gaAccount = e || l, n.__protected__.setLocalStorageItem("vx", s, d.gaAccount, 1)
}, O = function (e) {
d.isMetricsEnabled = JSON.parse(e.is_enabled), d.metricsGAAccount = d.isMetricsEnabled ? e.ga_account : l, d.trackOnlyAids = d.isMetricsEnabled ? JSON.parse(e.track_only_aids) : [], n.__protected__.setLocalStorageItem("vx", u, d.trackOnlyAids, 1), n.__protected__.setLocalStorageItem("vx", c, d.metricsGAAccount, 1)
};
function M() {
return new Promise((function (n, t) {
d.isGAEnabled ? R().then((function () {
if (d.isGAAppended) if (d.isTrackerAppended) n(null); else try {
var r = document.createElement("script");
r.innerHTML = function () {
var n = new RegExp("^UA-[0-9a-zA-Z]*-[0-9a-zA-Z]*$").test(d.gaAccount),
t = new RegExp("([{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?)|([0-9]*\\.[0-9]*)").test(e || "");
if (!n) return "";
var r = "ga(function() {\n ga('create', '".concat(d.gaAccount, "', 'auto', '").concat(i, "'");
return r += e && t ? ", { clientId: '".concat(e, "' });") : ");\n tp.gaService.setClientId(ga.getByName('".concat(i, "').get('clientId'));"), r += "tp.gaService.trackerAppended(); });", r
}(), document.head.appendChild(r), d.isTrackerAppended = !0, n(null)
} catch (e) {
t()
} else t()
})).catch((function (e) {
})) : t()
}))
}
function N() {
return new Promise((function (e, n) {
d.isMetricsEnabled ? R().then((function () {
if (d.isGAAppended) if (d.isMetricsTrackerAppended) e(null); else try {
var t = !d.trackOnlyAids.length || d.trackOnlyAids.contains(tp.aid),
r = document.createElement("script");
if (!new RegExp("^UA-[0-9a-zA-Z]*-[0-9a-zA-Z]*$").test(d.metricsGAAccount)) return void n();
r.innerHTML = "\n ga(function() {\n if (".concat(t, ") {\n ga('create', '").concat(d.metricsGAAccount, "', 'auto', '").concat(a, "', { storage: 'none' });\n tp.gaService.metricsTrackerAppended();\n }\n });\n "), document.head.appendChild(r), d.isMetricsTrackerAppended = !0, e(null)
} catch (e) {
n()
} else n()
})) : e("isMetricsEnabled !== true")
}))
}
function R() {
return new Promise((function (e, n) {
if (d.isGAAppended) e(null); else try {
var t = document.createElement("script");
t.innerHTML = "\n (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');\n ", document.head.appendChild(t), d.isGAAppended = !0, e(null)
} catch (e) {
n()
}
}))
}
return {
name: "gaService", getClientId: function () {
return e
}, getGAAccount: function () {
return d.gaAccount
}, metricsTrackerAppended: function () {
d.isMetricsTrackerAppended = !0, y = !1, E()
}, recreateWithClientId: function (n) {
e = n, b()
}, setClientId: function (n) {
e = n
}, setTrackerName: function (e) {
d.trackerName = e
}, trackerAppended: function () {
d.isTrackerAppended = !0, t.broadcast("gaAppended", {clientId: e, gaAccount: d.gaAccount}), v = !1, I()
}, __protected__: {
handleEvent: function (e, n) {
switch (e) {
case Co.EMIT_GA_EVENT:
return void function (e) {
if (e.hitType = "event", e.nonInteraction = So[e.eventCategory], !d.isTrackerAppended) return C("send", e), void b();
if (d.isGAEnabled) {
if (!window.ga || !d.isTrackerAppended) return void C("send", e);
p.length && I(), T("send", e)
}
}(n);
case Co.EMIT_METRICS_EVENT:
return void _(n)
}
}
}
}
}();
pn.container.register("gaService", {useValue: Eo}), pn.gaService = pn.container.resolve("gaService");
var To = function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("gaCollectingService"), t = ["trackingId"], r = {measurementId: ""}, o = [], i = function () {
return "function" == typeof window.gtag
}, a = function (e) {
return e.eventParameters ? "gtag('config', '".concat(e.measurementId, "', ").concat(function (e) {
return e || (e = {}), JSON.stringify(e)
}(e.eventParameters), ");") : "gtag('config', '".concat(e.measurementId, "');")
}, s = function (e) {
var n = document.createElement("script");
return n.innerHTML = "".concat(i() ? "" : "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());", "\n") + "function setGoogleTagConfig() {\n" + " if (".concat(!e.measurementId, ") { return; }\n") + " ".concat(a(e), "\n") + "}\nsetGoogleTagConfig();", n
}, c = function (e, n, t, r) {
void 0 === e && (e = "");
return e && e.includes(t) ? e : ["offerId", "aid", "templateId", "templateVariantId"].reduce((function (e, o) {
return r[o] && (e.length && (e += n), e += "".concat(o).concat(t).concat(r[o])), e
}), e)
}, u = function (e, n) {
var r = p(p(p({}, n), e), {
non_interaction: So[e.eventCategory],
event_action: c(e.eventAction, "____", "_", n),
event_label: c(e.eventLabel, " ", ":", n)
});
return Object.keys(r).reduce((function (e, n) {
var o = r[n];
return function (e, n) {
return e.includes("user") || "nonInteraction" === e || "object" == _typeof(n) || "function" == typeof n
}(n, o) || (e[function (e) {
return t.includes(e) && (e = "piano_" + e), function (e) {
return e.replace(/[A-Z]+(?![a-z])|[A-Z]/g, (function (e, n) {
return n ? "_" + e : e
})).toLowerCase()
}(e)
}(n)] = o), e
}), {})
}, l = function () {
!r.measurementId || (function () {
if (!i()) {
var e = document.createElement("script");
e.async = !0, e.src = "https://www.googletagmanager.com/gtag/js?id=".concat(r.measurementId), document.head.appendChild(e)
}
}(), document.head.appendChild(s(r)))
}, d = function (e) {
n.isEventExcluded(e.name) || window.gtag("event", e.name, p({send_to: e.sendTo}, e.params))
};
return {
name: "ga4Service", getMeasurementId: function () {
return r.measurementId
}, appendGoogleTag: l, sendCustomEvent: d, setGa4Config: function (e) {
r = e, l()
}, __protected__: {
handleEvent: function (e, t) {
if (e === Co.EMIT_GA_EVENT) {
var a = function (e, t) {
return {name: t.eventCategory, sendTo: r.measurementId, params: u(t, n.getParams())}
}(0, t);
if (i() && a.sendTo) return d(a), o.forEach((function (e) {
e.sendTo || (e.sendTo = r.measurementId), d(e)
})), void (o = []);
!function (e) {
o.push(e)
}(a)
}
}
}
}
}();
pn.container.register("ga4Service", {useValue: To}), pn.ga4Service = pn.container.resolve("ga4Service");
var Po, xo, Ao, Oo = void 0;
!function (e) {
e.purge = "purge", e.dismissTemplate = "acp-close", e.retainSubscription = "acp-retain-subscription", e.cancelSubscription = "acp-cancel-subscription"
}(Po || (Po = {})), function (e) {
e.autoRenewalDisabled = "acp-auto-renewal-disabled", e.subscriptionCancellation = "acp-subscription-cancellation"
}(xo || (xo = {})), function (e) {
e.dismissTemplate = "dismissTemplate", e.finalConfirmation = "finalConfirmation", e.autoRenewalDisabled = "autoRenewalDisabled", e.subscriptionCancellation = "subscriptionCancellation"
}(Ao || (Ao = {}));
var Mo = function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("postmessage"), t = pn.container.resolve("util"),
r = {autoRenewalDisabled: !1, subscriptionCancellation: !1},
o = {token: "", isFlowInProgress: !1, templateInteractionConfig: p({}, r)}, i = p({}, o),
a = function (e, r, o) {
n.broadcast(e, function (e, n) {
return "boolean" != typeof (null == e ? void 0 : e.autoRenew) && "string" != typeof (null == e ? void 0 : e.cancellationType) ? n instanceof Error : {
isFlowError: n instanceof Error,
autoRenew: null == e ? void 0 : e.autoRenew,
cancellationType: null == e ? void 0 : e.cancellationType,
pageViewId: Nr.get("pageViewId"),
tbc: t.getTbcCookie(),
subscriptionId: null == e ? void 0 : e.subscriptionId
}
}(r, o)), c(!1), o instanceof Error && "Subscription was upgraded" === o.message && window.location.reload()
}, s = function (e) {
n.broadcast("setTemplateInteractionConfig", e)
}, c = function (e) {
i.isFlowInProgress = e
}, u = function (e) {
i = p(p({}, i), e)
};
return {
handleAcpEvent: function (e, n, t, r) {
var o, i, s = (null === (o = n.params) || void 0 === o ? void 0 : o.eventName) || n.event,
u = t.experienceActionId, l = t.continuation, d = t.containerSelector, f = t.displayMode,
m = t.trackingId, v = "inline" === f ? d : null,
g = null === (i = n.params) || void 0 === i ? void 0 : i.subscriptionId, h = function () {
e("customEvent", p({
experienceActionId: u,
continuation: l,
trackingId: m,
customEventName: s,
containerSelector: v
}, n.params), n.sender, r)
};
switch (s) {
case Po.purge:
e("dismissTemplate", p({
experienceActionId: u,
continuation: l,
trackingId: m,
offerType: t.offerType || null
}, n.params), n.sender, r);
break;
case Po.retainSubscription:
case Po.cancelSubscription:
e("finalConfirmation", p({
experienceActionId: u,
continuation: l,
confirm: s === Po.cancelSubscription,
trackingId: m
}, n.params), n.sender, r), h();
break;
case xo.autoRenewalDisabled:
e("autoRenewalDisabled", {
templateType: 1,
continuation: a.bind(Oo, "".concat(xo.autoRenewalDisabled, "-result"), n.params),
subscriptionId: g
}, n.sender), c(!0);
break;
case xo.subscriptionCancellation:
e("subscriptionCancellation", {
templateType: 1,
continuation: a.bind(Oo, "".concat(xo.subscriptionCancellation, "-result"), n.params),
subscriptionId: g
}, n.sender), c(!0);
break;
default:
h()
}
}, extendByAcpParams: function (e, n, t) {
var r = t.experienceActionId, o = t.continuation;
return p(p({}, n), {experienceActionId: r, continuation: o, customEventName: e})
}, sendTemplateInteractionActive: function (e) {
if (e.activateTemplateInteraction && pn.user.isUserValid()) {
var n = pn.user.getProvider().getToken();
if (n === i.token || i.isFlowInProgress) s(i.templateInteractionConfig); else {
var t = [Ao.subscriptionCancellation, Ao.autoRenewalDisabled];
pn.experience.executeTemplateInteraction({templateType: 1}).then((function (e) {
var n = e.registeredEvents;
return t.reduce((function (e, t) {
var r;
return n.includes(t) ? p(p({}, e), ((r = {})[t] = !0, r)) : e
}), p({}, r))
})).then((function (e) {
s(e), u({templateInteractionConfig: e, token: n})
})).catch((function () {
s(r), u(o)
}))
}
} else s(r)
}, getComposerAcpEvents: function () {
return Object.values(Ao)
}
}
}();
pn.container.register("acp", {useValue: Mo}), pn.acp = pn.container.resolve("acp");
pn.container.register("analytics", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t, r = e.resolve("gaService"), o = e.resolve("ga4Service"), i = e.resolve("fbpixel"),
a = e.resolve("log"), s = function (e) {
return e || function () {
}
}, c = function (e) {
return {
initialize: s(e.__protected__.init), event: function (n) {
var t = n.eventType, r = n.payload;
return e.__protected__.handleEvent(t, r)
}
}
};
return {
name: "analytics", ga: (n = r, t = o, {
initialize: function () {
}, event: function (e) {
var r = e.eventType, o = e.payload;
n.__protected__.handleEvent(r, o), t.__protected__.handleEvent(r, o)
}
}), fbpixel: c(i), log: c(a)
}
}()
}), pn.analytics = pn.container.resolve("analytics");
var No = function () {
var e = pn.container.resolve("api"), n = pn.container.resolve("analytics"), t = [];
setTimeout((function () {
r()
}), 1e4);
var r = function (r) {
if (Math.floor(500 * Math.random()) + 1 === 255) {
var o = r || (pn.fullTPVersion ? "ts_c" : "ts_s"), i = {aid: pn.aid, type: o, actions: t};
n.log.event({
eventType: wo.LOG_TELEMETRY,
payload: {url: e.getEndpoint() + "/telemetry/ux/timings", params: i}
})
}
};
return {
name: "logging", setTime: function (e, n, r) {
t.push({name: e, time: n, tags: r})
}
}
}();
pn.container.register("logging", {useValue: No}), pn.logging = pn.container.resolve("logging");
var Ro, Lo = "/execution/credit", Uo = "".concat(Lo, "/redeem"), Do = "".concat(Lo, "/check");
!function (e) {
e.AUTO = "A", e.MANUAL = "M"
}(Ro || (Ro = {}));
var jo = function () {
var e = pn.container.resolve("util"), n = pn.container.resolve("ajax"), t = pn.container.resolve("jqUtils"),
r = pn.container.resolve("eventUtils"), o = pn.container.resolve("consent"), i = function (e) {
return Object.entries(e).reduce((function (e, n) {
var t = n[0], r = n[1];
return (r || 0 === r) && (e[t] = r), e
}), {})
}, a = r.createEventManager([]), s = function () {
return e.__protected__.getCookie("xbc") || void 0
}, c = function (r, o, a) {
return new Promise((function (c, u) {
var l = a ? "?" + t.param(a) : "", d = function () {
var e = pn.getExperienceEndpoint(!1);
return "".concat(e, "/").concat(pn.aid)
}() + r + l, f = i({xbc: s(), tbc: e.getTbcCookie() || void 0}), m = i(p(p({}, f), o));
if (!(m.cid && m.itemId && m.xbc)) {
var v = "credit: Error: Required params are absent";
e.debug(v), u({code: 0, message: v})
}
n.request({
type: "post",
url: d,
data: p(p({}, f), o),
xhrFields: {withCredentials: !0},
error: function (n) {
var t = "credit: Error: Received error:".concat(n.status, " ").concat(n.responseText);
e.debug(t), u({code: n.status, message: n.responseText})
},
success: function (e) {
c(e)
}
})
}))
}, u = function (e, n, t, r) {
var o = function (e) {
return function (n) {
return a.fire(void 0, e, !0, n), n
}
}, i = o("string" == typeof e ? e : e.success), s = o("string" == typeof e ? e : e.failure);
return c(n, t, r).then(i).catch(s)
};
return {
redeem: function (n) {
var t = o.__protected__.addConsentsToParams({}), r = t.consent_modes, i = t.consent_purposes;
return u("manualCreditRedeemed", Uo, p(p({}, n), {
previousUserSegments: Nr.get("userSegments"),
consentModes: r,
consentPurposes: i
})).then((function (n) {
var t = n.xbc;
t && t !== s() && e.setXbcCookieFromResponse({xbc: t})
}))
}, check: function (e) {
return u("creditChecked", Do, e)
}, registerCallback: function (e, n) {
a.addEvent(e), a.registerCallback(e, n)
}
}
}();
pn.container.register("credit", {useValue: jo}), pn.credit = pn.container.resolve("credit");
var Vo = function () {
var e, n = pn.container.resolve("postmessage"), t = pn.container.resolve("containerUtils"),
r = pn.container.resolve("util"), o = pn.container.resolve("eventUtils"),
i = (pn.container.resolve("logging"), o.createEventManager(["resize", "loginSuccess", "logout"])),
a = function () {
return pn.getEndpointRoot(!0) + "/checkout/user/loginShow"
};
function s(o) {
r.debug("Login event received", o.event, o.params, o);
var a = !t.getIframe(o.sender).config.parent;
switch (o.event) {
case"loaded":
e = !1, !0;
break;
case"close":
t.closeModalContainer(), i.fireCallbacks(o.event, o.params, o.sender, a);
break;
case"cancel":
case"error":
case"customEvent":
i.fireCallbacks(o.event, o.params, o.sender, a);
break;
case"loginSuccess":
!function (e, n, o, a) {
var s = t.getIframe(o);
r.setAccessTokenListCookie({
value: n.token_list,
cookie_domain: n.cookie_domain
}, n.user_token), s.config.userToken = n.user_token, s && s.config && s.config.loginSuccess && s.config.loginSuccess(n.event, n.params, n.sender), i.fireCallbacks(e, n, o, a), s && s.config && s.config.closeAfterSuccess && t.closeModalContainer(o);
var u = {reloadAfterLogin: !0, userToken: n.user_token, user: n.user};
c(u)
}(o.event, o.params, o.sender, a);
break;
case"logoutSuccess":
!function (e, n, t, o) {
i.fireCallbacks("logout", null, void 0, !0), r.setAccessTokenListCookie({
value: n.token_list,
cookie_domain: n.cookie_domain
}, n.user_token, !0)
}(o.event, o.params, o.sender);
break;
case"readyToSubmitStats":
var s = {pageViewId: pn.main.fetchPageViewId(), tbc: r.getTbcCookie()};
n.send("submitStats", s, o.sender);
break;
default:
return void r.debug("Received invalid event type: " + o.event)
}
}
var c = function (e) {
n.broadcast("reloadOffer", e)
};
var u;
function l(e) {
var n = performance.now();
u && t.closeModalContainer(u);
var o = {};
Object.assign(o, {closeAfterSuccess: !0}, e), o.displayMode = "popup", o.width = 360, o.height = 660, o.state = o.state ? o.state : "login";
var c = function (e) {
var n = {};
return ["displayMode", "aid", "width", "height", "state"].forEach((function (t) {
e[t] && (n[t] = e[t])
})), n
}(o);
c.iframeId = r.randomString(16), c.url = window.location.href, c.host_url = window.location.href, c.initTime = n, u = c.iframeId, function (e) {
["aid", "gaClientId", "tags", "contentSection", "contentAuthor"].forEach((function (n) {
pn[n] && (e[n] = pn[n])
})), pn.contentCreated && (e.contentCreated = pn.contentCreated)
}(c), c.user_provider = "tinypass_accounts", e.userToken && (c.user_token = e.userToken), r.getCampaigns(c);
var l, d = {url: a(), config: o, postMessageUrl: a(), receive: s, iframeParams: c};
return o.iframeId ? (d.iframeParams.iframeId = o.iframeId, l = t.redirectContainer(o.iframeId, d)) : l = t.createContainer(d), i.registerCallback(o, c.iframeId), l
}
return {
name: "tinypassLogin", show: function (n) {
if (e) return !1;
e = !0, setTimeout((function () {
e = !1
}), 1e4), l(n) || r.error("Could not initialize login; check configuration")
}, close: function () {
t.closeModalContainer()
}, showBackdrop: function () {
t.showBackdrop()
}, hideBackdrop: function () {
t.hideBackdrop()
}, centerBackdrop: function (e) {
t.centerBackdrop(e)
}, registerCallback: function (e, n) {
i.registerCallback(e, n)
}, listenLogin: function (e) {
!function (e) {
i.registerCallback(e, e.iframeId);
var t = {iframeId: e.iframeId, config: e, iframeParams: e};
n.init({postMessageUrl: a(), receive: s, iframe: t, iframeParams: {}})
}(e)
}
}
}();
pn.container.register("tinypassLogin", {useValue: Vo}), pn.tinypassLogin = pn.container.resolve("tinypassLogin");
var Fo = function () {
var e = pn.container.resolve("ajax"), n = pn.container.resolve("jqUtils"), t = pn.container.resolve("util"),
r = pn.container.resolve("tinypassLogin"),
o = pn.container.resolve("eventUtils").createEventManager(["logout"]), i = function () {
return t.getUserTokenCookie() || null
};
return {
name: "tinypassAccounts", isv: !1, isUserValid: function () {
return !!t.getUserTokenCookie()
}, getToken: i, getName: function () {
return "tinypass_accounts"
}, onLoginSuccess: function (e) {
t.setAccessTokenListCookie({value: e.token_list, cookie_domain: e.cookie_domain}, e.user_token)
}, isConfigured: function () {
return !0 === pn.useTinypassAccounts || "string" == typeof pn.useTinypassAccounts && "true" === pn.useTinypassAccounts
}, login: function (e) {
return (e = e || {}).userToken = i(), r.show(e)
}, logout: function (r) {
var i = {aid: pn.aid, url: document.location.href},
a = pn.getEndpointRoot(!0) + "/checkout/user/logout?" + n.param(i);
t.setAccessTokenListCookie({value: null}, void 0, !0), e.request({
url: a,
dataType: "jsonp",
success: function (e) {
t.setAccessTokenListCookie({
value: "",
cookie_domain: e.models.cookie_domain
}, e.models.user_token, !0), o.fireCallbacks("logout", null, void 0, !0), r && r(e)
},
error: function (e) {
t.setAccessTokenListCookie(null, void 0, !0), o.fireCallbacks("logout", null, void 0, !0), r && r(e)
}
})
}, registerCallback: function (e, n) {
o.addEvent(e), o.registerCallback(e, n)
}
}
}();
pn.container.register("tinypassAccounts", {useValue: Fo}), pn.tinypassAccounts = pn.container.resolve("tinypassAccounts");
var Bo = function () {
var e = pn.container.resolve("jqUtils"), n = pn.container.resolve("cookie"), t = pn.container.resolve("util"),
r = pn.container.resolve("eventUtils").createEventManager(["logout"]);
return {
isv: !1, name: "condeUserProvider", getName: function () {
return "conde"
}, isUserValid: function () {
return !!t.getUserTokenCookie()
}, getToken: function () {
var e = t.findCookieByName("amg_user_partner");
return void 0 !== e && e && e.length >= 0 ? e : null
}, onLoginSuccess: function (r) {
t.setAccessTokenListCookie({value: r.token_list, cookie_domain: r.cookie_domain}, r.user_token);
var o = {path: "/", expires: 730};
r.cookie_domain && "localhost" !== r.cookie_domain && e.inArray(r.cookie_domain, t.getPossibleCookieDomains()) >= 0 && (o.domain = r.cookie_domain), n.raw = !0, t.__protected__.setCookie(r.params.cookieName, r.params.cookieValue, o), t.__protected__.setCookie("amg_user_partner", r.params.externalId, o), t.__protected__.setCookie("amg_user_info", r.params.userName, o), t.__protected__.setCookie("amg_user_ext", r.params.siteUserId, o), r.params.updateToken && t.__protected__.setCookie("amg_user_update", r.params.updateToken, o), n.raw = !1
}, logout: function (e) {
t.setAccessTokenListCookie({value: null}, void 0, !0);
var n = t.getPossibleCookieDomains();
for (var o in n) t.deleteCookie("amg_user", n[o]), t.deleteCookie("amg_user_partner", n[o]), t.deleteCookie("amg_user_info", n[o]), t.deleteCookie("amg_user_ext", n[o]), t.deleteCookie("amg_user_update", n[o]);
t.deleteCookie("amg_user"), t.deleteCookie("amg_user_partner"), t.deleteCookie("amg_user_info"), t.deleteCookie("amg_user_ext"), t.deleteCookie("amg_user_update"), r.fireCallbacks("logout", null, void 0, !0), e && e()
}, isConfigured: function () {
return !0 === pn.useCondeUserProvider || "string" == typeof pn.useCondeUserProvider && "true" === pn.useCondeUserProvider
}, registerCallback: function (e, n) {
r.addEvent(e), r.registerCallback(e, n)
}
}
}();
pn.container.register("condeUserProvider", {useValue: Bo}), pn.condeUserProvider = pn.container.resolve("condeUserProvider");
var qo = function () {
var e = pn.container.resolve("util"), n = pn.container.resolve("api"), t = pn.container.resolve("eventUtils"),
r = pn.container.resolve("jqUtils"), o = !1;
var i = t.createEventManager(["userChanged", "onHide", "logout"]), a = {
apiKey: null,
screenSet: "Default-RegistrationLogin",
startScreen: null,
enabledProviders: null,
lang: null
};
function s() {
var n = e.getUserTokenCookie();
if (n && e.findCookieByName("glt_" + a.apiKey) === e.findCookieByName("__utg_" + a.apiKey)) return n;
return null
}
function c() {
var e = s();
return !!(void 0 !== e && e && e.length >= 0)
}
var u = [];
function l(t, s) {
if (!o) throw "Gigya is not configured";
p();
var l = e.findCookieByName("glt_" + a.apiKey), d = e.findCookieByName("__utg_" + a.apiKey);
(l !== d || l && l === d && !c() || t) && (u.push(s), 1 === u.length && window.gigya.accounts.getAccountInfo({
callback: function (t) {
if (0 === t.errorCode) {
var o = {
uid: t.UID,
signature: t.UIDSignature,
signature_timestamp: t.signatureTimestamp,
url: e.prepareUrlParameter(window.location.href)
};
e.startCall("refreshUserToken"), n.callApi("/anon/gigya/verifyAccountInfo", o, (function (n) {
if (n && n.result) {
e.setAccessTokenListCookie(n.result.access_token, n.result.user_token);
var t = {path: "/", expires: 730};
if (n.result.access_token) {
var o = n.result.access_token.cookie_domain;
o && "localhost" !== o && r.inArray(o, e.getPossibleCookieDomains()) >= 0 && (t.domain = o)
}
var s = e.findCookieByName("glt_" + a.apiKey);
e.__protected__.setCookieConsent("vx", "__utg_" + a.apiKey, s, t);
for (var c = 0; c < u.length; c++) {
var l = u[c];
l && l(n.result)
}
n.result.user && (n.result.user = {
uid: n.result.user.uid,
email: n.result.user.email,
firstName: n.result.user.first_name,
lastName: n.result.user.last_name,
valid: n.result.user.valid
}), i.fireCallbacks("userChanged", n.result, void 0, !0)
} else e.log("Can't verify gigya user: may be the configuration of gigya user provider is invalid"), e.setAccessTokenListCookie();
u = [], e.doneCall("refreshUserToken")
}))
} else e.setAccessTokenListCookie(), u = []
}
}))
}
var d = !1;
function p() {
if (!window.gigya || !window.gigya.__initialized) throw "Gigya is not initialized"
}
return {
isv: !1, name: "gigya", init: function (n) {
if (!o) {
for (var t in n) void 0 !== n[t] && (a[t] = n[t]);
if (!a.screenSet) throw "Gigya is not configured: screenSet parameter required";
if (!a.apiKey) throw "Gigya is not configured: apiKey parameter required";
p(), window.gigya.accounts.addEventHandlers({
onLogin: function () {
d = !0, l()
}, onLogout: function () {
e.setAccessTokenListCookie({value: null}, void 0, !0), i.fireCallbacks("logout", null, void 0, !0)
}
}), o = !0, l()
}
}, isUserValid: c, getToken: s, getName: function () {
return "gigya"
}, onLoginSuccess: function (n) {
e.setAccessTokenListCookie({value: n.token_list, cookie_domain: n.cookie_domain}, n.user_token)
}, login: function (e) {
if (!o) throw "Gigya is not configured";
p(), e && window.gigya.accounts.addEventHandlers({
onLogin: function () {
l(!0, e)
}
});
var n = {
screenSet: a.screenSet, onHide: function () {
i.fireCallbacks("onHide", {afterLogin: d}, void 0, !0)
}
}, t = ["apiKey", "screenSet"];
for (var r in a) {
r in t || (n[r] = a[r])
}
d = !1, window.gigya.accounts.showScreenSet(n)
}, logout: function (n) {
if (!o) throw "Gigya is not configured";
p(), window.gigya.accounts.logout({
callback: function () {
i.fireCallbacks("logout", null, void 0, !0), n && n(), e.setAccessTokenListCookie({value: null}, void 0, !0)
}
}), e.setAccessTokenListCookie({value: null}, void 0, !0)
}, isConfigured: function () {
return !0 === pn.useGigyaUserProvider || "string" == typeof pn.useGigyaUserProvider && "true" === pn.useGigyaUserProvider
}, registerCallback: function (e, n) {
i.addEvent(e), i.registerCallback(e, (function (e) {
return n(e)
}))
}, loginByPasswordless: function (n) {
if (!n) throw "Session info is empty";
var t = n.accessTokenName, r = n.accessToken;
e.__protected__.setCookie(t, r);
var o = "glt_" + a.apiKey;
e.__protected__.setCookieConsent("vx", o, r), l(!0)
}
}
}();
pn.container.register("gigya", {useValue: qo}), pn.gigya = pn.container.resolve("gigya");
var zo = function () {
var e = function (e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return d(n, e), n.prototype.construct = function (e) {
this.message = e, this.name = "InvalidCharacterError"
}, n
}(Error);
function n(n) {
var t = String(n).replace(/=+$/, "");
if (t.length % 4 == 1) throw new e("'atob' failed: The string to be decoded is not correctly encoded.");
for (var r, o, i = 0, a = 0, s = ""; o = t.charAt(a++); ~o && (r = i % 4 ? 64 * r + o : o, i++ % 4) ? s += String.fromCharCode(255 & r >> (-2 * i & 6)) : 0) o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o);
return s
}
try {
var t = window.atob && window.atob.bind(window) || n
} catch (e) {
t = n
}
var r = function (e) {
var n = e.replace(/-/g, "+").replace(/_/g, "/");
switch (n.length % 4) {
case 0:
break;
case 2:
n += "==";
break;
case 3:
n += "=";
break;
default:
throw "Illegal base64url string!"
}
try {
return function (e) {
return decodeURIComponent(t(e).replace(/(.)/g, (function (e, n) {
var t = n.charCodeAt(0).toString(16).toUpperCase();
return t.length < 2 && (t = "0" + t), "%" + t
})))
}(n)
} catch (e) {
return t(n)
}
};
return function (e, n) {
if ("string" != typeof e) throw new Error("Invalid token specified");
var t = !0 === (n = n || {}).header ? 0 : 1;
return JSON.parse(r(e.split(".")[t]))
}
}();
pn.jwtDecode = zo, pn.container.register("jwtDecode", {useValue: zo});
pn.container.register("urlManager", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t = function () {
var e = pn.sandbox || pn.isNonProdEndpoint(),
t = n || pn.pianoIdUrl || !e && "https://id.tinypass.com" || "/";
return "/" === t && (t = pn.getEndpointRoot(!0)), t.replace(/\/$/, "")
}, r = function () {
return "".concat(t(), "/id/")
};
return {
getPianoIdDomain: t, getPianoIdUrl: r, getIdentifyUrl: function () {
return "".concat(r(), "api/v1/identity")
}, iframeUrlFromGlobalConfig: n, setIframeUrlFromGlobalConfig: function (e) {
return n = e
}
}
}()
});
var Ho, Wo;
pn.container.register("langManager", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("util");
return {
getLang: function () {
return pn.locale || n.__protected__.getCookie("__pil") || ""
}
}
}()
}), function (e) {
e.Modal = "modal", e.Inline = "inline", e.Popup = "popup", e.Redirect = "redirect", e.InlinePopup = "inlinePopup"
}(Ho || (Ho = {})), function (e) {
e.isPianoIdLiteConfigured = function () {
return !0 === pn.usePianoIdLiteUserProvider || "string" == typeof pn.usePianoIdLiteUserProvider && "true" === pn.usePianoIdLiteUserProvider
}, e.isCustomForm = function (e, n) {
var t = !e.isRegistration, r = !/\.html$/.test(n);
return !!e.formName && r && t
}
}(Wo || (Wo = {}));
var Go = Wo.isCustomForm;
pn.container.register("iframeBuilder", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("util"), t = e.resolve("langManager"), r = e.resolve("gaService"),
o = e.resolve("jqUtils");
return {
buildIframeUrl: function (e, i, a, s) {
var c, u = n.getPageViewContext().contentType, l = n.getPageViewContext(), d = l.pageTitle,
p = l.pageViewId, f = {
client_id: i.aid,
sender: null == a ? void 0 : a.iframeId,
origin: s || window.location.origin || window.location.href,
site: window.location.href,
display_mode: i.displayMode,
page_view_id: null != p ? p : void 0,
browser_id: null !== (c = n.getBrowserId()) && void 0 !== c ? c : void 0,
page_title: d,
tbc: n.getTbcCookie()
};
u && (f.content_type = u);
var m = t.getLang();
if (m && (f.lang = m), r.getClientId() && (f.ga_client_id = r.getClientId()), r.getGAAccount() && (f.ga = r.getGAAccount()), i.disableSignUp && (f.disable_sign_up = !0), i.screen && (f.screen = i.screen), i.resetPasswordToken && (f.reset = i.resetPasswordToken), i.verification_code && (f.verification_code = i.verification_code), i.stage && (f.stage = i.stage), i.resetPasswordLandingUrl && (f.reset_uri = i.resetPasswordLandingUrl), i.width && i.displayMode === Ho.Modal && (f.width = i.width), i.formName && (f.form_name = i.formName), i.preview) switch (i.template) {
case"custom_form":
e += "form";
break;
case"profile":
e += "profile";
break;
case"newsletters":
e += "newsletters";
break;
case"layout_gm_sso":
case"sso_confirm":
case"sso_confirm_before":
e += "gm-sso"
} else Go(i, e) && (e += "form"), i.isGmSsoEnabled && (e += "gm-sso");
if (i.confirmation && (f.gm_sso_confirm = i.confirmation), i.hideIfComplete && (f.hide_if_complete = i.hideIfComplete), i.preview && (f.preview = i.preview), i.templateVersion && (f.templateVersion = i.templateVersion), i.template && (f.template = i.template), i.accessToken && (f.access_token = i.accessToken), i.email && (f.email = i.email), i.singleStep && (f.single_step = !0), i.createPasswordlessUser && (f.create_passwordless_user = !0), i.customParams && (f.custom_params = JSON.stringify(i.customParams)), i.customEvents) {
var v = Object.keys(i.customEvents);
v.length && (f.custom_events = JSON.stringify(v))
}
return i.jsonpError && (f.jsonp_error = JSON.stringify(i.jsonpError)), i.passwordlessSuccess && (f.passwordless_success = !0), i.passwordlessToken && (f.passwordless_token = i.passwordlessToken), i.redirectUri && (f.redirect_uri = i.redirectUri), null != a && a.iframeUrl && (f.url = a.iframeUrl), i.returnBack && (f.return_back = i.returnBack), null != a && a.pos && (f.width = a.pos.width, f.height = a.pos.height, f.top = a.pos.top, f.left = a.pos.left), i.templateId && (f.template_id = i.templateId), i.variantId && (f.variant_id = i.variantId), i.sss && (f.sss_mode = i.sss.sss_mode, f.sss_callback_url = i.sss.sss_callback_url, f.sss_origin_url = i.sss.sss_origin_url), i.trackingId && (f.tracking_id = i.trackingId), i.response_id && (f.response_id = i.response_id), i.transparentMode && (f.transparent_mode = !0), [e, o.param(f)].join("?")
}
}
}()
});
var Jo = function (e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return d(n, e), n
}(Error);
pn.container.register("microsoftQuickAuth", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t = "msqaLinkingState", r = e.resolve("util"), o = e.resolve("ajax"), i = e.resolve("localStorage"),
a = e.resolve("gaService"), s = "", c = "", u = function () {
return new Promise((function (e) {
var o, a = null !== (o = null == n ? void 0 : n.promptPosition) && void 0 !== o ? o : "left";
ms.auth.prompt(a, (function (n) {
n.displayed && (r.debug("[Piano ID][Microsoft Quick Auth] Prompt displayed."), i.remove(t)), e(n)
}))
}))
}, l = function () {
var e = new URL(s), n = r.getBrowserId();
n && e.searchParams.append("browser_id", n);
var a = pn.main.fetchPageViewId();
a && e.searchParams.append("page_view_id", a);
var u = r.getPageViewContext().contentType;
return u && e.searchParams.append("content_type", u), new Promise((function (n, r) {
return o.request({
url: e.toString(),
type: "POST",
contentType: "application/json",
dataType: "text",
data: JSON.stringify({
state: i.get(t),
back_url: window.location.href,
social_type: "MSQA",
response_type: "token",
prompt: !0,
redirect_uri: c
}),
success: function (e) {
i.set(t, e), "ms" in window && ms.auth.setRedirectState(e), n(e)
},
error: function (e) {
r(e)
}
})
}))
};
return {
init: function (e, o, a) {
return void 0 === a && (a = function () {
}), g(void 0, void 0, void 0, (function () {
var s, c;
return h(this, (function (u) {
switch (u.label) {
case 0:
if (!e || !o) throw new Jo("[Piano ID] Microsoft Quick Auth configuration failed. Client ID or redirectUri are missed.");
return [4, r.requireJsFile("https://edge-auth.microsoft.com/js/ms_auth_client.min.js")];
case 1:
if (u.sent(), r.debug("[Piano ID][Microsoft Quick Auth] Script loaded."), !ms) throw new Jo("[Piano ID] Microsoft Quick Auth configuration failed. MSQA is not loaded.");
if (s = ms.auth.initialize({
client_id: e,
callback: a,
redirect_uri: o,
ux_mode: "redirect",
auto_prompt: !1,
auto_sign_in: null == n ? void 0 : n.autoSignIn,
context: null == n ? void 0 : n.context,
cancel_on_tap_outside: null == n ? void 0 : n.cancelOnTapOutside,
locale: null == n ? void 0 : n.locale
}), (c = i.get(t)) && ms.auth.setRedirectState(c), "failure" === s.result) throw new Jo("[Piano ID] Microsoft Quick Auth configuration failed due to ".concat(s.reason));
return r.debug("[Piano ID][Microsoft Quick Auth] Initialized."), [2]
}
}))
}))
}, showPrompt: u, fetchLinkingState: l, setLinkingStateUrl: function (e) {
return s = e
}, setLinkingRedirectUri: function (e, n, t, o) {
var i = new URL(e);
i.searchParams.append("client_id", n), i.searchParams.append("origin", t), i.searchParams.append("site", window.location.href), i.searchParams.append("display_mode", "modal");
var s = pn.main.fetchPageViewId();
s && i.searchParams.append("page_view_id", s);
var u = r.getBrowserId();
u && i.searchParams.append("browser_id", u);
var l = r.getTbcCookie();
l && i.searchParams.append("tbc", l), a.getGAAccount() && i.searchParams.append("ga", a.getGAAccount());
var d = r.getPageViewContext();
null != d && d.contentType && i.searchParams.append("content_type", null == d ? void 0 : d.contentType), i.searchParams.append("lang", o), i.searchParams.append("width", "400"), c = i.toString()
}, runLinkingStateAndPromptObserver: function () {
r.debug("[Piano ID][Microsoft Quick Auth] Running linking state and prompt observer."), setInterval((function () {
return l().then((function () {
return u()
}))
}), 6e5)
}, clearConfirmationParameters: function () {
var e = "internal_redirect_uri", n = "response_id";
r.hasQueryParamByName(e) && r.removeQueryParamByName(e), r.hasQueryParamByName(n) && r.removeQueryParamByName(n)
}, setConfiguration: function (e) {
return n = e
}
}
}()
});
pn.container.register("selfServeSessions", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("langManager"), t = e.resolve("urlManager"), r = function () {
var e = o(), n = e.sss_mode, t = e.sss_callback_url;
return !!n && !!t
}, o = function () {
var e = pn.sssOriginUrl || window.location.href || window.location.origin;
return {sss_mode: pn.sssMode, sss_callback_url: pn.sssCallbackUrl, sss_origin_url: e}
};
return {
getAccessToken: function () {
return pn.sssAccessToken
}, isSssEnabled: r, getSssParams: o, setSssAccessToken: function (e, r) {
if (void 0 === r && (r = !1), pn.setSssAccessToken(e), !r) {
var i = "";
i += "callback_url=" + o().sss_callback_url, i += "&origin_url=" + o().sss_origin_url, i += "&aid=" + pn.aid, i += "&lang=" + n.getLang(), i += "&token=" + e, window.location.href = t.getPianoIdDomain() + "/id/api/v1/sss?" + i
}
}, isRedirect: function (e) {
var n;
return "redirect" === (null === (n = e.sss) || void 0 === n ? void 0 : n.sss_mode)
}, logout: function () {
r() && pn.sssAccessToken && pn.setSssAccessToken(void 0)
}
}
}()
});
pn.container.register("tokenManager", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("util"), t = e.resolve("selfServeSessions"), r = n.getAidSpecifiedName("__utp"),
o = function () {
var e;
return t.isSssEnabled() && t.getAccessToken() ? null !== (e = t.getAccessToken()) && void 0 !== e ? e : null : n.findCookieByName(r) || null
};
return {
getToken: function () {
return pn.externalJWT && Wo.isPianoIdLiteConfigured() ? pn.externalJWT : o()
}, loadToken: o
}
}()
});
var Qo;
pn.container.register("configManager", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("tokenManager"), t = function () {
var e = window.innerWidth || document.documentElement.clientWidth || window.screen.width;
return Math.min(e, 400)
};
return {
prepareConfig: function (e, r) {
e.aid || (e.aid = pn.aid), e.displayMode || (e.displayMode = Ho.Modal), e.displayMode === Ho.Popup ? (e.width = parseInt(String(e.width)) || t(), e.height = parseInt(String(e.height)) || 460) : e.displayMode === Ho.Modal && (e.width = parseInt(String(e.width)) || t()), null == r || r(e), e.accessToken = n.loadToken()
}, getDefaultWidth: t
}
}()
}), function (e) {
e.None = "none", e.Before = "before", e.After = "after"
}(Qo || (Qo = {}));
pn.container.register("pianoId", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t, r, o, i, a, s = e.resolve("cookie"), c = e.resolve("jqUtils"), u = e.resolve("ajax"),
l = e.resolve("jwtDecode"), d = e.resolve("util"), f = e.resolve("containerUtils"),
m = e.resolve("postmessage"), v = e.resolve("observer"), y = (e.resolve("gaService"), e.resolve("api")),
w = e.resolve("logging"), _ = e.resolve("localStorage"), k = e.resolve("consent"),
C = e.resolve("analytics"), I = e.resolve("clientConfiguration"), S = e.resolve("microsoftQuickAuth"),
E = !1, T = e.resolve("selfServeSessions"), P = e.resolve("iframeBuilder"),
x = e.resolve("configManager"), A = e.resolve("urlManager"), O = e.resolve("tokenManager"),
M = "gm_sso_redirect", N = "token", R = "term_id", L = "offer_id", U = "checkout_flow_id",
D = "experience_id", j = "form_name", V = "form_name_by_term_id", F = "remember", B = "registration",
q = "reset_token", z = "passwordless_token", H = "verification_code", W = "piano_social_token",
G = d.getAidSpecifiedName("__utp"), J = "__pil", Q = "__pid", X = "__idr", Y = "__eea", $ = "PIANOID",
K = "show_form", Z = "registration", ee = "checkout", ne = 3e3, te = "pnid-tc-string",
re = ["he_IL", "ar_EG"], oe = {}, ie = [], ae = {}, se = {
loggedIn: [],
loggedOut: [],
loginSuccess: [],
registrationSuccess: [],
profileUpdate: [],
langChange: [],
fire_loginSuccess: [],
loginDisplayed: [],
registerDisplayed: [],
loginFailed: [],
registrationFailed: [],
onShow: [],
layoutReady: []
}, ce = {}, ue = {}, le = [], de = !1, pe = {};
c.on(window, "resize", (function () {
return me()
}));
var fe = function (e) {
var n;
de && (e.confirmation = null !== (n = e.confirmation) && void 0 !== n ? n : Qo.After)
}, me = function (e) {
ie.filter((function (e) {
return "inline" === e.config.displayMode
})).filter((function (n) {
return !e || e.some((function (e) {
return n.container === e
}))
})).forEach((function (e) {
var n = c.getWidth(e.container);
f.resizeIframe(e, {width: n}), m.send("resize", {width: n}, e.iframeId)
}))
}, ve = function (e) {
if (o && !e) return o;
var n;
oe = Object.assign(oe, e), A.setIframeUrlFromGlobalConfig(oe.iframeUrl), e && Ve(e), Object.keys(se).forEach((function (e) {
!!oe[e] && delete oe[e]
})), o = new Promise((function (e) {
n = e
})), Wo.isPianoIdLiteConfigured() || pn.setUsePianoIdUserProvider(!0);
var t = d.getQueryParamByName(q);
if (void 0 === oe.resetPasswordToken && t && (oe.resetPasswordToken = t), d.getQueryParamByName(M)) {
var r = d.getQueryParamByName(R), i = d.getQueryParamByName(L), a = d.getQueryParamByName(D),
s = d.getQueryParamByName(U), c = d.getQueryParamByName(j), u = d.getQueryParamByName(V);
r && i && (pe.termId = r, pe.offerId = i), a && (pe.experienceId = a), s && (pe.checkoutFlowId = s), c && (pe.formName = c), u && (pe.formNameByTermId = u), g(void 0, void 0, void 0, (function () {
var e, n, t;
return h(this, (function (r) {
switch (r.label) {
case 0:
return e = d.getQueryParamByName(N), n = !!d.getQueryParamByName(F), t = !!d.getQueryParamByName(B), d.removeQueryParamByName([M, N, F, R, L, D, U, j, V, B]), e ? [4, cn({
source: $,
user: l(e),
remember: n,
token: e
})] : [3, 2];
case 1:
r.sent(), t && je("registrationSuccess"), r.label = 2;
case 2:
return [2]
}
}))
})), function () {
var e = O.getToken(), n = l(e);
e && (pe.emailConfirmationRequired = n.email_confirmation_required, pe.phoneConfirmationRequired = n.pn_cr)
}()
}
var p = d.getQueryParamByName(z);
void 0 === oe.passwordlessToken && p && (oe.passwordlessToken = p);
var f = d.getQueryParamByName(H);
void 0 === oe.verification_code && f && (oe.verification_code = f);
var m = d.getQueryParamByName(W);
return m && (d.removeQueryParamByName(W), un() || (pn.inappBrowserReturn = !0, function (e, n) {
var t = l(e);
t.rememberMe = n, tn({user: t, token: e})
}(m, !0))), setTimeout((function () {
return n()
}), 50), o
}, ge = function (e, t) {
if (r && !e) return r;
var o;
r = new Promise((function (e) {
o = e
}));
var i = function () {
d.doneCall("refreshUserToken"), r = null, o()
}, a = function (t) {
var r, o;
if ("token_not_valid" === t) {
if (i(), E) return;
if (d.isEdge()) {
var a = d.getQueryParamByName("internal_redirect_uri"),
s = d.getQueryParamByName("response_id");
if (a && s) {
S.clearConfirmationParameters();
var c = Array.from(new URL(a).searchParams.entries());
return he(p(p(p({}, oe), c.reduce((function (e, n) {
var t, r = n[0], o = n[1];
return p(p({}, e), ((t = {})[r] = o, t))
}), {})), {response_id: s, transparentMode: !0})), void (E = !0)
}
S.setLinkingStateUrl("".concat(A.getIdentifyUrl(), "/social/").concat(oe.aid || pn.aid, "/state")), S.setLinkingRedirectUri(A.getPianoIdUrl(), oe.aid || pn.aid, A.getPianoIdUrl(), "en-US"), S.setConfiguration(p(p({}, null == e ? void 0 : e.msqaPromptConfiguration), {locale: null !== (o = null === (r = null == e ? void 0 : e.msqaPromptConfiguration) || void 0 === r ? void 0 : r.locale) && void 0 !== o ? o : kn().replace("_", "-")})), n = I.getConfiguration().then((function (e) {
return g(void 0, void 0, void 0, (function () {
return h(this, (function (n) {
switch (n.label) {
case 0:
return e.msqa_client_id ? [4, S.fetchLinkingState()] : [3, 2];
case 1:
return n.sent(), [2, e];
case 2:
return [2, Promise.reject()]
}
}))
}))
})).then((function (e) {
return S.init(e.msqa_client_id, "".concat(A.getIdentifyUrl(), "/login/social/callback/MSQA"))
})).then((function () {
return S.runLinkingStateAndPromptObserver()
})).then((function () {
var n, t;
if (null === (t = null === (n = null == e ? void 0 : e.msqaPromptConfiguration) || void 0 === n ? void 0 : n.autoPrompt) || void 0 === t || t) return S.showPrompt()
})).then((function () {
return E = !0
})).catch((function (e) {
e instanceof Jo && console.error(e)
}))
}
} else "request_failed" === t && console.error("Opening the ID screen is prohibited because authentication via cookie failed.")
};
return e && e.preview ? (setTimeout((function () {
return o()
}), 10), r) : (d.startCall("refreshUserToken"), ve(e).then((function () {
return oe.passwordlessToken ? Ce().then(i, i) : t ? Promise.resolve().then(i, i) : mn().then(i, a)
})), r)
}, he = function (e) {
var n = !un(), r = performance.now();
ge().then((function () {
var o = Object.assign({}, oe, e, {
isRegistration: !0,
initTime: r,
isSensitiveDataProtectionDisabled: !0
});
if (T.isSssEnabled() && (o.sss = T.getSssParams()), de) En(o) ? Tn(o) : dn(o); else if (T.isSssEnabled() && T.isRedirect(o)) $e(o, (function (e) {
fe(e)
})); else {
var i = un();
if (i) Me(o, {emitGlobalLoginSuccessEvent: n && i}); else t ? d.log("Modal login window already shown") : (x.prepareConfig(o, (function (e) {
fe(e)
})), Ke(o))
}
}))
}, ye = function () {
var e = "email_is_not_confirmed", n = sn();
if (n) {
var t = d.getQueryParamByName(e);
if (t) d.removeQueryParamByName(e), be({
screen: "registration" === t ? "email_is_not_confirmed" : "email_confirmation_required",
email: null == n ? void 0 : n.email
})
}
}, we = function (e) {
t ? d.log("Modal window already shown") : ge().then((function () {
var n = Object.assign({screen: "email_confirmation_required"}, oe, e);
x.prepareConfig(n, (function (e) {
fe(e)
})), Ke(n)
}))
}, _e = function (e) {
t ? d.log("Modal window already shown") : ge().then((function () {
var n = Object.assign({screen: "email_confirmation"}, oe, e);
En(n) && (n.displayMode = Ho.Modal), d.getQueryParamByName(H) && d.removeQueryParamByName(H), x.prepareConfig(n, (function (e) {
fe(e)
})), Ke(n)
}))
}, be = function (e) {
if (t) d.log("Modal window already shown"); else {
e || (e = {});
var n = Object.assign({}, e, oe);
e.customEvents && "object" == _typeof(e.customEvents) && (ce = e.customEvents), x.prepareConfig(n, (function (e) {
fe(e)
})), Ke(n)
}
}, ke = function (e) {
var n = performance.now();
ge().then((function () {
var r = Object.assign({}, oe, e, {initTime: n, isRegistration: !1});
if (!r.formName) throw new Error('Form name should be specified, like\ntp.pianosId.showForm({formName: "..."});');
var o = function () {
if (t) d.log("Modal login window already shown"); else {
if (x.prepareConfig(r, (function (e) {
fe(e)
})), !r.preview && i) return void d.log("Skip show form, register new user");
if (!r.hideIfComplete) return void Ke(p(p({}, r), {
entityType: "customForm",
readyCallback: function (e) {
m.send("setToken", O.getToken(), e.iframeId)
}
}));
Sn(r).then((function (e) {
(null == e ? void 0 : e.has_all_custom_field_values_filled) && r.hideIfComplete ? d.log("Skip show form, all fields are completed") : Ke(p(p({}, r), {
entityType: "customForm",
readyCallback: function (n) {
m.send("setToken", O.getToken(), n.iframeId), m.send("userData", e, n.iframeId)
}
}))
}))
}
};
if (e.preview || un()) o(); else {
var a = Object.assign({}, e, {
closedCallback: function () {
un() && o()
}
});
he(a)
}
}))
}, Ce = function () {
return new Promise((function (e, n) {
var t = {aid: oe.aid || pn.aid, passwordless_token: oe.passwordlessToken, lang: kn()};
Nn({
url: "".concat(A.getIdentifyUrl(), "/passwordless/authorization/code?").concat(c.param(t)),
type: "POST",
success: function (n) {
Ie(n), e(null)
},
error: function (e) {
var t = e.response, r = JSON.parse(t).error_code_list;
Se(r), n()
}
})
}))
}, Ie = function (e) {
return g(void 0, void 0, void 0, (function () {
var n, t, r, o, i, a, s;
return h(this, (function (c) {
switch (c.label) {
case 0:
return n = e.access_token, t = e.error, r = e.token_type, o = e.direction_url, i = e.code, a = e.extend_expired_access_enabled, !t && "code" === r && o && i ? ((s = new URL(o)).searchParams.append("code", i), window.open(s, window.name), [3, 3]) : [3, 1];
case 1:
return !t && n ? (Ee(e), delete oe.passwordlessToken, d.removeQueryParamByName(z), T.isSssEnabled() && T.setSssAccessToken(n, !0), [4, cn({
source: $,
token: n,
user: l(n),
extendExpiredAccessEnabled: a
})]) : [3, 3];
case 2:
c.sent(), T.isSssEnabled() && T.setSssAccessToken(n), c.label = 3;
case 3:
return d.doneCall("refreshUserToken"), [2]
}
}))
}))
}, Se = function (e) {
be({
screen: "passwordless_confirmation", jsonpError: {
error_description: e.map((function (e) {
return e.message
})).join("\n")
}
}), delete oe.passwordlessToken, d.removeQueryParamByName(z)
}, Ee = function (e) {
var n = {aid: oe.aid || pn.aid, login_token_id: e.login_token_id, user_token: e.access_token},
t = {passwordlessToken: e.passwordless_token, redirectUri: e.direction_url};
Te(n, t)
}, Te = function (e, n) {
f.showWaitPanel(), y.callApi("/anon/passwordless/complete", e, (function (e) {
if (e.result && e.result.polling_enabled) return Pe(e).then((function (e) {
Ae(e, n)
}));
Ae(e, n)
}))
}, Pe = function (e) {
return new Promise((function (n) {
var t = {
aid: pn.aid,
oid: e.result.oid,
process_id: e.result.process_id,
user_token: pn.user.getProvider().getToken()
};
xe(t, 0, e.result.polling_timeouts, n)
}))
}, xe = function e(n, t, r, o) {
y.callApi("/anon/passwordless/check", n, (function (i) {
t++, i && i.result && "waiting" !== i.result.poll_status ? o(i) : !i.result && i.message ? (d.error("Passwordless purchase failed", i.message), o()) : t <= r.length ? setTimeout((function () {
e(n, t, r, o)
}), r[t - 1]) : o()
}))
}, Ae = function (e, n) {
try {
var t = e.result.resource || {}, r = JSON.parse(e.result.show_offer_params), o = Oe(n);
if (!Object.keys(t).length && !Object.keys(r).length) return be(o);
o = t.name ? Oe(n, {customParams: {resourceName: t.name}}) : Oe(n, {
customEvents: {
checkoutContinue: function () {
en(), f.closeModalContainer(), pn.offer.show(r)
}
}
}), be(o)
} catch (e) {
be(Oe(n))
} finally {
f.hideWaitPanel()
}
}, Oe = function (e, n) {
var t = {screen: "passwordless_confirmation"};
return e && (t.passwordlessToken = e.passwordlessToken, t.redirectUri = e.redirectUri), n ? Object.assign(t, n) : Object.assign(t, {passwordlessSuccess: !0})
}, Me = function (e, n) {
n = n || {};
var t = sn();
if (t) {
var r = {token: O.loadToken(), user: t, source: n.source, stage: n.stage}, o = {
event: "loginSuccess",
source: n.source,
params: r.user,
user_token: r.token,
registration: i,
stage: n.stage
};
e ? (e.loggedIn && e.loggedIn(r), n.emitGlobalLoginSuccessEvent && De("loginSuccess", o)) : (Re("loggedIn", r), Re("loginSuccess", r), n.source === $ && (Re("fire_loginSuccess", o), De("loginSuccess", o)))
}
}, Ne = function (e, n) {
var t = {login: "loginDisplayed", register: "registerDisplayed"}[e];
n || Re(t, {}), De(t, {})
}, Re = function (e, n) {
var t;
Le(e, n), null === (t = se[e]) || void 0 === t || t.forEach((function (e) {
return e(n)
}))
}, Le = function (e, n) {
ie.filter((function (e) {
return !e.closed
})).map((function (n) {
return Ue(n.config, e)
})).filter((function (e) {
return !!e
})).forEach((function (e) {
return e(n)
}))
}, Ue = function (e, n) {
return "function" == typeof (null == e ? void 0 : e[n]) ? e[n] : void 0
}, De = function (e, n) {
var t;
null === (t = ue[e]) || void 0 === t || t.forEach((function (e) {
return e(n)
}))
}, je = function (e, n) {
Re(e, n), De(e, n)
}, Ve = function (e) {
!e || Object.keys(se).forEach((function (n) {
var t, r = e[n];
r && (null === (t = se[n]) || void 0 === t || t.push(r))
}))
}, Fe = function (e) {
ne = e
}, Be = function () {
var e = window.innerWidth || document.documentElement.clientWidth || window.screen.width;
return Math.min(e, 400)
}, qe = function (e, n, t) {
return g(void 0, void 0, void 0, (function () {
return h(this, (function (r) {
switch (r.label) {
case 0:
return i = !1, [4, hn()];
case 1:
return r.sent(), an(), T.logout(), _.remove(te), d.setAccessTokenListCookie({value: null}, void 0, !0), t || function (e) {
var n = {source: e};
Re("loggedOut", n), De("logout", n)
}(n), e && e(), [2]
}
}))
}))
};
function ze(e) {
return function (n) {
var t, r, o, i, a, s, u, l = e.config, p = l.trackingId, v = l.formName;
switch (n.event) {
case"updateToken":
cn(n.params);
break;
case"loaded":
l.displayMode === Ho.Modal && f.checkBackdropAndContainer(e, !0), null === (t = l.loadedCallback) || void 0 === t || t.call(l, e);
var g = pn.consent.getByPurpose();
g && m.send("consentWithModes", g, e.iframeId);
break;
case"stateReady":
null === (r = l.readyCallback) || void 0 === r || r.call(l, e);
break;
case"resize":
f.resizeIframe(e, n.params);
break;
case"restoreSize":
"inline" === e.config.displayMode && f.resizeIframe(e, {width: c.getWidth(e.container)});
break;
case"loginSuccess":
Qe(n, (function () {
var e;
null === (e = l.callback) || void 0 === e || e.call(l), pn.user.refreshAccessToken(!0), m.broadcast("pianoIdLoginSuccess", n.params)
}));
break;
case"loginFailed":
je("loginFailed", n.params);
break;
case"registrationSuccess":
Qe(n, (function () {
je("registrationSuccess", n.params), m.broadcast("pianoIdLoginSuccess", n.params)
}));
break;
case"registrationFailed":
je("registrationFailed", n.params);
break;
case"lang":
bn(n.params.lang, !0), xn(n.params.lang, e);
break;
case"customEvent":
!function (e, n) {
var t;
null === (t = null == e ? void 0 : e.customEvent) || void 0 === t || t.call(e, n), De("customEvent", n)
}(e.config, n.params);
break;
case"closed":
"customForm" === e.config.entityType && De("customFormClosed", {
config: e.config,
reason: null === (o = n.params) || void 0 === o ? void 0 : o.reason
}), wn(e, {force: !0}), null === (i = l.closedCallback) || void 0 === i || i.call(l, e);
break;
case"cfFormSubmission":
C.log.event({
eventType: wo.LOG_CUSTOM_FORM_SUBMISSION,
payload: {trackingId: p, formName: v, source: K}
});
break;
case"formSend":
De("customFormSubmitted", {
config: e.config,
submittedFields: null === (a = n.params) || void 0 === a ? void 0 : a.submittedFields
}), wn(e, {reason: "customFormSubmitted"});
break;
case"formSkip":
wn(e);
break;
case"cfAppImpression":
C.log.event({
eventType: wo.LOG_CUSTOM_FORM_IMPRESSION,
payload: {trackingId: p, formName: v, source: Z}
});
break;
case"cfAppSubmission":
C.log.event({
eventType: wo.LOG_CUSTOM_FORM_SUBMISSION,
payload: {trackingId: p, formName: v, source: Z}
});
break;
case"cfFormImpression":
C.log.event({
eventType: wo.LOG_CUSTOM_FORM_IMPRESSION,
payload: {trackingId: p, formName: v, source: K}
});
break;
case"changeScreen":
Ne(n.params.screen);
break;
case"screenReady":
l.initTime && w.setTime("idShow", Math.floor(performance.now() - l.initTime), {
aot: null === (s = n.params) || void 0 === s ? void 0 : s.AOT,
form_type: null !== (u = l.entityType) && void 0 !== u ? u : ""
}), je("onShow");
break;
case"layoutReady":
je("layoutReady", n.params);
break;
case"confirmationEmailSent":
"inline" !== e.config.displayMode && !n.params.isDOI && !n.params.isPasswordlessDigitalCode && wn(e);
break;
case"verificationCodeStartCheckout":
var h = {};
try {
h = JSON.parse(n.params.startCheckoutParams)
} catch (e) {
d.log("error parse start checkout params"), h = {}
}
mn(!0, !0).then((function () {
wn(e, {force: !0})
})), d.waitCall("refreshUserToken", (function () {
pn.offer.show(h)
}));
break;
case"removeParamFromGlobalConfig":
We(n);
break;
case"verifyCode":
Ge(n, e);
break;
case"openPasswordlessLoginWithCreatingUser":
He();
break;
case"fireCustomEvent":
!function (e) {
ce && "function" == typeof ce[e] && ce[e]()
}(n.params.name);
break;
case"passwordRestored":
d.removeQueryParamByName(q), oe.resetPasswordToken = void 0;
break;
case Co.EMIT_GA_EVENT:
C.ga.event({payload: n.params, eventType: Co.EMIT_GA_EVENT});
break;
case"redirect":
document.location.href = n.params.url;
break;
case"designVersion":
f.addClassToContainer(e, "piano-id-modal-ver-".concat(n.params.version));
break;
case"profileUpdated":
Re("profileUpdate", n.params);
break;
case"logout":
un() && qe();
break;
case"successDOI":
m.broadcast("successDOI", n.params), !!pe.termId && fn();
break;
default:
d.debug("Received invalid event type: " + n.event)
}
}
}
var He = function () {
he({createPasswordlessUser: !0})
}, We = function (e) {
var n = e.params.name, t = d.fromUnderscoreToCamelCase(n);
delete oe[t], e.params.removeFromUrl && d.removeQueryParamByName(n)
}, Ge = function (e, n) {
var t = e.params.verificationCode, r = e.params.locale, o = oe.aid || pn.aid, i = O.getToken(),
a = document.location.href, s = n.config.trackingId;
Nn({
url: "".concat(A.getIdentifyUrl(), "/verification/code"),
dataType: "jsonp",
data: {client_id: o, access_token: i, site: a, verification_code: t, lang: r, tracking_id: s},
success: function (e) {
e.error || Je(e, n)
},
xhrFields: {withCredentials: !0},
crossDomain: !0
})
}, Je = function (e, n) {
!e.error && e.access_token && (tn({
token: e.access_token,
user: l(e.access_token),
cookie_domain: e.site_cookie_domain
}), T.isSssEnabled() && T.setSssAccessToken(e.access_token)), m.send("verificationCodeComplete", e, n.iframeId)
}, Qe = function (e, n) {
return g(void 0, void 0, void 0, (function () {
var t, r;
return h(this, (function (o) {
switch (o.label) {
case 0:
return e && e.params && !e.params.areCookiesSet ? (e.params.source = $, i = !!e.params.registration, [4, cn(e.params)]) : [3, 2];
case 1:
return t = o.sent(), n(t), Ye(null === (r = e.params) || void 0 === r ? void 0 : r.user), [3, 3];
case 2:
"function" == typeof n && n(), o.label = 3;
case 3:
return On(), [2]
}
}))
}))
}, Xe = function () {
var e = pn.sandbox || pn.isNonProdEndpoint(),
n = oe.iframeUrl || pn.pianoIdUrl || !e && "https://id.tinypass.com" || "/";
return "/" === n && (n = pn.getEndpointRoot(!0)), n.replace(/\/$/, "")
}, Ye = function (e) {
var n = null == e ? void 0 : e.email_confirmation_required,
t = null == e ? void 0 : e.phone_confirmation_required, r = oe.verification_code;
n || r || t ? f.hideCloseButton() : _n()
}, $e = function (e, n) {
x.prepareConfig(e, n), O.getToken() || window.open(P.buildIframeUrl(A.getPianoIdUrl(), e), window.name)
}, Ke = function (e) {
var n = e.containerSelector ? c.queryEl(e.containerSelector) : null,
r = "piano-id-".concat(e.isRegistration ? "" : "form-").concat(d.randomString());
e.singleContainer = n;
var o, i, a,
s = {iframeId: r, containerSelector: e.containerSelector, width: e.width, height: e.height},
u = P.buildIframeUrl(A.getPianoIdUrl(), e, s), l = !0;
if (e.iframeParams = s, e.displayMode === Ho.Inline) {
var p = f.initInlineContainer(e);
if (!(o = p.container)) return;
i = f.generateIframe(e, s, u), l = !!p.containerReady, e.observeContainer && (a = v.create(o, me))
} else if (e.displayMode === Ho.Modal) o = f.getModalContainer(e, (function () {
return wn(t)
})), i = f.generateIframe(e, s, u); else if (e.displayMode === Ho.Popup) if (d.isIE()) {
o = f.generateIframeWrapper(), u = P.buildIframeUrl(A.getPianoIdUrl(), e, s, A.getPianoIdUrl() + "proxy.html"), s.iframeUrl = u, s.pos = f.getPopupPosition(s);
var m = P.buildIframeUrl(A.getPianoIdUrl() + "proxy.html", e, s);
e.displayMode = Ho.InlinePopup, i = f.generateIframe({}, s, m)
} else {
o = f.generatePopup(s, u);
try {
try {
i = o.document
} catch (e) {
i = o
}
} catch (e) {
i = window.document
}
}
var g = {iframeId: s.iframeId, config: e, element: i, container: o, iframeParams: s, containerReady: l};
if (Ze(g), e.displayMode === Ho.Inline) {
var h = document.createElement("div");
c.addClass("piano-id-container", h), c.append(h, i), c.append(o, h)
} else e.displayMode === Ho.Modal ? c.append(o, i) : e.displayMode === Ho.InlinePopup && (c.append(o, i), c.append(document.body, o));
if (d.debug("creating iframe: ", e), ie.push(g), e.displayMode === Ho.Modal) {
(t = g).observer = a;
var y = kn();
xn(y, g)
}
return g
}, Ze = function (e) {
var n = {center: d.centerScreen(), originUrl: document.location.href};
m.init({postMessageUrl: A.getPianoIdUrl(), receive: ze(e), iframe: e, iframeParams: e.iframeParams}, n)
}, en = function (e) {
if (t) {
var n = f.__private__.mobileModalFix;
f.closeModal(t), c.remove(t.element), t.observer && t.observer.disconnect(), n.isIphoneCaretFixed && n.modalClosed(), t = void 0
}
}, nn = function () {
var e = {path: "/", secure: d.__protected__.isHttpsProtocol(), priority: "High"};
if (pn.cookieDomain) e.domain = pn.cookieDomain; else {
var n = d.__protected__.getCookie(Q), t = d.extractCookieDomain(n);
t && (e.domain = t)
}
return pn.cookiePath && (e.path = pn.cookiePath), e
}, tn = function (e) {
if (e && e.user && e.token) {
an({keepRememberMe: !0, keepExtendExpiredAccess: !0}), e.cookie_domain && on(e.cookie_domain);
var n = {};
if (("r" in e.user ? e.user.r : e.user.rememberMe || In()) && (n.expires = new Date(1e3 * e.user.exp), rn(X, 1, n)), e.extendExpiredAccessEnabled && (Pn("setExtendExpiredAccess", !0, "broadcast"), rn(Y, "true", n)), !T.isSssEnabled()) {
var t = d.getPossibleCookieDomains();
for (var r in t) d.deleteCookie(G, t[r]);
rn(G, e.token, n)
}
}
}, rn = function (e, n, t) {
d.__protected__.setCookieConsent("id", e, n, p(p({}, nn()), t))
}, on = function (e) {
rn(Q, e, {domain: e, expires: 30})
}, an = function (e) {
var n = void 0 === e ? {} : e, t = n.keepRememberMe, r = n.keepExtendExpiredAccess, o = nn();
d.getPossibleCookieDomains(o.domain).forEach((function (e) {
if (e) {
var n = p(p({}, o), {domain: e});
s.remove(G, n), r || s.remove(Y, n), t || Cn(n)
}
}))
}, sn = function () {
var e = null, n = O.loadToken();
if (n) try {
if (e = l(n)) {
e.firstName = e.given_name, e.lastName = e.family_name, e.valid = !0, e.uid = e.sub, e.confirmed = !e.email_confirmation_required && !e.pn_cr;
var t = new Date;
new Date(1e3 * e.exp) < t && (an(), e = null)
}
} catch (e) {
}
return e
}, cn = function (e, n) {
return g(void 0, void 0, void 0, (function () {
return h(this, (function (t) {
switch (t.label) {
case 0:
return tn(e), [4, yn(e.token, e.rememberMe)];
case 1:
return t.sent(), !n && Me(null, {stage: e.stage, source: e.source}), [2]
}
}))
}))
}, un = function () {
return Wo.isPianoIdLiteConfigured() ? !!pn.externalJWT : !!sn()
}, ln = function (e, n, t) {
return g(void 0, void 0, void 0, (function () {
var r, o;
return h(this, (function (i) {
switch (i.label) {
case 0:
return r = l(e.access_token), [4, cn({
token: e.access_token,
user: r,
cookie_domain: e.site_cookie_domain,
extendExpiredAccessEnabled: e.extend_expired_access_enabled
}, n)];
case 1:
return o = i.sent(), t && Ye(r), d.doneCall("refreshUserToken"), [2, o]
}
}))
}))
}, dn = function (e) {
return g(void 0, void 0, void 0, (function () {
var n;
return h(this, (function (r) {
return n = p(p({}, e), {isGmSsoEnabled: de}), x.prepareConfig(n, (function (e) {
fe(e)
})), t ? (d.log("Modal login window already shown"), [2]) : (O.getToken() ? n.confirmation !== Qo.None && !An() && n.displayMode !== Ho.Popup && (Ke(p(p({}, n), {confirmation: Qo.After})), On()) : Ke(n), [2])
}))
}))
}, fn = function () {
if (null != pe && pe.phoneConfirmationRequired) return function (e) {
t ? d.log("Modal window already shown") : ge().then((function () {
var n = Object.assign({screen: "phone_is_not_confirmed"}, oe, e);
x.prepareConfig(n, (function (e) {
fe(e)
})), Ke(n)
}))
}({displayMode: Ho.Modal}), void (pe.phoneConfirmationRequired = void 0);
if (null != pe && pe.emailConfirmationRequired) return we({displayMode: Ho.Modal}), void (pe.emailConfirmationRequired = void 0);
if ((null == pe ? void 0 : pe.offerId) && (null == pe ? void 0 : pe.termId)) {
var e = {offerId: pe.offerId, termId: pe.termId, closeOnLogout: !0};
pe.formNameByTermId && (e.formNameByTermId = pe.formNameByTermId), pe.experienceId && (e.experienceId = pe.experienceId), pe.checkoutFlowId && (e.checkoutFlowId = pe.checkoutFlowId), pn.offer.show(e), pe.offerId = void 0, pe.termId = void 0, pe.formNameByTermId = void 0, pe.experienceId = void 0, pe.checkoutFlowId = void 0
}
null != pe && pe.formName && (ke({formName: null == pe ? void 0 : pe.formName}), pe.formName = void 0), oe.confirmation === Qo.None || An() || he({displayMode: Ho.Modal})
}, mn = function (e, n) {
return new Promise((function (e, n) {
d.startCall("refreshUserToken");
var t = function (t) {
t.isSuccessful ? (e(null), de && fn(), S.clearConfirmationParameters()) : n(t.failReason), d.doneCall("refreshUserToken")
}, r = function (e) {
return g(void 0, void 0, void 0, (function () {
return h(this, (function (n) {
switch (n.label) {
case 0:
return de = e.authorized_by_sso, !e.error && e.access_token ? Wo.isPianoIdLiteConfigured() ? [3, 2] : [4, ln(e, !1, !0)] : [3, 3];
case 1:
n.sent(), n.label = 2;
case 2:
return t({isSuccessful: !0}), [3, 4];
case 3:
e.site_cookie_domain && on(e.site_cookie_domain), an(), t({
isSuccessful: !1,
failReason: "token_not_valid"
}), n.label = 4;
case 4:
return [2]
}
}))
}))
}, o = O.getToken() || void 0,
i = {client_id: oe.aid || pn.aid, site: document.location.origin || document.location.href},
a = vn();
a && (i.tcf = a), Nn(o ? {
url: "".concat(A.getIdentifyUrl(), "/token/validation"),
data: {client_id: oe.aid || pn.aid, site: document.location.origin || document.location.href},
headers: {Authorization: o},
success: function (e) {
r(e), e.access_token && gn(a)
},
error: function () {
return t({isSuccessful: !1, failReason: "request_failed"})
}
} : {
url: "".concat(A.getIdentifyUrl(), "/token/verify"), data: i, success: function (e) {
r(e), e.access_token && (gn(a), T.isSssEnabled() && T.setSssAccessToken(e.access_token))
}, error: function () {
return t({isSuccessful: !1, failReason: "request_failed"})
}, dataType: "jsonp", xhrFields: {withCredentials: !0}, crossDomain: !0
})
}))
}, vn = function () {
var e, n = window;
return function (e) {
if (!e) return !1;
var n = e;
if (!n || !n.tcString || !n.date) return !1;
var t = new Date, r = new Date(n.date), o = Math.abs(r.getTime() - t.getTime());
return Math.ceil(o / 864e5) <= 1
}(_.get(te)) ? null : (e = null, n.__tcfapi && n.__tcfapi("getTCData", 2, (function (n, t) {
t && n.tcString && (e = n.tcString)
}), [412]), e)
}, gn = function (e) {
if (e) {
var n = {date: (new Date).toString(), tcString: e};
Mn(te, JSON.stringify(n))
}
}, hn = function () {
return new Promise((function (e) {
var n = O.getToken(), t = {client_id: oe.aid || pn.aid};
n && Object.assign(t, {token: n}), Nn({
url: "".concat(A.getIdentifyUrl(), "/logout"),
data: t,
dataType: "jsonp",
complete: e,
xhrFields: {withCredentials: !0},
crossDomain: !0
})
}))
}, yn = function (e, n) {
return new Promise((function (t) {
var r = !(n || In());
Nn({
url: "".concat(A.getIdentifyUrl(), "/vxauth/cookie"),
data: {client_id: oe.aid || pn.aid, session_cookie: r},
headers: {Authorization: e || void 0},
complete: t
})
}))
}, wn = function e(n, t) {
var r = void 0 === t ? {} : t, o = r.force, i = r.reason;
!n || (o ? n.closed || (n.closed = !0, "inline" === n.config.displayMode ? c.empty(n.container) : "popup" === n.config.displayMode ? n.container.close() : "modal" === n.config.displayMode && (en(n), c.remove(n.container.parentElement)), de && On()) : (m.send("close", {reason: i}, n.iframeId), ie = ie.filter((function (e) {
return e.iframeId !== n.iframeId
})), setTimeout((function () {
e(n, {force: !0})
}), 600)))
}, _n = function () {
ie.forEach((function (e) {
wn(e)
})), ie = []
}, bn = function (e, n) {
var t = d.__protected__.getCookie(J), r = d.__protected__.getCookie(Q);
t === e || !r || (rn(J, e, {expires: 30}), n || ie.forEach((function (n) {
m.send("lang", {lang: e}, n.iframeId)
})), Object.keys(ae).forEach((function (n) {
var t = ae[n];
m.__protected__.isIframeManaged(n) && t ? t(e) : delete ae[n]
})), je("langChange", e))
}, kn = function () {
return pn.locale || d.__protected__.getCookie(J) || ""
}, Cn = function (e) {
e && s.remove(X, e)
}, In = function () {
return !!d.__protected__.getCookie(X)
}, Sn = function (e) {
return new Promise((function (n) {
var t = Object.assign({}, oe, e);
Nn({
url: "".concat(A.getIdentifyUrl(), "/userinfo"),
data: {client_id: oe.aid || pn.aid, form_name: t.formName},
headers: {Authorization: O.getToken() || void 0},
success: n,
complete: function () {
return n(null)
}
}), setTimeout(n, ne)
}))
}, En = function (e) {
var n = (null == e ? void 0 : e.displayMode) === Ho.Redirect || !(null != e && e.displayMode) && (null == oe ? void 0 : oe.displayMode) === Ho.Redirect,
t = d.isSafariOrUiWebView() && !(null != e && e.displayMode) && !(null != oe && oe.displayMode);
return n || t
}, Tn = function (e) {
var n, t, r;
if (!O.getToken()) {
e = p(p(p({}, oe), e), {redirectUri: null !== (n = e.redirectUri) && void 0 !== n ? n : window.location.href});
var o = function (e, n) {
return JSON.parse(e)[n]
};
x.prepareConfig(e, (function (e) {
fe(e)
})), t = e, r = window.open(function (e, n) {
var t, r = d.getPageViewContext(), i = r.pageViewId, a = r.pageTitle, s = {
client_id: n.aid,
gm_sso_piano_id_domain: Xe(),
site: document.location.href,
display_mode: "redirect",
gm_sso_redirect_container_width: null !== (t = n.width) && void 0 !== t ? t : Be(),
page_view_id: null != i ? i : void 0,
page_title: a,
browser_id: Rn()
}, u = kn();
u && (s.lang = u), n.screen && (s.screen = n.screen), n.resetPasswordToken && (s.reset = n.resetPasswordToken), n.redirectUri && (s.redirect_uri = n.redirectUri), n.offerId && (s.gm_sso_offer_id = n.offerId), n.termId && (s.gm_sso_term_id = n.termId), n.experienceId && (s.gm_sso_experience_id = n.experienceId), n.checkoutFlowId && (s.gm_sso_checkout_flow_id = n.checkoutFlowId), n.confirmation && (s.gm_sso_confirm = n.confirmation), n.transparentMode && (s.transparent_mode = !0);
var l = n.termId && n.formNameByTermId;
if (n.formName) s.form_name = n.formName; else if (l) {
var p = o(n.formNameByTermId, n.termId);
p && (s.form_name = p)
}
return n.formNameByTermId && (s.form_name_by_term_id = n.formNameByTermId), n.sss && (s.sss_mode = n.sss.sss_mode, s.sss_callback_url = n.sss.sss_callback_url, s.sss_origin_url = n.sss.sss_origin_url), [e += "gm-sso", c.param(s)].join("?")
}(A.getPianoIdUrl(), t), window.name), r && On()
}
}, Pn = function (e, n, t) {
le.push({type: t, name: e, data: n})
}, xn = function (e, n) {
re.includes(e) ? f.turnOnRTL(n) : f.turnOffRTL(n)
}, An = function () {
return !!d.__protected__.getCookie("piano-id-initial-gm-sso-shown-" + (oe.aid || pn.aid))
}, On = function () {
rn("piano-id-initial-gm-sso-shown-".concat(oe.aid || pn.aid), !0, {expires: 30})
}, Mn = function (e, n) {
k.id ? k.id.localStorage.set(e, n) : _.set(e, n)
}, Nn = function (e) {
var n = new URL(e.url), t = d.getPageViewContext(), r = t.pageTitle, o = t.pageViewId, i = Rn();
i && n.searchParams.append("browser_id", i), o && n.searchParams.append("page_view_id", o);
var a = d.getPageViewContext().contentType;
a && n.searchParams.append("content_type", a), n.searchParams.append("page_title", r), e.url = n.toString(), u.request(e)
}, Rn = function () {
var e;
return null !== (e = d.getBrowserId()) && void 0 !== e ? e : void 0
};
return {
name: "pianoId",
isv: !1,
init: ge,
prepare: function () {
return ve()
},
show: he,
showForm: ke,
checkAndShowEmailIsNotConfirmed: ye,
showEmailConfirmationRequired: we,
submitLoginForm: function () {
m.send("submitLoginForm", null, null == t ? void 0 : t.iframeId)
},
loginByToken: function (e) {
return g(void 0, void 0, void 0, (function () {
var n;
return h(this, (function (t) {
switch (t.label) {
case 0:
return n = l(e), [4, cn({user: n, token: e})];
case 1:
return t.sent(), Ye(n), [2]
}
}))
}))
},
logout: qe,
getToken: O.getToken,
getUser: sn,
loadExtendedUser: function (e) {
var n = Object.assign({}, oe, e);
Sn(n).then((function (e) {
var t = Object.assign({}, e);
e && Array.isArray(e.custom_field_values) && (e.custom_field_values = e.custom_field_values.map((function (e) {
var n;
try {
n = JSON.parse(e.value)
} catch (t) {
n = e.value
}
return {field_name: e.field_name, value: n, created: e.created}
}))), "function" == typeof n.extendedUserLoaded && n.extendedUserLoaded(t), De("extendedUserLoaded", t)
}))
},
getName: function () {
return "piano_id"
},
isConfigured: function () {
return !0 === pn.usePianoIdUserProvider || "string" == typeof pn.usePianoIdUserProvider && "true" === pn.usePianoIdUserProvider
},
onLoginSuccess: function (e) {
return g(void 0, void 0, void 0, (function () {
var n;
return h(this, (function (t) {
switch (t.label) {
case 0:
return a ? [2] : (a = !0, n = {
source: e.source,
token: e.user_token,
user: e.params || e.user,
cookie_domain: e.cookie_domain,
stage: e.stage
}, d.setAccessTokenListCookie({
value: e.token_list,
cookie_domain: e.cookie_domain
}, e.user_token), [4, cn(n)]);
case 1:
return t.sent(), Ye(n.user), a = !1, [2]
}
}))
}))
},
onProfileUpdate: function (e, n) {
return g(void 0, void 0, void 0, (function () {
var t;
return h(this, (function (r) {
switch (r.label) {
case 0:
return t = {
token: e.token,
user: e.user,
cookie_domain: e.cookie_domain
}, [4, cn(t, !0)];
case 1:
return r.sent(), n(), Re("profileUpdate", t), [2]
}
}))
}))
},
onExtendedUserLoginRequired: function () {
be()
},
isUserValid: un,
setCallbacks: Ve,
getIframeUrl: A.getPianoIdUrl,
updateLang: bn,
onLangChange: function (e, n) {
return ae[n] = e, function () {
delete ae[n]
}
},
getLang: kn,
isAot: function () {
ie.forEach((function (e) {
m.send("isAOT", {}, e.iframeId)
}))
},
registerCallback: function (e, n) {
var t, r = null !== (t = ue[e]) && void 0 !== t ? t : [];
ue[e] = b(b([], r, !0), [n], !1)
},
setRequestTimeout: Fe,
showMsqaPrompt: function () {
return g(void 0, void 0, void 0, (function () {
return h(this, (function (e) {
switch (e.label) {
case 0:
return d.isEdge() ? [4, n] : [3, 2];
case 1:
return e.sent(), [2, S.showPrompt()];
case 2:
return [2]
}
}))
}))
},
__protected__: {
offerMessageReceiver: function (e) {
switch (e.params.event) {
case"cfAppImpression":
case"cfFormImpression":
C.log.event({
eventType: wo.LOG_CUSTOM_FORM_IMPRESSION,
payload: {
trackingId: e.params.trackingId,
formName: e.params.trackingId,
source: ee
}
});
break;
case"cfFormSubmission":
C.log.event({
eventType: wo.LOG_CUSTOM_FORM_SUBMISSION,
payload: {
trackingId: e.params.trackingId,
formName: e.params.trackingId,
source: ee
}
});
break;
case"updateToken":
cn(e.params.params);
break;
case"changeScreen":
Ne(e.params.params.screen, !0);
break;
case"loginFailed":
case"registrationFailed":
case"successDOI":
case"registrationSuccess":
case"customEvent":
De(e.params.event, e.params.params);
break;
case Co.EMIT_GA_EVENT:
C.ga.event({payload: e.params.params, eventType: Co.EMIT_GA_EVENT});
break;
case"redirect":
document.location.href = e.params.params.url;
break;
default:
return void d.debug("Received invalid event type: " + e.params.event)
}
},
showEmailConfirmation: _e,
checkAndShowEmailIsNotConfirmed: ye,
closeModalContainer: en,
executePostMessagesBatch: function () {
for (; le.length;) {
var e = le.pop();
"broadcast" === e.type ? m.broadcast(e.name, e.data) : m.send(e.name, e.data)
}
},
isGmSso: function () {
return de
},
isGmSsoRedirectEnabled: En,
authByGmSsoRedirect: Tn,
extendUserToken: function () {
var e = O.loadToken();
if (e) {
var n = (new Date).getTime(), t = d.__protected__.getCookie(Y),
r = n - 1e3 * l(e).iat > 864e5;
t && r && mn(!1, !0)
}
},
getStage: function () {
return oe.stage
},
isSssEnabled: T.isSssEnabled,
getSssParams: T.getSssParams,
checkVerificationCode: function () {
var e = d.getQueryParamByName(H);
if (e) {
var n = d.getQueryParamByName("_ptid"),
t = p({verification_code: e}, n ? {trackingId: n} : {});
un() ? _e(t) : he(t)
}
}
},
__private__: {
prepareConfig: function (e) {
return x.prepareConfig(e, (function (e) {
fe(e)
}))
}, setRequestTimeout: Fe, createIframe: Ke, addEventsListener: Ze, gmSsoActionAfterTokenVerify: fn
}
}
}()
}), pn.pianoId = pn.container.resolve("pianoId");
var Xo = function () {
var e = pn.container.resolve("util"), n = pn.container.resolve("pianoId"),
t = pn.container.resolve("eventUtils").createEventManager(["userChanged", "onHide", "logout"]),
r = e.getAidSpecifiedName("__utp"), o = function () {
return pn.externalJWT || i()
}, i = function () {
return e.findCookieByName(r) || null
};
return {
name: "pianoIdLite", isv: !1, isConfigured: function () {
return !0 === pn.usePianoIdLiteUserProvider || "string" == typeof pn.usePianoIdLiteUserProvider && "true" === pn.usePianoIdLiteUserProvider
}, isUserValid: function () {
return !!o()
}, getToken: o, getName: function () {
return "piano_id_lite"
}, onLoginSuccess: function (n) {
e.setAccessTokenListCookie({value: n.token_list, cookie_domain: n.cookie_domain}, n.user_token)
}, registerCallback: function (e, n) {
t.addEvent(e), t.registerCallback(e, n)
}, loginByToken: function (e) {
n.loginByToken(e)
}, logout: function (n) {
e.waitCall("refreshUserToken", (function () {
"function" == typeof n && n()
})), t.fireCallbacks("logout", null, void 0, !0)
}
}
}();
pn.container.register("pianoIdLite", {useValue: Xo}), pn.pianoIdLite = pn.container.resolve("pianoIdLite");
pn.container.register("user", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t, r = e.resolve("api"), o = e.resolve("util"), i = e.resolve("janrain"),
a = e.resolve("tinypassAccounts"), s = e.resolve("condeUserProvider"), c = e.resolve("gigya"),
u = e.resolve("pianoId"), l = e.resolve("pianoIdLite"), d = e.resolve("eventUtils"),
p = d.createEventManager([]);
n = "logout", t = function () {
o.__protected__.setVxUsersToDataLayer(null), Nr.set("userStatus", "anon")
}, [i, a, s, c, u, l].forEach((function (e) {
e.registerCallback(n, t)
}));
var f = {
isv: !1, getName: function () {
return "publisher_user_ref"
}, getToken: function () {
return pn.userRef ? pn.userRef.constructor === "".constructor ? pn.userRef : pn.userRef.constructor === {}.constructor ? "{jox}" + JSON.stringify(pn.userRef) : pn.userRef : null
}, isUserValid: function () {
return !!(void 0 !== pn.userRef && pn.userRef && pn.userRef.length > 0)
}, onLoginSuccess: function (e) {
o.setAccessTokenListCookie({value: e.token_list, cookie_domain: e.cookie_domain}, e.user_token)
}, logout: function (e) {
o.setAccessTokenListCookie(), e && e()
}
}, m = function () {
return [i, a, s, c, u, l].find((function (e) {
return e.isConfigured() && !e.isv
})) || f
};
return {
name: "user", getProvider: m, providerInit: function (e) {
(void 0 === e || !e) && (e = function () {
});
var n = m();
"function" == typeof n.prepare ? "prepare" in n && n.prepare().then(e, e) : e()
}, refreshAccessToken: function (e, n) {
var t = !1, i = m().isUserValid();
(function () {
var e = "__tac", n = o.__protected__.getCookie(e);
if (void 0 === n) return 0;
var t = encodeURIComponent(n), r = new TextEncoder;
try {
return r.encode(t + e).byteLength
} catch (n) {
return o.debug("couldn't encode __tac cookie", n), (t + e).length
}
})() >= 4096 ? (t = !0, console.warn("__tac cookie exceeds max size equals ".concat(4096, " bytes")), o.setAccessTokenListCookie(null, "", !0)) : t = function (e, n) {
if (void 0 !== n && n) return !0;
if (e) {
var t = o.__protected__.getCookie("__tae");
if (void 0 === t || !t) return !0;
var r = new Date(parseInt(t));
if ((new Date).getTime() - r.getTime() > 864e5) return !0
}
return !1
}(i, e), (void 0 === n || !n) && (n = function () {
}), t || !i ? o.waitCall("refreshUserToken", (function () {
o.waitCall("offerCreate", (function () {
o.waitCall("experienceExecute", (function () {
if (!m().isUserValid()) return o.__protected__.getCookie("__tac") && o.setAccessTokenListCookie(null, "", !0), void (n && n(""));
o.startCall("refreshAccessTokenList");
var e = {url: o.prepareUrlParameter(window.location.href)};
r.callApi("/access/token/list", e, (function (e) {
o.doneCall("refreshAccessTokenList"), void 0 !== e.access_token_list ? (o.setAccessTokenListCookie(e.access_token_list), n && n(e.access_token_list.value)) : n && n(null)
}), void 0, void 0)
}))
}))
})) : n(null)
}, showLogin: function (e) {
var n = m().getName();
if ("tinypass_accounts" === n) a.login(e); else if ("piano_id" === n) {
var t = e || {};
u.show(t)
} else "publisher_user_ref" === n && p.fireCallbacks("loginRequired", {}, void 0, !0)
}, isUserValid: function () {
return m().isUserValid()
}, logout: function (e, n) {
m().logout(e, n)
}, registerCallback: function (e, n) {
p.addEvent(e), p.registerCallback(e, n)
}, getUserInfoParams: function (e) {
var n = e.userToken;
if (!n) {
var t = m().getToken();
n = t && t.length > 0 ? t : ""
}
return {
user_token: n,
user_lang: o.__protected__.getCookie("LANG") || "",
is_preview: e.preview,
is_non_logged_user: e.previewNonLoggedUser
}
}
}
}()
}), pn.user = pn.container.resolve("user");
var Yo = function () {
var e = pn.container.resolve("jqUtils"), n = pn.container.resolve("util"), t = "viewport-exit-activated",
r = "viewport-exit-prepared", o = !1, i = !1, a = 0, s = 0, c = ["top", "right", "bottom", "left"], u = !0,
l = !1, d = !1, p = [], f = {
top: {visited: !1, value: 1},
right: {visited: !1, value: 2},
bottom: {visited: !1, value: 4},
left: {visited: !1, value: 8}
}, m = 0, v = function () {
if (!l) {
l = !0, m = 0;
var n = /(?:Firefox|Safari)[\/\s](\d+\.\d+)/.test(navigator.userAgent) ? document.body : document;
e.on(n, "mouseleave", (function (e) {
return g(e)
})), e.on(document, "mousemove", (function (e) {
return h(e)
}))
}
};
var g = function (t) {
var r;
r = function (e) {
return e.clientX === e.clientY && e.clientX < 0 && e.clientX >= -1
}(t) ? "" : function (n, t) {
var r = e.winSize(), o = r.width, i = r.height, a = "";
return n >= o && (a = "right"), t >= i && (a = "bottom"), n <= 0 && (a = "left"), t <= 0 && (a = "top"), a
}(t.clientX, t.clientY), r || (r = function () {
if (!i) return "";
var n = e.winSize(), t = n.width, r = n.height;
return c[function (e) {
if (0 === e.length) return -1;
for (var n = e[0], t = 0, r = 1; r < e.length; r++) e[r] < n && (t = r, n = e[r]);
return t
}([s, t - a, r - s, a])]
}(), r || n.debug("viewportExit: the detect of the exit side failed")), r && function (e) {
-1 !== c.indexOf(e) ? f[e].visited || (f[e].visited = !0, m += f[e].value) : n.debug("viewportExit: the detect of the exit side failed")
}(r), y("all"), "top" === r && y("top")
}, h = function (e) {
i = !0, s = e.clientY, a = e.clientX
}, y = function (e) {
if (u) {
for (var t, r = [], o = [], i = 0; i < p.length; i++) ((t = p[i]).detectExitMode === e || "back" === e && t.detectBackButtonForMobile) && t.consumeEventFn() ? r.push(t) : o.push(t);
r.length && n.debug("viewportExit: listeners was run fire with type: ", e), p = o;
for (i = 0; i < r.length; i++) (t = r[i]).callback()
}
};
return {
name: "viewportExit", initialize: v, isInitialized: function () {
return l
}, addListener: function (e, n, i) {
("mobile" === n.clientDevice || "tablet" === n.clientDevice) && !!n.detectBackButtonForMobile && function () {
if (!d) {
d = !0, window.addEventListener("popstate", (function (e) {
o && e.state && e.state.pianoViewportExitState === t && (o = !1, y("back"))
}));
var e = window.history.state || {};
e && e.pianoViewportExitState !== r && (e.pianoViewportExitState !== t && (e.pianoViewportExitState = t, window.history.replaceState(e, document.title)), window.history.pushState({pianoViewportExitState: r}, document.title)), o = !0
}
}(), v(), "function" != typeof i && (i = function () {
return !0
}), p.push({
callback: e,
detectExitMode: n.detectExitMode,
detectBackButtonForMobile: n.detectBackButtonForMobile,
consumeEventFn: i
})
}, resetSumOfCodesDirectionToDefault: function () {
m = 0
}, getSumOfCodesDirection: function () {
return m
}, removeListeners: function () {
p = []
}, enable: function () {
u = !0
}, disable: function () {
u = !1
}
}
}();
pn.container.register("viewportExit", {useValue: Yo}), pn.viewportExit = pn.container.resolve("viewportExit");
var $o, Ko, Zo = function () {
var e = pn.container.resolve("postmessage"), n = pn.container.resolve("containerUtils"),
t = pn.container.resolve("user"), r = pn.container.resolve("api"), o = pn.container.resolve("util");
function i(e) {
return s(e, "/checkout/template/show")
}
function a(e) {
return e.initContextLoadPromise = function (e, n) {
e.contextLoadingPromise = c(e, n)
}, s(e, "/checkout/template/cacheableShow")
}
var s = function (e, n) {
var t = pn.getEndpointRoot(!0) + n;
return e.iframeUrl = t, e.postMessageUrl = t, e.widget = "template", pn.offer.createOfferIframe(e)
}, c = function (e, n) {
var i = t.getUserInfoParams(e);
return i.tracking_id = e.trackingId, i.templateId = e.templateId, i.templateVariantId = e.templateVariantId, i.aid = pn.aid, i.preload = e.isPreload, i.cookie_consents = JSON.stringify(o.getCookieConsents()), i.previous_user_segments = o.getUserSegmentsString(), e.affiliateState && (i.affiliateState = JSON.stringify(e.affiliateState)), Object.keys(n).forEach((function (e) {
i[e] = n[e]
})), new Promise((function (e, n) {
r.callApi("/anon/template/loadTemplateContext", i, (function (t) {
var r = t.code, o = t.templateContext, i = t.message;
0 === r ? e(o) : n(i)
}), void 0, void 0)
}))
}, u = function (e, n) {
var t = {};
return ["aid", "templateId", "templateVariantId", "previewTemplateVersion", "preload", "preview", "previewUncached", "deploymentItemId", "gaClientId", "zuoraSelectedRatePlanIds", "newscycleSelectedIds", "addNewsletterAssets", "offerId", "experienceId", "iframeId", "displayMode", "debug", "pianoIdUrl", "widget", "url"].forEach((function (n) {
e[n] && (t[n] = e[n])
})), n.param(t)
};
function l(e) {
pn.getCacheableShowTemplate() ? (function (e) {
e.deferredContextLoading = !0, e.buildQueryStringFn = u
}(e), e.createIframeFn = a) : e.createIframeFn = i
}
return {
name: "template", show: function (e) {
return e.offerId = n.fakeOfferId, e.trackStatsOnShow = !0, l(e), pn.offer.show(e)
}, deferredShow: function (e) {
return e.offerId = n.fakeOfferId, l(e), pn.offer.deferredShow(e)
}, close: function () {
n.closeModalContainer()
}, closeInline: function (e) {
n.__protected__.closeInlineContainers(e)
}, createTemplateIframe: i, showBackdrop: function () {
n.showBackdrop()
}, hideBackdrop: function () {
n.hideBackdrop()
}, centerBackdrop: function (e) {
n.centerBackdrop(e)
}, registerCallback: function (e, n) {
}, refreshUser: function (n) {
t.refreshAccessToken(!0, (function () {
e.send("externalLoginSuccess", {user_token: t.getProvider().getToken()}, n)
}))
}
}
}();
pn.container.register("template", {useValue: Zo}), pn.template = pn.container.resolve("template"), function (e) {
e.COMMON = "linkedTermData", e.SIGNED = "linkTermSignedData"
}($o || ($o = {})), function (e) {
e.LINKED = "linked", e.LINK = "link"
}(Ko || (Ko = {}));
pn.container.register("offer", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t, r, o, i, a, s, c = e.resolve("jqUtils"), u = e.resolve("util"), l = e.resolve("postmessage"),
d = e.resolve("user"), m = e.resolve("containerUtils"), v = e.resolve("eventUtils"),
g = e.resolve("viewportExit"), h = e.resolve("gaService"), y = e.resolve("sha1"),
w = e.resolve("logging"), _ = e.resolve("template"), k = e.resolve("analytics"),
C = e.resolve("gaCollectingService"), I = e.resolve("ajax"), S = e.resolve("acp"), E = [], T = {},
P = 0, x = "close", A = "OFFER", O = !1, M = !1, N = !1, R = {}, L = new Map, U = {},
D = ["he_IL", "ar_EG"], j = "", V = !1, F = !1, B = "pn_rurl_3ds", q = Symbol(), z = Symbol(),
H = v.createEventManager(b(["complete", "cancel", "close", "error", "loginRequired", "loginSuccess", "loaded", "customEvent", "startCheckout", "resize", "onMeterExpired", "onMeterActive", "onAccessGranted", "onShowOffer", "pianoIdEvent", "parentSize", "redeemCredit", "onStartCreditRedemption", "showAuthForm", "callLinkTermSelectedCallback", "callLinkedTermSelectedCallback", "callLinkTermSelectedCallback", "visibleImpression"], S.getComposerAcpEvents(), !0));
m.setIframesPopstateHandlers();
var W = function () {
return pn.offerBaseUrl ? pn.offerBaseUrl : pn.getEndpointRoot() + "/checkout/offer/show"
}, G = function (e) {
if (!e) return null;
var n = e.linkedTermData, t = e.linkTermSignedData, r = e.linkedTermSignedData,
o = f(e, ["linkedTermData", "linkTermSignedData", "linkedTermSignedData"]), i = r || t;
switch (!0) {
case Boolean(n):
return p({linkedTermData: n}, o);
case Boolean(i):
return p({linkTermSignedData: i}, o);
default:
return o
}
}, J = function (e, n) {
if (n === $o.COMMON) return e.externalTermId || "";
if (n === $o.SIGNED) try {
return JSON.parse(e.payload).externalTermId || ""
} catch (e) {
return console.warn(e), ""
}
return ""
}, Q = function (e, n) {
void 0 === e && (e = {}), void 0 === n && (n = {});
var t = pn.getApiEndpoint() + "/linkedTerm/session/create", r = p(p({
tracking_id: j || "",
tbc: u.getTbcCookie() || "",
pcid: u.getPcidCookie() || "",
consents: JSON.stringify(u.getCookieConsents()),
previous_user_segments: u.getUserSegmentsString()
}, e), n);
return new Promise((function (e, n) {
try {
I.request({
url: t,
type: "POST",
dataType: "json",
data: JSON.stringify(r),
contentType: "application/json",
success: e,
error: n
})
} catch (e) {
n(e)
}
}))
}, X = function (e, n) {
var t = "".concat(pn.getApiEndpoint(), "/linkedTerm/subscription/hasActive"),
r = {aid: e, external_term_id: n, user_token: d.getProvider().getToken()};
return new Promise((function (e, n) {
try {
I.request({
url: t,
type: "POST",
dataType: "json",
data: r,
contentType: "application/x-www-form-urlencoded",
success: e,
error: n
})
} catch (e) {
n(e)
}
}))
}, Y = function (e, n) {
var t = function (e) {
switch (e) {
case"purge":
return {eventCategory: "checkoutClose", eventLabel: "Checkout close"};
case"customEvent":
return {eventCategory: "checkoutCustomEvent", eventLabel: "Checkout custom event"};
case"checkoutPaymentError":
case"error":
return {eventCategory: "checkoutError", eventLabel: "Checkout error"};
case"checkoutStateChange":
return {eventCategory: "checkoutStateChange", eventLabel: "Checkout state change"};
case"showTemplate":
return {eventCategory: "showTemplate", eventLabel: "Show template"};
case"startCheckout":
return {eventCategory: "startCheckout", eventLabel: "Start checkout"};
case"submitPayment":
return {eventCategory: "submitPayment", eventLabel: "Submit payment"};
case"logout":
return {eventCategory: "logout", eventLabel: "Logout event"};
case"loginRequired":
return {eventCategory: "loginRequired", eventLabel: "Login required"};
default:
return null
}
}(e);
t && r !== t.eventCategory && (k.ga.event({
eventType: Co.EMIT_GA_EVENT,
payload: p(p({iframeId: n.sender}, t), n.params)
}), r = t.eventCategory)
};
function $(e, n) {
var r, a, s = m.getIframe(e.sender), v = !0;
switch (s && s.config && (v = !s.config.parent), e.event) {
case"initContext":
if (e.params && e.params.resultCallbackId) {
var h = {
resultCallbackId: e.params.resultCallbackId,
affiliateState: s.config.affiliateState
};
l.send("resultCallback", h, e.sender)
}
break;
case"storeCustomVariables":
tp.saveCustomVariablesToLocalStorage(300);
break;
case"fullRedirectThreeDS":
window.location.href = e.params.bankSecureUrl;
break;
case"resize":
if (e.params.iframeId === e.sender) {
var y = void 0 === e.params.width ? p(p({}, e.params), {width: c.getWidth(s.container)}) : e.params;
m.resizeIframe(s, y), "modal" === s.config.displayMode && ("boilerplate" === e.params.closeButtonType && m.hideCloseButton(s.container), m.centerIt(s.container)), l.send("afterResize", {}, s.iframeId)
}
H.fireCallbacks(e.event, e.params, e.sender, v), (null === (r = null == s ? void 0 : s.iframeParams) || void 0 === r ? void 0 : r.experienceId) && (null === (a = null == s ? void 0 : s.iframeParams) || void 0 === a ? void 0 : a.experienceActionId) && se(s.iframeId);
break;
case"startCheckout":
if (e.params.width = null, "inline" === e.displayMode) {
e.params.closeOnLogout = !0;
var _ = Ne(e.params, s.statParams);
_.browserId = s.browserId, _.isOpenedFromInlineCheckout = !0, He(_, e.sender)
}
e.params.iframeId === e.sender && (H.fireCallbacks(e.event, e.params, e.sender, v), Y(e.event, e));
break;
case"showAuthForm":
var b = e.params, C = void 0 === b ? {} : b;
pn.pianoId.show(p({
closedCallback: function () {
l.send("authFormClosed", {}, e.sender)
}
}, C));
break;
case"callLinkTermSelectedCallback":
case"callLinkedTermSelectedCallback":
if (!e.params || "function" != typeof tp.linkedTermSelected) return;
var I = e.params, E = I.linkedTermData, T = I.linkTermData, P = I.offerStatData,
A = I.pageViewData,
M = f(I, ["linkedTermData", "linkTermData", "offerStatData", "pageViewData"]),
N = G(E || T) || M, L = N.linkedTermData ? $o.COMMON : $o.SIGNED, U = J(N[L], L);
Promise.all([Q(P, A), X(tp.aid, U)]).then((function (e) {
var n, t = e[0].data, r = e[1].data;
m.hasModalIframe() && m.closeModalContainer(), tp.linkedTermSelected(t || "", p(p({}, N), ((n = {})[L] = p(p({}, N[L]), {userHasActiveSubscriptionToTerm: r}), n)))
})).catch(u.debug);
break;
case"loaded":
if (e.params.iframeId === e.sender) {
if (l.send("setupCustomVariables", R[e.params.iframeId], e.params.iframeId), l.send("setupEVTFields", s.config.externalVerificationFields, e.params.iframeId), Ae(s), Oe(s), s.config.deferredContextLoading && Z(s, e), s.waitFinishProcesses) return void m.__protected__.closeAndRemoveIframe(s);
"pianoId" === d.getProvider().name && pn.pianoId.__protected__.executePostMessagesBatch(), "modal" === s.config.displayMode && (m.resizeIframe(s, e.params), s.config.isPreload || m.checkBackdropAndContainer(s, !0)), "popup" === s.config.displayMode && m.resizeIframe(s, e.params), !s.config.isPreload && !s.config.trackStatsOnShow && Te(s), Pe(s), xe(s), Me(s), H.fireCallbacks(e.event, e.params, e.sender, v), "inline" === s.config.displayMode && (s.containerReady ? m.resizeIframe(s, e.params) : m.operationWithContainer(s.iframeParams.containerSelector, (function (n) {
var t = c.queryEl("#temp-inline-" + s.iframeId);
t && (n.innerHTML = t.innerHTML, c.remove(t)), s.element = c.queryEl("iframe", n), s.containerReady = !0, m.resizeIframe(s, e.params)
})));
var j = s.iframeParams, F = j.offerId, B = j.templateId, q = j.initTime, z = j.logType;
w.setTime(z, Math.floor(performance.now() - q), {
offer_id: "fakeOfferId" === F ? void 0 : F,
template_id: B
}), re(s.config), u.doneCall("offerCreate")
}
break;
case"downForMaintenance":
m.resizeIframe(s, {
width: 300,
height: 200
}), "modal" === s.config.displayMode && (s.config.isPreload || m.checkBackdropAndContainer(s));
break;
case"removeQueryParamByName":
e && e.params && Array.isArray(e.params.paramsToRemove) && e.params.paramsToRemove.forEach((function (e) {
u.removeQueryParamByName(e)
}));
break;
case"purge":
n || (e && e.params && e.params.alreadyPurchased && (x = "alreadyHasAccess"), e && e.params && e.params.completePayment && (x = "checkoutCompleted"), pe(null == s ? void 0 : s.config.displayMode), m.purgeIframe(e.sender, s.config.parent), S.handleAcpEvent(H.fireCallbacks, e, s.config, v), re(s.config), Y(e.event, e));
break;
case"close":
n || (e && e.params && e.params.alreadyPurchased && (x = "alreadyHasAccess"), e && e.params && e.params.completePayment && (x = "checkoutCompleted"), u.hasQueryParamByName("voucher_code") && (x = "voucherRedemptionCompleted"), m.closeContainer(e.sender, s.config.parent), re(s.config));
break;
case"closeAndRefresh":
var W = e.params;
W ? window.location.assign(W) : window.location.reload();
break;
case"selectTerm":
x = e && e.params && e.params.alreadyPurchased ? "alreadyHasAccess" : "close";
break;
case"submitPayment":
H.fireCallbacks(e.event, Ne(e.params, {offerId: s.iframeParams.offerId}), e.sender, v), Y(e.event, e);
break;
case"complete":
if (void 0 !== e.params.token_list) {
var $ = d.getProvider().getToken();
u.setAccessTokenListCookie({
value: e.params.token_list,
cookie_domain: e.params.cookie_domain
}, $)
}
var te = Ne(e.params, {offerId: s.iframeParams.offerId});
H.fireCallbacks(e.event, te, e.sender, v), x = "checkoutCompleted";
break;
case"checkoutSelectTerm":
H.fireCallbacks(e.event, Ne(e.params, {offerId: s.iframeParams.offerId}), e.sender, v);
break;
case"checkoutStateChange":
i = o, o = e.params.stateName, H.fireCallbacks(e.event, e.params, e.sender, v), Y(e.event, e);
break;
case"checkoutPaymentError":
case"alreadyPurchased":
case"startThreeDBankSecure":
case"cancel":
case"error":
case"completeUpgradePurchase":
H.fireCallbacks(e.event, e.params, e.sender, v), Y(e.event, e);
break;
case"customEvent":
S.handleAcpEvent(H.fireCallbacks, e, s.config, v), Y(e.event, e);
break;
case"loginRequired":
O = !0, H.fireCallbacks(e.event, Je(s, e.params, e.sender), e.sender, v), Y(e.event, e);
break;
case"logout":
ee(e.event, e.params, e.sender, s.config.parent, v), Y(e.event, e);
break;
case"loginSuccess":
ne(e.event, e.params, e.sender, v);
break;
case"inputFocus":
var oe = c.queryEl(".tp-modal");
oe && (oe.style.zIndex = pn.zIndexes.modal + 1 + "", oe.style.zIndex = pn.zIndexes.modal + "");
break;
case"inputBlur":
var ie = c.queryEl(".tp-modal");
ie && (ie.style.zIndex = pn.zIndexes.modal + 1 + "", ie.style.zIndex = pn.zIndexes.modal + "");
break;
case"getLocation":
e.params && e.params.resultCallbackId && (e.params.result = window.location.href, l.send("resultCallback", e.params, e.sender));
break;
case"setLocationHash":
e.params && e.params.hash && (window.location.hash = e.params.hash);
break;
case"langChangedWithinOffer":
pn.pianoId.isConfigured() && pn.pianoId.updateLang(e.params.lang), D.indexOf(e.params.lang) >= 0 ? m.turnOnRTL(s) : m.turnOffRTL(s);
break;
case"loginStart":
g.disable();
break;
case"loginEnd":
g.enable();
break;
case"pianoIdEvent":
e.params.iframeId === e.sender && ("closed" === e.params.event && m.closeContainer(e.sender), pn.pianoId.__protected__.offerMessageReceiver(e)), K(e.params, e.sender);
break;
case"swgCheckoutStart":
break;
case"sharedAccountsSuccessfullyAdded":
l.broadcast("refreshMyAccount", {userToken: d.getProvider().getToken()});
break;
case"newsletterSignupImpression":
case"newsletterSignupSubmission":
pn.pianoEsp.__protected__.offerMessageReceiver(e), H.fireCallbacks(e.event, e.params, e.sender, v);
break;
case"parentSize":
var ae = c.winSize(), ce = {width: ae.width, height: ae.height};
l.send("parentSize", ce, e.sender);
break;
case"gigyaPasswordlessLogin":
e.params.iframeId === e.sender && (t = e.params.iframeId, pn.gigya.loginByPasswordless(e.params));
break;
case Co.EMIT_GA_EVENT:
return void (!n && k.ga.event({
eventType: Co.EMIT_GA_EVENT,
payload: p({iframeId: e.sender}, e.params)
}));
case Co.EMIT_METRICS_EVENT:
!n && k.ga.event({eventType: Co.EMIT_METRICS_EVENT, payload: e.params});
break;
case"bannerInit":
s.config.singleContainer.classList.add("tp-banner");
break;
case"bannerDestroy":
s.config.singleContainer.classList.remove("tp-banner");
break;
case"redeemCredit":
var ue = H.fireCallbacks("onStartCreditRedemption", e.params, e.sender, v);
ue && ue.then && ue.then((function (n) {
l.send("successfullyCreditRedeem", n, e.sender)
}), (function (n) {
l.send("creditRedeemFailed", n, e.sender)
}));
break;
case"scrollModalTo":
if ("modal" === e.displayMode) {
var le = c.queryEl(".tp-modal");
if (le) {
var de = e.params.x || 0, fe = e.params.y || 0;
le.scrollTo(de, fe)
}
}
break;
case"frequencyEvent":
var me = {
event_name: "piano_frequency_event",
event_type: "closeClick" === e.params.eventType ? "close_click" : "visible_impression",
experience_Id: e.params.experienceId,
experience_action_Id: e.params.experienceActionId
};
("closeClick" !== e.params.eventType && !V || "closeClick" === e.params.eventType) && (H.fireCallbacks("piano_frequency_event", me, e.sender, v), V = "closeClick" !== e.params.eventType);
default:
return void u.debug("Received invalid event type: " + e.event)
}
}
var K = function (e, n) {
"successDOI" === e.event && (e.iframeId !== n && m.closeContainer(e.iframeId), l.send("afterSuccessDOI", e.params, n))
}, Z = function (e, n) {
e.config.contextLoadingPromise.then((function (t) {
var r = {iframeParams: e.iframeParams, userContext: t};
r.iframeParams.url = u.prepareUrlParameter(window.location.href), l.send("userDataContextLoaded", r, n.params.iframeId)
}))
}, ee = function (e, n, t, r, o) {
d.logout((function () {
var e = {};
e.userProvider = d.getProvider().getName(), e.userToken = d.getProvider().getToken() && d.getProvider().getToken().length > 0 ? d.getProvider().getToken() : "", e.noNeedStartCheckout = !0, Ge(e)
}), A), n.closeOnLogout && m.closeModalContainer(t, r)
}, ne = function (e, n, t, r) {
if (n.source = A, d.getProvider().onLoginSuccess(n), H.fireCallbacks("loginSuccess", n, t, r), !N) {
var o = {userToken: n.user_token, user: n.user, reloadAfterLogin: !0};
Ge(o, t)
}
}, te = function (e) {
var n = e.displayMode || "modal";
return [e.offerId, n, e.containerSelector].join("|")
}, re = function (e) {
var n = te(e);
delete T[n]
}, oe = function (e) {
if (x = "close", Ve(e), void 0 === e.displayMode) e.displayMode = "modal"; else if ("modal" !== e.displayMode && "inline" !== e.displayMode && "popup" !== e.displayMode) return u.log("Invalid offer displayMode; must be one of: modal, inline, popup"), void re(e);
if ("modal" === e.displayMode && !e.isPreload && m.hasModalIframe()) return u.log("Modal offer is already shown; must be one modal offer per time"), void re(e);
if ("modal" !== e.displayMode) {
var n, t = c.qa(e.containerSelector);
if (!e.isPreload) if (t.forEach((function (t) {
var r = Ne({}, e);
r.singleContainer = t, n = ae(r)
})), n) return n;
var r = t[t.length - 1];
r && (e.singleContainer = r)
}
return ae(e)
};
function ie(e, n) {
var t = u.getPageViewContext(), r = t.pageTitle, o = t.url, i = t.referrerUrl, a = t.contentType;
n.pageTitle = r, n.url = o, n.referrerUrl = i, n.contentType = a
}
function ae(e, r) {
var o = function (e) {
var n = {};
e.termIds && (e.termIds instanceof Array || (e.termIds = [e.termIds]));
var t = e.additionalParamNames ? e.additionalParamNames : [];
["displayMode", "containerSelector", "templateId", "templateVariantId", "offerId", "termId", "termIds", "rid", "aid", "isCheckout", "isOpenedFromInlineCheckout", "pw_id", "paywallId", "width", "preview", "previewUncached", "previewTemplateType", "previewTemplateVersion", "tokenType", "janrainCaptureToken", "closeOnLogout", "voucherCode", "isRedemption", "allowReturnToStartState", "startFromInlineCheckout", "formNameByTermId", "hideCompletedFields", "startFromInlineCheckout", "reloadAfterLogin", "preventReloadAfterLogin", "isAuth", "authStartScreen", "showCloseButton", "closeButtonType", "checkoutFlowId", "offerState", "oid", "promoCode", "promoCodeId", "promoCodeTermId", "rurl_3ds", "thirdPartyParams", "termId3ds", "providerId", "deploymentItemId", "sharedAccountCode", "targetedTermId", "widget", "linkTermCheckoutState", "linkedTermCheckoutState", "purchasedLinkTermData", "purchasedLinkedTermData", "subscriptionId", "experienceActionId", "continuation"].concat(["trackingId", "experienceId", "experienceActionId", "activeMeters", "directCheckout"], t).forEach((function (t) {
e[t] && (n[t] = e[t]), "showCloseButton" === t && (void 0 === e[t] ? n[t] = !0 : n[t] = e[t])
}));
var r = decodeURIComponent(u.getQueryParamByName("_ptid"));
return r && (n.trackingId = r, ke(r)), e.preview && (n.activeMeters = JSON.stringify([{
meterName: "preview-meter",
views: 10,
viewsLeft: 5,
maxViews: 20,
totalViews: 20
}])), n
}(e), i = performance.now();
o.widget || (o.widget = "offer");
var a = u.getTbcCookie();
a && a.length > 0 && (o.tbc = a), e.deferredContextLoading ? (o.iframeId = Ce(e), o.url = window.location.origin) : (o.iframeId = "offer-" + P++ + "-" + u.randomString(), o.url = u.prepareUrlParameter(window.location.href));
var s = c.winSize();
o.parentDualScreenLeft = void 0 !== window.screenLeft ? window.screenLeft : screen.left, o.parentDualScreenTop = void 0 !== window.screenTop ? window.screenTop : screen.top, o.parentWidth = s.width ? s.width : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width, o.parentHeight = s.height ? s.height : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height, o.parentOuterHeight = window.outerHeight, e.previewNonLoggedUser && (o.previewNonLoggedUser = e.previewNonLoggedUser), e.isPreload && (o.preload = 1), pn.locale && (o.lang = pn.locale), h.getClientId() && (o.gaClientId = h.getClientId()), h.getGAAccount() && (o.gaAccount = h.getGAAccount()), function (e) {
["debug", "aid", "gaClientId", "tags", "contentSection", "contentAuthor", "debug", "zone"].forEach((function (n) {
pn[n] && (e[n] = pn[n])
})), pn.customVariables && (R[e.iframeId] = JSON.stringify(pn.customVariables), e.customVariables = R[e.iframeId]);
var n = pn.contentCreated;
if (n && (e.contentCreated = n), pn && pn.main && (e.visitId = pn.main.fetchVisitId()), pn && pn.util) {
var t = pn.util.getPageViewContext(), r = t.pageTitle, o = t.pageViewId;
e.browserId = pn.util.getBrowserId(), e.pageViewId = o, e.pageTitle = r
}
}(o);
var p = H.hasCallback("loginRequired");
if (!pn.janrain.isConfigured() || void 0 !== e.loginRequired && e.loginRequired) if (!pn.gigya.isConfigured() || void 0 !== e.loginRequired && e.loginRequired) if (pn.pianoId.isConfigured()) {
(void 0 === e.loginRequired || !e.loginRequired) && (e.loginRequired = function (e) {
if (!e.preventExternalLogin) return n = e.termId, t = o.iframeId, pn.pianoId.show({screen: e.startScreen}), !1
}), Ue(), o.pianoIdUrl = pn.pianoId.getIframeUrl(), o.pianoIdStage = pn.pianoId.__protected__.getStage(), e.isGmSso && (o.isGmSso = e.isGmSso);
var f = pn.pianoId.getLang();
f && (o.lang = f), pn.pianoId.onLangChange((function (e) {
l.send("langChanged", {lang: e}, o.iframeId)
}), o.iframeId)
} else pn.pianoIdLite.isConfigured() && (o.pianoIdUrl = pn.pianoId.getIframeUrl()); else {
v = [];
pn.gigya.registerCallback("onHide", (function (e) {
e && e.afterLogin ? m.activateContainers(v) : pn.offer.close(), l.send("gigyaHide", e, t)
})), Re(), e.loginRequired = function (e) {
return M = e.allowReturnToStartState, O = !1, v = m.hideModalContainer(), n = e.termId, t = o.iframeId, u.waitCall("refreshUserToken", (function () {
pn.gigya.login()
})), !1
}
} else {
var v = [];
pn.janrain.addEventHandler("onModalClose", (function () {
m.activateContainers(v)
})), Le(), e.loginRequired = function (e) {
return v = m.hideModalContainer(), M = e.allowReturnToStartState, O = !1, n = e.termId, t = o.iframeId, u.waitCall("refreshUserToken", (function () {
pn.janrain.login(void 0, e)
})), !1
}
}
o.userProvider = d.getProvider().getName(), e.userToken ? o.userToken = e.userToken : o.userToken = d.getProvider().getToken() && d.getProvider().getToken().length > 0 ? d.getProvider().getToken() : "", u.getCampaigns(o), o.customCookies = JSON.stringify(u.getCustomCookies()), H.registerCallback(e, o.iframeId), o.hasLoginRequiredCallback = H.hasIframeCallback("loginRequired", o.iframeId) || p, o.initMode = "context", Ie(o);
var g = e.iframeUrl ? e.iframeUrl : o.isCheckout ? pn.getEndpointRoot(!0) + "/checkout/offer/show" : W(),
y = e.postMessageUrl ? e.postMessageUrl : W();
if (e.deferredContextLoading) {
var w = Se(o);
ie(0, w), e.initContextLoadPromise(e, w)
}
var _ = Ee(o, e);
if (pn.pianoId.__protected__.isSssEnabled()) {
var b = pn.pianoId.__protected__.getSssParams();
o.sss_mode = b.sss_mode, o.sss_callback_url = b.sss_callback_url, o.sss_origin_url = b.sss_origin_url
}
e.splitTestIds && (o.abTestIds = e.splitTestIds), e.socialName && (o.socialName = e.socialName), e.responseType && (o.responseType = e.responseType), o.requestUserAuthForLinkedTerm = tp.requestUserAuthForLinkedTerm, o.initTime = i;
var k = g.indexOf("/offer/") >= 0 ? "offerShow" : "templateShow";
o.logType = k;
var C = m.createContainer({
url: g,
config: e,
parent: e.parent,
postMessageUrl: y,
receive: $,
iframeParams: o,
singleContainer: e.singleContainer,
close: function () {
H.fireCallbacks("close", {state: x}, o.iframeId, !0)
}
});
return U = g.indexOf("/template/") >= 0 && o.offerId === m.fakeOfferId ? o : U, be(o, "offerId", "width", "termId", "displayMode", "experienceId", "iframeId", "templateId", "templateVariantId"), C.statParams = _, C.browserId = e.browserId, E.push(C), C
}
var se = function (e) {
if (!V) {
document.getElementById(e) && !F && (F = !0, me(e));
var n = E.find((function (n) {
return n.iframeId === e
}));
"modal" === (null == n ? void 0 : n.config.displayMode) ? le(e) : ce(e)
}
}, ce = function (e) {
s = e, document.addEventListener("scroll", ue)
}, ue = function e() {
fe(s) ? document.removeEventListener("scroll", e) : me(s)
}, le = function (e) {
var n;
s = e, null === (n = document.getElementsByClassName("tp-modal")[0]) || void 0 === n || n.addEventListener("scroll", de)
}, de = function e() {
var n;
fe(s) ? null === (n = document.getElementsByClassName("tp-modal")[0]) || void 0 === n || n.removeEventListener("scroll", e) : me(s)
}, pe = function (e) {
var n;
"modal" === e ? null === (n = document.getElementsByClassName("tp-modal")[0]) || void 0 === n || n.removeEventListener("scroll", de) : document.removeEventListener("scroll", ue)
}, fe = function (e) {
var n = E.find((function (n) {
return n.iframeId === e
}));
return V || "offer" !== o && n.iframeParams.offerId !== m.fakeOfferId || a && "offer" === i
}, me = function (e) {
var n = ve(e);
he(n) && ge(n, e)
}, ve = function (e) {
var n, t, r,
o = null === (n = document.getElementById(e)) || void 0 === n ? void 0 : n.getBoundingClientRect();
return {
top: (null == o ? void 0 : o.top) || 0,
bottom: (null == o ? void 0 : o.bottom) || 0,
left: (null == o ? void 0 : o.left) || 0,
right: (null == o ? void 0 : o.right) || 0,
iframeHeight: (null == o ? void 0 : o.height) || 0,
iframeWidth: (null == o ? void 0 : o.width) || 0,
viewportHeight: (null === (t = window.visualViewport) || void 0 === t ? void 0 : t.height) || 0,
viewportWidth: (null === (r = window.visualViewport) || void 0 === r ? void 0 : r.width) || 0
}
}, ge = function (e, n) {
setTimeout((function () {
he(e) && _e(n)
}), 1e3)
}, he = function (e) {
return e.iframeHeight > e.viewportHeight ? ye(e) : we(e)
}, ye = function (e) {
return e.viewportWidth > e.iframeWidth ? e.top < 0 && Math.abs(e.top) >= e.iframeHeight / 2 - e.viewportHeight && Math.abs(e.top) <= e.iframeHeight / 2 && (e.left >= 0 && e.left <= e.viewportWidth - e.iframeWidth / 2 || e.left < 0 && e.right >= e.iframeWidth / 2) : e.top < 0 && Math.abs(e.top) >= e.iframeHeight / 2 - e.viewportHeight && Math.abs(e.top) <= e.iframeHeight / 2 && e.left <= 0 && Math.abs(e.left) >= e.iframeWidth / 2 - e.viewportWidth && Math.abs(e.left) <= e.iframeWidth / 2
}, we = function (e) {
return e.viewportWidth > e.iframeWidth ? (e.top >= 0 && e.top <= e.viewportHeight - e.iframeHeight / 2 || e.top < 0 && e.bottom >= e.iframeHeight / 2) && (e.left >= 0 && e.left <= e.viewportWidth - e.iframeWidth / 2 || e.left < 0 && e.right >= e.iframeWidth / 2) : (e.top >= 0 && e.top <= e.viewportHeight - e.iframeHeight / 2 || e.top < 0 && e.bottom >= e.iframeHeight / 2) && e.left <= 0 && Math.abs(e.left) >= e.iframeWidth / 2 - e.viewportWidth && Math.abs(e.left) <= e.iframeWidth / 2
}, _e = function (e) {
var n, t, r = E.find((function (n) {
return n.iframeId === e
})), o = {
event_name: "piano_frequency_event",
event_type: "visible_impression",
experience_Id: null === (n = null == r ? void 0 : r.iframeParams) || void 0 === n ? void 0 : n.experienceId,
experience_action_Id: null === (t = null == r ? void 0 : r.iframeParams) || void 0 === t ? void 0 : t.experienceActionId
};
r && !V && document.getElementById(e) && (H.fireCallbacks("piano_frequency_event", o, e, !0), V = !0)
}, be = function (e) {
for (var n = [], t = 1; t < arguments.length; t++) n[t - 1] = arguments[t];
var r = n.reduce((function (n, t) {
var r;
return p(p({}, n), ((r = {})[t] = e[t], r))
}), {});
C.setParamMap(r)
}, ke = function (e) {
C.setParam("trackingId", e)
}, Ce = function (e) {
var n = 0, t = "offer_" + y.hash(e.iframeUrl + "?" + e.buildQueryStringFn(e, c), 20);
return L.has(t) && (n = L.get(t) + 1), L.set(t, n), t + "-" + n
}, Ie = function (e) {
var n = u.getQueryParamByName("termId"), t = u.getQueryParamByName("paySource");
n && (e.termId = n), t && (e.paySource = t)
}, Se = function (e) {
var n = {};
return ["tbc", "trackingId", "pageViewId", "visitId", "tags", "contentCreated", "contentSection", "contentAuthor", "pageTitle", "referrerUrl"].forEach((function (t) {
e[t] && (n[t] = e[t])
})), Object.keys(e).forEach((function (t) {
0 === t.indexOf("tpcc_") && (n[t] = e[t])
})), n
}, Ee = function (e, n) {
var t = {};
return n.trackStatsOnShow || n.deferredContextLoading || (t = Se(e), Object.keys(t).forEach((function (n) {
delete e[n]
}))), t
}, Te = function (e) {
var n = Ne(e.iframeParams, e.statParams);
e.config.affiliateState && (n.affiliateState = e.config.affiliateState), ie(e.config, n), l.send("trackStat", n, e.iframeId)
}, Pe = function (e) {
var n = {browserId: e.browserId};
l.send("passBrowserId", n, e.iframeId)
}, xe = function (e) {
l.send("passPcidBrowserId", {browser_id: u.getBrowserId()}, e.iframeId)
}, Ae = function (e) {
l.send("passCookieConsents", u.getCookieConsents(), e.iframeId)
}, Oe = function (e) {
l.send("passUserSegments", u.getUserSegmentsString(), e.iframeId)
}, Me = function (e) {
var n = u.getPageViewContext(), t = n.pageTitle, r = n.url, o = n.pageViewId, i = n.referrerUrl,
a = n.author, s = n.created, c = n.section, d = n.tags, p = n.contentType;
l.send("passPageViewContext", {
page_title: t,
url: r,
page_view_id: o,
referrer: i,
content_author: a,
content_created: null == s ? void 0 : s.toString(),
content_section: c,
tags: d ? JSON.stringify(d) : null,
content_type: p
}, e.iframeId)
}, Ne = function (e, n) {
var t = {};
return Object.keys(e).forEach((function (n) {
t[n] = e[n]
})), Object.keys(n).forEach((function (e) {
t[e] = n[e]
})), t
}, Re = function () {
N || (pn.gigya.registerCallback("userChanged", (function (e) {
if (e && e.user_token) {
var r = {
token_list: e.access_token.value,
user_token: e.user_token,
userToken: e.user_token,
cookie_domain: e.access_token.cookie_domain,
user: e.user,
allowReturnToStartState: M,
termId: n
};
if (t) m.getIframe(t) ? (l.send("externalLoginSuccess", r, t), delete r.termId, Ge(r, t)) : Ge(r); else Ge(r)
}
})), pn.gigya.registerCallback("logout", (function () {
var e, r = {};
r.userProvider = d.getProvider().getName(), r.userToken = d.getProvider().getToken() && d.getProvider().getToken().length > 0 ? d.getProvider().getToken() : "", r.noNeedStartCheckout = !0, t && (e = m.getIframe(t)), e && "inline" === e.config.displayMode && m.closeModalContainer(), n = "", t = "", M = !1, Ge(r)
})), N = !0)
}, Le = function () {
N || (pn.janrain.registerCallback("userChanged", (function (e) {
if (e && e.user_token) {
var r = {
token_list: e.access_token.value,
user_token: e.user_token,
userToken: e.user_token,
cookie_domain: e.access_token.cookie_domain,
user: e.user,
allowReturnToStartState: M,
termId: n
};
if (t) m.getIframe(t) ? (l.send("externalLoginSuccess", r, t), delete r.termId, Ge(r, t)) : Ge(r); else Ge(r)
}
})), pn.janrain.addEventHandler("onCaptureSessionEnded", (function () {
var e, r = {};
r.userProvider = d.getProvider().getName(), r.userToken = d.getProvider().getToken() && d.getProvider().getToken().length > 0 ? d.getProvider().getToken() : "", r.noNeedStartCheckout = !0, t && (e = m.getIframe(t)), e && "inline" === e.config.displayMode && m.closeModalContainer(), n = "", t = "", M = !1, Ge(r)
})), N = !0)
}, Ue = function () {
N || (pn.pianoId.setCallbacks({
loggedIn: function (e) {
u.log("offer.js - piano id user logged in");
var r = {
user_token: e.token,
userToken: e.token,
user: e.user,
reloadAfterLogin: !0,
termId: n
};
t ? m.getIframe(t) ? (l.send("externalLoginSuccess", r, t), We(t, r), delete r.termId, Ge(r, t)) : Ge(r) : Ge(r)
}, loggedOut: function (e) {
if (e.source !== A) {
var r = {};
r.userProvider = d.getProvider().getName(), r.userToken = d.getProvider().getToken() && d.getProvider().getToken().length > 0 ? d.getProvider().getToken() : "", r.noNeedStartCheckout = !0, Ge(r)
}
n = "", t = ""
}
}), N = !0)
};
function De(e) {
return m.showPreloadedContainer(e)
}
var je = function (e) {
var n = e.offerId === m.fakeOfferId ? "showTemplate" : "showOffer";
H.hasCallback(n) && H.fireCallbacks(n, e, void 0, !0), Y(n, {params: e})
}, Ve = function (e) {
[{queryParam: "promo_code", configParam: "promoCode"}].forEach((function (n) {
var t = u.getQueryParamByName(n.queryParam);
t.length && (e[n.configParam] = t)
}))
}, Fe = function () {
return u.getQueryParamByName(B)
}, Be = function (e) {
if (e.offerId || !0 === e.preview) return !function (e) {
var n = te(e);
return !!T[n]
}(e) && void (function (e) {
return Fe() && !e.rurl_3ds && "modal" === e.displayMode
}(e) || (j = e.trackingId, ke(j), e.preview || function (e) {
var n = te(e);
T[n] = !0
}(e), setTimeout((function () {
re(e)
}), 1e4), u.waitCall("refreshUserToken", (function () {
u.waitCall("refreshAccessTokenList", (function () {
u.waitCall("myAccountLogin", (function () {
var n;
if (u.startCall("offerCreate"), e.createIframeFn ? (Ve(e), n = e.createIframeFn(e)) : n = oe(e), !n) return u.doneCall("offerCreate"), void u.error("Could not initialize offer; check configuration");
qe(e) && (a = !0, ze(n.iframeId)), je(e)
}))
}))
}))));
u.error("Must specify offerId")
};
var qe = function (e) {
return !!e.directCheckout && "inline" !== e.displayMode
}, ze = function (e) {
u.waitCall("offerCreate", (function () {
l.send("startDirectCheckout", {}, e)
}))
}, He = function (e, n) {
if (!function (e) {
return !e.offerId && !e.isRedemption && !e.preview
}(e)) {
var t = H.hasCallback("loginRequired");
if (e.isSiteLicensing && t && (Qe() || Xe())) return void _.refreshUser(U.iframeId);
m.hasModalIframe() && !Ye(e) && m.closeModalContainer(), u.debug("creating checkout: ", e), e.displayMode = "popup" === e.displayMode ? "popup" : "modal", e.isCheckout = !0, e.parent = n, u.waitCall("refreshUserToken", (function () {
u.waitCall("refreshAccessTokenList", (function () {
var t, r;
if (Ye(e) && e.reloadAfterLogin && Xe()) {
var o = null === (t = d.getProvider()) || void 0 === t ? void 0 : t.getToken();
return o && e[z] ? void function (e) {
var n, t = e.token, r = e.termId, o = e.iframeId;
l.send("startLinkedTermProcessAfterExternalLogin", {termId: r}, o), O && (Ge({
userProvider: null === (n = d.getProvider()) || void 0 === n ? void 0 : n.getName(),
userToken: t,
noNeedStartCheckout: !0,
noNeedStartCheckoutAfterLogin: !0
}), O = !1)
}({
token: o,
termId: e.termId,
iframeId: e[z]
}) : void u.log("external checkout cannot be continued.")
}
if (u.startCall("offerCreate"), pn.pianoId.__protected__.isGmSso()) {
if (pn.pianoId.__protected__.isGmSsoRedirectEnabled() && !pn.pianoId.getToken()) return void pn.pianoId.__protected__.authByGmSsoRedirect(e);
e = p(p({}, e), {isGmSso: !0})
}
r = e.createIframeFn ? e.createIframeFn(e) : oe(e), m.__protected__.addChildToInlineIframe(r, n), r ? O && u.waitCall("offerCreate", (function () {
O = !1;
var e = {};
e.userProvider = d.getProvider().getName(), d.getProvider().getToken() && d.getProvider().getToken().length > 0 ? e.userToken = d.getProvider().getToken() : e.userToken = "", e.noNeedStartCheckout = !0, e.noNeedStartCheckoutAfterLogin = !0, Ge(e, r.iframeId)
})) : (u.doneCall("offerCreate"), u.error("Could not start checkout; check configuration"))
}))
}))
}
}, We = function (e, n) {
l.send("reloadOffer", n, e)
}, Ge = function (e, n) {
l.broadcast("reloadOffer", e, n)
}, Je = function (e, n, t) {
var r = {reloadAfterLogin: !0};
return Object.assign(r, e.config), r.singleContainer && delete r.singleContainer, n.termId && (r.termId = n.termId), n.term && (r.term = {}, r.term = Ne(r.term, n.term)), n.startScreen && (r.startScreen = n.startScreen), n.isRedemption && (r.isRedemption = n.isRedemption, r.voucherCode = n.redemption && n.redemption.form && n.redemption.form.redeemCode, r.termId = null), n && n.currentState && "modal" === e.config.displayMode && (r.allowReturnToStartState = !0), n.preventExternalLogin && (r.preventExternalLogin = n.preventExternalLogin), n.sharedAccountCode && (r.sharedAccountCode = n.sharedAccountCode), n.isSiteLicensing && (r.isSiteLicensing = n.isSiteLicensing), n.campaignCode && (r.campaignCode = n.campaignCode), n.campaignGroupId && (r.campaignGroupId = n.campaignGroupId), n.termType && (r[q] = n.termType), t && (r[z] = t), r.displayMode = "modal", r
}, Qe = function () {
return "publisher_user_ref" === d.getProvider().getName()
}, Xe = function () {
return "piano_id_lite" === d.getProvider().getName()
}, Ye = function (e) {
var n = e[q] === Ko.LINKED, t = e[q] === Ko.LINK;
return n || t
};
return {
name: "offer", show: function (e) {
"inline" === e.displayMode ? m.operationWithContainer(e.containerSelector, (function () {
Be(e)
})) : Be(e)
}, deferredShow: function (e) {
return function (e) {
var n, t, r, o = new Promise((function (e, r) {
n = e, t = r
})), i = new Promise((function (e, n) {
r = e
}));
return "popup" !== e.displayMode && e.offerId ? u.waitCall("refreshAccessTokenList", (function () {
var o;
e.isPreload = !0, u.startCall("offerCreate"), e.createIframeFn ? (Ve(e), o = e.createIframeFn(e)) : o = oe(e), o ? (o.element.onload = function () {
r(o)
}, n(o)) : (u.doneCall("offerCreate"), u.error("Could not initialize offer; check configuration"), t())
})) : t(), {
promise: o, show: function () {
o.then(De).then((function () {
return i
})).then((function (n) {
Te(n), qe(e) && ze(n.iframeId), je(e)
}), (function () {
Be(e), delete e.isPreload
}))
}
}
}(e)
}, close: function () {
m.closeModalContainer()
}, closeInline: function (e) {
m.__protected__.closeInlineContainers(e)
}, startCheckout: He, startLinkedTermCheckout: function (e, n) {
if (E.length) if (n) {
var t = E.find((function (e) {
var t, r;
return (null === (t = null == e ? void 0 : e.config) || void 0 === t ? void 0 : t.offerId) === n || (null === (r = null == e ? void 0 : e.iframeParams) || void 0 === r ? void 0 : r.offerId) === n
}));
t ? l.send("tpStartLinkedTermCheckout", {termId: e}, t.iframeId) : u.debug("offer iframe ".concat(n, " was not found"))
} else E.forEach((function (n) {
l.send("tpStartLinkedTermCheckout", {termId: e}, n.iframeId)
})); else u.debug("there are not offer iframes.")
}, startRedeemVoucher: function (e, n) {
m.closeModalContainer(), e || (e = {}), e.isRedemption = !0, u.debug("starting redeem voucher: ", e), e.displayMode = "popup" === e.displayMode ? "popup" : "modal", e.isCheckout = !1, e.parent = n, u.waitCall("refreshAccessTokenList", (function () {
u.startCall("offerCreate"), (e.createIframeFn ? e.createIframeFn(e) : oe(e)) || (u.doneCall("offerCreate"), u.error("Could not start redeem; check configuration"))
}))
}, createOfferIframe: oe, showBackdrop: function () {
m.showBackdrop()
}, hideBackdrop: function () {
m.hideBackdrop()
}, centerBackdrop: function (e) {
m.centerBackdrop(e)
}, registerCallback: function (e, n) {
H.addEvent(e), H.registerCallback(e, n)
}, reload: We, reloadAll: function (e, n) {
var t = e || {};
u.waitCall("refreshUserToken", (function () {
Ge(Object.assign(t, {userToken: pn.user.getProvider().getToken()}), n)
}))
}, resetUserAndReloadAll: function (e, n) {
var t = e || {};
Ge(Object.assign(t, {userToken: ""}), n)
}, checkThreeDSRedirect: function () {
var e = Fe();
if (e) {
var n = {
offerId: "pn_offer_id",
oid: "pn_oid",
termId3ds: "pn_term_id",
providerId: "pn_provider_id",
thirdPartyParams: "third_party_params"
}, t = [B], r = Object.keys(n).reduce((function (e, r) {
var o = Object.assign({}, e);
return o[r] = u.getQueryParamByName(n[r]), t.push(n[r]), o
}), {});
u.removeQueryParamByName(t), Be(Object.assign({displayMode: "modal", rurl_3ds: e}, r))
}
}, passUserSegments: Oe, passCookieConsents: Ae
}
}()
}), pn.offer = pn.container.resolve("offer");
var ei = function () {
var e, n = pn.container.resolve("jqUtils"), t = pn.container.resolve("util"),
r = pn.container.resolve("postmessage"), o = pn.container.resolve("offer"),
i = pn.container.resolve("user"), a = pn.container.resolve("containerUtils"),
s = pn.container.resolve("pianoId"), c = pn.container.resolve("logging"),
u = pn.container.resolve("microsoftQuickAuth"), l = pn.container.resolve("acp"), d = {}, p = !1,
f = {loginRequired: [], loginSuccess: [], autoRenewalDisabled: [], subscriptionCancellation: []},
m = function () {
return pn.getEndpointRoot() + "/checkout/myaccount/show"
}, v = function (e, n) {
e.element.style.height = (e.config.maxHeight ? Math.min(n.height, e.config.maxHeight) : n.height) + "px", e.container.style.height = (e.config.maxHeight ? Math.min(n.height, e.config.maxHeight) : n.height) + "px", e.element.style.width = n.width + "px", "modal" === e.config.displayMode && (e.container.style.width = n.width + "px"), r.send("resized", {
height: e.config.maxHeight ? Math.min(n.height, e.config.maxHeight) : n.height,
width: n.width
}, e.iframeId)
}, g = function (t, r, i) {
return function () {
e && (n.removeClass("tp-active", e), o.hideBackdrop(), window.setTimeout((function () {
n.remove(e)
}), 250), r.result = i, t(r))
}
}, h = function (e) {
var t = n.winSize();
e.offsetHeight > t.height ? (!1 === p && (e.style.position = "absolute", p = !0), e.style.marginTop = window.scrollY - .5 * t.height + "") : (!0 === p && (e.style.position = "fixed", p = !1), e.style.marginTop = 0 - .5 * e.offsetHeight + ""), o.centerBackdrop(e), e.style.marginLeft = 0 - .5 * e.offsetWidth + ""
}, y = function (t, i) {
!function (t, r) {
var i = document.createElement("div");
n.addClass("tp-modal", i);
var a = document.createElement("div");
n.addClass("tp-close", a);
var s = document.createElement("div");
n.addClass("tp-message", s), i.style.width = (t.width ? t.width : 400) + "px", s.innerHTML = t.message;
var c = document.createElement("div");
n.addClass("tp-btn-container", c);
var u = document.createElement("button");
n.addClass("tp-btn", u), n.addClass("tp-ok-btn", u), u.innerHTML = t.ok ? t.ok : "Ok";
var l = document.createElement("button");
n.addClass("tp-btn", l), n.addClass("tp-cancel-btn", l), l.innerHTML = t.cancel ? t.cancel : "Cancel", n.on(a, "click", g(r, t, "cancel")), n.on(l, "click", g(r, t, "cancel")), n.on(u, "click", g(r, t, "ok")), n.append(i, a), n.append(i, s), n.append(c, u), n.append(c, l), n.append(i, c), n.append(document.body, i), o.showBackdrop(), n.addClass("tp-active", i), h(i), e = i
}(i.params, (function (e) {
r.send("closeDialog", e, d[i.sender].iframeId)
}))
}, w = function (e, n) {
f[e] = f[e] || [], f[e].push(n)
}, _ = function (e, n, o) {
if (t.debug("received event: " + e, n), void 0 !== f[e]) {
for (var i = 0; i < f[e].length; ++i) {
t.debug("firing callback for event: " + e);
var a = f[e][i](n);
n && n.resultCallbackId && (n.result = a, n.event = e, r.send("resultCallback", n, o))
}
!f[e].length && n && n.resultCallbackId && (n.callbackNotFound = !0, n.event = e, r.send("resultCallback", n, o))
}
}, b = function (e) {
switch (t.log("*** My account event received", e.event, e.params), e.event) {
case"resize":
t.debug("*** Resize event", e.params.width, e.params.height), v(d[e.sender], e.params), "modal" === d[e.sender].config.displayMode && h(d[e.sender].container);
break;
case"loaded":
var o = d[e.sender];
r.send("initMaxHeight", {height: o.config.maxHeight}, o.iframeId), pn.offer.passCookieConsents(o), pn.offer.passUserSegments(o), v(o, e.params), "pianoId" === i.getProvider().name && s.__protected__.executePostMessagesBatch(), "modal" === o.config.displayMode && window.setTimeout((function () {
n.addClass("tp-active", o.container), h(o.container)
}), 25), c.setTime("myAccountShow", Math.floor(performance.now() - o.config.initTime));
break;
case"cancel":
case"complete":
case"error":
case"loginRequired":
case"customEvent":
_(e.event, e.params, e.sender);
break;
case"openDialog":
y(e.event, e);
break;
case"pianoIdProfileUpdated":
s.onProfileUpdate(e.params, (function () {
var n = e.params;
n && n.resultCallbackId && r.send("resultCallback", n, e.sender);
var t = {userToken: e.params.token, user: e.params.user};
k(t)
}));
break;
case"extendedUserLoginRequired":
s.onExtendedUserLoginRequired();
break;
case"loginSuccess":
i.getProvider().onLoginSuccess(e.params);
var a = {reloadAfterLogin: !0, userToken: e.params.user_token, user: e.params.user};
k(a), _(e.event, e.params, e.sender);
break;
case"logout":
i.logout((function () {
var e = {};
e.userProvider = i.getProvider().getName(), e.userToken = i.getProvider().getToken() && i.getProvider().getToken().length > 0 ? i.getProvider().getToken() : "", k(e)
})), _(e.event, e.params, e.sender);
break;
case"userProfileUpdateSuccess":
var u = e, p = u.event, f = u.params, m = u.sender;
i.getProvider().onLoginSuccess(f);
var g = {userProvider: f.user_provider, userToken: f.user_token};
for (var w in k(g), _(p, f, m), d) if (d.hasOwnProperty(w)) {
var b = d[w].config;
b.hasOwnProperty("userToken") && delete b.userToken, S(b)
}
break;
case"langChangedWithinMyAccount":
s.isConfigured() && s.updateLang(e.params.lang);
break;
case"requestScrollData":
C(e.sender);
break;
case"downForMaintenance":
v(d[e.sender], {width: 300, height: 200});
break;
case"removeQueryParamByName":
Array.isArray(e.params.paramsToRemove) && e.params.paramsToRemove.forEach((function (e) {
t.removeQueryParamByName(e)
}));
break;
case"getTrackingData":
r.send("getTrackingDataResponseEvent", {
pageViewId: pn.main.fetchPageViewId(),
tbc: t.getTbcCookie()
}, e.sender);
break;
case"redirect":
document.location.href = e.params.url;
break;
case"getTemplateInteractionConfig":
l.sendTemplateInteractionActive(d[e.sender].config);
break;
case xo.autoRenewalDisabled:
case xo.subscriptionCancellation:
l.handleAcpEvent(_, e, d[e.sender].config, !0);
break;
default:
return void t.log("Received invalid event type: " + e.event)
}
}, k = function (e) {
r.broadcast("reloadOffer", e)
}, C = function (e) {
var n = d[e].element.getBoundingClientRect(), t = {
iframeRect: {
bottom: n.bottom,
height: n.height,
left: n.left,
right: n.right,
top: n.top,
width: n.width
}
};
r.send("returnScrollData", t, e)
};
function I(e) {
e.initTime = performance.now();
var o = {widget: "myaccount"};
if (e.templateId && (o.templateId = e.templateId), void 0 === e.displayMode) e.displayMode = "inline"; else if ("modal" !== e.displayMode && "inline" !== e.displayMode) return void t.log("Invalid offer displayMode; must be one of: modal, inline");
if (o.displayMode = e.displayMode, o.iframeId = t.randomString(16), o.url = window.location.href, o.initialWidth = e.width, o.initialHeight = e.height, o.maxHeight = e.maxHeight, o.v3ApiEndpoint = pn.getApiEndpoint(), i.getProvider().getName() === s.getName() && s.__protected__.isSssEnabled()) {
var c = s.__protected__.getSssParams();
o.piano_id_sss_mode = c.sss_mode, o.piano_id_sss_callback_url = c.sss_callback_url, o.piano_id_sss_origin_url = c.sss_origin_url
}
if (pn.locale && (o.lang = pn.locale), !pn.janrain.isConfigured() || void 0 !== e.loginRequired && e.loginRequired) if (!pn.gigya.isConfigured() || void 0 !== e.loginRequired && e.loginRequired) if (pn.pianoId.isConfigured()) {
y = e;
if (pn.pianoId.setCallbacks({
loggedIn: function (n) {
var t;
o.userToken !== n.token && (e.loginSuccess && (t = e.loginSuccess(n)), (void 0 === t || t) && (y.userToken = n.token, S(y)))
}, loggedOut: function () {
var e = {};
e.userProvider = i.getProvider().getName(), e.userToken = i.getProvider().getToken() && i.getProvider().getToken().length > 0 ? i.getProvider().getToken() : "", k(e)
}
}), null !== pn.pianoId.getToken() && u.clearConfirmationParameters(), void 0 === e.loginRequired || !e.loginRequired) {
var l = 0;
e.loginRequired = function () {
if (++l > 10) t.log("Too many attemps to login for myAccount"); else {
var e = t.getQueryParamByName("verification_code"),
n = t.getQueryParamByName("internal_redirect_uri"),
r = t.getQueryParamByName("response_id"), o = n && r, i = pn.pianoId.__protected__,
a = i.isGmSso, s = i.isGmSsoRedirectEnabled;
!(a() && s() || o) ? pn.pianoId.show({verificationCode: e}) : pn.pianoId.init()
}
}
}
o.pianoIdUrl = pn.pianoId.getIframeUrl();
var p = pn.pianoId.getLang();
p && (o.lang = p), pn.pianoId.onLangChange((function (e) {
r.send("langChanged", {lang: e}, o.iframeId)
}), o.iframeId)
} else pn.pianoIdLite.isConfigured() && (o.pianoIdUrl = pn.pianoId.getIframeUrl()); else {
g = [];
pn.gigya.registerCallback("onHide", (function () {
a.activateContainers(g), t.doneCall("myAccountLogin")
})), e.loginRequired = function () {
var n = e;
t.waitCall("refreshAccessTokenList", (function () {
t.waitCall("offerCreate", (function () {
t.startCall("myAccountLogin"), g = a.hideModalContainer(), pn.gigya.login((function (t) {
var r;
e.loginSuccess && (r = e.loginSuccess(t)), (void 0 === r || r) && (n.userToken = t.user_token, S(n))
}))
}))
}))
}
} else {
var g = [], y = e;
pn.janrain.addEventHandler("onModalClose", (function () {
a.activateContainers(g), t.doneCall("myAccountLogin")
})), pn.janrain.registerCallback("userChanged", (function (n) {
var t;
n && n.user_token && (e.loginSuccess && (t = e.loginSuccess(n)), (void 0 === t || t) && (y.userToken = n.user_token, S(y)))
})), pn.janrain.addEventHandler("onCaptureSessionEnded", (function (n) {
var t;
e.loginSuccess && (t = e.loginSuccess(n)), (void 0 === t || t) && (y.userToken = null, S(y))
})), e.loginRequired = function () {
return t.waitCall("refreshAccessTokenList", (function () {
t.waitCall("offerCreate", (function () {
t.startCall("myAccountLogin"), g = a.hideModalContainer(), pn.janrain.login()
}))
})), !1
}
}
return new Promise((function (s) {
t.waitCall("refreshUserToken", (function () {
var c, u = {};
if ("inline" === e.displayMode) {
if (!e.containerSelector) return void t.log("My account must have a valid containerSelector");
if (!(c = n.queryEl(e.containerSelector))) return void t.log("My account must have a valid containerSelector");
o.width = n.getWidth(c)
} else c = function () {
var e = document.createElement("div");
n.addClass("tp-modal", e);
var t = document.createElement("div");
return n.addClass("tp-close", t), n.append(e, t), n.append(document.body, e), e
}();
var l = t.getPageViewContext(), p = l.pageTitle, g = l.pageViewId;
for (var y in o.pageViewId = g, o.tbc = t.getTbcCookie(), o.browserId = t.getBrowserId(), o.contentType = t.getPageViewContext().contentType, o.pageTitle = p, o.userProvider = i.getProvider().getName(), e.userToken ? o.userToken = e.userToken : o.userToken = i.getProvider().getToken(), f) "function" == typeof e[y] && (t.debug("Registering " + y + " callback for iframe " + o.iframeId), w(y, e[y]));
o.aid = pn.aid, pn.isSensitiveDataProtectionEnabled && (u = {
userToken: o.userToken,
iframeId: o.iframeId
}, delete o.userToken);
var _ = m() + "?" + n.param(o), k = document.createElement("iframe"), C = {
scrolling: "no",
allowtransparency: "true",
name: o.iframeId,
id: o.iframeId,
allow: "payment"
};
pn.isSensitiveDataProtectionEnabled || (C.src = _), Object.keys(C).forEach((function (e) {
n.setAttr(e, C[e], k)
}));
var I = {overflow: "hidden", border: "0", height: "0"};
if ("inline" === e.displayMode ? I.width = o.width + "px" : I.width = 0, Object.keys(I).forEach((function (e) {
k.style[e] = I[e]
})), d[o.iframeId] = {
iframeId: o.iframeId,
config: e,
element: k,
container: c,
containerWidth: n.getWidth(c),
containerHeight: n.getHeight(c)
}, r.init({
postMessageUrl: m(),
receive: b,
iframe: d[o.iframeId]
}), n.on(window, "keyup", (function (e) {
})), "modal" === e.displayMode && n.on(window, "resize", (function () {
h(c)
})), "modal" === e.displayMode ? h(c) : n.empty(c), pn.isSensitiveDataProtectionEnabled) {
u.iframeSrc = _;
var S = a.getForm(u);
n.append(c, k), n.append(c, S), S.submit()
} else n.append(c, k);
if (n.on(window, "resize", (function () {
!function () {
for (var e in d) {
var t = d[e], o = !1, i = n.getWidth(t.container);
i !== t.containerWidth && (t.element.style.width = i + "", t.containerWidth = i, o = !0);
var a = n.getHeight(t.container);
a !== t.containerHeight && (t.element.style.height = a + "", t.containerHeight = a, o = !0), o && r.send("resize", {
width: i,
height: a
}, e)
}
}()
})), "inline" === e.displayMode && window.ResizeObserver) {
var E = new ResizeObserver((function (e) {
var t = n.getWidth(c);
t > 0 && v(d[o.iframeId], {width: t})
}));
E.observe(c), d[o.iframeId].resizeObserver = E
}
pn.offer && pn.offer.registerCallback("complete", (function () {
r.send("refreshNow", {}, o.iframeId)
})), s(d[o.iframeId])
}))
}))
}
var S = function (e) {
t.waitCall("offerCreate", (function () {
t.waitCall("refreshAccessTokenList", (function () {
var n;
null === (n = I(e)) || void 0 === n || n.then((function (e) {
e || t.log("Could not initialize my account; check configuration")
}))
}))
}))
};
return {name: "myaccount", show: S, registerCallback: w}
}();
pn.container.register("myaccount", {useValue: ei}), pn.myaccount = pn.container.resolve("myaccount");
var ni = function () {
var e = pn.container.resolve("jqUtils"), n = pn.container.resolve("util"), t = pn.container.resolve("api"),
r = pn.container.resolve("offer"),
o = pn.container.resolve("eventUtils").createEventManager(["onCheckoutSuccess", "onMeterExpired", "onMeterError", "onAccessGranted", "onMeterActive", "onMeterInactive", "meterSelector"]),
i = {
state: "ok",
views_left: null,
offer_id: "",
curtain_template_id: "",
reminder_template_id: "",
cookie_name: "",
cookie_value: "",
cookie_expires: "",
show_reminder: !1,
show_close_button: !1
}, a = function (e, t) {
return o.fire(void 0, e, !0, t), !l[e] || "function" != typeof l[e] || (n.debug("_customCaller called with " + e), l[e](t))
}, s = function (n) {
(n = n || {}).offerId || (n.offerId = i.offer_id), n.templateId || (n.templateId = i.curtain_template_id), n.displayMode || (n.displayMode = l.displayMode), n.containerSelector || (n.containerSelector = l.containerSelector), n.showCloseButton || (n.showCloseButton = i.show_close_button), "function" === e.type(l.close) && (n.close = l.close), "function" === e.type(l.loginRequired) && (n.loginRequired = l.loginRequired), "function" === e.type(l.customEvent) && (n.customEvent = l.customEvent), "function" === e.type(l.onCheckoutSuccess) && (n.complete = l.onCheckoutSuccess), r.createOfferIframe(n)
}, c = function (e) {
if (a("___onProcessMeter", e), !e.user_meter) return n.log("Could not load meter", e), void function (e) {
a("onMeterError", e)
}(e);
if ((i = e.user_meter) && i.cookie_name && i.cookie_value && i.cookie_expires) {
var t = {path: "/", expires: i.cookie_expires};
i.cookie_domain && (t.domain = i.cookie_domain), n.__protected__.setCookie(i.cookie_name, i.cookie_value, t)
}
"ok" === i.state ? function (e) {
n.debug("_handleMeterActive", e), e.show_reminder && e.reminder_template_id && e.track_page_view && a("onShowOffer", e) && s({templateId: e.reminder_template_id}), a("onMeterActive", e)
}(i) : "ap" === i.state ? function (e) {
n.debug("_handleAccessGranted", e), a("onAccessGranted", e)
}(i) : "ia" === i.state ? function (e) {
n.debug("_handleMeterInactive", e), a("onMeterInactive", e)
}(i) : function (e) {
n.debug("_handleExpired", e), a("onMeterExpired", e), e.track_page_view && a("onShowOffer", e) && s()
}(i)
}, u = function (e, r, o) {
if (null !== l.paywallId && "" !== l.paywallId) {
var i = document.URL;
e && "function" == typeof e.getAttribute && e.getAttribute("href") ? i = e.getAttribute("href") : e && "function" == typeof e.attr && e.attr("href") && (i = e.attr("href"));
var a = l.trackPageview;
a && delete l.trackPageview;
var s = l.meterSelector();
s || (s = "");
var u = {
paywall_id: l.paywallId,
url: encodeURI(i),
referer: encodeURI(l.referer),
track_page_view: a,
meter_name: s,
pageview_id: pn.main.fetchPageViewId()
};
r && (u.transaction_id = r), l.referer = "";
var d = n.__protected__.getCookie("umc");
if (d) u.umc = d; else {
var p = n.__protected__.getCookie("umc_" + l.paywallId);
p && (u.umc = p)
}
t.callApi("/anon/meter/load", u, (function (e) {
c(e), "function" == typeof o && o()
}))
} else n.debug("You must specify a paywallId in your configuration")
}, l = {
paywallId: null,
trackPageview: !0,
trackExternalReferrer: !0,
referer: document.referrer,
offerURL: "",
displayMode: "modal",
containerSelector: "",
onCheckoutSuccess: function () {
},
onMeterExpired: function () {
},
onMeterError: function () {
},
onAccessGranted: function () {
},
onMeterActive: function () {
},
onMeterInactive: function () {
},
meterSelector: function () {
}
};
return {
name: "meter", init: function (e) {
if (void 0 !== e) if (void 0 !== e.paywallID || void 0 !== e.paywallId) {
for (var t in void 0 === e.paywallId && (e.paywallId = e.paywallID), e) l[t] = e[t];
l.referer = document.referrer, n.debug("Initializing paywall: " + l.paywallId), u()
} else n.error("Must specify paywallId to load Piano paywall"); else n.error("Must specify paywall configuration to load Piano paywall")
}, isExpired: function () {
return i.state && "ex" === i.state
}, isExpiredNextClick: function () {
return void 0 !== i.views_left && 0 === i.views_left
}, checkMeter: function (e) {
l.trackPageview = !0, u(e)
}, showCurtain: s, last: function () {
return i
}, registerCallback: function (e, n) {
o.addEvent(e), o.registerCallback(e, n)
}
}
}();
pn.container.register("meter", {useValue: ni}), pn.meter = pn.container.resolve("meter");
var ti = function () {
var e = pn.container.resolve("util"), n = pn.container.resolve("sha1"), t = "", r = function () {
var e = "";
return ["ShockwaveFlash.ShockwaveFlash.6", "ShockwaveFlash.ShockwaveFlash.7", "SWCt1.SWCt1.9", "SWCtl.SWCtl", "Adobe.SVGCtl", "WMPlayer.OCX", "AgControl.AgControl", "AcroPDF.PDF", "PDF.PdfCtrl", "RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)", "RealPlayer", "Skype.Detection", "3dmlw.IEPlugin", "GoogleTalk.Plugin", "GoogleTalk.Plugin.1"].map((function (n) {
try {
new window.ActiveXObject(n), e += n + "|"
} catch (e) {
}
})), e
}, o = function () {
if (t) return t;
var o = function () {
try {
var e;
return e = window.navigator.userLanguage || window.navigator.language, (new Date).getTimezoneOffset() + ":" + e
} catch (e) {
return ""
}
}();
return o += function () {
if (window.ActiveXObject) return r();
try {
var e = "", n = navigator.plugins.length;
if (n > 0) for (var t = 0; t < n; t++) e += navigator.plugins[t].name + "|";
return e
} catch (e) {
return ""
}
}(), o += function () {
try {
return screen.height + "x" + screen.width + "+" + screen.colorDepth
} catch (e) {
return ""
}
}(), o += navigator.userAgent, o += function () {
var e = "";
try {
e += document.getElementById ? 1 : 0, e += window.getComputedStyle ? 1 : 0, e += screen.globalStorage ? 1 : 0, e += window.localStorage ? 1 : 0, e += window.sessionStorage ? 1 : 0, e += document.getElementsByClassName ? 1 : 0, e += document.querySelector ? 1 : 0, e += document.all ? 1 : 0, e += window.attachEvent ? 1 : 0, e += window.createPopup ? 1 : 0, e += window.XMLHttpRequest ? 1 : 0, e += window.ActiveXObject ? 1 : 0, e += window.XDomainRequest ? 1 : 0, e += window.msPerformance ? 1 : 0, e += document.documentMode ? 1 : 0, e += navigator.cpuClass ? 1 : 0, e += navigator.browserLanguage ? 1 : 0, e += window.opera ? 1 : 0, e += window.chrome ? 1 : 0
} catch (e) {
}
return e
}(), t = n.hash(o), e.debug("Current browser fingerprint is: " + t), t
};
return o(), {name: "fingerprint", getFingerprint: o}
}();
pn.container.register("fingerprint", {useValue: ti}), pn.fingerprint = pn.container.resolve("fingerprint");
var ri = function () {
var e, n = pn.container.resolve("jqUtils"), t = 0, r = 0, o = 200, i = 0, a = [];
n.on(window, "scroll", (function () {
c()
}));
var s = function () {
var e = n.scrollTop();
e > i && (i = e)
}, c = function () {
s(), l()
}, u = function (e) {
if (e.consumeEventFn()) {
if ("pixels" === e.measureType) return e.position <= i;
if ("percentage" === e.measureType) return i / (t - n.winSize().height) >= e.position / 100
}
}, l = function () {
for (var e, n = [], t = [], r = 0; r < a.length; r++) e = a[r], u(e) ? n.push(e) : t.push(e);
a = t;
for (r = 0; r < n.length; r++) n[r].callback()
};
return {
name: "scrollDepth", initialize: function (i) {
var a = document;
i && i > 0 && (o = i || o);
!function i() {
var s = a.body || {}, c = a.documentElement || {},
u = Math.max(s.scrollHeight, c.scrollHeight, s.offsetHeight, c.offsetHeight, s.clientHeight, c.clientHeight);
u > t && (t = u);
var l = n.scrollTop() + n.winSize().height;
l > r && ((r = l) > t && (t = r)), e && clearTimeout(e), e = setTimeout(i, o)
}()
}, getMaxScrollDepth: function () {
return r
}, getMaxDocumentHeight: function () {
return t
}, addListener: function (e, n, t) {
"function" != typeof t && (t = function () {
return !0
}), a.push({
callback: e,
position: n.scrollDepth,
measureType: n.measureType,
repeat: "once",
consumeEventFn: t
}), s(), l()
}, removeListeners: function () {
a = []
}, clearMaxScrolledPosition: function () {
i = 0, r = 0, t = 0
}
}
}();
pn.container.register("scrollDepth", {useValue: ri}), pn.scrollDepth = pn.container.resolve("scrollDepth");
var oi = function () {
var e, n = pn.container.resolve("util"), t = pn.container.resolve("jqUtils"), r = !1, o = [], i = 200;
function a() {
r || (r = !0, t.on(document, "mousemove", (function () {
return c()
})), t.on(document, "keypress", (function () {
return c()
})), t.on(window, "scroll", (function () {
return c()
})))
}
function s() {
o.length && function () {
for (var e, t, r, i = [], a = [], s = Date.now(), c = 0; c < o.length; c++) e = o[c], t = s - e.startTime, r = !1, t >= e.idleTime && (e.consumeEventFn() ? r = !0 : e.startTime = s), r ? i.push(e) : a.push(e);
i.length && n.debug("idle: run fire"), o = a;
for (c = 0; c < i.length; c++) (e = i[c]).callback()
}(), e && clearTimeout(e), o.length && (e = setTimeout((function () {
return s()
}), i))
}
function c() {
for (var n = Date.now(), t = 0; t < o.length; t++) o[t].startTime = n;
clearTimeout(e), o.length && (e = setTimeout((function () {
return s()
}), i))
}
return {
name: "idle", initialize: a, addListener: function (n, t, r) {
a(), "function" != typeof r && (r = function () {
return !0
}), o.push({
callback: n,
idleTime: 1e3 * t,
startTime: Date.now(),
consumeEventFn: r
}), e || (e = setTimeout((function () {
return s()
}), i))
}, removeListeners: function () {
o = []
}
}
}();
pn.container.register("idle", {useValue: oi}), pn.idle = pn.container.resolve("idle");
var ii = function () {
var e = pn.container.resolve("util"), n = pn.container.resolve("jqUtils"), t = [];
return {
name: "interaction", bind: function (r, o, i) {
var a = function (e) {
for (var n = {
click: "click",
doubleClick: "dblclick",
rightClick: "contextmenu",
mouseOut: "mouseout",
mouseIn: "mouseover"
}, t = [], r = 0; r < e.length; r++) {
var o = e[r];
t.push(n[o])
}
return t
};
"function" != typeof i && (i = function () {
return !0
}), e.__protected__.documentReady((function () {
for (var e = 0; e < o.length; e++) {
var s = o[e], c = a(s.elementActions).join(" "), u = s.elementSelector, l = s.repetitive;
c.trim().length && function (e, o, a) {
var s = function () {
!i() || (a || n.undelegate(document.body, e), r())
};
n.delegate(document.body, e, o, s), t.push({action: c, selector: u, func: s})
}(u, c, l)
}
}))
}, unbindAll: function () {
t.forEach((function (e) {
n.undelegate(document.body, e.selector)
})), t = []
}
}
}();
pn.container.register("interaction", {useValue: ii}), pn.interaction = pn.container.resolve("interaction");
var ai = function () {
var e = pn.container.resolve("jqUtils"), n = pn.container.resolve("util"),
t = pn.container.resolve("containerUtils"), r = function (e) {
return "inline" === e.displayMode
}, o = function (e) {
return "modal" === e.displayMode
};
return {
name: "recWidgetService", __protected__: {
getInstance: function () {
var i, a = [];
function s(n) {
var s = n || {}, c = s.widget || {};
r(c.config) ? e.empty(c.container) : o(c.config) && (function (n) {
if (i) {
t.closeModal(i), e.empty(i.container);
var r = t.__private__.mobileModalFix;
r.isIphoneCaretFixed && r.modalClosed(), i = null
}
}(), e.remove(c.container)), !s.skipOnclose && e.isFunction(c.onclose) && c.onclose(), a = a.filter((function (e) {
return e.uuid !== c.uuid
}))
}
function c(e) {
return a.filter((function (n) {
return e === n.widgetId
}))[0]
}
return {
showRecommendation: function (u) {
var l = u.widgetConfig || {}, d = u.createPlaceholderFn, p = l.widgetId;
if (!p) throw new Error("widgetId should be specified");
if (c(p)) n.log("widget with id " + l.widgetId + " already initialize"); else if (o(l) && i) n.log("modal widget already shown"); else {
var f = function (t) {
var r = e.queryEl(t.containerSelector), o = "widget-id-" + n.randomString(), i = {
singleContainer: r || void 0,
displayMode: t.displayMode || "modal",
showCloseButton: t.showCloseButton,
iframeParams: {
iframeId: o,
containerSelector: t.containerSelector,
width: t.width,
height: t.height
}
};
return {
uuid: o,
widgetId: t.widgetId,
placeholder: t.placeholder,
trackingId: t.trackingId,
config: i
}
}(l), m = f.config, v = d();
if (f.container = function (e, n) {
var i;
return r(e) ? i = t.initInlineContainer(e).container : o(e) && (i = t.getModalContainer(e, (function () {
n instanceof Function && n()
}))), i
}(m, (function () {
s({widget: f})
})), f.container) return e.append(f.container, v), f.element = v, o(m) && (i = f), function (n, t) {
void 0 === t && (t = {}), Object.keys(t).forEach((function (r) {
e.isFunction(t[r]) && (n[r] = t[r](n))
}))
}(f, u.widgetCallbacks), a.push(f), f;
n.log('widget has invalid selector "'.concat(m.iframeParams.containerSelector, '"'))
}
}, fireWidgetCallback: function (n, t, r) {
a.forEach((function (o) {
if (o.widgetId === t.toString()) {
var i = o["on" + n];
e.isFunction(i) && i(r)
}
}))
}, findWidget: c, clearWidgets: function () {
a = [], i = null
}, closeWidget: s, fixWidgetModalWidth: function (n, r) {
if (!n || o(n.config)) {
var i = n.container,
a = r ? e.queryEl("iframe", i) : e.queryEl(".tp-widget-placeholder", i);
t.checkBackdropAndContainer(n, !0, !0), setTimeout((function () {
a && t.__protected__.setElementSizes(i, {width: e.getWidth(a)})
}), 100)
}
}
}
}, insertWidgetLib: function (n) {
var t = document.getElementsByTagName("script")[0], r = document.createElement("script");
n.id && r.setAttribute("id", n.id), e.isFunction(n.onerror) && (r.onerror = n.onerror), e.isFunction(n.onload) && (r.onload = n.onload), n.defer && (r.defer = !0), r.type = "text/javascript", r.src = n.src, t && t.parentNode && t.parentNode.insertBefore(r, t)
}
}
}
}();
pn.container.register("recWidgetService", {useValue: ai}), pn.recWidgetService = pn.container.resolve("recWidgetService");
var si = function () {
pn.container.resolve("predefinedOptions");
return {testPianoOption: ""}
}();
pn.container.register("piano", {useValue: si});
var ci, ui = pn.container.resolve("piano");
for (ci in ui) pn[ci] = ui[ci];
pn.container.register("pianoEsp", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t = e.resolve("util"), r = e.resolve("user"), o = (e.resolve("api"), e.resolve("jqUtils")),
i = e.resolve("consent"), a = e.resolve("analytics"), s = e.resolve("recWidgetService"), c = "__pnml",
u = {granted: "ALLOWED", default: "UNKNOWN", denied: "FORBIDDEN"}, l = s.__protected__.getInstance();
function d() {
return new Promise((function (e, n) {
window.PianoESPConfig = p(p({}, window.PianoESPConfig || {}), {
onload: e,
widget_init_on_event: {rec: !0, "opt-in": !1},
onclick: function (e) {
l.fireWidgetCallback("click", e.widgetId, e)
},
onwidgetinit: function (e) {
l.fireWidgetCallback("init", e.widgetId, e)
},
onrecsloaded: function (e) {
l.fireWidgetCallback("recsloaded", e.widgetId, e)
}
}), t.debug("pianoESP: loading PianoESP with config:", window.PianoESPConfig), s.__protected__.insertWidgetLib({
id: "pnesplucidsdksel",
src: m() + "/public/sdk/v04/sdk.js?v=" + (localStorage && localStorage.lucidsdkver || "xxx"),
onerror: n
})
}))
}
function f() {
return n || (n = new Promise((function (e, n) {
var t, r = function () {
return e(null)
};
if (null !== (t = window.PianoESPConfig) && void 0 !== t && t.id) d().then(r, n); else var o = 0,
i = setInterval((function () {
var e;
return null !== (e = window.PianoESPConfig) && void 0 !== e && e.id ? (d().then(r, n), void clearInterval(i)) : o >= 5e3 ? (clearInterval(i), void n()) : void (o += 500)
}), 500)
})))
}
setTimeout((function () {
pn.addHandler("logout", (function () {
g([])
}));
var e = r.getProvider();
e.registerCallback && e.registerCallback("logout", (function () {
g([])
}))
}), 300);
var m = function () {
var e = "//api-esp.piano.io";
return pn.espEndpoint ? e = pn.espEndpoint.replace(/^http[s]*:/, "") : pn.isSandbox() && (e = "//sandbox-api-esp.piano.io"), ("https:" === window.location.protocol ? "https:" : "http:") + e
}, v = function (e, n) {
f().then((function () {
window.PianoESP.getCurrentPushState().then((function (e) {
"prompt" === e && a.log.event({
eventType: wo.LOG_MICRO_CONVERSION,
payload: {trackingId: n, eventGroupId: "showPrompt"}
})
})), window.PianoESP.subscribeToPushSquads([e]).then((function (r) {
var o = r || {};
!0 === o.result ? (t.setPushListsCookie(e), t.debug("pianoESP: Push notification was set:", o), a.log.event({
eventType: wo.LOG_MICRO_CONVERSION,
payload: {trackingId: n, eventGroupId: "enrollPushCampaign"}
})) : !1 === o.result && ("closed" === o.reason ? a.log.event({
eventType: wo.LOG_MICRO_CONVERSION,
payload: {trackingId: n, eventGroupId: "closePrompt"}
}) : a.log.event({
eventType: wo.LOG_MICRO_CONVERSION,
payload: {trackingId: n, eventGroupId: "declineEnrollPushCampaign"}
}))
})).catch((function (e) {
t.log("pianoESP: Push notification error:", e)
}))
}))
}, g = function (e) {
try {
var n = JSON.stringify(e);
i.composer ? i.composer.localStorage.set(c, n) : localStorage.setItem(c, n)
} catch (e) {
t.debug("can't save mailing lists to storage", e)
}
}, h = function () {
var e = [];
try {
var n = localStorage.getItem(c);
if (!n) return [];
if (e = JSON.parse(n), !Array.isArray(e)) throw new Error("MAINLING_LIST should be array")
} catch (e) {
t.debug("can't load mailing lists from storage", e)
}
return e || []
};
var y = function (e) {
return function () {
var n = document.createElement("pnespwgtplaceholder");
return o.setAttr("holdername", e, n), n
}
};
function w() {
return {
onrecsloaded: function (e) {
return function (n) {
0 !== n.countOfRecs ? (l.fixWidgetModalWidth(e, !0), a.log.event({
eventType: wo.LOG_ESP_MICRO_CONVERSION,
payload: {
trackingId: e.trackingId,
espWidgetId: e.widgetId,
eventGroupId: "init",
eventType: yo.EXTERNAL_EVENT
}
}), t.debug("creating recommendation widget: ", e.config)) : l.closeWidget({
widget: e,
skipOnclose: !0
})
}
}, onclick: function (e) {
return function (n) {
var t = {href: n.url};
a.log.event({
eventType: wo.LOG_ESP_MICRO_CONVERSION,
payload: {
trackingId: e.trackingId,
espWidgetId: e.widgetId,
eventGroupId: "click",
eventType: yo.EXTERNAL_LINK,
customParams: t
}
})
}
}, onclose: function (e) {
return function () {
a.log.event({
eventType: wo.LOG_ESP_MICRO_CONVERSION,
payload: {
trackingId: e.trackingId,
espWidgetId: e.widgetId,
eventGroupId: "close",
eventType: yo.EXTERNAL_EVENT,
customParams: {event: "widgetClosed"}
}
})
}
}
}
}
return {
name: "pianoEsp", __protected__: {
init: f, setVisitorId: function (e) {
window.PianoESPConfig = Object.assign({}, window.PianoESPConfig, {visitor: e})
}, showRecommendation: function (e) {
var n = w();
return l.showRecommendation({
widgetConfig: e,
widgetCallbacks: n,
createPlaceholderFn: y(e.placeholder)
}), f().then((function () {
window.PianoESP.initWidget(parseInt(e.widgetId))
}))
}, showPushSignup: function (e) {
var n = e || {};
n.templateId ? (a.log.event({
eventType: wo.LOG_CUSTOM_FORM_IMPRESSION,
payload: {trackingId: n.trackingId, formName: "pushSignup", source: "show_form"}
}), pn.template.show(p(p({}, n), {
customEvent: function (e) {
switch (e.eventName) {
case"push-allow":
a.log.event({
eventType: wo.LOG_MICRO_CONVERSION,
payload: {
trackingId: n.trackingId,
eventGroupId: "allowSoftEnrollPushCampaign"
}
}), v(n.pushListId, n.trackingId);
break;
case"push-dont-allow":
a.log.event({
eventType: wo.LOG_MICRO_CONVERSION,
payload: {
trackingId: n.trackingId,
eventGroupId: "declineSoftEnrollPushCampaign"
}
});
break;
case"push-close":
a.log.event({
eventType: wo.LOG_MICRO_CONVERSION,
payload: {trackingId: n.trackingId, eventGroupId: "close"}
})
}
}
}))) : v(n.pushListId, n.trackingId)
}, getNotificationStatus: function () {
if (window.Notification) return u[window.Notification.permission] || u.default
}, showNewsletterSignup: function (e) {
if (e && e.mailingListIds) {
var n = h().indexOf(e.mailingListIds) > -1;
e.notShowIfFilled && n ? t.log("Mailing list with ids " + e.mailingListIds + " already shown") : pn.template.show(e)
} else t.log("mailingListIds should be specified")
}, offerMessageReceiver: function (e) {
if ("newsletterSignupSubmission" === e.event) {
var n = h();
-1 === n.indexOf(e.params.mailingListIds) && (n.push(e.params.mailingListIds), g(n))
}
}, loadCompleteMailingLists: h
}, __private__: {
removeWidgetsAndSdk: function () {
l.clearWidgets(), n = null, delete window.PianoESP
}, getWidgetCallbacks: w, onInit: function (e) {
!n || "function" == typeof e && n.then(e)
}
}
}
}()
}), pn.pianoEsp = pn.container.resolve("pianoEsp");
var li = function () {
var e, n = pn.container.resolve("postmessage"), t = pn.container.resolve("user"),
r = pn.container.resolve("util"), o = pn.container.resolve("eventUtils"),
i = pn.container.resolve("containerUtils"), a = "externalCheckoutComplete", s = "loginPrompt",
c = "deferredAccountCreation", u = "buy", l = o.createEventManager([a]), d = "__gom", p = !1, f = !1,
m = !1, v = [];
window.SWG = window.SWG || [], window.SWG.push((function (n) {
n.setOnPaymentResponse((function (t) {
f || (r.debug("swg: onPaymentResponse is triggered"), f = !0, t.then((function (t) {
r.debug("swg: onPaymentResponse", t), e && C(t, t.purchaseData, t.userData, n, e, u)
})).catch((function (e) {
r.log("swg: onPaymentResponse failed", e)
})))
}))
})), n.subscribe("swgCheckoutStart", (function (n) {
p || r.log("swg: incorrect SwG configuration. Please make sure that Experience user segment is configured properly. Details at https://docs.piano.io/subscribe-with-google/#SwGscript");
var t = n.params.sku;
e = n.params.termId, window.SWG.push((function (e) {
e.subscribe(t)
}))
}));
var g = function (e) {
if (l.hasCallback(a)) {
var n = {type: "swg", flow: e};
l.fireCallbacks(a, n, void 0, !0)
}
}, h = function (e) {
for (var n = !1, t = v.reduce((function (e, n) {
return e.concat(n.products)
}), []), r = 0; r < e.length; r++) if (-1 === t.indexOf(e[r])) {
n = !0;
break
}
return n
}, y = function (e) {
if (p && !m) {
var n = e || t.getProvider().getToken();
!n || (m = !0, function (e) {
var n = "/swg/sync";
return "piano_id_lite" === t.getProvider().getName() && (n += "/external"), new Promise((function (t, r) {
pn.api.callApi(n, {aid: pn.aid, access_token: e}, (function (e) {
var n;
0 !== e.code && r(), t(null !== (n = e.SwgResponse) && void 0 !== n ? n : {products: []})
}))
}))
}(n).then((function (e) {
return e.products && h(e.products)
})).then((function (e) {
e && function (e) {
window.SWG.push((function (n) {
n.saveSubscription((function () {
return {token: e}
})).then((function (e) {
!e && r.log("swg: save subscription process was stopped")
}))
}))
}(n), m = !1
})).catch((function (e) {
r.log("swg: save subscription flow failed with error - ", e), m = !1
})))
}
}, w = function e() {
y(), n.unsubscribe("purge", e)
}, _ = function () {
n.subscribe("loginSuccess", (function (e) {
if (i.hasModalIframe()) n.subscribe("purge", w); else {
var t = e.params.token || e.params.user_token;
y(t)
}
})), n.subscribe("purge", (function (e) {
e.params && e.params.completePayment && y()
}))
}, b = function (e) {
return new Promise((function (n, t) {
pn.api.callApi("/swg/check", {entitlement: JSON.stringify(e)}, (function (e) {
0 !== e.code && (r.log("swg: check subscription response - " + e.message), t()), n(e.CheckSubscriptionResponse)
}))
}))
}, k = function (e) {
return new Promise((function (n, t) {
pn.api.callApi("/swg/check/external", {entitlements: JSON.stringify(e)}, (function (e) {
0 !== e.code && (r.log("swg: check external entitlement response - " + e.message), t());
var o = e.data;
o || (r.log("swg: check external entitlement empty response"), t()), n(o)
}))
}))
}, C = function (e, t, o, i, a, s) {
pn.api.callApi("/swg/subscribe", {
term_id: a,
purchase_data: JSON.stringify(t),
user_data: JSON.stringify(o)
}, (function (t) {
if (t) {
if (0 !== t.code) return function (e) {
e.reset().then((function () {
return e.getEntitlements()
})).then((function (e) {
r.debug("swg: reload entitlements - ", e.entitlements)
})).catch((function (e) {
r.debug("swg: entitlements reload failed - ", e)
}))
}(i), void r.log("swg: subscribe response - " + t.message);
t.data && I(t.data)
} else r.log("swg: empty response");
n.broadcast("swgCheckoutComplete"), e.complete().then((function () {
g(s)
})).catch((function (e) {
r.log("swg: complete failed:", e)
}))
}))
}, I = function (e) {
e && t.getProvider().loginByToken && t.getProvider().loginByToken(e)
}, S = !1, E = !1;
return {
name: "swg", __protected__: {
injectMarkup: function (e) {
var n;
if (!S && e) {
r.debug("swg: rendering swg markup with config:", e);
var t = '{\n "@context": "http://schema.org",\n "@type": "CreativeWork",\n "isAccessibleForFree": ' + e.isAccessibleForFree;
!1 === e.isAccessibleForFree && e.productId && (t = t + ',\n "isPartOf": {\n "@type": ["CreativeWork", "Product"],\n "name" : "' + e.resourceName + '",\n "productID": "' + e.productId + '"\n }'), t += "\n}";
var o = document.createElement("script");
o.type = "application/ld+json", o.innerHTML = t, null === (n = document.getElementsByTagName("script")[0].parentNode) || void 0 === n || n.appendChild(o), S = !0
}
}, addLibrary: function () {
var e;
if (!E) {
r.debug("swg: adding swg.js library");
var n = document.createElement("script");
n.type = "text/javascript", n.setAttribute("subscriptions-control", "manual"), n.async = !0, n.src = "https://news.google.com/swg/js/v1/swg.js", null === (e = document.getElementsByTagName("script")[0].parentNode) || void 0 === e || e.appendChild(n), E = !0
}
}, initSwgFlow: function () {
window.SWG.push((function (e) {
e.getEntitlements().then((function (n) {
if (p = !0, r.debug("swg: getEntitlements", n), n.enablesThis()) {
var o = n.getEntitlementForSource("google");
if (v = n.entitlements, !o) return void (v && k(v).then((function () {
r.debug("swg: checkExternalEntitlement"), n.ack()
}), (function () {
r.log("swg: checkExternalEntitlement failed")
})));
b(o).then((function (o) {
if (f) r.debug("swg: onPaymentResponse is already triggered. Skipping entitlements flow."); else if (o) switch (o.type) {
case"USER_FOUND":
if (t.isUserValid()) return void r.error("swg: user found, but not valid");
r.debug("swg: user found, initiate login prompt");
var i = o.user_token;
if (function (e) {
return r.__protected__.getCookie(d) && r.__protected__.getCookie(d).includes(e)
}(o.type)) return;
e.showLoginPrompt().then((function () {
I(i), g(s)
})).catch((function (e) {
(function (e) {
r.__protected__.setCookieConsent("vx", d, e, {
expires: 30,
path: "/"
})
})(o.type), r.log("swg: showLoginPrompt failed", e)
}));
break;
case"TERM_FOUND":
r.debug("swg: term found, initiate deferred account creation");
var a = o.term_id;
e.completeDeferredAccountCreation({
entitlements: n,
consent: !0
}).then((function (n) {
r.debug("swg: completeDeferredAccountCreation", n), C(n, n.purchaseData, n.userData, e, a, c)
})).catch((function (e) {
r.log("swg: completeDeferredAccountCreation failed", e)
}));
break;
default:
r.debug("swg: check subscription response type " + o.type + ". Nothing to do")
}
}), (function () {
r.log("swg: checkSubscription failed")
})), n.ack()
}
})).catch((function (e) {
r.log("swg: get entitlements failed", e)
}))
})), _()
}
}, registerCallback: function (e, n) {
l.addEvent(e), l.registerCallback(e, n)
}
}
}();
pn.container.register("swg", {useValue: li}), pn.swg = pn.container.resolve("swg");
var di = function () {
var e = pn.container.resolve("util"), n = pn.container.resolve("analytics"), t = pn.container.resolve("offer"),
r = pn.container.resolve("user"), o = pn.container.resolve("api"), i = !1, a = "", s = {}, c = {};
function u(n) {
return new Promise((function (t) {
var i = {
aid: pn.aid,
rid: "",
account_linking_token: e.getQueryParamByName("account_linking_token"),
user_token: r.getProvider().getToken(),
user_provider: r.getProvider().getName()
};
n && (i.rid = n), o.callApi("/fbia/subscriptionPayload/generate", i, (function (e) {
e && e.data && (a = e.data), t(null)
}))
}))
}
var l = function () {
u().then((function () {
a && p()
}))
}, d = function (n) {
if (n) {
var t = new Promise((function (e) {
setTimeout((function () {
e(null)
}), 1e3 * pn.redirectToFbTimeout)
})), r = u(n);
e.__protected__.waitAllPromises([t, r]).then((function () {
p()
}))
} else e.error("fbsubscriptions: 'rid' could not be empty on generating subscription payload")
}, p = function () {
var n = e.getQueryParamByName("account_linking_token"),
t = e.getQueryParamByName("redirect_uri") + "?account_linking_token=" + encodeURIComponent(n);
a && (t += "&subscription_payload=" + encodeURIComponent(a)), window.location.href = t
}, f = function (e, t) {
s[e] || (s[e] = !0, n.fbpixel.event({eventType: bo.TRACK_EVENT, payload: {eventName: e, eventParams: t}}))
}, m = function (e, t) {
c[e] || (c[e] = !0, n.fbpixel.event({
eventType: bo.TRACK_CUSTOM_EVENT,
payload: {eventName: e, eventParams: t}
}))
}, v = function () {
return i
};
return {
name: "fbsubscriptions", checkUserAccessAndRedirectToFb: function () {
u().then((function () {
p()
}))
}, isInitialized: v, __private__: {isInitialized: v}, __protected__: {
init: function () {
if (!i) {
n.fbpixel.initialize(), t.registerCallback("loaded", (function () {
var n = e.getQueryParamByName("surface");
("meter_limit_reached" === n || "locked_article" === n) && !pn.inappBrowserReturn && m("ViewPaywall", {surface: "IA"})
}));
pn.addHandler("loginSuccess", (function (e) {
u().then((function () {
e.registration ? m("CreateAccount") : m("LogIntoAccount", {is_subscriber: !!a}), a && setTimeout((function () {
p()
}), 200)
}))
})), pn.addHandler("experienceExecute", (function () {
r.isUserValid() && l()
})), t.registerCallback("alreadyPurchased", (function (e) {
d(e.rid)
})), t.registerCallback("startCheckout", (function (e) {
f("InitiateCheckout", {offer_code: e.offerId, campaign_code: e.termId})
})), t.registerCallback("complete", (function (e) {
e.hasOwnProperty("chargeCurrency") && e.hasOwnProperty("chargeAmount") && f("Purchase", {
currency: e.chargeCurrency,
value: e.chargeAmount,
offer_code: e.offerId,
campaign_code: e.termId
}), d(e.rid)
})), t.registerCallback("close", (function () {
p()
})), i = !0
}
}
}
}
}();
pn.container.register("fbsubscriptions", {useValue: di}), pn.fbsubscriptions = pn.container.resolve("fbsubscriptions");
pn.container.register("cxense", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("jqUtils"), t = e.resolve("util"), r = e.resolve("analytics"),
o = e.resolve("recWidgetService").__protected__.getInstance(), i = [], a = function () {
return void 0 !== pn.cxCdnUrl && "" !== pn.cxCdnUrl ? pn.cxCdnUrl : "https://cdn.cxense.com"
}, s = function () {
return void 0 !== pn.cxenseSiteId && "" !== pn.cxenseSiteId
}, c = function (e) {
return void 0 !== window.cX && void 0 !== window.cX.library && (e || void 0 !== window.cX.CCE && void 0 !== window.cX.CCE.library)
}, u = function (e) {
return void 0 !== e.cxenseCustomerPrefix && "" !== e.cxenseCustomerPrefix
}, l = function (e, n) {
var r, o, i, a = "anon", s = function () {
for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
n && t.debug.apply(t, e)
};
e.uid && "anon" !== e.uid && "" !== e.uid && (a = !(null === (i = null === (o = e.eventExecutionContext) || void 0 === o ? void 0 : o.accessList) || void 0 === i || !i.length) ? "hasActiveAccess" : "registered", s("c1x: adding externalId", {
uid: e.uid,
prefix: e.cxenseCustomerPrefix
}));
if (s("c1x: adding CustomParameters userState", {userState: a}), s("c1x: sending pageview event"), "anon" !== a ? t.__protected__.setVxUsersToDataLayer(((r = {})[e.uid] = {
prefix: e.cxenseCustomerPrefix || "",
type: "VX"
}, r)) : t.__protected__.setVxUsersToDataLayer(null), Nr.set("userStatus", a), n) {
Nr.set("siteId", pn.cxenseSiteId);
var c = window.cX = window.cX || {};
c.callQueue = c.callQueue || [], c.callQueue.push(["sendPageViewEvent", {location: pn.customPageUrl || void 0}])
}
}, d = function (e) {
var n = null, t = [];
function r() {
n && clearTimeout(n), n = null, e(t), t = []
}
return function (e) {
n || (n = setTimeout(r, 10)), t.push(e)
}
}((function (e) {
if (s()) {
for (var n = [], a = function () {
var t = e[c] || {};
o.showRecommendation({
widgetConfig: t,
createPlaceholderFn: p(t.widgetId, t.displayMode)
}) && n.push({
widgetParams: {
widgetId: t.widgetId,
targetElementId: "cxense-" + t.widgetId,
experienceId: t.experienceId,
trackingId: t.trackingId
}, widgetCallback: function (e) {
var n = e && e.response;
if (n && !e.response.error) {
"modal" === t.displayMode && o.fixWidgetModalWidth(o.findWidget(t.widgetId));
for (var a = 0; a < n.items.length; a++) {
var s = n.items[a].id;
-1 === i.indexOf(s) && i.push(s)
}
r.log.event({
eventType: wo.LOG_AUTO_MICRO_CONVERSION,
payload: {
trackingId: t.trackingId,
eventGroupId: "init",
eventType: yo.EXTERNAL_EVENT,
customParams: {source: "CX"}
}
})
}
}
})
}, c = 0; c < e.length; c++) a();
f((function () {
(function () {
var e = pn.cxenseSiteId;
t.debug("c1x: setting siteId: ", e), window.cX.setSiteId(e)
})(), window.cX.CCE.runMulti(n, ["id"], i)
}))
} else t.debug("c1x: can not show recommendation because siteId is not configured using `setCxenseSiteId`")
})), p = function (e, t) {
return function () {
var r = document.createElement("div");
n.addClass("tp-cxense-placeholder-".concat(t), r), n.addClass("tp-widget-placeholder", r);
var o = document.createElement("div");
return o.id = "cxense-".concat(e), r.appendChild(o), r
}
}, f = function (e) {
window.cX = window.cX || {}, window.cX.CCE = window.cX.CCE || {}, window.cX.CCE.callQueue = window.cX.CCE.callQueue || [], window.cX.CCE.callQueue.push(["invoke", e])
}, m = function (e) {
return c(e)
};
return {
name: "cxense", __protected__: {
showRecommendation: d, clearWidgets: function () {
o.clearWidgets()
}, sendPageViewEvent: function (e) {
var n = !0;
!s() && !u(e) && (n = !1), !s() && u(e) && (t.debug("cxense: can not send pageview because siteId is not configured using `setCxenseSiteId`"), n = !1), s() && !u(e) && (t.debug("cxense: can not send pageview because customer prefix is not configured in app settings"), n = !1), l(e, n)
}, isActivated: s, isCustomerPrefixConfigured: u, isConfiguredPollingAsync: function (e, n, t) {
n = n || 0, t = t || 0;
var r = 0;
return new Promise((function (o, i) {
m(e) ? o(!0) : setTimeout((function a() {
m(e) ? o(!0) : r >= t ? i(e ? "c1x: cX object is not found after " + t + " retries with " + n + "ms interval" : "c1x: cX and cX.CCE objects are not found after " + t + " retries with " + n + "ms interval") : (r++, setTimeout(a, n))
}), n)
}))
}, invokeCxenseFn: f, getC1XIntegrationVersion: function () {
return void 0 !== pn.c1XIntegrationVersion && "" !== pn.cxenseSiteId ? pn.c1XIntegrationVersion : "N/A"
}, loadCxLibIfNeeded: function () {
var e = "cxLibLoading";
t.waitCall(e, (function () {
var n;
if (!s() || !c(!0)) {
t.startCall(e);
var r, o = document.getElementsByTagName("script")[0],
i = document.createElement("script");
i.onerror = function (n) {
r && clearTimeout(r), t.doneCall(e), t.debug("c1x: error during load of cx.js. ", n)
}, i.onload = function () {
r = setTimeout((function () {
t.doneCall(e)
}), 500), t.debug("c1x: cx.js has been successfully loaded")
}, i.async = !0, i.type = "text/javascript", pn.c1XLoadCce ? i.src = a() + "/cx.cce.js" : i.src = a() + "/cx.js", t.debug("c1x: start loading cx.js on the page..."), null === (n = o.parentNode) || void 0 === n || n.insertBefore(i, o)
}
}))
}
}
}
}()
}), pn.cxense = pn.container.resolve("cxense");
var pi, fi, mi, vi, gi, hi = p({
1: "autoRenewalDisabled",
2: "subscriptionCancellation",
3: "dismissTemplate",
4: "customEvent"
}, {5: "customFormSubmitted", 6: "customFormSubmitted", 7: "customFormClosed"}), yi = "finalConfirmation", wi = [1],
_i = function (e) {
var n = {}, t = function () {
var e = {};
return {
add: function (n, t, r) {
e[n] || (e[n] = {}), e[n][t] || (e[n][t] = []), e[n][t].push(r)
}, get: function (n, t) {
var r;
return (null === (r = e[n]) || void 0 === r ? void 0 : r[t]) || null
}, clear: function () {
e = {}
}
}
}(), r = function (e) {
return hi[e] || e
}, o = function (e, n) {
return t.get(e, r(n))
};
return {
clear: function () {
Object.keys(n).forEach((function (e) {
n[e] = []
})), t.clear()
}, on: function (o, i, a, s, c) {
void 0 === s && (s = function () {
return !0
}), void 0 === c && (c = !1);
var u = r(o), l = {cb: a, check: s, skip: c};
n[u] || (n[u] = [], e(u, (function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
n[u].forEach((function (e) {
return e.res = null
})), n[u].forEach((function (n) {
var t, r = n.cb, o = n.check, i = n.skip;
o.apply(void 0, e) && (i ? n.skip = !1 : n.res = null !== (t = r.apply(void 0, e)) && void 0 !== t ? t : null)
}))
}))), i && t.add(i, u, l), n[u].push(l)
}, has: function (e, n) {
return !!o(e, n)
}, get: o, skipOne: function (e, n) {
var o = r(n), i = t.get(e, o);
return null == i || i.forEach((function (e) {
e.skip = !0
})), !!i
}
}
}, bi = function (e, n) {
return function (t) {
return null !== t ? n(t) : e()
}
}, ki = function (e) {
return (e || {}).continuation || null
}, Ci = function (e) {
return (e || {}).trackingId || null
}, Ii = function (e) {
return (e || {}).experienceActionId || null
};
!function (e) {
e.EQUALS = "equals", e.NOT_EQUALS = "notEquals", e.GREATER = "greater", e.LESS = "less", e.MATCHES = "matches", e.CONTAINS = "contains", e.NOT_CONTAINS = "notContains", e.OCCURS_BEFORE = "occursBefore", e.OCCURS_AFTER = "occursAfter", e.OCCURS_ON = "occursOn", e.OCCURS_WITHIN = "occursWithin", e.NOT_OCCURS_WITHIN = "notOccurWithin", e.ANY_OF = "anyOf", e.EMPTY = "empty", e.NOT_EMPTY = "notEmpty"
}(pi || (pi = {})), function (e) {
e.TEXT = "TEXT", e.ISO_DATE = "ISO_DATE", e.BOOLEAN = "BOOLEAN", e.NUMBER = "NUMBER", e.SINGLE_SELECT_LIST = "SINGLE_SELECT_LIST", e.MULTI_SELECT_LIST = "MULTI_SELECT_LIST"
}(fi || (fi = {})), function (e) {
e.VOID = "void", e.STRING_LIST = "stringList", e.NUMBER = "number", e.BOOLEAN = "boolean", e.DATE = "date", e.RELATIVE_DATE = "relativeDate", e.DATE_RANGE = "dateRange", e.RELATIVE_DATE_RANGE = "relativeDateRange"
}(mi || (mi = {})), function (e) {
e.DAYS = "days", e.WEEKS = "weeks", e.MONTHS = "months", e.YEARS = "years"
}(vi || (vi = {})), function (e) {
e.AGO = "ago", e.FROM_NOW = "fromNow"
}(gi || (gi = {}));
var Si, Ei = function (e) {
return e.getFullYear()
}, Ti = function (e) {
return e.getMonth()
}, Pi = function (e) {
return e.getDate()
}, xi = function (e, n) {
return e.setFullYear(n)
}, Ai = function (e) {
return Number(e)
}, Oi = function (e, n, t) {
var r = Ei(t), o = new Date(e);
xi(o, r);
var i = new Date(n);
return xi(i, r), t <= i && t >= o
}, Mi = function (e, n, t) {
if (e > n) return !1;
if (function (e, n) {
var t = e.getTime() - n.getTime();
return Math.floor(t / 31536e6)
}(e, n) >= 1) return !0;
if (Ei(e) == Ei(n)) return Oi(e, n, t);
var r = function (e) {
return new Date(Ei(e), 0, 1)
}(n), o = function (e) {
return new Date(Ei(e), 11, 31)
}(e), i = Oi(e, o, t), a = Oi(r, n, t);
return i || a
}, Ni = function (e, n, t) {
if (!e) return null;
var r = new Date(n);
switch (e) {
case vi.DAYS:
r.setDate(Pi(r) + t);
break;
case vi.MONTHS:
r.setMonth(Ti(r) + t);
break;
case vi.YEARS:
r.setFullYear(Ei(r) + t);
break;
case vi.WEEKS:
r.setDate(Pi(r) + 7 * t)
}
return r
}, Ri = /^(\d{4})(?:-(\d{2}))?(?:-(\d{2}))?$/, Li = function (e, n) {
if (!e) return n ? new Date(n) : null;
var t;
if (Ri.test(e)) {
var r = e.match(Ri) || [], o = r[1], i = r[2], a = void 0 === i ? "1" : i, s = r[3],
c = void 0 === s ? "1" : s;
t = new Date(Ai(o), Ai(a) - 1, Ai(c))
} else t = new Date(e);
return isNaN(t.getTime()) ? null : t
}, Ui = function (e, n) {
return "Not supported operator '".concat(e, "' for ").concat(n)
}, Di = function (e, n, t) {
return void 0 === t && (t = function () {
}), n.every((function (n) {
var r = function (e, n) {
try {
return n.filter((function (n) {
return n.fieldName === e.fieldName
}))
} catch (e) {
return []
}
}(n, e);
if (!r.length) return t("Values of custom fields ".concat(n.fieldName, " is not found")), !1;
var o = r.some((function (e) {
return function (e, n, t) {
if (!(n.dataType in fi)) return !1;
var r = n.dataType, o = ji[r];
if (!o) return t("dataType: ".concat(r, " is not supported")), !1;
var i = "";
try {
i = JSON.parse(n.value || "")
} catch (e) {
i = n.value || null
}
try {
return o(e, i, t)
} catch (e) {
return !1
}
}(n, e, t)
}));
if (!o) {
var i = n.fieldName, a = r.map((function (e) {
return e.value
})).join(", "), s = '"'.concat(n.operator, '": ').concat(JSON.stringify(n.ruleValue));
return t('field "'.concat(i, '":[').concat(a, "] does not match a rule ").concat(s)), !1
}
return !0
}))
}, ji = ((Si = {})[fi.TEXT] = function (e, n, t) {
var r, o, i = e.operator, a = Bi(n, i);
if (!a.proceed) return a.result;
var s = String(n).trim().toLowerCase();
Vi(e, [mi.STRING_LIST], t);
var c = null !== (o = null === (r = e.ruleValue.value) || void 0 === r ? void 0 : r.map((function (e) {
return e.trim().toLowerCase()
}))) && void 0 !== o ? o : [];
switch (i) {
case pi.MATCHES:
return c.some((function (e) {
return s === e
}));
case pi.CONTAINS:
return c.some((function (e) {
return s.includes(e)
}));
case pi.NOT_CONTAINS:
return c.every((function (e) {
return !s.includes(e)
}));
default:
return t(Ui(i, fi.TEXT)), !1
}
}, Si[fi.NUMBER] = function (e, n, t) {
var r = e.operator, o = Bi(n, r);
if (!o.proceed) return o.result;
var i = parseInt(n, 10);
if (isNaN(i)) return t("".concat(n, " is not a number")), !1;
Vi(e, [mi.NUMBER], t);
var a = e.ruleValue.value;
switch (r) {
case pi.EQUALS:
return i === a;
case pi.NOT_EQUALS:
return i !== a;
case pi.GREATER:
return i > a;
case pi.LESS:
return i < a;
default:
return t(Ui(r, fi.TEXT)), !1
}
}, Si[fi.ISO_DATE] = function (e, n, t) {
var r, o, i = e.operator, a = Bi(n, i);
if (!a.proceed) return a.result;
var s = Li(n, null);
if (!s) return t("".concat(n, " is not an ISO date")), !1;
var c = function () {
var e = new Date;
return new Date(Ei(e), Ti(e), Pi(e))
}(), u = null, l = null, d = null, p = !1;
if ((i === pi.OCCURS_BEFORE || i === pi.OCCURS_AFTER) && (Vi(e, [mi.DATE], t), u = Li(null === (r = e.ruleValue) || void 0 === r ? void 0 : r.value, c)), i === pi.OCCURS_ON) {
Vi(e, [mi.DATE, mi.RELATIVE_DATE], t);
var f = e.ruleValue, m = e.ruleValue;
f.timeUnit || f.regardlessOfYears ? (p = null !== (o = f.regardlessOfYears) && void 0 !== o && o, u = Ni(f.timeUnit, c, f.timeType === gi.AGO ? -f.timeUnitNumber : +f.timeUnitNumber)) : u = Li(null == m ? void 0 : m.value, c)
}
if (i === pi.OCCURS_WITHIN || i === pi.NOT_OCCURS_WITHIN) {
Vi(e, [mi.DATE_RANGE, mi.RELATIVE_DATE_RANGE], t);
var v = e.ruleValue;
if (v.fromTimeType || v.toTimeUnit) p = v.regardlessOfYears, l = Ni(v.fromTimeUnit, c, v.fromTimeType === gi.AGO ? -v.fromTimeUnitNumber : +v.fromTimeUnitNumber), d = Ni(v.toTimeUnit, c, v.toTimeType === gi.AGO ? -v.toTimeUnitNumber : +v.toTimeUnitNumber); else {
var g = e.ruleValue;
l = Li(null == g ? void 0 : g.from, c), d = Li(null == g ? void 0 : g.to, c)
}
}
switch (i) {
case pi.OCCURS_BEFORE:
return s < u;
case pi.OCCURS_AFTER:
return s > u;
case pi.OCCURS_ON:
return p ? function (e, n) {
var t = Ei(e), r = new Date(e);
xi(r, t);
var o = new Date(n);
return xi(o, t), r.getTime() === o.getTime()
}(s, u) : s.getTime() === (null == u ? void 0 : u.getTime());
case pi.OCCURS_WITHIN:
return p ? Mi(l, d, s) : !(s < l || s > d);
case pi.NOT_OCCURS_WITHIN:
return p ? !Mi(l, d, s) : s < l || s > d;
default:
return t(Ui(i, fi.ISO_DATE)), !1
}
}, Si[fi.BOOLEAN] = function (e, n, t) {
var r = e.operator, o = Bi(n, r);
if (!o.proceed) return o.result;
Vi(e, [mi.BOOLEAN], t);
var i = e.ruleValue.value, a = Boolean(n);
return r === pi.EQUALS ? a === i : (t(Ui(r, fi.BOOLEAN)), !1)
}, Si[fi.SINGLE_SELECT_LIST] = function (e, n, t) {
var r = e.operator, o = n || [];
if (!Array.isArray(o)) return t("".concat(n, " is not an array of string")), !1;
var i = qi(o, r);
if (!i.proceed) return i.result;
Vi(e, [mi.STRING_LIST], t);
var a = e.ruleValue.value;
switch (r) {
case pi.EQUALS:
return 1 === (null == a ? void 0 : a.length) && 1 === o.length && o[0] === a[0];
case pi.NOT_EQUALS:
return 0 !== o.length && (!a || 1 !== a.length || 1 !== o.length || o[0] !== a[0]);
case pi.ANY_OF:
return 0 !== o.length && !!a && a.some((function (e) {
return e === o[0]
}));
default:
return t(Ui(r, fi.SINGLE_SELECT_LIST)), !1
}
}, Si[fi.MULTI_SELECT_LIST] = function (e, n, t) {
var r = e.operator, o = n || [];
if (!Array.isArray(o)) return t("".concat(n, " is not an array of string")), !1;
var i = qi(o, r);
if (!i.proceed) return i.result;
Vi(e, [mi.STRING_LIST], t);
var a = e.ruleValue.value;
switch (r) {
case pi.EQUALS:
return (null == o ? void 0 : o.length) > 0 && o.length === (null == a ? void 0 : a.length) && o.every((function (e) {
return a.includes(e)
}));
case pi.NOT_EQUALS:
return o.length > 0 && (o.length !== (null == a ? void 0 : a.length) || !o.every((function (e) {
return a.includes(e)
})));
case pi.ANY_OF:
return !!a && o.some((function (e) {
return a.includes(e)
}));
default:
return t(Ui(r, fi.MULTI_SELECT_LIST)), !1
}
}, Si);
function Vi(e, n, t) {
var r;
n.some((function (n) {
var t;
return n === (null === (t = e.ruleValue) || void 0 === t ? void 0 : t.valueType)
})) || t("Incorrect value type '".concat(null === (r = e.ruleValue) || void 0 === r ? void 0 : r.valueType, "' for operator '").concat(e.operator, "'"))
}
var Fi = function (e, n) {
var t = function (e, n) {
return {result: e, proceed: n}
};
return n === pi.EMPTY ? t(e, !1) : n === pi.NOT_EMPTY ? t(!e, !1) : t(e, !0)
};
function Bi(e, n) {
var t = "string" == typeof e ? !e.trim() : null === e;
return Fi(t, n)
}
function qi(e, n) {
var t = !e || 0 === e.length;
return Fi(t, n)
}
var zi = _i(pn.myaccount.registerCallback), Hi = _i(pn.offer.registerCallback),
Wi = _i(pn.template.registerCallback), Gi = _i(pn.pianoId.registerCallback),
Ji = bi(pn.offer.close, pn.offer.closeInline), Qi = bi(pn.template.close, pn.template.closeInline),
Xi = function (e) {
return "receipt" === e
}, Yi = function (e, n, t) {
var r = e.eventType, o = e.parentId, i = e.autoClose, a = function (e) {
return t("ExpInt: eventType=".concat(r, ": ").concat(e))
}, s = function (e) {
return Ii(e || {}) === o
}, c = function (e) {
var n = ki(e), t = Ci(e) || void 0;
n && (n(t), n.done = !0)
}, u = function (e) {
var t = ki(e);
n(t)
}, l = function (e) {
var n = e.offerType, t = e.currentState, r = ki(e), o = Ci(e) || void 0;
if (!r) return u(e);
if ("upgrade" === n && Xi(t)) return r.done = !0, r(new Error("Subscription was upgraded"));
if ("purchase" === n) {
if (Xi(t)) return r.done = !0, r(o);
if (function (e) {
return "alreadyHasAccess" === e
}(t)) return r.done = !0, r(new Error("Subscription already has access"))
}
u(e)
}, d = function (n, t) {
var r = t || {}, a = r.customEventName, u = void 0 === a ? null : a, l = r.containerSelector,
d = void 0 === l ? null : l, p = s(t) && (e.customEventNames || []).includes(u);
return !!p && (i && (Hi.skipOne(o, 3) || Hi.on(3, o, c, s, !0), Wi.skipOne(o, 3) || Wi.on(3, o, c, s, !0), n(d)), p)
}, p = function (e) {
var n = e.config, t = e.reason;
return s(n) && "customFormSubmitted" !== t
};
switch (Number(r)) {
case 1:
case 2:
zi.on(r, o, (function (e) {
var t = ki(e), r = (e || {}).subscriptionId, o = void 0 === r ? null : r;
t && o && (t.subscriptionId = o), n(t)
}));
break;
case 3:
Hi.on(r, o, l, s), Wi.on(r, o, l, s);
break;
case 4:
Hi.on(r, o, u, d.bind(null, Ji)), Wi.on(r, o, u, d.bind(null, Qi));
break;
case 5:
case 7:
Gi.on(r, o, (function (e) {
return u(e.config), !0
}), p);
break;
case 6:
Gi.on(r, o, (function (t) {
var r = ki(t.config);
return !!function (e, n, t) {
var r, o = (t || {}).submittedFields, i = void 0 === o ? null : o, a = e.fieldRules,
s = i && Di(i, a.targetRules || [], n),
c = i && !(null === (r = a.ignoreRules) || void 0 === r || !r.length) && Di(i, a.ignoreRules || [], n);
return !(!i || !s || c) || (n("submitted fields are not equal provided rules"), !1)
}(e, a, t) && (n(r), !0)
}), p);
break;
default:
return void a(r + "is not supported")
}
}, $i = ["userSegmentTrue", "userSegmentFalse"],
Ki = new Set(b(["showForm", "showOffer", "showTemplate", "showRecommendations", "showZuoraOffer", "showNewscycleOffer"], $i, !0)),
Zi = new Set($i), ea = "continuation", na = function (e) {
return e[ea] || null
}, ta = function (e) {
var n = na(e);
return n && n.subscriptionId
}, ra = "executeTemplateInteraction", oa = "/xbuilder/experience/" + ra, ia = "templateInteractionEvent",
aa = "formInteractionEvent", sa = [ia, aa], ca = function () {
var e = {};
return {
endpoint: oa, name: ra, add: function (n) {
var t = function (e) {
return hi[e] || null
}(n.eventType || -1);
(function (e) {
return sa.includes(e)
})(n.type) && t && (e[t] = !0)
}, get: function () {
return function (e) {
return Object.entries(e)
}(e).reduce((function (e, n) {
var t = n[0];
return n[1] && e.push(t), e
}), [])
}
}
}, ua = function (e, n) {
return g(void 0, void 0, void 0, (function () {
var t;
return h(this, (function (r) {
switch (r.label) {
case 0:
if (!function (e) {
return !(!e || !wi.includes(e))
}(e)) throw {code: 1};
return t = ca(), [4, n(t)];
case 1:
return r.sent(), function () {
var e = function (e) {
var n = ki(e), t = Ci(e) || void 0, r = e.confirm, o = void 0 === r ? null : r;
n && (n.apply(void 0, o ? [t] : [new Error("Final confirmation: confirm is false")]), n.done = !0)
};
Hi.on(yi, null, e), Wi.on(yi, null, e)
}(), function () {
var e = function (e) {
var n = ki(e), t = Ii(e), r = Ci(e);
if (t && n) return {
id: t, run: function () {
if (!n.done) return n.done = !0, n(r)
}
}
}, n = function (n, t) {
var r = e(t);
r && !n.has(r.id, 3) && r.run()
};
Hi.on(hi[3], null, n.bind(Hi)), Wi.on(hi[3], null, n.bind(Wi)), Gi.on(hi[7], null, (function (n) {
var t = n.config, r = n.reason, o = e(t);
if (o) {
if ("customFormSubmitted" === r) {
var i = Gi.get(o.id, 6);
return void ((!i || i.every((function (e) {
return !e.res
}))) && o.run())
}
Gi.has(o.id, 7) || o.run()
}
}))
}(), [2, {registeredEvents: t.get()}]
}
}))
}))
}, la = {linkedNodes: {}, executedNodes: [], executedHandlers: {}}, da = function () {
return la.executedNodes
}, pa = function () {
la.executedNodes = []
}, fa = function () {
zi.clear(), Hi.clear(), Wi.clear(), Gi.clear(), pa(), la.linkedNodes = {}, la.executedHandlers = {}
};
pn.container.register("experience", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n, t, r, o = e.resolve("jqUtils"), i = e.resolve("util"), a = e.resolve("consent"),
s = e.resolve("api"), c = e.resolve("eventUtils"), u = e.resolve("scrollDepth"), l = e.resolve("ajax"),
d = e.resolve("viewportExit"), f = e.resolve("idle"), m = e.resolve("interaction"),
v = e.resolve("pianoEsp"), g = e.resolve("swg"), h = e.resolve("fbsubscriptions"),
y = e.resolve("user"), w = e.resolve("cxense"), _ = e.resolve("logging"),
b = e.resolve("composerControlPolicy"), k = e.resolve("analytics"),
C = e.resolve("gaCollectingService"), I = [], S = {}, E = "", T = !1, P = "reader_id", x = {}, A = !1,
O = {}, M = (n = {
applyCss: {
fn: function (e) {
e.eventParams.ruleList.forEach((function (e) {
var n, t = e.classes, r = e.elements;
t && (t = t.replace(/[,.]/g, " ").split(" ").filter((function (e) {
return "" !== e
})), "add" === e.type && (n = o.qa(r)) && n.length && n.forEach((function (e) {
t.forEach((function (n) {
o.addClass(n, e)
}))
})), "remove" === e.type && (n = o.qa(r)) && n.length && n.forEach((function (e) {
t.forEach((function (n) {
o.removeClass(n, e)
}))
})));
i.debug("exp: css applied with rule:", e)
}))
}, isAction: !0, shouldFireCallback: !0
},
runJs: {
fn: function (e) {
if (e.eventParams && e.eventParams.snippet) {
var n = e.eventParams.snippet;
i.debug("exp: run js with snippet:", n);
var t = e.eventExecutionContext;
i.debug("exp: set publisher's context and custom:", t), ye("var context = " + JSON.stringify(t) + ";\nvar custom = " + JSON.stringify(pn.customVariables) + ";\n" + n)
}
}, isAction: !0, shouldFireCallback: !0
},
setCookie: {
fn: function (e) {
var n = e.eventParams;
if (n && void 0 !== n.cookieName && void 0 !== n.cookieValue) {
i.debug("exp: set cookie with parameters:", n);
var t = (n.isReadableCookie ? "_pc_" : "") + n.cookieName,
r = {domain: n.cookieDomain, path: n.cookiePath};
if (!n.isSessionCookie) {
var o = new Date;
switch (n.expirationUnit) {
case"seconds":
o.setSeconds(o.getSeconds() + n.expirationValue);
break;
case"minutes":
o.setMinutes(o.getMinutes() + n.expirationValue);
break;
case"hours":
o.setHours(o.getHours() + n.expirationValue);
break;
case"days":
o.setDate(o.getDate() + n.expirationValue);
break;
case"months":
o.setMonth(o.getMonth() + n.expirationValue);
break;
case"years":
o.setFullYear(o.getFullYear() + n.expirationValue);
break;
default:
i.log("Wrong eventParams.expirationUnit : ", n.expirationUnit)
}
r.expires = o
}
i.__protected__.setCookieConsent("composer", t, n.cookieValue, r)
}
}, isAction: !0, shouldFireCallback: !0
},
nonSite: {
fn: function (e) {
i.debug("exp: non-site action:", e)
}, isAction: !0, shouldFireCallback: !0
},
showForm: {
fn: function (e) {
var n = e.eventParams;
if (n && n.formName) {
var t = {
formName: n.formName,
hideIfComplete: n.hideCompletedFields,
trackingId: e.eventExecutionContext.trackingId,
displayMode: n.displayMode,
containerSelector: n.containerSelector,
showCloseButton: n.showCloseButton,
templateId: n.templateId,
variantId: n.templateVariantId,
accessToken: y.getProvider().getToken(),
experienceActionId: e.eventModuleParams.moduleId,
continuation: na(e),
subscriptionId: ta(e)
};
n.formWidth && n.formWidth.enabled && (t = o.deepExtend({}, {width: n.formWidth.width}, t)), i.debug("exp: show form with params:", n), pn.pianoId.showForm(t)
}
}, isAction: !0, shouldFireCallback: !0
},
showRecommendations: {
fn: function (e, n, t, r) {
return we(e, function (e) {
var n = {
ESP: v.__protected__.showRecommendation.bind(v),
CXENSE: w.__protected__.showRecommendation.bind(w)
};
return n[e] || function () {
}
}(e.eventParams.type), _e(r))
}, isAction: !0, shouldFireCallback: !0
},
showOffer: {
fn: function (e, n, t, r) {
return we(e, (function (e) {
return pn.offer.show(e)
}), _e(r))
}, isAction: !0, shouldFireCallback: !1
},
showTemplate: {fn: be, isAction: !0, shouldFireCallback: !1},
showZuoraOffer: {fn: be, isAction: !0, shouldFireCallback: !1},
showNewscycleOffer: {fn: be, isAction: !0, shouldFireCallback: !1},
showNewsletterSignup: {
fn: function (e, n, t, r) {
return we(e, (function (e) {
return v.__protected__.showNewsletterSignup(e)
}), _e(r))
}, isAction: !0, shouldFireCallback: !1
},
showPushSignUp: {
fn: function (e, n, t, r) {
return we(e, (function (e) {
return v.__protected__.showPushSignup(e)
}), _e(r))
}, isAction: !0, shouldFireCallback: !1
},
showLogin: {
fn: function (e) {
y.showLogin({trackingId: e.eventExecutionContext.trackingId})
}, isAction: !0, shouldFireCallback: !0
},
continueExecution: {
fn: function (e, n, t, r) {
i.debug("exp: continue execution action:", e, "with requestParameters", n);
var o = n || {};
o.experience_id = e.eventExecutionContext.experienceId, o.experience_version = e.eventExecutionContext.experienceVersion, o.context_data = e.eventParams.contextData, Q("auto", o, !0, r)
}, shouldFireCallback: !0
},
continueExecutionCompleted: {fn: Ee, shouldFireCallback: !0},
meterActive: {
fn: Ee, shouldFireCallback: !0, ga: function (e) {
return {
eventCategory: "meterActive",
eventLabel: "Meter active",
experienceId: e.eventExecutionContext.experienceId,
meterName: e.eventExecutionContext.currentMeterName
}
}
},
meterExpired: {
fn: Ee, shouldFireCallback: !0, ga: function (e) {
return {
eventCategory: "meterExpired",
eventLabel: "Meter expired",
experienceId: e.eventExecutionContext.experienceId,
meterName: e.eventExecutionContext.currentMeterName
}
}
},
userSegmentTrue: {fn: he, shouldFireCallback: !0},
userSegmentFalse: {fn: he, shouldFireCallback: !0},
experienceExecutionFailed: {fn: Ee, shouldFireCallback: !0},
log: {
fn: function (e, n, t, r) {
var o = _e(r);
re(e.eventModuleParams.moduleId, e, o)
}, shouldFireCallback: !1
},
experienceExecute: {
fn: function (e, n, t) {
e.eventParams.result = t
}, shouldFireCallback: !0, ga: function (e) {
return {
eventCategory: "experienceExecute",
eventLabel: "Experience execute",
experienceId: e.eventExecutionContext.experienceId
}
}
},
setResponseVariable: {
fn: function (e) {
return e.eventParams
}, isAction: !0, shouldFireCallback: !0, ga: function (e) {
return p({
eventCategory: "setResponseVariable",
eventLabel: "Set response variable",
experienceId: e.eventExecutionContext.experienceId,
setResponseVariableId: e.eventModuleParams.moduleId
}, e.eventParams.responseVariables)
}
},
creditRedeemed: {
fn: function (e) {
i.debug("exp: credit redeemed action:", e)
}, isAction: !0, shouldFireCallback: !0
}
}, t = {}, r = function (e, n) {
return function (t, r, o, a) {
var s = _e(a);
if (e.isAction) {
var c = function (e) {
var n = e.eventParams, t = e.eventModuleParams, r = e.eventExecutionContext;
return i.debug("exp: fire event 'beforeComposerAction' with eventParams:", n, ", moduleParams:", t, ", context:", r), q.fireCallbacksAndStopOnFirstFalse("beforeComposerAction", n, t, r)
}(t);
if (!c) return;
var u = ae(t), l = ie(t);
(u || l) && re(t.eventModuleParams.moduleId, t, s)
}
var d = t.eventModuleParams.moduleId,
p = null != a && a.interactionContext ? la.executedHandlers : O;
!p[d] && "N/A" !== d && (p[d] = {
experienceId: t.eventExecutionContext.experienceId,
moduleName: t.eventModuleParams.moduleName
});
var f = (null == a ? void 0 : a.handlers) || {},
m = "on".concat(n[0].toUpperCase()).concat(n.slice(1));
"function" == typeof (null == f ? void 0 : f[m]) && f[m](t, r);
var v = Object.assign({}, t);
v.eventParams && (v.eventParams = Object.assign({}, t.eventParams)), e.fn(v, r, o, a), e.ga && ge(e.ga(v)), e.shouldFireCallback && function (e) {
return function (n) {
var t = n.eventParams.callback, r = n.eventParams, o = n.eventModuleParams,
a = n.eventExecutionContext;
i.debug("exp: fire event ", e, " with eventParams:", r, ", moduleParams:", o, ", context:", a), q.fire("experience", e, !0, r, o, a), t && e !== t && (i.debug("exp: execute event ", e, " with callback: ", t), ye(t))
}
}(n)(v)
}
}, Object.keys(n).forEach((function (e) {
if ("function" != typeof n[e].fn) throw new Error("Unsupported config for " + e + " handler");
t[e] = r(n[e], e)
})), t), N = {
showOffer: function (e) {
return ke(e, (function (e) {
return pn.offer.deferredShow(e)
}))
}, showTemplate: Ce, showZuoraOffer: Ce, showNewscycleOffer: Ce
}, R = i.profile((function (e, n) {
b.__private__.checkLS(), Q("manual", e, !1, {overrides: e, handlers: n})
})), L = function (e, n) {
q.addEvent(e), q.registerCallback(e, n)
}, U = {}, D = "", j = "", V = "", F = [], B = {
HANDLER: "handler",
EVENT_CONDITION: "eventCondition",
INNER_EVENT_CONDITION: "innerEventCondition",
PRELOAD: "preload"
}, q = c.createEventManager([]), z = ["showOffer", "showZuoraOffer", "showNewscycleOffer", "showTemplate"];
var H, W = function () {
return pn.getExperienceEndpoint(!1) + "/api/v3"
}, G = function () {
h.__protected__.init()
}, J = function e(n, t) {
void 0 === t && (t = !1);
var r = function (e) {
return void 0 === e && (e = !1), e ? da() : I
}(t);
r.length && (k.log.event({
eventType: wo.LOG_BEACON_REQUEST,
payload: {
url: W() + "/composer/logExecutionStats",
params: {
aid: pn.aid,
items: JSON.stringify(r),
execution_stats_context: E,
ts: (new Date).getTime(),
source: n
}
}
}), function (e) {
void 0 === e && (e = !1), e ? pa() : I = []
}(t)), window.clearTimeout(H), H = window.setTimeout((function () {
e("timer" + H, t)
}), 2e3)
}, Q = function (e, n, t, r) {
Boolean((window.pdl || {}).requireConsent && !pn.consent.get()) && i.debug("WARNING: The RequireConsent feature is enabled. The Piano services might be working unstable until user consent provided"), void 0 === pn.main.appHasApplePay() && q.fireCallbacks("experienceFlow", null, "experience", !0);
var a = !(null == r || !r.interactionContext), s = new Promise((function (e) {
setTimeout((function () {
e({})
}), 3e4)
}));
return Promise.race([pn.main.externalResourcesDelay(), s]).then((function (s) {
o.isPlainObject(s) || (i.error("exp: error get external resources ", s), s = {});
var c = {new_bid: Nr.get("browserId")}, u = a ? X : Y;
if (w.__protected__.isActivated()) {
i.debug("c1x: integration is activated"), w.__protected__.loadCxLibIfNeeded();
var l = o.deepExtend({}, n, s, c, {c1x_integration_version: "v2"});
return u(e, l, t, r)
}
return u(e, o.deepExtend({}, n, s, c), t, r)
})).catch((function (e) {
if (a) throw e
}))
}, X = function (e, n, t, r) {
return new Promise((function (o, i) {
return Y(e, n, t, r, o, i)
}))
}, Y = function (e, n, t, r, c, u) {
var d = null == r ? void 0 : r.interactionContext;
n = n || {};
var p = o.deepExtend({}, {protocol_version: 1}, n);
$(p), K(p), Z(p), ne(p), i.hasQueryParamByName(P) && (p[P] = i.getQueryParamByName(P)), i.waitCall("refreshUserToken", (function () {
if (t) {
var n = d ? la.executedHandlers : O;
p.executed_nodes = JSON.stringify(n)
} else {
pn.main.trackPageUnloadIfNecessary.skipLog(), ee(p), s.getCallParams(p, y.getProvider()), i.removeAffiliateToken();
var f = {url: window.location.href, tags: pn.tags, submitType: e, skipPageViewTrack: me(!!d)};
pn.main.buildPageTrackParams(p, f)
}
a.__protected__.addConsentsToParams(p), i.debug("exp: Experience initialized with params:", p), i.waitCall("refreshAccessTokenList", (function () {
i.startCall((null == d ? void 0 : d.name) || "experienceExecute");
var e, n = function (e) {
var n = e || null;
return n || (i.__protected__.cameFromFbSubscriptions() ? b.denyFbia || (n = "/xbuilder/experience/executeFbia", G()) : b.denyWeb || (n = "/xbuilder/experience/execute")), n && pn.getExperienceEndpoint(!1) + n
}(null == d ? void 0 : d.endpoint);
if (!n) return i.doneCall((null == d ? void 0 : d.name) || "experienceExecute"), t || Ie(!!d), void i.debug("execute: is denied");
if (-1 !== navigator.appVersion.indexOf("MSIE 9")) e = {
dataType: "jsonp",
url: n + "?" + o.param(p)
}; else {
var a = "?" + o.param({aid: p.aid});
e = {
type: "post",
url: n + a,
data: o.deepExtend({}, p, (null == r ? void 0 : r.overrides) || {}),
xhrFields: {withCredentials: !0}
}
}
e.success = function (e) {
i.doneCall((null == d ? void 0 : d.name) || "experienceExecute");
var n = o.deepExtend({}, p);
t || (Ie(!!d), pn.main.registerTrackUnload.skipLog()), te(e.errors), ve(e.models, n, r), null == c || c({code: 0})
}, e.error = function (e) {
b.__private__.setPolicyByRequest(e), i.doneCall((null == d ? void 0 : d.name) || "experienceExecute"), t || Ie(!!d);
var r = {
code: 503,
message: "Error: Received error when requesting API response from URL: " + n
};
i.debug(r.message), null == u || u(r)
}, l.request(e)
}))
}))
}, $ = function (e) {
var n = i.__protected__.getCookie("xbc");
n && (e.xbc = n);
var t = i.getTbcCookie();
t && t.length > 0 && (e.tbc = t);
var r = i.__protected__.getCookie("_pcer");
r && (e.edge_result = r), i.getCampaigns(e), e.custom_cookies = JSON.stringify(i.getCustomCookies())
}, K = function (e) {
var n = i.getPushListsCookie(), t = v.__protected__.getNotificationStatus();
n && n.length > 0 && (e.push_list_subscriptions = JSON.stringify(n)), t && (e.push_notification_settings = t)
}, Z = function (e) {
e.mailing_lists = JSON.stringify(v.__protected__.loadCompleteMailingLists())
}, ee = function (e) {
return [{property: "debug", parameter: "debug", skipFalse: !0}, {
property: "trackPageView",
parameter: "increment_pageview_meter"
}].forEach((function (n) {
void 0 !== pn[n.property] && (!n.skipFalse || pn[n.property]) && (e[n.parameter] = pn[n.property])
})), e
}, ne = function (e) {
var n = Nr.get("userSegments");
n && (e.previous_user_segments = JSON.stringify(n))
}, te = function (e) {
Array.isArray(e) && (e.length && i.debug("exp: composer execution has been failed with errors"), e.forEach((function (e) {
i.debug("exp: " + e.msg)
})))
}, re = function (e, n, t) {
void 0 === t && (t = !1), function (e, n) {
void 0 === n && (n = !1), (n ? da() : I).push(e)
}({
mId: e,
eId: n.eventExecutionContext.experienceId,
eV: n.eventExecutionContext.experienceVersion,
eeId: n.eventExecutionContext.executionId
}, t)
};
function oe(e, n, t, r, o) {
return {
type: B.HANDLER, eventType: n.eventType, children: [], run: function (i, a) {
var s = function (e, n) {
var t;
return n ? p(p({}, e), ((t = {})[ea] = n, t)) : e
}(n, i);
e.bind(this, s, t, r, o)(), function (e, n, t, r) {
var o = !Ki.has(e), i = Zi.has(e) && (r || 0) < 2;
n && (o || i) && !n.done && n(t)
}(n.eventType, i, n.eventExecutionContext.trackingId, a)
}
}
}
var ie = function (e) {
var n, t = e.eventParams.delayBy || {};
return t.value && ("time" === t.type ? n = {
type: "timer",
timer: t.value
} : "scroll" === t.type && (n = {type: "scrollDepth", scrollDepth: t.value, measureType: "pixels"})), n
}, ae = function (e) {
return e.eventConditions && Array.isArray(e.eventConditions) ? e.eventConditions.length : 0
}, se = function (e, n) {
return function () {
var t, r = !1;
return {
type: B.PRELOAD, eventType: n.eventType, children: [], run: function () {
!1 === r && (t = e(n), r = !0)
}, getPreloadResult: function () {
return t
}
}
}()
};
function ce(e, n) {
var t = function () {
return function (e) {
x[e.type] || (ge(p({
eventCategory: "beforeBrowserEvent",
eventLabel: "Before browser event"
}, e)), x[e.type] = !0)
}(e), q.fireCallbacksAndStopOnFirstFalse("beforeBrowserEvent", e)
};
switch (e.type) {
case ia:
case aa:
Yi(e, (function (e) {
return t() && n(e)
}), (function (e) {
return i.debug(e)
}));
break;
case"viewportExit":
d.addListener(n, {
detectExitMode: e.detectExitMode,
detectBackButtonForMobile: e.detectBackButtonForMobile,
clientDevice: e.clientDevice
}, t);
break;
case"scrollDepth":
u.addListener(n, {scrollDepth: e.scrollDepth, measureType: e.measureType}, t);
break;
case"timer":
var r = setTimeout((function () {
t() && n()
}), 1e3 * e.timer);
F.push(r);
break;
case"interaction":
m.bind(n, e.interactions, t);
break;
case"idle":
f.addListener(n, e.idleTime, t)
}
}
var ue = function (e) {
return e.type === B.HANDLER && -1 === ["continueExecution", "meterActive", "meterExpired"].indexOf(e.eventType)
};
function le(e, n, t) {
return r = !1, o = !!t, a = t ? la.linkedNodes : S, s = function (t) {
re(e.moduleId, n, o);
for (var s = a[e.moduleId].children, c = 0; c < s.length; c++) {
var u = s[c], l = a[u];
if (!1 === r || ue(l)) try {
l.run(t, s.length)
} catch (e) {
i.error("exp: error execute chain event", l, e)
}
}
r = !0, T && J("chain", o)
}, null == t || t.add(e), {
type: B.EVENT_CONDITION, children: [], run: function () {
ce(e, s)
}
};
var r, o, a, s
}
function de(e, n, t) {
return r = !1, o = t ? la.linkedNodes : S, a = function () {
for (var e = o[n + B.INNER_EVENT_CONDITION].children, t = 0; t < e.length; t++) {
var a = e[t], s = o[a];
if (!1 === r || ue(s)) try {
s.run()
} catch (e) {
i.error("exp: error execute chain event", s, e)
}
}
r = !0
}, {
type: B.INNER_EVENT_CONDITION, children: [n], run: function () {
ce(e, a)
}
};
var r, o, a
}
var pe = function (e) {
e.swgMarkupData && (i.debug("exp: swg markup data :", e.swgMarkupData), function (e) {
g.__protected__.injectMarkup(e)
}(e.swgMarkupData), e.swgMarkupData.isAccessibleForFree || g.__protected__.addLibrary()), e.swgEnabled && g.__protected__.initSwgFlow()
}, fe = function (e) {
if (e) {
for (var n = {}, t = 0; t < e.events.length; t++) {
var r = e.events[t];
try {
"experienceExecute" === r.eventType && ((n = o.deepExtend({}, r.eventExecutionContext)).result = o.deepExtend({}, e))
} catch (e) {
i.error("exp: error on execute event: ", r, e)
}
}
return n
}
i.debug("exp: no composer execution result")
}, me = function (e) {
return e && (A || 0 !== R.invokeCount)
}, ve = function (e, n, t) {
if (e) {
var r = null == t ? void 0 : t.interactionContext, a = !!r, s = r ? la.linkedNodes : S;
i.setTbcCookieFromResponse(e), i.setTacCookieFromResponse(e), i.setAppTimezoneOffsetFromResponse(e), i.setCurrentDomainFromResponse(e), me(a) || function (e) {
w.__protected__.sendPageViewEvent({
browserId: e.bid,
uid: e.uid,
cxenseCustomerPrefix: e.cxenseCustomerPrefix,
pageViewId: pn.main.fetchPageViewId(),
eventExecutionContext: fe(e.result)
})
}(e), function (e) {
v.__protected__.setVisitorId(e.bid)
}(e), function (e) {
D = e.bid
}(e), function (e) {
e.iss && (j = e.iss)
}(e), function (e) {
V = e.itemId
}(e), function (e) {
var n;
null !== (n = e.result) && void 0 !== n && n.onContentRestrictedFallback && (i.debug("exp: fire event: contentRestrictedFallback"), q.fireCallbacks("contentRestrictedFallback", void 0, "experience", !0))
}(e), i.setXbcCookieFromResponse(e);
var c = e.result, u = {};
if (!c) return void i.debug("exp: no composer execution result");
pe(c), i.debug("exp: processed experiences :", c.experiences), E = e.executionStatsContext, c.debugMessages.forEach((function (e) {
i.debug("exp: execute :", e)
}));
for (var l, d = function (e, n, r) {
for (var o = e.eventConditions, a = 0; a < o.length; a++) {
var c = o[a], u = c.moduleId, l = o[a - 1], d = !o[a + 1];
if (s[u] || (s[u] = le(c, e, null == t ? void 0 : t.interactionContext)), d) if (s[u].children.push(n), -1 !== z.indexOf(e.eventType) && "viewportExit" === c.type && !ie(e)) {
var p = N[e.eventType];
if (!p) {
i.error("exp: not found preload handler for event: ", e);
continue
}
var f = n + B.PRELOAD;
s[f] = se(p, e), l ? s[l.moduleId].children.push(f) : r.push(f)
}
l && -1 === s[l.moduleId].children.indexOf(u) && s[l.moduleId].children.push(u)
}
}, p = [], f = 0, m = 0; m < c.events.length; m++) {
var g = c.events[m];
try {
var h = g.eventType, y = g.eventModuleParams || {};
if (i.debug("exp: process event '" + h + "' (" + y.moduleId + ")"), "experienceExecute" === h && ((u = o.deepExtend({}, g.eventExecutionContext)).result = o.deepExtend({}, c), i.setUserSegments(u)), !(l = y.moduleId)) {
i.error("exp: not found moduleId for linked node event: ", g);
continue
}
var _ = M[h];
if (!_) {
i.error("exp: not found handler for event: ", g);
continue
}
s[l] = oe(_, g, n, c, t);
var b = ae(g), k = ie(g);
if (b || k) {
var C = l;
if (k) {
var I = de(k, l, r);
C = l + B.INNER_EVENT_CONDITION, s[C] = I
}
b ? -1 === p.indexOf(g.eventConditions[0].moduleId) && p.push(g.eventConditions[0].moduleId) : k && p.push(C), d(g, C, p), f++
} else p.push(l)
} catch (e) {
i.error("exp: error on execute event: ", g, e)
}
}
f <= 3 && (T = !0);
for (var P = 0; P < p.length; P++) l = p[P], s[l] && s[l].run();
window.clearTimeout(H), H = window.setTimeout((function () {
J("rootTimer" + H, !!r)
}), 2e3), U = u
}
};
function ge(e) {
k.ga.event({eventType: Co.EMIT_GA_EVENT, payload: p({aid: pn.aid}, e)})
}
function he(e, n, t, r) {
var o = ae(e), i = _e(r);
o && re(e.eventModuleParams.moduleId, e, i)
}
function ye(e) {
try {
eval.call(window, "(function () {" + e + "\n})();")
} catch (e) {
i.log("Error occurred in RunJS\n", e)
}
}
function we(e, n, t) {
void 0 === t && (t = !1);
var r = (t ? la.linkedNodes : S)[e.eventModuleParams.moduleId + B.PRELOAD];
return r && r.getPreloadResult ? r.getPreloadResult().show() : Se(e, n)
}
function _e(e) {
return !(null == e || !e.interactionContext)
}
function be(e, n, t, r) {
return we(e, (function (e) {
return pn.template.show(e)
}), _e(r))
}
function ke(e, n) {
return i.debug("exp: run preloading for:", e), Se(e, (function (e) {
return n(e)
}))
}
function Ce(e) {
return ke(e, (function (e) {
return pn.template.deferredShow(e)
}))
}
function Ie(e) {
void 0 === e && (e = !1), J("reset", e), e ? fa() : (F.forEach((function (e) {
clearTimeout(e)
})), F = [], d.removeListeners(), f.removeListeners(), u.removeListeners(), m.unbindAll(), S = {}, O = {})
}
function Se(e, n) {
var t = o.deepExtend({}, e.eventParams), r = e.eventExecutionContext.splitTests,
a = e.eventExecutionContext.activeMeters, s = e.eventParams.formNameByTermId,
c = e.eventParams.hideCompletedFields, u = function (e) {
var n;
if (!j) return null;
var t = e || {};
return {
issuerId: j,
premium: t.user && t.user.premium || null,
redemptionCandidateItemId: V || null,
creditStates: t.creditStates || null,
userId: (null === (n = t.user) || void 0 === n ? void 0 : n.uid) || null,
targetGroups: {l1: "target", l2: null}
}
}(e.eventExecutionContext), l = na(e), d = ta(e);
if (t.trackingId = e.eventExecutionContext.trackingId, t.experienceId = e.eventExecutionContext.experienceId, t.experienceExecutionId = e.eventExecutionContext.executionId, t.experienceActionId = e.eventModuleParams.moduleId, t.experienceConditions = e.eventConditions, l && (t.continuation = l, t.subscriptionId = d), t.browserId = D, t.onStartCreditRedemption = function (n) {
var t = o.deepExtend({}, n), r = "https://www.piano.io" === j,
i = e.eventExecutionContext.user && "anon" !== e.eventExecutionContext.uid;
return t.trackingId = e.eventExecutionContext.trackingId || void 0, r && i && (t.uid = e.eventExecutionContext.user.uid || void 0), pn.credit.redeem(t)
}, r && r.length > 0) {
var p = r.map((function (e) {
return e.variantId
}));
t.splitTestIds = JSON.stringify(p)
}
if (t.additionalParamNames = [], a && a.length > 0 && (t.activeMeters = JSON.stringify(a)), "showZuoraOffer" === e.eventType) {
var f = e.eventParams.ratePlanIds;
f && f.length > 0 && (t.zuoraSelectedRatePlanIds = JSON.stringify(f), t.additionalParamNames.push("zuoraSelectedRatePlanIds"))
}
if ("showNewscycleOffer" === e.eventType) {
var m = e.eventParams.ids;
m && m.length > 0 && (t.newscycleSelectedIds = JSON.stringify(m), t.additionalParamNames.push("newscycleSelectedIds", "campaignCode", "campaignGroupId"))
}
if ("showNewsletterSignup" === e.eventType) {
var v = e.eventParams.mailingListIds, g = e.eventParams.siteId;
v && v.length > 0 && (t.mailingListIds = JSON.stringify(v), t.siteId = g, t.additionalParamNames.push("mailingListIds", "siteId"))
}
return "showRecommendations" === e.eventType && (t.widgetId = e.eventParams.widgetId, t.placeholder = e.eventParams.placeholder), s && (t.formNameByTermId = JSON.stringify(s), t.hideCompletedFields = c), u && (t.affiliateState = u), i.debug("exp: show with params:", t), C.setParam("splitTestIds", t.splitTestIds), n(t)
}
function Ee() {
return function () {
}
}
return {
name: "experience",
init: function () {
if (!A && !i.__protected__.isCxenseBot()) {
A = !0;
var e = !0;
if (pn.customPreChecks && pn.customPreChecks.length) for (var n = null, t = pn.customPreChecks.length; t--;) try {
1 !== (n = pn.customPreChecks[t]()) && !0 !== n && (e = !1)
} catch (e) {
}
e && Q("auto").then((function () {
_.setTime("expExec", Math.floor(performance.now() - window.pnInitPerformance))
}))
}
},
execute: R,
executeTemplateInteraction: function (e) {
return void 0 === e && (e = {templateType: 1}), ua(e.templateType || 1, (function (n) {
return Q("manual", {template_type: e.templateType || 1}, !1, {interactionContext: n})
}))
},
_getLastExecutionResult: function () {
return U
},
registerCallback: L,
__private__: {
handlers: M,
executedNodes: I,
linkedNodes: S,
processResult: ve,
processErrors: te,
show: Se,
getTrackingEndpoint: W,
initialized: A,
registerCallback: L
},
__protected__: {sendStatisticsExecutedNodes: J}
}
}()
}), pn.experience = pn.container.resolve("experience");
var ma = function () {
var e, n, t = 0, r = document, o = !1, i = "active", a = 6e4, s = function () {
var e, n, t;
return e = function () {
return (65536 * (1 + Math.random()) | 0).toString(16).substring(1)
}, function () {
return e() + e() + "-" + e() + "-" + e() + "-" + e() + "-" + e() + e() + e()
}, t = {}, n = "__ceGUID", {
add: function (e, r, o) {
return e[n] = void 0, e[n] || (e[n] = "ifvisible.object.event.identifier"), t[e[n]] || (t[e[n]] = {}), t[e[n]][r] || (t[e[n]][r] = []), t[e[n]][r].push(o)
}, remove: function (e, r, o) {
var i, a, s, c, u;
if (o) {
if (e[n] && t[e[n]] && t[e[n]][r]) for (a = s = 0, c = (u = t[e[n]][r]).length; s < c; a = ++s) if ((i = u[a]) === o) return t[e[n]][r].splice(a, 1), i
} else if (e[n] && t[e[n]] && t[e[n]][r]) return delete t[e[n]][r]
}, fire: function (e, r, o) {
var i, a, s, c, u;
if (e[n] && t[e[n]] && t[e[n]][r]) {
for (u = [], a = 0, s = (c = t[e[n]][r]).length; a < s; a++) i = c[a], u.push(i(o || {}));
return u
}
}
}
}(), c = function () {
var e;
return function (n, t, r) {
return e || (e = n.addEventListener ? function (e, n, t) {
return e.addEventListener(n, t.bind(ma), !1)
} : n.attachEvent ? function (e, n, t) {
return e.attachEvent("on" + n, t, !1)
} : function (e, n, t) {
return e["on" + n] = t
}), e(n, t, r)
}
}(), u = function () {
var e, n = r.createElement("div"), t = n.getElementsByTagName("i"), o = 3;
for (e = function () {
return n.innerHTML = "\x3c!--[if gt IE " + ++o + "]> 4 ? o : void 0
}();
function l() {
var s;
return !!o || (e ? c(r, n, (function () {
return r.hidden ? p() : d()
}), !1) : (s = "blur", u && u < 9 && (s = "focusout"), c(window, s, (function () {
return ma.blur()
})), c(window, "focus", (function () {
return ma.focus()
}))), o = !0, function () {
var e, n;
return (n = function () {
return clearTimeout(e), "active" !== i && m(), t = +new Date, e = setTimeout((function () {
if ("active" === i) return f()
}), a)
})(), c(r, "mousemove", n), c(r, "mouseup", n), c(r, "keyup", n), c(r, "touchstart", n), c(window, "scroll", n), c(window, "resize", n), d(n), m(n)
}())
}
void 0 !== r.hidden ? (e = "hidden", n = "visibilitychange") : void 0 !== r.mozHidden ? (e = "mozHidden", n = "mozvisibilitychange") : void 0 !== r.msHidden ? (e = "msHidden", n = "msvisibilitychange") : void 0 !== r.webkitHidden && (e = "webkitHidden", n = "webkitvisibilitychange");
function d(e) {
return "function" == typeof e ? v("focus", (function (n) {
e(n)
})) : (i = "active", s.fire(ma, "focus"), s.fire(ma, "wakeup"), s.fire(ma, "statusChanged", {status: i})), ma
}
function p(e) {
return "function" == typeof e ? v("blur", (function (n) {
e(n)
})) : (i = "hidden", s.fire(ma, "blur"), s.fire(ma, "idle"), s.fire(ma, "statusChanged", {status: i})), ma
}
function f(e) {
return "function" == typeof e ? v("idle", (function (n) {
e(n)
})) : (i = "idle", s.fire(ma, "idle"), s.fire(ma, "statusChanged", {status: i})), ma
}
function m(e) {
return "function" == typeof e ? v("wakeup", (function (n) {
return e(n)
})) : (i = "active", s.fire(ma, "wakeup"), s.fire(ma, "statusChanged", {status: i})), ma
}
function v(e, n) {
return l(), s.add(ma, e, n), ma
}
return {
name: "ifvisible", setIdleDuration: function (e) {
return a = 1e3 * e
}, getIdleDuration: function () {
return a
}, getIdleInfo: function () {
var e, n;
return e = +new Date, n = {}, "idle" === i ? (n.isIdle = !0, n.idleFor = e - t, n.timeLeft = 0, n.timeLeftPer = 100) : (n.isIdle = !1, n.idleFor = e - t, n.timeLeft = t + a - e, n.timeLeftPer = (100 - 100 * n.timeLeft / a).toFixed(2)), n
}, wakeup: m, idle: f, focus: d, blur: p, on: v, off: function (e, n) {
return l(), s.remove(ma, e, n), ma
}, onEvery: function (e, n) {
var t, r = !1;
return l(), n && (t = setInterval((function () {
if ("active" === i && !r) return n()
}), 1e3 * e)), {
stop: function () {
return clearInterval(t)
}, pause: function () {
return r = !0
}, resume: function () {
return r = !1
}, code: t, callback: n
}
}, now: function (e) {
return l(), i === (e || "active")
}
}
}();
pn.container.register("ifvisible", {useValue: ma}), pn.ifvisible = pn.container.resolve("ifvisible");
var va = function () {
var e, n = pn.container.resolve("jqUtils"), t = pn.container.resolve("ifvisible"), r = 0, o = [], i = 60,
a = !0, s = function () {
m();
var e = o[o.length - 1];
void 0 !== e && void 0 === e.stopTime || o.push({startTime: new Date, startMinute: r, stopTime: void 0})
}, c = function () {
if (0 !== o.length && !a) {
if (d()) return void f();
var e = o[o.length - 1];
void 0 === e.stopTime && (e.stopTime = new Date, e.stopMinute = r)
}
}, u = function (e, n, t, r) {
var o = Math.abs(e.getTime() - n.getTime()), i = t - r;
return o > 6e4 * (i + 10) && (o = 6e4 * i), o
}, l = function (e) {
var n = parseFloat(e);
if (isNaN(n)) throw {
name: "InvalidDurationException",
message: "An invalid duration time (" + e + ") was provided."
};
t.setIdleDuration(n), i = n
}, d = function () {
return !!(e = n.filter("video,audio", (function (e) {
return !e.paused
}))).length
}, p = function () {
setTimeout((function () {
c()
}), 15e3)
}, f = function () {
!e || e.forEach((function (e) {
n.on(e, "pause", p)
}))
}, m = function () {
!e || e.forEach((function (e) {
n.off(e, "pause", p)
}))
};
return {
name: "activetimer", setIdleDurationInSeconds: l, getActiveTimeInSeconds: function () {
for (var e = 0, n = 0; n < o.length; n++) {
var t = o[n].startTime, i = o[n].stopTime, a = o[n].startMinute, s = o[n].stopMinute;
void 0 === i && (i = new Date, s = r), e += u(i, t, s, a)
}
return Math.floor(e / 1e3)
}, getTotalTimeInSeconds: function () {
var e = 0, n = o[0];
if (void 0 !== n) {
var t = n.startTime, i = n.startMinute, a = new Date;
e = u(a, t, r, i)
}
return Math.floor(e / 1e3)
}, resetRecordedTime: function () {
o = [], s()
}, startTimer: s, stopTimer: c, initialize: function (e) {
e && l(e), t.on("blur", (function () {
a = !1, c()
})), t.on("focus", (function () {
a = !0, s()
})), t.on("idle", (function () {
i > 0 && (a = !1, c())
})), t.on("wakeup", (function () {
i > 0 && (a = !0, s())
})), s(), setInterval((function () {
r++
}), 6e4)
}
}
}();
pn.container.register("activetimer", {useValue: va}), pn.activetimer = pn.container.resolve("activetimer");
var ga = function () {
var e, n = {}, t = [], r = !1,
o = {RENDERED_FOR_CURRENT_UNIT: 1, DID_NOT_RENDER_BUT_VIEWED: 2, RECIEVED_FROM_GET_SLOTS: 3};
function i(e) {
e && (c(), r = !1), function () {
if (r) return !1;
r = !0;
try {
var e = window.googletag = window.googletag || {};
return e.cmd = e.cmd || [], e.cmd.push((function () {
e.pubads().addEventListener("slotRenderEnded", d), e.pubads().addEventListener("impressionViewable", p), e.companionAds().addEventListener("slotRenderEnded", d), e.companionAds().addEventListener("impressionViewable", p)
})), e.apiReady && e.cmd.push((function () {
u(e.pubads().getSlots()), u(e.companionAds().getSlots())
})), !0
} catch (e) {
return m(e), !1
}
}()
}
function a(n, t) {
"function" == typeof e && e(n, t)
}
function s(e) {
return e && void 0 !== n[e] && null !== n[e] && n.hasOwnProperty(e)
}
function c() {
n = {}, t = []
}
function u(e) {
for (var n = 0; n < e.length; n++) {
var t = e[n];
d({eventSource: o.RECIEVED_FROM_GET_SLOTS, slot: t})
}
}
function l(e) {
var n;
try {
var t = e.serviceName, r = e.slot;
if (!t) {
var o = e.slot.getServices();
o && o.length && (t = o[0].getName())
}
var i = r.getResponseInformation() || {}, a = r.getSlotId ? r.getSlotId() : {},
s = r.getSlotElementId ? r.getSlotElementId() : a.getDomId ? a.getDomId() : null;
n = {
companion: !!t && "companion_ads" === t,
adUnit: r.getAdUnitPath ? r.getAdUnitPath() : 0,
isEmpty: e.isEmpty,
elementId: s,
advertiserId: e.advertiserId || i.advertiserId,
campaignId: e.campaignId || i.campaignId,
lineItemId: e.lineItemId || i.lineItemId,
creativeId: e.creativeId || i.creativeId,
eventSource: e.eventSource || null,
size: e.size && e.size.slice(0, 2) || null,
viewed: !1,
position: null
};
var c = document.getElementById(s);
if (s && c && (n.position = {
top: c.offsetTop,
left: c.offsetLeft
}, void 0 === e.isEmpty && (n.isEmpty = c.offsetWidth <= 0 && c.offsetHeight <= 0, !n.isEmpty && !n.size))) {
var u = r.getSizes();
u && u.length && (n.size = "object" == _typeof(u[0]) ? [u[0].getWidth(), u[0].getHeight()] : u[0])
}
} catch (e) {
m(e)
}
return n
}
function d(e) {
e.eventSource = e.eventSource || o.RENDERED_FOR_CURRENT_UNIT;
var r = l(e), i = f(e.slot);
!i || (n[i] ? r.viewed = n[i].viewed : t.push(i), n[i] = r, a(r, i))
}
function p(e) {
var r = f(e.slot);
if (r) {
var i = n[r] || l(e);
s(r) || (n[r] = i, t.push(r)), void 0 === i.companion && (i.companion = "companion_ads" === e.serviceName), (!i.eventSource || i.eventSource > o.DID_NOT_RENDER_BUT_VIEWED) && (i.eventSource = o.DID_NOT_RENDER_BUT_VIEWED), i.viewed = !0, a(i, r)
}
}
function f(e) {
try {
var n = e.getSlotId ? e.getSlotId() : {},
t = e.getSlotElementId ? e.getSlotElementId() : n.getDomId ? n.getDomId() : null,
r = e.getAdUnitPath ? e.getAdUnitPath() : 0;
return [t, n.getId ? n.getId() : 0, r].join(":")
} catch (e) {
m(e)
}
}
function m(e) {
pn && pn.util && pn.util.error && pn.util.error("DFP module error: ", e)
}
return i(), {
name: "doubleClickForPublisher", initialize: i, setCustomHandler: function (n) {
e = n
}, getAds: function (e) {
var r = [], o = 0, i = t.length;
e && function (e) {
return "number" == typeof e && isFinite(e) && Math.floor(e) === e
}(e) && e > 0 && e < i && (o = i - e);
for (var a = o; a < i; a++) {
var c = t[a];
!s(c) || r.push(n[c])
}
return r
}, resetAds: c
}
}();
pn.container.register("doubleClickForPublisher", {useValue: ga}), pn.doubleClickForPublisher = pn.container.resolve("doubleClickForPublisher");
var ha = function () {
var e, n, t, r, o, i, a, s, c = pn.container.resolve("postmessage"), u = pn.container.resolve("util"),
l = "https://js.braintreegateway.com/web/3.79.1/js/client.min.js",
d = "https://js.braintreegateway.com/web/3.79.1/js/apple-pay.min.js",
p = "https://js.braintreegateway.com/web/3.79.1/js/data-collector.min.js", f = "";
c.subscribe("loaded", (function () {
m()
})), c.subscribe("startCheckout", (function () {
m()
})), c.subscribe("applePayBtClientToken", (function (e) {
y(e.params.clientToken)
})), c.subscribe("applePayBtCheckoutFlowProperties", (function (e) {
i = e.params.requestEmail, a = e.params.requestPostalAddress
})), c.subscribe("applyTaxFailed", (function (n) {
e.abort()
})), c.subscribe("checkApplePayBtInstance", (function (e) {
n && c.broadcast("applePayInit", {})
})), c.subscribe("applyTaxCompleted", (function (e) {
h(e.params)
})), c.subscribe("applePayBtBeginSession", (function (t) {
var r = {}, s = t.params;
s.resourceTitle && (r = s), s.termId && (f = s.termId || "");
var u = {currencyCode: s.currencyCode, total: {label: s.resourceTitle, amount: s.chargeAmount}};
v(u);
try {
o = n.createPaymentRequest(u)
} catch (e) {
c.broadcast("payment-error", {errorCode: 101})
}
(e = new window.ApplePaySession(2, o)).onvalidatemerchant = function (t) {
n.performValidation({
validationURL: t.validationURL,
displayName: s.resourceTitle || r.resourceTitle
}, (function (n, t) {
if (n) return e.abort(), void c.broadcast("payment-error", {errorCode: 102});
e.completeMerchantValidation(t)
}))
}, e.onpaymentauthorized = function (t) {
n.tokenize({token: t.payment.token}, (function (n, r) {
if (n) return c.broadcast("payment-error", {errorCode: 103}), void e.completePayment(window.ApplePaySession.STATUS_FAILURE);
var o = {nonce: r.nonce, cardType: r.details.cardType};
i || a ? g(t, o) : h(o)
}))
}, e.begin()
}));
var m = function () {
var e = u.__protected__.isApplePayAllowed();
c.broadcast("EVENT_APPLE_PAY_CAN_MAKE_PAYMENTS", {canMakePayments: e})
}, v = function (e) {
i && (e.requiredShippingContactFields = ["email"]), a && (e.requiredBillingContactFields = ["postalAddress"])
}, g = function (e, n) {
var t = e.payment.billingContact, r = {
countryCode: t.countryCode ? t.countryCode.toUpperCase() : t.countryCode,
zipCode: t.postalCode,
billingZipCode: t.postalCode,
nonce: n.nonce,
cardType: n.cardType
};
e.payment.shippingContact && (r.user = {email: e.payment.shippingContact.emailAddress}), c.broadcast("applePayPaymentAuthorized" + f, r)
}, h = function (n) {
e.completePayment(window.ApplePaySession.STATUS_SUCCESS), n.deviceData = r.deviceData, c.broadcast("applePayNonce" + f, n)
}, y = function (e) {
s = e, w()
}, w = function () {
C() || k(l, (function () {
!0, _()
}))
}, _ = function () {
I() || k(p, (function () {
!0, b()
}))
}, b = function () {
S() || k(d, (function () {
!0, window.braintree.client.create({authorization: s}).then((function (e) {
return t = e, window.braintree.dataCollector.create({client: e, kount: !0, paypal: !0})
})).then((function (e) {
return r = e, t
})).then((function (e) {
window.braintree.applePay.create({client: e}, (function (e, t) {
e ? c.broadcast("payment-error", {errorCode: 101}) : (n = t, c.broadcast("applePayInit", {}))
}))
})).catch((function (e) {
if (e) return c.broadcast("payment-error", {errorCode: 100}), void u.error("[TP] Client error: " + e.message)
}))
}))
}, k = function (e, n) {
u.addScript(e, n)
}, C = function () {
return u.isScriptAdded(l)
}, I = function () {
return u.isScriptAdded(p)
}, S = function () {
return u.isScriptAdded(d)
};
return {name: "applePay"}
}();
pn.container.register("applePay", {useValue: ha}), pn.applePay = pn.container.resolve("applePay");
var ya = function () {
var e = pn.container.resolve("postmessage"), n = pn.container.resolve("util"), t = "",
r = {environment: "", billingRequestFlowId: ""}, o = {
customer: "",
mandate: "",
bank_account_ending: "",
bank_account_holder: "",
bank_name: "",
currency: ""
}, i = !1;
e.subscribe("LOAD_GOCARDLESS_DROPIN", (function (n) {
t = n.sender, i ? e.send("GOCARDLESS_DROPIN_LOADED", null, t) : s("https://pay.gocardless.com/billing/static/dropin/v2/initialise.js", (function () {
i = !0, e.send("GOCARDLESS_DROPIN_LOADED", null, t)
}))
})), e.subscribe("GOCARDLESS_DROPIN_MANDATE_CREATION_INIT", (function (e) {
r = e.params, i && a()
}));
var a = function () {
window.GoCardlessDropin.create({
billingRequestFlowID: r.billingRequestFlowId,
environment: r.environment,
onSuccess: function (n) {
var r = n.links, i = r.customer, a = r.mandate_request_mandate,
s = n.resources.customer_bank_account, c = s.account_number_ending, u = s.account_holder_name,
l = s.bank_name, d = n.mandate_request.currency;
o = {
customer: i,
mandate: a,
bank_account_ending: c,
bank_account_holder: u,
bank_name: l,
currency: d
}, null, e.send("GOCARDLESS_DROPIN_MANDATE_CREATION_COMPLETE", o, t)
},
onExit: function (n) {
null, n ? e.send("payment-error", {message: n}, t) : e.send("GOCARDLESS_DROPIN_ENABLE_PLUGIN", null, t)
}
}).open()
}, s = function (e, t) {
n.addScript(e, t)
};
return {name: "goCardlessDropin"}
}();
pn.container.register("goCardlessDropin", {useValue: ya}), pn.goCardlessDropin = pn.container.resolve("goCardlessDropin");
var wa = function () {
var e, n, t, r = pn.container.resolve("postmessage"), o = pn.container.resolve("util"), i = !1;
return {
name: "applePayIntegrationService", initialize: function () {
var a = function () {
i = o.__protected__.isApplePayAllowed(), r.broadcast("EVENT_APPLE_PAY_CAN_MAKE_PAYMENTS", {canMakePayments: i})
};
r.subscribe("provider-component-initiated", (function () {
i && r.broadcast("apple-pay-init", {})
})), r.subscribe("initPwApplePay", (function () {
a()
})), r.subscribe("startCheckout", (function () {
a()
})), r.subscribe("pay-session-received", (function (e) {
try {
n.completeMerchantValidation(e.params.applePaySession)
} catch (e) {
r.broadcast("payment-error", {errorCode: 111, errors: e})
}
})), r.subscribe("apple-pay-complete-payment", (function (e) {
!function (e) {
return !t || t === e
}(e.params.termId) || n.completePayment(e.params.status, e.params.errors)
})), r.subscribe("start-purchase", (function (o) {
t = o.params.termId || "", e = o.params.resourceName, n = new window.ApplePaySession(3, function (e) {
return {
countryCode: e.params.countryCode,
currencyCode: e.params.currencyCode,
supportedNetworks: ["visa", "masterCard", "amex", "discover"],
merchantCapabilities: ["supports3DS"],
requiredShippingContactFields: e.params.requiredShippingContactFields || [],
requiredBillingContactFields: e.params.requiredBillingContactFields || [],
total: {label: e.params.resourceName, amount: e.params.chargeAmount}
}
}(o)), n.onvalidatemerchant = function (n) {
!function (e, n) {
var o = {
validationUrl: e,
displayedCaption: n,
userToken: null,
userProvider: null,
userRef: null,
janrainCaptureToken: null,
domainName: window.location.hostname,
aid: null,
termId: t,
merchantIdentifier: tp.applePayMerchantId
};
r.broadcast("apple-pay-pay-session-request", o)
}(n.validationURL, e)
}, n.onpaymentauthorized = function (e) {
try {
r.broadcast("apple-pay-payment-authorized", {
paymentData: e.payment,
termId: t,
merchantIdentifier: tp.applePayMerchantId
})
} catch (e) {
r.broadcast("payment-error", {errorCode: 110, error: e})
}
};
try {
n.begin()
} catch (e) {
r.broadcast("payment-error", {errorCode: 112, error: e, termId: t})
}
})), r.subscribe("abort-apple-pay-session", (function () {
!function () {
try {
n.abort()
} catch (e) {
o.error(e)
}
}()
}))
}, __protected__: {
applePayCanMakePaymentsWithActiveCard: function () {
var e = {
then: function (e) {
return e(null)
}, catch: function () {
}
};
return pn.applePayMerchantId && o.__protected__.isApplePayAllowed() && pn.applePayMerchantId ? window.ApplePaySession.canMakePaymentsWithActiveCard(pn.applePayMerchantId) : e
}
}
}
}();
pn.container.register("applePayIntegrationService", {useValue: wa}), pn.applePayIntegrationService = pn.container.resolve("applePayIntegrationService");
var _a = function () {
var e, n, t = pn.container.resolve("postmessage"), r = pn.container.resolve("util"),
o = pn.container.resolve("ajax"), i = "datatrans-applepay-button", a = !1, s = null, c = null, u = !1,
l = function (n) {
e = n.sender, v().then(g).then(h)
}, d = function (n) {
t.send("datatrans-applepay-service-error", n, e)
}, p = function (e) {
n = e.params, v().then(g).then(f).catch((function () {
d({eventName: "init-error", errorCode: 110})
}))
}, f = function () {
PaymentButton.init(n.applePayConfig)
}, m = function () {
var e = document.getElementById(i);
null !== e && null !== e.firstElementChild ? e.firstElementChild.click() : d({
eventName: "system-error",
errorCode: 112
})
}, v = function () {
return null !== c || (c = new Promise((function (e) {
o.request({
url: tp.getApiEndpoint() + "/anon/datatrans/applepay/config",
data: {aid: tp.aid},
dataType: "jsonp",
jsonpCallback: "jsonpCallback",
success: function (n) {
var t = n.config;
e(t.url)
}
})
}))), c
}, g = function (e) {
if (null !== s) return s;
var n = "datatrans-apple-pay";
return document.getElementById(n) ? void 0 : s = new Promise((function (t) {
var r = document.createElement("script");
r.addEventListener("load", (function () {
return t(null)
})), r.src = e, r.id = n, document.body.appendChild(r)
}))
}, h = function () {
u || (PaymentButton.on("init", y), PaymentButton.on("create", w), PaymentButton.on("token", _), PaymentButton.on("abort", (function () {
d({eventName: "abort", errorCode: 0})
})), PaymentButton.on("unsupported", (function () {
d({eventName: "unsupported", errorCode: 113})
})), PaymentButton.on("error", (function (e) {
e && (r.error("datatransApplePayIntegrationService. apple pay button error: " + e), d({
eventName: "error",
errorCode: 112
}))
})), u = !0)
}, y = function () {
var e = b();
PaymentButton.create(e, n.paymentConfig).catch((function () {
d({eventName: "create-error", errorCode: 111})
}))
}, w = function () {
r.log("datatransApplePayIntegrationService paymentButtonOnCreate"), t.send("datatrans-applepay-service-ready", null, e)
}, _ = function (n) {
r.log("datatransApplePayIntegrationService paymentButtonOnToken"), t.send("datatrans-applepay-service-token", n.token.details.token, e)
}, b = function () {
var e = document.getElementById(i);
return null === e && ((e = document.createElement("div")).setAttribute("id", i), e.style.display = "none", document.body.appendChild(e)), e.innerHTML = "", e
};
return {
name: "datatransApplePayIntegrationService", initialize: function () {
!r.__protected__.isApplePayAllowed() && a || (a = !0, t.subscribe("datatrans-applepay-loaded", l), t.subscribe("datatrans-applepay-checkout-initiate-purchase", p), t.subscribe("datatrans-applepay-make-purchase", m))
}
}
}();
pn.container.register("datatransApplePayIntegrationService", {useValue: _a}), pn.datatransApplePayIntegrationService = pn.container.resolve("datatransApplePayIntegrationService");
var ba = function () {
var e, n = pn.container.resolve("postmessage"), t = pn.container.resolve("util"), r = null, o = null, i = !1,
a = "";
n.subscribe("stripe-applepay-initialized", (function () {
s()
})), n.subscribe("stripe-applepay-initiate-purchase", (function (e) {
s().then((function () {
var n = e.params.apiKey, t = e.params.accountId;
null === r && (r = t ? window.Stripe(n, {stripeAccount: t}) : window.Stripe(n));
var o = e.params.paymentRequestPayload;
return r.paymentRequest(o)
})).then((function (e) {
return o = e, e.canMakePayment()
})).then((function (e) {
i = e && e.applePay, n.broadcast("stripe-applepay-initiate-purchase-complete", {canMakePayment: i}), i && (o.on("cancel", (function () {
n.broadcast("stripe-applepay-start-purchase-complete" + a, {status: "fail"})
})), o.on("paymentmethod", (function (e) {
var t = e.paymentMethod.billing_details.address,
r = {countryCode: t.country, zipCode: t.postal_code, billingZipCode: t.postal_code},
o = e.paymentMethod.id;
n.broadcast("stripe-applepay-start-purchase-complete" + a, {
status: "success",
paymentMethodId: o,
payerEmail: e.payerEmail,
billingAddress: r
}), e.complete("success")
})))
})).catch((function (e) {
t.error(e), n.broadcast("stripe-applepay-initiate-purchase-complete", {canMakePayment: !1})
}))
})), n.subscribe("stripe-applepay-start-purchase", (function (e) {
a = e.params.termId || "";
var n = e.params.paymentRequestPayload;
o.update(n), o.show()
})), n.subscribe("stripe-applepay-abort-request", (function () {
o && o.abort(), n.broadcast("stripe-applepay-reopen-request")
}));
var s = function () {
if (null != e) return e;
if (!document.getElementById("stripe.js")) {
var n = document.createElement("script");
return n.src = "https://js.stripe.com/v3/", n.id = "stripe.js", document.body.appendChild(n), e = new Promise((function (e) {
n.onload = function () {
e(null)
}
}))
}
};
return {name: "stripeApplePayIntegrationService"}
}();
pn.container.register("stripeApplePayIntegrationService", {useValue: ba}), pn.stripeApplePayIntegrationService = pn.container.resolve("stripeApplePayIntegrationService");
var ka = function () {
var e = pn.container.resolve("postmessage"), n = pn.container.resolve("util");
e.subscribe("obi-handle-3ds-challenge", (function (e) {
var r = e.params;
if (window.obick) t(r); else {
if (-1 === ["https://jsl.qat.obi.aol.com/obipmservice/obick.umd.js", "https://jsl.prod.obi.aol.com/obipmservice/obick.umd.js"].indexOf(r.obickUrl)) return void n.error("Untrusted obickUrl detected: " + r.obickUrl);
var o = document.createElement("script");
o.src = r.obickUrl, o.id = "obick.js", document.body.appendChild(o), o.onload = function () {
n.log("".concat(o.id, " onload")), t(r)
}
}
}));
var t = function (t) {
if (t.stepUpUrl && 0 !== t.stepUpUrl.indexOf("http")) n.error("There is no link in params.stepUpUrl for OBI"); else {
var r = {stepUpUrl: t.stepUpUrl, jwt: t.jwt, transactionId: t.transactionId, zIndex: t.zIndex};
window.obick.handle3dsChallenge(r).then((function (t) {
n.debug(t), e.broadcast("obi-3ds-challenge-complete", {
threeDSTransactionId: t.threeDSTransactionId,
challengeStatus: t.challengeStatus
})
})).catch((function (t) {
n.error(t), e.broadcast("obi-3ds-challenge-complete", {error: "challenge-error", payload: t})
}))
}
};
return {name: "obi3DSChallenge"}
}();
pn.container.register("obi3DSChallenge", {useValue: ka}), pn.obi3DSChallenge = pn.container.resolve("obi3DSChallenge");
var Ca = function () {
var e = pn.container.resolve("jqUtils"), n = pn.container.resolve("util"), t = pn.container.resolve("api"),
r = pn.container.resolve("user"), o = pn.container.resolve("pianoId"),
i = {displayMode: "inline", containerSelector: "body", loginSuccess: p}, a = "reader_id", s = function () {
return "/" + pn.aid + "/execution/amp"
}, c = function () {
return s() + "/login"
}, u = function () {
window.location.href = n.getQueryParamByName("return") + "#success=true"
};
var l = function (e) {
return /^\w+$/i.test(e)
}, d = function (e) {
var r = {};
if (r.reader_id = n.getQueryParamByName(a), r.reader_id) {
var o = pn.getExperienceEndpoint(!1);
t.callApi(s() + "/logout", r, e, o, !1)
} else n.log("reader_id cannot be empty")
};
function p(e, r) {
var o = e || {};
if (o.reader_id || (o.reader_id = n.getQueryParamByName(a)), o.reader_id) {
var i = pn.getExperienceEndpoint(!1);
t.callApi(c(), o, r, i, !1)
} else n.log("reader_id cannot be empty")
}
return {
name: "amp", showLogin: function (t) {
t = t || {};
var a = r.getProvider();
if (a.getName() === o.getName()) {
var s;
s = t.loginSuccess && e.isFunction(t.loginSuccess) ? t.loginSuccess : u;
var c = function () {
p({}, s)
}, l = Object.assign({}, i, t);
r.isUserValid() ? c() : (l.loginSuccess = c, o.show(l))
} else n.log("Current user provider" + a.name + " is not allowed for amp")
}, logout: function (n) {
n = e.isFunction(n) ? n : u, r.getProvider().getName() === o.getName() ? o.logout((function () {
d(n)
})) : d(n)
}, login: function (t) {
var i = r.getProvider().getName();
i === o.getName() && (t = t ? e.deepExtend({}, t, {userProvider: i}) : {userProvider: i});
var a = {user_transient: !0, user_provider: "publisher_user"};
if (t && t.readerId && (a.reader_id = t.readerId), t && t.userToken && (a.user_token = t.userToken), t && t.userProvider && (a.user_provider = t.userProvider, a.user_transient = !1), !function (t) {
if (t && t.userState && e.isPlainObject(t.userState)) {
var r = Object.keys(t.userState);
if (r.filter(l).length !== r.length) return n.error("user_state accept only contain letters, numbers and underscore"), !1
}
return !0
}(t)) return !1;
t && t.userState && (a.user_state = JSON.stringify(t.userState));
p(a, (function (n) {
0 === n.code ? t.loginSuccess && e.isFunction(t.loginSuccess) && t.loginSuccess() : t.loginFail && e.isFunction(t.loginFail) && t.loginFail()
}))
}
}
}();
pn.container.register("amp", {useValue: Ca}), pn.amp = pn.container.resolve("amp");
var Ia = function () {
var e, n = pn.container.resolve("postmessage"), t = [{
resourceRegExp: new RegExp("/checkout/offer/show"),
label: "showOffer"
}, {
resourceRegExp: new RegExp("tinypass.min.js$"),
label: "tinypassMinJS"
}, {resourceRegExp: new RegExp("/xbuilder/experience/execute"), label: "experienceExecute"}], r = !1, o = [],
i = "EVENT_TP_PERFORMANCE_DATA";
function a(e) {
e.forEach((function (e) {
!function (e) {
!function (e) {
return t.some((function (n) {
return e.name.match(n.resourceRegExp)
}))
}(e) || function (e) {
if (!s()) return void o.push(e);
o.push(e), c()
}(e)
}(e)
}))
}
function s() {
return r && e
}
function c() {
!s() || (o.forEach((function (t) {
n.send(i, {entry: t}, e)
})), o = [])
}
return function () {
if (window.performance && window.PerformanceObserver && "function" == typeof performance.getEntries) {
var t = window.PerformanceObserver.prototype.observe;
window.PerformanceObserver.prototype.observe = function () {
for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];
try {
t.apply(this, e)
} catch (e) {
}
}, n.subscribe("EVENT_LOGGER_READY", (function (n) {
e = n.sender, r = !0, c()
})), a(performance.getEntries()), new PerformanceObserver((function (e) {
a(e.getEntries())
})).observe({entryTypes: ["measure", "resource"]})
}
}(), {name: "performanceMetrics"}
}();
pn.container.register("performanceMetrics", {useValue: Ia}), pn.performanceMetrics = pn.container.resolve("performanceMetrics");
var Sa = function () {
var e = pn.container.resolve("api"), n = pn.container.resolve("pianoId");
return {
name: "doubleOptIn", check: function () {
!pn.user.isUserValid() || new Promise((function (n) {
e.callApi("/email/confirmation/check", {}, (function (e) {
n(e)
}))
})).then((function (e) {
e && !1 === e.data && n.showEmailConfirmationRequired()
}))
}
}
}();
pn.container.register("doubleOptIn", {useValue: Sa}), pn.doubleOptIn = pn.container.resolve("doubleOptIn");
var Ea = function () {
var e = pn.container.resolve("api"), n = pn.container.resolve("postmessage"), t = pn.container.resolve("util"),
r = t.debounce((function () {
o().then(i, a)
}), 1500), o = function () {
return new Promise((function (n, t) {
var r = {aid: pn.aid};
e.callApi("/externalVerification/synchronizeSubscriptions", r, (function (e) {
e && e.data && n(e.data), t(e.message)
}))
}))
}, i = function (e) {
n.broadcast("NEWSCYCLE_HAS_BEEN_SYNCHRONIZED_SUCCESS", {data: e})
}, a = function (e) {
t.error("newscycle module: sync request failed with error: " + e)
};
return {name: "newscycle", syncSubscriptions: r}
}();
pn.container.register("newscycle", {useValue: Ea}), pn.newscycle = pn.container.resolve("newscycle");
var Ta = function () {
var e = pn.container.resolve("postmessage"), n = {enabled: !1, captcha3SiteKey: "", aid: ""};
function t() {
window.grecaptcha.ready(r)
}
var r = function () {
var e = document.createElement("div");
e.id = "tp-recaptcha", document.body.appendChild(e), window.grecaptcha.render("tp-recaptcha", {
sitekey: n.captcha3SiteKey,
size: "invisible",
"error-callback": function () {
e.style.display = "none"
}
})
}, o = function () {
window.onCaptchaV3Load = t;
var e = document.createElement("script");
e.src = "https://www.google.com/recaptcha/api.js?onload=onCaptchaV3Load&render=explicit", e.type = "text/javascript", e.async = !0, e.defer = !0, document.head.appendChild(e)
}, i = function () {
e.subscribe("set-captcha-v3-config", (function (e) {
!function (e) {
e && e.enabled && (n = e, o())
}(e.params.config)
})), e.subscribe("get-captcha-v3-config", (function () {
e.broadcast("get-captcha-v3-config-value", {config: n})
}))
};
e.subscribe("get-captcha-v3-token", (function (e) {
window.grecaptcha.ready((function () {
return a(e.params.action)
}))
}));
var a = function (n) {
window.grecaptcha.execute({action: n}).then((function (n) {
e.broadcast("captcha-v3-token", {token: n})
})).catch((function () {
e.broadcast("captcha-v3-token", {token: ""})
}))
};
return {
name: "captchaV3", addCaptchaV3: function () {
i()
}
}
}();
pn.container.register("captchaV3", {useValue: Ta}), pn.captchaV3 = pn.container.resolve("captchaV3");
pn.container.register("tinypassErrorHandler", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("postmessage"), t = e.resolve("api"), r = e.resolve("util"), o = e.resolve("analytics"),
i = e.resolve("versionService"), a = "EVENT_TP_ERROR_HANDLER", s = "sdk", c = [], u = !0,
l = function (e) {
if (h(e) && !v(c, e)) {
e.tags || (e.tags = ["unknown"]), e.aid = pn.aid, e.v = i.getTinypassVersion();
var n = {details: e};
c.push(n)
}
};
var d = function (e) {
var n = e.params;
Array.isArray(n) && n.forEach((function (e) {
e.tags.push(pn.aid), l(e)
}))
};
function p(e) {
var n, t;
if (e.message.toLowerCase().indexOf("script error") > -1) l({
message: "Probably that is Piano error.",
url: window.location.href,
tags: [s]
}); else {
var r = null == e ? void 0 : e.error;
if (g(null == r ? void 0 : r.stack)) return !1;
l({
stack: null !== (n = null == r ? void 0 : r.stack) && void 0 !== n ? n : "n/a",
message: null !== (t = null == r ? void 0 : r.message) && void 0 !== t ? t : "n/a",
userAgent: navigator.userAgent,
tags: [s]
})
}
return !1
}
var f = function () {
setInterval((function () {
m(), u = !1
}), 15e3)
}, m = function () {
var e = c.filter((function (e) {
return !e.send
}));
if (0 !== e.length) {
var n = e.map((function (e) {
return e.details
})), r = {type: "console-error-message", srcType: "ts", log_message: JSON.stringify(n)};
o.log.event({
eventType: wo.LOG_BEACON_REQUEST,
payload: {url: t.getEndpoint() + "/anon/error/log", params: r}
}), e.forEach((function (e) {
return e.send = !0
}))
}
}, v = function (e, n) {
var t = e.map((function (e) {
return JSON.stringify(e.details)
})), r = JSON.stringify(n);
return -1 !== t.indexOf(r)
}, g = function (e) {
return -1 === (null == e ? void 0 : e.indexOf("tinypass"))
}, h = function (e) {
var n = !!r.__protected__.getLocalStorageItem("tinypassErrorHandlerTestMode");
return e.tags.indexOf("wgt_err") >= 0 || n || 0 === y(0, 1e3)
}, y = function (e, n) {
var t = e - .5 + Math.random() * (n - e + 1);
return Math.round(t)
}, w = function (e, n) {
return void 0 === e && (e = []), n ? e.concat(n) : e
};
return {
name: "tinypassErrorHandler", addError: function (e, n) {
try {
var t = {place: n, tags: [s]};
e instanceof Error ? (t.stack = e.stack, t.message = e.message) : t.stack = JSON.stringify(e), u && (t.tags = w(t.tags, "initError")), l(t)
} catch (e) {
}
}, initialize: function () {
try {
pn.isSandbox() || (n.subscribe(a, d), null === (e = window.addEventListener) || void 0 === e || e.call(window, "error", p), f())
} catch (e) {
console.warn("Cannot start watching errors", e)
}
var e
}
}
}()
}), pn.tinypassErrorHandler = pn.container.resolve("tinypassErrorHandler");
pn.container.register("main", {
useValue: function (e) {
void 0 === e && (e = pn.container);
var n = e.resolve("api"), t = e.resolve("cookie"), r = e.resolve("jqUtils"), o = e.resolve("util"),
i = e.resolve("logging"), a = e.resolve("fingerprint"), s = e.resolve("user"), c = e.resolve("sha1"),
u = e.resolve("activetimer"), l = e.resolve("scrollDepth"), d = e.resolve("doubleClickForPublisher"),
f = e.resolve("offer"), m = e.resolve("viewportExit"), v = e.resolve("idle"),
g = e.resolve("experience"), h = e.resolve("pianoId"), y = e.resolve("pianoEsp"),
w = e.resolve("applePayIntegrationService"), _ = e.resolve("datatransApplePayIntegrationService"),
b = e.resolve("cxense"), k = (e.resolve("tinypassErrorHandler"), e.resolve("captchaV3")),
C = pn.container.resolve("postmessage"), I = e.resolve("composerControlPolicy"),
S = e.resolve("analytics"), E = e.resolve("consent"), T = "exrs", P = {minutes: 120}, x = null,
A = "voucher_code", O = "__pvi", M = !1, N = !1, R = {}, L = null, U = {
APPLE_PAY_BT: 25,
APPLE_PAY_SS: 38,
APPLE_PAY_STRIPE: 41,
APPLE_PAY_PW: 42,
DATATRANS_APPLE_PAY: 61
}, D = new Set(Object.values(U)), j = void 0, V = [], F = !1, B = function () {
if ("iP" === navigator.platform.substr(0, 2)) {
var e = /constructor/i.test(window.HTMLElement), n = window.navigator, t = n.userAgent,
r = !!window.indexedDB;
if ((-1 === t.indexOf("Safari") || -1 === t.indexOf("Version") || n.standalone) && (r || !e) && window.statusbar.visible && (window.webkit && window.webkit.messageHandlers || !e || r)) return !0
}
return !1
}();
var q, z, H, W = function () {
return o.parseJSON(o.__protected__.getCookie(O), !0) || {}
}, G = function () {
return o.getCurrentDomainFromCookie(O, !0)
}, J = function (e, n) {
var t = R;
R = {};
var r = {};
for (var o in t) if (t.hasOwnProperty(o)) for (var i in r[o] = r[o] || [], t[o]) t[o].hasOwnProperty(i) && r[o].push(t[o][i]);
_e(r, e, n)
}, Q = function () {
return g.execute.invokeCount > 0 && Nr.refresh(), b.__protected__.clearWidgets(), Nr.get("pageViewId")
};
function X() {
function e(e, n, t) {
t = t || "0";
var r = String(e);
return r.length >= n ? r : new Array(n - r.length + 1).join(t) + r
}
if (Ce()) return Ie();
var n = o.randomString(16), t = c.hash([a.getFingerprint(), window.location.href].join("")),
r = new Date;
return [[e(r.getFullYear(), 4), e(r.getMonth() + 1, 2), e(r.getDate(), 2), e(r.getHours(), 2), e(r.getMinutes(), 2), e(r.getSeconds(), 2), e(r.getMilliseconds(), 3)].join("-"), n, t].join("-")
}
var Y = function (e) {
var n = {path: "/", expires: 1, domain: z.currentDomain};
return e && (n.domain = e), n
}, $ = function (e, n) {
e.domain = n.domain, e.time = (new Date).getTime(), o.__protected__.setCookieConsent("vx", O, o.toJSON(e, !0), n)
}, K = function (e) {
var n = (new Date).getTime(), t = 6e4 * o.getBrowserTimezoneOffset(), r = o.getAppTimezoneOffset(),
i = new Date(e.time).setHours(0, 0, 0, 0) + 864e5 - t - r;
return e.time + 18e5 < n || n >= i
}, Z = function () {
if (o.__protected__.cameFromFbSubscriptions() || !z.currentDomain) return !1;
var e = o.getReferrer();
if (L && L === e) return !1;
var n = o.getHostname(e),
t = new RegExp(z.currentDomain.replace(/\./g, "\\.").replace(/^\\./, "\\.?") + "$").test(n);
return Boolean(n) && !t
}, ee = function () {
var e = W();
(!e || !e.id || !e.time || K(e) || Z()) && (e.id = "v-" + X()), function (e) {
var n = Y();
e.domain || z.currentDomain ? $(e, n) : o.waitCall("domainIsReceived", (function (t) {
ue(t), n.domain = t, $(e, n)
}))
}(e), z.visit = e
}, ne = function (e, n, t) {
var i, s, c, u = "manual", l = !1;
if (void 0 === n) n = window.location.href; else {
if ("object" != _typeof(n)) throw new Error("First parameter to track page must be a URL or an object");
var d = n;
if (void 0 === d.url) throw new Error("Must supply url property");
n = d.url, void 0 !== d.tags && (t = d.tags), void 0 !== d.submitType && (u = d.submitType), l = d.skipPageViewTrack
}
t || (t = pn.tags), pn.customPageUrl && (e.custom_page_url = o.prepareUrlParameter(pn.customPageUrl)), void 0 !== t ? "[object Array]" !== Object.prototype.toString.call(t) && "[object String]" !== Object.prototype.toString.call(t) ? (o.log("Tags must be an array or a comma-separated string, ignoring supplied tags"), t = "") : t instanceof Array && (t = t.join(",")) : t = "", l || H.track(), e.page_session_id = H.pageSessionId, e.track_count = H.trackCount, ye(e), pn.contentCreated ? c = pn.contentCreated : pn.contentCreatedSelector && r.queryEl(pn.contentCreatedSelector) && (c = null === (i = r.queryEl(pn.contentCreatedSelector)) || void 0 === i ? void 0 : i.innerHTML), c && (pn.contentCreated || (pn.contentCreated = c), e.content_created = c), "boolean" == typeof pn.contentIsNative && (e.content_is_native = pn.contentIsNative), pn.zone && (e.zone = pn.zone), pn.itemId && (e.item_id = pn.itemId);
var p = pn.contentSection || ce("section");
p && (e.content_section = p);
var f = pn.contentAuthor || ce("author");
f && (e.content_author = f);
var m = pn.contentId || ce("id");
m && (e.content_id = m);
var v, g = o.__protected__.getCookie("sailthru_hid");
g && (e.sailthru_hid = g), L && L === o.getReferrer() ? v = "" : (v = o.getReferrer(), L = v), e.referer = o.prepareUrlParameter(v), t && (e.tags = t), e.url = o.prepareUrlParameter(n), e.fingerprint = a.getFingerprint(), e.adblocker = o.getAdblockStatus(), (e.adblocker === o.ADBLOCKER_STATUS.ENABLED_AFTER_DISABLED || e.adblocker === o.ADBLOCKER_STATUS.ENABLED) && (pn.setCustomParam("_abr", o.getAdblockerStatusReason(), "user", !0), pn.setCustomParam("_absh", o.getAdblockerHistoryCookieInfo().cookieValue + "", "user", !0)), e.timezone_offset = o.getBrowserTimezoneOffset(), e.submit_type = u;
var h = se();
e.visit_id = h, e.new_visit = ie(h);
var y = function () {
return Nr.get("content") || {}
};
return e.keywords = (null === (s = y().keywords) || void 0 === s ? void 0 : s.join(",")) || "", e.title = y().title || "", e.description = y().description || "", e.content_type = y().type || "", ["keywords", "title", "description", "content_type"].forEach((function (n) {
e[n] = e[n].substr(0, 8192)
})), e.custom_variables = JSON.stringify(pn.customVariables), re(e), E.__protected__.addConsentsToParams(e), e
}, te = function () {
return ae(), {}
}, re = function (e) {
var n = {};
return pn.customParams && (n = r.deepExtend({}, pn.customParams)), r.isEmptyObject(n) || (e.custom_params = JSON.stringify(n)), e
}, oe = function () {
return H.id
}, ie = function (e) {
var n = z.lastTrackedVisitId !== e;
return z.lastTrackedVisitId = e, n
}, ae = function () {
z.checkForRefresh = !0
}, se = function () {
return z.checkForRefresh && (ee(), z.checkForRefresh = !1), z.visit.id
}, ce = function (e) {
return (document.head.querySelector("meta[name=" + e + "]") || {}).content
}, ue = function (e) {
z.currentDomain = e
}, le = function () {
return !(pn.endpoint && pn.endpoint.match(/sandbox/))
}, de = function (e, t, r, a) {
pn.aid && 0 !== pn.aid.length ? !le() || (i.setTime("track", Math.floor(performance.now() - window.pnInitPerformance)), o.waitCall("refreshAccessTokenList", (function () {
o.waitCall("offerCreate", (function () {
o.startCall("pageTrack");
n.callApi(e, t, (function (e) {
o.doneCall("pageTrack"), r && r(e)
}), pn.getExperienceEndpoint(!1) + "/api/v3", a)
}))
}))) : o.log("Must supply a valid tp.aid before calling tp.init()")
}, pe = function () {
M && H.trackCount > 0 && (fe(), he())
}, fe = function (e) {
if (le() && !I.denyAll) try {
te(), m.isInitialized() && m.resetSumOfCodesDirectionToDefault(), ge()
} catch (e) {
o.error("main: error on tracking page unload event: ", e)
}
}, me = function () {
N || (N = !0, fe(!0))
}, ve = function () {
M = !0
}, ge = function () {
M = !1
}, he = function () {
u.resetRecordedTime()
}, ye = function (e) {
e && (e.pageview_id = oe())
}, we = function (e, n) {
if (le() && !I.denyAll) try {
pe();
var t = ne({}, e, n);
de("/page/track", t), ve()
} catch (e) {
o.error("main: error on page tracking event: ", e)
}
}, _e = function (e, n, t) {
}, be = function () {
var e = o.getQueryParamByName(A);
e && f.startRedeemVoucher({voucherCode: e})
}, ke = function () {
return x || (x = new Promise((function (e) {
if (null !== o.__protected__.getLocalStorageItem(T) && e({has_active_apple_pay_card: o.__protected__.getLocalStorageItem(T)}), !pn.applePayMerchantId) return e({has_active_apple_pay_card: null}), x;
Ee((function (e) {
g.registerCallback("experienceFlow", (function () {
j = !0, e(!0)
}))
})).then((function (n) {
var t = function (n) {
e({has_active_apple_pay_card: n}), o.__protected__.setLocalStorageItem("vx", T, n, P)
};
n ? w.__protected__.applePayCanMakePaymentsWithActiveCard().then(t) : t(null)
}))
})))
};
function Ce() {
return b.__protected__.isActivated()
}
var Ie = function () {
return o.__protected__.randomStringCxCompatible()
};
function Se(e) {
return function (n) {
var t = n.params;
void 0 === j && (j = function (e) {
if (!Array.isArray(e) || !e.length) return !1;
for (var n = 0, t = e; n < t.length; n++) {
var r = t[n];
if (D.has(r)) return !0
}
return !1
}(t)), V = t || [], e(j)
}
}
function Ee(e) {
return void 0 !== j ? Promise.resolve(j) : B ? (j = !1, Promise.resolve(!1)) : new Promise((function (n) {
e(n)
}))
}
var Te = function () {
Ee((function (e) {
C.subscribe("ACTIVE_PAYMENT_METHODS_IDS_INITIALIZED", Se(e)), C.subscribe("MY_ACCOUNT_ACTIVE_PAYMENT_METHODS_IDS_INITIALIZED", Se(e))
})).then((function (e) {
!e || (!F && r.isFunction(w.initialize) && (F = !0, w.initialize()), Pe(V))
}))
}, Pe = function (e) {
var n = -1 !== e.indexOf(U.DATATRANS_APPLE_PAY);
r.isFunction(_.initialize) && n && _.initialize()
};
return p(p({name: "main", fetchVisitId: se}, Br({
trackPageUnloadIfNecessary: pe,
trackPageUnload: fe,
unregisterTrackUnload: ge,
isRegisteredTrackUnload: function () {
return M
},
registerTrackUnload: ve
})), {
externalResourcesDelay: ke,
pageTrack: we,
trackPage: function (e, n) {
return we(e, n)
},
buildPageTrackParams: ne,
fetchPageViewId: oe,
resetTimer: he,
resetAds: function () {
d.resetAds()
},
trackAd: function (e, n, t) {
R[e] || (R[e] = {}), R[e][n] = t, q()
},
init: function () {
if (Nr.isReady || (o.log("DataLayer should be initialized while calling tp.init()"), o.log("DataLayer was initialized by default configs"), Nr.init()), pn.aid && 0 !== pn.aid.length) {
q = o.debounce(J, 3e3), z = {
currentDomain: G(),
lastTrackedVisitId: W().id,
visit: {},
checkForRefresh: !1
}, H = {
id: Q(), pageSessionId: "s-" + X(), trackCount: 0, tracked: !1, track: function () {
H.tracked ? H.id = Q() : H.tracked = !0, H.trackCount++
}
}, Ce() && pn.cxenseSiteId && Nr.set("siteId", pn.cxenseSiteId), ee(), pn.isMockMode || (r.isFunction(d.initialize) && d.initialize(), r.isFunction(u.initialize) && u.initialize(), r.isFunction(l.initialize) && l.initialize()), r.isFunction(v.initialize) && v.initialize(), Te(), r.isFunction(y.__protected__.init) && y.__protected__.init().catch((function () {
})), r.isFunction(s.refreshAccessToken) && s.refreshAccessToken(), ke();
var e = s.getProvider();
e.getName() === h.getName() && e.__protected__.extendUserToken(), k.addCaptchaV3();
var n = "cxTrackingId", t = o.getQueryParamByName(n);
t && (o.removeQueryParamByName(n), S.log.event({
eventType: wo.LOG_AUTO_MICRO_CONVERSION,
payload: {
trackingId: t,
eventGroupId: "click",
eventType: yo.EXTERNAL_LINK,
customParams: {href: location.href, source: "CX"}
}
}))
} else o.log("Must supply a valid tp.aid before calling tp.init()")
},
checkToRunWidgetImmediately: function () {
be(), "pianoId" === s.getProvider().name && o.waitCall("offerCreate", (function () {
h.__protected__.checkVerificationCode()
})), h.checkAndShowEmailIsNotConfirmed(), r.isFunction(f.checkThreeDSRedirect) && f.checkThreeDSRedirect()
},
trackAds: _e,
appHasApplePay: function () {
return j
},
__private__: p(p({
VISIT_ID_COOKIE: O,
VOUCHER_QUERY: A,
collectedAds: R,
unloadRegistered: M,
unloadTriggered: N,
getPageView: function () {
return H
},
getVisitContainer: function () {
return z
},
track: de,
checkVoucher: be,
setPageViewId: ye,
currentEnvironmentSupportsPageTrack: le,
invalidateLastVisit: function () {
var e = Y();
t.remove(O, e)
},
getCurrentDomain: G,
loadLastVisit: W,
setVisitCurrentDomain: ue,
saveVisitCookie: $,
getVisitCookieOptions: Y,
isTimeExpired: K,
refreshVisit: ee,
generatePageViewId: X,
trackCollectedAds: J
}, Br({
buildPageUnloadParams: te, unloadHandler: function () {
M && me(), J(!0, "beacon_request"), g.__protected__.sendStatisticsExecutedNodes("unload")
}, unloadAction: me
})), {buildPageCustomParams: re, hasExternalReferrer: Z})
})
}()
}), pn.main = pn.container.resolve("main");
var Pa = function () {
var e = null, n = function (n) {
e = n && p(p({}, e), n), Nr.isReady && n && (Nr.set("content", e), e = null)
};
return {
set: function (e, t) {
var r;
return n(((r = {})[e] = t, r))
}, get: function (n) {
var t;
return Nr.isReady ? null === (t = Nr.get("content")) || void 0 === t ? void 0 : t[n] : null == e ? void 0 : e[n]
}, init: function () {
return n(e)
}
}
}(), xa = {predefineValues: []};
window.tp && window.tp.length && (xa.predefineValues = b([], window.tp || [], !0)), pn.tpPredefinedOptions = xa, pn.container.register("tpPredefinedOptions", {useValue: xa});
var Aa = function () {
function e(e, n, t, r, o, i, a, s) {
this.tpPredefinedOptions = e, this.css = n, this.tinypassErrorHandler = t, this.gaService = r, this.ga4Service = o, this.gaCollectingService = i, this.utilService = a, this.consent = s, this.isDataLayerEnabled = !0, this.fullTPVersion = !1, this.isInitialized = !1, this.aid = "", this.isSensitiveDataProtectionEnabled = !1, this.affiliateTokenName = "affiliateToken", this.cxCdnUrl = "https://cdn.cxense.com", this.c1XLoadCce = !0, this.c1XIntegrationVersion = "v2", this.cxenseLibAwaitingTimeout = 0, this.cxenseLibAwaitingRetryCount = 0, this.trackPages = !0, this.debug = !1, this.userRef = "", this.usePianoIdLiteUserProvider = !1, this.useTinypassAccounts = !1, this.useCondeUserProvider = !1, this.useGigyaUserProvider = !1, this.usePianoIdUserProvider = !1, this.useAidSpecifiedCookies = !1, this.sandbox = !1, this.zIndexes = {
backdrop: 3e5,
modal: 300050,
close: 300100
}, this.requestUserAuthForLinkedTerm = !0, this.customPreChecks = [], this.customParams = {}, this.externalLibraries = [], this.externalLibrariesCallbacks = [], this.customVariables = {}, this.locale = "", this.trackPageView = !0, this.redirectToFbTimeout = 3, this.isDoubleOptInCheckOnAccessCheckEnabled = !1, this.isMockMode = !1, this.inappBrowserReturn = !1, this.events = [], this.appList = [], this.cacheableShowTemplate = !0, this.initCallbacks = [], this.mainModuleInited = !1, this.restCallbacks = [], this.initTries = 0, this.listOfAddedHandlers = [], this.callbacks = [], n.loadOfferCss()
}
return Object.defineProperty(e.prototype, "tags", {
get: function () {
var e;
return null === (e = Pa.get("tags")) || void 0 === e ? void 0 : e.join(",")
}, set: function (e) {
var n;
n = Array.isArray(e) ? e : "string" == typeof e ? [e] : null, Pa.set("tags", n)
}, enumerable: !1, configurable: !0
}), Object.defineProperty(e.prototype, "contentIsNative", {
get: function () {
return Pa.get("isNative")
}, set: function (e) {
Pa.set("isNative", e)
}, enumerable: !1, configurable: !0
}), Object.defineProperty(e.prototype, "contentId", {
get: function () {
return Pa.get("id")
}, set: function (e) {
Pa.set("id", e)
}, enumerable: !1, configurable: !0
}), Object.defineProperty(e.prototype, "contentCreated", {
get: function () {
var e;
return (null === (e = Pa.get("createdAt")) || void 0 === e ? void 0 : e.toString()) || ""
}, set: function (e) {
Pa.set("createdAt", e)
}, enumerable: !1, configurable: !0
}), Object.defineProperty(e.prototype, "contentAuthor", {
get: function () {
var e;
return (null === (e = Pa.get("authors")) || void 0 === e ? void 0 : e.join(",")) || ""
}, set: function (e) {
Pa.set("authors", [e])
}, enumerable: !1, configurable: !0
}), Object.defineProperty(e.prototype, "contentSection", {
get: function () {
return Pa.get("section")
}, set: function (e) {
Pa.set("section", e)
}, enumerable: !1, configurable: !0
}), Object.defineProperty(e.prototype, "zone", {
get: function () {
return Pa.get("zone")
}, set: function (e) {
Pa.set("zone", e)
}, enumerable: !1, configurable: !0
}), e.prototype.initTp = function () {
var e = this;
try {
var n = this.tpPredefinedOptions.predefineValues;
if (this.tpPredefinedOptions.predefineValues = [], n.forEach((function (n) {
"function" == typeof n[1] ? "init" === n[0] ? e.initCallbacks.push(n[1]) : e.restCallbacks.push(n) : "init" === n[1] && "function" == typeof n[2] ? e.initCallbacks.push(n[2]) : e.push(n)
})), !this.aid && this.initTries < 10) return this.initTries++, void setTimeout((function () {
return e.initTp()
}), 50);
if (!this.aid) return;
for (this.tinypassErrorHandler.initialize(); this.restCallbacks.length;) try {
var t = this.restCallbacks.shift();
this.push(t)
} catch (e) {
console.error(e), pn.tinypassErrorHandler.addError(e)
}
this._init(), this.externalLibraries.length && this.realizeExternalLibraries(), this.isInitialized = !0, window.___tp = function () {
}
} catch (e) {
pn.tinypassErrorHandler.addError(e, "initTP"), console.error("init PN process error", e)
}
}, e.prototype.realizeExternalLibraries = function () {
var e = this, n = [];
this.externalLibraries.forEach((function (t) {
var r = e.utilService.requireJsFile(t);
n.push(r)
})), Promise.all(n).then((function () {
if (e.externalLibraries = [], e.externalLibrariesCallbacks) for (var n = 0; n < e.externalLibrariesCallbacks.length; ++n) Ma.externalLibrariesCallbacks[n]();
Ma.externalLibrariesCallbacks = []
}))
}, e.prototype.push = function () {
for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];
var t, r, o;
for (t = 0; t < e.length; t++) if ("string" == typeof (r = (o = e[t]).shift()) || r instanceof String) {
if (!this[r]) return void console.error("Undefined method " + r);
this[r].apply(this, o)
} else r.apply(this, o)
}, e.prototype.init = function (e) {
this.isInitialized ? (this.mainModuleInited || (this.mainModuleInited = !0, this.initMainModuleAfterInitCbk()), e && e()) : (e && this.tpPredefinedOptions.predefineValues.push(["init", e]), this.initTp())
}, e.prototype._init = function () {
var e = {};
if ((this.cookieDomain || this.cookiePath) && (e.cookieDefault = {
domain: this.cookieDomain,
path: this.cookiePath
}), Nr.init(e), Pa.init(), this.cxenseSiteId && Nr.set("siteId", this.cxenseSiteId), pn.consent.__protected__.init(), pn.util && pn.util.hasQueryParamByName && pn.util.hasQueryParamByName("xpdebug") && pn.setDebug(!0), pn.util.setTpccCookies(), pn.util.isSafariOrIOsUiWebView() && !pn.user.isUserValid() && pn.util.getQueryParamByName("userToken")) {
var n = pn.util.getQueryParamByName("cookieDomain"), t = pn.util.getQueryParamByName("userToken"),
r = pn.util.getQueryParamByName("tokenListValue");
pn.util.setAccessTokenListCookie({
cookie_domain: n,
value: r
}, t), pn.util.removeQueryParamByName("userToken"), pn.util.removeQueryParamByName("cookieDomain"), pn.util.removeQueryParamByName("tokenListValue")
}
if (this.mainModuleInited || (this.mainModuleInited = !0, this.initMainModuleAfterInitCbk()), pn.itp.init(), !this.aid) {
var o = new Error("Incorrect aid integration: ".concat(Ma.aid, " url: ").concat(window.location.href));
this.tinypassErrorHandler.addError(o)
}
pn.logging.setTime("startInit", Math.floor(window.pnInitPerformance)), pn.logging.setTime("completeInit", Math.floor(performance.now() - window.pnInitPerformance))
}, e.prototype.initMainModuleAfterInitCbk = function () {
for (pn.user.providerInit(), this.appList.indexOf(this.aid) < 0 && (this.appList.push(this.aid), pn.main.init()); this.initCallbacks.length;) try {
this.initCallbacks.shift()()
} catch (e) {
console.error(e), pn.tinypassErrorHandler.addError(e)
}
if (pn.main.checkToRunWidgetImmediately(), this.events) {
for (var e = 0; e < this.events.length; e++) this.events[e]();
this.events = []
}
}, e.prototype.setAid = function (e) {
this.aid = e
}, e.prototype.enableSensitiveDataProtection = function (e) {
this.isSensitiveDataProtectionEnabled = e
}, e.prototype.reload = function () {
location.href = pn.util.removeVoucherCodeFromUrl(location.href)
}, e.prototype.removeSharedAccountCodeFromUrl = function () {
location.href = pn.util.removeSharedAccountCodeFromUrl(location.href)
}, e.prototype.setGAClientId = function (e) {
this.gaClientId = e, this.gaService.recreateWithClientId(e)
}, e.prototype.getGAClientId = function () {
return this.gaClientId
}, e.prototype.enableGACrossDomainLinking = function (e) {
var n = this;
this.gaCrossDomainLinking = !0;
var t = Date.now();
!function r() {
var o = window.ga;
if (o && "function" == typeof o) try {
o((function (t) {
if (void 0 !== t && void 0 === e) n.setGAClientId(t.get("clientId")); else if (void 0 !== e) for (var r = o.getAll(), i = 0; i < r.length; i++) {
var a = r[i];
if (a.get("trackingId") === e) {
n.setGAClientId(a.get("clientId"));
break
}
}
}))
} catch (e) {
} else Date.now() - t < 6e4 && setTimeout(r, 500)
}()
}, e.prototype.setExcludedGAEvents = function (e) {
this.gaCollectingService.setExcludedEvents(e)
}, e.prototype.setGA4Config = function (e) {
this.ga4Service.setGa4Config(e)
}, e.prototype.setTags = function (e) {
this.tags = e instanceof Array ? e.join(",") : e
}, e.prototype.setCookieDomain = function (e) {
"." !== e[0] && (e = "." + e), this.cookieDomain = e
}, e.prototype.setCookiePath = function (e) {
this.cookiePath = e
}, e.prototype.setDontScrollTopModal = function (e) {
this.dontScrollTopModal = e
}, e.prototype.setUseExperience = function (e) {
this.useExperience = e
}, e.prototype.setExperimentalIosModal = function (e) {
this.experimentalIosModal = e
}, e.prototype.setApplePayMerchantId = function (e) {
this.applePayMerchantId = e
}, e.prototype.setContentIsNative = function (e) {
this.contentIsNative = e
}, e.prototype.setComposerHost = function (e) {
this.composerHost = e
}, e.prototype.setEndpoint = function (e) {
this.endpoint = e
}, e.prototype.setAffiliateTokenName = function (e) {
this.affiliateTokenName = e
}, e.prototype.setEspEndpoint = function (e) {
this.espEndpoint = e
}, e.prototype.setCxCdnUrl = function (e) {
this.cxCdnUrl = e
}, e.prototype.setC1XLoadCce = function (e) {
this.c1XLoadCce = e
}, e.prototype.setC1XIntegrationVersion = function (e) {
this.c1XIntegrationVersion = e
}, e.prototype.setDataLayerEnabled = function (e) {
this.isDataLayerEnabled = e
}, e.prototype.setCxenseSiteId = function (e) {
this.cxenseSiteId = e, Nr.set("siteId", e)
}, e.prototype.setCxenseLibAwaitingTimeout = function (e) {
this.cxenseLibAwaitingTimeout = e
}, e.prototype.setCxenseLibAwaitingRetryCount = function (e) {
this.cxenseLibAwaitingRetryCount = e
}, e.prototype.setContentId = function (e) {
this.contentId = e
}, e.prototype.setTrackPages = function (e) {
this.trackPages = e
}, e.prototype.setDebug = function (e) {
this.debug = e
}, e.prototype.setUserRef = function (e) {
this.userRef = e
}, e.prototype.setUsePianoIdLiteUserProvider = function (e) {
this.usePianoIdLiteUserProvider = e
}, e.prototype.setExternalJWT = function (e) {
this.externalJWT = e
}, e.prototype.getExternalJWT = function () {
return this.externalJWT
}, e.prototype.setUseTinypassAccounts = function (e) {
this.useTinypassAccounts = e
}, e.prototype.setUseCondeUserProvider = function (e) {
this.useCondeUserProvider = e
}, e.prototype.setUseGigyaUserProvider = function (e) {
this.useGigyaUserProvider = e
}, e.prototype.setUsePianoIdUserProvider = function (e) {
this.usePianoIdUserProvider = e
}, e.prototype.setPianoIdUrl = function (e) {
this.pianoIdUrl = e
}, e.prototype.setItemId = function (e) {
this.itemId = e
}, e.prototype.setUseAidSpecifiedCookies = function (e) {
this.useAidSpecifiedCookies = e
}, e.prototype.setSandbox = function (e) {
this.sandbox = e
}, e.prototype.setContentCreatedSelector = function (e) {
this.contentCreatedSelector = e
}, e.prototype.setContentCreated = function (e) {
this.contentCreated = e
}, e.prototype.setContentAuthor = function (e) {
this.contentAuthor = e
}, e.prototype.setContentSection = function (e) {
this.contentSection = e
}, e.prototype.setZone = function (e) {
this.zone = e || ""
}, e.prototype.isNonProdEndpoint = function () {
return "sandbox" === this.endpoint || /^https?:\/\/(.*sandbox.*|\d+\.dev)\.(tinypass\.com|piano\.io)/i.test(this.endpoint)
}, e.prototype.setZIndexes = function (e) {
this.zIndexes = e
}, e.prototype.setCustomPreCheck = function (e) {
this.customPreChecks.push(e)
}, e.prototype.setLinkTermSelected = function (e) {
this.linkedTermSelected = e
}, e.prototype.setLinkedTermSelected = function (e) {
this.linkedTermSelected = e
}, e.prototype.setRequestUserAuthForLinkedTerm = function (e) {
this.requestUserAuthForLinkedTerm = e
}, e.prototype.setCustomParam = function (e, n, t, r) {
var o = ["content", "user", "request"];
if (t || (t = "content"), t = t.toLowerCase(), o.indexOf(t) < 0) throw new Error("Undefined scope " + t + "\nAvailable scopes: " + o.join(", "));
void 0 === this.customParams[t] && (this.customParams[t] = {}), (void 0 === this.customParams[t][e] || r) && (this.customParams[t][e] = []);
for (var i = [].concat(n), a = 0; a < i.length; a++) {
if ("string" != typeof i[a]) throw new Error("setCustomParam accept only string values or array of strings");
this.customParams[t][e].push(i[a])
}
}, e.prototype.resetCustomParam = function (e) {
e || (e = "content"), delete this.customParams[e]
}, e.prototype.addExternalLibrary = function (e, n) {
if ("string" == typeof e) this.externalLibraries.push(e); else for (var t = 0; t < e.length; ++t) this.externalLibraries.push(e[t]);
n && this.externalLibrariesCallbacks.push(n), this.isInitialized && this.realizeExternalLibraries()
}, e.prototype.setCustomVariable = function (e, n) {
this.customVariables[e] = n
}, e.prototype.saveCustomVariablesToLocalStorage = function (e) {
var n = function (e, n) {
pn.consent.__protected__.async((function (t) {
var r;
return null === (r = t.composer) || void 0 === r ? void 0 : r.localStorage.set(e, n)
}))
}, t = "__tp-customVariables";
n(t, JSON.stringify(this.customVariables)), e && n(t + "-expiration", Math.floor((new Date).getTime() / 1e3) + e + "")
}, e.prototype.restoreCustomVariablesFromLocalstorage = function () {
if ("localStorage" in window && null !== window.localStorage) {
var e = Ma.util.__protected__.getLocalStorageItem("customVariables");
if (Ma.util.__protected__.removeLocalStorageItem("customVariables"), e) for (var n in e) this.customVariables[n] = e[n]
}
}, e.prototype.handler = function (e, n) {
var t = this.registerPrefixedEvents;
return function () {
for (var r, o = [pn.offer, pn.template, pn.meter, pn.experience, pn.myaccount, pn.pianoId, pn.tinypassLogin, pn.swg, pn.user, pn.credit], i = 0; i < o.length; i++) {
var a = o[i];
if (a) {
var s = a.registerCallback(e, n);
void 0 !== s && (r = s), void 0 !== (s = t(a, e, n)) && (r = s)
}
}
return r
}
}, e.prototype.registerPrefixedEvents = function (e, n, t) {
for (var r, o, i, a = [{module: "offer", prefix: "checkout"}, {
module: "pianoId",
prefix: "pianoId"
}], s = 0; s < a.length; s++) {
var c = a[s];
e.name === c.module && n.substring(0, c.prefix.length) === c.prefix && (r = n.substring(c.prefix.length, c.prefix.length + 1).toLowerCase() + n.substring(c.prefix.length + 1, n.length), void 0 !== (o = e.registerCallback(r, t)) && (i = o))
}
return i
}, e.prototype.addHandler = function (e, n) {
var t = this.handler(e, n);
this.isInitialized ? t() : this.events.push(t), this.listOfAddedHandlers.push(e)
}, e.prototype.getListOfAddedHandlers = function () {
return this.listOfAddedHandlers
}, e.prototype.setTrackPageview = function (e) {
this.trackPageView = e
}, e.prototype.setLocale = function (e) {
var n = this;
this.locale = e, this.utilService.__protected__.setCookie("LANG", this.locale), this.isInitialized ? this.changeLocale(e) : this.initCallbacks.push((function () {
n.changeLocale(e)
}))
}, e.prototype.setPageURL = function (e) {
this.customPageUrl = e
}, e.prototype.setAdblockerCookieName = function (e) {
this.adblockerCookieName = e
}, e.prototype.setMaxCookieExpirationInDays = function (e) {
var n = "string" == typeof e ? parseInt(e, 10) : e;
if (!(isFinite(n) && n > 0)) throw new Error("maxCookieExpirationInDays must be a positive number");
this.maxCookieExpirationInDays = n
}, e.prototype.getMaxCookieExpirationInDays = function () {
return this.maxCookieExpirationInDays
}, e.prototype.setFbPixelId = function (e) {
this.fbPixelId = e
}, e.prototype.getFbPixelId = function () {
return this.fbPixelId
}, e.prototype.setRedirectToFbTimeout = function (e) {
this.redirectToFbTimeout = e
}, e.prototype.enableDoubleOptInCheckOnAccessCheck = function () {
this.isDoubleOptInCheckOnAccessCheckEnabled = !0
}, e.prototype.setCloudflareWorkerUrl = function (e) {
this.cloudflareWorkerUrl = e
}, e.prototype.getEndpoint = function (e, n) {
return e.lastIndexOf("/") === e.length - 1 && (e = e.substr(0, e.length - 1)), e.match(/\/v3$/) && (e = e.substr(0, e.lastIndexOf("/v3"))), e.match(/\/api$/) && (e = e.substr(0, e.lastIndexOf("/api"))), e.match(/^(http[s]?:)?\/\//) || (e = "//" + e), void 0 !== n && n && !e.match(/^http[s]?:/) && (e = "https:" + e), e
}, e.prototype._getEndpointRoot = function (e) {
var n = "https://buy.tinypass.com";
return !0 === this.sandbox && (this.endpoint = "sandbox"), this.endpoint && ("sandbox" === this.endpoint ? n = "https://sandbox.tinypass.com" : "prod" !== this.endpoint && "production" !== this.endpoint && (n = this.endpoint)), this.getEndpoint(n, e)
}, e.prototype._getApiEndpoint = function () {
return this._getEndpointRoot() + "/api/v3"
}, e.prototype._getTrackingEndpoint = function (e) {
void 0 === e && (e = "");
var n = e || this.endpoint;
return !0 === this.sandbox ? n = "https://sandbox.tinypass.com" : (void 0 === this.endpoint || null === this.endpoint || "" === this.endpoint || "prod" === this.endpoint || "production" === this.endpoint || this.endpoint.match(/(buy|api|api-v3)\.tinypass\.com/)) && (n = e || "https://api-v3.tinypass.com"), this.getEndpoint(n, !0)
}, e.prototype._getExperienceEndpoint = function (e) {
var n = "https://c2.piano.io";
return this.composerHost ? n = this.composerHost : (!0 === this.sandbox && (this.endpoint = "sandbox"), this.endpoint && ("sandbox" === this.endpoint ? n = "https://c2-sandbox.piano.io" : "prod" !== this.endpoint && "production" !== this.endpoint && (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = (n = this.endpoint).replace("//buy.tinypass.com", "//c2.piano.io")).replace("//api.tinypass.com", "//c2.piano.io")).replace("//buy-au.piano.io", "//c2-au.piano.io")).replace("//api-au.piano.io", "//c2-au.piano.io")).replace("//buy-ap.piano.io", "//c2-ap.piano.io")).replace("//api-ap.piano.io", "//c2-ap.piano.io")).replace("//buy-eu.piano.io", "//c2-eu.piano.io")).replace("//api-eu.piano.io", "//c2-eu.piano.io")).replace("//sandbox.tinypass.com", "//c2-sandbox.piano.io")).replace("//sandbox.piano.io", "//c2-sandbox.piano.io")).replace("//experience-au.piano.io", "//c2-au.piano.io")).replace("//experience-eu.piano.io", "//c2-eu.piano.io")).replace("//experience-ap.piano.io", "//c2-ap.piano.io")).replace("//experience.tinypass.com", "//c2.piano.io")).replace("//buy.piano.io", "//c2.piano.io")).replace("//api.piano.io", "//c2.piano.io")).replace("//experience.piano.io", "//c2.piano.io")))), this.getEndpoint(n, e)
}, e.prototype._isSandbox = function () {
return this.sandbox || "sandbox" === this.endpoint || !!this.endpoint && -1 !== this.endpoint.indexOf("//sandbox.tinypass.com")
}, e.prototype.changeLocale = function (e) {
pn.pianoId.isConfigured() && pn.pianoId.updateLang(e), pn.postmessage.broadcast("langChanged", {lang: e})
}, e.prototype.pageTrack = function (e, n) {
pn.main.pageTrack(e, n)
}, e.prototype.trackPage = function (e, n) {
pn.main.pageTrack(e, n)
}, e.prototype.trackPageUnload = function () {
pn.main.trackPageUnload()
}, e.prototype.trackAds = function (e) {
pn.main.trackAds(e)
}, e.prototype.trackAd = function (e, n, t) {
pn.main.trackAd(e, n, t)
}, e.prototype.onLoad = function (e) {
this.callbacks.push(e)
},e.prototype.getEndpointRoot = function (e) {
return this._getEndpointRoot(e)
},e.prototype.getExperienceEndpoint = function (e) {
return this._getExperienceEndpoint(e)
},e.prototype.getApiEndpoint = function () {
return this._getApiEndpoint()
},e.prototype.getTrackingEndpoint = function (e) {
return void 0 === e && (e = ""), this._getTrackingEndpoint(e)
},e.prototype.isSandbox = function () {
return this._isSandbox()
},e.prototype.setCacheableShowTemplate = function (e) {
this.cacheableShowTemplate = e
},e.prototype.getCacheableShowTemplate = function () {
return this.cacheableShowTemplate
},e.prototype.setSssAccessToken = function (e) {
this.sssAccessToken = e
},e.prototype.setSssCallbackUrl = function (e) {
this.sssCallbackUrl = e
},e.prototype.setSssMode = function (e) {
this.sssMode = e
},e.prototype.setSssOriginUrl = function (e) {
this.sssOriginUrl = e
},e.prototype.verifySignature = function (e, n, t) {
var r = this.utilService.asUint8Array(window.atob(t)), o = this.utilService.asUint8Array(e),
i = this.utilService.asUint8Array(window.atob(n)), a = {
name: "RSASSA-PKCS1-v1_5",
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
hash: {name: "SHA-256"}
};
return crypto.subtle.importKey("spki", r, a, !1, ["verify"]).then((function (e) {
return crypto.subtle.verify(a, e, i, o)
}))
},e = function (e, n, t, r) {
var o, i = arguments.length, a = i < 3 ? n : null === r ? r = Object.getOwnPropertyDescriptor(n, t) : r;
if ("object" == ("undefined" == typeof Reflect ? "undefined" : _typeof(Reflect)) && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, n, t, r); else for (var s = e.length - 1; s >= 0; s--) (o = e[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(n, t, a) : o(n, t)) || a);
return i > 3 && a && Object.defineProperty(n, t, a), a
}([pn.singleton(), m(0, pn.inject("tpPredefinedOptions")), m(1, pn.inject("css")), m(2, pn.inject("tinypassErrorHandler")), m(3, pn.inject("gaService")), m(4, pn.inject("ga4Service")), m(5, pn.inject("gaCollectingService")), m(6, pn.inject("util")), m(7, pn.inject("consent")), v("design:paramtypes", [Object, Object, Object, Object, Object, Object, Object, Object])], e),e
}();
pn.container.registerSingleton("tinypass", Aa);
var Oa = pn.container.resolve("tinypass");
[{n: "polyfill", hM: !1}, {n: "predefine", hM: !1}, {n: "predefineTinypass", hM: !1}, {
n: "checkTinypass",
hM: !1
}, {n: "css", hM: !0}, {n: "ajax", hM: !0}, {n: "jqUtils", hM: !0}, {n: "cookie", hM: !0}, {
n: "localStorage",
hM: !0
}, {n: "versionService", hM: !0}, {n: "itp", hM: !0}, {n: "util", hM: !0}, {n: "api", hM: !0}, {
n: "postmessage",
hM: !0
}, {n: "eventUtils", hM: !0}, {n: "janrain", hM: !0}, {n: "sha1", hM: !0}, {
n: "containerUtils",
hM: !0
}, {n: "tinypassLogin", hM: !0}, {n: "tinypassAccounts", hM: !0}, {n: "condeUserProvider", hM: !0}, {
n: "gigya",
hM: !0
}, {n: "jwtDecode", hM: !0}, {n: "log", hM: !0}, {n: "logging", hM: !0}, {
n: "observer",
hM: !0
}, {n: "gaCollectingService", hM: !0}, {n: "gaService", hM: !0}, {n: "ga4Service", hM: !0}, {
n: "acp",
hM: !0
}, {n: "pianoIdLite", hM: !0}, {n: "pianoId", hM: !0}, {n: "user", hM: !0}, {
n: "viewportExit",
hM: !0
}, {n: "template", hM: !0}, {n: "offer", hM: !0}, {n: "myaccount", hM: !0}, {n: "meter", hM: !0}, {
n: "fingerprint",
hM: !0
}, {n: "scrollDepth", hM: !0}, {n: "idle", hM: !0}, {n: "interaction", hM: !0}, {
n: "recWidgetService",
hM: !0
}, {n: "piano", hM: !0}, {n: "pianoEsp", hM: !0}, {n: "swg", hM: !0}, {n: "fbpixel", hM: !0}, {
n: "fbsubscriptions",
hM: !0
}, {n: "cxense", hM: !0}, {n: "experience", hM: !0}, {n: "ifvisible", hM: !0}, {
n: "activetimer",
hM: !0
}, {n: "doubleClickForPublisher", hM: !0}, {n: "applePay", hM: !0}, {
n: "goCardlessDropin",
hM: !0
}, {n: "applePayIntegrationService", hM: !0}, {
n: "datatransApplePayIntegrationService",
hM: !0
}, {n: "stripeApplePayIntegrationService", hM: !0}, {n: "obi3DSChallenge", hM: !0}, {
n: "amp",
hM: !0
}, {n: "performanceMetrics", hM: !0}, {n: "doubleOptIn", hM: !0}, {n: "newscycle", hM: !0}, {
n: "captchaV3",
hM: !0
}, {n: "main", hM: !0}, {n: "tinypassErrorHandler", hM: !0}, {n: "tinypass", hM: !0}, {
n: "postProcessing",
hM: !1
}, {n: "clientConfiguration", hM: !0}, {n: "microsoftQuickAuth", hM: !0}].forEach((function (e) {
e.hM && !pn.container.isRegistered(e.n) && pn.container.resolve(e.n)
})), Object.assign(pn, Oa), Object.setPrototypeOf(pn, Aa.prototype);
var Ma = window.tp = pn;
pn.initTp()
}();