@salla.sa/twilight 3.0.0-beta.1 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/@salla.sa/twilight.min.js +1 -1
- package/dist/@salla.sa/twilight.min.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +75 -74
- package/types/event/auth.d.ts +5 -1
- package/types/index.d.ts +2 -0
- package/types/lib/error-monitor.d.ts +7 -0
- package/types/tiwlight-config.d.ts +8 -0
- package/watcher.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twilight.min.js","sources":["../../src/lib/init-static-sections.js","../../node_modules/@jitsu/js/dist/jitsu.es.js"],"sourcesContent":["//todo:: remove all the usages of the document, we need it to be SSR friendly\nexport default class InitStaticSections {\n constructor() {\n Salla.event.on('twilight::before.ready', () => this.renderAll());\n }\n async renderAll() {\n // Register auto-mount first so hook listeners are attached before any await.\n // On first visit or after \"Clear site data\", component scripts may load before\n // lang/config settle; registering here ensures mount runs when the hook is ready.\n Salla.hooks.renderAutoComponents([\n { hook: 'product:single.description', tag: 'salla-delivery-promise', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('delivery-promises'))},\n { hook: 'product:single.description', tag: 'salla-loyalty-banner', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('loyalty-system'))},\n { hook: 'product:single.description', tag: 'salla-loyalty-points-banner', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('loyalty-system'))},\n { hook: 'product:single.description', tag: 'salla-cashback-banner', canRender: () => Salla.url.is_page('product.single')},\n { hook: 'product:single.form.end', tag: 'salla-fulfillment-methods', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('delivery-promises'))},\n { hook: 'body:end', tag: 'salla-cookies-bar', canRender: () => Salla.config.get('store.features')?.includes('website-cookies') },\n { hook: 'body:end', tag: 'salla-bullet-delivery', canRender: () => Salla.config.get('store.features')?.includes('bullet-delivery-v2') && Salla.config.get('store.settings.bullet_delivery.enabled') === true },\n { hook: 'product:single.description.end', tag: 'salla-bought-together', canRender: () => Salla.url.is_page('product.single') && Salla.config.get('store.settings.product.bought_together') },\n { hook: 'customer:wishlist.items.start', tag: 'salla-wishlist-actions', canRender: () => Salla.url.is_page('customer.wishlist') },\n { hook: 'customer:orders.single.details.start', tag: 'salla-order-cancel', canRender: () => Salla.url.is_page('customer.orders.single') },\n ]);\n\n await Salla.lang.onLoaded();\n this.renderAppInstall();\n this.renderEdit();\n this.applyContentCopyright();\n this.renderTemplateStore();\n\n if (!Salla.helpers.isIframe()) {\n this.renderMaintenance();\n this.renderThemePreview();\n }\n }\n\n\n\n renderMaintenance() {\n if (!Salla.config.get('maintenance')) {\n return;\n }\n\n document.body.classList.add('has-maintenance-bar');\n if (document.querySelector('salla-maintenance-alert')) {\n Salla.logger.warn('salla-maintenance-alert element Existed before!');\n return;\n }\n\n document.body.prepend(document.createElement('salla-maintenance-alert'));\n }\n\n renderTemplateStore() {\n if (!Salla.config.get('store.template')) {\n return;\n }\n\n document.body.classList.add('has-bottom-alert');\n if (document.querySelector('salla-bottom-alert')) {\n Salla.logger.warn('salla-bottom-alert element Existed before!');\n return;\n }\n\n document.body.append(document.createElement('salla-bottom-alert'));\n }\n\n renderAppInstall() {\n if (!Salla.config.get('store.app_install_prompt') || !Salla.config.get('store.apps') || Salla.storage.get('app_install_prompt_disabled') || Salla.config.isMobileApp()) {\n return;\n }\n\n document.body.classList.add('has-app-install-alert');\n if (document.querySelector('salla-app-install-alert')) {\n Salla.logger.warn('salla-app-install-alert element Existed before!');\n return;\n }\n\n document.body.append(document.createElement('salla-app-install-alert'));\n }\n renderThemePreview() {\n if (Salla.config.get('theme.mode') !== 'preview') {\n return;\n }\n document.body.classList.add('has-preview-bar');\n if (document.querySelector('#s-theme_preview_bar')) {\n Salla.logger.warn('#s-theme_preview_bar element Existed before!');\n return;\n }\n let alertElement = document.createElement('div');\n alertElement.id = 's-theme_preview_bar';\n alertElement.setAttribute('style', 'display: flex; justify-content: space-between; text-align: center; background-color: #232323; color: #fff; padding: 10px; font-size: 0.875rem; line-height: 1.25rem; position: relative;');\n alertElement.innerHTML = `\n <div style=\"display:flex; align-items:center;\">\n <img width=\"32\" src=\"https://cdn.salla.network/images/logo/logo-light.svg\">\n <span style=\"margin:0 10px;\">${Salla.lang.get('blocks.header.preview_mode')}: <span style=\"background:rgba(255,255,255,0.25);border-radius:15px; padding:2px 15px 4px\">${Salla.config.get('theme.name')}</span></span>\n </div>\n <a href=\"${Salla.url.get('preview_theme/cancel/preview')}\" style=\"line-height:32px; width:32px;\"><i class=\"sicon-cancel\"></i></a>\n `;\n document.body.prepend(alertElement);\n }\n\n /**\n * @deprecated\n */\n renderEdit() {\n let edit = Salla.config.get('edit');\n if (!edit) {\n return;\n }\n if (document.querySelector('#s-edit-alert')) {\n Salla.logger.warn('#s-edit-alert element Existed before!');\n return;\n }\n let alertElement = document.createElement('div');\n alertElement.id = 's-edit-alert';\n alertElement.innerHTML = `\n <a href=\"${edit}\" style=\"display:block; background-color:${Salla.config.get('theme.color.primary', '#5cd5c4')}; color:${Salla.config.get('theme.color.reverse', '#fff')}; padding: 10px; text-align:center; font-size: 0.875rem; line-height: 1.25rem;\">\n <i class=\"sicon-edit\"></i> \n ${Salla.lang.get('pages.products.quick_edit')}\n </a>\n `;\n document.body.prepend(alertElement);\n }\n\n applyContentCopyright() {\n if (!Salla.config.get('store.settings.content_copyright')) {\n return;\n }\n\n // Helper to check if element is an input\n const isInputElement = (element) => {\n if (!element) return false;\n const tagName = element.tagName?.toLowerCase();\n return tagName === 'input' || tagName === 'textarea';\n };\n\n // Common event prevention (excluding inputs)\n const preventEvents = ['contextmenu', 'selectstart', 'copy'];\n preventEvents.forEach((event) => {\n document.addEventListener(event, (e) => {\n if (!isInputElement(e.target)) {\n e.preventDefault();\n }\n });\n });\n\n // Prevent common dev tools shortcuts\n document.addEventListener('keydown', (e) => {\n const key = e.key.toLowerCase();\n const blockedCombos = (\n key === 'f12' ||\n (e.ctrlKey && e.shiftKey && ['i', 'j', 'c'].includes(key)) ||\n (e.ctrlKey && key === 'u')\n );\n if (blockedCombos) {\n e.preventDefault();\n e.stopPropagation();\n }\n });\n\n // Inject protection styles (excluding inputs)\n const style = document.createElement('style');\n style.textContent = `\n body {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n input, textarea {\n -webkit-touch-callout: auto;\n -webkit-user-select: auto;\n -moz-user-select: auto;\n -ms-user-select: auto;\n user-select: auto;\n }\n img {\n pointer-events: none;\n -webkit-user-drag: none;\n }\n `;\n document.head.appendChild(style);\n }\n}","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a4, b5) => {\n for (var prop in b5 || (b5 = {}))\n if (__hasOwnProp.call(b5, prop))\n __defNormalProp(a4, prop, b5[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b5)) {\n if (__propIsEnum.call(b5, prop))\n __defNormalProp(a4, prop, b5[prop]);\n }\n return a4;\n};\nvar __spreadProps = (a4, b5) => __defProps(a4, __getOwnPropDescs(b5));\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e2) {\n reject(e2);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e2) {\n reject(e2);\n }\n };\n var step = (x3) => x3.done ? resolve(x3.value) : Promise.resolve(x3.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// ../../node_modules/.pnpm/dlv@1.1.3/node_modules/dlv/dist/dlv.es.js\nfunction dlv_es_default(t2, e2, l3, n4, r3) {\n for (e2 = e2.split ? e2.split(\".\") : e2, n4 = 0; n4 < e2.length; n4++) t2 = t2 ? t2[e2[n4]] : r3;\n return t2 === r3 ? l3 : t2;\n}\n\n// ../../node_modules/.pnpm/@analytics+type-utils@0.6.2/node_modules/@analytics/type-utils/dist/analytics-util-types.module.js\nvar e = \"undefined\";\nvar o = \"object\";\nvar b = \"any\";\nvar m = \"*\";\nvar j = \"__\";\nvar F = \"undefined\" != typeof process ? process : {};\nvar P = F.env && F.env.NODE_ENV || \"\";\nvar $ = \"undefined\" != typeof document;\nvar T = $ && \"localhost\" === window.location.hostname;\nvar _ = null != F.versions && null != F.versions.node;\nvar k = \"undefined\" != typeof Deno && void 0 !== Deno.core;\nvar B = \"object\" == typeof self && self.constructor && \"DedicatedWorkerGlobalScope\" === self.constructor.name;\nvar G = $ && \"nodejs\" === window.name || \"undefined\" != typeof navigator && void 0 !== navigator.userAgent && (navigator.userAgent.includes(\"Node.js\") || navigator.userAgent.includes(\"jsdom\"));\nfunction M(n4, t2) {\n return t2.charAt(0)[n4]() + t2.slice(1);\n}\nvar U = M.bind(null, \"toUpperCase\");\nvar H = M.bind(null, \"toLowerCase\");\nfunction J(n4) {\n return Y(n4) ? U(\"null\") : \"object\" == typeof n4 ? yn(n4) : Object.prototype.toString.call(n4).slice(8, -1);\n}\nfunction R(n4, t2) {\n void 0 === t2 && (t2 = true);\n var e2 = J(n4);\n return t2 ? H(e2) : e2;\n}\nfunction V(n4, t2) {\n return typeof t2 === n4;\n}\nvar W = V.bind(null, \"function\");\nvar q = V.bind(null, \"string\");\nvar I = V.bind(null, \"undefined\");\nvar Q = V.bind(null, \"boolean\");\nvar X = V.bind(null, \"symbol\");\nfunction Y(n4) {\n return null === n4;\n}\nfunction nn(n4) {\n return \"number\" === R(n4) && !isNaN(n4);\n}\nfunction rn(n4) {\n return \"array\" === R(n4);\n}\nfunction on(n4) {\n if (!un(n4)) return false;\n for (var t2 = n4; null !== Object.getPrototypeOf(t2); ) t2 = Object.getPrototypeOf(t2);\n return Object.getPrototypeOf(n4) === t2;\n}\nfunction un(n4) {\n return n4 && (\"object\" == typeof n4 || null !== n4);\n}\nfunction yn(n4) {\n return W(n4.constructor) ? n4.constructor.name : null;\n}\nfunction hn(n4) {\n return n4 instanceof Error || q(n4.message) && n4.constructor && nn(n4.constructor.stackTraceLimit);\n}\nfunction On(n4, t2) {\n if (\"object\" != typeof t2 || Y(t2)) return false;\n if (t2 instanceof n4) return true;\n var e2 = R(new n4(\"\"));\n if (hn(t2)) for (; t2; ) {\n if (R(t2) === e2) return true;\n t2 = Object.getPrototypeOf(t2);\n }\n return false;\n}\nvar Sn = On.bind(null, TypeError);\nvar An = On.bind(null, SyntaxError);\nfunction $n(n4, t2) {\n var e2 = n4 instanceof Element || n4 instanceof HTMLDocument;\n return e2 && t2 ? Tn(n4, t2) : e2;\n}\nfunction Tn(n4, t2) {\n return void 0 === t2 && (t2 = \"\"), n4 && n4.nodeName === t2.toUpperCase();\n}\nfunction _n(n4) {\n var t2 = [].slice.call(arguments, 1);\n return function() {\n return n4.apply(void 0, [].slice.call(arguments).concat(t2));\n };\n}\nvar kn = _n($n, \"form\");\nvar Bn = _n($n, \"button\");\nvar Gn = _n($n, \"input\");\nvar Mn = _n($n, \"select\");\n\n// ../../node_modules/.pnpm/analytics-utils@1.0.12_@types+dlv@1.1.4/node_modules/analytics-utils/dist/analytics-utils.module.js\nfunction n(e2) {\n try {\n return decodeURIComponent(e2.replace(/\\+/g, \" \"));\n } catch (e3) {\n return null;\n }\n}\nfunction s(r3) {\n return (function(e2) {\n for (var r4, t2 = /* @__PURE__ */ Object.create(null), o3 = /([^&=]+)=?([^&]*)/g; r4 = o3.exec(e2); ) {\n var a4 = n(r4[1]), i4 = n(r4[2]);\n \"[]\" === a4.substring(a4.length - 2) ? (t2[a4 = a4.substring(0, a4.length - 2)] || (t2[a4] = [])).push(i4) : t2[a4] = \"\" === i4 || i4;\n }\n for (var u3 in t2) {\n var c4 = u3.split(\"[\");\n c4.length > 1 && (m2(t2, c4.map(function(e3) {\n return e3.replace(/[?[\\]\\\\ ]/g, \"\");\n }), t2[u3]), delete t2[u3]);\n }\n return t2;\n })((function(r4) {\n if (r4) {\n var t2 = r4.match(/\\?(.*)/);\n return t2 && t2[1] ? t2[1].split(\"#\")[0] : \"\";\n }\n return $ && window.location.search.substring(1);\n })(r3));\n}\nfunction m2(e2, r3, t2) {\n for (var n4 = r3.length - 1, o3 = 0; o3 < n4; ++o3) {\n var a4 = r3[o3];\n if (\"__proto__\" === a4 || \"constructor\" === a4) break;\n a4 in e2 || (e2[a4] = {}), e2 = e2[a4];\n }\n e2[r3[n4]] = t2;\n}\nfunction y() {\n for (var e2 = \"\", r3 = 0, t2 = 4294967295 * Math.random() | 0; r3++ < 36; ) {\n var n4 = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\"[r3 - 1], o3 = 15 & t2;\n e2 += \"-\" == n4 || \"4\" == n4 ? n4 : (\"x\" == n4 ? o3 : 3 & o3 | 8).toString(16), t2 = r3 % 8 == 0 ? 4294967295 * Math.random() | 0 : t2 >> 4;\n }\n return e2;\n}\n\n// ../../node_modules/.pnpm/@analytics+global-storage-utils@0.1.7/node_modules/@analytics/global-storage-utils/dist/analytics-util-global-storage.module.js\nvar l = \"global\";\nvar o2 = j + \"global\" + j;\nvar n2 = typeof self === o && self.self === self && self || typeof global === o && global.global === global && global || void 0;\nfunction a(t2) {\n return n2[o2][t2];\n}\nfunction f(t2, e2) {\n return n2[o2][t2] = e2;\n}\nfunction i(t2) {\n delete n2[o2][t2];\n}\nfunction u(t2, e2, r3) {\n var l3;\n try {\n if (b2(t2)) {\n var o3 = window[t2];\n l3 = o3[e2].bind(o3);\n }\n } catch (t3) {\n }\n return l3 || r3;\n}\nn2[o2] || (n2[o2] = {});\nvar c = {};\nfunction b2(t2) {\n if (typeof c[t2] !== e) return c[t2];\n try {\n var e2 = window[t2];\n e2.setItem(e, e), e2.removeItem(e);\n } catch (e3) {\n return c[t2] = false;\n }\n return c[t2] = true;\n}\n\n// ../../node_modules/.pnpm/@analytics+core@0.12.15_@types+dlv@1.1.4/node_modules/@analytics/core/dist/server/analytics-core.module.js\nfunction g() {\n return g = Object.assign || function(e2) {\n for (var t2 = 1; t2 < arguments.length; t2++) {\n var n4 = arguments[t2];\n for (var r3 in n4) Object.prototype.hasOwnProperty.call(n4, r3) && (e2[r3] = n4[r3]);\n }\n return e2;\n }, g.apply(this, arguments);\n}\nvar h = \"function\";\nvar v = \"undefined\";\nvar y2 = \"@@redux/\" + Math.random().toString(36);\nvar b3 = /* @__PURE__ */ (function() {\n return typeof Symbol === h && Symbol.observable || \"@@observable\";\n})();\nvar I2 = \" != \" + h;\nfunction w(e2, t2, n4) {\n var r3;\n if (typeof t2 === h && typeof n4 === v && (n4 = t2, t2 = void 0), typeof n4 !== v) {\n if (typeof n4 !== h) throw new Error(\"enhancer\" + I2);\n return n4(w)(e2, t2);\n }\n if (typeof e2 !== h) throw new Error(\"reducer\" + I2);\n var i4 = e2, a4 = t2, o3 = [], u3 = o3, s2 = false;\n function l3() {\n u3 === o3 && (u3 = o3.slice());\n }\n function f2() {\n return a4;\n }\n function d3(e3) {\n if (typeof e3 !== h) throw new Error(\"Listener\" + I2);\n var t3 = true;\n return l3(), u3.push(e3), function() {\n if (t3) {\n t3 = false, l3();\n var n5 = u3.indexOf(e3);\n u3.splice(n5, 1);\n }\n };\n }\n function p(e3) {\n if (!on(e3)) throw new Error(\"Act != obj\");\n if (typeof e3.type === v) throw new Error(\"ActType \" + v);\n if (s2) throw new Error(\"Dispatch in reducer\");\n try {\n s2 = true, a4 = i4(a4, e3);\n } finally {\n s2 = false;\n }\n for (var t3 = o3 = u3, n5 = 0; n5 < t3.length; n5++) (0, t3[n5])();\n return e3;\n }\n return p({ type: \"@@redux/INIT\" }), (r3 = { dispatch: p, subscribe: d3, getState: f2, replaceReducer: function(e3) {\n if (typeof e3 !== h) throw new Error(\"next reducer\" + I2);\n i4 = e3, p({ type: \"@@redux/INIT\" });\n } })[b3] = function() {\n var e3, t3 = d3;\n return (e3 = { subscribe: function(e4) {\n if (\"object\" != typeof e4) throw new TypeError(\"Observer != obj\");\n function n5() {\n e4.next && e4.next(f2());\n }\n return n5(), { unsubscribe: t3(n5) };\n } })[b3] = function() {\n return this;\n }, e3;\n }, r3;\n}\nfunction E(e2, t2) {\n var n4 = t2 && t2.type;\n return \"action \" + (n4 && n4.toString() || \"?\") + \"reducer \" + e2 + \" returns \" + v;\n}\nfunction P2() {\n var e2 = [].slice.call(arguments);\n return 0 === e2.length ? function(e3) {\n return e3;\n } : 1 === e2.length ? e2[0] : e2.reduce(function(e3, t2) {\n return function() {\n return e3(t2.apply(void 0, [].slice.call(arguments)));\n };\n });\n}\nfunction S() {\n var e2 = arguments;\n return function(t2) {\n return function(n4, r3, i4) {\n var a4, o3 = t2(n4, r3, i4), u3 = o3.dispatch, c4 = { getState: o3.getState, dispatch: function(e3) {\n return u3(e3);\n } };\n return a4 = [].slice.call(e2).map(function(e3) {\n return e3(c4);\n }), g({}, o3, { dispatch: u3 = P2.apply(void 0, a4)(o3.dispatch) });\n };\n };\n}\nvar N = j + \"anon_id\";\nvar A = j + \"user_id\";\nvar _2 = j + \"user_traits\";\nvar j2 = \"userId\";\nvar k2 = \"anonymousId\";\nvar x = [\"bootstrap\", \"params\", \"campaign\", \"initializeStart\", \"initialize\", \"initializeEnd\", \"ready\", \"resetStart\", \"reset\", \"resetEnd\", \"pageStart\", \"page\", \"pageEnd\", \"pageAborted\", \"trackStart\", \"track\", \"trackEnd\", \"trackAborted\", \"identifyStart\", \"identify\", \"identifyEnd\", \"identifyAborted\", \"userIdChanged\", \"registerPlugins\", \"enablePlugin\", \"disablePlugin\", \"online\", \"offline\", \"setItemStart\", \"setItem\", \"setItemEnd\", \"setItemAborted\", \"removeItemStart\", \"removeItem\", \"removeItemEnd\", \"removeItemAborted\"];\nvar T2 = [\"name\", \"EVENTS\", \"config\", \"loaded\"];\nvar z = x.reduce(function(e2, t2) {\n return e2[t2] = t2, e2;\n}, { registerPluginType: function(e2) {\n return \"registerPlugin:\" + e2;\n}, pluginReadyType: function(e2) {\n return \"ready:\" + e2;\n} });\nvar M2 = /^utm_/;\nvar q2 = /^an_prop_/;\nvar V2 = /^an_trait_/;\nfunction C(e2) {\n var t2 = e2.storage.setItem;\n return function(n4) {\n return function(r3) {\n return function(i4) {\n if (i4.type === z.bootstrap) {\n var a4 = i4.params, o3 = i4.user, u3 = i4.persistedUser, c4 = i4.initialUser, s2 = u3.userId === o3.userId;\n u3.anonymousId !== o3.anonymousId && t2(N, o3.anonymousId), s2 || t2(A, o3.userId), c4.traits && t2(_2, g({}, s2 && u3.traits ? u3.traits : {}, c4.traits));\n var l3 = Object.keys(i4.params);\n if (l3.length) {\n var f2 = a4.an_uid, d3 = a4.an_event, p = l3.reduce(function(e3, t3) {\n if (t3.match(M2) || t3.match(/^(d|g)clid/)) {\n var n5 = t3.replace(M2, \"\");\n e3.campaign[\"campaign\" === n5 ? \"name\" : n5] = a4[t3];\n }\n return t3.match(q2) && (e3.props[t3.replace(q2, \"\")] = a4[t3]), t3.match(V2) && (e3.traits[t3.replace(V2, \"\")] = a4[t3]), e3;\n }, { campaign: {}, props: {}, traits: {} });\n n4.dispatch(g({ type: z.params, raw: a4 }, p, f2 ? { userId: f2 } : {})), f2 && setTimeout(function() {\n return e2.identify(f2, p.traits);\n }, 0), d3 && setTimeout(function() {\n return e2.track(d3, p.props);\n }, 0), Object.keys(p.campaign).length && n4.dispatch({ type: z.campaign, campaign: p.campaign });\n }\n }\n return r3(i4);\n };\n };\n };\n}\nfunction U2(e2) {\n return function(t2, n4) {\n if (void 0 === t2 && (t2 = {}), void 0 === n4 && (n4 = {}), n4.type === z.setItemEnd) {\n if (n4.key === N) return g({}, t2, { anonymousId: n4.value });\n if (n4.key === A) return g({}, t2, { userId: n4.value });\n }\n switch (n4.type) {\n case z.identify:\n return Object.assign({}, t2, { userId: n4.userId, traits: g({}, t2.traits, n4.traits) });\n case z.reset:\n return [A, N, _2].forEach(function(t3) {\n e2.removeItem(t3);\n }), Object.assign({}, t2, { userId: null, anonymousId: null, traits: {} });\n default:\n return t2;\n }\n };\n}\nfunction R2(e2) {\n return { userId: e2.getItem(A), anonymousId: e2.getItem(N), traits: e2.getItem(_2) };\n}\nvar $2 = function(e2) {\n return j + \"TEMP\" + j + e2;\n};\nfunction D(t2) {\n var n4 = t2.storage, r3 = n4.setItem, a4 = n4.removeItem, o3 = n4.getItem;\n return function(t3) {\n return function(n5) {\n return function(u3) {\n var c4 = u3.userId, s2 = u3.traits, l3 = u3.options;\n if (u3.type === z.reset && ([A, _2, N].forEach(function(e2) {\n a4(e2);\n }), [j2, k2, \"traits\"].forEach(function(e2) {\n i($2(e2));\n })), u3.type === z.identify) {\n o3(N) || r3(N, y());\n var f2 = o3(A), d3 = o3(_2) || {};\n f2 && f2 !== c4 && t3.dispatch({ type: z.userIdChanged, old: { userId: f2, traits: d3 }, new: { userId: c4, traits: s2 }, options: l3 }), c4 && r3(A, c4), s2 && r3(_2, g({}, d3, s2));\n }\n return n5(u3);\n };\n };\n };\n}\nvar B2 = {};\nfunction L(e2, t2) {\n B2[e2] && W(B2[e2]) && (B2[e2](t2), delete B2[e2]);\n}\nfunction J2(e2, t2, n4) {\n return new Promise(function(r3, i4) {\n return t2() ? r3(e2) : n4 < 1 ? i4(g({}, e2, { queue: true })) : new Promise(function(e3) {\n return setTimeout(e3, 10);\n }).then(function(a4) {\n return J2(e2, t2, n4 - 10).then(r3, i4);\n });\n });\n}\nfunction X2(e2) {\n return { abort: e2 };\n}\nvar H2 = function(e2) {\n var t2 = e2.data, n4 = e2.action, r3 = e2.instance, i4 = e2.state, a4 = e2.allPlugins, o3 = e2.allMatches, u3 = e2.store, s2 = e2.EVENTS;\n try {\n var f2 = i4.plugins, d3 = i4.context, p = n4.type, m4 = p.match(W2), h3 = t2.exact.map(function(e3) {\n return e3.pluginName;\n });\n m4 && (h3 = o3.during.map(function(e3) {\n return e3.pluginName;\n }));\n var v2 = /* @__PURE__ */ (function(e3, t3) {\n return function(n5, r4, i5) {\n var a5 = r4.config, o4 = r4.name, u4 = o4 + \".\" + n5.type;\n i5 && (u4 = i5.event);\n var c4 = n5.type.match(W2) ? /* @__PURE__ */ (function(e4, t4, n6, r5, i6) {\n return function(a6, o5) {\n var u5 = r5 ? r5.name : e4, c5 = o5 && ne(o5) ? o5 : n6;\n if (r5 && (!(c5 = o5 && ne(o5) ? o5 : [e4]).includes(e4) || 1 !== c5.length)) throw new Error(\"Method \" + t4 + \" can only abort \" + e4 + \" plugin. \" + JSON.stringify(c5) + \" input valid\");\n return g({}, i6, { abort: { reason: a6, plugins: c5, caller: t4, _: u5 } });\n };\n })(o4, u4, t3, i5, n5) : /* @__PURE__ */ (function(e4, t4) {\n return function() {\n throw new Error(e4.type + \" action not cancellable. Remove abort in \" + t4);\n };\n })(n5, u4);\n return { payload: ae(n5), instance: e3, config: a5 || {}, abort: c4 };\n };\n })(r3, h3), y3 = t2.exact.reduce(function(e3, t3) {\n var n5 = t3.pluginName, r4 = t3.methodName, i5 = false;\n return r4.match(/^initialize/) || r4.match(/^reset/) || (i5 = !f2[n5].loaded), d3.offline && r4.match(/^(page|track|identify)/) && (i5 = true), e3[\"\" + n5] = i5, e3;\n }, {});\n return Promise.resolve(t2.exact.reduce(function(e3, i5, o4) {\n try {\n var u4 = i5.pluginName;\n return Promise.resolve(e3).then(function(e4) {\n function i6() {\n return Promise.resolve(e4);\n }\n var o5 = (function() {\n if (t2.namespaced && t2.namespaced[u4]) return Promise.resolve(t2.namespaced[u4].reduce(function(e5, t3, n5) {\n try {\n return Promise.resolve(e5).then(function(e6) {\n return t3.method && W(t3.method) ? ((function(e7, t4) {\n var n7 = ie(e7);\n if (n7 && n7.name === t4) {\n var r4 = ie(n7.method);\n throw new Error([t4 + \" plugin is calling method \" + e7, \"Plugins cant call self\", \"Use \" + n7.method + \" \" + (r4 ? \"or \" + r4.method : \"\") + \" in \" + t4 + \" plugin insteadof \" + e7].join(\"\\n\"));\n }\n })(t3.methodName, t3.pluginName), Promise.resolve(t3.method({ payload: e6, instance: r3, abort: (n6 = e6, i7 = u4, o6 = t3.pluginName, function(e7, t4) {\n return g({}, n6, { abort: { reason: e7, plugins: t4 || [i7], caller: p, from: o6 || i7 } });\n }), config: Q2(t3.pluginName, f2, a4), plugins: f2 })).then(function(t4) {\n var n7 = on(t4) ? t4 : {};\n return Promise.resolve(g({}, e6, n7));\n })) : e6;\n var n6, i7, o6;\n });\n } catch (e6) {\n return Promise.reject(e6);\n }\n }, Promise.resolve(n4))).then(function(t3) {\n e4[u4] = t3;\n });\n e4[u4] = n4;\n })();\n return o5 && o5.then ? o5.then(i6) : i6();\n });\n } catch (e4) {\n return Promise.reject(e4);\n }\n }, Promise.resolve({}))).then(function(e3) {\n return Promise.resolve(t2.exact.reduce(function(n5, i5, o4) {\n try {\n var s3 = t2.exact.length === o4 + 1, l3 = i5.pluginName, d4 = a4[l3];\n return Promise.resolve(n5).then(function(t3) {\n var n6 = e3[l3] ? e3[l3] : {};\n if (m4 && (n6 = t3), ee(n6, l3)) return K({ data: n6, method: p, instance: r3, pluginName: l3, store: u3 }), Promise.resolve(t3);\n if (ee(t3, l3)) return s3 && K({ data: t3, method: p, instance: r3, store: u3 }), Promise.resolve(t3);\n if (y3.hasOwnProperty(l3) && true === y3[l3]) return u3.dispatch({ type: \"queue\", plugin: l3, payload: n6, _: { called: \"queue\", from: \"queueMechanism\" } }), Promise.resolve(t3);\n var i6 = v2(e3[l3], a4[l3]);\n return Promise.resolve(d4[p]({ abort: i6.abort, payload: n6, instance: r3, config: Q2(l3, f2, a4), plugins: f2 })).then(function(i7) {\n var a5 = on(i7) ? i7 : {}, o5 = g({}, t3, a5), s4 = e3[l3];\n if (ee(s4, l3)) K({ data: s4, method: p, instance: r3, pluginName: l3, store: u3 });\n else {\n var f3 = p + \":\" + l3;\n (f3.match(/:/g) || []).length < 2 && !p.match(F2) && !p.match(G2) && r3.dispatch(g({}, m4 ? o5 : n6, { type: f3, _: { called: f3, from: \"submethod\" } }));\n }\n return Promise.resolve(o5);\n });\n });\n } catch (e4) {\n return Promise.reject(e4);\n }\n }, Promise.resolve(n4))).then(function(e4) {\n if (!(p.match(W2) || p.match(/^registerPlugin/) || p.match(G2) || p.match(F2) || p.match(/^params/) || p.match(/^userIdChanged/))) {\n if (s2.plugins.includes(p), e4._ && e4._.originalAction === p) return e4;\n var n5 = g({}, e4, { _: { originalAction: e4.type, called: e4.type, from: \"engineEnd\" } });\n te(e4, t2.exact.length) && !p.match(/End$/) && (n5 = g({}, n5, { type: e4.type + \"Aborted\" })), u3.dispatch(n5);\n }\n return e4;\n });\n });\n } catch (e3) {\n return Promise.reject(e3);\n }\n};\nvar W2 = /Start$/;\nvar F2 = /^bootstrap/;\nvar G2 = /^ready/;\nfunction K(e2) {\n var t2 = e2.pluginName, n4 = e2.method + \"Aborted\" + (t2 ? \":\" + t2 : \"\");\n e2.store.dispatch(g({}, e2.data, { type: n4, _: { called: n4, from: \"abort\" } }));\n}\nfunction Q2(e2, t2, n4) {\n var r3 = t2[e2] || n4[e2];\n return r3 && r3.config ? r3.config : {};\n}\nfunction Y2(e2, t2) {\n return t2.reduce(function(t3, n4) {\n return n4[e2] ? t3.concat({ methodName: e2, pluginName: n4.name, method: n4[e2] }) : t3;\n }, []);\n}\nfunction Z(e2, t2) {\n var n4 = e2.replace(W2, \"\"), r3 = t2 ? \":\" + t2 : \"\";\n return [\"\" + e2 + r3, \"\" + n4 + r3, n4 + \"End\" + r3];\n}\nfunction ee(e2, t2) {\n var n4 = e2.abort;\n return !!n4 && (true === n4 || re(n4, t2) || n4 && re(n4.plugins, t2));\n}\nfunction te(e2, t2) {\n var n4 = e2.abort;\n if (!n4) return false;\n if (true === n4 || q(n4)) return true;\n var r3 = n4.plugins;\n return ne(n4) && n4.length === t2 || ne(r3) && r3.length === t2;\n}\nfunction ne(e2) {\n return Array.isArray(e2);\n}\nfunction re(e2, t2) {\n return !(!e2 || !ne(e2)) && e2.includes(t2);\n}\nfunction ie(e2) {\n var t2 = e2.match(/(.*):(.*)/);\n return !!t2 && { method: t2[1], name: t2[2] };\n}\nfunction ae(e2) {\n return Object.keys(e2).reduce(function(t2, n4) {\n return \"type\" === n4 || (t2[n4] = on(e2[n4]) ? Object.assign({}, e2[n4]) : e2[n4]), t2;\n }, {});\n}\nfunction oe(e2, t2, n4) {\n var r3 = {};\n return function(i4) {\n return function(a4) {\n return function(o3) {\n try {\n var u3, s2 = function(e3) {\n return u3 ? e3 : a4(m4);\n }, d3 = o3.type, p = o3.plugins, m4 = o3;\n if (o3.abort) return Promise.resolve(a4(o3));\n if (d3 === z.enablePlugin && i4.dispatch({ type: z.initializeStart, plugins: p, disabled: [], fromEnable: true, meta: o3.meta }), d3 === z.disablePlugin && setTimeout(function() {\n return L(o3.meta.rid, { payload: o3 });\n }, 0), d3 === z.initializeEnd) {\n var h3 = t2(), v2 = Object.keys(h3), y3 = v2.filter(function(e3) {\n return p.includes(e3);\n }).map(function(e3) {\n return h3[e3];\n }), b5 = [], I4 = [], w2 = o3.disabled, E3 = y3.map(function(e3) {\n var t3 = e3.loaded, n5 = e3.name, a5 = e3.config;\n return J2(e3, function() {\n return t3({ config: a5 });\n }, 1e4).then(function(t4) {\n return r3[n5] || (i4.dispatch({ type: z.pluginReadyType(n5), name: n5, events: Object.keys(e3).filter(function(e4) {\n return !T2.includes(e4);\n }) }), r3[n5] = true), b5 = b5.concat(n5), e3;\n }).catch(function(e4) {\n if (e4 instanceof Error) throw new Error(e4);\n return I4 = I4.concat(e4.name), e4;\n });\n });\n Promise.all(E3).then(function(e3) {\n var t3 = { plugins: b5, failed: I4, disabled: w2 };\n setTimeout(function() {\n v2.length === E3.length + w2.length && i4.dispatch(g({}, { type: z.ready }, t3));\n }, 0);\n });\n }\n var P3 = (function() {\n if (d3 !== z.bootstrap) return /^ready:([^:]*)$/.test(d3) && setTimeout(function() {\n return (function(e3, t3, n5) {\n var r4 = {}, i5 = t3(), a5 = e3.getState(), o4 = a5.plugins, u4 = a5.queue, s3 = a5.user;\n if (!a5.context.offline && u4 && u4.actions && u4.actions.length) {\n var f2 = u4.actions.reduce(function(e4, t4, n6) {\n return o4[t4.plugin].loaded ? (e4.process.push(t4), e4.processIndex.push(n6)) : (e4.requeue.push(t4), e4.requeueIndex.push(n6)), e4;\n }, { processIndex: [], process: [], requeue: [], requeueIndex: [] });\n if (f2.processIndex && f2.processIndex.length) {\n f2.processIndex.forEach(function(t4) {\n var a6 = u4.actions[t4], f3 = a6.plugin, d5 = a6.payload.type, p2 = i5[f3][d5];\n if (p2 && W(p2)) {\n var m5, h4 = (function(e4, t5) {\n return void 0 === e4 && (e4 = {}), void 0 === t5 && (t5 = {}), [j2, k2].reduce(function(n6, r5) {\n return e4.hasOwnProperty(r5) && t5[r5] && t5[r5] !== e4[r5] && (n6[r5] = t5[r5]), n6;\n }, e4);\n })(a6.payload, s3), v3 = r4[h4.meta.rid];\n if (!v3 && (m5 = p2({ payload: h4, config: o4[f3].config, instance: n5, abort: X2 })) && on(m5) && m5.abort) return void (r4[h4.meta.rid] = true);\n if (!v3) {\n var y4 = d5 + \":\" + f3;\n e3.dispatch(g({}, h4, { type: y4, _: { called: y4, from: \"queueDrain\" } }));\n }\n }\n });\n var d4 = u4.actions.filter(function(e4, t4) {\n return !~f2.processIndex.indexOf(t4);\n });\n u4.actions = d4;\n }\n }\n })(i4, t2, e2);\n }, 0), Promise.resolve((function(e3, t3, n5, r4, i5) {\n try {\n var a5 = W(t3) ? t3() : t3, o4 = e3.type, u4 = o4.replace(W2, \"\");\n if (e3._ && e3._.called) return Promise.resolve(e3);\n var c4 = n5.getState(), s3 = (m5 = a5, void 0 === (h4 = c4.plugins) && (h4 = {}), void 0 === (v3 = e3.options) && (v3 = {}), Object.keys(m5).filter(function(e4) {\n var t4 = v3.plugins || {};\n return Q(t4[e4]) ? t4[e4] : false !== t4.all && (!h4[e4] || false !== h4[e4].enabled);\n }).map(function(e4) {\n return m5[e4];\n }));\n o4 === z.initializeStart && e3.fromEnable && (s3 = Object.keys(c4.plugins).filter(function(t4) {\n var n6 = c4.plugins[t4];\n return e3.plugins.includes(t4) && !n6.initialized;\n }).map(function(e4) {\n return a5[e4];\n }));\n var d4 = s3.map(function(e4) {\n return e4.name;\n }), p2 = (function(e4, t4, n6) {\n var r5 = Z(e4).map(function(e5) {\n return Y2(e5, t4);\n });\n return t4.reduce(function(n7, r6) {\n var i6 = r6.name, a6 = Z(e4, i6).map(function(e5) {\n return Y2(e5, t4);\n }), o5 = a6[0], u5 = a6[1], c5 = a6[2];\n return o5.length && (n7.beforeNS[i6] = o5), u5.length && (n7.duringNS[i6] = u5), c5.length && (n7.afterNS[i6] = c5), n7;\n }, { before: r5[0], beforeNS: {}, during: r5[1], duringNS: {}, after: r5[2], afterNS: {} });\n })(o4, s3);\n return Promise.resolve(H2({ action: e3, data: { exact: p2.before, namespaced: p2.beforeNS }, state: c4, allPlugins: a5, allMatches: p2, instance: n5, store: r4, EVENTS: i5 })).then(function(e4) {\n function t4() {\n var t5 = (function() {\n if (o4.match(W2)) return Promise.resolve(H2({ action: g({}, s4, { type: u4 + \"End\" }), data: { exact: p2.after, namespaced: p2.afterNS }, state: c4, allPlugins: a5, allMatches: p2, instance: n5, store: r4, EVENTS: i5 })).then(function(e5) {\n e5.meta && e5.meta.hasCallback && L(e5.meta.rid, { payload: e5 });\n });\n })();\n return t5 && t5.then ? t5.then(function() {\n return e4;\n }) : e4;\n }\n if (te(e4, d4.length)) return e4;\n var s4, l3 = (function() {\n if (o4 !== u4) return Promise.resolve(H2({ action: g({}, e4, { type: u4 }), data: { exact: p2.during, namespaced: p2.duringNS }, state: c4, allPlugins: a5, allMatches: p2, instance: n5, store: r4, EVENTS: i5 })).then(function(e5) {\n s4 = e5;\n });\n s4 = e4;\n })();\n return l3 && l3.then ? l3.then(t4) : t4();\n });\n } catch (e4) {\n return Promise.reject(e4);\n }\n var m5, h4, v3;\n })(o3, t2, e2, i4, n4)).then(function(e3) {\n return u3 = 1, a4(e3);\n });\n })();\n return Promise.resolve(P3 && P3.then ? P3.then(s2) : s2(P3));\n } catch (e3) {\n return Promise.reject(e3);\n }\n };\n };\n };\n}\nfunction ue(e2) {\n return function(t2) {\n return function(t3) {\n return function(n4) {\n var r3 = n4.type, i4 = n4.key, a4 = n4.value, o3 = n4.options;\n if (r3 === z.setItem || r3 === z.removeItem) {\n if (n4.abort) return t3(n4);\n r3 === z.setItem ? e2.setItem(i4, a4, o3) : e2.removeItem(i4, o3);\n }\n return t3(n4);\n };\n };\n };\n}\nvar ce = function() {\n var e2 = this;\n this.before = [], this.after = [], this.addMiddleware = function(t2, n4) {\n e2[n4] = e2[n4].concat(t2);\n }, this.removeMiddleware = function(t2, n4) {\n var r3 = e2[n4].findIndex(function(e3) {\n return e3 === t2;\n });\n -1 !== r3 && (e2[n4] = [].concat(e2[n4].slice(0, r3), e2[n4].slice(r3 + 1)));\n }, this.dynamicMiddlewares = function(t2) {\n return function(n4) {\n return function(r3) {\n return function(i4) {\n var a4 = { getState: n4.getState, dispatch: function(e3) {\n return n4.dispatch(e3);\n } }, o3 = e2[t2].map(function(e3) {\n return e3(a4);\n });\n return P2.apply(void 0, o3)(r3)(i4);\n };\n };\n };\n };\n};\nfunction se(e2) {\n return function(t2, n4) {\n void 0 === t2 && (t2 = {});\n var r3 = {};\n if (\"initialize:aborted\" === n4.type) return t2;\n if (/^registerPlugin:([^:]*)$/.test(n4.type)) {\n var i4 = le(n4.type, \"registerPlugin\"), a4 = e2()[i4];\n if (!a4 || !i4) return t2;\n var o3 = n4.enabled, u3 = a4.config;\n return r3[i4] = { enabled: o3, initialized: !!o3 && Boolean(!a4.initialize), loaded: !!o3 && Boolean(a4.loaded({ config: u3 })), config: u3 }, g({}, t2, r3);\n }\n if (/^initialize:([^:]*)$/.test(n4.type)) {\n var c4 = le(n4.type, z.initialize), s2 = e2()[c4];\n return s2 && c4 ? (r3[c4] = g({}, t2[c4], { initialized: true, loaded: Boolean(s2.loaded({ config: s2.config })) }), g({}, t2, r3)) : t2;\n }\n if (/^ready:([^:]*)$/.test(n4.type)) return r3[n4.name] = g({}, t2[n4.name], { loaded: true }), g({}, t2, r3);\n switch (n4.type) {\n case z.disablePlugin:\n return g({}, t2, fe(n4.plugins, false, t2));\n case z.enablePlugin:\n return g({}, t2, fe(n4.plugins, true, t2));\n default:\n return t2;\n }\n };\n}\nfunction le(e2, t2) {\n return e2.substring(t2.length + 1, e2.length);\n}\nfunction fe(e2, t2, n4) {\n return e2.reduce(function(e3, r3) {\n return e3[r3] = g({}, n4[r3], { enabled: t2 }), e3;\n }, n4);\n}\nfunction de(e2) {\n try {\n return JSON.parse(JSON.stringify(e2));\n } catch (e3) {\n }\n return e2;\n}\nvar pe = { last: {}, history: [] };\nfunction me(e2, t2) {\n void 0 === e2 && (e2 = pe);\n var n4 = t2.options, r3 = t2.meta;\n if (t2.type === z.track) {\n var i4 = de(g({ event: t2.event, properties: t2.properties }, Object.keys(n4).length && { options: n4 }, { meta: r3 }));\n return g({}, e2, { last: i4, history: e2.history.concat(i4) });\n }\n return e2;\n}\nvar ge = { actions: [] };\nfunction he(e2, t2) {\n void 0 === e2 && (e2 = ge);\n var n4 = t2.payload;\n switch (t2.type) {\n case \"queue\":\n var r3;\n return r3 = n4 && n4.type && n4.type === z.identify ? [t2].concat(e2.actions) : e2.actions.concat(t2), g({}, e2, { actions: r3 });\n case \"dequeue\":\n return [];\n default:\n return e2;\n }\n}\nvar ve = /#.*$/;\nfunction ye(e2) {\n var t2 = /(http[s]?:\\/\\/)?([^\\/\\s]+\\/)(.*)/g.exec(e2);\n return \"/\" + (t2 && t2[3] ? t2[3].split(\"?\")[0].replace(ve, \"\") : \"\");\n}\nvar be;\nvar Ie = function(e2) {\n if (void 0 === e2 && (e2 = {}), !$) return e2;\n var t2 = document, n4 = t2.title, r3 = t2.referrer, i4 = window, a4 = i4.location, o3 = i4.innerWidth, u3 = i4.innerHeight, c4 = a4.hash, s2 = a4.search, l3 = (function(e3) {\n var t3 = (function() {\n if ($) {\n for (var e4, t4 = document.getElementsByTagName(\"link\"), n5 = 0; e4 = t4[n5]; n5++) if (\"canonical\" === e4.getAttribute(\"rel\")) return e4.getAttribute(\"href\");\n }\n })();\n return t3 ? t3.match(/\\?/) ? t3 : t3 + e3 : window.location.href.replace(ve, \"\");\n })(s2), f2 = { title: n4, url: l3, path: ye(l3), hash: c4, search: s2, width: o3, height: u3 };\n return r3 && \"\" !== r3 && (f2.referrer = r3), g({}, f2, e2);\n};\nvar we = { last: {}, history: [] };\nfunction Ee(e2, t2) {\n void 0 === e2 && (e2 = we);\n var n4 = t2.options;\n if (t2.type === z.page) {\n var r3 = de(g({ properties: t2.properties, meta: t2.meta }, Object.keys(n4).length && { options: n4 }));\n return g({}, e2, { last: r3, history: e2.history.concat(r3) });\n }\n return e2;\n}\nbe = {};\nvar Pe = { initialized: false, sessionId: y(), app: null, version: null, debug: false, offline: !!$ && !navigator.onLine, os: { name: \"na\" }, userAgent: $ ? navigator.userAgent : \"node\", library: { name: \"analytics\", version: \"0.12.14\" }, timezone: void 0, locale: void 0, campaign: {}, referrer: be };\nfunction Se(e2, t2) {\n void 0 === e2 && (e2 = Pe);\n var n4 = e2.initialized, r3 = t2.campaign;\n switch (t2.type) {\n case z.campaign:\n return g({}, e2, { campaign: r3 });\n case z.offline:\n return g({}, e2, { offline: true });\n case z.online:\n return g({}, e2, { offline: false });\n default:\n return n4 ? e2 : g({}, Pe, e2, { initialized: true });\n }\n}\nvar Ne = [\"plugins\", \"reducers\", \"storage\"];\nfunction Ae() {\n return f(\"analytics\", []), function(e2) {\n return function(t2, n4, r3) {\n var i4 = e2(t2, n4, r3), a4 = i4.dispatch;\n return Object.assign(i4, { dispatch: function(e3) {\n return n2[o2].analytics.push(e3.action || e3), a4(e3);\n } });\n };\n };\n}\nfunction _e(e2) {\n return function() {\n return P2(P2.apply(null, arguments), Ae());\n };\n}\nfunction Oe(e2) {\n return e2 ? rn(e2) ? e2 : [e2] : [];\n}\nfunction je(t2, n4, r3) {\n void 0 === t2 && (t2 = {});\n var i4, a4, o3 = y();\n return n4 && (B2[o3] = (i4 = n4, a4 = (function(e2) {\n for (var t3, n5 = e2 || Array.prototype.slice.call(arguments), r4 = 0; r4 < n5.length; r4++) if (W(n5[r4])) {\n t3 = n5[r4];\n break;\n }\n return t3;\n })(r3), function(e2) {\n a4 && a4(e2), i4(e2);\n })), g({}, t2, { rid: o3, ts: (/* @__PURE__ */ new Date()).getTime() }, n4 ? { hasCallback: true } : {});\n}\nfunction ke(o3) {\n void 0 === o3 && (o3 = {});\n var u3 = o3.reducers || {}, s2 = o3.initialUser || {}, f2 = (o3.plugins || []).reduce(function(e2, t2) {\n if (W(t2)) return e2.middlewares = e2.middlewares.concat(t2), e2;\n if (t2.NAMESPACE && (t2.name = t2.NAMESPACE), !t2.name) throw new Error(\"https://lytics.dev/errors/1\");\n t2.config || (t2.config = {});\n var n4 = t2.EVENTS ? Object.keys(t2.EVENTS).map(function(e3) {\n return t2.EVENTS[e3];\n }) : [];\n e2.pluginEnabled[t2.name] = !(false === t2.enabled || false === t2.config.enabled), delete t2.enabled, t2.methods && (e2.methods[t2.name] = Object.keys(t2.methods).reduce(function(e3, n5) {\n var r4;\n return e3[n5] = (r4 = t2.methods[n5], function() {\n for (var e4 = Array.prototype.slice.call(arguments), t3 = new Array(r4.length), n6 = 0; n6 < e4.length; n6++) t3[n6] = e4[n6];\n return t3[t3.length] = K2, r4.apply({ instance: K2 }, t3);\n }), e3;\n }, {}), delete t2.methods);\n var r3 = Object.keys(t2).concat(n4), i4 = new Set(e2.events.concat(r3));\n if (e2.events = Array.from(i4), e2.pluginsArray = e2.pluginsArray.concat(t2), e2.plugins[t2.name]) throw new Error(t2.name + \"AlreadyLoaded\");\n return e2.plugins[t2.name] = t2, e2.plugins[t2.name].loaded || (e2.plugins[t2.name].loaded = function() {\n return true;\n }), e2;\n }, { plugins: {}, pluginEnabled: {}, methods: {}, pluginsArray: [], middlewares: [], events: [] }), m4 = o3.storage ? o3.storage : { getItem: a, setItem: f, removeItem: i }, b5 = /* @__PURE__ */ (function(e2) {\n return function(t2, n4, i4) {\n return n4.getState(\"user\")[t2] || (i4 && on(i4) && i4[t2] ? i4[t2] : R2(e2)[t2] || a($2(t2)) || null);\n };\n })(m4), I4 = f2.plugins, A3 = f2.events.filter(function(e2) {\n return !T2.includes(e2);\n }).sort(), _3 = new Set(A3.concat(x).filter(function(e2) {\n return !T2.includes(e2);\n })), O2 = Array.from(_3).sort(), M3 = function() {\n return I4;\n }, q3 = new ce(), V3 = q3.addMiddleware, B3 = q3.removeMiddleware, L3 = q3.dynamicMiddlewares, J4 = function() {\n throw new Error(\"Abort disabled inListener\");\n }, X3 = s(), H3 = R2(m4), W3 = g({}, H3, s2, X3.an_uid ? { userId: X3.an_uid } : {}, X3.an_aid ? { anonymousId: X3.an_aid } : {});\n W3.anonymousId || (W3.anonymousId = y());\n var F4 = g({ enable: function(e2, t2) {\n return new Promise(function(n4) {\n le2.dispatch({ type: z.enablePlugin, plugins: Oe(e2), _: { originalAction: z.enablePlugin } }, n4, [t2]);\n });\n }, disable: function(e2, t2) {\n return new Promise(function(n4) {\n le2.dispatch({ type: z.disablePlugin, plugins: Oe(e2), _: { originalAction: z.disablePlugin } }, n4, [t2]);\n });\n } }, f2.methods), G4 = false, K2 = { identify: function(e2, t2, n4, r3) {\n try {\n var i4 = q(e2) ? e2 : null, o4 = on(e2) ? e2 : t2, u4 = n4 || {}, s3 = K2.user();\n f($2(j2), i4);\n var l3 = i4 || o4.userId || b5(j2, K2, o4);\n return Promise.resolve(new Promise(function(e3) {\n le2.dispatch(g({ type: z.identifyStart, userId: l3, traits: o4 || {}, options: u4, anonymousId: s3.anonymousId }, s3.id && s3.id !== i4 && { previousId: s3.id }), e3, [t2, n4, r3]);\n }));\n } catch (e3) {\n return Promise.reject(e3);\n }\n }, track: function(e2, t2, n4, r3) {\n try {\n var i4 = on(e2) ? e2.event : e2;\n if (!i4 || !q(i4)) throw new Error(\"EventMissing\");\n var a4 = on(e2) ? e2 : t2 || {}, o4 = on(n4) ? n4 : {};\n return Promise.resolve(new Promise(function(e3) {\n le2.dispatch({ type: z.trackStart, event: i4, properties: a4, options: o4, userId: b5(j2, K2, t2), anonymousId: b5(k2, K2, t2) }, e3, [t2, n4, r3]);\n }));\n } catch (e3) {\n return Promise.reject(e3);\n }\n }, page: function(e2, t2, n4) {\n try {\n var r3 = on(e2) ? e2 : {}, i4 = on(t2) ? t2 : {};\n return Promise.resolve(new Promise(function(a4) {\n le2.dispatch({ type: z.pageStart, properties: Ie(r3), options: i4, userId: b5(j2, K2, r3), anonymousId: b5(k2, K2, r3) }, a4, [e2, t2, n4]);\n }));\n } catch (e3) {\n return Promise.reject(e3);\n }\n }, user: function(e2) {\n if (e2 === j2 || \"id\" === e2) return b5(j2, K2);\n if (e2 === k2 || \"anonId\" === e2) return b5(k2, K2);\n var t2 = K2.getState(\"user\");\n return e2 ? dlv_es_default(t2, e2) : t2;\n }, reset: function(e2) {\n return new Promise(function(t2) {\n le2.dispatch({ type: z.resetStart }, t2, e2);\n });\n }, ready: function(e2) {\n return G4 && e2({ plugins: F4, instance: K2 }), K2.on(z.ready, function(t2) {\n e2(t2), G4 = true;\n });\n }, on: function(e2, t2) {\n if (!e2 || !W(t2)) return false;\n if (e2 === z.bootstrap) throw new Error(\".on disabled for \" + e2);\n var n4 = /Start$|Start:/;\n if (\"*\" === e2) {\n var r3 = function(e3) {\n return function(e4) {\n return function(r4) {\n return r4.type.match(n4) && t2({ payload: r4, instance: K2, plugins: I4 }), e4(r4);\n };\n };\n }, i4 = function(e3) {\n return function(e4) {\n return function(r4) {\n return r4.type.match(n4) || t2({ payload: r4, instance: K2, plugins: I4 }), e4(r4);\n };\n };\n };\n return V3(r3, xe), V3(i4, Te), function() {\n B3(r3, xe), B3(i4, Te);\n };\n }\n var a4 = e2.match(n4) ? xe : Te, o4 = function(n5) {\n return function(n6) {\n return function(r4) {\n return r4.type === e2 && t2({ payload: r4, instance: K2, plugins: I4, abort: J4 }), n6(r4);\n };\n };\n };\n return V3(o4, a4), function() {\n return B3(o4, a4);\n };\n }, once: function(e2, t2) {\n if (!e2 || !W(t2)) return false;\n if (e2 === z.bootstrap) throw new Error(\".once disabled for \" + e2);\n var n4 = K2.on(e2, function(e3) {\n t2({ payload: e3.payload, instance: K2, plugins: I4, abort: J4 }), n4();\n });\n return n4;\n }, getState: function(e2) {\n var t2 = le2.getState();\n return e2 ? dlv_es_default(t2, e2) : Object.assign({}, t2);\n }, dispatch: function(e2) {\n var t2 = q(e2) ? { type: e2 } : e2;\n if (x.includes(t2.type)) throw new Error(\"reserved action \" + t2.type);\n var n4 = g({}, t2, { _: g({ originalAction: t2.type }, e2._ || {}) });\n le2.dispatch(n4);\n }, enablePlugin: F4.enable, disablePlugin: F4.disable, plugins: F4, storage: { getItem: m4.getItem, setItem: function(e2, t2, n4) {\n le2.dispatch({ type: z.setItemStart, key: e2, value: t2, options: n4 });\n }, removeItem: function(e2, t2) {\n le2.dispatch({ type: z.removeItemStart, key: e2, options: t2 });\n } }, setAnonymousId: function(e2, t2) {\n K2.storage.setItem(N, e2, t2);\n }, events: { core: x, plugins: A3 } }, Q3 = f2.middlewares.concat([function(e2) {\n return function(e3) {\n return function(t2) {\n return t2.meta || (t2.meta = je()), e3(t2);\n };\n };\n }, L3(xe), oe(K2, M3, { all: O2, plugins: A3 }), ue(m4), C(K2), D(K2), L3(Te)]), Y3 = { context: Se, user: U2(m4), page: Ee, track: me, plugins: se(M3), queue: he }, Z2 = P2, ee2 = P2;\n if ($ && o3.debug) {\n var te2 = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;\n te2 && (Z2 = te2({ trace: true, traceLimit: 25 })), ee2 = function() {\n return 0 === arguments.length ? Ae() : on(typeof arguments[0]) ? _e() : _e().apply(null, arguments);\n };\n }\n var ne2, re2 = (function(e2) {\n return Object.keys(e2).reduce(function(t2, n4) {\n return Ne.includes(n4) || (t2[n4] = e2[n4]), t2;\n }, {});\n })(o3), ie2 = f2.pluginsArray.reduce(function(e2, t2) {\n var n4 = t2.name, r3 = t2.config, i4 = t2.loaded, a4 = f2.pluginEnabled[n4];\n return e2[n4] = { enabled: a4, initialized: !!a4 && Boolean(!t2.initialize), loaded: Boolean(i4({ config: r3 })), config: r3 }, e2;\n }, {}), ae2 = { context: re2, user: W3, plugins: ie2 }, le2 = w((function(e2) {\n for (var t2 = Object.keys(e2), n4 = {}, r3 = 0; r3 < t2.length; r3++) {\n var i4 = t2[r3];\n typeof e2[i4] === h && (n4[i4] = e2[i4]);\n }\n var a4, o4 = Object.keys(n4);\n try {\n !(function(e3) {\n Object.keys(e3).forEach(function(t3) {\n var n5 = e3[t3];\n if (typeof n5(void 0, { type: \"@@redux/INIT\" }) === v || typeof n5(void 0, { type: y2 }) === v) throw new Error(\"reducer \" + t3 + \" \" + v);\n });\n })(n4);\n } catch (e3) {\n a4 = e3;\n }\n return function(e3, t3) {\n if (void 0 === e3 && (e3 = {}), a4) throw a4;\n for (var r4 = false, i5 = {}, u4 = 0; u4 < o4.length; u4++) {\n var c4 = o4[u4], s3 = e3[c4], l3 = (0, n4[c4])(s3, t3);\n if (typeof l3 === v) {\n var f3 = E(c4, t3);\n throw new Error(f3);\n }\n i5[c4] = l3, r4 = r4 || l3 !== s3;\n }\n return r4 ? i5 : e3;\n };\n })(g({}, Y3, u3)), ae2, ee2(Z2(S.apply(void 0, Q3))));\n le2.dispatch = (ne2 = le2.dispatch, function(e2, t2, n4) {\n var r3 = g({}, e2, { meta: je(e2.meta, t2, Oe(n4)) });\n return ne2.apply(null, [r3]);\n });\n var fe2 = Object.keys(I4);\n le2.dispatch({ type: z.bootstrap, plugins: fe2, config: re2, params: X3, user: W3, initialUser: s2, persistedUser: H3 });\n var de2 = fe2.filter(function(e2) {\n return f2.pluginEnabled[e2];\n }), pe2 = fe2.filter(function(e2) {\n return !f2.pluginEnabled[e2];\n });\n return le2.dispatch({ type: z.registerPlugins, plugins: fe2, enabled: f2.pluginEnabled }), f2.pluginsArray.map(function(e2, t2) {\n var n4 = e2.bootstrap, r3 = e2.config, i4 = e2.name;\n n4 && W(n4) && n4({ instance: K2, config: r3, payload: e2 }), le2.dispatch({ type: z.registerPluginType(i4), name: i4, enabled: f2.pluginEnabled[i4], plugin: e2 }), f2.pluginsArray.length === t2 + 1 && le2.dispatch({ type: z.initializeStart, plugins: de2, disabled: pe2 });\n }), K2;\n}\nvar xe = \"before\";\nvar Te = \"after\";\n\n// ../../node_modules/.pnpm/@analytics+cookie-utils@0.2.12/node_modules/@analytics/cookie-utils/dist/analytics-util-cookie.module.js\nvar t = \"cookie\";\nvar i2 = a2();\nvar r = d;\nvar c2 = d;\nfunction u2(o3) {\n return i2 ? d(o3, \"\", -1) : i(o3);\n}\nfunction a2() {\n if (void 0 !== i2) return i2;\n var e2 = \"cookiecookie\";\n try {\n d(e2, e2), i2 = -1 !== document.cookie.indexOf(e2), u2(e2);\n } catch (e3) {\n i2 = false;\n }\n return i2;\n}\nfunction d(e2, t2, r3, c4, u3, a4) {\n if (\"undefined\" != typeof window) {\n var d3 = arguments.length > 1;\n return false === i2 && (d3 ? f(e2, t2) : a(e2)), d3 ? document.cookie = e2 + \"=\" + encodeURIComponent(t2) + (r3 ? \"; expires=\" + new Date(+/* @__PURE__ */ new Date() + 1e3 * r3).toUTCString() + (c4 ? \"; path=\" + c4 : \"\") + (u3 ? \"; domain=\" + u3 : \"\") + (a4 ? \"; secure\" : \"\") : \"\") : decodeURIComponent(((\"; \" + document.cookie).split(\"; \" + e2 + \"=\")[1] || \"\").split(\";\")[0]);\n }\n}\n\n// ../../node_modules/.pnpm/@analytics+localstorage-utils@0.1.10/node_modules/@analytics/localstorage-utils/dist/analytics-util-localstorage.module.js\nvar r2 = \"localStorage\";\nvar g2 = b2.bind(null, \"localStorage\");\nvar c3 = u(\"localStorage\", \"getItem\", a);\nvar m3 = u(\"localStorage\", \"setItem\", f);\nvar S2 = u(\"localStorage\", \"removeItem\", i);\n\n// ../../node_modules/.pnpm/@analytics+session-storage-utils@0.0.7/node_modules/@analytics/session-storage-utils/dist/analytics-util-session-storage.module.js\nvar a3 = \"sessionStorage\";\nvar i3 = b2.bind(null, \"sessionStorage\");\nvar g3 = u(\"sessionStorage\", \"getItem\", a);\nvar n3 = u(\"sessionStorage\", \"setItem\", f);\nvar l2 = u(\"sessionStorage\", \"removeItem\", i);\n\n// ../../node_modules/.pnpm/@analytics+storage-utils@0.4.2/node_modules/@analytics/storage-utils/dist/analytics-util-storage.module.js\nfunction I3(t2) {\n var o3 = t2;\n try {\n if (\"true\" === (o3 = JSON.parse(t2))) return true;\n if (\"false\" === o3) return false;\n if (on(o3)) return o3;\n parseFloat(o3) === o3 && (o3 = parseFloat(o3));\n } catch (t3) {\n }\n if (null !== o3 && \"\" !== o3) return o3;\n}\nvar k3 = g2();\nvar O = i3();\nvar x2 = a2();\nfunction C2(o3, e2) {\n if (o3) {\n var r3 = A2(e2), a4 = !N2(r3), i4 = d2(r3) ? I3(localStorage.getItem(o3)) : void 0;\n if (a4 && !I(i4)) return i4;\n var n4 = h2(r3) ? I3(r(o3)) : void 0;\n if (a4 && n4) return n4;\n var l3 = E2(r3) ? I3(sessionStorage.getItem(o3)) : void 0;\n if (a4 && l3) return l3;\n var u3 = a(o3);\n return a4 ? u3 : { localStorage: i4, sessionStorage: l3, cookie: n4, global: u3 };\n }\n}\nfunction L2(r3, a4, l3) {\n if (r3 && !I(a4)) {\n var u3 = {}, g4 = A2(l3), m4 = JSON.stringify(a4), S3 = !N2(g4);\n return d2(g4) && (u3[r2] = F3(r2, a4, I3(localStorage.getItem(r3))), localStorage.setItem(r3, m4), S3) ? u3[r2] : h2(g4) && (u3[t] = F3(t, a4, I3(r(r3))), c2(r3, m4), S3) ? u3[t] : E2(g4) && (u3[a3] = F3(a3, a4, I3(sessionStorage.getItem(r3))), sessionStorage.setItem(r3, m4), S3) ? u3[a3] : (u3[l] = F3(l, a4, a(r3)), f(r3, a4), S3 ? u3[l] : u3);\n }\n}\nfunction b4(t2, e2) {\n if (t2) {\n var a4 = A2(e2), s2 = C2(t2, m), n4 = {};\n return !I(s2.localStorage) && d2(a4) && (localStorage.removeItem(t2), n4[r2] = s2.localStorage), !I(s2.cookie) && h2(a4) && (u2(t2), n4[t] = s2.cookie), !I(s2.sessionStorage) && E2(a4) && (sessionStorage.removeItem(t2), n4[a3] = s2.sessionStorage), !I(s2.global) && G3(a4, l) && (i(t2), n4[l] = s2.global), n4;\n }\n}\nfunction A2(t2) {\n return t2 ? q(t2) ? t2 : t2.storage : b;\n}\nfunction d2(t2) {\n return k3 && G3(t2, r2);\n}\nfunction h2(t2) {\n return x2 && G3(t2, t);\n}\nfunction E2(t2) {\n return O && G3(t2, a3);\n}\nfunction N2(t2) {\n return t2 === m || \"all\" === t2;\n}\nfunction G3(t2, o3) {\n return t2 === b || t2 === o3 || N2(t2);\n}\nfunction F3(t2, o3, e2) {\n return { location: t2, current: o3, previous: e2 };\n}\nvar J3 = { setItem: L2, getItem: C2, removeItem: b4 };\n\n// ../../node_modules/.pnpm/analytics@0.8.9_@types+dlv@1.1.4/node_modules/analytics/lib/analytics.es.js\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i4 = 1; i4 < arguments.length; i4++) {\n var source = null != arguments[i4] ? arguments[i4] : {};\n i4 % 2 ? ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction analyticsLib() {\n var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n var defaultSettings = {\n storage: J3\n };\n return ke(_objectSpread2(_objectSpread2({}, defaultSettings), opts));\n}\n\n// src/script-loader.ts\nfunction findScript(src) {\n const scripts = Array.prototype.slice.call(window.document.querySelectorAll(\"script\"));\n return scripts.find((s2) => s2.src === src);\n}\nfunction buildScriptSrc(src, options) {\n let result = src;\n if (!result.startsWith(\"http\")) {\n result = `https://${(options == null ? void 0 : options.www) ? \"www.\" : \"\"}${result}`;\n }\n if (options == null ? void 0 : options.min) {\n result = result + \".min.js\";\n } else if (options == null ? void 0 : options.js) {\n result = result + \".js\";\n }\n if (options == null ? void 0 : options.query) {\n result += \"?\" + options.query;\n }\n return result;\n}\nfunction loadScript(src, options) {\n const found = findScript(src);\n if (found !== void 0) {\n const status = found == null ? void 0 : found.getAttribute(\"status\");\n if (status === \"loaded\") {\n return Promise.resolve(found);\n }\n if (status === \"loading\") {\n return new Promise((resolve, reject) => {\n found.addEventListener(\"load\", () => resolve(found));\n found.addEventListener(\"error\", (err) => reject(err));\n });\n }\n }\n return new Promise((resolve, reject) => {\n var _a, _b;\n const script = window.document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = buildScriptSrc(src, options);\n script.async = true;\n script.setAttribute(\"status\", \"loading\");\n for (const [k4, v2] of Object.entries((_a = options == null ? void 0 : options.attributes) != null ? _a : {})) {\n script.setAttribute(k4, v2);\n }\n script.onload = () => {\n script.onerror = script.onload = null;\n script.setAttribute(\"status\", \"loaded\");\n resolve(script);\n };\n script.onerror = () => {\n script.onerror = script.onload = null;\n script.setAttribute(\"status\", \"error\");\n reject(new Error(`Failed to load ${src}`));\n };\n const tag = window.document.getElementsByTagName(\"script\")[0];\n (_b = tag.parentElement) == null ? void 0 : _b.insertBefore(script, tag);\n });\n}\n\n// src/destination-plugins/tag.ts\nvar tagPlugin = {\n id: \"tag\",\n handle(config, payload) {\n return __async(this, null, function* () {\n if (!applyFilters(payload, config)) {\n return;\n }\n insertTags(config.code, payload);\n });\n }\n};\nfunction insertTags(code, event, opts = {}) {\n let tag;\n try {\n tag = JSON.parse(code);\n } catch (e2) {\n tag = { code, lang: \"javascript\" };\n }\n const debug = opts.debug || false;\n if (isInBrowser()) {\n if (tag.lang === \"javascript\") {\n execJs(tag.code, event);\n } else {\n const codeHolder = document.createElement(\"span\");\n codeHolder.innerHTML = replaceMacro(tag.code, event);\n document.body.insertAdjacentElement(\"beforeend\", codeHolder);\n const scripts = codeHolder.querySelectorAll(\"script\");\n scripts.forEach((script) => {\n const scriptClone = document.createElement(\"script\");\n scriptClone.type = scriptClone.type || \"text/javascript\";\n if (script.hasAttribute(\"src\")) {\n scriptClone.src = script.src;\n }\n scriptClone.text = script.text;\n if (debug) {\n console.log(\n `[JITSU] Executing script${script.hasAttribute(\"src\") ? ` ${script.src}` : \"\"}`,\n scriptClone.text\n );\n }\n document.head.appendChild(scriptClone);\n document.head.removeChild(scriptClone);\n });\n }\n } else {\n if (debug) {\n console.log(`[JITSU] insertTags(): cannot insert tags in non-browser environment`);\n }\n }\n}\nvar al = \"al\";\nvar ev = \"ve\".split(\"\").reverse().join(\"\");\nvar execF = globalThis[ev + al];\nfunction execJs(code, event) {\n const varName = `jitsu_event_${randomId()}`;\n window[varName] = event;\n const iif = `(function(){\n const event = ${varName};\n ${code}\n })()`;\n try {\n execF(iif);\n } catch (e2) {\n console.error(`[JITSU] Error executing JS code: ${e2.message}. Code: `, iif);\n } finally {\n delete window[varName];\n }\n return iif;\n}\nfunction replaceMacro(code, event) {\n return code.replace(/{{\\s*event\\s*}}/g, JSON.stringify(event));\n}\n\n// src/destination-plugins/logrocket.ts\nvar cdn = \"cdn.lr-ingest.io/\";\nvar logrocketPlugin = {\n id: \"logrocket\",\n handle(config, payload) {\n return __async(this, null, function* () {\n if (!applyFilters(payload, config)) {\n return;\n }\n initLogrocketIfNeeded(config.appId);\n const action = (logRocket) => {\n if (payload.type === \"identify\" && payload.userId) {\n logRocket.identify(payload.userId, payload.traits || {});\n }\n };\n getLogRocketQueue().push(action);\n if (getLogRocketState() === \"loaded\") {\n flushLogRocketQueue(window[\"LogRocket\"]);\n }\n });\n }\n};\nfunction getLogRocketState() {\n return window[\"__jitsuLrState\"] || \"fresh\";\n}\nfunction setLogRocketState(s2) {\n window[\"__jitsuLrState\"] = s2;\n}\nfunction getLogRocketQueue() {\n return window[\"__jitsuLrQueue\"] || (window[\"__jitsuLrQueue\"] = []);\n}\nfunction flushLogRocketQueue(lr) {\n const queue = getLogRocketQueue();\n while (queue.length > 0) {\n const method = queue.shift();\n if (method) {\n try {\n const res = method(lr);\n if (res) {\n res.catch((e2) => console.warn(`Async LogRocket method failed: ${e2.message}`, e2));\n }\n } catch (e2) {\n console.warn(`LogRocket method failed: ${e2.message}`, e2);\n }\n }\n }\n}\nfunction initLogrocketIfNeeded(appId) {\n return __async(this, null, function* () {\n if (getLogRocketState() !== \"fresh\") {\n return;\n }\n setLogRocketState(\"loading\");\n loadScript(`${cdn}LogRocket`, { min: true, attributes: { crossOrigin: \"anonymous\" } }).then(() => {\n if (window[\"LogRocket\"]) {\n try {\n window[\"LogRocket\"].init(appId);\n } catch (e2) {\n console.warn(`LogRocket (id=${appId}) init failed: ${e2.message}`, e2);\n setLogRocketState(\"failed\");\n }\n setLogRocketState(\"loaded\");\n flushLogRocketQueue(window[\"LogRocket\"]);\n }\n }).catch((e2) => {\n console.warn(`LogRocket (id=${appId}) init failed: ${e2.message}`, e2);\n setLogRocketState(\"failed\");\n });\n });\n}\n\n// src/destination-plugins/gtm.ts\nfunction omit(obj, ...keys) {\n return Object.fromEntries(Object.entries(obj).filter(([k4]) => !keys.includes(k4)));\n}\nvar gtmPlugin = {\n id: \"gtm\",\n handle(config, payload) {\n return __async(this, null, function* () {\n var _a, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n2;\n const debug = !!config.debug;\n if (!applyFilters(payload, config)) {\n return;\n }\n yield initGtmIfNeeded(config, payload);\n const dataLayer = window[config.dataLayerName || \"dataLayer\"];\n const traits = __spreadValues(__spreadValues({}, (payload == null ? void 0 : payload.traits) || {}), ((_a = payload == null ? void 0 : payload.context) == null ? void 0 : _a.traits) || {});\n const idsFromTraits = omit(traits, \"id\", \"userId\", \"user_id\", \"anonymousId\", \"userId\");\n if (debug) {\n console.debug(\"GTM plugin will be applied to following payload\", payload);\n }\n const userData = {\n email_address: traits.email\n };\n const ids = __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, payload.userId ? { user_id: payload.userId, userId: payload.userId } : {}), payload.anonymousId ? { anonymousId: payload.anonymousId } : {}), idsFromTraits), {\n user_data: Object.keys(userData).length > 0 ? userData : void 0\n });\n if (debug) {\n console.debug(\"GTM plugin will set following user-related data layer vars\", ids);\n }\n const pageProperties = payload.properties || {};\n const pageVariables = {\n page_location: pageProperties.url || ((_c = (_b = payload.context) == null ? void 0 : _b.page) == null ? void 0 : _c.url),\n page_title: pageProperties.title || ((_e2 = (_d = payload.context) == null ? void 0 : _d.page) == null ? void 0 : _e2.title),\n page_path: pageProperties.path || ((_g = (_f = payload.context) == null ? void 0 : _f.page) == null ? void 0 : _g.path),\n page_hash: pageProperties.hash || ((_i = (_h = payload.context) == null ? void 0 : _h.page) == null ? void 0 : _i.hash),\n page_search: pageProperties.search || ((_k = (_j = payload.context) == null ? void 0 : _j.page) == null ? void 0 : _k.search),\n page_referrer: (_n2 = (_m = (_l = payload == null ? void 0 : payload.context) == null ? void 0 : _l.page) == null ? void 0 : _m.referrer) != null ? _n2 : \"\"\n };\n if (debug) {\n console.debug(\"GTM plugin will set following context (page) related data layer vars\", ids);\n }\n const pushedKeys = /* @__PURE__ */ new Set();\n const pushToDataLayer = (data) => {\n Object.keys(data).forEach((k4) => pushedKeys.add(k4));\n dataLayer.push(data);\n if (debug) {\n console.debug(\"GTM plugin will push following data to dataLayer\", data);\n }\n };\n switch (payload.type) {\n case \"page\":\n const { properties: pageProperties2, context } = payload;\n const pageEvent = __spreadValues(__spreadValues({\n event: \"page_view\"\n }, pageVariables), ids);\n pushToDataLayer(pageEvent);\n break;\n case \"track\":\n const { properties: trackProperties } = payload;\n const trackEvent = __spreadValues(__spreadValues(__spreadValues({\n event: payload.event\n }, pageVariables), trackProperties), ids);\n pushToDataLayer(trackEvent);\n break;\n case \"identify\":\n const { traits: traits2 } = payload;\n const identifyEvent = __spreadValues(__spreadValues(__spreadValues({\n event: \"identify\"\n }, pageVariables), traits2), ids);\n pushToDataLayer(identifyEvent);\n break;\n }\n if (config.resetDataLayer !== false) {\n if (config.loadGtm === false) {\n const cleared = {};\n pushedKeys.forEach((k4) => {\n cleared[k4] = void 0;\n });\n if (Object.keys(cleared).length > 0) {\n dataLayer.push(cleared);\n }\n } else {\n dataLayer.push(function() {\n this.reset();\n });\n }\n }\n });\n }\n};\nfunction getGtmState() {\n return window[\"__jitsuGtmState\"] || \"fresh\";\n}\nfunction setGtmState(s2) {\n window[\"__jitsuGtmState\"] = s2;\n}\nfunction initGtmIfNeeded(config, payload) {\n return __async(this, null, function* () {\n const dlName = config.dataLayerName || \"dataLayer\";\n if (config.loadGtm === false) {\n window[dlName] = window[dlName] || [];\n return;\n }\n if (getGtmState() !== \"fresh\") {\n return;\n }\n setGtmState(\"loading\");\n const tagId = config.containerId;\n (function(w2, l3, i4) {\n w2[l3] = w2[l3] || [];\n w2[l3].push({\n user_id: payload.userId\n });\n w2[l3].push({\n \"gtm.start\": (/* @__PURE__ */ new Date()).getTime(),\n event: \"gtm.js\"\n });\n const dl = l3 != \"dataLayer\" ? \"&l=\" + l3 : \"\";\n const scriptSrc = \"googletagmanager.com/gtm\";\n loadScript(scriptSrc, { www: true, js: true, query: \"id=\" + i4 + dl }).then(() => {\n setGtmState(\"loaded\");\n }).catch((e2) => {\n console.warn(`GTM (containerId=${tagId}) init failed: ${e2.message}`, e2);\n setGtmState(\"failed\");\n });\n })(window, dlName, tagId);\n });\n}\n\n// src/destination-plugins/ga4.ts\nvar urlData = [\n new Uint8Array([109, 111, 99, 46, 114, 101, 103, 97, 110, 97, 109, 103, 97, 116, 101, 108, 103, 111, 111, 103]),\n new Uint8Array([103, 97, 116, 103]),\n new Uint8Array([115, 106])\n];\nfunction byteArrayToString(byteArray) {\n const decoder = new TextDecoder();\n return decoder.decode(byteArray);\n}\nfunction buildTagUrl() {\n return urlData.map((d3) => d3.reverse()).map(byteArrayToString).join(\"/\");\n}\nvar ga4Plugin = {\n id: \"ga4-tag\",\n handle(config, payload) {\n return __async(this, null, function* () {\n var _a, _b;\n if (!applyFilters(payload, config)) {\n return;\n }\n yield initGa4IfNeeded(config, payload);\n const dataLayer = window[config.dataLayerName || \"dataLayer\"];\n const gtag = function() {\n dataLayer.push(arguments);\n };\n const ids = __spreadValues(__spreadValues({}, payload.userId ? { user_id: payload.userId, userId: payload.userId } : {}), payload.anonymousId ? { anonymousId: payload.anonymousId } : {});\n if (payload.userId) {\n gtag(\"set\", { user_id: payload.userId });\n }\n switch (payload.type) {\n case \"page\":\n if (config.autoPageView) {\n console.log(\"autoPageView\");\n break;\n }\n const { properties: pageProperties, context } = payload;\n if (pageProperties) {\n const pageEvent = __spreadValues({\n page_location: pageProperties.url,\n page_title: pageProperties.title,\n page_path: pageProperties.path,\n page_hash: pageProperties.hash,\n page_search: pageProperties.search,\n page_referrer: (_b = (_a = context == null ? void 0 : context.page) == null ? void 0 : _a.referrer) != null ? _b : \"\"\n }, ids);\n gtag(\"event\", \"page_view\", pageEvent);\n }\n break;\n case \"track\":\n const { properties: trackProperties } = payload;\n const trackEvent = __spreadValues(__spreadValues({}, trackProperties), ids);\n gtag(\"event\", payload.event, trackEvent);\n break;\n case \"identify\":\n const { traits } = payload;\n const identifyEvent = __spreadValues(__spreadValues({}, traits), ids);\n gtag(\"event\", \"identify\", identifyEvent);\n break;\n }\n });\n }\n};\nfunction getGa4State() {\n return window[\"__jitsuGa4State\"] || \"fresh\";\n}\nfunction setGa4State(s2) {\n window[\"__jitsuGa4State\"] = s2;\n}\nfunction initGa4IfNeeded(config, payload) {\n return __async(this, null, function* () {\n if (getGa4State() !== \"fresh\") {\n return;\n }\n setGa4State(\"loading\");\n const dlName = config.dataLayerName || \"dataLayer\";\n const dlParam = dlName !== \"dataLayer\" ? \"&l=\" + dlName : \"\";\n const tagId = config.measurementIds;\n window[dlName] = window[dlName] || [];\n const gtag = function() {\n window[dlName].push(arguments);\n };\n gtag(\"js\", /* @__PURE__ */ new Date());\n gtag(\n // @ts-ignore\n \"config\",\n tagId,\n __spreadValues(__spreadValues({}, payload.userId ? { user_id: payload.userId } : {}), !config.autoPageView ? { send_page_view: false } : {})\n );\n loadScript(buildTagUrl(), { query: `id=${tagId}${dlParam}`, www: true }).then(() => {\n setGa4State(\"loaded\");\n }).catch((e2) => {\n console.warn(`GA4 (containerId=${config.measurementIds}) init failed: ${e2.message}`, e2);\n setGa4State(\"failed\");\n });\n });\n}\n\n// src/destination-plugins/index.ts\nfunction satisfyFilter(filter, subject) {\n return filter === \"*\" || filter.toLowerCase().trim() === (subject || \"\").trim().toLowerCase();\n}\nfunction satisfyDomainFilter(filter, subject) {\n if (filter === \"*\") {\n return true;\n }\n subject = subject || \"\";\n if (filter.startsWith(\"*.\")) {\n return subject.endsWith(filter.substring(1));\n } else {\n return filter === subject;\n }\n}\nfunction applyFilters(event, creds) {\n const { hosts = \"*\", events = \"*\" } = creds;\n try {\n const eventsArray = Array.isArray(events) ? events : events.split(\"\\n\");\n const hostsArray = Array.isArray(hosts) ? hosts : hosts.split(\"\\n\");\n return !!hostsArray.find((hostFilter) => {\n var _a, _b;\n return satisfyDomainFilter(hostFilter, (_b = (_a = event.context) == null ? void 0 : _a.page) == null ? void 0 : _b.host);\n }) && (!!eventsArray.find((eventFilter) => satisfyFilter(eventFilter, event.type)) || !!eventsArray.find((eventFilter) => satisfyFilter(eventFilter, event.event)));\n } catch (e2) {\n console.warn(\n `Failed to apply filters: ${e2.message}. Typeof events: ${typeof events}, typeof hosts: ${typeof hosts}. Values`,\n events,\n hosts\n );\n throw new Error(\n `Failed to apply filters: ${e2.message}. Typeof events: ${typeof events}, typeof hosts: ${typeof hosts}`\n );\n }\n}\nvar internalDestinationPlugins = {\n [tagPlugin.id]: tagPlugin,\n [gtmPlugin.id]: gtmPlugin,\n [ga4Plugin.id]: ga4Plugin,\n [logrocketPlugin.id]: logrocketPlugin\n};\n\n// package.json\nvar package_default = {\n name: \"@jitsu/js\",\n version: \"1.11.0\",\n repository: {\n type: \"git\",\n url: \"https://github.com/jitsucom/jitsu\",\n directory: \"libs/jitsu-js\"\n },\n description: \"\",\n author: \"Jitsu Dev Team <dev@jitsu.com>\",\n main: \"src/index.ts\",\n types: \"src/index.ts\",\n files: [\n \"dist\",\n \"compiled\"\n ],\n publishConfig: {\n main: \"dist/jitsu.cjs.js\",\n module: \"dist/jitsu.es.js\",\n types: \"dist/index.d.ts\",\n access: \"public\"\n },\n license: \"MIT\",\n private: false,\n scripts: {\n clean: \"rm -rf ./dist ./compiled\",\n \"test:node\": \"vitest run\",\n \"test:playwright\": \"playwright test ./__tests__/playwright\",\n test: \"pnpm run test:node\",\n typecheck: \"tsc --noEmit\",\n build: \"tsc && tsx bundle.mts\",\n prepublishOnly: \"pnpm run build\",\n \"//build-deps\": \"Required by turbo ^build-deps - builds dist/ for workspace packages that import this\",\n \"build-deps\": \"pnpm run build\"\n },\n devDependencies: {\n \"@jitsu/common-config\": \"workspace:*\",\n tslib: \"catalog:\",\n \"@playwright/test\": \"1.58.2\",\n esbuild: \"catalog:\",\n tsx: \"catalog:\",\n \"@segment/analytics-next\": \"^1.75.0\",\n \"@types/chalk\": \"^2.2.0\",\n \"@types/node\": \"catalog:\",\n \"@vitest/ui\": \"catalog:\",\n chalk: \"^4.1.2\",\n \"cookie-parser\": \"^1.4.7\",\n ejs: \"^3.1.8\",\n express: \"^4.21.2\",\n \"node-forge\": \"^1.3.2\",\n \"raw-loader\": \"^4.0.2\",\n typescript: \"catalog:\",\n vitest: \"catalog:\",\n vite: \"^6.4.3\",\n jsondiffpatch: \"workspace:*\"\n },\n peerDependencies: {\n \"@jitsu/protocols\": \"workspace:*\"\n },\n dependencies: {\n analytics: \"0.8.9\"\n }\n};\n\n// src/version.ts\nvar jitsuVersion = package_default.version !== \"0.0.0\" ? package_default.version : \"2.0.0\";\nvar jitsuLibraryName = \"@jitsu/js\";\n\n// src/tlds.ts\nvar publicSuffixes = \"webflow.io,vercel.app,myshopify.com,ac,com.ac,edu.ac,gov.ac,net.ac,mil.ac,org.ac,ad,nom.ad,ae,co.ae,net.ae,org.ae,sch.ae,ac.ae,gov.ae,mil.ae,aero,af,gov.af,com.af,org.af,net.af,edu.af,ag,com.ag,org.ag,net.ag,co.ag,nom.ag,ai,off.ai,com.ai,net.ai,org.ai,al,com.al,edu.al,gov.al,mil.al,net.al,org.al,am,co.am,com.am,commune.am,net.am,org.am,ao,ed.ao,gv.ao,og.ao,co.ao,pb.ao,it.ao,aq,ar,bet.ar,com.ar,coop.ar,edu.ar,gob.ar,gov.ar,int.ar,mil.ar,musica.ar,mutual.ar,net.ar,org.ar,senasa.ar,tur.ar,arpa,e164.arpa,in-addr.arpa,ip6.arpa,iris.arpa,uri.arpa,urn.arpa,as,gov.as,asia,at,ac.at,co.at,gv.at,or.at,sth.ac.at,au,com.au,net.au,org.au,edu.au,gov.au,asn.au,id.au,act.au,nsw.au,nt.au,qld.au,sa.au,tas.au,vic.au,wa.au,aw,com.aw,ax,az,com.az,net.az,int.az,gov.az,org.az,edu.az,info.az,pp.az,mil.az,name.az,pro.az,biz.az,ba,com.ba,edu.ba,gov.ba,mil.ba,net.ba,org.ba,bb,biz.bb,co.bb,com.bb,edu.bb,gov.bb,info.bb,net.bb,org.bb,store.bb,tv.bb,bd,be,ac.be,bf,gov.bf,bg,a.bg,b.bg,c.bg,d.bg,e.bg,f.bg,g.bg,h.bg,i.bg,j.bg,k.bg,l.bg,m.bg,n.bg,o.bg,p.bg,q.bg,r.bg,s.bg,t.bg,u.bg,v.bg,w.bg,x.bg,y.bg,z.bg,0.bg,1.bg,2.bg,3.bg,4.bg,5.bg,6.bg,7.bg,8.bg,9.bg,bh,com.bh,edu.bh,net.bh,org.bh,gov.bh,bi,co.bi,com.bi,edu.bi,or.bi,org.bi,biz,bj,africa.bj,agro.bj,architectes.bj,assur.bj,avocats.bj,co.bj,com.bj,eco.bj,econo.bj,edu.bj,info.bj,loisirs.bj,money.bj,net.bj,org.bj,ote.bj,resto.bj,restaurant.bj,tourism.bj,univ.bj,bm,com.bm,edu.bm,gov.bm,net.bm,org.bm,bn,com.bn,edu.bn,gov.bn,net.bn,org.bn,bo,com.bo,edu.bo,gob.bo,int.bo,org.bo,net.bo,mil.bo,tv.bo,web.bo,br,9guacu.br,abc.br,adm.br,adv.br,agr.br,aju.br,am.br,anani.br,aparecida.br,app.br,arq.br,art.br,ato.br,b.br,barueri.br,belem.br,bhz.br,bib.br,bio.br,blog.br,bmd.br,boavista.br,bsb.br,campinagrande.br,campinas.br,caxias.br,cim.br,cng.br,cnt.br,com.br,contagem.br,coop.br,coz.br,cri.br,cuiaba.br,curitiba.br,def.br,des.br,det.br,dev.br,ecn.br,eco.br,edu.br,emp.br,enf.br,eng.br,esp.br,etc.br,eti.br,far.br,feira.br,flog.br,floripa.br,fm.br,fnd.br,fortal.br,fot.br,foz.br,fst.br,g12.br,geo.br,ggf.br,goiania.br,gov.br,gru.br,imb.br,ind.br,inf.br,jab.br,jampa.br,jdf.br,joinville.br,jor.br,jus.br,leg.br,lel.br,log.br,londrina.br,macapa.br,maceio.br,manaus.br,maringa.br,mat.br,med.br,mil.br,morena.br,mp.br,mus.br,natal.br,net.br,niteroi.br,nom.br,not.br,ntr.br,odo.br,ong.br,org.br,osasco.br,palmas.br,poa.br,ppg.br,pro.br,psc.br,psi.br,pvh.br,qsl.br,radio.br,rec.br,recife.br,rep.br,ribeirao.br,rio.br,riobranco.br,riopreto.br,salvador.br,sampa.br,santamaria.br,santoandre.br,saobernardo.br,saogonca.br,seg.br,sjc.br,slg.br,slz.br,sorocaba.br,srv.br,taxi.br,tc.br,tec.br,teo.br,the.br,tmp.br,trd.br,tur.br,tv.br,udi.br,vet.br,vix.br,vlog.br,wiki.br,zlg.br,bs,com.bs,net.bs,org.bs,edu.bs,gov.bs,bt,com.bt,edu.bt,gov.bt,net.bt,org.bt,bv,bw,co.bw,org.bw,by,gov.by,mil.by,com.by,of.by,bz,com.bz,net.bz,org.bz,edu.bz,gov.bz,ca,ab.ca,bc.ca,mb.ca,nb.ca,nf.ca,nl.ca,ns.ca,nt.ca,nu.ca,on.ca,pe.ca,qc.ca,sk.ca,yk.ca,gc.ca,cat,cc,cd,gov.cd,cf,cg,ch,ci,org.ci,or.ci,com.ci,co.ci,edu.ci,ed.ci,ac.ci,net.ci,go.ci,asso.ci,a\\xE9roport.ci,int.ci,presse.ci,md.ci,gouv.ci,ck,cl,co.cl,gob.cl,gov.cl,mil.cl,cm,co.cm,com.cm,gov.cm,net.cm,cn,ac.cn,com.cn,edu.cn,gov.cn,net.cn,org.cn,mil.cn,co,arts.co,com.co,edu.co,firm.co,gov.co,info.co,int.co,mil.co,net.co,nom.co,org.co,rec.co,web.co,com,coop,cr,ac.cr,co.cr,ed.cr,fi.cr,go.cr,or.cr,sa.cr,cu,com.cu,edu.cu,org.cu,net.cu,gov.cu,inf.cu,cv,com.cv,edu.cv,int.cv,nome.cv,org.cv,cw,com.cw,edu.cw,net.cw,org.cw,cx,gov.cx,cy,ac.cy,biz.cy,com.cy,ekloges.cy,gov.cy,ltd.cy,mil.cy,net.cy,org.cy,press.cy,pro.cy,tm.cy,cz,de,dj,dk,dm,com.dm,net.dm,org.dm,edu.dm,gov.dm,do,art.do,com.do,edu.do,gob.do,gov.do,mil.do,net.do,org.do,sld.do,web.do,dz,art.dz,asso.dz,com.dz,edu.dz,gov.dz,org.dz,net.dz,pol.dz,soc.dz,tm.dz,ec,com.ec,info.ec,net.ec,fin.ec,k12.ec,med.ec,pro.ec,org.ec,edu.ec,gov.ec,gob.ec,mil.ec,edu,ee,edu.ee,gov.ee,riik.ee,lib.ee,med.ee,com.ee,pri.ee,aip.ee,org.ee,fie.ee,eg,com.eg,edu.eg,eun.eg,gov.eg,mil.eg,name.eg,net.eg,org.eg,sci.eg,er,es,com.es,nom.es,org.es,gob.es,edu.es,et,com.et,gov.et,org.et,edu.et,biz.et,name.et,info.et,net.et,eu,fi,aland.fi,fj,ac.fj,biz.fj,com.fj,gov.fj,info.fj,mil.fj,name.fj,net.fj,org.fj,pro.fj,fk,com.fm,edu.fm,net.fm,org.fm,fm,fo,fr,asso.fr,com.fr,gouv.fr,nom.fr,prd.fr,tm.fr,aeroport.fr,avocat.fr,avoues.fr,cci.fr,chambagri.fr,chirurgiens-dentistes.fr,experts-comptables.fr,geometre-expert.fr,greta.fr,huissier-justice.fr,medecin.fr,notaires.fr,pharmacien.fr,port.fr,veterinaire.fr,ga,gb,edu.gd,gov.gd,gd,ge,com.ge,edu.ge,gov.ge,org.ge,mil.ge,net.ge,pvt.ge,gf,gg,co.gg,net.gg,org.gg,gh,com.gh,edu.gh,gov.gh,org.gh,mil.gh,gi,com.gi,ltd.gi,gov.gi,mod.gi,edu.gi,org.gi,gl,co.gl,com.gl,edu.gl,net.gl,org.gl,gm,gn,ac.gn,com.gn,edu.gn,gov.gn,org.gn,net.gn,gov,gp,com.gp,net.gp,mobi.gp,edu.gp,org.gp,asso.gp,gq,gr,com.gr,edu.gr,net.gr,org.gr,gov.gr,gs,gt,com.gt,edu.gt,gob.gt,ind.gt,mil.gt,net.gt,org.gt,gu,com.gu,edu.gu,gov.gu,guam.gu,info.gu,net.gu,org.gu,web.gu,gw,gy,co.gy,com.gy,edu.gy,gov.gy,net.gy,org.gy,hk,com.hk,edu.hk,gov.hk,idv.hk,net.hk,org.hk,hm,hn,com.hn,edu.hn,org.hn,net.hn,mil.hn,gob.hn,hr,iz.hr,from.hr,name.hr,com.hr,ht,com.ht,shop.ht,firm.ht,info.ht,adult.ht,net.ht,pro.ht,org.ht,med.ht,art.ht,coop.ht,pol.ht,asso.ht,edu.ht,rel.ht,gouv.ht,perso.ht,hu,co.hu,info.hu,org.hu,priv.hu,sport.hu,tm.hu,2000.hu,agrar.hu,bolt.hu,casino.hu,city.hu,erotica.hu,erotika.hu,film.hu,forum.hu,games.hu,hotel.hu,ingatlan.hu,jogasz.hu,konyvelo.hu,lakas.hu,media.hu,news.hu,reklam.hu,sex.hu,shop.hu,suli.hu,szex.hu,tozsde.hu,utazas.hu,video.hu,id,ac.id,biz.id,co.id,desa.id,go.id,mil.id,my.id,net.id,or.id,ponpes.id,sch.id,web.id,ie,gov.ie,il,ac.il,co.il,gov.il,idf.il,k12.il,muni.il,net.il,org.il,im,ac.im,co.im,com.im,ltd.co.im,net.im,org.im,plc.co.im,tt.im,tv.im,in,5g.in,6g.in,ac.in,ai.in,am.in,bihar.in,biz.in,business.in,ca.in,cn.in,co.in,com.in,coop.in,cs.in,delhi.in,dr.in,edu.in,er.in,firm.in,gen.in,gov.in,gujarat.in,ind.in,info.in,int.in,internet.in,io.in,me.in,mil.in,net.in,nic.in,org.in,pg.in,post.in,pro.in,res.in,travel.in,tv.in,uk.in,up.in,us.in,info,int,eu.int,io,com.io,iq,gov.iq,edu.iq,mil.iq,com.iq,org.iq,net.iq,ir,ac.ir,co.ir,gov.ir,id.ir,net.ir,org.ir,sch.ir,is,net.is,com.is,edu.is,gov.is,org.is,int.is,it,gov.it,edu.it,je,co.je,net.je,org.je,jm,jo,com.jo,org.jo,net.jo,edu.jo,sch.jo,gov.jo,mil.jo,name.jo,jobs,jp,ac.jp,ad.jp,co.jp,ed.jp,go.jp,gr.jp,lg.jp,ne.jp,or.jp,ke,ac.ke,co.ke,go.ke,info.ke,me.ke,mobi.ke,ne.ke,or.ke,sc.ke,kg,org.kg,net.kg,com.kg,edu.kg,gov.kg,mil.kg,kh,ki,edu.ki,biz.ki,net.ki,org.ki,gov.ki,info.ki,com.ki,km,org.km,nom.km,gov.km,prd.km,tm.km,edu.km,mil.km,ass.km,com.km,kn,net.kn,org.kn,edu.kn,gov.kn,kp,com.kp,edu.kp,gov.kp,org.kp,rep.kp,tra.kp,kr,ac.kr,co.kr,es.kr,go.kr,hs.kr,kg.kr,mil.kr,ms.kr,ne.kr,or.kr,pe.kr,re.kr,sc.kr,kw,com.kw,edu.kw,emb.kw,gov.kw,ind.kw,net.kw,org.kw,ky,com.ky,edu.ky,net.ky,org.ky,kz,org.kz,edu.kz,net.kz,gov.kz,mil.kz,com.kz,la,int.la,net.la,info.la,edu.la,gov.la,per.la,com.la,org.la,lb,com.lb,edu.lb,gov.lb,net.lb,org.lb,lc,com.lc,net.lc,co.lc,org.lc,edu.lc,gov.lc,li,lk,gov.lk,sch.lk,net.lk,int.lk,com.lk,org.lk,edu.lk,ngo.lk,soc.lk,web.lk,ltd.lk,assn.lk,grp.lk,hotel.lk,ac.lk,lr,com.lr,edu.lr,gov.lr,org.lr,net.lr,ls,ac.ls,biz.ls,co.ls,edu.ls,gov.ls,info.ls,net.ls,org.ls,sc.ls,lt,gov.lt,lu,lv,com.lv,edu.lv,gov.lv,org.lv,mil.lv,id.lv,net.lv,asn.lv,conf.lv,ly,com.ly,net.ly,gov.ly,plc.ly,edu.ly,sch.ly,med.ly,org.ly,id.ly,ma,co.ma,net.ma,gov.ma,org.ma,ac.ma,press.ma,mc,tm.mc,asso.mc,md,me,co.me,net.me,org.me,edu.me,ac.me,gov.me,its.me,priv.me,mg,org.mg,nom.mg,gov.mg,prd.mg,tm.mg,edu.mg,mil.mg,com.mg,co.mg,mh,mil,mk,com.mk,org.mk,net.mk,edu.mk,gov.mk,inf.mk,name.mk,ml,com.ml,edu.ml,gouv.ml,gov.ml,net.ml,org.ml,presse.ml,mm,mn,gov.mn,edu.mn,org.mn,mo,com.mo,net.mo,org.mo,edu.mo,gov.mo,mobi,mp,mq,mr,gov.mr,ms,com.ms,edu.ms,gov.ms,net.ms,org.ms,mt,com.mt,edu.mt,net.mt,org.mt,mu,com.mu,net.mu,org.mu,gov.mu,ac.mu,co.mu,or.mu,museum,mv,aero.mv,biz.mv,com.mv,coop.mv,edu.mv,gov.mv,info.mv,int.mv,mil.mv,museum.mv,name.mv,net.mv,org.mv,pro.mv,mw,ac.mw,biz.mw,co.mw,com.mw,coop.mw,edu.mw,gov.mw,int.mw,museum.mw,net.mw,org.mw,mx,com.mx,org.mx,gob.mx,edu.mx,net.mx,my,biz.my,com.my,edu.my,gov.my,mil.my,name.my,net.my,org.my,mz,ac.mz,adv.mz,co.mz,edu.mz,gov.mz,mil.mz,net.mz,org.mz,na,info.na,pro.na,name.na,school.na,or.na,dr.na,us.na,mx.na,ca.na,in.na,cc.na,tv.na,ws.na,mobi.na,co.na,com.na,org.na,name,nc,asso.nc,nom.nc,ne,net,nf,com.nf,net.nf,per.nf,rec.nf,web.nf,arts.nf,firm.nf,info.nf,other.nf,store.nf,ng,com.ng,edu.ng,gov.ng,i.ng,mil.ng,mobi.ng,name.ng,net.ng,org.ng,sch.ng,ni,ac.ni,biz.ni,co.ni,com.ni,edu.ni,gob.ni,in.ni,info.ni,int.ni,mil.ni,net.ni,nom.ni,org.ni,web.ni,nl,no,fhs.no,vgs.no,fylkesbibl.no,folkebibl.no,museum.no,idrett.no,priv.no,mil.no,stat.no,dep.no,kommune.no,herad.no,np,nr,biz.nr,info.nr,gov.nr,edu.nr,org.nr,net.nr,com.nr,nu,nz,ac.nz,co.nz,cri.nz,geek.nz,gen.nz,govt.nz,health.nz,iwi.nz,kiwi.nz,maori.nz,mil.nz,m\\u0101ori.nz,net.nz,org.nz,parliament.nz,school.nz,om,co.om,com.om,edu.om,gov.om,med.om,museum.om,net.om,org.om,pro.om,onion,org,pa,ac.pa,gob.pa,com.pa,org.pa,sld.pa,edu.pa,net.pa,ing.pa,abo.pa,med.pa,nom.pa,pe,edu.pe,gob.pe,nom.pe,mil.pe,org.pe,com.pe,net.pe,pf,com.pf,org.pf,edu.pf,pg,ph,com.ph,net.ph,org.ph,gov.ph,edu.ph,ngo.ph,mil.ph,i.ph,pk,com.pk,net.pk,edu.pk,org.pk,fam.pk,biz.pk,web.pk,gov.pk,gob.pk,gok.pk,gon.pk,gop.pk,gos.pk,info.pk,pl,com.pl,net.pl,org.pl,aid.pl,agro.pl,atm.pl,auto.pl,biz.pl,edu.pl,gmina.pl,gsm.pl,info.pl,mail.pl,miasta.pl,media.pl,mil.pl,nieruchomosci.pl,nom.pl,pc.pl,powiat.pl,priv.pl,realestate.pl,rel.pl,sex.pl,shop.pl,sklep.pl,sos.pl,szkola.pl,targi.pl,tm.pl,tourism.pl,travel.pl,turystyka.pl,pm,pn,gov.pn,co.pn,org.pn,edu.pn,net.pn,post,pr,com.pr,net.pr,org.pr,gov.pr,edu.pr,isla.pr,pro.pr,biz.pr,info.pr,name.pr,est.pr,prof.pr,ac.pr,pro,aaa.pro,aca.pro,acct.pro,avocat.pro,bar.pro,cpa.pro,eng.pro,jur.pro,law.pro,med.pro,recht.pro,ps,edu.ps,gov.ps,sec.ps,plo.ps,com.ps,org.ps,net.ps,pt,net.pt,gov.pt,org.pt,edu.pt,int.pt,publ.pt,com.pt,nome.pt,pw,co.pw,ne.pw,or.pw,ed.pw,go.pw,belau.pw,py,com.py,coop.py,edu.py,gov.py,mil.py,net.py,org.py,qa,com.qa,edu.qa,gov.qa,mil.qa,name.qa,net.qa,org.qa,sch.qa,re,asso.re,com.re,nom.re,ro,arts.ro,com.ro,firm.ro,info.ro,nom.ro,nt.ro,org.ro,rec.ro,store.ro,tm.ro,www.ro,rs,ac.rs,co.rs,edu.rs,gov.rs,in.rs,org.rs,ru,rw,ac.rw,co.rw,coop.rw,gov.rw,mil.rw,net.rw,org.rw,sa,com.sa,net.sa,org.sa,gov.sa,med.sa,pub.sa,edu.sa,sch.sa,sb,com.sb,edu.sb,gov.sb,net.sb,org.sb,sc,com.sc,gov.sc,net.sc,org.sc,edu.sc,sd,com.sd,net.sd,org.sd,edu.sd,med.sd,tv.sd,gov.sd,info.sd,se,a.se,ac.se,b.se,bd.se,brand.se,c.se,d.se,e.se,f.se,fh.se,fhsk.se,fhv.se,g.se,h.se,i.se,k.se,komforb.se,kommunalforbund.se,komvux.se,l.se,lanbib.se,m.se,n.se,naturbruksgymn.se,o.se,org.se,p.se,parti.se,pp.se,press.se,r.se,s.se,t.se,tm.se,u.se,w.se,x.se,y.se,z.se,sg,com.sg,net.sg,org.sg,gov.sg,edu.sg,per.sg,sh,com.sh,net.sh,gov.sh,org.sh,mil.sh,si,sj,sk,sl,com.sl,net.sl,edu.sl,gov.sl,org.sl,sm,sn,art.sn,com.sn,edu.sn,gouv.sn,org.sn,perso.sn,univ.sn,so,com.so,edu.so,gov.so,me.so,net.so,org.so,sr,ss,biz.ss,com.ss,edu.ss,gov.ss,me.ss,net.ss,org.ss,sch.ss,st,co.st,com.st,consulado.st,edu.st,embaixada.st,mil.st,net.st,org.st,principe.st,saotome.st,store.st,su,sv,com.sv,edu.sv,gob.sv,org.sv,red.sv,sx,gov.sx,sy,edu.sy,gov.sy,net.sy,mil.sy,com.sy,org.sy,sz,co.sz,ac.sz,org.sz,tc,td,tel,tf,tg,th,ac.th,co.th,go.th,in.th,mi.th,net.th,or.th,tj,ac.tj,biz.tj,co.tj,com.tj,edu.tj,go.tj,gov.tj,int.tj,mil.tj,name.tj,net.tj,nic.tj,org.tj,test.tj,web.tj,tk,tl,gov.tl,tm,com.tm,co.tm,org.tm,net.tm,nom.tm,gov.tm,mil.tm,edu.tm,tn,com.tn,ens.tn,fin.tn,gov.tn,ind.tn,info.tn,intl.tn,mincom.tn,nat.tn,net.tn,org.tn,perso.tn,tourism.tn,to,com.to,gov.to,net.to,org.to,edu.to,mil.to,tr,av.tr,bbs.tr,bel.tr,biz.tr,com.tr,dr.tr,edu.tr,gen.tr,gov.tr,info.tr,mil.tr,k12.tr,kep.tr,name.tr,net.tr,org.tr,pol.tr,tel.tr,tsk.tr,tv.tr,web.tr,nc.tr,tt,co.tt,com.tt,org.tt,net.tt,biz.tt,info.tt,pro.tt,int.tt,coop.tt,jobs.tt,mobi.tt,travel.tt,museum.tt,aero.tt,name.tt,gov.tt,edu.tt,tv,tw,edu.tw,gov.tw,mil.tw,com.tw,net.tw,org.tw,idv.tw,game.tw,ebiz.tw,club.tw,tz,ac.tz,co.tz,go.tz,hotel.tz,info.tz,me.tz,mil.tz,mobi.tz,ne.tz,or.tz,sc.tz,tv.tz,ua,com.ua,edu.ua,gov.ua,in.ua,net.ua,org.ua,ug,co.ug,or.ug,ac.ug,sc.ug,go.ug,ne.ug,com.ug,org.ug,uk,ac.uk,co.uk,gov.uk,ltd.uk,me.uk,net.uk,nhs.uk,org.uk,plc.uk,police.uk,us,dni.us,fed.us,isa.us,kids.us,nsn.us,ak.us,al.us,ar.us,as.us,az.us,ca.us,co.us,ct.us,dc.us,de.us,fl.us,ga.us,gu.us,hi.us,ia.us,id.us,il.us,in.us,ks.us,ky.us,la.us,ma.us,md.us,me.us,mi.us,mn.us,mo.us,ms.us,mt.us,nc.us,nd.us,ne.us,nh.us,nj.us,nm.us,nv.us,ny.us,oh.us,ok.us,or.us,pa.us,pr.us,ri.us,sc.us,sd.us,tn.us,tx.us,ut.us,vi.us,vt.us,va.us,wa.us,wi.us,wv.us,wy.us,uy,com.uy,edu.uy,gub.uy,mil.uy,net.uy,org.uy,uz,co.uz,com.uz,net.uz,org.uz,va,vc,com.vc,net.vc,org.vc,gov.vc,mil.vc,edu.vc,ve,arts.ve,bib.ve,co.ve,com.ve,e12.ve,edu.ve,firm.ve,gob.ve,gov.ve,info.ve,int.ve,mil.ve,net.ve,nom.ve,org.ve,rar.ve,rec.ve,store.ve,tec.ve,web.ve,vg,vi,co.vi,com.vi,k12.vi,net.vi,org.vi,vn,ac.vn,ai.vn,biz.vn,com.vn,edu.vn,gov.vn,health.vn,id.vn,info.vn,int.vn,io.vn,name.vn,net.vn,org.vn,pro.vn,vu,com.vu,edu.vu,net.vu,org.vu,wf,ws,com.ws,net.ws,org.ws,gov.ws,edu.ws,yt,ye,com.ye,edu.ye,gov.ye,net.ye,mil.ye,org.ye,ac.za,agric.za,alt.za,co.za,edu.za,gov.za,grondar.za,law.za,mil.za,net.za,ngo.za,nic.za,nis.za,nom.za,org.za,school.za,tm.za,web.za,zm,ac.zm,biz.zm,co.zm,com.zm,edu.zm,gov.zm,info.zm,mil.zm,net.zm,org.zm,sch.zm,zw,ac.zw,co.zw,gov.zw,mil.zw,org.zw\".split(\n \",\"\n);\nvar _publicSuffixesMap = {};\npublicSuffixes.forEach((tld) => {\n _publicSuffixesMap[tld] = true;\n});\nvar publicSuffixesMap = _publicSuffixesMap;\nfunction getTopLevelDomain(hostname) {\n const [domain] = hostname.split(\":\");\n const parts = domain.split(\".\");\n if (parts[parts.length - 1] === \"localhost\" || parts.length < 2) {\n return parts[parts.length - 1];\n } else {\n const d3 = parts[parts.length - 2] + \".\" + parts[parts.length - 1];\n if (parts.length > 2 && publicSuffixesMap[d3]) {\n return parts[parts.length - 3] + \".\" + d3;\n } else {\n return d3;\n }\n }\n}\n\n// ../jsondiffpatch/dist/processor.js\nvar Processor = class {\n constructor(options) {\n this.selfOptions = options || {};\n this.pipes = {};\n }\n options(options) {\n if (options) {\n this.selfOptions = options;\n }\n return this.selfOptions;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pipe(name, pipeArg) {\n let pipe = pipeArg;\n if (typeof name === \"string\") {\n if (typeof pipe === \"undefined\") {\n return this.pipes[name];\n } else {\n this.pipes[name] = pipe;\n }\n }\n if (name && name.name) {\n pipe = name;\n if (pipe.processor === this) {\n return pipe;\n }\n this.pipes[pipe.name] = pipe;\n }\n pipe.processor = this;\n return pipe;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n process(input, pipe) {\n let context = input;\n context.options = this.options();\n let nextPipe = pipe || input.pipe || \"default\";\n let lastPipe;\n while (nextPipe) {\n if (typeof context.nextAfterChildren !== \"undefined\") {\n context.next = context.nextAfterChildren;\n context.nextAfterChildren = null;\n }\n if (typeof nextPipe === \"string\") {\n nextPipe = this.pipe(nextPipe);\n }\n nextPipe.process(context);\n lastPipe = nextPipe;\n nextPipe = null;\n if (context) {\n if (context.next) {\n context = context.next;\n nextPipe = context.pipe || lastPipe;\n }\n }\n }\n return context.hasResult ? context.result : void 0;\n }\n};\nvar processor_default = Processor;\n\n// ../jsondiffpatch/dist/pipe.js\nvar Pipe = class {\n constructor(name) {\n this.name = name;\n this.filters = [];\n }\n process(input) {\n if (!this.processor) {\n throw new Error(\"add this pipe to a processor before using it\");\n }\n const debug = this.debug;\n const length = this.filters.length;\n const context = input;\n for (let index = 0; index < length; index++) {\n const filter = this.filters[index];\n if (debug) {\n this.log(`filter: ${filter.filterName}`);\n }\n filter(context);\n if (typeof context === \"object\" && context.exiting) {\n context.exiting = false;\n break;\n }\n }\n if (!context.next && this.resultCheck) {\n this.resultCheck(context);\n }\n }\n log(msg) {\n console.log(`[jsondiffpatch] ${this.name} pipe, ${msg}`);\n }\n append(...args) {\n this.filters.push(...args);\n return this;\n }\n prepend(...args) {\n this.filters.unshift(...args);\n return this;\n }\n indexOf(filterName) {\n if (!filterName) {\n throw new Error(\"a filter name is required\");\n }\n for (let index = 0; index < this.filters.length; index++) {\n const filter = this.filters[index];\n if (filter.filterName === filterName) {\n return index;\n }\n }\n throw new Error(`filter not found: ${filterName}`);\n }\n list() {\n return this.filters.map((f2) => f2.filterName);\n }\n after(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index + 1, 0, ...params);\n return this;\n }\n before(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 0, ...params);\n return this;\n }\n replace(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 1, ...params);\n return this;\n }\n remove(filterName) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 1);\n return this;\n }\n clear() {\n this.filters.length = 0;\n return this;\n }\n shouldHaveResult(should) {\n if (should === false) {\n this.resultCheck = null;\n return;\n }\n if (this.resultCheck) {\n return;\n }\n this.resultCheck = (context) => {\n if (!context.hasResult) {\n console.log(context);\n const error = new Error(`${this.name} failed`);\n error.noResult = true;\n throw error;\n }\n };\n return this;\n }\n};\nvar pipe_default = Pipe;\n\n// ../jsondiffpatch/dist/contexts/context.js\nvar Context = class {\n setResult(result) {\n this.result = result;\n this.hasResult = true;\n return this;\n }\n exit() {\n this.exiting = true;\n return this;\n }\n push(child, name) {\n child.parent = this;\n if (typeof name !== \"undefined\") {\n child.childName = name;\n }\n child.root = this.root || this;\n child.options = child.options || this.options;\n if (!this.children) {\n this.children = [child];\n this.nextAfterChildren = this.next || null;\n this.next = child;\n } else {\n this.children[this.children.length - 1].next = child;\n this.children.push(child);\n }\n child.next = this;\n return this;\n }\n};\n\n// ../jsondiffpatch/dist/contexts/diff.js\nvar DiffContext = class extends Context {\n constructor(left, right) {\n super();\n this.left = left;\n this.right = right;\n this.pipe = \"diff\";\n }\n setResult(result) {\n return super.setResult(result);\n }\n};\nvar diff_default = DiffContext;\n\n// ../jsondiffpatch/dist/contexts/patch.js\nvar PatchContext = class extends Context {\n constructor(left, delta) {\n super();\n this.left = left;\n this.delta = delta;\n this.pipe = \"patch\";\n }\n};\nvar patch_default = PatchContext;\n\n// ../jsondiffpatch/dist/filters/trivial.js\nfunction arrayEquals(a4, b5) {\n if (a4.length !== b5.length) {\n return false;\n }\n for (let i4 = 0; i4 < a4.length; i4++) {\n if (a4[i4] !== b5[i4]) {\n return false;\n }\n }\n return true;\n}\nvar diffFilter = function trivialMatchesDiffFilter(context) {\n if (context.left === context.right) {\n context.setResult(void 0).exit();\n return;\n }\n if (typeof context.left === \"undefined\") {\n if (typeof context.right === \"function\") {\n throw new Error(\"functions are not supported\");\n }\n context.setResult([context.right]).exit();\n return;\n }\n if (typeof context.right === \"undefined\") {\n context.setResult([context.left, 0, 0]).exit();\n return;\n }\n if (typeof context.left === \"function\" || typeof context.right === \"function\") {\n throw new Error(\"functions are not supported\");\n }\n context.leftType = context.left === null ? \"null\" : typeof context.left;\n context.rightType = context.right === null ? \"null\" : typeof context.right;\n if (context.leftType !== context.rightType) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === \"boolean\" || context.leftType === \"number\" || context.leftType === \"string\") {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === \"object\") {\n context.leftIsArray = Array.isArray(context.left);\n }\n if (context.rightType === \"object\") {\n context.rightIsArray = Array.isArray(context.right);\n }\n if (context.leftIsArray !== context.rightIsArray) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftIsArray && context.rightIsArray) {\n if (arrayEquals(context.left, context.right)) {\n context.setResult(void 0).exit();\n return;\n } else {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n }\n if (context.left instanceof RegExp) {\n if (context.right instanceof RegExp) {\n context.setResult([context.left.toString(), context.right.toString()]).exit();\n } else {\n context.setResult([context.left, context.right]).exit();\n }\n }\n};\ndiffFilter.filterName = \"trivial\";\nvar patchFilter = function trivialMatchesPatchFilter(context) {\n if (typeof context.delta === \"undefined\") {\n context.setResult(context.left).exit();\n return;\n }\n context.nested = !Array.isArray(context.delta);\n if (context.nested) {\n return;\n }\n const nonNestedDelta = context.delta;\n if (nonNestedDelta.length === 1) {\n context.setResult(nonNestedDelta[0]).exit();\n return;\n }\n if (nonNestedDelta.length === 2) {\n if (context.left instanceof RegExp) {\n const regexArgs = /^\\/(.*)\\/([gimyu]+)$/.exec(nonNestedDelta[1]);\n if (regexArgs) {\n context.setResult(new RegExp(regexArgs[1], regexArgs[2])).exit();\n return;\n }\n }\n context.setResult(nonNestedDelta[1]).exit();\n return;\n }\n if (nonNestedDelta.length === 3 && nonNestedDelta[2] === 0) {\n context.setResult(void 0).exit();\n }\n};\npatchFilter.filterName = \"trivial\";\n\n// ../jsondiffpatch/dist/filters/nested.js\nvar collectChildrenDiffFilter = (context) => {\n if (!context || !context.children) {\n return;\n }\n const length = context.children.length;\n let child;\n let result = context.result;\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n if (typeof child.result === \"undefined\") {\n continue;\n }\n result = result || {};\n result[child.childName] = child.result;\n }\n if (result && context.leftIsArray) {\n result._t = \"a\";\n }\n context.setResult(result).exit();\n};\ncollectChildrenDiffFilter.filterName = \"collectChildren\";\nvar objectsDiffFilter = (context) => {\n if (context.leftIsArray || context.leftType !== \"object\") {\n return;\n }\n const left = context.left;\n const right = context.right;\n let name;\n let child;\n const propertyFilter = context.options.propertyFilter;\n for (name in left) {\n if (!Object.prototype.hasOwnProperty.call(left, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n child = new diff_default(left[name], right[name]);\n context.push(child, name);\n }\n for (name in right) {\n if (!Object.prototype.hasOwnProperty.call(right, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n if (typeof left[name] === \"undefined\") {\n child = new diff_default(void 0, right[name]);\n context.push(child, name);\n }\n }\n if (!context.children || context.children.length === 0) {\n context.setResult(void 0).exit();\n return;\n }\n context.exit();\n};\nobjectsDiffFilter.filterName = \"objects\";\nvar patchFilter2 = function nestedPatchFilter(context) {\n if (!context.nested) {\n return;\n }\n const nestedDelta = context.delta;\n if (nestedDelta._t) {\n return;\n }\n const objectDelta = nestedDelta;\n let name;\n let child;\n for (name in objectDelta) {\n child = new patch_default(context.left[name], objectDelta[name]);\n context.push(child, name);\n }\n context.exit();\n};\npatchFilter2.filterName = \"objects\";\nvar collectChildrenPatchFilter = function collectChildrenPatchFilter2(context) {\n if (!context || !context.children) {\n return;\n }\n const deltaWithChildren = context.delta;\n if (deltaWithChildren._t) {\n return;\n }\n const object = context.left;\n const length = context.children.length;\n let child;\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n const property = child.childName;\n if (Object.prototype.hasOwnProperty.call(context.left, property) && child.result === void 0) {\n delete object[property];\n } else if (object[property] !== child.result) {\n object[property] = child.result;\n }\n }\n context.setResult(object).exit();\n};\ncollectChildrenPatchFilter.filterName = \"collectChildren\";\n\n// ../jsondiffpatch/dist/filters/dates.js\nvar diffFilter2 = function datesDiffFilter(context) {\n if (context.left instanceof Date) {\n if (context.right instanceof Date) {\n if (context.left.getTime() !== context.right.getTime()) {\n context.setResult([context.left, context.right]);\n } else {\n context.setResult(void 0);\n }\n } else {\n context.setResult([context.left, context.right]);\n }\n context.exit();\n } else if (context.right instanceof Date) {\n context.setResult([context.left, context.right]).exit();\n }\n};\ndiffFilter2.filterName = \"dates\";\n\n// ../jsondiffpatch/dist/diffpatcher.js\nvar DiffPatcher = class {\n constructor(options) {\n this.processor = new processor_default(options);\n this.processor.pipe(new pipe_default(\"diff\").append(collectChildrenDiffFilter, diffFilter, diffFilter2, objectsDiffFilter).shouldHaveResult());\n this.processor.pipe(new pipe_default(\"patch\").append(collectChildrenPatchFilter, patchFilter, patchFilter2).shouldHaveResult());\n }\n options(options) {\n return this.processor.options(options);\n }\n diff(left, right) {\n return this.processor.process(new diff_default(left, right));\n }\n patch(left, delta) {\n return this.processor.process(new patch_default(left, delta));\n }\n};\nvar diffpatcher_default = DiffPatcher;\n\n// ../jsondiffpatch/dist/index.js\nfunction create(options) {\n return new diffpatcher_default(options);\n}\n\n// src/analytics-plugin.ts\nvar diff = create();\nvar defaultConfig = {\n /* Your segment writeKey */\n writeKey: void 0,\n /* Disable anonymous MTU */\n host: void 0,\n debug: false,\n fetch: void 0,\n echoEvents: false,\n cookieDomain: void 0,\n cookieNames: {},\n cookieCapture: {},\n runtime: void 0,\n fetchTimeoutMs: void 0,\n s2s: void 0,\n idEndpoint: void 0,\n errorPolicy: \"log\",\n defaultPayloadContext: {},\n privacy: {\n dontSend: false,\n disableUserIds: false,\n ipPolicy: \"keep\",\n consentCategories: {}\n }\n};\nvar mergeConfig = (current, newConfig) => {\n for (const key of Object.keys(defaultConfig)) {\n const value = newConfig[key];\n if (key === \"privacy\") {\n if (typeof value === \"object\") {\n current.privacy = __spreadValues(__spreadValues(__spreadProps(__spreadValues({}, defaultConfig.privacy), {\n consentCategories: __spreadValues({}, defaultConfig.privacy.consentCategories)\n }), current.privacy), value);\n } else if (typeof value === \"undefined\") {\n if (newConfig.hasOwnProperty(\"privacy\") || !current.hasOwnProperty(\"privacy\")) {\n current.privacy = __spreadProps(__spreadValues({}, defaultConfig.privacy), {\n consentCategories: __spreadValues({}, defaultConfig.privacy.consentCategories)\n });\n }\n }\n } else if (typeof value === \"undefined\") {\n if (newConfig.hasOwnProperty(key) || !current.hasOwnProperty(key)) {\n current[key] = defaultConfig[key];\n }\n } else {\n current[key] = value;\n }\n }\n};\nvar parseQuery = (qs) => {\n if (!qs) {\n return {};\n }\n let queryString = qs.length > 0 && qs.charAt(0) === \"?\" ? qs.substring(1) : qs;\n let query = {};\n let pairs = (queryString[0] === \"?\" ? queryString.substr(1) : queryString).split(\"&\");\n for (let i4 = 0; i4 < pairs.length; i4++) {\n let pair = pairs[i4].split(\"=\");\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || \"\");\n }\n return query;\n};\nfunction utmToKey(key) {\n const name = key.substring(\"utm_\".length);\n return name === \"campaign\" ? \"name\" : name;\n}\nfunction parseUtms(query) {\n return Object.entries(query).filter(([key]) => key.indexOf(\"utm_\") === 0).reduce(\n (acc, [key, value]) => __spreadProps(__spreadValues({}, acc), {\n [utmToKey(key)]: value\n }),\n {}\n );\n}\nfunction safeCall(f2, defaultVal) {\n try {\n return f2();\n } catch (e2) {\n return defaultVal;\n }\n}\nfunction restoreTraits(storage) {\n let val = storage.getItem(\"__user_traits\");\n if (typeof val === \"string\") {\n val = safeCall(() => JSON.parse(val), {});\n }\n if (typeof val !== \"object\" || val === null || Array.isArray(val)) {\n val = {};\n }\n let groupVal = storage.getItem(\"__group_traits\");\n if (typeof groupVal === \"string\") {\n groupVal = safeCall(() => JSON.parse(groupVal), {});\n }\n if (typeof groupVal !== \"object\" || groupVal === null || Array.isArray(groupVal)) {\n groupVal = {};\n }\n return __spreadValues(__spreadValues({}, groupVal || {}), val || {});\n}\nfunction getCookie(name) {\n var _a;\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n return parts.length === 2 ? (_a = parts.pop()) == null ? void 0 : _a.split(\";\").shift() : void 0;\n}\nfunction getClientIds(runtime, customCookieCapture) {\n const cookieCapture = __spreadValues({\n fbc: \"_fbc\",\n fbp: \"_fbp\"\n }, customCookieCapture);\n const clientIds = Object.entries(cookieCapture).reduce((acc, [key, cookieName]) => {\n acc[key] = runtime.getCookie(cookieName);\n return acc;\n }, {});\n return __spreadValues(__spreadValues({}, clientIds), getGa4Ids(runtime));\n}\nfunction parseGa4SessionId(cookieValue) {\n if (typeof cookieValue !== \"string\") {\n return void 0;\n }\n if (cookieValue.startsWith(\"GA1\") || cookieValue.startsWith(\"GS1\")) {\n return cookieValue.split(\".\")[2];\n } else {\n const match = cookieValue.match(/^GS\\d+\\.\\d+\\.(?:[\\w_-]+[$])*s(\\d+)(?:$|[$])/);\n return match ? match[1] : void 0;\n }\n}\nfunction getGa4Ids(runtime) {\n var _a;\n const allCookies = runtime.getCookies();\n const clientId = (_a = allCookies[\"_ga\"]) == null ? void 0 : _a.split(\".\").slice(-2).join(\".\");\n const gaSessionCookies = Object.entries(allCookies).filter(([key]) => key.startsWith(\"_ga_\"));\n const sessionIds = gaSessionCookies.length > 0 ? Object.fromEntries(\n gaSessionCookies.map(([key, value]) => {\n const sessionId = parseGa4SessionId(value);\n if (!sessionId) {\n return null;\n }\n return [key.substring(\"_ga_\".length), sessionId];\n }).filter((v2) => v2 !== null)\n ) : void 0;\n if (clientId || sessionIds) {\n return { ga4: { clientId, sessionIds } };\n } else {\n return void 0;\n }\n}\nfunction removeCookie(name, { domain, secure }) {\n document.cookie = name + \"=;domain=\" + domain + \";path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;SameSite=\" + (secure ? \"None\" : \"Lax\") + (secure ? \";secure\" : \"\");\n}\nfunction setCookie(name, val, { domain, secure }) {\n document.cookie = name + \"=\" + val + \";domain=\" + domain + \";path=/;expires=\" + new Date((/* @__PURE__ */ new Date()).getTime() + 1e3 * 60 * 60 * 24 * 365 * 5).toUTCString() + \";SameSite=\" + (secure ? \"None\" : \"Lax\") + (secure ? \";secure\" : \"\");\n}\nvar defaultCookie2Key = {\n __anon_id: \"__eventn_id\",\n __user_id: \"__eventn_uid\",\n __user_traits: \"__eventn_id_usr\",\n __group_id: \"__group_id\",\n __group_traits: \"__group_traits\"\n};\nvar cookieStorage = (cookieDomain, key2cookie) => {\n return {\n setItem(key, val) {\n const cookieName = key2cookie(key) || key;\n if (typeof val === \"undefined\") {\n removeCookie(cookieName, {\n domain: cookieDomain,\n secure: window.location.protocol === \"https:\"\n });\n return;\n }\n const strVal = typeof val === \"object\" && val !== null ? encodeURIComponent(JSON.stringify(val)) : val;\n setCookie(cookieName, strVal, {\n domain: cookieDomain,\n secure: window.location.protocol === \"https:\"\n });\n },\n getItem(key) {\n const cookieName = key2cookie(key) || key;\n const result = getCookie(cookieName);\n if (key === \"__anon_id\") {\n return result;\n }\n if (typeof result === \"undefined\" && key === \"__user_id\") {\n const traits = parse(getCookie(key2cookie(\"__user_traits\") || \"__eventn_id_usr\")) || {};\n return traits.internal_id || traits.user_id || traits.id || traits.userId;\n }\n return parse(result);\n },\n removeItem(key) {\n removeCookie(key2cookie(key) || key, {\n domain: cookieDomain,\n secure: window.location.protocol === \"https:\"\n });\n },\n reset() {\n for (const key of Object.keys(defaultCookie2Key)) {\n removeCookie(key2cookie(key) || key, {\n domain: cookieDomain,\n secure: window.location.protocol === \"https:\"\n });\n }\n }\n };\n};\nfunction windowRuntime(opts) {\n const key2Cookie = (key) => {\n var _a, _b, _c, _d, _e2;\n switch (key) {\n case \"__anon_id\":\n return ((_a = opts.cookieNames) == null ? void 0 : _a.anonymousId) || defaultCookie2Key.__anon_id;\n case \"__user_id\":\n return ((_b = opts.cookieNames) == null ? void 0 : _b.userId) || defaultCookie2Key.__user_id;\n case \"__user_traits\":\n return ((_c = opts.cookieNames) == null ? void 0 : _c.userTraits) || defaultCookie2Key.__user_traits;\n case \"__group_id\":\n return ((_d = opts.cookieNames) == null ? void 0 : _d.groupId) || defaultCookie2Key.__group_id;\n case \"__group_traits\":\n return ((_e2 = opts.cookieNames) == null ? void 0 : _e2.groupTraits) || defaultCookie2Key.__group_traits;\n default:\n return key;\n }\n };\n return {\n getCookie(name) {\n var _a;\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n return parts.length === 2 ? (_a = parts.pop()) == null ? void 0 : _a.split(\";\").shift() : void 0;\n },\n getCookies() {\n const value = `; ${document.cookie}`;\n const cookies = {};\n const matches = value.matchAll(/(\\w+)=([^;]+)/g);\n for (const match of matches) {\n cookies[match[1]] = match[2];\n }\n return cookies;\n },\n documentEncoding() {\n return window.document.characterSet;\n },\n timezoneOffset() {\n return (/* @__PURE__ */ new Date()).getTimezoneOffset();\n },\n store() {\n return cookieStorage(opts.cookieDomain || getTopLevelDomain(window.location.hostname), key2Cookie);\n },\n language() {\n return window.navigator.language;\n },\n pageTitle() {\n return window.document.title;\n },\n pageUrl() {\n return window.location.href;\n },\n referrer() {\n return window.document.referrer;\n },\n screen() {\n return {\n width: window.screen.width,\n height: window.screen.height,\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n density: Math.floor(window.devicePixelRatio)\n };\n },\n userAgent() {\n return window.navigator.userAgent;\n }\n };\n}\nfunction createInMemoryStorage(debug) {\n const storage = {};\n return {\n reset() {\n Object.keys(storage).forEach((key) => delete storage[key]);\n },\n setItem(key, val) {\n if (debug) {\n console.log(`[JITSU EMPTY RUNTIME] Set storage item ${key}=${JSON.stringify(val)}`);\n }\n if (typeof val === \"undefined\") {\n delete storage[key];\n } else {\n storage[key] = val;\n }\n },\n getItem(key) {\n const val = storage[key];\n if (debug) {\n console.log(`[JITSU EMPTY RUNTIME] Get storage item ${key}=${JSON.stringify(val)}`);\n }\n return val;\n },\n removeItem(key) {\n if (debug) {\n console.log(`[JITSU EMPTY RUNTIME] Get storage item ${key}=${storage[key]}`);\n }\n delete storage[key];\n }\n };\n}\nvar emptyRuntime = (config) => ({\n documentEncoding() {\n return void 0;\n },\n timezoneOffset() {\n return void 0;\n },\n getCookie(name) {\n return void 0;\n },\n getCookies() {\n return {};\n },\n store() {\n return createInMemoryStorage(config.debug);\n },\n language() {\n return void 0;\n },\n pageTitle() {\n return void 0;\n },\n pageUrl() {\n return void 0;\n },\n referrer() {\n return void 0;\n },\n screen() {\n return void 0;\n },\n userAgent() {\n return void 0;\n }\n});\nfunction deepCopy(o3) {\n if (typeof o3 !== \"object\") {\n return o3;\n }\n if (!o3) {\n return o3;\n }\n return JSON.parse(JSON.stringify(o3));\n}\nfunction deepMerge(target, source) {\n if (typeof source !== \"object\" || source === null || Array.isArray(source) || source instanceof Date) {\n return source;\n }\n if (typeof target !== \"object\" || target === null || Array.isArray(target) || target instanceof Date) {\n return source;\n }\n return Object.entries(source).reduce((acc, [key, value]) => {\n acc[key] = deepMerge(target[key], value);\n return acc;\n }, target);\n}\nfunction isInBrowser() {\n return typeof document !== \"undefined\" && typeof window !== \"undefined\";\n}\nfunction ensureAnonymousId(opts) {\n var _a;\n if (!isInBrowser()) {\n return void 0;\n }\n const cookieName = ((_a = opts.cookieNames) == null ? void 0 : _a.anonymousId) || defaultCookie2Key.__anon_id;\n const existing = getCookie(cookieName);\n if (existing) {\n return existing;\n }\n const id = uuid();\n const domain = opts.cookieDomain || getTopLevelDomain(window.location.hostname);\n setCookie(cookieName, id, {\n domain,\n secure: window.location.protocol === \"https:\"\n });\n if (opts.debug) {\n console.log(\n `[JITSU DEBUG] preInitAnonymousId: created anonymous ID cookie '${cookieName}'=${id} on domain '${domain}'`\n );\n }\n return id;\n}\nfunction fixPath(path) {\n if (path.indexOf(\"//\") === 0 && path.lastIndexOf(\"/\") === 1) {\n return \"/\";\n }\n return path;\n}\nvar hashRegex = /#.*$/;\nfunction urlPath(url) {\n const regex = /(http[s]?:\\/\\/)?([^\\/\\s]+\\/)(.*)/g;\n const matches = regex.exec(url);\n const pathMatch = matches && matches[3] ? matches[3].split(\"?\")[0].replace(hashRegex, \"\") : \"\";\n return \"/\" + pathMatch;\n}\nfunction canonicalUrl() {\n if (!isInBrowser()) return;\n const tags = document.getElementsByTagName(\"link\");\n for (var i4 = 0, tag; tag = tags[i4]; i4++) {\n if (tag.getAttribute(\"rel\") === \"canonical\") {\n return tag.getAttribute(\"href\");\n }\n }\n}\nfunction analyticsJsUrl() {\n if (!isInBrowser()) return;\n const canonical = canonicalUrl();\n if (!canonical) return window.location.href.replace(hashRegex, \"\");\n return canonical.match(/\\?/) ? canonical : canonical + window.location.search;\n}\nfunction adjustPayload(payload, config, storage, s2s) {\n var _a, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n2, _o;\n const runtime = config.runtime || (isInBrowser() ? windowRuntime(config) : emptyRuntime(config));\n const url = runtime.pageUrl();\n const parsedUrl = url ? safeCall(() => new URL(url), void 0) : void 0;\n const query = parsedUrl ? parseQuery(parsedUrl.search) : {};\n const properties = payload.properties || {};\n if (payload.type === \"page\" && (properties.url || url)) {\n let targetUrl = url || properties.url;\n if (properties.url && properties.url !== analyticsJsUrl()) {\n targetUrl = properties.url;\n }\n properties.url = targetUrl.replace(hashRegex, \"\");\n properties.path = fixPath(urlPath(targetUrl));\n }\n const customContext = deepMerge(\n config.defaultPayloadContext,\n ((_a = payload.properties) == null ? void 0 : _a.context) || ((_b = payload.options) == null ? void 0 : _b.context) || {}\n );\n (_c = payload.properties) == null ? true : delete _c.context;\n const referrer = runtime.referrer();\n const context = {\n library: {\n name: jitsuLibraryName,\n version: jitsuVersion,\n env: isInBrowser() ? \"browser\" : \"node\"\n },\n consent: typeof ((_d = config.privacy) == null ? void 0 : _d.consentCategories) === \"object\" && Object.keys((_e2 = config.privacy) == null ? void 0 : _e2.consentCategories).length ? {\n categoryPreferences: config.privacy.consentCategories\n } : void 0,\n userAgent: (_f = runtime.userAgent) == null ? void 0 : _f.call(runtime),\n locale: (_g = runtime.language) == null ? void 0 : _g.call(runtime),\n screen: (_h = runtime.screen) == null ? void 0 : _h.call(runtime),\n ip: (_i = runtime == null ? void 0 : runtime.ip) == null ? void 0 : _i.call(runtime),\n traits: payload.type != \"identify\" && payload.type != \"group\" ? __spreadValues(__spreadValues({}, restoreTraits(storage) || {}), ((_j = payload == null ? void 0 : payload.options) == null ? void 0 : _j.traits) || {}) : void 0,\n page: {\n path: properties.path || parsedUrl && parsedUrl.pathname,\n referrer,\n referring_domain: safeCall(() => referrer && new URL(referrer).hostname),\n host: parsedUrl && parsedUrl.host,\n search: properties.search || parsedUrl && parsedUrl.search,\n title: properties.title || runtime.pageTitle(),\n url: properties.url || url,\n encoding: properties.encoding || runtime.documentEncoding()\n },\n clientIds: !((_k = config.privacy) == null ? void 0 : _k.disableUserIds) ? getClientIds(runtime, config.cookieCapture || {}) : void 0,\n campaign: parseUtms(query)\n };\n const withContext = __spreadProps(__spreadValues({}, payload), {\n userId: ((_l = payload == null ? void 0 : payload.options) == null ? void 0 : _l.userId) || (payload == null ? void 0 : payload.userId),\n anonymousId: ((_m = payload == null ? void 0 : payload.options) == null ? void 0 : _m.anonymousId) || (payload == null ? void 0 : payload.anonymousId),\n groupId: ((_n2 = payload == null ? void 0 : payload.options) == null ? void 0 : _n2.groupId) || storage.getItem(\"__group_id\"),\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n sentAt: (/* @__PURE__ */ new Date()).toISOString(),\n messageId: randomId(properties.path || parsedUrl && parsedUrl.pathname),\n writeKey: maskWriteKey(config.writeKey),\n context: deepMerge(context, customContext)\n });\n delete withContext.meta;\n delete withContext.options;\n if ((_o = config.privacy) == null ? void 0 : _o.disableUserIds) {\n delete withContext.userId;\n delete withContext.anonymousId;\n delete withContext.context.traits;\n delete withContext.groupId;\n }\n return withContext;\n}\nfunction isDiff(obj) {\n const keys = Object.keys(obj);\n return keys.length === 1 && keys[0] === \"__diff\";\n}\nfunction processDestinations(destinations, method, originalEvent, debug, analyticsInstance) {\n return __async(this, null, function* () {\n const promises = [];\n for (const destination of destinations) {\n let newEvents = [];\n if (destination.newEvents) {\n try {\n newEvents = destination.newEvents.map(\n (e2) => e2 === \"same\" ? deepCopy(originalEvent) : isDiff(e2) ? diff.patch(deepCopy(originalEvent), e2.__diff) : e2\n );\n } catch (e2) {\n console.error(`[JITSU] Error applying '${destination.id}' changes to event: ${e2 == null ? void 0 : e2.message}`, e2);\n }\n } else {\n newEvents = [deepCopy(originalEvent)];\n }\n const credentials = __spreadValues(__spreadValues({}, destination.credentials), destination.options);\n if (destination.deviceOptions.type === \"internal-plugin\") {\n const plugin = internalDestinationPlugins[destination.deviceOptions.name];\n if (plugin) {\n for (const event of newEvents) {\n try {\n promises.push(plugin.handle(__spreadProps(__spreadValues({}, credentials), { debug }), event));\n } catch (e2) {\n console.warn(\n `[JITSU] Error processing event with internal plugin '${destination.deviceOptions.name}': ${e2 == null ? void 0 : e2.message}`,\n e2\n );\n }\n }\n } else {\n console.warn(\n `[JITSU] Unknown internal plugin '${destination.deviceOptions.name}' for destination '${destination.id}'`\n );\n }\n } else if (destination.deviceOptions.type === \"analytics-plugin\") {\n yield loadScript(destination.deviceOptions.packageCdn);\n const plugin = window[destination.deviceOptions.moduleVarName];\n if (!plugin) {\n console.warn(\n `[JITSU] Broken plugin '${destination.deviceOptions.packageCdn}' for destination '${destination.id}' - it doesn't export '${destination.deviceOptions.moduleVarName}' variable`\n );\n } else {\n let pluginInstance;\n try {\n pluginInstance = (typeof plugin === \"function\" ? plugin : plugin.init)(credentials);\n } catch (e2) {\n console.warn(\n `[JITSU] Error creating plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e2 == null ? void 0 : e2.message}`,\n e2\n );\n }\n try {\n if (debug) {\n console.log(\n `[JITSU] Plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}' initialized with config:`,\n pluginInstance.config\n );\n }\n pluginInstance.initialize({ config: pluginInstance.config, instance: analyticsInstance });\n } catch (e2) {\n console.warn(\n `[JITSU] Error initializing plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e2 == null ? void 0 : e2.message}. Config: ${JSON.stringify(pluginInstance.config)}`,\n e2\n );\n continue;\n }\n if (pluginInstance[method]) {\n for (const event of newEvents) {\n try {\n pluginInstance[method]({\n payload: event,\n config: pluginInstance.config,\n instance: analyticsInstance\n });\n } catch (e2) {\n console.warn(\n `[JITSU] Error processing ${method}() with plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e2 == null ? void 0 : e2.message}`,\n e2\n );\n }\n }\n }\n }\n }\n }\n });\n}\nfunction looksLikeCuid(id) {\n return id.length === 25 && id.charAt(0) === \"c\";\n}\nfunction validateWriteKey(writeKey) {\n if (writeKey) {\n const [, secret] = writeKey.split(\":\", 2);\n if (!secret && !looksLikeCuid(writeKey)) {\n throw new Error(\n `Legacy write key detected - ${writeKey}! This format doesn't work anymore, it should be 'key:secret'. Please download a new key from Jitsu UI`\n );\n }\n }\n return writeKey;\n}\nfunction maskWriteKey(writeKey) {\n if (writeKey) {\n const [id, secret] = writeKey.split(\":\", 2);\n if (secret) {\n return `${id}:***`;\n } else {\n return \"***\";\n }\n }\n return writeKey;\n}\nfunction getErrorHandler(opts) {\n const configuredHandler = opts.errorPolicy || \"log\";\n if (typeof configuredHandler === \"function\") {\n return configuredHandler;\n } else if (configuredHandler === \"rethrow\") {\n return (msg, ...args) => {\n throw new Error(msg);\n };\n } else {\n return (msg, ...args) => {\n console.error(msg, ...args);\n };\n }\n}\nfunction send(method, payload, jitsuConfig, instance, store, isAutoIdentify) {\n return __async(this, null, function* () {\n var _a, _b;\n const s2s = !!jitsuConfig.s2s;\n const debugHeader = jitsuConfig.debug ? { \"X-Enable-Debug\": \"true\" } : {};\n const adjustedPayload = adjustPayload(payload, jitsuConfig, store, s2s);\n if (jitsuConfig.echoEvents) {\n console.log(`[JITSU DEBUG] sending '${method}' event:`, adjustedPayload);\n return;\n }\n const url = s2s ? `${jitsuConfig.host}/api/s/s2s/${method}` : `${jitsuConfig.host}/api/s/${method}`;\n const fetch = jitsuConfig.fetch || globalThis.fetch;\n if (!fetch) {\n throw new Error(\n \"Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope\"\n );\n }\n const abortController = jitsuConfig.fetchTimeoutMs ? new AbortController() : void 0;\n const abortTimeout = jitsuConfig.fetchTimeoutMs ? setTimeout(() => {\n abortController == null ? void 0 : abortController.abort();\n }, jitsuConfig.fetchTimeoutMs) : void 0;\n const authHeader = jitsuConfig.writeKey ? { \"X-Write-Key\": jitsuConfig.writeKey } : {};\n const ipHeader = typeof ((_a = jitsuConfig.privacy) == null ? void 0 : _a.ipPolicy) === \"undefined\" || ((_b = jitsuConfig.privacy) == null ? void 0 : _b.ipPolicy) === \"keep\" ? {} : { \"X-IP-Policy\": jitsuConfig.privacy.ipPolicy };\n let fetchResult;\n try {\n fetchResult = yield fetch(url, {\n method: \"POST\",\n headers: __spreadValues(__spreadValues(__spreadValues({\n \"Content-Type\": \"application/json\"\n }, authHeader), debugHeader), ipHeader),\n body: JSON.stringify(adjustedPayload),\n signal: abortController == null ? void 0 : abortController.signal\n });\n if (abortTimeout) {\n clearTimeout(abortTimeout);\n }\n } catch (e2) {\n const errorHandler = isAutoIdentify ? (msg) => console.warn(msg) : getErrorHandler(jitsuConfig);\n errorHandler(`Call to ${url} failed with error ${e2.message}`);\n return Promise.resolve();\n }\n let responseText;\n try {\n responseText = yield fetchResult.text();\n } catch (e2) {\n console.warn(\n `Can't read response text from ${url} (status - ${fetchResult.status} ${fetchResult.statusText}): ${e2 == null ? void 0 : e2.message}`\n );\n }\n if (jitsuConfig.debug) {\n console.log(\n `[JITSU DEBUG] ${url} replied ${fetchResult.status}: ${responseText}. Original payload:\n${JSON.stringify(\n adjustedPayload,\n null,\n 2\n )}`\n );\n }\n if (!fetchResult.ok) {\n const errorHandler = isAutoIdentify ? (msg) => console.warn(msg) : getErrorHandler(jitsuConfig);\n errorHandler(\n `Call to ${url} failed with error: ${fetchResult.status} - ${fetchResult.statusText}: ${responseText}`\n );\n return Promise.resolve();\n }\n let responseJson;\n try {\n responseJson = JSON.parse(responseText);\n } catch (e2) {\n const errorHandler = isAutoIdentify ? (msg) => console.warn(msg) : getErrorHandler(jitsuConfig);\n errorHandler(`Can't parse JSON: ${responseText}: ${e2 == null ? void 0 : e2.message}`);\n return Promise.resolve();\n }\n if (responseJson.destinations && responseJson.destinations.length > 0) {\n if (jitsuConfig.s2s) {\n console.warn(\n `[JITSU] ${payload.type} responded with list of ${responseJson.destinations.length} destinations. However, this code is running in server-to-server mode, so destinations will be ignored`,\n jitsuConfig.debug ? JSON.stringify(responseJson.destinations, null, 2) : void 0\n );\n } else {\n if (isInBrowser()) {\n if (jitsuConfig.debug) {\n console.log(`[JITSU] Processing device destinations: `, JSON.stringify(responseJson.destinations, null, 2));\n }\n return processDestinations(responseJson.destinations, method, adjustedPayload, !!jitsuConfig.debug, instance);\n }\n }\n }\n return adjustedPayload;\n });\n}\nvar controllingTraits = [\"$doNotSend\"];\nfunction stripControllingTraits(traits) {\n const res = __spreadValues({}, traits);\n for (const key of controllingTraits) {\n delete res[key];\n }\n return res;\n}\nvar jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {\n mergeConfig(jitsuOptions, jitsuOptions);\n return {\n name: \"jitsu\",\n config: jitsuOptions,\n initialize: (args) => __async(null, null, function* () {\n const { config } = args;\n if (config.debug) {\n console.debug(\"[JITSU DEBUG] Initializing Jitsu plugin with config: \", JSON.stringify(config, null, 2));\n }\n if (!config.host && !config.echoEvents) {\n throw new Error(\"Please specify host variable in jitsu plugin initialization, or set echoEvents to true\");\n }\n validateWriteKey(config.writeKey);\n if (config.idEndpoint) {\n if (!isInBrowser()) {\n console.error(`[JITSU] 'idEndpoint' option can be used only in browser environment`);\n return;\n }\n try {\n const fetch = config.fetch || globalThis.fetch;\n const controller = new AbortController();\n setTimeout(() => controller.abort(), 1e3);\n const domain = config.cookieDomain || getTopLevelDomain(window.location.hostname);\n const res = yield fetch(config.idEndpoint + \"?domain=\" + encodeURIComponent(domain), {\n credentials: \"include\",\n signal: controller.signal\n });\n if (!res.ok) {\n console.error(`[JITSU] Can't fetch idEndpoint: ${res.status} - ${res.statusText}`);\n } else if (config.debug) {\n console.log(`[JITSU DEBUG] Fetch idEndpoint: ${res.status}`);\n }\n } catch (e2) {\n console.error(`[JITSU] Can't fetch idEndpoint: ${e2.message}`);\n }\n }\n }),\n page: (args) => {\n var _a;\n const { payload, config, instance } = args;\n if ((_a = config.privacy) == null ? void 0 : _a.dontSend) {\n return;\n }\n const promise = send(\"page\", payload, config, instance, storage);\n if (promise && typeof promise.catch === \"function\") {\n promise.catch(() => {\n });\n }\n return promise;\n },\n track: (args) => {\n var _a;\n const { payload, config, instance } = args;\n if ((_a = config.privacy) == null ? void 0 : _a.dontSend) {\n return;\n }\n const promise = send(\"track\", payload, config, instance, storage);\n if (promise && typeof promise.catch === \"function\") {\n promise.catch(() => {\n });\n }\n return promise;\n },\n identify: (args) => {\n var _a, _b, _c, _d;\n const { payload, config, instance } = args;\n if (((_a = config.privacy) == null ? void 0 : _a.dontSend) || ((_b = config.privacy) == null ? void 0 : _b.disableUserIds)) {\n return;\n }\n storage.setItem(\"__user_id\", payload.userId);\n const doNotSend = (_c = payload.traits) == null ? void 0 : _c.$doNotSend;\n if (payload.traits && typeof payload.traits === \"object\") {\n payload.traits = stripControllingTraits(payload.traits);\n storage.setItem(\"__user_traits\", payload.traits);\n }\n if (doNotSend) {\n return Promise.resolve();\n }\n const isAutoIdentify = ((_d = payload.options) == null ? void 0 : _d.autoIdentify) === true;\n const promise = send(\"identify\", payload, config, instance, storage, isAutoIdentify);\n if (promise && typeof promise.catch === \"function\") {\n promise.catch(() => {\n });\n }\n return promise;\n },\n reset: (args) => {\n const { config, instance } = args;\n storage.reset();\n if (config.debug) {\n console.log(\"[JITSU DEBUG] Resetting Jitsu plugin storage\");\n }\n },\n methods: {\n //analytics doesn't support group as a base method, so we need to add it manually\n configure(newOptions) {\n var _a, _b, _c, _d;\n const idsWasDisabled = ((_a = jitsuOptions.privacy) == null ? void 0 : _a.disableUserIds) || ((_b = jitsuOptions.privacy) == null ? void 0 : _b.dontSend);\n mergeConfig(jitsuOptions, newOptions);\n const idsDisabledNow = ((_c = jitsuOptions.privacy) == null ? void 0 : _c.disableUserIds) || ((_d = jitsuOptions.privacy) == null ? void 0 : _d.dontSend);\n if (!idsDisabledNow && idsWasDisabled) {\n if (jitsuOptions.debug) {\n console.log(\"[JITSU] Enabling Anonymous ID. Generating new Id.\");\n }\n const instance = this.instance;\n const newAnonymousId = uuid();\n const userState = instance.user();\n if (userState) {\n userState.anonymousId = newAnonymousId;\n }\n storage.setItem(\"__anon_id\", newAnonymousId);\n instance.setAnonymousId(newAnonymousId);\n }\n },\n group(groupId, traits, options, callback) {\n var _a, _b;\n if (((_a = jitsuOptions.privacy) == null ? void 0 : _a.dontSend) || ((_b = jitsuOptions.privacy) == null ? void 0 : _b.disableUserIds)) {\n return;\n }\n if (typeof groupId === \"number\") {\n groupId = groupId + \"\";\n }\n const instance = this.instance;\n const user = instance.user();\n const userId = (options == null ? void 0 : options.userId) || (user == null ? void 0 : user.userId);\n const anonymousId = (options == null ? void 0 : options.anonymousId) || (user == null ? void 0 : user.anonymousId) || storage.getItem(\"__anon_id\");\n storage.setItem(\"__group_id\", groupId);\n const doNotSend = traits == null ? void 0 : traits.$doNotSend;\n if (traits && typeof traits === \"object\") {\n traits = stripControllingTraits(traits);\n storage.setItem(\"__group_traits\", traits);\n }\n if (doNotSend) {\n return Promise.resolve();\n }\n return send(\n \"group\",\n __spreadValues(__spreadValues({ type: \"group\", groupId, traits }, anonymousId ? { anonymousId } : {}), userId ? { userId } : {}),\n jitsuOptions,\n instance,\n storage\n );\n }\n }\n };\n};\nvar seedCounter = 0;\nfunction getSeed() {\n var _a;\n seedCounter = (seedCounter + 1) % Number.MAX_SAFE_INTEGER;\n const defaultSeed = Date.now() % 2147483647;\n const seed = isInBrowser() ? ((_a = window == null ? void 0 : window.performance) == null ? void 0 : _a.now()) || defaultSeed : defaultSeed;\n return seed + seedCounter;\n}\nfunction randomId(hashString = \"\") {\n const d3 = Date.now();\n return (Math.random() * d3 * hash(hashString != null ? hashString : \"\", getSeed()) % Number.MAX_SAFE_INTEGER).toString(36) + (Math.random() * d3 * hash(hashString != null ? hashString : \"\", getSeed()) % Number.MAX_SAFE_INTEGER).toString(36);\n}\nfunction uuid() {\n var u3 = \"\", m4 = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\", i4 = 0, rb = Math.random() * 4294967295 | 0;\n while (i4++ < 36) {\n var c4 = m4[i4 - 1], r3 = rb & 15, v2 = c4 == \"x\" ? r3 : r3 & 3 | 8;\n u3 += c4 == \"-\" || c4 == \"4\" ? c4 : v2.toString(16);\n rb = i4 % 8 == 0 ? Math.random() * 4294967295 | 0 : rb >> 4;\n }\n return u3;\n}\nfunction hash(str, seed = 0) {\n let h1 = 3735928559 ^ seed, h22 = 1103547991 ^ seed;\n for (let i4 = 0, ch; i4 < str.length; i4++) {\n ch = str.charCodeAt(i4);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h22 = Math.imul(h22 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ h1 >>> 16, 2246822507) ^ Math.imul(h22 ^ h22 >>> 13, 3266489909);\n h22 = Math.imul(h22 ^ h22 >>> 16, 2246822507) ^ Math.imul(h1 ^ h1 >>> 13, 3266489909);\n return 4294967296 * (2097151 & h22) + (h1 >>> 0);\n}\n\n// src/index.ts\nfunction parse(input) {\n let value = input;\n if ((input == null ? void 0 : input.indexOf(\"%7B%22\")) === 0) {\n value = decodeURIComponent(input);\n }\n try {\n value = JSON.parse(value);\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n if (typeof value === \"object\") return value;\n if (parseFloat(value) === value) {\n value = parseFloat(value);\n }\n } catch (e2) {\n }\n if (value === null || value === \"\") {\n return;\n }\n return value;\n}\nvar emptyAnalytics = {\n setAnonymousId: () => {\n },\n setContextProperty(name, value) {\n },\n getContextProperty(name) {\n return void 0;\n },\n track: () => Promise.resolve(),\n page: () => Promise.resolve(),\n user: () => ({}),\n identify: () => Promise.resolve({}),\n group: () => Promise.resolve({}),\n reset: () => Promise.resolve({}),\n configure: () => {\n },\n getConfiguration() {\n return {};\n }\n};\nfunction createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {\n var _a, _b, _c, _e2, _f;\n const storageCache = {};\n let resetCalled = false;\n const cachingStorageWrapper = (persistentStorage) => ({\n setItem(key, val) {\n var _a2, _b2;\n if (((_a2 = opts.privacy) == null ? void 0 : _a2.dontSend) || ((_b2 = opts.privacy) == null ? void 0 : _b2.disableUserIds)) {\n return;\n }\n if (opts.debug) {\n console.log(`[JITSU DEBUG] [Caching storage] setItem: ${key}=${val}`);\n }\n storageCache[key] = val;\n persistentStorage.setItem(key, val);\n },\n getItem(key) {\n var _a2, _b2;\n if (((_a2 = opts.privacy) == null ? void 0 : _a2.dontSend) || ((_b2 = opts.privacy) == null ? void 0 : _b2.disableUserIds)) {\n return;\n }\n const value = storageCache[key] || persistentStorage.getItem(key);\n if (opts.debug) {\n console.log(`[JITSU DEBUG] [Caching storage] getItem: ${key}=${value}. From cache: ${!!storageCache[key]}`);\n }\n return value;\n },\n reset() {\n for (const key of [...Object.keys(storageCache)]) {\n delete storageCache[key];\n }\n persistentStorage.reset();\n },\n removeItem(key) {\n if (opts.debug) {\n console.log(`[JITSU DEBUG] Caching storage removeItem: ${key}`);\n }\n delete storageCache[key];\n persistentStorage.removeItem(key);\n }\n });\n const storage = cachingStorageWrapper(((_a = rt.store) == null ? void 0 : _a.call(rt)) || createInMemoryStorage(opts.debug));\n if (opts.userId && !((_b = opts.privacy) == null ? void 0 : _b.disableUserIds) && !((_c = opts.privacy) == null ? void 0 : _c.dontSend)) {\n storage.setItem(\"__user_id\", opts.userId);\n }\n const analytics = analyticsLib({\n debug: !!opts.debug,\n storage,\n plugins: [jitsuAnalyticsPlugin(opts, storage), ...plugins]\n });\n const a4 = __spreadProps(__spreadValues({}, analytics), {\n page: (...args) => {\n if (args.length === 2 && typeof args[0] === \"string\" && typeof args[1] === \"object\") {\n return analytics.page(__spreadValues({\n name: args[0]\n }, args[1]));\n } else {\n return analytics.page(...args);\n }\n },\n identify: (...args) => {\n if (args[0] && typeof args[0] !== \"object\" && typeof args[0] !== \"string\") {\n args[0] = args[0] + \"\";\n }\n const storage2 = analytics.storage;\n const storageWrapper = cachingStorageWrapper(storage2);\n if (typeof args[0] === \"string\") {\n storageWrapper.setItem(\"__user_id\", args[0]);\n } else if (typeof args[0] === \"object\") {\n storageWrapper.setItem(\"__user_traits\", args[0]);\n }\n if (args.length === 2 && typeof args[1] === \"object\") {\n storageWrapper.setItem(\"__user_traits\", args[1]);\n }\n return analytics.identify(...args);\n },\n setContextProperty(name, value) {\n if (opts.debug) {\n console.log(`[JITSU DEBUG] Setting context property '${name}':${JSON.stringify(value)}`);\n }\n if (!opts.defaultPayloadContext) {\n opts.defaultPayloadContext = {\n [name]: value\n };\n } else {\n opts.defaultPayloadContext[name] = value;\n }\n },\n getContextProperty(name) {\n var _a2;\n if (opts.debug) {\n console.log(`[JITSU DEBUG] Getting context property '${name}'`);\n }\n return (_a2 = opts.defaultPayloadContext) == null ? void 0 : _a2[name];\n },\n user() {\n var _a2, _b2;\n const u3 = analytics.user();\n const idsDisabled = ((_a2 = opts.privacy) == null ? void 0 : _a2.disableUserIds) || ((_b2 = opts.privacy) == null ? void 0 : _b2.dontSend);\n if (idsDisabled) {\n return __spreadProps(__spreadValues({}, u3), {\n id: void 0\n });\n }\n if (u3 && !u3.id && opts.userId && !resetCalled) {\n return __spreadProps(__spreadValues({}, u3), {\n id: opts.userId\n });\n }\n return u3;\n },\n setAnonymousId: (id) => {\n if (opts.debug) {\n console.log(\"[JITSU DEBUG] Setting anonymous id to \" + id);\n }\n storage.setItem(\"__anon_id\", id);\n const userState = analytics.user();\n if (userState) {\n userState.anonymousId = id;\n }\n analytics.setAnonymousId(id);\n },\n reset() {\n return __async(this, null, function* () {\n resetCalled = true;\n if (opts.debug) {\n console.log(\"[JITSU DEBUG] Called reset(). Storage state\", JSON.stringify(analytics.user()));\n }\n storage.reset();\n yield analytics.reset();\n this.setAnonymousId(uuid());\n if (opts.debug) {\n console.log(\"[JITSU DEBUG] User state after reset\", JSON.stringify(analytics.user()));\n }\n });\n },\n configure(options) {\n return __async(this, null, function* () {\n var _a2, _b2;\n if (opts.debug) {\n console.log(\"[JITSU DEBUG] Update Jitsu config with\", JSON.stringify(options));\n }\n if (((_a2 = options.privacy) == null ? void 0 : _a2.disableUserIds) || ((_b2 = options.privacy) == null ? void 0 : _b2.dontSend)) {\n storage.reset();\n }\n for (const plugin of Object.values(analytics.plugins)) {\n if (typeof plugin[\"configure\"] === \"function\") {\n plugin[\"configure\"](options);\n }\n }\n });\n },\n group(groupId, traits, options, callback) {\n return __async(this, null, function* () {\n const results = [];\n for (const plugin of Object.values(analytics.plugins)) {\n if (plugin[\"group\"]) {\n results.push(yield plugin[\"group\"](groupId, traits, options, callback));\n }\n }\n return results[0];\n });\n },\n getConfiguration() {\n return opts;\n }\n });\n if (((_e2 = opts.privacy) == null ? void 0 : _e2.disableUserIds) || ((_f = opts.privacy) == null ? void 0 : _f.dontSend)) {\n storage.reset();\n } else if (opts.userId) {\n a4.identify(opts.userId, {}, { autoIdentify: true }).catch((err) => {\n if (opts.debug) {\n console.warn(\"[JITSU WARNING] Auto-identification failed on initialization:\", err);\n }\n });\n }\n return a4;\n}\nfunction fixOptions(opts) {\n var _a, _b;\n return __spreadProps(__spreadValues({}, opts), {\n host: ((_a = opts.host) != null ? _a : \"\").indexOf(\"https://\") !== 0 && ((_b = opts.host) != null ? _b : \"\").indexOf(\"http://\") !== 0 ? `https://${opts.host}` : opts.host\n });\n}\nfunction jitsuAnalytics(_opts) {\n const opts = fixOptions(_opts);\n if (opts.preInitAnonymousId) {\n ensureAnonymousId(opts);\n }\n const inBrowser = isInBrowser();\n const rt = opts.runtime || (inBrowser ? windowRuntime(opts) : emptyRuntime(opts));\n return createUnderlyingAnalyticsInstance(opts, rt);\n}\nexport {\n createInMemoryStorage,\n parse as default,\n emptyAnalytics,\n emptyRuntime,\n ensureAnonymousId,\n isInBrowser,\n jitsuAnalytics,\n jitsuAnalyticsPlugin,\n parseQuery,\n randomId,\n uuid,\n windowRuntime\n};\n"],"names":["InitStaticSections","constructor","Salla","event","on","this","renderAll","hooks","renderAutoComponents","hook","tag","canRender","url","is_page","config","get","includes","_Salla$config$get","_Salla$config$get2","lang","onLoaded","renderAppInstall","renderEdit","applyContentCopyright","renderTemplateStore","helpers","isIframe","renderMaintenance","renderThemePreview","document","body","classList","add","querySelector","logger","warn","prepend","createElement","append","storage","isMobileApp","alertElement","id","setAttribute","innerHTML","edit","forEach","addEventListener","e","element","_element$tagName","tagName","toLowerCase","isInputElement","target","preventDefault","key","ctrlKey","shiftKey","stopPropagation","style","textContent","__defProp","Object","varName","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","prototype","hasOwnProperty","__propIsEnum","propertyIsEnumerable","__defNormalProp","obj","value","enumerable","configurable","writable","__spreadValues","a4","b5","prop","call","__spreadProps","__async","__this","__arguments","generator","Promise","resolve","reject","fulfilled","step","next","e2","rejected","throw","x3","done","then","apply","dlv_es_default","t2","l3","n4","r3","split","length","o","F","process","env","NODE_ENV","$","M","charAt","slice","versions","node","Deno","core","window","name","navigator","userAgent","U","bind","H","J","Y","W","yn","toString","R","V","q","I","Q","un","getPrototypeOf","hn","Error","message","isNaN","nn","stackTraceLimit","On","$n","Element","HTMLDocument","nodeName","toUpperCase","Tn","_n","arguments","concat","n","decodeURIComponent","replace","e3","m2","o3","y","Math","random","TypeError","SyntaxError","l","o2","j","n2","self","global","a","f","i","u","b2","t3","c","setItem","removeItem","g","assign","h","v","y2","b3","Symbol","observable","I2","w","i4","u3","s2","f2","d3","push","n5","indexOf","splice","p","type","dispatch","subscribe","getState","replaceReducer","e4","unsubscribe","E","P2","reduce","S","c4","map","N","A","_2","j2","k2","x","T2","z","registerPluginType","pluginReadyType","M2","q2","V2","C","bootstrap","params","user","persistedUser","initialUser","userId","anonymousId","traits","keys","an_uid","an_event","match","campaign","props","raw","setTimeout","identify","track","U2","setItemEnd","reset","R2","getItem","$2","D","options","userIdChanged","old","new","B2","L","J2","queue","X2","abort","H2","data","action","instance","state","allPlugins","allMatches","store","EVENTS","plugins","context","m4","W2","h3","exact","pluginName","during","v2","r4","i5","a5","o4","u4","t4","n6","r5","i6","a6","o5","u5","c5","ne","JSON","stringify","reason","caller","_","payload","ae","y3","methodName","loaded","offline","namespaced","e5","e6","method","e7","n7","ie","join","i7","o6","from","Q2","s3","d4","ee","K","plugin","called","s4","f3","F2","G2","originalAction","te","Y2","Z","re","Array","isArray","oe","enablePlugin","initializeStart","disabled","fromEnable","meta","disablePlugin","rid","initializeEnd","filter","I4","w2","E3","events","catch","all","failed","ready","P3","test","actions","processIndex","requeue","requeueIndex","t5","d5","p2","m5","h4","v3","y4","enabled","initialized","r6","beforeNS","duringNS","afterNS","before","after","hasCallback","ue","ce","addMiddleware","removeMiddleware","findIndex","dynamicMiddlewares","se","le","Boolean","initialize","fe","substring","de","parse","pe","last","history","me","properties","ge","he","be","ve","ye","exec","Ie","title","referrer","location","innerWidth","innerHeight","hash","search","getElementsByTagName","getAttribute","href","path","width","height","we","Ee","page","Pe","sessionId","app","version","debug","onLine","os","library","timezone","locale","Se","online","Ne","Ae","analytics","_e","Oe","je","ts","Date","getTime","ke","reducers","middlewares","NAMESPACE","pluginEnabled","methods","K2","Set","pluginsArray","A3","sort","_3","O2","M3","q3","V3","B3","L3","J4","X3","create","H3","W3","an_aid","F4","enable","le2","disable","G4","identifyStart","previousId","trackStart","pageStart","resetStart","xe","Te","once","setItemStart","removeItemStart","setAnonymousId","Q3","Y3","Z2","ee2","te2","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","trace","traceLimit","ne2","re2","ie2","ae2","fe2","de2","pe2","registerPlugins","t","i2","a2","r","d","c2","u2","cookie","encodeURIComponent","toUTCString","r2","g2","a3","i3","I3","parseFloat","k3","O","x2","C2","A2","N2","d2","localStorage","h2","E2","sessionStorage","G3","F3","current","previous","J3","g4","S3","_defineProperty","defineProperty","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","source","loadScript","src","found","querySelectorAll","find","findScript","status","err","_a","_b","script","result","startsWith","www","min","js","query","buildScriptSrc","async","k4","entries","attributes","onload","onerror","parentElement","insertBefore","tagPlugin","handle","applyFilters","code","opts","isInBrowser","randomId","iif","console","error","isAutoIdentify","getErrorHandler","jitsuConfig","errorHandler","execJs","codeHolder","fetchResult","statusText","replaceMacro","insertAdjacentElement","scriptClone","hasAttribute","text","log","head","appendChild","removeChild","insertTags","ev","reverse","execF","globalThis","responseText","responseJson","stripControllingTraits","res","getLogRocketState","controllingTraits","jitsuAnalyticsPlugin","jitsuOptions","mergeConfig","appId","setLogRocketState","flushLogRocketQueue","host","echoEvents","msg","destinations","logRocket","s2s","getLogRocketQueue","lr","adjustedPayload","gtmPlugin","_c","fetch","_g","_k","_m","controller","AbortController","dlName","loadGtm","setGtmState","tagId","groupId","containerId","$doNotSend","user_id","doNotSend","getSeed","seedCounter","initGtmIfNeeded","cookieDomain","getTopLevelDomain","domain","signal","validateWriteKey","userData","email_address","args","privacy","promise","user_data","dontSend","pageProperties","send","_d","_e2","_f","disableUserIds","page_hash","_i","page_referrer","autoIdentify","pushToDataLayer","configure","pageProperties2","idsWasDisabled","ids","newOptions","idsDisabledNow","pageVariables","trackProperties","newAnonymousId","uuid","resetDataLayer","group","callback","dataLayer","defaultSeed","performance","now","byteArray","TextDecoder","hashString","Number","MAX_SAFE_INTEGER","storageCache","val","_b2","persistentStorage","send_page_view","urlData","setGa4State","cachingStorageWrapper","dataLayerName","rb","seed","str","charCodeAt","imul","ch","h1","page_location","input","createUnderlyingAnalyticsInstance","rt","trackEvent","resetCalled","_a2","satisfyFilter","subject","createInMemoryStorage","trim","creds","eventsArray","hosts","hostFilter","analyticsLib","storage2","storageWrapper","eventFilter","ga4Plugin","_publicSuffixesMap","publicSuffixes","tld","publicSuffixesMap","hostname","parts","processor_default","selfOptions","pipes","pipe","pipeArg","processor","lastPipe","nextPipe","nextAfterChildren","hasResult","pipe_default","filters","index","filterName","exiting","resultCheck","unshift","list","remove","clear","shouldHaveResult","should","noResult","Context","setResult","exit","child","parent","childName","root","children","diff_default","left","right","super","patch_default","delta","diffFilter","leftType","rightType","leftIsArray","rightIsArray","arrayEquals","RegExp","patchFilter","nested","nonNestedDelta","regexArgs","collectChildrenDiffFilter","_t","objectsDiffFilter","propertyFilter","patchFilter2","nestedDelta","objectDelta","collectChildrenPatchFilter","property","diffFilter2","diffpatcher_default","diff","patch","defaultConfig","writeKey","cookieNames","cookieCapture","runtime","fetchTimeoutMs","idEndpoint","errorPolicy","defaultPayloadContext","ipPolicy","consentCategories","newConfig","utmToKey","parseUtms","acc","safeCall","defaultVal","restoreTraits","groupVal","getCookie","pop","shift","getClientIds","customCookieCapture","fbc","fbp","clientIds","cookieName","allCookies","getCookies","clientId","gaSessionCookies","sessionIds","fromEntries","cookieValue","parseGa4SessionId","ga4","getGa4Ids","removeCookie","secure","setCookie","defaultCookie2Key","__anon_id","__user_id","__user_traits","__group_id","__group_traits","windowRuntime","key2Cookie","userTraits","groupTraits","cookies","matches","matchAll","documentEncoding","characterSet","timezoneOffset","getTimezoneOffset","key2cookie","protocol","internal_id","language","pageTitle","pageUrl","screen","density","floor","devicePixelRatio","emptyRuntime","deepCopy","deepMerge","hashRegex","analyticsJsUrl","canonical","tags","canonicalUrl","adjustPayload","_h","_j","_l","_n2","_o","parsedUrl","URL","qs","queryString","pairs","substr","pair","parseQuery","targetUrl","urlPath","lastIndexOf","customContext","consent","categoryPreferences","ip","pathname","referring_domain","encoding","withContext","timestamp","toISOString","sentAt","messageId","maskWriteKey","isDiff","secret","configuredHandler","debugHeader","abortController","abortTimeout","authHeader","ipHeader","headers","clearTimeout","originalEvent","analyticsInstance","promises","destination","newEvents","__diff","credentials","deviceOptions","internalDestinationPlugins","packageCdn","moduleVarName","pluginInstance","init","existing"],"mappings":"+s6MA0FA,MAAAA,GAAA,WAAAC,GAAAC,MAAAC,MAAAC,GAAA,yBAAA,IAAAC,KAAAC,YAAA,CAAA,eAAAA,GAAAJ,MAAAK,MAAAC,qBAAA,CAAA,CAAAC,KAAA,6BAAAC,IAAA,yBAAAC,UAAA,IAAAT,MAAAU,IAAAC,QAAA,mBAAAX,MAAAY,OAAAC,IAAA,iBAAA,IAAAC,SAAA,sBAAA,CAAAP,KAAA,6BAAAC,IAAA,uBAAAC,UAAA,IAAAT,MAAAU,IAAAC,QAAA,mBAAAX,MAAAY,OAAAC,IAAA,iBAAA,IAAAC,SAAA,mBAAA,CAAAP,KAAA,6BAAAC,IAAA,8BAAAC,UAAA,IAAAT,MAAAU,IAAAC,QAAA,mBAAAX,MAAAY,OAAAC,IAAA,iBAAA,IAAAC,SAAA,mBAAA,CAAAP,KAAA,6BAAAC,IAAA,wBAAAC,UAAA,IAAAT,MAAAU,IAAAC,QAAA,mBAAA,CAAAJ,KAAA,0BAAAC,IAAA,4BAAAC,UAAA,IAAAT,MAAAU,IAAAC,QAAA,mBAAAX,MAAAY,OAAAC,IAAA,iBAAA,IAAAC,SAAA,sBAAA,CAAAP,KAAA,WAAAC,IAAA,oBAAAC,UAAA,KAAA,IAAAM,EAAA,OAAA,OAAAA,EAAAf,MAAAY,OAAAC,IAAA,wBAAA,EAAAE,EAAAD,SAAA,qBAAA,CAAAP,KAAA,WAAAC,IAAA,wBAAAC,UAAA,KAAA,IAAAO,EAAA,OAAA,OAAAA,EAAAhB,MAAAY,OAAAC,IAAA,wBAAA,EAAAG,EAAAF,SAAA,yBAAA,IAAAd,MAAAY,OAAAC,IAAA,4CAAA,CAAAN,KAAA,iCAAAC,IAAA,wBAAAC,UAAA,IAAAT,MAAAU,IAAAC,QAAA,mBAAAX,MAAAY,OAAAC,IAAA,2CAAA,CAAAN,KAAA,gCAAAC,IAAA,yBAAAC,UAAA,IAAAT,MAAAU,IAAAC,QAAA,sBAAA,CAAAJ,KAAA,uCAAAC,IAAA,qBAAAC,UAAA,IAAAT,MAAAU,IAAAC,QAAA,mCAAAX,MAAAiB,KAAAC,WAAAf,KAAAgB,mBAAAhB,KAAAiB,aAAAjB,KAAAkB,wBAAAlB,KAAAmB,sBAAAtB,MAAAuB,QAAAC,aAAArB,KAAAsB,oBAAAtB,KAAAuB,qBAAA,CAAA,iBAAAD,GAAAzB,MAAAY,OAAAC,IAAA,iBAAAc,SAAAC,KAAAC,UAAAC,IAAA,uBAAAH,SAAAI,cAAA,2BAAA/B,MAAAgC,OAAAC,KAAA,mDAAAN,SAAAC,KAAAM,QAAAP,SAAAQ,cAAA,4BAAA,CAAA,mBAAAb,GAAAtB,MAAAY,OAAAC,IAAA,oBAAAc,SAAAC,KAAAC,UAAAC,IAAA,oBAAAH,SAAAI,cAAA,sBAAA/B,MAAAgC,OAAAC,KAAA,8CAAAN,SAAAC,KAAAQ,OAAAT,SAAAQ,cAAA,uBAAA,CAAA,gBAAAhB,GAAAnB,MAAAY,OAAAC,IAAA,6BAAAb,MAAAY,OAAAC,IAAA,gBAAAb,MAAAqC,QAAAxB,IAAA,iCAAAb,MAAAY,OAAA0B,gBAAAX,SAAAC,KAAAC,UAAAC,IAAA,yBAAAH,SAAAI,cAAA,2BAAA/B,MAAAgC,OAAAC,KAAA,mDAAAN,SAAAC,KAAAQ,OAAAT,SAAAQ,cAAA,4BAAA,CAAA,kBAAAT,GAAA,GAAA,YAAA1B,MAAAY,OAAAC,IAAA,cAAA,OAAA,GAAAc,SAAAC,KAAAC,UAAAC,IAAA,mBAAAH,SAAAI,cAAA,wBAAA,YAAA/B,MAAAgC,OAAAC,KAAA,gDAAA,IAAAM,EAAAZ,SAAAQ,cAAA,OAAAI,EAAAC,GAAA,sBAAAD,EAAAE,aAAA,QAAA,4LAAAF,EAAAG,UAAA,8MAGA1C,MAAAiB,KAAAJ,IAAA,2HAAAb,MAAAY,OAAAC,IAAA,mFAGkBqB,IAAOrB,IAAC0B,wHAkB1BZ,SAAAC,KAAyBe,8BAAgD3C,MAAMY,OAAOC,IAAI,QAAA,IAAA8B,EAAA,OAAuB,GAAAhB,SAAUI,cAAiBnB,iBAAyC,YAA9BZ,MAAAgC,OAAuBC,KAAM,yCAAC,IAAAM,EAAAZ,SAAAQ,cAAA,OAAAI,EAAAC,GAAA,eAAAD,EAAAG,UAAA,4BACrLC,6CAAA3C,MAAAY,OAAAC,IAAA,sBAAA,qBAAAb,MAAAY,OAAAC,IAAA,sBAAA,yJAEAb,MAAAiB,KAAAJ,IAAA,iEA4CAc,SAAAC,KAAAM,QAAAK,EAAA,CAAA,qBAAAlB,GAAA,IAAArB,MAAAY,OAAAC,IAAA,oCAAA,OAAA,CAAA,cAAA,cAAA,QAAA+B,QAAA3C,IAAA0B,SAAAkB,iBAAA5C,EAAA6C,IAAAC,KAAA,IAAAC,EAAA,IAAAD,EAAA,OAAA,EAAA,MAAAE,EAAA,OAAAD,EAAAD,EAAAE,cAAA,EAAAD,EAAAE,cAAA,MAAA,UAAAD,GAAA,aAAAA,GAAAE,CAAAL,EAAAM,SAAAN,EAAAO,qBAAA1B,SAAAkB,iBAAA,UAAAC,IAAA,MAAAQ,EAAAR,EAAAQ,IAAAJ,eAAA,QAAAI,GAAAR,EAAAS,SAAAT,EAAAU,UAAA,CAAA,IAAA,IAAA,KAAA1C,SAAAwC,IAAAR,EAAAS,SAAA,MAAAD,KAAAR,EAAAO,iBAAAP,EAAAW,qBAAA,MAAAC,EAAA/B,SAAAQ,cAAA,SAAAuB,EAAAC,YAAA,srfCqqCA,IAAAC,GAAAC,OAAsBC,eAAOC,GAAAF,OAAAG,iBAAAC,GAAAJ,OAAAK,0BAAAC,GAAAN,OAAAO,sBAAAC,GAAAR,OAAAS,UAAAC,eAAAC,GAAAX,OAAAS,UAAAG,qBAAAC,GAAA,CAAAC,EAAArB,EAAAsB,IAAAtB,KAAAqB,EAAAf,GAAAe,EAAArB,EAAA,CAAAuB,YAAA,EAAAC,cAAA,EAAAC,UAAA,EAAAH,UAAAD,EAAArB,GAAAsB,EAAAI,GAAA,CAAAC,EAAAC,KAAA,IAAA,IAAAC,KAAAD,IAAAA,EAAA,CAAA,GAAAb,GAAAe,KAAAF,EAAAC,IAAAT,GAAAO,EAAAE,EAAAD,EAAAC,IAAA,GAAAhB,GAAA,IAAA,IAAAgB,KAAAhB,GAAAe,GAAAV,GAAAY,KAAAF,EAAAC,IAAAT,GAAAO,EAAAE,EAAAD,EAAAC,IAAA,OAAAF,GAAAI,GAAA,CAAAJ,EAAAC,IAAAnB,GAAAkB,EAAAhB,GAAAiB,IAAAI,GAAA,CAAAC,EAAAC,EAAAC,IAAA,IAAAC,QAAA,CAAAC,EAAAC,KAAA,IAAAC,EAAAjB,IAAA,IAAAkB,EAAAL,EAAAM,KAAAnB,GAAA,CAAA,MAAAoB,GAAAJ,EAAAI,EAAA,GAAAC,EAAArB,IAAA,IAAAkB,EAAAL,EAAAS,MAAAtB,GAAA,CAAA,MAAAoB,GAAAJ,EAAAI,EAAA,GAAAF,EAAAK,GAAAA,EAAAC,KAAAT,EAAAQ,EAAAvB,OAAAc,QAAAC,QAAAQ,EAAAvB,OAAAyB,KAAAR,EAAAI,GAAAH,GAAAL,EAAAA,EAAAa,MAAAf,EAAAC,IAAAO,UAAA,SAAAQ,GAAAC,EAAAR,EAAAS,EAAAC,EAAAC,GAAA,IAAAX,EAAAA,EAAAY,MAAAZ,EAAAY,MAAA,KAAAZ,EAAAU,EAAA,EAAAA,EAAAV,EAAAa,OAAAH,IAAAF,EAAAA,EAAAA,EAAAR,EAAAU,IAAAC,EAAA,OAAAH,IAAAG,EAAAF,EAAAD,CAAA,CAAA,IAAA1D,GAAA,YAAAgE,GAAA,SAAAC,GAAA,oBAAAC,QAAAA,QAAA,CAAA,EAAAD,GAAAE,KAAAF,GAAAE,IAAAC,SAAA,IAAAC,GAAA,oBAAAxF,SAAA,SAAAyF,GAAAV,EAAAF,GAAA,OAAAA,EAAAa,OAAA,GAAAX,KAAAF,EAAAc,MAAA,EAAA,CAAA,MAAAP,GAAAQ,UAAAR,GAAAQ,SAAAC,KAAA,oBAAAC,MAAAA,KAAAC,KAAAP,IAAA,WAAAQ,OAAAC,MAAA,oBAAAC,gBAAA,IAAAA,UAAAC,YAAAD,UAAAC,UAAAhH,SAAA,YAAA+G,UAAAC,UAAAhH,SAAA,UAAA,IAAAiH,GAAAX,GAAAY,KAAA,KAAA,eAAAC,GAAAb,GAAAY,KAAA,KAAA,eAAA,SAAAE,GAAAxB,GAAA,OAAAyB,GAAAzB,GAAAqB,GAAA,QAAA,iBAAArB,EAAA,SAAAA,GAAA,OAAA0B,GAAA1B,EAAA3G,aAAA2G,EAAA3G,YAAA6H,KAAA,IAAA,CAAAS,CAAA3B,GAAA7C,OAAAS,UAAAgE,SAAAlD,KAAAsB,GAAAY,MAAA,GAAA,EAAA,CAAA,SAAAiB,GAAA7B,EAAAF,QAAA,IAAAA,IAAAA,GAAA,GAAA,IAAAR,EAAAkC,GAAAxB,GAAA,OAAAF,EAAAyB,GAAAjC,GAAAA,CAAA,CAAA,SAAAwC,GAAA9B,EAAAF,GAAA,cAAAA,IAAAE,CAAA,CAAA,IAAA0B,GAAAI,GAAAR,KAAA,KAAA,YAAAS,GAAAD,GAAAR,KAAA,KAAA,UAAAU,GAAAF,GAAAR,KAAA,KAAA,aAAAW,GAAAH,GAAAR,KAAA,KAAA,WAAA,SAAAG,GAAAzB,GAAA,OAAA,OAAAA,CAAA,CAAA,SAAAxG,GAAAwG,GAAA,IAAA,SAAAA,GAAA,OAAAA,IAAA,iBAAAA,GAAA,OAAAA,EAAA,CAAAkC,CAAAlC,GAAA,OAAA,EAAA,IAAA,IAAAF,EAAAE,EAAA,OAAA7C,OAAAgF,eAAArC,IAAAA,EAAA3C,OAAAgF,eAAArC,GAAA,OAAA3C,OAAAgF,eAAAnC,KAAAF,CAAA,CAAA,SAAAsC,GAAApC,GAAA,OAAAA,aAAAqC,OAAAN,GAAA/B,EAAAsC,UAAAtC,EAAA3G,aAAA,SAAA2G,GAAA,MAAA,WAAA6B,GAAA7B,KAAAuC,MAAAvC,EAAA,CAAAwC,CAAAxC,EAAA3G,YAAAoJ,gBAAA,CAAA,SAAAC,GAAA1C,EAAAF,GAAA,GAAA,iBAAAA,GAAA2B,GAAA3B,GAAA,OAAA,EAAA,GAAAA,aAAAE,EAAA,OAAA,EAAA,IAAAV,EAAAuC,GAAA,IAAA7B,EAAA,KAAA,GAAAoC,GAAAtC,GAAA,KAAAA,GAAA,CAAA,GAAA+B,GAAA/B,KAAAR,EAAA,OAAA,EAAAQ,EAAA3C,OAAAgF,eAAArC,EAAA,CAAA,OAAA,CAAA,CAAA,SAAA6C,GAAA3C,EAAAF,GAAA,IAAAR,EAAAU,aAAA4C,SAAA5C,aAAA6C,aAAA,OAAAvD,GAAAQ,EAAA,SAAAE,EAAAF,GAAA,YAAA,IAAAA,IAAAA,EAAA,IAAAE,GAAAA,EAAA8C,WAAAhD,EAAAiD,aAAA,CAAAC,CAAAhD,EAAAF,GAAAR,CAAA,CAAA,SAAA2D,GAAAjD,GAAA,IAAAF,EAAA,GAAAc,MAAAlC,KAAAwE,UAAA,GAAA,OAAA,WAAA,OAAAlD,EAAAJ,WAAA,EAAA,GAAAgB,MAAAlC,KAAAwE,WAAAC,OAAArD,GAAA,CAAA,CAAA,SAAAsD,GAAA9D,GAAA,IAAA,OAAA+D,mBAAA/D,EAAAgE,QAAA,MAAA,KAAA,CAAA,MAAAC,GAAA,OAAA,IAAA,CAAA,CAAA,SAAAC,GAAAlE,EAAAW,EAAAH,GAAA,IAAA,IAAAE,EAAAC,EAAAE,OAAA,EAAAsD,EAAA,EAAAA,EAAAzD,IAAAyD,EAAA,CAAA,IAAAlF,EAAA0B,EAAAwD,GAAA,GAAA,cAAAlF,GAAA,gBAAAA,EAAA,MAAAA,KAAAe,IAAAA,EAAAf,GAAA,CAAA,GAAAe,EAAAA,EAAAf,EAAA,CAAAe,EAAAW,EAAAD,IAAAF,CAAA,CAAA,SAAA4D,KAAA,IAAA,IAAApE,EAAA,GAAAW,EAAA,EAAAH,EAAA,WAAA6D,KAAAC,SAAA,EAAA3D,IAAA,IAAA,CAAA,IAAAD,EAAA,uCAAAC,EAAA,GAAAwD,EAAA,GAAA3D,EAAAR,GAAA,KAAAU,GAAA,KAAAA,EAAAA,GAAA,KAAAA,EAAAyD,EAAA,EAAAA,EAAA,GAAA7B,SAAA,IAAA9B,EAAAG,EAAA,GAAA,EAAA,WAAA0D,KAAAC,SAAA,EAAA9D,GAAA,CAAA,CAAA,OAAAR,CAAA,CAAAwC,GAAAR,KAAA,KAAA,UAAAoB,GAAApB,KAAA,KAAAuC,WAAAnB,GAAApB,KAAA,KAAAwC,aAAAb,GAAAN,GAAA,QAAAM,GAAAN,GAAA,UAAAM,GAAAN,GAAA,SAAAM,GAAAN,GAAA,UAAA,IAAAoB,GAAA,SAAAC,GAAAC,aAAAC,UAAAC,OAAA/D,IAAA+D,KAAAA,OAAAA,MAAAA,aAAAC,SAAAhE,IAAAgE,OAAAA,SAAAA,QAAAA,aAAA,EAAA,SAAAC,GAAAvE,GAAA,OAAAoE,GAAAF,IAAAlE,EAAA,CAAA,SAAAwE,GAAAxE,EAAAR,GAAA,OAAA4E,GAAAF,IAAAlE,GAAAR,CAAA,CAAA,SAAAiF,GAAAzE,UAAAoE,GAAAF,IAAAlE,EAAA,CAAA,SAAA0E,GAAA1E,EAAAR,EAAAW,GAAA,IAAAF,EAAA,IAAA,GAAA0E,GAAA3E,GAAA,CAAA,IAAA2D,EAAAxC,OAAAnB,GAAAC,EAAA0D,EAAAnE,GAAAgC,KAAAmC,EAAA,CAAA,CAAA,MAAAiB,GAAA,CAAA,OAAA3E,GAAAE,CAAA,CAAAiE,GAAAF,MAAAE,GAAAF,IAAA,CAAA,GAAA,IAAAW,GAAA,CAAA,EAAA,SAAAF,GAAA3E,GAAA,UAAA6E,GAAA7E,KAAA1D,GAAA,OAAAuI,GAAA7E,GAAA,IAAA,IAAAR,EAAA2B,OAAAnB,GAAAR,EAAAsF,QAAAxI,GAAAA,IAAAkD,EAAAuF,WAAAzI,GAAA,CAAA,MAAAmH,GAAA,OAAAoB,GAAA7E,IAAA,CAAA,CAAA,OAAA6E,GAAA7E,IAAA,CAAA,CAAA,SAAAgF,KAAA,OAAAA,GAAA3H,OAAA4H,QAAA,SAAAzF,GAAA,IAAA,IAAAQ,EAAA,EAAAA,EAAAoD,UAAA/C,OAAAL,IAAA,CAAA,IAAAE,EAAAkD,UAAApD,GAAA,IAAA,IAAAG,KAAAD,EAAA7C,OAAAS,UAAAC,eAAAa,KAAAsB,EAAAC,KAAAX,EAAAW,GAAAD,EAAAC,GAAA,CAAA,OAAAX,CAAA,EAAAwF,GAAAlF,MAAAnG,KAAAyJ,UAAA,CAAA,IAAA8B,GAAA,WAAAC,GAAA,YAAAC,GAAA,WAAAvB,KAAAC,SAAAhC,SAAA,IAAAuD,UAAAC,SAAAJ,IAAAI,OAAAC,YAAA,eAAAC,GAAA,OAAAN,GAAA,SAAAO,GAAAjG,EAAAQ,EAAAE,GAAA,IAAAC,EAAA,UAAAH,IAAAkF,WAAAhF,IAAAiF,KAAAjF,EAAAF,EAAAA,OAAA,UAAAE,IAAAiF,GAAA,CAAA,UAAAjF,IAAAgF,GAAA,MAAA,IAAA3C,MAAA,WAAAiD,IAAA,OAAAtF,EAAAuF,GAAAvF,CAAAV,EAAAQ,EAAA,CAAA,UAAAR,IAAA0F,GAAA,MAAA,IAAA3C,MAAA,UAAAiD,IAAA,IAAAE,EAAAlG,EAAAf,EAAAuB,EAAA2D,EAAA,GAAAgC,EAAAhC,EAAAiC,GAAA,EAAA,SAAA3F,IAAA0F,IAAAhC,IAAAgC,EAAAhC,EAAA7C,QAAA,CAAA,SAAA+E,IAAA,OAAApH,CAAA,CAAA,SAAAqH,EAAArC,GAAA,UAAAA,IAAAyB,GAAA,MAAA,IAAA3C,MAAA,WAAAiD,IAAA,IAAAZ,GAAA,EAAA,OAAA3E,IAAA0F,EAAAI,KAAAtC,GAAA,WAAA,GAAAmB,EAAA,CAAAA,GAAA,EAAA3E,IAAA,IAAA+F,EAAAL,EAAAM,QAAAxC,GAAAkC,EAAAO,OAAAF,EAAA,EAAA,CAAA,CAAA,CAAA,SAAAG,EAAA1C,GAAA,IAAA/J,GAAA+J,GAAA,MAAA,IAAAlB,MAAA,cAAA,UAAAkB,EAAA2C,OAAAjB,GAAA,MAAA,IAAA5C,MAAA,WAAA4C,IAAA,GAAAS,EAAA,MAAA,IAAArD,MAAA,uBAAA,IAAAqD,GAAA,EAAAnH,EAAAiH,EAAAjH,EAAAgF,EAAA,CAAA,QAAAmC,GAAA,CAAA,CAAA,IAAA,IAAAhB,EAAAjB,EAAAgC,EAAAK,EAAA,EAAAA,EAAApB,EAAAvE,OAAA2F,KAAA,EAAApB,EAAAoB,MAAA,OAAAvC,CAAA,CAAA,OAAA0C,EAAA,CAAAC,KAAA,kBAAAjG,EAAA,CAAAkG,SAAAF,EAAAG,UAAAR,EAAAS,SAAAV,EAAAW,eAAA,SAAA/C,GAAA,UAAAA,IAAAyB,GAAA,MAAA,IAAA3C,MAAA,eAAAiD,IAAAE,EAAAjC,EAAA0C,EAAA,CAAAC,KAAA,gBAAA,IAAAf,IAAA,WAAA,IAAA5B,EAAAmB,EAAAkB,EAAA,OAAArC,EAAA,CAAA6C,UAAA,SAAAG,GAAA,GAAA,iBAAAA,EAAA,MAAA,IAAA1C,UAAA,mBAAA,SAAAiC,IAAAS,EAAAlH,MAAAkH,EAAAlH,KAAAsG,IAAA,CAAA,OAAAG,IAAA,CAAAU,YAAA9B,EAAAoB,GAAA,IAAAX,IAAA,WAAA,OAAA1L,IAAA,EAAA8J,CAAA,EAAAtD,CAAA,CAAA,SAAAwG,GAAAnH,EAAAQ,GAAA,IAAAE,EAAAF,GAAAA,EAAAoG,KAAA,MAAA,WAAAlG,GAAAA,EAAA4B,YAAA,KAAA,WAAAtC,EAAA,YAAA2F,EAAA,CAAA,SAAAyB,KAAA,IAAApH,EAAA,GAAAsB,MAAAlC,KAAAwE,WAAA,OAAA,IAAA5D,EAAAa,OAAA,SAAAoD,GAAA,OAAAA,CAAA,EAAA,IAAAjE,EAAAa,OAAAb,EAAA,GAAAA,EAAAqH,OAAA,SAAApD,EAAAzD,GAAA,OAAA,WAAA,OAAAyD,EAAAzD,EAAAF,WAAA,EAAA,GAAAgB,MAAAlC,KAAAwE,YAAA,CAAA,EAAA,CAAA,SAAA0D,KAAA,IAAAtH,EAAA4D,UAAA,OAAA,SAAApD,GAAA,OAAA,SAAAE,EAAAC,EAAAuF,GAAA,IAAAjH,EAAAkF,EAAA3D,EAAAE,EAAAC,EAAAuF,GAAAC,EAAAhC,EAAA0C,SAAAU,EAAA,CAAAR,SAAA5C,EAAA4C,SAAAF,SAAA,SAAA5C,GAAA,OAAAkC,EAAAlC,EAAA,GAAA,OAAAhF,EAAA,GAAAqC,MAAAlC,KAAAY,GAAAwH,IAAA,SAAAvD,GAAA,OAAAA,EAAAsD,EAAA,GAAA/B,GAAA,CAAA,EAAArB,EAAA,CAAA0C,SAAAV,EAAAiB,GAAA9G,WAAA,EAAArB,EAAAmI,CAAAjD,EAAA0C,WAAA,CAAA,CAAA,CAAA,IAAAY,GAAA9C,YAAA+C,GAAA/C,YAAAgD,GAAAhD,gBAAAiD,GAAA,SAAAC,GAAA,cAAAC,GAAA,CAAA,YAAA,SAAA,WAAA,kBAAA,aAAA,gBAAA,QAAA,aAAA,QAAA,WAAA,YAAA,OAAA,UAAA,cAAA,aAAA,QAAA,WAAA,eAAA,gBAAA,WAAA,cAAA,kBAAA,gBAAA,kBAAA,eAAA,gBAAA,SAAA,UAAA,eAAA,UAAA,aAAA,iBAAA,kBAAA,aAAA,gBAAA,qBAAAC,GAAA,CAAA,OAAA,SAAA,SAAA,UAAAC,GAAAF,GAAAT,OAAA,SAAArH,EAAAQ,GAAA,OAAAR,EAAAQ,GAAAA,EAAAR,CAAA,EAAA,CAAAiI,mBAAA,SAAAjI,GAAA,MAAA,kBAAAA,CAAA,EAAAkI,gBAAA,SAAAlI,GAAA,MAAA,SAAAA,CAAA,IAAAmI,GAAA,QAAAC,GAAA,YAAAC,GAAA,aAAA,SAAAC,GAAAtI,GAAA,IAAAQ,EAAAR,EAAA3D,QAAAiJ,QAAA,OAAA,SAAA5E,GAAA,OAAA,SAAAC,GAAA,OAAA,SAAAuF,GAAA,GAAAA,EAAAU,OAAAoB,GAAAO,UAAA,CAAA,IAAAtJ,EAAAiH,EAAAsC,OAAArE,EAAA+B,EAAAuC,KAAAtC,EAAAD,EAAAwC,cAAAnB,EAAArB,EAAAyC,YAAAvC,EAAAD,EAAAyC,SAAAzE,EAAAyE,OAAAzC,EAAA0C,cAAA1E,EAAA0E,aAAArI,EAAAiH,GAAAtD,EAAA0E,aAAAzC,GAAA5F,EAAAkH,GAAAvD,EAAAyE,QAAArB,EAAAuB,QAAAtI,EAAAmH,GAAAnC,GAAA,CAAA,EAAAY,GAAAD,EAAA2C,OAAA3C,EAAA2C,OAAA,CAAA,EAAAvB,EAAAuB,SAAA,IAAArI,EAAA5C,OAAAkL,KAAA7C,EAAAsC,QAAA,GAAA/H,EAAAI,OAAA,CAAA,IAAAwF,EAAApH,EAAA+J,OAAA1C,EAAArH,EAAAgK,SAAAtC,EAAAlG,EAAA4G,OAAA,SAAApD,EAAAmB,GAAA,GAAAA,EAAA8D,MAAAf,KAAA/C,EAAA8D,MAAA,cAAA,CAAA,IAAA1C,EAAApB,EAAApB,QAAAmE,GAAA,IAAAlE,EAAAkF,SAAA,aAAA3C,EAAA,OAAAA,GAAAvH,EAAAmG,EAAA,CAAA,OAAAA,EAAA8D,MAAAd,MAAAnE,EAAAmF,MAAAhE,EAAApB,QAAAoE,GAAA,KAAAnJ,EAAAmG,IAAAA,EAAA8D,MAAAb,MAAApE,EAAA6E,OAAA1D,EAAApB,QAAAqE,GAAA,KAAApJ,EAAAmG,IAAAnB,CAAA,EAAA,CAAAkF,SAAA,CAAA,EAAAC,MAAA,CAAA,EAAAN,OAAA,CAAA,IAAApI,EAAAmG,SAAArB,GAAA,CAAAoB,KAAAoB,GAAAQ,OAAAa,IAAApK,GAAA0H,EAAAN,EAAA,CAAAuC,OAAAvC,GAAA,CAAA,IAAAA,GAAAiD,WAAA,WAAA,OAAAtJ,EAAAuJ,SAAAlD,EAAAM,EAAAmC,OAAA,EAAA,GAAAxC,GAAAgD,WAAA,WAAA,OAAAtJ,EAAAwJ,MAAAlD,EAAAK,EAAAyC,MAAA,EAAA,GAAAvL,OAAAkL,KAAApC,EAAAwC,UAAAtI,QAAAH,EAAAmG,SAAA,CAAAD,KAAAoB,GAAAmB,SAAAA,SAAAxC,EAAAwC,UAAA,CAAA,CAAA,OAAAxI,EAAAuF,EAAA,CAAA,CAAA,CAAA,CAAA,SAAAuD,GAAAzJ,GAAA,OAAA,SAAAQ,EAAAE,GAAA,QAAA,IAAAF,IAAAA,EAAA,CAAA,QAAA,IAAAE,IAAAA,EAAA,CAAA,GAAAA,EAAAkG,OAAAoB,GAAA0B,WAAA,CAAA,GAAAhJ,EAAApD,MAAAmK,GAAA,OAAAjC,GAAA,CAAA,EAAAhF,EAAA,CAAAqI,YAAAnI,EAAA9B,QAAA,GAAA8B,EAAApD,MAAAoK,GAAA,OAAAlC,GAAA,CAAA,EAAAhF,EAAA,CAAAoI,OAAAlI,EAAA9B,OAAA,CAAA,OAAA8B,EAAAkG,MAAA,KAAAoB,GAAAuB,SAAA,OAAA1L,OAAA4H,OAAA,CAAA,EAAAjF,EAAA,CAAAoI,OAAAlI,EAAAkI,OAAAE,OAAAtD,GAAA,CAAA,EAAAhF,EAAAsI,OAAApI,EAAAoI,UAAA,KAAAd,GAAA2B,MAAA,MAAA,CAAAjC,GAAAD,GAAAE,IAAA/K,QAAA,SAAAwI,GAAApF,EAAAuF,WAAAH,EAAA,GAAAvH,OAAA4H,OAAA,CAAA,EAAAjF,EAAA,CAAAoI,OAAA,KAAAC,YAAA,KAAAC,OAAA,CAAA,IAAA,QAAA,OAAAtI,EAAA,CAAA,CAAA,SAAAoJ,GAAA5J,GAAA,MAAA,CAAA4I,OAAA5I,EAAA6J,QAAAnC,IAAAmB,YAAA7I,EAAA6J,QAAApC,IAAAqB,OAAA9I,EAAA6J,QAAAlC,IAAA,CAAA,IAAAmC,GAAA,SAAA9J,GAAA,MAAA2E,WAAA3E,CAAA,EAAA,SAAA+J,GAAAvJ,GAAA,IAAAE,EAAAF,EAAAnE,QAAAsE,EAAAD,EAAA4E,QAAArG,EAAAyB,EAAA6E,WAAApB,EAAAzD,EAAAmJ,QAAA,OAAA,SAAAzE,GAAA,OAAA,SAAAoB,GAAA,OAAA,SAAAL,GAAA,IAAAoB,EAAApB,EAAAyC,OAAAxC,EAAAD,EAAA2C,OAAArI,EAAA0F,EAAA6D,QAAA,GAAA7D,EAAAS,OAAAoB,GAAA2B,QAAA,CAAAjC,GAAAC,GAAAF,IAAA7K,QAAA,SAAAoD,GAAAf,EAAAe,EAAA,GAAA,CAAA4H,GAAAC,GAAA,UAAAjL,QAAA,SAAAoD,GAAAiF,GAAA6E,GAAA9J,GAAA,IAAAmG,EAAAS,OAAAoB,GAAAuB,SAAA,CAAApF,EAAAsD,KAAA9G,EAAA8G,GAAArD,MAAA,IAAAiC,EAAAlC,EAAAuD,IAAApB,EAAAnC,EAAAwD,KAAA,CAAA,EAAAtB,GAAAA,IAAAkB,GAAAnC,EAAAyB,SAAA,CAAAD,KAAAoB,GAAAiC,cAAAC,IAAA,CAAAtB,OAAAvC,EAAAyC,OAAAxC,GAAA6D,IAAA,CAAAvB,OAAArB,EAAAuB,OAAA1C,GAAA4D,QAAAvJ,IAAA8G,GAAA5G,EAAA+G,GAAAH,GAAAnB,GAAAzF,EAAAgH,GAAAnC,GAAA,CAAA,EAAAc,EAAAF,GAAA,CAAA,OAAAI,EAAAL,EAAA,CAAA,CAAA,CAAA,CAAA,IAAAiE,GAAA,CAAA,EAAA,SAAAC,GAAArK,EAAAQ,GAAA4J,GAAApK,IAAAoC,GAAAgI,GAAApK,MAAAoK,GAAApK,GAAAQ,UAAA4J,GAAApK,GAAA,CAAA,SAAAsK,GAAAtK,EAAAQ,EAAAE,GAAA,OAAA,IAAAhB,QAAA,SAAAiB,EAAAuF,GAAA,OAAA1F,IAAAG,EAAAX,GAAAU,EAAA,EAAAwF,EAAAV,GAAA,CAAA,EAAAxF,EAAA,CAAAuK,OAAA,KAAA,IAAA7K,QAAA,SAAAuE,GAAA,OAAAqF,WAAArF,EAAA,GAAA,GAAA5D,KAAA,SAAApB,GAAA,OAAAqL,GAAAtK,EAAAQ,EAAAE,EAAA,IAAAL,KAAAM,EAAAuF,EAAA,EAAA,EAAA,CAAA,SAAAsE,GAAAxK,GAAA,MAAA,CAAAyK,MAAAzK,EAAA,CAAA,IAAA0K,GAAA,SAAA1K,GAAA,IAAAiE,EAAAmB,EAAA5E,EAAAR,EAAA2K,KAAAjK,EAAAV,EAAA4K,OAAAjK,EAAAX,EAAA6K,SAAA3E,EAAAlG,EAAA8K,MAAA7L,EAAAe,EAAA+K,WAAA5G,EAAAnE,EAAAgL,WAAA7E,EAAAnG,EAAAiL,MAAA7E,EAAApG,EAAAkL,OAAA,IAAA,IAAA7E,EAAAH,EAAAiF,QAAA7E,EAAAJ,EAAAkF,QAAAzE,EAAAjG,EAAAkG,KAAAyE,EAAA1E,EAAAuC,MAAAoC,IAAAC,EAAA/K,EAAAgL,MAAAhE,IAAA,SAAAvD,GAAA,OAAAA,EAAAwH,UAAA,GAAAJ,IAAAE,EAAApH,EAAAuH,OAAAlE,IAAA,SAAAvD,GAAA,OAAAA,EAAAwH,UAAA,IAAA,IAAAE,GAAA1H,EAAAtD,EAAAyE,EAAAmG,EAAA,SAAA/E,EAAAoF,EAAAC,GAAA,IAAAC,EAAAF,EAAAhR,OAAAmR,EAAAH,EAAAhK,KAAAoK,EAAAD,EAAA,IAAAvF,EAAAI,KAAAiF,IAAAG,EAAAH,EAAA5R,OAAA,IAAAgN,EAAAgF,EAAAC,EAAAC,EAAAC,EAAA7E,EAAAf,EAAAI,KAAAsC,MAAAoC,KAAArE,EAAA8E,EAAAE,EAAAD,EAAAE,EAAA9G,EAAA+G,EAAAN,EAAAO,EAAA5F,EAAA,SAAA6F,EAAAC,GAAA,IAAAC,EAAAJ,EAAAA,EAAAvK,KAAAqF,EAAAuF,EAAAF,GAAAG,GAAAH,GAAAA,EAAAJ,EAAA,GAAAC,MAAAK,EAAAF,GAAAG,GAAAH,GAAAA,EAAA,CAAArF,IAAAnM,SAAAmM,IAAA,IAAAuF,EAAA3L,QAAA,MAAA,IAAAkC,MAAA,UAAAkJ,EAAA,mBAAAhF,EAAA,YAAAyF,KAAAC,UAAAH,GAAA,gBAAA,OAAAhH,GAAA,CAAA,EAAA4G,EAAA,CAAA3B,MAAA,CAAAmC,OAAAP,EAAAlB,QAAAqB,EAAAK,OAAAZ,EAAAa,EAAAP,IAAA,GAAA,SAAAtF,EAAAgF,GAAA,OAAA,WAAA,MAAA,IAAAlJ,MAAAkE,EAAAL,KAAA,4CAAAqF,EAAA,CAAA,CAAA,CAAAzF,EAAAwF,GAAA,MAAA,CAAAe,QAAAC,GAAAxG,GAAAqE,SAAA5G,EAAArJ,OAAAkR,GAAA,CAAA,EAAArB,MAAAlD,EAAA,GAAA0F,EAAAzM,EAAAgL,MAAAnE,OAAA,SAAApD,EAAAmB,GAAA,IAAAoB,EAAApB,EAAAqG,WAAAG,EAAAxG,EAAA8H,WAAArB,GAAA,EAAA,OAAAD,EAAA1C,MAAA,gBAAA0C,EAAA1C,MAAA,YAAA2C,GAAAxF,EAAAG,GAAA2G,QAAA7G,EAAA8G,SAAAxB,EAAA1C,MAAA,4BAAA2C,GAAA,GAAA5H,EAAA,GAAAuC,GAAAqF,EAAA5H,CAAA,EAAA,CAAA,GAAA,OAAAvE,QAAAC,QAAAa,EAAAgL,MAAAnE,OAAA,SAAApD,EAAA4H,EAAAE,GAAA,IAAA,IAAAC,EAAAH,EAAAJ,WAAA,OAAA/L,QAAAC,QAAAsE,GAAA5D,KAAA,SAAA4G,GAAA,SAAAmF,IAAA,OAAA1M,QAAAC,QAAAsH,EAAA,CAAA,IAAAqF,EAAA,WAAA,GAAA9L,EAAA6M,YAAA7M,EAAA6M,WAAArB,GAAA,OAAAtM,QAAAC,QAAAa,EAAA6M,WAAArB,GAAA3E,OAAA,SAAAiG,EAAAlI,EAAAoB,GAAA,IAAA,OAAA9G,QAAAC,QAAA2N,GAAAjN,KAAA,SAAAkN,GAAA,OAAAnI,EAAAoI,QAAApL,GAAAgD,EAAAoI,SAAA,SAAAC,EAAAxB,GAAA,IAAAyB,EAAAC,GAAAF,GAAA,GAAAC,GAAAA,EAAA9L,OAAAqK,EAAA,CAAA,IAAAL,EAAA+B,GAAAD,EAAAF,QAAA,MAAA,IAAAzK,MAAA,CAAAkJ,EAAA,6BAAAwB,EAAA,yBAAA,OAAAC,EAAAF,OAAA,KAAA5B,EAAA,MAAAA,EAAA4B,OAAA,IAAA,OAAAvB,EAAA,qBAAAwB,GAAAG,KAAA,MAAA,CAAA,CAAA,CAAAxI,EAAA8H,WAAA9H,EAAAqG,YAAA/L,QAAAC,QAAAyF,EAAAoI,OAAA,CAAAT,QAAAQ,EAAA1C,SAAAlK,EAAA8J,OAAAyB,EAAAqB,EAAAM,EAAA7B,EAAA8B,EAAA1I,EAAAqG,WAAA,SAAAgC,EAAAxB,GAAA,OAAAzG,GAAA,CAAA,EAAA0G,EAAA,CAAAzB,MAAA,CAAAmC,OAAAa,EAAAtC,QAAAc,GAAA,CAAA4B,GAAAhB,OAAAlG,EAAAoH,KAAAD,GAAAD,IAAA,GAAAjT,OAAAoT,GAAA5I,EAAAqG,WAAApF,EAAApH,GAAAkM,QAAA9E,KAAAhG,KAAA,SAAA4L,GAAA,IAAAyB,EAAAxT,GAAA+R,GAAAA,EAAA,CAAA,EAAA,OAAAvM,QAAAC,QAAA6F,GAAA,CAAA,EAAA+H,EAAAG,GAAA,IAAAH,EAAA,IAAArB,EAAA2B,EAAAC,CAAA,EAAA,CAAA,MAAAP,GAAA,OAAA7N,QAAAE,OAAA2N,EAAA,CAAA,EAAA7N,QAAAC,QAAAe,KAAAL,KAAA,SAAA+E,GAAA6B,EAAA+E,GAAA5G,CAAA,GAAA6B,EAAA+E,GAAAtL,CAAA,CAAA,GAAA,OAAA4L,GAAAA,EAAAjM,KAAAiM,EAAAjM,KAAA+L,GAAAA,GAAA,EAAA,CAAA,MAAAnF,GAAA,OAAAvH,QAAAE,OAAAqH,EAAA,CAAA,EAAAvH,QAAAC,QAAA,CAAA,KAAAU,KAAA,SAAA4D,GAAA,OAAAvE,QAAAC,QAAAa,EAAAgL,MAAAnE,OAAA,SAAAb,EAAAqF,EAAAE,GAAA,IAAA,IAAAkC,EAAAzN,EAAAgL,MAAA3K,SAAAkL,EAAA,EAAAtL,EAAAoL,EAAAJ,WAAAyC,EAAAjP,EAAAwB,GAAA,OAAAf,QAAAC,QAAA6G,GAAAnG,KAAA,SAAA+E,GAAA,IAAA8G,EAAAjI,EAAAxD,GAAAwD,EAAAxD,GAAA,CAAA,EAAA,GAAA4K,IAAAa,EAAA9G,GAAA+I,GAAAjC,EAAAzL,GAAA,OAAA2N,GAAA,CAAAzD,KAAAuB,EAAAsB,OAAA7G,EAAAkE,SAAAlK,EAAA8K,WAAAhL,EAAAwK,MAAA9E,IAAAzG,QAAAC,QAAAyF,GAAA,GAAA+I,GAAA/I,EAAA3E,GAAA,OAAAwN,GAAAG,GAAA,CAAAzD,KAAAvF,EAAAoI,OAAA7G,EAAAkE,SAAAlK,EAAAsK,MAAA9E,IAAAzG,QAAAC,QAAAyF,GAAA,GAAA6H,EAAA1O,eAAAkC,KAAA,IAAAwM,EAAAxM,GAAA,OAAA0F,EAAAU,SAAA,CAAAD,KAAA,QAAAyH,OAAA5N,EAAAsM,QAAAb,EAAAY,EAAA,CAAAwB,OAAA,QAAAP,KAAA,oBAAArO,QAAAC,QAAAyF,GAAA,IAAAgH,EAAAT,EAAA1H,EAAAxD,GAAAxB,EAAAwB,IAAA,OAAAf,QAAAC,QAAAuO,EAAAvH,GAAA,CAAA8D,MAAA2B,EAAA3B,MAAAsC,QAAAb,EAAArB,SAAAlK,EAAA/F,OAAAoT,GAAAvN,EAAA4F,EAAApH,GAAAkM,QAAA9E,KAAAhG,KAAA,SAAAwN,GAAA,IAAA/B,EAAA5R,GAAA2T,GAAAA,EAAA,CAAA,EAAAvB,EAAA9G,GAAA,CAAA,EAAAJ,EAAA0G,GAAAyC,EAAAtK,EAAAxD,GAAA,GAAA0N,GAAAI,EAAA9N,GAAA2N,GAAA,CAAAzD,KAAA4D,EAAAf,OAAA7G,EAAAkE,SAAAlK,EAAA8K,WAAAhL,EAAAwK,MAAA9E,QAAA,CAAA,IAAAqI,EAAA7H,EAAA,IAAAlG,GAAA+N,EAAAtF,MAAA,OAAA,IAAArI,OAAA,IAAA8F,EAAAuC,MAAAuF,MAAA9H,EAAAuC,MAAAwF,KAAA/N,EAAAkG,SAAArB,GAAA,CAAA,EAAA6F,EAAAiB,EAAAJ,EAAA,CAAAtF,KAAA4H,EAAA1B,EAAA,CAAAwB,OAAAE,EAAAT,KAAA,eAAA,CAAA,OAAArO,QAAAC,QAAA2M,EAAA,EAAA,EAAA,CAAA,MAAArF,GAAA,OAAAvH,QAAAE,OAAAqH,EAAA,CAAA,EAAAvH,QAAAC,QAAAe,KAAAL,KAAA,SAAA4G,GAAA,KAAAN,EAAAuC,MAAAoC,KAAA3E,EAAAuC,MAAA,oBAAAvC,EAAAuC,MAAAwF,KAAA/H,EAAAuC,MAAAuF,KAAA9H,EAAAuC,MAAA,YAAAvC,EAAAuC,MAAA,mBAAA,CAAA,GAAA9C,EAAA+E,QAAArQ,SAAA6L,GAAAM,EAAA6F,GAAA7F,EAAA6F,EAAA6B,iBAAAhI,EAAA,OAAAM,EAAA,IAAAT,EAAAhB,GAAA,CAAA,EAAAyB,EAAA,CAAA6F,EAAA,CAAA6B,eAAA1H,EAAAL,KAAA0H,OAAArH,EAAAL,KAAAmH,KAAA,eAAAa,GAAA3H,EAAAzG,EAAAgL,MAAA3K,UAAA8F,EAAAuC,MAAA,UAAA1C,EAAAhB,GAAA,CAAA,EAAAgB,EAAA,CAAAI,KAAAK,EAAAL,KAAA,aAAAT,EAAAU,SAAAL,EAAA,CAAA,OAAAS,CAAA,EAAA,EAAA,CAAA,MAAAhD,GAAA,OAAAvE,QAAAE,OAAAqE,EAAA,CAAA,EAAAqH,GAAA,SAAAmD,GAAA,aAAAC,GAAA,SAAA,SAAAN,GAAApO,GAAA,IAAAQ,EAAAR,EAAAyL,WAAA/K,EAAAV,EAAAwN,OAAA,WAAAhN,EAAA,IAAAA,EAAA,IAAAR,EAAAiL,MAAApE,SAAArB,GAAA,CAAA,EAAAxF,EAAA2K,KAAA,CAAA/D,KAAAlG,EAAAoM,EAAA,CAAAwB,OAAA5N,EAAAqN,KAAA,WAAA,CAAA,SAAAC,GAAAhO,EAAAQ,EAAAE,GAAA,IAAAC,EAAAH,EAAAR,IAAAU,EAAAV,GAAA,OAAAW,GAAAA,EAAA/F,OAAA+F,EAAA/F,OAAA,CAAA,CAAA,CAAA,SAAAiU,GAAA7O,EAAAQ,GAAA,OAAAA,EAAA6G,OAAA,SAAAjC,EAAA1E,GAAA,OAAAA,EAAAV,GAAAoF,EAAAvB,OAAA,CAAAqJ,WAAAlN,EAAAyL,WAAA/K,EAAAkB,KAAA4L,OAAA9M,EAAAV,KAAAoF,CAAA,EAAA,GAAA,CAAA,SAAA0J,GAAA9O,EAAAQ,GAAA,IAAAE,EAAAV,EAAAgE,QAAAsH,GAAA,IAAA3K,EAAAH,EAAA,IAAAA,EAAA,GAAA,MAAA,CAAA,GAAAR,EAAAW,EAAA,GAAAD,EAAAC,EAAAD,EAAA,MAAAC,EAAA,CAAA,SAAAwN,GAAAnO,EAAAQ,GAAA,IAAAE,EAAAV,EAAAyK,MAAA,QAAA/J,KAAA,IAAAA,GAAAqO,GAAArO,EAAAF,IAAAE,GAAAqO,GAAArO,EAAAyK,QAAA3K,GAAA,CAAA,SAAAoO,GAAA5O,EAAAQ,GAAA,IAAAE,EAAAV,EAAAyK,MAAA,IAAA/J,EAAA,OAAA,EAAA,IAAA,IAAAA,GAAA+B,GAAA/B,GAAA,OAAA,EAAA,IAAAC,EAAAD,EAAAyK,QAAA,OAAAsB,GAAA/L,IAAAA,EAAAG,SAAAL,GAAAiM,GAAA9L,IAAAA,EAAAE,SAAAL,CAAA,CAAA,SAAAiM,GAAAzM,GAAA,OAAAgP,MAAAC,QAAAjP,EAAA,CAAA,SAAA+O,GAAA/O,EAAAQ,GAAA,SAAAR,IAAAyM,GAAAzM,KAAAA,EAAAlF,SAAA0F,EAAA,CAAA,SAAAmN,GAAA3N,GAAA,IAAAQ,EAAAR,EAAAkJ,MAAA,aAAA,QAAA1I,GAAA,CAAAgN,OAAAhN,EAAA,GAAAoB,KAAApB,EAAA,GAAA,CAAA,SAAAwM,GAAAhN,GAAA,OAAAnC,OAAAkL,KAAA/I,GAAAqH,OAAA,SAAA7G,EAAAE,GAAA,MAAA,SAAAA,IAAAF,EAAAE,GAAAxG,GAAA8F,EAAAU,IAAA7C,OAAA4H,OAAA,CAAA,EAAAzF,EAAAU,IAAAV,EAAAU,IAAAF,CAAA,EAAA,CAAA,EAAA,CAAA,SAAA0O,GAAAlP,EAAAQ,EAAAE,GAAA,IAAAC,EAAA,CAAA,EAAA,OAAA,SAAAuF,GAAA,OAAA,SAAAjH,GAAA,OAAA,SAAAkF,GAAA,IAAA,IAAAgC,EAAAC,EAAA,SAAAnC,GAAA,OAAAkC,EAAAlC,EAAAhF,EAAAoM,EAAA,EAAA/E,EAAAnC,EAAAyC,KAAAD,EAAAxC,EAAAgH,QAAAE,EAAAlH,EAAA,GAAAA,EAAAsG,MAAA,OAAA/K,QAAAC,QAAAV,EAAAkF,IAAA,GAAAmC,IAAA0B,GAAAmH,cAAAjJ,EAAAW,SAAA,CAAAD,KAAAoB,GAAAoH,gBAAAjE,QAAAxE,EAAA0I,SAAA,GAAAC,YAAA,EAAAC,KAAApL,EAAAoL,OAAAjJ,IAAA0B,GAAAwH,eAAAlG,WAAA,WAAA,OAAAe,GAAAlG,EAAAoL,KAAAE,IAAA,CAAA1C,QAAA5I,GAAA,EAAA,GAAAmC,IAAA0B,GAAA0H,cAAA,CAAA,IAAAnE,EAAA/K,IAAAmL,EAAA9N,OAAAkL,KAAAwC,GAAA0B,EAAAtB,EAAAgE,OAAA,SAAA1L,GAAA,OAAA0C,EAAA7L,SAAAmJ,EAAA,GAAAuD,IAAA,SAAAvD,GAAA,OAAAsH,EAAAtH,EAAA,GAAA/E,EAAA,GAAA0Q,EAAA,GAAAC,EAAA1L,EAAAkL,SAAAS,EAAA7C,EAAAzF,IAAA,SAAAvD,GAAA,IAAAmB,EAAAnB,EAAAkJ,OAAA3G,EAAAvC,EAAArC,KAAAkK,EAAA7H,EAAArJ,OAAA,OAAA0P,GAAArG,EAAA,WAAA,OAAAmB,EAAA,CAAAxK,OAAAkR,GAAA,EAAA,KAAAzL,KAAA,SAAA4L,GAAA,OAAAtL,EAAA6F,KAAAN,EAAAW,SAAA,CAAAD,KAAAoB,GAAAE,gBAAA1B,GAAA5E,KAAA4E,EAAAuJ,OAAAlS,OAAAkL,KAAA9E,GAAA0L,OAAA,SAAA1I,GAAA,OAAAc,GAAAjN,SAAAmM,EAAA,KAAAtG,EAAA6F,IAAA,GAAAtH,EAAAA,EAAA2E,OAAA2C,GAAAvC,CAAA,GAAA+L,MAAA,SAAA/I,GAAA,GAAAA,aAAAlE,MAAA,MAAA,IAAAA,MAAAkE,GAAA,OAAA2I,EAAAA,EAAA/L,OAAAoD,EAAArF,MAAAqF,CAAA,EAAA,GAAAvH,QAAAuQ,IAAAH,GAAAzP,KAAA,SAAA4D,GAAA,IAAAmB,EAAA,CAAA+F,QAAAjM,EAAAgR,OAAAN,EAAAP,SAAAQ,GAAAvG,WAAA,WAAAqC,EAAA9K,SAAAiP,EAAAjP,OAAAgP,EAAAhP,QAAAqF,EAAAW,SAAArB,GAAA,CAAA,EAAA,CAAAoB,KAAAoB,GAAAmI,OAAA/K,GAAA,EAAA,EAAA,EAAA,CAAA,IAAAgL,EAAA,WAAA,GAAA9J,IAAA0B,GAAAO,UAAA,MAAA,kBAAA8H,KAAA/J,IAAAgD,WAAA,WAAA,OAAA,SAAArF,EAAAmB,EAAAoB,GAAA,IAAAoF,EAAA,CAAA,EAAAC,EAAAzG,IAAA0G,EAAA7H,EAAA8C,WAAAgF,EAAAD,EAAAX,QAAAa,EAAAF,EAAAvB,MAAA0D,EAAAnC,EAAArD,KAAA,IAAAqD,EAAAV,QAAAgC,SAAApB,GAAAA,EAAAsE,SAAAtE,EAAAsE,QAAAzP,OAAA,CAAA,IAAAwF,EAAA2F,EAAAsE,QAAAjJ,OAAA,SAAAJ,EAAAgF,EAAAC,GAAA,OAAAH,EAAAE,EAAAoC,QAAAlB,QAAAlG,EAAAjG,QAAAuF,KAAA0F,GAAAhF,EAAAsJ,aAAAhK,KAAA2F,KAAAjF,EAAAuJ,QAAAjK,KAAA0F,GAAAhF,EAAAwJ,aAAAlK,KAAA2F,IAAAjF,CAAA,EAAA,CAAAsJ,aAAA,GAAAvP,QAAA,GAAAwP,QAAA,GAAAC,aAAA,KAAA,GAAApK,EAAAkK,cAAAlK,EAAAkK,aAAA1P,OAAA,CAAAwF,EAAAkK,aAAA3T,QAAA,SAAAqP,GAAA,IAAAhF,EAAAyJ,EAAArE,EAAAL,EAAAsE,QAAArE,GAAAuC,EAAAnC,EAAAgC,OAAAsC,EAAAtE,EAAAU,QAAAnG,KAAAgK,EAAA/E,EAAA2C,GAAAmC,GAAA,GAAAC,GAAAxO,GAAAwO,GAAA,CAAA,IAAAC,EAAAC,QAAA,KAAA7J,EAAAoF,EAAAU,WAAA9F,EAAA,CAAA,QAAA,KAAAyJ,EAAAzC,KAAAyC,EAAA,CAAA,GAAA,CAAA9I,GAAAC,IAAAR,OAAA,SAAA6E,EAAAC,GAAA,OAAAlF,EAAA1I,eAAA4N,IAAAuE,EAAAvE,IAAAuE,EAAAvE,KAAAlF,EAAAkF,KAAAD,EAAAC,GAAAuE,EAAAvE,IAAAD,CAAA,EAAAjF,IAAA8J,EAAAnF,EAAAkF,EAAAvB,KAAAE,KAAA,IAAAsB,IAAAF,EAAAD,EAAA,CAAA7D,QAAA+D,EAAAlW,OAAAmR,EAAAyC,GAAA5T,OAAAiQ,SAAArE,EAAAiE,MAAAD,OAAAtQ,GAAA2W,IAAAA,EAAApG,MAAA,YAAAmB,EAAAkF,EAAAvB,KAAAE,MAAA,GAAA,IAAAsB,EAAA,CAAA,IAAAC,EAAAL,EAAA,IAAAnC,EAAAvK,EAAA4C,SAAArB,GAAA,CAAA,EAAAsL,EAAA,CAAAlK,KAAAoK,EAAAlE,EAAA,CAAAwB,OAAA0C,EAAAjD,KAAA,gBAAA,CAAA,CAAA,GAAA,IAAAG,EAAAlC,EAAAsE,QAAAX,OAAA,SAAA1I,EAAAgF,GAAA,QAAA5F,EAAAkK,aAAA9J,QAAAwF,EAAA,GAAAD,EAAAsE,QAAApC,CAAA,CAAA,CAAA,CAAA,CAAAhI,EAAA1F,EAAAR,EAAA,EAAA,GAAAN,QAAAC,QAAA,SAAAsE,EAAAmB,EAAAoB,EAAAoF,EAAAC,GAAA,IAAA,IAAAC,EAAA1J,GAAAgD,GAAAA,IAAAA,EAAA2G,EAAA9H,EAAA2C,KAAAoF,EAAAD,EAAA/H,QAAAsH,GAAA,IAAA,GAAArH,EAAA6I,GAAA7I,EAAA6I,EAAAwB,OAAA,OAAA5O,QAAAC,QAAAsE,GAAA,IAAAsD,EAAAf,EAAAO,WAAAkH,GAAA4C,EAAA/E,OAAA,KAAAgF,EAAAvJ,EAAA4D,WAAA2F,EAAA,CAAA,QAAA,KAAAC,EAAA9M,EAAA+F,WAAA+G,EAAA,CAAA,GAAAlT,OAAAkL,KAAA8H,GAAAlB,OAAA,SAAA1I,GAAA,IAAAgF,EAAA8E,EAAA5F,SAAA,CAAA,EAAA,OAAAxI,GAAAsJ,EAAAhF,IAAAgF,EAAAhF,IAAA,IAAAgF,EAAAgE,OAAAa,EAAA7J,KAAA,IAAA6J,EAAA7J,GAAAgK,QAAA,GAAAzJ,IAAA,SAAAP,GAAA,OAAA4J,EAAA5J,EAAA,IAAA8E,IAAA/D,GAAAoH,iBAAAnL,EAAAqL,aAAArB,EAAApQ,OAAAkL,KAAAxB,EAAA4D,SAAAwE,OAAA,SAAA1D,GAAA,IAAAC,EAAA3E,EAAA4D,QAAAc,GAAA,OAAAhI,EAAAkH,QAAArQ,SAAAmR,KAAAC,EAAAgF,WAAA,GAAA1J,IAAA,SAAAP,GAAA,OAAA6E,EAAA7E,EAAA,IAAA,IAAAiH,EAAAD,EAAAzG,IAAA,SAAAP,GAAA,OAAAA,EAAArF,IAAA,GAAAgP,GAAA3E,EAAAgC,EAAA9B,EAAA2C,GAAA7H,EAAA8E,GAAAvE,IAAA,SAAA8F,GAAA,OAAAuB,GAAAvB,EAAArB,EAAA,GAAAA,EAAA5E,OAAA,SAAAqG,EAAAyD,GAAA,IAAA/E,EAAA+E,EAAAvP,KAAAyK,EAAAyC,GAAA7H,EAAAmF,GAAA5E,IAAA,SAAA8F,GAAA,OAAAuB,GAAAvB,EAAArB,EAAA,GAAAK,EAAAD,EAAA,GAAAE,EAAAF,EAAA,GAAAG,EAAAH,EAAA,GAAA,OAAAC,EAAAzL,SAAA6M,EAAA0D,SAAAhF,GAAAE,GAAAC,EAAA1L,SAAA6M,EAAA2D,SAAAjF,GAAAG,GAAAC,EAAA3L,SAAA6M,EAAA4D,QAAAlF,GAAAI,GAAAkB,CAAA,EAAA,CAAA6D,OAAApF,EAAA,GAAAiF,SAAA,CAAA,EAAA1F,OAAAS,EAAA,GAAAkF,SAAA,CAAA,EAAAG,MAAArF,EAAA,GAAAmF,QAAA,CAAA,KAAA,OAAA5R,QAAAC,QAAA+K,GAAA,CAAAE,OAAA3G,EAAA0G,KAAA,CAAAa,MAAAoF,EAAAW,OAAAlE,WAAAuD,EAAAQ,UAAAtG,MAAAvD,EAAAwD,WAAAe,EAAAd,WAAA4F,EAAA/F,SAAArE,EAAAyE,MAAAW,EAAAV,OAAAW,KAAAxL,KAAA,SAAA4G,GAAA,SAAAgF,IAAA,IAAAyE,EAAA,WAAA,GAAA3E,EAAA7C,MAAAoC,IAAA,OAAA5L,QAAAC,QAAA+K,GAAA,CAAAE,OAAApF,GAAA,CAAA,EAAA+I,EAAA,CAAA3H,KAAAoF,EAAA,QAAArB,KAAA,CAAAa,MAAAoF,EAAAY,MAAAnE,WAAAuD,EAAAU,SAAAxG,MAAAvD,EAAAwD,WAAAe,EAAAd,WAAA4F,EAAA/F,SAAArE,EAAAyE,MAAAW,EAAAV,OAAAW,KAAAxL,KAAA,SAAAiN,GAAAA,EAAAiC,MAAAjC,EAAAiC,KAAAkC,aAAApH,GAAAiD,EAAAiC,KAAAE,IAAA,CAAA1C,QAAAO,GAAA,EAAA,CAAA,GAAA,OAAAoD,GAAAA,EAAArQ,KAAAqQ,EAAArQ,KAAA,WAAA,OAAA4G,CAAA,GAAAA,CAAA,CAAA,GAAA2H,GAAA3H,EAAAiH,EAAArN,QAAA,OAAAoG,EAAA,IAAAsH,EAAA9N,EAAA,WAAA,GAAAsL,IAAAC,EAAA,OAAAtM,QAAAC,QAAA+K,GAAA,CAAAE,OAAApF,GAAA,CAAA,EAAAyB,EAAA,CAAAL,KAAAoF,IAAArB,KAAA,CAAAa,MAAAoF,EAAAlF,OAAA2B,WAAAuD,EAAAS,UAAAvG,MAAAvD,EAAAwD,WAAAe,EAAAd,WAAA4F,EAAA/F,SAAArE,EAAAyE,MAAAW,EAAAV,OAAAW,KAAAxL,KAAA,SAAAiN,GAAAiB,EAAAjB,CAAA,GAAAiB,EAAAtH,CAAA,CAAA,GAAA,OAAAxG,GAAAA,EAAAJ,KAAAI,EAAAJ,KAAA4L,GAAAA,GAAA,EAAA,CAAA,MAAAhF,GAAA,OAAAvH,QAAAE,OAAAqH,EAAA,CAAA,IAAAA,EAAAgF,EAAAE,EAAA0E,EAAAC,EAAAC,CAAA,CAAA,CAAA5M,EAAA3D,EAAAR,EAAAkG,EAAAxF,IAAAL,KAAA,SAAA4D,GAAA,OAAAkC,EAAA,EAAAlH,EAAAgF,EAAA,EAAA,CAAA,GAAA,OAAAvE,QAAAC,QAAAyQ,GAAAA,EAAA/P,KAAA+P,EAAA/P,KAAA+F,GAAAA,EAAAgK,GAAA,CAAA,MAAAnM,GAAA,OAAAvE,QAAAE,OAAAqE,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAAyN,GAAA1R,GAAA,OAAA,SAAAQ,GAAA,OAAA,SAAA4E,GAAA,OAAA,SAAA1E,GAAA,IAAAC,EAAAD,EAAAkG,KAAAV,EAAAxF,EAAApD,IAAA2B,EAAAyB,EAAA9B,MAAAuF,EAAAzD,EAAAsJ,QAAA,GAAArJ,IAAAqH,GAAA1C,SAAA3E,IAAAqH,GAAAzC,WAAA,CAAA,GAAA7E,EAAA+J,MAAA,OAAArF,EAAA1E,GAAAC,IAAAqH,GAAA1C,QAAAtF,EAAAsF,QAAAY,EAAAjH,EAAAkF,GAAAnE,EAAAuF,WAAAW,EAAA/B,EAAA,CAAA,OAAAiB,EAAA1E,EAAA,CAAA,CAAA,CAAA,CAAA,IAAAiR,GAAA,WAAA,IAAA3R,EAAA7F,KAAAA,KAAAoX,OAAA,GAAApX,KAAAqX,MAAA,GAAArX,KAAAyX,cAAA,SAAApR,EAAAE,GAAAV,EAAAU,GAAAV,EAAAU,GAAAmD,OAAArD,EAAA,EAAArG,KAAA0X,iBAAA,SAAArR,EAAAE,GAAA,IAAAC,EAAAX,EAAAU,GAAAoR,UAAA,SAAA7N,GAAA,OAAAA,IAAAzD,CAAA,IAAA,IAAAG,IAAAX,EAAAU,GAAA,GAAAmD,OAAA7D,EAAAU,GAAAY,MAAA,EAAAX,GAAAX,EAAAU,GAAAY,MAAAX,EAAA,IAAA,EAAAxG,KAAA4X,mBAAA,SAAAvR,GAAA,OAAA,SAAAE,GAAA,OAAA,SAAAC,GAAA,OAAA,SAAAuF,GAAA,IAAAjH,EAAA,CAAA8H,SAAArG,EAAAqG,SAAAF,SAAA,SAAA5C,GAAA,OAAAvD,EAAAmG,SAAA5C,EAAA,GAAAE,EAAAnE,EAAAQ,GAAAgH,IAAA,SAAAvD,GAAA,OAAAA,EAAAhF,EAAA,GAAA,OAAAmI,GAAA9G,WAAA,EAAA6D,EAAAiD,CAAAzG,EAAAyG,CAAAlB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,SAAA8L,GAAAhS,GAAA,OAAA,SAAAQ,EAAAE,QAAA,IAAAF,IAAAA,EAAA,CAAA,GAAA,IAAAG,EAAA,CAAA,EAAA,GAAA,uBAAAD,EAAAkG,KAAA,OAAApG,EAAA,GAAA,2BAAA6P,KAAA3P,EAAAkG,MAAA,CAAA,IAAAV,EAAA+L,GAAAvR,EAAAkG,KAAA,kBAAA3H,EAAAe,IAAAkG,GAAA,IAAAjH,IAAAiH,EAAA,OAAA1F,EAAA,IAAA2D,EAAAzD,EAAAuQ,QAAA9K,EAAAlH,EAAArE,OAAA,OAAA+F,EAAAuF,GAAA,CAAA+K,QAAA9M,EAAA+M,cAAA/M,GAAA+N,SAAAjT,EAAAkT,YAAAhF,SAAAhJ,GAAA+N,QAAAjT,EAAAkO,OAAA,CAAAvS,OAAAuL,KAAAvL,OAAAuL,GAAAX,GAAA,CAAA,EAAAhF,EAAAG,EAAA,CAAA,GAAA,uBAAA0P,KAAA3P,EAAAkG,MAAA,CAAA,IAAAW,EAAA0K,GAAAvR,EAAAkG,KAAAoB,GAAAmK,YAAA/L,EAAApG,IAAAuH,GAAA,OAAAnB,GAAAmB,GAAA5G,EAAA4G,GAAA/B,GAAA,CAAA,EAAAhF,EAAA+G,GAAA,CAAA2J,aAAA,EAAA/D,OAAA+E,QAAA9L,EAAA+G,OAAA,CAAAvS,OAAAwL,EAAAxL,YAAA4K,GAAA,CAAA,EAAAhF,EAAAG,IAAAH,CAAA,CAAA,GAAA,kBAAA6P,KAAA3P,EAAAkG,MAAA,OAAAjG,EAAAD,EAAAkB,MAAA4D,GAAA,CAAA,EAAAhF,EAAAE,EAAAkB,MAAA,CAAAuL,QAAA,IAAA3H,GAAA,CAAA,EAAAhF,EAAAG,GAAA,OAAAD,EAAAkG,MAAA,KAAAoB,GAAAwH,cAAA,OAAAhK,GAAA,CAAA,EAAAhF,EAAA4R,GAAA1R,EAAAyK,SAAA,EAAA3K,IAAA,KAAAwH,GAAAmH,aAAA,OAAA3J,GAAA,CAAA,EAAAhF,EAAA4R,GAAA1R,EAAAyK,SAAA,EAAA3K,IAAA,QAAA,OAAAA,EAAA,CAAA,CAAA,SAAAyR,GAAAjS,EAAAQ,GAAA,OAAAR,EAAAqS,UAAA7R,EAAAK,OAAA,EAAAb,EAAAa,OAAA,CAAA,SAAAuR,GAAApS,EAAAQ,EAAAE,GAAA,OAAAV,EAAAqH,OAAA,SAAApD,EAAAtD,GAAA,OAAAsD,EAAAtD,GAAA6E,GAAA,CAAA,EAAA9E,EAAAC,GAAA,CAAAsQ,QAAAzQ,IAAAyD,CAAA,EAAAvD,EAAA,CAAA,SAAA4R,GAAAtS,GAAA,IAAA,OAAA0M,KAAA6F,MAAA7F,KAAAC,UAAA3M,GAAA,CAAA,MAAAiE,GAAA,CAAA,OAAAjE,CAAA,CAAA,IAAAwS,GAAA,CAAAC,KAAA,CAAA,EAAAC,QAAA,IAAA,SAAAC,GAAA3S,EAAAQ,QAAA,IAAAR,IAAAA,EAAAwS,IAAA,IAAA9R,EAAAF,EAAAwJ,QAAArJ,EAAAH,EAAA+O,KAAA,GAAA/O,EAAAoG,OAAAoB,GAAAwB,MAAA,CAAA,IAAAtD,EAAAoM,GAAA9M,GAAA,CAAAvL,MAAAuG,EAAAvG,MAAA2Y,WAAApS,EAAAoS,YAAA/U,OAAAkL,KAAArI,GAAAG,QAAA,CAAAmJ,QAAAtJ,GAAA,CAAA6O,KAAA5O,KAAA,OAAA6E,GAAA,CAAA,EAAAxF,EAAA,CAAAyS,KAAAvM,EAAAwM,QAAA1S,EAAA0S,QAAA7O,OAAAqC,IAAA,CAAA,OAAAlG,CAAA,CAAA,IAAA6S,GAAA,CAAAvC,QAAA,IAAA,SAAAwC,GAAA9S,EAAAQ,QAAA,IAAAR,IAAAA,EAAA6S,IAAA,IAAAnS,EAAAF,EAAAuM,QAAA,OAAAvM,EAAAoG,MAAA,IAAA,QAAA,IAAAjG,EAAA,OAAAA,EAAAD,GAAAA,EAAAkG,MAAAlG,EAAAkG,OAAAoB,GAAAuB,SAAA,CAAA/I,GAAAqD,OAAA7D,EAAAsQ,SAAAtQ,EAAAsQ,QAAAzM,OAAArD,GAAAgF,GAAA,CAAA,EAAAxF,EAAA,CAAAsQ,QAAA3P,IAAA,IAAA,UAAA,MAAA,GAAA,QAAA,OAAAX,EAAA,CAAA,IAAA+S,GAAAC,GAAA,OAAA,SAAAC,GAAAjT,GAAA,IAAAQ,EAAA,oCAAA0S,KAAAlT,GAAA,MAAA,KAAAQ,GAAAA,EAAA,GAAAA,EAAA,GAAAI,MAAA,KAAA,GAAAoD,QAAAgP,GAAA,IAAA,GAAA,CAAA,IAAAG,GAAA,SAAAnT,GAAA,QAAA,IAAAA,IAAAA,EAAA,CAAA,IAAAmB,GAAA,OAAAnB,EAAA,IAAAiE,EAAAmB,EAAA5E,EAAA7E,SAAA+E,EAAAF,EAAA4S,MAAAzS,EAAAH,EAAA6S,SAAAnN,EAAAvE,OAAA1C,EAAAiH,EAAAoN,SAAAnP,EAAA+B,EAAAqN,WAAApN,EAAAD,EAAAsN,YAAAjM,EAAAtI,EAAAwU,KAAArN,EAAAnH,EAAAyU,OAAAjT,GAAAwD,EAAAmC,GAAAhB,EAAA,WAAA,GAAAjE,GAAA,IAAA,IAAA8F,EAAAgF,EAAAtQ,SAAAgY,qBAAA,QAAAnN,EAAA,EAAAS,EAAAgF,EAAAzF,GAAAA,IAAA,GAAA,cAAAS,EAAA2M,aAAA,OAAA,OAAA3M,EAAA2M,aAAA,OAAA,CAAA,IAAAxO,EAAA8D,MAAA,MAAA9D,EAAAA,EAAAnB,EAAAtC,OAAA2R,SAAAO,KAAA7P,QAAAgP,GAAA,KAAA3M,EAAA,CAAA+M,MAAA1S,EAAAhG,IAAA+F,EAAAqT,KAAAb,GAAAxS,GAAAgT,KAAAlM,EAAAmM,OAAAtN,EAAA2N,MAAA5P,EAAA6P,OAAA7N,GAAA,OAAAxF,GAAA,KAAAA,IAAA0F,EAAAgN,SAAA1S,GAAA6E,GAAA,CAAA,EAAAa,EAAArG,EAAA,EAAAiU,GAAA,CAAAxB,KAAA,CAAA,EAAAC,QAAA,IAAA,SAAAwB,GAAAlU,EAAAQ,QAAA,IAAAR,IAAAA,EAAAiU,IAAA,IAAAvT,EAAAF,EAAAwJ,QAAA,GAAAxJ,EAAAoG,OAAAoB,GAAAmM,KAAA,CAAA,IAAAxT,EAAA2R,GAAA9M,GAAA,CAAAoN,WAAApS,EAAAoS,WAAArD,KAAA/O,EAAA+O,MAAA1R,OAAAkL,KAAArI,GAAAG,QAAA,CAAAmJ,QAAAtJ,KAAA,OAAA8E,GAAA,CAAA,EAAAxF,EAAA,CAAAyS,KAAA9R,EAAA+R,QAAA1S,EAAA0S,QAAA7O,OAAAlD,IAAA,CAAA,OAAAX,CAAA,CAAA+S,GAAA,CAAA,EAAA,IAAAqB,GAAA,CAAAlD,aAAA,EAAAmD,UAAAjQ,KAAAkQ,IAAA,KAAAC,QAAA,KAAAC,OAAA,EAAApH,UAAAjM,KAAAU,UAAA4S,OAAAC,GAAA,CAAA9S,KAAA,MAAAE,UAAAX,GAAAU,UAAAC,UAAA,OAAA6S,QAAA,CAAA/S,KAAA,YAAA2S,QAAA,WAAAK,cAAA,EAAAC,YAAA,EAAA1L,SAAA,CAAA,EAAAkK,SAAAN,IAAA,SAAA+B,GAAA9U,EAAAQ,QAAA,IAAAR,IAAAA,EAAAoU,IAAA,IAAA1T,EAAAV,EAAAkR,YAAAvQ,EAAAH,EAAA2I,SAAA,OAAA3I,EAAAoG,MAAA,KAAAoB,GAAAmB,SAAA,OAAA3D,GAAA,CAAA,EAAAxF,EAAA,CAAAmJ,SAAAxI,IAAA,KAAAqH,GAAAoF,QAAA,OAAA5H,GAAA,CAAA,EAAAxF,EAAA,CAAAoN,SAAA,IAAA,KAAApF,GAAA+M,OAAA,OAAAvP,GAAA,CAAA,EAAAxF,EAAA,CAAAoN,SAAA,IAAA,QAAA,OAAA1M,EAAAV,EAAAwF,GAAA,CAAA,EAAA4O,GAAApU,EAAA,CAAAkR,aAAA,IAAA,CAAA,IAAA8D,GAAA,CAAA,UAAA,WAAA,WAAA,SAAAC,KAAA,OAAAjQ,GAAA,YAAA,IAAA,SAAAhF,GAAA,OAAA,SAAAQ,EAAAE,EAAAC,GAAA,IAAAuF,EAAAlG,EAAAQ,EAAAE,EAAAC,GAAA1B,EAAAiH,EAAAW,SAAA,OAAAhJ,OAAA4H,OAAAS,EAAA,CAAAW,SAAA,SAAA5C,GAAA,OAAAW,GAAAF,IAAAwQ,UAAA3O,KAAAtC,EAAA2G,QAAA3G,GAAAhF,EAAAgF,EAAA,GAAA,CAAA,CAAA,CAAA,SAAAkR,GAAAnV,GAAA,OAAA,WAAA,OAAAoH,GAAAA,GAAA9G,MAAA,KAAAsD,WAAAqR,KAAA,CAAA,CAAA,SAAAG,GAAApV,GAAA,OAAAA,EAAA,UAAAuC,GAAAvC,GAAAA,EAAA,CAAAA,GAAA,EAAA,CAAA,SAAAqV,GAAA7U,EAAAE,EAAAC,QAAA,IAAAH,IAAAA,EAAA,CAAA,GAAA,IAAA0F,EAAAjH,EAAAkF,EAAAC,KAAA,OAAA1D,IAAA0J,GAAAjG,IAAA+B,EAAAxF,EAAAzB,EAAA,SAAAe,GAAA,IAAA,IAAAoF,EAAAoB,EAAAxG,GAAAgP,MAAA1Q,UAAAgD,MAAAlC,KAAAwE,WAAAgI,EAAA,EAAAA,EAAApF,EAAA3F,OAAA+K,IAAA,GAAAxJ,GAAAoE,EAAAoF,IAAA,CAAAxG,EAAAoB,EAAAoF,GAAA,KAAA,CAAA,OAAAxG,CAAA,CAAA,CAAAzE,GAAA,SAAAX,GAAAf,GAAAA,EAAAe,GAAAkG,EAAAlG,EAAA,IAAAwF,GAAA,CAAA,EAAAhF,EAAA,CAAAiP,IAAAtL,EAAAmR,IAAA,IAAAC,MAAAC,WAAA9U,EAAA,CAAA+Q,aAAA,GAAA,CAAA,EAAA,CAAA,SAAAgE,GAAAtR,QAAA,IAAAA,IAAAA,EAAA,CAAA,GAAA,IAAAnE,EAAAmG,EAAAhC,EAAAuR,UAAA,CAAA,EAAAtP,EAAAjC,EAAAwE,aAAA,CAAA,EAAAtC,GAAAlC,EAAAgH,SAAA,IAAA9D,OAAA,SAAArH,EAAAQ,GAAA,GAAA4B,GAAA5B,GAAA,OAAAR,EAAA2V,YAAA3V,EAAA2V,YAAA9R,OAAArD,GAAAR,EAAA,GAAAQ,EAAAoV,YAAApV,EAAAoB,KAAApB,EAAAoV,YAAApV,EAAAoB,KAAA,MAAA,IAAAmB,MAAA,+BAAAvC,EAAA5F,SAAA4F,EAAA5F,OAAA,CAAA,GAAA,IAAA8F,EAAAF,EAAA0K,OAAArN,OAAAkL,KAAAvI,EAAA0K,QAAA1D,IAAA,SAAAvD,GAAA,OAAAzD,EAAA0K,OAAAjH,EAAA,GAAA,GAAAjE,EAAA6V,cAAArV,EAAAoB,SAAA,IAAApB,EAAAyQ,UAAA,IAAAzQ,EAAA5F,OAAAqW,gBAAAzQ,EAAAyQ,QAAAzQ,EAAAsV,UAAA9V,EAAA8V,QAAAtV,EAAAoB,MAAA/D,OAAAkL,KAAAvI,EAAAsV,SAAAzO,OAAA,SAAApD,EAAAuC,GAAA,IAAAoF,EAAA,OAAA3H,EAAAuC,IAAAoF,EAAApL,EAAAsV,QAAAtP,GAAA,WAAA,IAAA,IAAAS,EAAA+H,MAAA1Q,UAAAgD,MAAAlC,KAAAwE,WAAAwB,EAAA,IAAA4J,MAAApD,EAAA/K,QAAAqL,EAAA,EAAAA,EAAAjF,EAAApG,OAAAqL,IAAA9G,EAAA8G,GAAAjF,EAAAiF,GAAA,OAAA9G,EAAAA,EAAAvE,QAAAkV,EAAAnK,EAAAtL,MAAA,CAAAuK,SAAAkL,GAAA3Q,EAAA,GAAAnB,CAAA,EAAA,CAAA,UAAAzD,EAAAsV,SAAA,IAAAnV,EAAA9C,OAAAkL,KAAAvI,GAAAqD,OAAAnD,GAAAwF,EAAA,IAAA8P,IAAAhW,EAAA+P,OAAAlM,OAAAlD,IAAA,GAAAX,EAAA+P,OAAAf,MAAAjB,KAAA7H,GAAAlG,EAAAiW,aAAAjW,EAAAiW,aAAApS,OAAArD,GAAAR,EAAAmL,QAAA3K,EAAAoB,MAAA,MAAA,IAAAmB,MAAAvC,EAAAoB,KAAA,iBAAA,OAAA5B,EAAAmL,QAAA3K,EAAAoB,MAAApB,EAAAR,EAAAmL,QAAA3K,EAAAoB,MAAAuL,SAAAnN,EAAAmL,QAAA3K,EAAAoB,MAAAuL,OAAA,WAAA,OAAA,CAAA,GAAAnN,CAAA,EAAA,CAAAmL,QAAA,CAAA,EAAA0K,cAAA,CAAA,EAAAC,QAAA,CAAA,EAAAG,aAAA,GAAAN,YAAA,GAAA5F,OAAA,KAAA1E,EAAAlH,EAAA9H,QAAA8H,EAAA9H,QAAA,CAAAwN,QAAA9E,GAAAO,QAAAN,GAAAO,WAAAN,IAAA/F,GAAAc,EAAAqL,EAAA,SAAA7K,EAAAE,EAAAwF,GAAA,OAAAxF,EAAAqG,SAAA,QAAAvG,KAAA0F,GAAAhM,GAAAgM,IAAAA,EAAA1F,GAAA0F,EAAA1F,GAAAoJ,GAAA5J,GAAAQ,IAAAuE,GAAA+E,GAAAtJ,KAAA,KAAA,GAAAoP,EAAAvJ,EAAA8E,QAAA+K,EAAA7P,EAAA0J,OAAAJ,OAAA,SAAA3P,GAAA,OAAA+H,GAAAjN,SAAAkF,EAAA,GAAAmW,OAAAC,EAAA,IAAAJ,IAAAE,EAAArS,OAAAiE,IAAA6H,OAAA,SAAA3P,GAAA,OAAA+H,GAAAjN,SAAAkF,EAAA,IAAAqW,EAAArH,MAAAjB,KAAAqI,GAAAD,OAAAG,EAAA,WAAA,OAAA1G,CAAA,EAAA2G,EAAA,IAAA5E,GAAA6E,EAAAD,EAAA3E,cAAA6E,EAAAF,EAAA1E,iBAAA6E,EAAAH,EAAAxE,mBAAA4E,EAAA,WAAA,MAAA,IAAA5T,MAAA,4BAAA,EAAA6T,EAAA,SAAA5W,GAAA,IAAA,IAAA4L,EAAApL,EAAA3C,OAAAgZ,OAAA,MAAA1S,EAAA,qBAAAyH,EAAAzH,EAAA+O,KAAAlT,IAAA,CAAA,IAAAf,EAAA6E,GAAA8H,EAAA,IAAA1F,EAAApC,GAAA8H,EAAA,IAAA,OAAA3M,EAAAoT,UAAApT,EAAA4B,OAAA,IAAAL,EAAAvB,EAAAA,EAAAoT,UAAA,EAAApT,EAAA4B,OAAA,MAAAL,EAAAvB,GAAA,KAAAsH,KAAAL,GAAA1F,EAAAvB,GAAA,KAAAiH,GAAAA,CAAA,CAAA,IAAA,IAAAC,KAAA3F,EAAA,CAAA,IAAA+G,EAAApB,EAAAvF,MAAA,KAAA2G,EAAA1G,OAAA,IAAAqD,GAAA1D,EAAA+G,EAAAC,IAAA,SAAAvD,GAAA,OAAAA,EAAAD,QAAA,aAAA,GAAA,GAAAxD,EAAA2F,WAAA3F,EAAA2F,GAAA,CAAA,OAAA3F,CAAA,CAAA,CAAAW,IAAAQ,OAAA2R,SAAAI,OAAArB,UAAA,IAAAyE,EAAAlN,GAAAyB,GAAA0L,EAAAvR,GAAA,CAAA,EAAAsR,EAAA1Q,EAAAwQ,EAAA5N,OAAA,CAAAJ,OAAAgO,EAAA5N,QAAA,CAAA,EAAA4N,EAAAI,OAAA,CAAAnO,YAAA+N,EAAAI,QAAA,CAAA,GAAAD,EAAAlO,cAAAkO,EAAAlO,YAAAzE,MAAA,IAAA6S,EAAAzR,GAAA,CAAA0R,OAAA,SAAAlX,EAAAQ,GAAA,OAAA,IAAAd,QAAA,SAAAgB,GAAAyW,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAAmH,aAAAhE,QAAAiK,GAAApV,GAAA8M,EAAA,CAAA6B,eAAA3G,GAAAmH,eAAAzO,EAAA,CAAAF,GAAA,EAAA,EAAA4W,QAAA,SAAApX,EAAAQ,GAAA,OAAA,IAAAd,QAAA,SAAAgB,GAAAyW,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAAwH,cAAArE,QAAAiK,GAAApV,GAAA8M,EAAA,CAAA6B,eAAA3G,GAAAwH,gBAAA9O,EAAA,CAAAF,GAAA,EAAA,GAAA6F,EAAAyP,SAAAuB,GAAA,EAAAtB,EAAA,CAAAxM,SAAA,SAAAvJ,EAAAQ,EAAAE,EAAAC,GAAA,IAAA,IAAAuF,EAAAzD,GAAAzC,GAAAA,EAAA,KAAA+L,EAAA7R,GAAA8F,GAAAA,EAAAQ,EAAAwL,EAAAtL,GAAA,CAAA,EAAAuN,EAAA8H,EAAAtN,OAAAzD,GAAA8E,GAAAlC,IAAA1B,GAAA,IAAAzF,EAAAyF,GAAA6F,EAAAnD,QAAA1J,EAAA0I,GAAAmO,EAAAhK,GAAA,OAAArM,QAAAC,QAAA,IAAAD,QAAA,SAAAuE,GAAAkT,EAAAtQ,SAAArB,GAAA,CAAAoB,KAAAoB,GAAAsP,cAAA1O,OAAAnI,EAAAqI,OAAAiD,GAAA,CAAA,EAAA/B,QAAAgC,EAAAnD,YAAAoF,EAAApF,aAAAoF,EAAAzR,IAAAyR,EAAAzR,KAAA0J,GAAA,CAAAqR,WAAAtJ,EAAAzR,KAAAyH,EAAA,CAAAzD,EAAAE,EAAAC,GAAA,GAAA,CAAA,MAAAsD,GAAA,OAAAvE,QAAAE,OAAAqE,EAAA,CAAA,EAAAuF,MAAA,SAAAxJ,EAAAQ,EAAAE,EAAAC,GAAA,IAAA,IAAAuF,EAAAhM,GAAA8F,GAAAA,EAAA/F,MAAA+F,EAAA,IAAAkG,IAAAzD,GAAAyD,GAAA,MAAA,IAAAnD,MAAA,gBAAA,IAAA9D,EAAA/E,GAAA8F,GAAAA,EAAAQ,GAAA,CAAA,EAAAuL,EAAA7R,GAAAwG,GAAAA,EAAA,CAAA,EAAA,OAAAhB,QAAAC,QAAA,IAAAD,QAAA,SAAAuE,GAAAkT,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAAwP,WAAAvd,MAAAiM,EAAA0M,WAAA3T,EAAA+K,QAAA+B,EAAAnD,OAAA1J,EAAA0I,GAAAmO,EAAAvV,GAAAqI,YAAA3J,EAAA2I,GAAAkO,EAAAvV,IAAAyD,EAAA,CAAAzD,EAAAE,EAAAC,GAAA,GAAA,CAAA,MAAAsD,GAAA,OAAAvE,QAAAE,OAAAqE,EAAA,CAAA,EAAAkQ,KAAA,SAAAnU,EAAAQ,EAAAE,GAAA,IAAA,IAAAC,EAAAzG,GAAA8F,GAAAA,EAAA,CAAA,EAAAkG,EAAAhM,GAAAsG,GAAAA,EAAA,CAAA,EAAA,OAAAd,QAAAC,QAAA,IAAAD,QAAA,SAAAT,GAAAkY,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAAyP,UAAA7E,WAAAO,GAAAxS,GAAAqJ,QAAA9D,EAAA0C,OAAA1J,EAAA0I,GAAAmO,EAAApV,GAAAkI,YAAA3J,EAAA2I,GAAAkO,EAAApV,IAAA1B,EAAA,CAAAe,EAAAQ,EAAAE,GAAA,GAAA,CAAA,MAAAuD,GAAA,OAAAvE,QAAAE,OAAAqE,EAAA,CAAA,EAAAwE,KAAA,SAAAzI,GAAA,GAAAA,IAAA4H,IAAA,OAAA5H,EAAA,OAAAd,EAAA0I,GAAAmO,GAAA,GAAA/V,IAAA6H,IAAA,WAAA7H,EAAA,OAAAd,EAAA2I,GAAAkO,GAAA,IAAAvV,EAAAuV,EAAAhP,SAAA,QAAA,OAAA/G,EAAAO,GAAAC,EAAAR,GAAAQ,CAAA,EAAAmJ,MAAA,SAAA3J,GAAA,OAAA,IAAAN,QAAA,SAAAc,GAAA2W,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAA0P,YAAAlX,EAAAR,EAAA,EAAA,EAAAmQ,MAAA,SAAAnQ,GAAA,OAAAqX,GAAArX,EAAA,CAAAmL,QAAA8L,EAAApM,SAAAkL,IAAAA,EAAA7b,GAAA8N,GAAAmI,MAAA,SAAA3P,GAAAR,EAAAQ,GAAA6W,GAAA,CAAA,EAAA,EAAAnd,GAAA,SAAA8F,EAAAQ,GAAA,IAAAR,IAAAoC,GAAA5B,GAAA,OAAA,EAAA,GAAAR,IAAAgI,GAAAO,UAAA,MAAA,IAAAxF,MAAA,oBAAA/C,GAAA,IAAAU,EAAA,gBAAA,GAAA,MAAAV,EAAA,CAAA,IAAAW,EAAA,SAAAsD,GAAA,OAAA,SAAAgD,GAAA,OAAA,SAAA2E,GAAA,OAAAA,EAAAhF,KAAAsC,MAAAxI,IAAAF,EAAA,CAAAuM,QAAAnB,EAAAf,SAAAkL,EAAA5K,QAAAyE,IAAA3I,EAAA2E,EAAA,CAAA,CAAA,EAAA1F,EAAA,SAAAjC,GAAA,OAAA,SAAAgD,GAAA,OAAA,SAAA2E,GAAA,OAAAA,EAAAhF,KAAAsC,MAAAxI,IAAAF,EAAA,CAAAuM,QAAAnB,EAAAf,SAAAkL,EAAA5K,QAAAyE,IAAA3I,EAAA2E,EAAA,CAAA,CAAA,EAAA,OAAA4K,EAAA7V,EAAAgX,IAAAnB,EAAAtQ,EAAA0R,IAAA,WAAAnB,EAAA9V,EAAAgX,IAAAlB,EAAAvQ,EAAA0R,GAAA,CAAA,CAAA,IAAA3Y,EAAAe,EAAAkJ,MAAAxI,GAAAiX,GAAAC,GAAA7L,EAAA,SAAAvF,GAAA,OAAA,SAAA0F,GAAA,OAAA,SAAAN,GAAA,OAAAA,EAAAhF,OAAA5G,GAAAQ,EAAA,CAAAuM,QAAAnB,EAAAf,SAAAkL,EAAA5K,QAAAyE,EAAAnF,MAAAkM,IAAAzK,EAAAN,EAAA,CAAA,CAAA,EAAA,OAAA4K,EAAAzK,EAAA9M,GAAA,WAAA,OAAAwX,EAAA1K,EAAA9M,EAAA,CAAA,EAAA4Y,KAAA,SAAA7X,EAAAQ,GAAA,IAAAR,IAAAoC,GAAA5B,GAAA,OAAA,EAAA,GAAAR,IAAAgI,GAAAO,UAAA,MAAA,IAAAxF,MAAA,sBAAA/C,GAAA,IAAAU,EAAAqV,EAAA7b,GAAA8F,EAAA,SAAAiE,GAAAzD,EAAA,CAAAuM,QAAA9I,EAAA8I,QAAAlC,SAAAkL,EAAA5K,QAAAyE,EAAAnF,MAAAkM,IAAAjW,GAAA,GAAA,OAAAA,CAAA,EAAAqG,SAAA,SAAA/G,GAAA,IAAAQ,EAAA2W,EAAApQ,WAAA,OAAA/G,EAAAO,GAAAC,EAAAR,GAAAnC,OAAA4H,OAAA,CAAA,EAAAjF,EAAA,EAAAqG,SAAA,SAAA7G,GAAA,IAAAQ,EAAAiC,GAAAzC,GAAA,CAAA4G,KAAA5G,GAAAA,EAAA,GAAA8H,GAAAhN,SAAA0F,EAAAoG,MAAA,MAAA,IAAA7D,MAAA,mBAAAvC,EAAAoG,MAAA,IAAAlG,EAAA8E,GAAA,CAAA,EAAAhF,EAAA,CAAAsM,EAAAtH,GAAA,CAAAmJ,eAAAnO,EAAAoG,MAAA5G,EAAA8M,GAAA,CAAA,KAAAqK,EAAAtQ,SAAAnG,EAAA,EAAAyO,aAAA8H,EAAAC,OAAA1H,cAAAyH,EAAAG,QAAAjM,QAAA8L,EAAA5a,QAAA,CAAAwN,QAAAwB,EAAAxB,QAAAvE,QAAA,SAAAtF,EAAAQ,EAAAE,GAAAyW,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAA8P,aAAAxa,IAAA0C,EAAApB,MAAA4B,EAAAwJ,QAAAtJ,GAAA,EAAA6E,WAAA,SAAAvF,EAAAQ,GAAA2W,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAA+P,gBAAAza,IAAA0C,EAAAgK,QAAAxJ,GAAA,GAAAwX,eAAA,SAAAhY,EAAAQ,GAAAuV,EAAA1Z,QAAAiJ,QAAAmC,GAAAzH,EAAAQ,EAAA,EAAAuP,OAAA,CAAArO,KAAAoG,GAAAqD,QAAA+K,IAAA+B,EAAA5R,EAAAsP,YAAA9R,OAAA,CAAA,SAAA7D,GAAA,OAAA,SAAAiE,GAAA,OAAA,SAAAzD,GAAA,OAAAA,EAAA+O,OAAA/O,EAAA+O,KAAA8F,MAAApR,EAAAzD,EAAA,CAAA,CAAA,EAAAkW,EAAAiB,IAAAzI,GAAA6G,EAAAO,EAAA,CAAArG,IAAAoG,EAAAlL,QAAA+K,IAAAxE,GAAArG,GAAA/C,GAAAyN,GAAAhM,GAAAgM,GAAAW,EAAAkB,MAAAM,EAAA,CAAA9M,QAAA0J,GAAArM,KAAAgB,GAAA4B,GAAA8I,KAAAD,GAAA1K,MAAAmJ,GAAAxH,QAAA6G,GAAAsE,GAAA/L,MAAAuI,IAAAqF,EAAA/Q,GAAAgR,EAAAhR,GAAA,GAAAjG,IAAAgD,EAAAqQ,MAAA,CAAA,IAAA6D,EAAA1W,OAAA2W,qCAAAD,IAAAF,EAAAE,EAAA,CAAAE,OAAA,EAAAC,WAAA,MAAAJ,EAAA,WAAA,OAAA,IAAAxU,UAAA/C,OAAAoU,KAAA/a,UAAA0J,UAAA,IAAAuR,KAAAA,KAAA7U,MAAA,KAAAsD,UAAA,CAAA,CAAA,IAAA6U,EAAAC,EAAA,SAAA1Y,GAAA,OAAAnC,OAAAkL,KAAA/I,GAAAqH,OAAA,SAAA7G,EAAAE,GAAA,OAAAsU,GAAAla,SAAA4F,KAAAF,EAAAE,GAAAV,EAAAU,IAAAF,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA2D,GAAAwU,EAAAtS,EAAA4P,aAAA5O,OAAA,SAAArH,EAAAQ,GAAA,IAAAE,EAAAF,EAAAoB,KAAAjB,EAAAH,EAAA5F,OAAAsL,EAAA1F,EAAA2M,OAAAlO,EAAAoH,EAAAwP,cAAAnV,GAAA,OAAAV,EAAAU,GAAA,CAAAuQ,QAAAhS,EAAAiS,cAAAjS,GAAAiT,SAAA1R,EAAA2R,YAAAhF,OAAA+E,QAAAhM,EAAA,CAAAtL,OAAA+F,KAAA/F,OAAA+F,GAAAX,CAAA,EAAA,CAAA,GAAA4Y,EAAA,CAAAxN,QAAAsN,EAAAjQ,KAAAsO,EAAA5L,QAAAwN,GAAAxB,EAAAlR,GAAA,SAAAjG,GAAA,IAAA,IAAAQ,EAAA3C,OAAAkL,KAAA/I,GAAAU,EAAA,CAAA,EAAAC,EAAA,EAAAA,EAAAH,EAAAK,OAAAF,IAAA,CAAA,IAAAuF,EAAA1F,EAAAG,UAAAX,EAAAkG,KAAAR,KAAAhF,EAAAwF,GAAAlG,EAAAkG,GAAA,CAAA,IAAAjH,EAAAgF,EAAA8H,EAAAlO,OAAAkL,KAAArI,GAAA,IAAAuD,EAAAvD,EAAA7C,OAAAkL,KAAA9E,GAAArH,QAAA,SAAAwI,GAAA,IAAAoB,EAAAvC,EAAAmB,GAAA,UAAAoB,OAAA,EAAA,CAAAI,KAAA,mBAAAjB,WAAAa,OAAA,EAAA,CAAAI,KAAAhB,OAAAD,GAAA,MAAA,IAAA5C,MAAA,WAAAqC,EAAA,IAAAO,GAAA,EAAA,CAAA,MAAA1B,GAAAhF,EAAAgF,CAAA,CAAA,OAAA,SAAAA,EAAAmB,GAAA,QAAA,IAAAnB,IAAAA,EAAA,CAAA,GAAAhF,EAAA,MAAAA,EAAA,IAAA,IAAA2M,GAAA,EAAAC,EAAA,CAAA,EAAAG,EAAA,EAAAA,EAAAD,EAAAlL,OAAAmL,IAAA,CAAA,IAAAzE,EAAAwE,EAAAC,GAAAiC,EAAAhK,EAAAsD,GAAA9G,GAAA,EAAAC,EAAA6G,IAAA0G,EAAA7I,GAAA,UAAA3E,IAAAkF,GAAA,CAAA,IAAA6I,EAAArH,GAAAI,EAAAnC,GAAA,MAAA,IAAArC,MAAAyL,EAAA,CAAA3C,EAAAtE,GAAA9G,EAAAmL,EAAAA,GAAAnL,IAAAwN,CAAA,CAAA,OAAArC,EAAAC,EAAA5H,CAAA,CAAA,CAAA,CAAAuB,GAAA,CAAA,EAAA0S,EAAA/R,IAAAyS,EAAAR,EAAAD,EAAA7Q,GAAAhH,WAAA,EAAA2X,MAAAd,EAAAtQ,UAAA4R,EAAAtB,EAAAtQ,SAAA,SAAA7G,EAAAQ,EAAAE,GAAA,IAAAC,EAAA6E,GAAA,CAAA,EAAAxF,EAAA,CAAAuP,KAAA8F,GAAArV,EAAAuP,KAAA/O,EAAA4U,GAAA1U,MAAA,OAAA+X,EAAAnY,MAAA,KAAA,CAAAK,GAAA,GAAA,IAAAkY,EAAAhb,OAAAkL,KAAA6G,GAAAuH,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAAO,UAAA4C,QAAA0N,EAAAje,OAAA8d,EAAAlQ,OAAAoO,EAAAnO,KAAAsO,EAAApO,YAAAvC,EAAAsC,cAAAoO,IAAA,IAAAgC,EAAAD,EAAAlJ,OAAA,SAAA3P,GAAA,OAAAqG,EAAAwP,cAAA7V,EAAA,GAAA+Y,EAAAF,EAAAlJ,OAAA,SAAA3P,GAAA,OAAAqG,EAAAwP,cAAA7V,EAAA,GAAA,OAAAmX,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAAgR,gBAAA7N,QAAA0N,EAAA5H,QAAA5K,EAAAwP,gBAAAxP,EAAA4P,aAAAzO,IAAA,SAAAxH,EAAAQ,GAAA,IAAAE,EAAAV,EAAAuI,UAAA5H,EAAAX,EAAApF,OAAAsL,EAAAlG,EAAA4B,KAAAlB,GAAA0B,GAAA1B,IAAAA,EAAA,CAAAmK,SAAAkL,EAAAnb,OAAA+F,EAAAoM,QAAA/M,IAAAmX,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAAC,mBAAA/B,GAAAtE,KAAAsE,EAAA+K,QAAA5K,EAAAwP,cAAA3P,GAAAmI,OAAArO,IAAAqG,EAAA4P,aAAApV,SAAAL,EAAA,GAAA2W,EAAAtQ,SAAA,CAAAD,KAAAoB,GAAAoH,gBAAAjE,QAAA2N,EAAAzJ,SAAA0J,GAAA,GAAAhD,CAAA,CAAA,IAAA4B,GAAA,SAAAC,GAAA,QAAAqB,GAAA,SAAAC,GAAAC,KAAAC,GAAAC,GAAAC,GAAAD,GAAA,SAAAE,GAAApV,GAAA,OAAA+U,GAAAG,GAAAlV,EAAA,IAAA,GAAAc,GAAAd,EAAA,CAAA,SAAAgV,KAAA,QAAA,IAAAD,GAAA,OAAAA,GAAA,IAAAlZ,EAAA,eAAA,IAAAqZ,GAAArZ,EAAAA,GAAAkZ,IAAA,IAAAvd,SAAA6d,OAAA/S,QAAAzG,GAAAuZ,GAAAvZ,EAAA,CAAA,MAAAiE,GAAAiV,IAAA,CAAA,CAAA,OAAAA,EAAA,CAAA,SAAAG,GAAArZ,EAAAQ,EAAAG,EAAA4G,EAAApB,EAAAlH,GAAA,GAAA,oBAAA0C,OAAA,CAAA,IAAA2E,EAAA1C,UAAA/C,OAAA,EAAA,OAAA,IAAAqY,KAAA5S,EAAAtB,GAAAhF,EAAAQ,GAAAuE,GAAA/E,IAAAsG,EAAA3K,SAAA6d,OAAAxZ,EAAA,IAAAyZ,mBAAAjZ,IAAAG,EAAA,aAAA,IAAA4U,MAAA,IAAAA,KAAA,IAAA5U,GAAA+Y,eAAAnS,EAAA,UAAAA,EAAA,KAAApB,EAAA,YAAAA,EAAA,KAAAlH,EAAA,WAAA,IAAA,IAAA8E,qBAAA,KAAApI,SAAA6d,QAAA5Y,MAAA,KAAAZ,EAAA,KAAA,IAAA,IAAAY,MAAA,KAAA,GAAA,CAAA,CAAA,IAAA+Y,GAAA,eAAAC,GAAAzU,GAAAnD,KAAA,KAAA,gBAAAkD,GAAA,eAAA,UAAAH,IAAAG,GAAA,eAAA,UAAAF,IAAAE,GAAA,eAAA,aAAAD,IAAA,IAAA4U,GAAA,iBAAAC,GAAA3U,GAAAnD,KAAA,KAAA,kBAAA,SAAA+X,GAAAvZ,GAAA,IAAA2D,EAAA3D,EAAA,IAAA,GAAA,UAAA2D,EAAAuI,KAAA6F,MAAA/R,IAAA,OAAA,EAAA,GAAA,UAAA2D,EAAA,OAAA,EAAA,GAAAjK,GAAAiK,GAAA,OAAAA,EAAA6V,WAAA7V,KAAAA,IAAAA,EAAA6V,WAAA7V,GAAA,CAAA,MAAAiB,GAAA,CAAA,GAAA,OAAAjB,GAAA,KAAAA,EAAA,OAAAA,CAAA,CAAAe,GAAA,iBAAA,UAAAH,IAAAG,GAAA,iBAAA,UAAAF,IAAAE,GAAA,iBAAA,aAAAD,IAAA,IAAAgV,GAAAL,KAAAM,GAAAJ,KAAAK,GAAAhB,KAAA,SAAAiB,GAAAjW,EAAAnE,GAAA,GAAAmE,EAAA,CAAA,IAAAxD,EAAA0Z,GAAAra,GAAAf,GAAAqb,GAAA3Z,GAAAuF,EAAAqU,GAAA5Z,GAAAoZ,GAAAS,aAAA3Q,QAAA1F,SAAA,EAAA,GAAAlF,IAAAyD,GAAAwD,GAAA,OAAAA,EAAA,IAAAxF,EAAA+Z,GAAA9Z,GAAAoZ,GAAAX,GAAAjV,SAAA,EAAA,GAAAlF,GAAAyB,EAAA,OAAAA,EAAA,IAAAD,EAAAia,GAAA/Z,GAAAoZ,GAAAY,eAAA9Q,QAAA1F,SAAA,EAAA,GAAAlF,GAAAwB,EAAA,OAAAA,EAAA,IAAA0F,EAAApB,GAAAZ,GAAA,OAAAlF,EAAAkH,EAAA,CAAAqU,aAAAtU,EAAAyU,eAAAla,EAAA+Y,OAAA9Y,EAAAoE,OAAAqB,EAAA,CAAA,CAAA,SAAAkU,GAAA7Z,GAAA,OAAAA,EAAAiC,GAAAjC,GAAAA,EAAAA,EAAAnE,QAAA,KAAA,CAAA,SAAAke,GAAA/Z,GAAA,OAAAyZ,IAAAW,GAAApa,EAAAmZ,GAAA,CAAA,SAAAc,GAAAja,GAAA,OAAA2Z,IAAAS,GAAApa,EAAAyY,GAAA,CAAA,SAAAyB,GAAAla,GAAA,OAAA0Z,IAAAU,GAAApa,EAAAqZ,GAAA,CAAA,SAAAS,GAAA9Z,GAAA,MAAA,MAAAA,GAAA,QAAAA,CAAA,CAAA,SAAAoa,GAAApa,EAAA2D,GAAA,MAAA,QAAA3D,GAAAA,IAAA2D,GAAAmW,GAAA9Z,EAAA,CAAA,SAAAqa,GAAAra,EAAA2D,EAAAnE,GAAA,MAAA,CAAAsT,SAAA9S,EAAAsa,QAAA3W,EAAA4W,SAAA/a,EAAA,CAAA,IAAAgb,GAAA,CAAA1V,QAAA,SAAA3E,EAAA1B,EAAAwB,GAAA,GAAAE,IAAA+B,GAAAzD,GAAA,CAAA,IAAAkH,EAAA,CAAA,EAAA8U,EAAAZ,GAAA5Z,GAAA4K,EAAAqB,KAAAC,UAAA1N,GAAAic,GAAAZ,GAAAW,GAAA,OAAAV,GAAAU,KAAA9U,EAAAwT,IAAAkB,GAAAlB,GAAA1a,EAAA8a,GAAAS,aAAA3Q,QAAAlJ,KAAA6Z,aAAAlV,QAAA3E,EAAA0K,GAAA6P,GAAA/U,EAAAwT,IAAAc,GAAAQ,KAAA9U,EAAA8S,IAAA4B,GAAA5B,GAAAha,EAAA8a,GAAAX,GAAAzY,KAAA2Y,GAAA3Y,EAAA0K,GAAA6P,GAAA/U,EAAA8S,IAAAyB,GAAAO,KAAA9U,EAAA0T,IAAAgB,GAAAhB,GAAA5a,EAAA8a,GAAAY,eAAA9Q,QAAAlJ,KAAAga,eAAArV,QAAA3E,EAAA0K,GAAA6P,GAAA/U,EAAA0T,KAAA1T,EAAA1B,IAAAoW,GAAApW,GAAAxF,EAAA8F,GAAApE,IAAAqE,GAAArE,EAAA1B,GAAAic,EAAA/U,EAAA1B,IAAA0B,EAAA,CAAA,EAAA0D,QAAAuQ,GAAA7U,WAAA,SAAA/E,EAAAR,GAAA,GAAAQ,EAAA,CAAA,IAAAvB,EAAAob,GAAAra,GAAAoG,EAAAgU,GAAA5Z,EAAA,KAAAE,EAAA,CAAA,EAAA,OAAAgC,GAAA0D,EAAAoU,eAAAD,GAAAtb,KAAAub,aAAAjV,WAAA/E,GAAAE,EAAAiZ,IAAAvT,EAAAoU,eAAA9X,GAAA0D,EAAAoT,SAAAiB,GAAAxb,KAAAsa,GAAA/Y,GAAAE,EAAAuY,IAAA7S,EAAAoT,SAAA9W,GAAA0D,EAAAuU,iBAAAD,GAAAzb,KAAA0b,eAAApV,WAAA/E,GAAAE,EAAAmZ,IAAAzT,EAAAuU,iBAAAjY,GAAA0D,EAAAtB,SAAA8V,GAAA3b,EAAAwF,MAAAQ,GAAAzE,GAAAE,EAAA+D,IAAA2B,EAAAtB,QAAApE,CAAA,CAAA,GAAA,SAAAya,GAAAxc,EAAArB,EAAAsB,GAAA,OAAAtB,KAAAqB,EAAAd,OAAAud,eAAAzc,EAAArB,EAAA,CAAAsB,QAAAC,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAJ,EAAArB,GAAAsB,EAAAD,CAAA,CAAA,SAAA0c,GAAAC,EAAAC,GAAA,IAAAxS,EAAAlL,OAAAkL,KAAAuS,GAAA,GAAAzd,OAAAO,sBAAA,CAAA,IAAAod,EAAA3d,OAAAO,sBAAAkd,GAAAC,IAAAC,EAAAA,EAAA7L,OAAA,SAAA8L,GAAA,OAAA5d,OAAA6d,yBAAAJ,EAAAG,GAAA5c,UAAA,IAAAkK,EAAAxC,KAAAjG,MAAAyI,EAAAyS,EAAA,CAAA,OAAAzS,CAAA,CAAA,SAAA4S,GAAAve,GAAA,IAAA,IAAA8I,EAAA,EAAAA,EAAAtC,UAAA/C,OAAAqF,IAAA,CAAA,IAAA0V,EAAA,MAAAhY,UAAAsC,GAAAtC,UAAAsC,GAAA,CAAA,EAAAA,EAAA,EAAAmV,GAAAxd,OAAA+d,IAAA,GAAAhf,QAAA,SAAAU,GAAA6d,GAAA/d,EAAAE,EAAAse,EAAAte,GAAA,GAAAO,OAAAK,0BAAAL,OAAAG,iBAAAZ,EAAAS,OAAAK,0BAAA0d,IAAAP,GAAAxd,OAAA+d,IAAAhf,QAAA,SAAAU,GAAAO,OAAAud,eAAAhe,EAAAE,EAAAO,OAAA6d,yBAAAE,EAAAte,GAAA,EAAA,CAAA,OAAAF,CAAA,CAAA,SAAAye,GAAAC,EAAA9R,GAAA,MAAA+R,EAAA,SAAAD,GAAA,OAAA9M,MAAA1Q,UAAAgD,MAAAlC,KAAAuC,OAAAhG,SAAAqgB,iBAAA,WAAAC,KAAA7V,GAAAA,EAAA0V,MAAAA,EAAA,CAAAI,CAAAJ,GAAA,QAAA,IAAAC,EAAA,CAAA,MAAAI,EAAA,MAAAJ,OAAA,EAAAA,EAAAnI,aAAA,UAAA,GAAA,WAAAuI,EAAA,OAAAzc,QAAAC,QAAAoc,GAAA,GAAA,YAAAI,EAAA,OAAA,IAAAzc,QAAA,CAAAC,EAAAC,KAAAmc,EAAAlf,iBAAA,OAAA,IAAA8C,EAAAoc,IAAAA,EAAAlf,iBAAA,QAAAuf,GAAAxc,EAAAwc,KAAA,CAAA,OAAA,IAAA1c,QAAA,CAAAC,EAAAC,KAAA,IAAAyc,EAAAC,EAAA,MAAAC,EAAA5a,OAAAhG,SAAAQ,cAAA,UAAAogB,EAAA3V,KAAA,kBAAA2V,EAAAT,IAAA,SAAAA,EAAA9R,GAAA,IAAAwS,EAAAV,EAAA,OAAAU,EAAAC,WAAA,UAAAD,EAAA,YAAA,MAAAxS,OAAA,EAAAA,EAAA0S,KAAA,OAAA,KAAAF,MAAA,MAAAxS,OAAA,EAAAA,EAAA2S,KAAAH,GAAA,WAAA,MAAAxS,OAAA,EAAAA,EAAA4S,MAAAJ,GAAA,QAAA,MAAAxS,OAAA,EAAAA,EAAA6S,SAAAL,GAAA,IAAAxS,EAAA6S,OAAAL,CAAA,CAAAM,CAAAhB,EAAA9R,GAAAuS,EAAAQ,OAAA,EAAAR,EAAA9f,aAAA,SAAA,WAAA,IAAA,MAAAugB,EAAArR,KAAA9N,OAAAof,QAAA,OAAAZ,EAAA,MAAArS,OAAA,EAAAA,EAAAkT,YAAAb,EAAA,CAAA,GAAAE,EAAA9f,aAAAugB,EAAArR,GAAA4Q,EAAAY,OAAA,KAAAZ,EAAAa,QAAAb,EAAAY,OAAA,KAAAZ,EAAA9f,aAAA,SAAA,UAAAkD,EAAA4c,IAAAA,EAAAa,QAAA,KAAAb,EAAAa,QAAAb,EAAAY,OAAA,KAAAZ,EAAA9f,aAAA,SAAA,SAAAmD,EAAA,IAAAmD,MAAA,kBAAA+Y,OAAA,MAAAthB,EAAAmH,OAAAhG,SAAAgY,qBAAA,UAAA,GAAA,OAAA2I,EAAA9hB,EAAA6iB,gBAAAf,EAAAgB,aAAAf,EAAA/hB,IAAA,CAAA,IAAA+iB,GAAA,CAAA/gB,GAAA,MAAA,MAAAghB,CAAA5iB,EAAAmS,GAAA,OAAAzN,GAAAnF,KAAA,KAAA,YAAAsjB,GAAA1Q,EAAAnS,IAAA,SAAA8iB,EAAAzjB,EAAA0jB,EAAA,CAAA,GAAA,IAAAnjB,EAAA,IAAAA,EAAAkS,KAAA6F,MAAAmL,EAAA,CAAA,MAAA1d,GAAAxF,EAAA,CAAAkjB,OAAAziB,KAAA,aAAA,CAAA,MAAAuZ,EAAAmJ,EAAAnJ,QAAA,EAAA,GAAAoJ,KAAA,GAAA,eAAApjB,EAAAS,MAAA,SAAAyiB,EAAAzjB,GAAA,MAAA6D,EAAA,eAAA+f,OAAAlc,OAAA7D,GAAA7D,EAAA,MAAA6jB,EAAA,qCACjBhgB,aAEV4f,YAqiDK/Q,IAAAA,eAEGoR,QAGJC,MAEE,oCACmBC,EAAAA,kBAA0BF,EAAAA,CAAO,eAAaG,OAAAA,EAAgBC,CACnFC,CAjjDuBC,CAAA7jB,EAAAkjB,KAAAzjB,OAAA,CAAA,MAAAqkB,EAAA3iB,SAAAQ,cAAA,QAAAmiB,EAAA5hB,UAijDvB0hB,SACa1jB,EAAGT,GAAA,OAAAyjB,EAAuBa,0CAAoCC,GAAU,CAljD9DC,CAAAjkB,EAAAkjB,KAAAzjB,GAAA0B,SAAAC,KAAA8iB,sBAAA,YAAAJ,GAAAA,EAAAtC,iBAAA,UAAApf,QAAA2f,IAAA,MAAAoC,EAAAhjB,SAAAQ,cAAA,UAAAwiB,EAAA/X,KAAA+X,EAAA/X,MAAA,kBAAA2V,EAAAqC,aAAA,SAAAD,EAAA7C,IAAAS,EAAAT,KAAA6C,EAAAE,KAAAtC,EAAAsC,KAAArK,GAAAuJ,QAAAe,IAAA,4BAAAvC,EAAAqC,aAAA,OAAA,IAAArC,EAAAT,MAAA,IAAA6C,EAAAE,MAAAljB,SAAAojB,KAAAC,YAAAL,GAAAhjB,SAAAojB,KAAAE,YAAAN,IAAA,MAAAnK,GAAAuJ,QAAAe,IAAA,sEAAA,CAAAI,CAAAtkB,EAAA8iB,KAAA3Q,EAAA,EAAA,GAAA,IAAAoS,GAAA,KAAAve,MAAA,IAAAwe,UAAAxR,KAAA,IAAAyR,GAAAC,WAAAH,GAAA,MAkjDmEI,IAAAA,GAAAA,oBAE3E5f,GAEb6f,CAAAA,GAAAA,qBAEa9S,GAAW6S,OAAAA,GAC1BplB,UACA,YAAMikB,IAAAA,KAAoCxjB,GAAY,iBAuBnD6kB,MACPtlB,KAAMulB,KAAM1gB,YACE,UADe2gB,OACXC,GACLtiB,cAIXuiB,GAAAA,cAAAA,CAAoBlD,KAAImD,EAAAA,WAAmBzjB,CAAAA,YAC7C0jB,eAAYD,KAAY,KAAEA,GAAAA,OAExBle,UAAM,YACEke,UAAAA,KACR3N,EAAAA,CAAU,MAAOnS,WAAa/D,KAAM,iBAClC+jB,mBACIplB,EAAO4Z,UACTuJ,GAAOkC,GAAO,SAAA,CAAAA,GAAA,UAAAC,GAAuEve,OAEvF,UAAI,IAAC/G,MAAOulB,IAASvlB,QAAOwlB,KAAAA,iBAChBrd,oDAzCgDsd,UAI7CC,KAA6BA,KAH/BC,IAAiC,aAAjCxT,EAAqBwS,MAA2BxS,EAAY/M,UACzEuJ,WAAe5J,OAEjBoN,UAAiBuT,CAAAA,KACCE,WADyC3f,MAEhDqf,GACMnT,+BAAuCyS,KAAac,OAAazf,OAAM,gBAAA,OAAA,CAAA,SAAAof,GAAA7Z,GAAAzE,OAAA,eAAAyE,CAAA,CAAA,SAAAqa,YAC1D9e,OAAuB,iBAAC2e,OAAyB,eAC1E,GACF,CAAA,SACK1C,YACcpJ,EACduJ,iCAA6DpR,QAAU6S,GAAAA,EAAY,IAACc,MAAAA,EAAc9S,EAAQkT,GAE5GhB,sBAA2BF,KAAAA,kCAAmCmB,EAAAA,UAAmBxC,GAAW,CAAC3J,MAAO3J,GAAAA,QAG1G5O,KACA,4BAGA2jB,EAAAA,UAAAA,EAAoB,GAwBA,IAAAgB,GAAA,CAAApkB,GAAA,MAAA,MAAAghB,CAAA5iB,EAAAmS,GAAA,OAAAzN,GAAAnF,KAAA,KACd,YAGA,IAAAkiB,IAAWwE,EAAGjmB,EAAAA,EAAOkmB,EAAKC,EAAIzB,EAAAA,EAAAA,EAAU0B,EAACF,EAAKG,IACxCC,MAAAA,MAAiBC,MAAAA,IAAe1D,GAC3B1Q,EAAMmU,GAAWzW,aAsGxBhC,SACAG,EAAUoB,GAAW,OAAO1K,GAAS0K,KAAQpB,iBAAoB,MAAOwY,EAAS3Y,iBACjFI,gBAA0CmB,IAApBpP,EAAWymB,QAA0D5Y,YAAzCI,OAAAA,UAAyBuY,IAAgB3Y,IAAKI,qBAN/E,iBAAA,SAM+G,OAAYyY,GAC1Ihc,WAAQ,MAAYic,EAAEC,EAC9BC,aAAe,SAAa5R,EAAIpP,EAAGyF,GAAM2J,KAASA,EAAC6R,IAAAA,GAAU7R,EAC7DpP,GAAIqI,KAAU,CAAA6Y,QAAO7Y,EAAWF,SAC9BE,KAAS2W,KAAAA,CAAAA,aAAAA,IAAuB3W,MAChCzM,UAAQiJ,MAAQ,WAOhBtG,GAJwB,2BAITA,CAAAA,KAAiB4H,EAAMgW,IAAA,EAAS4E,MAAAA,MAAS1Y,GAPf,eAEvC8Y,MACFnhB,EAAA,MAIkEoI,KAAAA,KAAgBA,GAAgB,kBAAwB7I,IAC1H8f,QAAAA,KACAjV,oBAKR0W,mBAGFvhB,EAAAgD,UAAS6e,GAAUP,GAEjBQ,WAAeA,CAtBM,CAsBNA,OAAeV,EAAUG,KA/HhCQ,CAAqBnnB,EAAConB,GAAgBC,MAAAA,EAAiBtgB,OAAO/G,iBAC9D,aAAuBkO,EAAO9J,GAAcA,GAAaya,CAAAA,GAAmByI,MAAnBzI,WAC1C3Q,SAAS,CACtBqZ,IAGQnE,OAHRmE,EAAkB,aAEpB,EAAApV,EAAW3B,+CAffgX,GAAAA,OAAAA,OAAiBxnB,YAAeiD,OAC5BjD,kBACE,EAACgjB,MAAAA,EAAa9iB,SACTkiB,IAAM,CAa0Cb,GAAe,KAACqC,SAAa,UACzE5jB,cACTmjB,UAAYvJ,GAAAuJ,QAAAvJ,MAAA,kDAGNwJ,GAAM,MAAAqE,EAAA,CAAAC,cAAqCxZ,EAAC9F,SAInDuf,GAELvjB,GAAiBpE,GAAqB2nB,MACrBC,SAAmB,CAAAb,QAAW5U,SAC7CnE,OAEFmE,EAAM0V,QAAe,CAAA,GAAA1V,EAAQA,YAAiBlC,CAAAA,YAAUxO,EACpDomB,aAAW,CAAOA,GAAAA,GAAkB,CAAAC,UACtCD,OAAQzS,KAAKqS,GAGfxhB,OAAO4hB,SAEDF,IACN/N,GACAuJ,QAAQhR,MAASnS,6DAC+B+nB,GAAAA,MAC9CC,EAEIH,EAAUI,eAAuBjoB,iBACnC6nB,eAA0BzS,EACrB,OAD0BsM,EAAKvP,EAAA3B,cACxB,EACdkR,EACFnI,WAED,EACD5K,EAAAA,KAAWgZ,WACLlG,EACJjJ,QACyB,OADjBrG,EACR,SADuBA,EAAElC,cACdjQ,EAAMkoB,EAACN,WAAmB,EAAMO,EAAMJ,OAAAA,mBAGzCrd,SAFN,OADmG0d,EAAKjW,EAACkW,kBAGpG9O,WAAS,EAAA4M,EAAahU,MAAOmW,UACpCN,EAAkBnP,cAAM1G,EAAmC8T,OAA3B/X,EAAAA,EAAWsC,cAAmBsW,EAAAA,EAC9DvN,WAAkB,EAAIgP,EAAA1P,MAAO1G,YAAc6V,EACzC7V,gBAAQjE,EAAgCiE,OAAvB0S,EAAAA,EAAAA,kBAAsCtL,WACvC,EAAA6M,EAAAtN,QAAA0P,qBAAyBta,EAKbiE,OAH9BkU,EAGMhD,sBAFGve,EAAOqN,EAAQ3B,cAElB6S,EAAAA,EAAiB9J,WAAenK,EAAAA,EAAOqJ,UAAwBgQ,EAAAA,IAAAA,WACrE7O,MAAMiO,uEACFA,GAAO,QAAmBzS,QAAUsT,MAEtCzlB,OAEFkL,KAAO0Z,GAAO7lB,QAEXogB,GAAGuF,UACU1X,EAAa0X,QACrB5Y,GACJ/O,QAAO4Z,MACTuJ,mDAAYpT,IACd,OAEFmL,EAEEyN,MAASA,WAAa,MAChBlH,WACJmH,EAAMC,QAAAA,GAAqB1W,IAA4B/N,GAAmBikB,UAA0BnD,aAAa0C,GAAmBkB,IACxH5D,MAAAA,IAAAA,QAAc6D,MAC1B/Q,WAAMgR,GAAwB9D,IAA6B9gB,GAAeikB,GAAqBH,GAAiB,CAACN,MAAAA,EAAgBvoB,OAAS4pB,GAC1IC,GAAmBJ,IACD,MAAM,IACpB3F,6BAKFuF,EALkEtkB,GAE5D6L,GAAwB7L,GACxB+kB,CAAAA,MAAiBC,YACvBH,GAAkBhZ,GAAa6Y,IAELK,IAEX,IAFWA,EAAcE,eAExB,IAA2B,IAA3BrpB,iBACPod,EAAAA,CAAAA,EAAAA,EAAe+L,QAE5B/G,IACAkH,EAAM1C,QAAe,IAAS3jB,OAAEsmB,QAE9BtjB,OAAQ,GAAGif,EAAYvZ,KAACic,EAAgB,MAAS4B,EAAMzB,KAAQ,WAAY7C,KAAAA,OAAa0C,IAAgB,GAItGhB,SAAUA,GAEZpb,UACA,gBAAAA,CAAMqC,QA2BZ,CAAM4b,IAAAA,WAAc9O,CAAI,IAAI,cAC5B,IAAA,OAAaqI,IAAAA,GAAAA,IAAW,IAAM,GAAG,IAAGjc,QAAU,QAAa,IAAGA,MAAO2iB,IAAAA,WAAgB,CAAI,IAAG,GAAM,IAAMC,MAAK,IAAKF,WAAcA,CAAAA,IAAAA,OAChI,YAEFG,GACiB,OADW,IAAOC,aAEzBpgB,OAAKC,GAAsHA,IAAWgC,GAAUoe,CAAAA,GAAAA,UAAkB,MAAAlH,GAAkBzQ,GAAS,OAAM4X,GAAOC,KAAAA,KAAAA,YAA2B,IAC/OvI,EACAC,EAAA,IAAS0H,GACDjX,kBAwEY,SAAAnS,EAA4C0C,UAE1DunB,GAAAA,KAAavnB,KAAOwnB,eACMxnB,WAPgDqE,OAA6BojB,iBAAI9B,SAS7GpZ,OAAQvM,GACC,iBACKqgB,EAAK6E,iBAAgCG,YAAqBhF,EAAqB,gBAAgBsF,MAAAA,EAAAA,GACzG1B,EAEF3mB,EAAMgE,eAAqBtB,OAAQ0nB,GAAAA,OAAAA,IAAyB,GAAC1nB,MACzDqgB,EAAKnJ,iDACiDlX,MAAOsB,EAAK,SAAA2iB,EAAAviB,GAA+BA,GAErG,CAAA,EAAOJ,SAGP,CAAA+iB,QAAK5U,EAAanE,QAAI/K,CAAAA,GAAOkL,eACH,CAC1B,EADE,CAAAkc,gBAAOJ,KAETG,GA/F6DE,OAAc5e,GAAMqe,EAAAA,mBAAwC/W,KAAK,KAiGhIrI,CAAAA,MAAAA,MAAWjI,IACLqgB,IACFI,KAAAA,IAAW1d,KAAC,KAAA8kB,GAAA,YAAAnV,MAAAhQ,IAA6C1C,QAE3DrB,KAAA,oBACA+oB,EAAAA,4CAGYI,iBAA+B,EAACna,EAtGU/E,EAAa7B,SAAgB+f,EAAaziB,SACtF0jB,eACE,eAAsC1kB,WAC5CyjB,EAAa7d,KAAUgB,UAAQjF,EACvCgjB,EAAKpf,MAA8B,CAAU,EAAI6G,EAEnDnE,OAAOzC,SAET4G,EAAa0G,OAAM8R,SACR3c,QAAU,CAAG2c,GAAAA,EAAY1c,YAAa0c,CAAI1c,YACrCkE,EAAYyY,aAAc,CAAA,GAGhCnhB,OAFDmhB,EAAIC,UACP,MAAQC,CAAAA,QAAUC,WACTD,EAAWC,iBAEnBthB,GAAAA,EAAUuhB,sBAA2B9G,IAAGza,uCACnCue,EAAexX,QAAAA,GAAS2B,EAAc1I,GAAIue,EAAkB,GAcrC,oBAbjC5jB,GAAiB,CAAI6mB,cAAkBD,EAIzClrB,IAAS6X,WAAaqQ,EACRkD,MACPA,YAA+Brf,eAAQmc,EAClC7e,KAAAA,YAAAA,EAGRnF,OAAQ8N,cAGJ,OAHqB4P,EAEX,OADV1d,EAAU,MAAVA,OAAyB,EAAAwM,EACzBxM,eAA0ByU,UACnBzU,EAAAA,IAAU8kB,GACD,CAAC,MAAK9kB,IACxBA,QAAQob,MAAAA,WAEV8J,GAEEllB,IACFI,GAEKJ,GAsBAmnB,CAAAA,EAAAA,GAAAA,GAAAA,EAAAA,QAAwCC,EAAI7a,MAAc8a,GACrDpF,MAASmC,IACrB,WAAM6B,MAAY/b,OAAGA,GACjBod,EAEM5oB,EAAKwnB,QACPqB,WAFFf,GAAAA,GAAyBJ,CAAAA,EAAAA,GAC7B1f,IAE+B,EAAI,YAC/B6f,MAEO3Q,OACK,gBAAApO,CAAA,CA8B8B6E,SAAcmb,KAAuBC,GAAKC,YAAAA,GAA2B9R,gBACtG+R,UAAY5I,GAAY,IAAK4I,OAAOrpB,aAAY+lB,CAMd,SACjDxF,QACyBze,MAAAA,MAAAA,EAAAA,IAAe+Q,OAAAA,OAAcyW,EAChD,UAAUC,EACH5lB,MAAMoO,QAAUc,GAAWA,EAAQA,EAAQnP,YAE1C2hB,UADRvT,MAAAC,WAAqByX,EAAC1nB,EAAAA,MACpB4C,YAGF+kB,QAAiBxS,EAAImI,EAf2E3M,EAAY0W,EAetF,OAf0E1W,EAkBlFgX,EAlB8FN,EAmBlD,OAAnD/J,SAAMD,IAAOkG,cAAwB,EAAAlG,EAAOkG,WAAY,EAAUjG,EACzEiG,WApBwHI,IAC5G0D,EAAWA,GAAOzd,GAEpC+G,aAAkBiX,MAChBpS,EAASmJ,SACTthB,EAAOgW,UACGwN,IAAAA,IAA2BxjB,OAchBoqB,EAEbI,KAAAA,GAAqBxqB,GACrByqB,EAAAA,EAAiB1B,SAAAA,EAAsByB,KAAQE,GAC1CxE,GAAYwE,EACrBD,EAAAA,QAAsB,CAAC,SAImB,cAJA7qB,KAC3C,4BAA6B+D,EAAAgD,kCACL+M,2BAEV2W,YAAiBnE,EAAYmE,GAC1CI,IAAAA,MAAAA,4BAAwCvE,EAAKvf,kCAElBuf,2BAEN3jB,IACvB,CAAI+e,CAAAA,IAAKnJ,GACK,CAAA,CAAA+I,GAAA/gB,IAAA+gB,GAAA,CAAAqD,GAA2Chf,IAAIgf,OAAoBhiB,IAAMooB,GAElFrJ,CAAAA,WAUDA,+raAsGV/c,MAAA,KAAAqmB,GAAA,CAAA,EAAAC,GAAAtqB,QAAAuqB,IAAAF,GAAAE,IAAA,IAAA,IAAAC,GAAAH,GAAA,SAAAhF,GAAAoF,GAAA,MAAAnF,GAAAmF,EAAAzmB,MAAA,KAAA0mB,EAAApF,EAAAthB,MAAA,KAAA,GAAA,cAAA0mB,EAAAA,EAAAzmB,OAAA,IAAAymB,EAAAzmB,OAAA,EAAA,OAAAymB,EAAAA,EAAAzmB,OAAA,GAAA,CAAA,MAAAyF,EAAAghB,EAAAA,EAAAzmB,OAAA,GAAA,IAAAymB,EAAAA,EAAAzmB,OAAA,GAAA,OAAAymB,EAAAzmB,OAAA,GAAAumB,GAAA9gB,GAAAghB,EAAAA,EAAAzmB,OAAA,GAAA,IAAAyF,EAAAA,CAAA,CAAA,CAAA,IAAAihB,GAAA,MAAA,WAAAxtB,CAAAiQ,GAAA7P,KAAAqtB,YAAAxd,GAAA,CAAA,EAAA7P,KAAAstB,MAAA,CAAA,CAAA,CAAA,OAAAzd,CAAAA,GAAA,OAAAA,IAAA7P,KAAAqtB,YAAAxd,GAAA7P,KAAAqtB,WAAA,CAAA,IAAAE,CAAA9lB,EAAA+lB,GAAA,IAAAD,EAAAC,EAAA,GAAA,iBAAA/lB,EAAA,CAAA,QAAA,IAAA8lB,EAAA,OAAAvtB,KAAAstB,MAAA7lB,GAAAzH,KAAAstB,MAAA7lB,GAAA8lB,CAAA,CAAA,GAAA9lB,GAAAA,EAAAA,KAAA,CAAA,GAAA8lB,EAAA9lB,EAAA8lB,EAAAE,YAAAztB,KAAA,OAAAutB,EAAAvtB,KAAAstB,MAAAC,EAAA9lB,MAAA8lB,CAAA,CAAA,OAAAA,EAAAE,UAAAztB,KAAAutB,CAAA,CAAA,OAAA1mB,CAAA8kB,EAAA4B,GAAA,IAAAtc,EAAA0a,EAAA1a,EAAApB,QAAA7P,KAAA6P,UAAA,IAAA6d,EAAAC,EAAAJ,GAAA5B,EAAA4B,MAAA,UAAA,KAAAI,QAAA,IAAA1c,EAAA2c,oBAAA3c,EAAArL,KAAAqL,EAAA2c,kBAAA3c,EAAA2c,kBAAA,MAAA,iBAAAD,IAAAA,EAAA3tB,KAAAutB,KAAAI,IAAAA,EAAA9mB,QAAAoK,GAAAyc,EAAAC,EAAAA,EAAA,KAAA1c,GAAAA,EAAArL,OAAAqL,EAAAA,EAAArL,KAAA+nB,EAAA1c,EAAAsc,MAAAG,GAAA,OAAAzc,EAAA4c,UAAA5c,EAAAoR,YAAA,CAAA,GAAAyL,GAAA,MAAA,WAAAluB,CAAA6H,GAAAzH,KAAAyH,KAAAA,EAAAzH,KAAA+tB,QAAA,EAAA,CAAA,OAAAlnB,CAAA8kB,GAAA,IAAA3rB,KAAAytB,UAAA,MAAA,IAAA7kB,MAAA,gDAAA,MAAAyR,EAAAra,KAAAqa,MAAA3T,EAAA1G,KAAA+tB,QAAArnB,OAAAuK,EAAA0a,EAAA,IAAA,IAAAqC,EAAA,EAAAA,EAAAtnB,EAAAsnB,IAAA,CAAA,MAAAxY,EAAAxV,KAAA+tB,QAAAC,GAAA,GAAA3T,GAAAra,KAAA2kB,IAAA,WAAAnP,EAAAyY,cAAAzY,EAAAvE,GAAA,iBAAAA,GAAAA,EAAAid,QAAA,CAAAjd,EAAAid,SAAA,EAAA,KAAA,CAAA,EAAAjd,EAAArL,MAAA5F,KAAAmuB,aAAAnuB,KAAAmuB,YAAAld,EAAA,CAAA,GAAA0T,CAAAuB,GAAAtC,QAAAe,IAAA,mBAAA3kB,KAAAyH,cAAAye,IAAA,CAAA,MAAAjkB,IAAAmmB,GAAA,OAAApoB,KAAA+tB,QAAA3hB,QAAAgc,GAAApoB,IAAA,CAAA,OAAA+B,IAAAqmB,GAAA,OAAApoB,KAAA+tB,QAAAK,WAAAhG,GAAApoB,IAAA,CAAA,OAAAsM,CAAA2hB,GAAA,IAAAA,EAAA,MAAA,IAAArlB,MAAA,6BAAA,IAAA,IAAAolB,EAAA,EAAAA,EAAAhuB,KAAA+tB,QAAArnB,OAAAsnB,IAAA,CAAA,GAAAhuB,KAAA+tB,QAAAC,GAAAC,aAAAA,EAAA,OAAAD,CAAA,CAAA,MAAA,IAAAplB,MAAA,qBAAAqlB,IAAA,CAAA,IAAAI,GAAA,OAAAruB,KAAA+tB,QAAA1gB,IAAAnB,GAAAA,EAAA+hB,WAAA,CAAA,KAAA5W,CAAA4W,KAAA5f,GAAA,MAAA2f,EAAAhuB,KAAAsM,QAAA2hB,GAAA,OAAAjuB,KAAA+tB,QAAAxhB,OAAAyhB,EAAA,EAAA,KAAA3f,GAAArO,IAAA,CAAA,MAAAoX,CAAA6W,KAAA5f,GAAA,MAAA2f,EAAAhuB,KAAAsM,QAAA2hB,GAAA,OAAAjuB,KAAA+tB,QAAAxhB,OAAAyhB,EAAA,KAAA3f,GAAArO,IAAA,CAAA,OAAA6J,CAAAokB,KAAA5f,GAAA,MAAA2f,EAAAhuB,KAAAsM,QAAA2hB,GAAA,OAAAjuB,KAAA+tB,QAAAxhB,OAAAyhB,EAAA,KAAA3f,GAAArO,IAAA,CAAA,MAAAsuB,CAAAL,GAAA,MAAAD,EAAAhuB,KAAAsM,QAAA2hB,GAAA,OAAAjuB,KAAA+tB,QAAAxhB,OAAAyhB,EAAA,GAAAhuB,IAAA,CAAA,KAAAuuB,GAAA,OAAAvuB,KAAA+tB,QAAArnB,OAAA,EAAA1G,IAAA,CAAA,gBAAAwuB,CAAAC,GAAA,IAAA,IAAAA,GAAA,IAAAzuB,KAAAmuB,YAAA,OAAAnuB,KAAAmuB,YAAAld,IAAA,IAAAA,EAAA4c,UAAA,CAAAjK,QAAAe,IAAA1T,GAAA,MAAA4S,EAAA,IAAAjb,MAAA,GAAA5I,KAAAyH,eAAA,MAAAoc,EAAA6K,UAAA,EAAA7K,CAAA,GAAA7jB,UAAAA,KAAAmuB,YAAA,IAAA,GAAAQ,GAAA,MAAA,SAAAC,CAAAvM,GAAA,OAAAriB,KAAAqiB,OAAAA,EAAAriB,KAAA6tB,WAAA,EAAA7tB,IAAA,CAAA,IAAA6uB,GAAA,OAAA7uB,KAAAkuB,SAAA,EAAAluB,IAAA,CAAA,IAAAoM,CAAA0iB,EAAArnB,GAAA,OAAAqnB,EAAAC,OAAA/uB,UAAA,IAAAyH,IAAAqnB,EAAAE,UAAAvnB,GAAAqnB,EAAAG,KAAAjvB,KAAAivB,MAAAjvB,KAAA8uB,EAAAjf,QAAAif,EAAAjf,SAAA7P,KAAA6P,QAAA7P,KAAAkvB,UAAAlvB,KAAAkvB,SAAAlvB,KAAAkvB,SAAAxoB,OAAA,GAAAd,KAAAkpB,EAAA9uB,KAAAkvB,SAAA9iB,KAAA0iB,KAAA9uB,KAAAkvB,SAAA,CAAAJ,GAAA9uB,KAAA4tB,kBAAA5tB,KAAA4F,MAAA,KAAA5F,KAAA4F,KAAAkpB,GAAAA,EAAAlpB,KAAA5F,KAAAA,IAAA,GAAAmvB,GAAA,cAAAR,GAAA,WAAA/uB,CAAAwvB,EAAAC,GAAAC,QAAAtvB,KAAAovB,KAAAA,EAAApvB,KAAAqvB,MAAAA,EAAArvB,KAAAutB,KAAA,MAAA,CAAA,SAAAqB,CAAAvM,GAAA,OAAAiN,MAAAV,UAAAvM,EAAA,GAAAkN,GAAA,cAAAZ,GAAA,WAAA/uB,CAAAwvB,EAAAI,GAAAF,QAAAtvB,KAAAovB,KAAAA,EAAApvB,KAAAwvB,MAAAA,EAAAxvB,KAAAutB,KAAA,OAAA,GAAA,IAAAkC,GAAA,SAAAxe,GAAA,GAAAA,EAAAme,OAAAne,EAAAoe,MAAA,QAAA,IAAApe,EAAAme,KAAA,QAAA,IAAAne,EAAAoe,MAAA,CAAA,GAAA,mBAAApe,EAAAme,MAAA,mBAAAne,EAAAoe,MAAA,MAAA,IAAAzmB,MAAA,+BAAA,GAAAqI,EAAAye,SAAA,OAAAze,EAAAme,KAAA,cAAAne,EAAAme,KAAAne,EAAA0e,UAAA,OAAA1e,EAAAoe,MAAA,cAAApe,EAAAoe,MAAApe,EAAAye,WAAAze,EAAA0e,UAAA,GAAA,YAAA1e,EAAAye,UAAA,WAAAze,EAAAye,UAAA,WAAAze,EAAAye,SAAA,CAAA,GAAA,WAAAze,EAAAye,WAAAze,EAAA2e,YAAA/a,MAAAC,QAAA7D,EAAAme,OAAA,WAAAne,EAAA0e,YAAA1e,EAAA4e,aAAAhb,MAAAC,QAAA7D,EAAAoe,QAAApe,EAAA2e,cAAA3e,EAAA4e,aAAA,OAAA5e,EAAA2e,aAAA3e,EAAA4e,aAAA,SAAA/qB,EAAAC,GAAA,GAAAD,EAAA4B,SAAA3B,EAAA2B,OAAA,OAAA,EAAA,IAAA,IAAAqF,EAAA,EAAAA,EAAAjH,EAAA4B,OAAAqF,IAAA,GAAAjH,EAAAiH,KAAAhH,EAAAgH,GAAA,OAAA,EAAA,OAAA,CAAA,CAAA+jB,CAAA7e,EAAAme,KAAAne,EAAAoe,YAAApe,EAAA2d,eAAA,GAAAC,YAAA5d,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAne,EAAAoe,QAAAR,YAAA5d,EAAAme,gBAAAW,SAAA9e,EAAAoe,iBAAAU,OAAA9e,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAjnB,WAAA8I,EAAAoe,MAAAlnB,aAAA0mB,OAAA5d,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAne,EAAAoe,QAAAR,SAAA5d,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAne,EAAAoe,QAAAR,MAAA,MAAA5d,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAne,EAAAoe,QAAAR,YAAA5d,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAne,EAAAoe,QAAAR,MAAA,MAAA5d,EAAA2d,UAAA,CAAA3d,EAAAme,KAAA,EAAA,IAAAP,WAAA,CAAA,GAAA,mBAAA5d,EAAAoe,MAAA,MAAA,IAAAzmB,MAAA,+BAAAqI,EAAA2d,UAAA,CAAA3d,EAAAoe,QAAAR,MAAA,MAAA5d,EAAA2d,eAAA,GAAAC,MAAA,EAAAY,GAAAxB,WAAA,UAAA,IAAA+B,GAAA,SAAA/e,GAAA,QAAA,IAAAA,EAAAue,MAAA,YAAAve,EAAA2d,UAAA3d,EAAAme,MAAAP,OAAA,GAAA5d,EAAAgf,QAAApb,MAAAC,QAAA7D,EAAAue,OAAAve,EAAAgf,OAAA,OAAA,MAAAC,EAAAjf,EAAAue,MAAA,GAAA,IAAAU,EAAAxpB,OAAA,GAAA,IAAAwpB,EAAAxpB,OAAA,IAAAwpB,EAAAxpB,QAAA,IAAAwpB,EAAA,IAAAjf,EAAA2d,eAAA,GAAAC,WAAA,CAAA,GAAA5d,EAAAme,gBAAAW,OAAA,CAAA,MAAAI,EAAA,uBAAApX,KAAAmX,EAAA,IAAA,GAAAC,EAAA,YAAAlf,EAAA2d,UAAA,IAAAmB,OAAAI,EAAA,GAAAA,EAAA,KAAAtB,MAAA,CAAA5d,EAAA2d,UAAAsB,EAAA,IAAArB,MAAA,MAAA5d,EAAA2d,UAAAsB,EAAA,IAAArB,MAAA,EAAAmB,GAAA/B,WAAA,UAAA,IAAAmC,GAAAnf,IAAA,IAAAA,IAAAA,EAAAie,SAAA,OAAA,MAAAxoB,EAAAuK,EAAAie,SAAAxoB,OAAA,IAAAooB,EAAAzM,EAAApR,EAAAoR,OAAA,IAAA,IAAA2L,EAAA,EAAAA,EAAAtnB,EAAAsnB,IAAAc,EAAA7d,EAAAie,SAAAlB,QAAA,IAAAc,EAAAzM,SAAAA,EAAAA,GAAA,CAAA,EAAAA,EAAAyM,EAAAE,WAAAF,EAAAzM,QAAAA,GAAApR,EAAA2e,cAAAvN,EAAAgO,GAAA,KAAApf,EAAA2d,UAAAvM,GAAAwM,QAAAuB,GAAAnC,WAAA,kBAAA,IAAAqC,GAAArf,IAAA,GAAAA,EAAA2e,aAAA,WAAA3e,EAAAye,SAAA,OAAA,MAAAN,EAAAne,EAAAme,KAAAC,EAAApe,EAAAoe,MAAA,IAAA5nB,EAAAqnB,EAAA,MAAAyB,EAAAtf,EAAApB,QAAA0gB,eAAA,IAAA9oB,KAAA2nB,EAAA1rB,OAAAS,UAAAC,eAAAa,KAAAmqB,EAAA3nB,KAAA8oB,IAAAA,EAAA9oB,EAAAwJ,KAAA6d,EAAA,IAAAK,GAAAC,EAAA3nB,GAAA4nB,EAAA5nB,IAAAwJ,EAAA7E,KAAA0iB,EAAArnB,KAAA,IAAAA,KAAA4nB,EAAA3rB,OAAAS,UAAAC,eAAAa,KAAAoqB,EAAA5nB,KAAA8oB,IAAAA,EAAA9oB,EAAAwJ,SAAA,IAAAme,EAAA3nB,KAAAqnB,EAAA,IAAAK,QAAA,EAAAE,EAAA5nB,IAAAwJ,EAAA7E,KAAA0iB,EAAArnB,KAAAwJ,EAAAie,UAAA,IAAAje,EAAAie,SAAAxoB,OAAAuK,EAAA4d,OAAA5d,EAAA2d,eAAA,GAAAC,QAAAyB,GAAArC,WAAA,UAAA,IAAAuC,GAAA,SAAAvf,GAAA,IAAAA,EAAAgf,OAAA,OAAA,MAAAQ,EAAAxf,EAAAue,MAAA,GAAAiB,EAAAJ,GAAA,OAAA,MAAAK,EAAAD,EAAA,IAAAhpB,EAAAqnB,EAAA,IAAArnB,KAAAipB,EAAA5B,EAAA,IAAAS,GAAAte,EAAAme,KAAA3nB,GAAAipB,EAAAjpB,IAAAwJ,EAAA7E,KAAA0iB,EAAArnB,GAAAwJ,EAAA4d,MAAA,EAAA2B,GAAAvC,WAAA,UAAA,IAAA0C,GAAA,SAAA1f,GAAA,IAAAA,IAAAA,EAAAie,SAAA,OAAA,GAAAje,EAAAue,MAAAa,GAAA,OAAA,MAAAlP,EAAAlQ,EAAAme,KAAA1oB,EAAAuK,EAAAie,SAAAxoB,OAAA,IAAAooB,EAAA,IAAA,IAAAd,EAAA,EAAAA,EAAAtnB,EAAAsnB,IAAA,CAAAc,EAAA7d,EAAAie,SAAAlB,GAAA,MAAA4C,EAAA9B,EAAAE,UAAAtrB,OAAAS,UAAAC,eAAAa,KAAAgM,EAAAme,KAAAwB,SAAA,IAAA9B,EAAAzM,cAAAlB,EAAAyP,GAAAzP,EAAAyP,KAAA9B,EAAAzM,SAAAlB,EAAAyP,GAAA9B,EAAAzM,OAAA,CAAApR,EAAA2d,UAAAzN,GAAA0N,MAAA,EAAA8B,GAAA1C,WAAA,kBAAA,IAAA4C,GAAA,SAAA5f,GAAAA,EAAAme,gBAAAhU,MAAAnK,EAAAoe,iBAAAjU,KAAAnK,EAAAme,KAAA/T,YAAApK,EAAAoe,MAAAhU,UAAApK,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAne,EAAAoe,QAAApe,EAAA2d,eAAA,GAAA3d,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAne,EAAAoe,QAAApe,EAAA4d,QAAA5d,EAAAoe,iBAAAjU,MAAAnK,EAAA2d,UAAA,CAAA3d,EAAAme,KAAAne,EAAAoe,QAAAR,MAAA,EAAAgC,GAAA5C,WAAA,QAAA,IAAA6C,GAAA,MAAA,WAAAlxB,CAAAiQ,GAAA7P,KAAAytB,UAAA,IAAAL,GAAAvd,GAAA7P,KAAAytB,UAAAF,KAAA,IAAAO,GAAA,QAAA7rB,OAAAmuB,GAAAX,GAAAoB,GAAAP,IAAA9B,oBAAAxuB,KAAAytB,UAAAF,KAAA,IAAAO,GAAA,SAAA7rB,OAAA0uB,GAAAX,GAAAQ,IAAAhC,mBAAA,CAAA,OAAA3e,CAAAA,GAAA,OAAA7P,KAAAytB,UAAA5d,QAAAA,EAAA,CAAA,IAAAkhB,CAAA3B,EAAAC,GAAA,OAAArvB,KAAAytB,UAAA5mB,QAAA,IAAAsoB,GAAAC,EAAAC,GAAA,CAAA,KAAA2B,CAAA5B,EAAAI,GAAA,OAAAxvB,KAAAytB,UAAA5mB,QAAA,IAAA0oB,GAAAH,EAAAI,GAAA,GAAA,IAAA3f,GAAAkhB,GAAA,IAAAD,GAAAjhB,IAAAohB,GAAA,CAAAC,cAAA,EAAAlL,UAAA,EAAA3L,OAAA,EAAAsM,WAAA,EAAAV,YAAA,EAAA4B,kBAAA,EAAAsJ,YAAA,CAAA,EAAAC,cAAA,CAAA,EAAAC,aAAA,EAAAC,oBAAA,EAAAjL,SAAA,EAAAkL,gBAAA,EAAAC,YAAA,MAAAC,sBAAA,CAAA,EAAApJ,QAAA,CAAAG,UAAA,EAAAM,gBAAA,EAAA4I,SAAA,OAAAC,kBAAA,CAAA,IAAA/L,GAAA,CAAAjF,EAAAiR,KAAA,IAAA,MAAAzuB,KAAAO,OAAAkL,KAAAqiB,IAAA,CAAA,MAAAxsB,EAAAmtB,EAAAzuB,GAAA,YAAAA,EAAA,iBAAAsB,EAAAkc,EAAA0H,QAAAxjB,GAAAA,GAAAK,GAAAL,GAAA,CAAA,EAAAosB,GAAA5I,SAAA,CAAAsJ,kBAAA9sB,GAAA,CAAA,EAAAosB,GAAA5I,QAAAsJ,qBAAAhR,EAAA0H,SAAA5jB,QAAA,IAAAA,KAAAmtB,EAAAxtB,eAAA,YAAAuc,EAAAvc,eAAA,aAAAuc,EAAA0H,QAAAnjB,GAAAL,GAAA,CAAA,EAAAosB,GAAA5I,SAAA,CAAAsJ,kBAAA9sB,GAAA,CAAA,EAAAosB,GAAA5I,QAAAsJ,4BAAA,IAAAltB,GAAAmtB,EAAAxtB,eAAAjB,IAAAwd,EAAAvc,eAAAjB,KAAAwd,EAAAxd,GAAA8tB,GAAA9tB,IAAAwd,EAAAxd,GAAAsB,CAAA,GAAA,SAAAotB,GAAA1uB,GAAA,MAAAsE,EAAAtE,EAAA+U,UAAA,GAAA,MAAA,aAAAzQ,EAAA,OAAAA,CAAA,CAAA,SAAAqqB,GAAApP,GAAA,OAAAhf,OAAAof,QAAAJ,GAAAlN,OAAA,EAAArS,KAAA,IAAAA,EAAAmJ,QAAA,SAAAY,OAAA,CAAA6kB,GAAA5uB,EAAAsB,KAAAS,GAAAL,GAAA,CAAA,EAAAktB,GAAA,CAAA,CAAAF,GAAA1uB,IAAAsB,IAAA,CAAA,EAAA,CAAA,SAAAutB,GAAA9lB,EAAA+lB,GAAA,IAAA,OAAA/lB,GAAA,CAAA,MAAArG,GAAA,OAAAosB,CAAA,CAAA,CAAA,SAAAC,GAAAhwB,GAAA,IAAAyoB,EAAAzoB,EAAAwN,QAAA,iBAAA,iBAAAib,IAAAA,EAAAqH,GAAA,IAAAzf,KAAA6F,MAAAuS,GAAA,CAAA,KAAA,iBAAAA,GAAA,OAAAA,GAAA9V,MAAAC,QAAA6V,MAAAA,EAAA,CAAA,GAAA,IAAAwH,EAAAjwB,EAAAwN,QAAA,kBAAA,MAAA,iBAAAyiB,IAAAA,EAAAH,GAAA,IAAAzf,KAAA6F,MAAA+Z,GAAA,CAAA,KAAA,iBAAAA,GAAA,OAAAA,GAAAtd,MAAAC,QAAAqd,MAAAA,EAAA,CAAA,GAAAttB,GAAAA,GAAA,CAAA,EAAAstB,GAAA,CAAA,GAAAxH,GAAA,CAAA,EAAA,CAAA,SAAAyH,GAAA3qB,GAAA,IAAAya,EAAA,MAAAiL,EAAA,KAAA3rB,SAAA6d,SAAA5Y,MAAA,KAAAgB,MAAA,OAAA,IAAA0lB,EAAAzmB,OAAA,OAAAwb,EAAAiL,EAAAkF,YAAA,EAAAnQ,EAAAzb,MAAA,KAAA6rB,aAAA,CAAA,CAAA,SAAAC,GAAAlB,EAAAmB,GAAA,MAAApB,EAAAvsB,GAAA,CAAA4tB,IAAA,OAAAC,IAAA,QAAAF,GAAAG,EAAAjvB,OAAAof,QAAAsO,GAAAlkB,OAAA,CAAA6kB,GAAA5uB,EAAAyvB,MAAAb,EAAA5uB,GAAAkuB,EAAAe,UAAAQ,GAAAb,GAAA,CAAA,GAAA,OAAAltB,GAAAA,GAAA,CAAA,EAAA8tB,GAAA,SAAAtB,GAAA,IAAAnP,EAAA,MAAA2Q,EAAAxB,EAAAyB,aAAAC,EAAA,OAAA7Q,EAAA2Q,EAAA,UAAA,EAAA3Q,EAAAzb,MAAA,KAAAU,OAAA,GAAAsM,KAAA,KAAAuf,EAAAtvB,OAAAof,QAAA+P,GAAArd,OAAA,EAAArS,KAAAA,EAAAmf,WAAA,SAAA2Q,EAAAD,EAAAtsB,OAAA,EAAAhD,OAAAwvB,YAAAF,EAAA3lB,IAAA,EAAAlK,EAAAsB,MAAA,MAAAyV,EAAA,SAAAiZ,GAAA,GAAA,iBAAAA,EAAA,OAAA,GAAAA,EAAA7Q,WAAA,QAAA6Q,EAAA7Q,WAAA,OAAA,OAAA6Q,EAAA1sB,MAAA,KAAA,GAAA,CAAA,MAAAsI,EAAAokB,EAAApkB,MAAA,+CAAA,OAAAA,EAAAA,EAAA,QAAA,CAAA,CAAA,CAAAqkB,CAAA3uB,GAAA,OAAAyV,EAAA,CAAA/W,EAAA+U,UAAA,GAAAgC,GAAA,OAAA1E,OAAAhE,GAAA,OAAAA,SAAA,EAAA,OAAAuhB,GAAAE,EAAA,CAAAI,IAAA,CAAAN,WAAAE,oBAAA,CAAA,CAAAK,CAAAjC,GAAA,CAAA,SAAAkC,GAAA9rB,GAAAsgB,OAAAA,EAAAyL,OAAAA,IAAAhyB,SAAA6d,OAAA5X,EAAA,YAAAsgB,EAAA,2DAAAyL,EAAA,OAAA,QAAAA,EAAA,UAAA,GAAA,CAAA,SAAAC,GAAAhsB,EAAAkjB,GAAA5C,OAAAA,EAAAyL,OAAAA,IAAAhyB,SAAA6d,OAAA5X,EAAA,IAAAkjB,EAAA,WAAA5C,EAAA,mBAAA,IAAA3M,MAAA,IAAAA,MAAAC,UAAA,SAAAkE,cAAA,cAAAiU,EAAA,OAAA,QAAAA,EAAA,UAAA,GAAA,CAAA,IAAAE,GAAA,CAAAC,UAAA,cAAAC,UAAA,eAAAC,cAAA,kBAAAC,WAAA,aAAAC,eAAA,kBAAA,SAAAC,GAAAxQ,GAAA,MAAAyQ,EAAA9wB,IAAA,IAAA+e,EAAAC,EAAAuE,EAAAiC,EAAAC,EAAA,OAAAzlB,GAAA,IAAA,YAAA,OAAA,OAAA+e,EAAAsB,EAAA2N,kBAAA,EAAAjP,EAAAxT,cAAAglB,GAAAC,UAAA,IAAA,YAAA,OAAA,OAAAxR,EAAAqB,EAAA2N,kBAAA,EAAAhP,EAAA1T,SAAAilB,GAAAE,UAAA,IAAA,gBAAA,OAAA,OAAAlN,EAAAlD,EAAA2N,kBAAA,EAAAzK,EAAAwN,aAAAR,GAAAG,cAAA,IAAA,aAAA,OAAA,OAAAlL,EAAAnF,EAAA2N,kBAAA,EAAAxI,EAAAtB,UAAAqM,GAAAI,WAAA,IAAA,iBAAA,OAAA,OAAAlL,EAAApF,EAAA2N,kBAAA,EAAAvI,EAAAuL,cAAAT,GAAAK,eAAA,QAAA,OAAA5wB,IAAA,MAAA,CAAA,SAAAivB,CAAA3qB,GAAA,IAAAya,EAAA,MAAAiL,EAAA,KAAA3rB,SAAA6d,SAAA5Y,MAAA,KAAAgB,MAAA,OAAA,IAAA0lB,EAAAzmB,OAAA,OAAAwb,EAAAiL,EAAAkF,YAAA,EAAAnQ,EAAAzb,MAAA,KAAA6rB,aAAA,CAAA,EAAA,UAAAQ,GAAA,MAAAsB,EAAA,CAAA,EAAAC,EAAA,KAAA7yB,SAAA6d,SAAAiV,SAAA,kBAAA,IAAA,MAAAvlB,KAAAslB,EAAAD,EAAArlB,EAAA,IAAAA,EAAA,GAAA,OAAAqlB,CAAA,EAAAG,iBAAA,IAAA/sB,OAAAhG,SAAAgzB,aAAAC,eAAA,KAAA,IAAArZ,MAAAsZ,oBAAA,KAAA5jB,GAAA,OAAA+W,EAAArE,EAAAqE,cAAAC,GAAAtgB,OAAA2R,SAAA+T,UAAAyH,EAAAV,EAAA,CAAA,OAAA9oB,CAAAhI,EAAAwnB,GAAA,MAAAiI,EAAA+B,EAAAxxB,IAAAA,OAAA,IAAAwnB,EAAA8I,GAAAb,EAAA,iBAAAjI,GAAA,OAAAA,EAAArL,mBAAA/M,KAAAC,UAAAmY,IAAAA,EAAA,CAAA5C,OAAAF,EAAA2L,OAAA,WAAAhsB,OAAA2R,SAAAyb,WAAArB,GAAAX,EAAA,CAAA7K,OAAAF,EAAA2L,OAAA,WAAAhsB,OAAA2R,SAAAyb,UAAA,EAAA,OAAAllB,CAAAvM,GAAA,MAAAkf,EAAA+P,GAAAuC,EAAAxxB,IAAAA,GAAA,GAAA,cAAAA,EAAA,OAAAkf,EAAA,QAAA,IAAAA,GAAA,cAAAlf,EAAA,CAAA,MAAAwL,EAAAyJ,GAAAga,GAAAuC,EAAA,kBAAA,qBAAA,CAAA,EAAA,OAAAhmB,EAAAkmB,aAAAlmB,EAAA6Y,SAAA7Y,EAAAtM,IAAAsM,EAAAF,MAAA,CAAA,OAAA2J,GAAAiK,EAAA,EAAA,UAAAjX,CAAAjI,GAAAowB,GAAAoB,EAAAxxB,IAAAA,EAAA,CAAA4kB,OAAAF,EAAA2L,OAAA,WAAAhsB,OAAA2R,SAAAyb,UAAA,EAAA,KAAAplB,GAAA,IAAA,MAAArM,KAAAO,OAAAkL,KAAA8kB,IAAAH,GAAAoB,EAAAxxB,IAAAA,EAAA,CAAA4kB,OAAAF,EAAA2L,OAAA,WAAAhsB,OAAA2R,SAAAyb,UAAA,GAAA,IAAA/M,EAAA8M,CAAA,EAAAG,SAAA,IAAAttB,OAAAE,UAAAotB,SAAAC,UAAA,IAAAvtB,OAAAhG,SAAAyX,MAAA+b,QAAA,IAAAxtB,OAAA2R,SAAAO,KAAAR,SAAA,IAAA1R,OAAAhG,SAAA0X,SAAA+b,OAAA,KAAA,CAAArb,MAAApS,OAAAytB,OAAArb,MAAAC,OAAArS,OAAAytB,OAAApb,OAAAT,WAAA5R,OAAA4R,WAAAC,YAAA7R,OAAA6R,YAAA6b,QAAAhrB,KAAAirB,MAAA3tB,OAAA4tB,oBAAAztB,UAAA,IAAAH,OAAAE,UAAAC,UAAA,CAAA,SAAAwkB,GAAA9R,GAAA,MAAAnY,EAAA,CAAA,EAAA,MAAA,CAAA,KAAAsN,GAAA9L,OAAAkL,KAAA1M,GAAAO,QAAAU,UAAAjB,EAAAiB,GAAA,EAAA,OAAAgI,CAAAhI,EAAAwnB,GAAAtQ,GAAAuJ,QAAAe,IAAA,0CAAAxhB,KAAAoP,KAAAC,UAAAmY,WAAA,IAAAA,SAAAzoB,EAAAiB,GAAAjB,EAAAiB,GAAAwnB,CAAA,EAAA,OAAAjb,CAAAvM,GAAA,MAAAwnB,EAAAzoB,EAAAiB,GAAA,OAAAkX,GAAAuJ,QAAAe,IAAA,0CAAAxhB,KAAAoP,KAAAC,UAAAmY,MAAAA,CAAA,EAAA,UAAAvf,CAAAjI,GAAAkX,GAAAuJ,QAAAe,IAAA,0CAAAxhB,KAAAjB,EAAAiB,aAAAjB,EAAAiB,EAAA,EAAA,CAAA,IAAAkyB,GAAA50B,IAAA,CAAA,gBAAA8zB,GAAA,EAAA,cAAAE,GAAA,EAAA,SAAArC,CAAA3qB,GAAA,EAAAqrB,WAAA,KAAA,CAAA,GAAAhiB,MAAA,IAAAqb,GAAA1rB,EAAA4Z,OAAA,QAAAya,GAAA,EAAA,SAAAC,GAAA,EAAA,OAAAC,GAAA,EAAA,QAAA9b,GAAA,EAAA,MAAA+b,GAAA,EAAA,SAAAttB,GAAA,IAAA,SAAA2tB,GAAAtrB,GAAA,MAAA,iBAAAA,EAAAA,EAAAA,EAAAuI,KAAA6F,MAAA7F,KAAAC,UAAAxI,IAAAA,CAAA,CAAA,SAAAurB,GAAAtyB,EAAAwe,GAAA,MAAA,iBAAAA,GAAA,OAAAA,GAAA5M,MAAAC,QAAA2M,IAAAA,aAAArG,MAAA,iBAAAnY,GAAA,OAAAA,GAAA4R,MAAAC,QAAA7R,IAAAA,aAAAmY,KAAAqG,EAAA/d,OAAAof,QAAArB,GAAAvU,OAAA,CAAA6kB,GAAA5uB,EAAAsB,MAAAstB,EAAA5uB,GAAAoyB,GAAAtyB,EAAAE,GAAAsB,GAAAstB,GAAA9uB,EAAA,CAAA,SAAAwgB,KAAA,MAAA,oBAAAjiB,UAAA,oBAAAgG,MAAA,CAAA,IAAAguB,GAAA,OAAA,SAAAC,KAAA,IAAAhS,KAAA,OAAA,MAAAiS,EAAA,WAAA,IAAAjS,KAAA,OAAA,MAAAkS,EAAAn0B,SAAAgY,qBAAA,QAAA,IAAA,IAAAnZ,EAAA0L,EAAA,EAAA1L,EAAAs1B,EAAA5pB,GAAAA,IAAA,GAAA,cAAA1L,EAAAoZ,aAAA,OAAA,OAAApZ,EAAAoZ,aAAA,OAAA,CAAAmc,GAAA,OAAAF,EAAAA,EAAA3mB,MAAA,MAAA2mB,EAAAA,EAAAluB,OAAA2R,SAAAI,OAAA/R,OAAA2R,SAAAO,KAAA7P,QAAA2rB,GAAA,GAAA,CAAA,SAAAK,GAAAjjB,EAAAnS,EAAAyB,EAAAmkB,GAAA,IAAAnE,EAAAC,EAAAuE,EAAAiC,EAAAC,EAAAC,EAAAjC,EAAAkP,EAAA9M,EAAA+M,EAAAlP,EAAAmP,EAAAlP,EAAAmP,EAAAC,EAAA,MAAA7E,EAAA5wB,EAAA4wB,UAAA5N,KAAAuQ,GAAAvzB,GAAA40B,GAAA50B,IAAAF,EAAA8wB,EAAA2D,UAAAmB,EAAA51B,EAAAyxB,GAAA,IAAA,IAAAoE,IAAA71B,QAAA,QAAA,EAAAmiB,EAAAyT,EAAAE,KAAA,IAAAA,EAAA,MAAA,CAAA,EAAA,IAAAC,EAAAD,EAAA3vB,OAAA,GAAA,MAAA2vB,EAAAnvB,OAAA,GAAAmvB,EAAAne,UAAA,GAAAme,EAAA3T,EAAA,CAAA,EAAA6T,GAAA,MAAAD,EAAA,GAAAA,EAAAE,OAAA,GAAAF,GAAA7vB,MAAA,KAAA,IAAA,IAAAsF,EAAA,EAAAA,EAAAwqB,EAAA7vB,OAAAqF,IAAA,CAAA,IAAA0qB,EAAAF,EAAAxqB,GAAAtF,MAAA,KAAAic,EAAA9Y,mBAAA6sB,EAAA,KAAA7sB,mBAAA6sB,EAAA,IAAA,GAAA,CAAA,OAAA/T,GAAAgU,CAAAP,EAAA5c,QAAA,CAAA,EAAAd,EAAA7F,EAAA6F,YAAA,CAAA,EAAA,GAAA,SAAA7F,EAAAnG,OAAAgM,EAAAlY,KAAAA,GAAA,CAAA,IAAAo2B,EAAAp2B,GAAAkY,EAAAlY,IAAAkY,EAAAlY,KAAAkY,EAAAlY,MAAAk1B,OAAAkB,EAAAle,EAAAlY,KAAAkY,EAAAlY,IAAAo2B,EAAA9sB,QAAA2rB,GAAA,IAAA/c,EAAAkB,MAAAA,EAAA,SAAApZ,GAAA,MAAA8zB,EAAA,oCAAAtb,KAAAxY,GAAA,MAAA,KAAA8zB,GAAAA,EAAA,GAAAA,EAAA,GAAA5tB,MAAA,KAAA,GAAAoD,QAAA2rB,GAAA,IAAA,GAAA,CAAAoB,CAAAD,GAAA,IAAAhd,EAAArN,QAAA,OAAA,IAAAqN,EAAAkd,YAAA,KAAA,IAAAld,EAAA,CAAA,IAAAA,EAAA,MAAAmd,EAAAvB,GAAA90B,EAAAgxB,uBAAA,OAAAvP,EAAAtP,EAAA6F,iBAAA,EAAAyJ,EAAAjR,WAAA,OAAAkR,EAAAvP,EAAA/C,cAAA,EAAAsS,EAAAlR,UAAA,CAAA,GAAA,OAAAyV,EAAA9T,EAAA6F,oBAAAiO,EAAAzV,QAAA,MAAAiI,EAAAmY,EAAAnY,WAAAjI,EAAA,CAAAuJ,QAAA,CAAA/S,KAxGuBA,YAwGvB2S,QA7GS,SA6GTtT,IAAA2c,KAAA,UAAA,QAAAsT,QAAA,iBAAA,OAAApO,EAAAloB,EAAA4nB,cAAA,EAAAM,EAAAgJ,oBAAAjuB,OAAAkL,KAAA,OAAAga,EAAAnoB,EAAA4nB,cAAA,EAAAO,EAAA+I,mBAAAjrB,OAAA,CAAAswB,oBAAAv2B,EAAA4nB,QAAAsJ,wBAAA,EAAAhqB,UAAA,OAAAkhB,EAAAwI,EAAA1pB,gBAAA,EAAAkhB,EAAA5jB,KAAAosB,GAAA3W,OAAA,OAAAkM,EAAAyK,EAAAyD,eAAA,EAAAlO,EAAA3hB,KAAAosB,GAAA4D,OAAA,OAAAa,EAAAzE,EAAA4D,aAAA,EAAAa,EAAA7wB,KAAAosB,GAAA4F,GAAA,OAAAjO,EAAA,MAAAqI,OAAA,EAAAA,EAAA4F,SAAA,EAAAjO,EAAA/jB,KAAAosB,GAAA1iB,OAAA,YAAAiE,EAAAnG,MAAA,SAAAmG,EAAAnG,KAAA5H,GAAAA,GAAA,CAAA,EAAAqtB,GAAAhwB,IAAA,CAAA,IAAA,OAAA6zB,EAAA,MAAAnjB,OAAA,EAAAA,EAAA/C,cAAA,EAAAkmB,EAAApnB,SAAA,CAAA,QAAA,EAAAqL,KAAA,CAAAL,KAAAlB,EAAAkB,MAAAwc,GAAAA,EAAAe,SAAAhe,WAAAie,iBAAAnF,GAAA,IAAA9Y,GAAA,IAAAkd,IAAAld,GAAAgU,UAAAlH,KAAAmQ,GAAAA,EAAAnQ,KAAAzM,OAAAd,EAAAc,QAAA4c,GAAAA,EAAA5c,OAAAN,MAAAR,EAAAQ,OAAAoY,EAAA0D,YAAAx0B,IAAAkY,EAAAlY,KAAAA,EAAA62B,SAAA3e,EAAA2e,UAAA/F,EAAAkD,oBAAA5B,WAAA,OAAA9L,EAAApmB,EAAA4nB,cAAA,EAAAxB,EAAAiC,qBAAA,EAAAyJ,GAAAlB,EAAA5wB,EAAA2wB,eAAA,CAAA,GAAApiB,SAAA8iB,GAAApP,IAAA2U,EAAAnyB,GAAAL,GAAA,CAAA,EAAA+N,GAAA,CAAAnE,QAAA,OAAAunB,EAAA,MAAApjB,OAAA,EAAAA,EAAA/C,cAAA,EAAAmmB,EAAAvnB,UAAA,MAAAmE,OAAA,EAAAA,EAAAnE,QAAAC,aAAA,OAAAoY,EAAA,MAAAlU,OAAA,EAAAA,EAAA/C,cAAA,EAAAiX,EAAApY,eAAA,MAAAkE,OAAA,EAAAA,EAAAlE,aAAA2Y,SAAA,OAAA4O,EAAA,MAAArjB,OAAA,EAAAA,EAAA/C,cAAA,EAAAomB,EAAA5O,UAAAnlB,EAAAwN,QAAA,cAAA4nB,WAAA,IAAAlc,MAAAmc,cAAAC,QAAA,IAAApc,MAAAmc,cAAAE,UAAA/T,GAAAjL,EAAAkB,MAAAwc,GAAAA,EAAAe,UAAAhG,SAAAwG,GAAAj3B,EAAAywB,UAAAjgB,QAAAskB,GAAAtkB,EAAA6lB,KAAA,cAAAO,EAAAjiB,YAAAiiB,EAAAxnB,SAAA,OAAAqmB,EAAAz1B,EAAA4nB,cAAA,EAAA6N,EAAApN,yBAAAuO,EAAA5oB,cAAA4oB,EAAA3oB,mBAAA2oB,EAAApmB,QAAAtC,cAAA0oB,EAAAhQ,SAAAgQ,CAAA,CAAA,SAAAM,GAAAnzB,GAAA,MAAAoK,EAAAlL,OAAAkL,KAAApK,GAAA,OAAA,IAAAoK,EAAAlI,QAAA,WAAAkI,EAAA,EAAA,CAAA,SAAA8oB,GAAAxG,GAAA,GAAAA,EAAA,CAAA,MAAA7uB,EAAAu1B,GAAA1G,EAAAzqB,MAAA,IAAA,GAAA,OAAAmxB,EAAA,GAAAv1B,QAAA,KAAA,CAAA,OAAA6uB,CAAA,CAAA,SAAAnN,GAAAP,GAAA,MAAAqU,EAAArU,EAAAgO,aAAA,MAAA,MAAA,mBAAAqG,EAAAA,EAAA,YAAAA,EAAA,CAAA3R,KAAAkC,KAAA,MAAA,IAAAxf,MAAAsd,IAAA,CAAAA,KAAAkC,KAAAxE,QAAAC,MAAAqC,KAAAkC,GAAA,CAAA,SAAAM,GAAArV,EAAAT,EAAAoR,EAAAtT,EAAAI,EAAAgT,GAAA,OAAA3e,GAAAnF,KAAA,KAAA,YAAA,IAAAkiB,EAAAC,EAAA,MAAAkE,IAAArC,EAAAqC,IAAAyR,EAAA9T,EAAA3J,MAAA,CAAA,iBAAA,QAAA,CAAA,EAAAmM,EAAAqP,GAAAjjB,EAAAoR,EAAAlT,GAAA,GAAAkT,EAAAiC,WAAA,YAAArC,QAAAe,IAAA,0BAAAtR,YAAAmT,GAAA,MAAAjmB,EAAA8lB,EAAA,GAAArC,EAAAgC,kBAAA3S,IAAA,GAAA2Q,EAAAgC,cAAA3S,IAAAsT,EAAA3C,EAAA2C,OAAAxB,WAAAwB,MAAA,IAAAA,EAAA,MAAA,IAAA/d,MAAA,uGAAA,MAAAmvB,EAAA/T,EAAAsN,eAAA,IAAAtK,qBAAA,EAAAgR,EAAAhU,EAAAsN,eAAAniB,WAAA,KAAA,MAAA4oB,GAAAA,EAAAznB,SAAA0T,EAAAsN,qBAAA,EAAA2G,EAAAjU,EAAAkN,SAAA,CAAA,cAAAlN,EAAAkN,UAAA,CAAA,EAAAgH,OAAA,KAAA,OAAAhW,EAAA8B,EAAAqE,cAAA,EAAAnG,EAAAwP,WAAA,UAAA,OAAAvP,EAAA6B,EAAAqE,cAAA,EAAAlG,EAAAuP,UAAA,CAAA,EAAA,CAAA,cAAA1N,EAAAqE,QAAAqJ,UAAA,IAAAtN,EAAAgB,IAAA,IAAAhB,QAAAuC,EAAApmB,EAAA,CAAA8S,OAAA,OAAA8kB,QAAAtzB,GAAAA,GAAAA,GAAA,CAAA,eAAA,oBAAAozB,GAAAH,GAAAI,GAAAz2B,KAAA8Q,KAAAC,UAAAgU,GAAAwB,OAAA,MAAA+P,OAAA,EAAAA,EAAA/P,SAAAgQ,GAAAI,aAAAJ,EAAA,CAAA,MAAAnyB,GAAA,OAAAie,EAAAoC,GAAAtC,QAAA9hB,KAAAokB,GAAAnC,GAAAC,IAAA,WAAAzjB,uBAAAsF,EAAAgD,WAAAtD,QAAAC,SAAA,CAAA,IAAA4f,QAAAhB,EAAAM,MAAA,CAAA,MAAA7e,GAAA+d,QAAA9hB,KAAA,iCAAAvB,eAAA6jB,EAAApC,WAAAoC,EAAAC,gBAAA,MAAAxe,OAAA,EAAAA,EAAAgD,UAAA,IAAAmb,EAAA3J,OAAAuJ,QAAAe,IAAA,iBAAApkB,aAAA6jB,EAAApC,WAAAoD,6tBAAA,SAAAe,EAAA9S,EAAAglB,EAAAhe,EAAAie,GAAA,OAAAnzB,GAAAnF,KAAA,KAAA,YAAA,MAAAu4B,EAAA,GAAA,IAAA,MAAAC,KAAArS,EAAA,CAAA,IAAAsS,EAAA,GAAA,GAAAD,EAAAC,UAAA,IAAAA,EAAAD,EAAAC,UAAAprB,IAAAxH,GAAA,SAAAA,EAAAyvB,GAAA+C,GAAAV,GAAA9xB,GAAAkrB,GAAAC,MAAAsE,GAAA+C,GAAAxyB,EAAA6yB,QAAA7yB,EAAA,CAAA,MAAAA,GAAA+d,QAAAC,MAAA,2BAAA2U,EAAAn2B,yBAAA,MAAAwD,OAAA,EAAAA,EAAAgD,UAAAhD,EAAA,MAAA4yB,EAAA,CAAAnD,GAAA+C,IAAA,MAAAM,EAAA9zB,GAAAA,GAAA,CAAA,EAAA2zB,EAAAG,aAAAH,EAAA3oB,SAAA,GAAA,oBAAA2oB,EAAAI,cAAAnsB,KAAA,CAAA,MAAAyH,EAAA2kB,GAAAL,EAAAI,cAAAnxB,MAAA,GAAAyM,EAAA,IAAA,MAAApU,KAAA24B,EAAA,IAAAF,EAAAnsB,KAAA8H,EAAAmP,OAAAne,GAAAL,GAAA,CAAA,EAAA8zB,GAAA,CAAAte,UAAAva,GAAA,CAAA,MAAA+F,GAAA+d,QAAA9hB,KAAA,wDAAA02B,EAAAI,cAAAnxB,UAAA,MAAA5B,OAAA,EAAAA,EAAAgD,UAAAhD,EAAA,MAAA+d,QAAA9hB,KAAA,oCAAA02B,EAAAI,cAAAnxB,0BAAA+wB,EAAAn2B,MAAA,MAAA,GAAA,qBAAAm2B,EAAAI,cAAAnsB,KAAA,OAAAiV,GAAA8W,EAAAI,cAAAE,YAAA,MAAA5kB,EAAA1M,OAAAgxB,EAAAI,cAAAG,eAAA,GAAA7kB,EAAA,CAAA,IAAA8kB,EAAA,IAAAA,GAAA,mBAAA9kB,EAAAA,EAAAA,EAAA+kB,MAAAN,EAAA,CAAA,MAAA9yB,GAAA+d,QAAA9hB,KAAA,kCAAA02B,EAAAI,cAAAG,iBAAAP,EAAAI,cAAAE,gCAAAN,EAAAn2B,QAAA,MAAAwD,OAAA,EAAAA,EAAAgD,UAAAhD,EAAA,CAAA,IAAAwU,GAAAuJ,QAAAe,IAAA,mBAAA6T,EAAAI,cAAAG,iBAAAP,EAAAI,cAAAE,gCAAAN,EAAAn2B,+BAAA22B,EAAAv4B,QAAAu4B,EAAAhhB,WAAA,CAAAvX,OAAAu4B,EAAAv4B,OAAAiQ,SAAA4nB,GAAA,CAAA,MAAAzyB,GAAA+d,QAAA9hB,KAAA,sCAAA02B,EAAAI,cAAAG,iBAAAP,EAAAI,cAAAE,gCAAAN,EAAAn2B,QAAA,MAAAwD,OAAA,EAAAA,EAAAgD,oBAAA0J,KAAAC,UAAAwmB,EAAAv4B,UAAAoF,GAAA,QAAA,CAAA,GAAAmzB,EAAA3lB,GAAA,IAAA,MAAAvT,KAAA24B,EAAA,IAAAO,EAAA3lB,GAAA,CAAAT,QAAA9S,EAAAW,OAAAu4B,EAAAv4B,OAAAiQ,SAAA4nB,GAAA,CAAA,MAAAzyB,GAAA+d,QAAA9hB,KAAA,4BAAAuR,oBAAAmlB,EAAAI,cAAAG,iBAAAP,EAAAI,cAAAE,gCAAAN,EAAAn2B,QAAA,MAAAwD,OAAA,EAAAA,EAAAgD,UAAAhD,EAAA,CAAA,MAAA+d,QAAA9hB,KAAA,0BAAA02B,EAAAI,cAAAE,gCAAAN,EAAAn2B,4BAAAm2B,EAAAI,cAAAG,0BAAA,CAAA,CAAA,EAAA,oeAAA,SAAA7H,GAAA,GAAAA,EAAA,CAAA,MAAA,CAAA0G,GAAA1G,EAAAzqB,MAAA,IAAA,GAAA,IAAAmxB,IAAA,MAAAv1B,EAAA6uB,GAAAxqB,QAAA,MAAArE,EAAA6E,OAAA,IAAA,MAAA,IAAA0B,MAAA,+BAAAsoB,0GAAA,CAAA,IAAA7uB,CAAA,6kJAr/D6B,WAAA,IAAAmhB,EAAA/Z,UAAA/C,OAAA,QAAA,IAAA+C,UAAA,GAAAA,UAAA,GAAA,CAAA,EAAA,OAAA6R,GAAAkG,GAAAA,GAAA,CAAA,EAAA,CAAAtf,QAAA2e,KAAA2C,GAAA,y6EAq/D7B,SAAAA,GAAA,IAAAtB,EAAA,IAAAuB,KAAA,OAAA,MAAAmP,GAAA,OAAA1Q,EAAAsB,EAAA2N,kBAAA,EAAAjP,EAAAxT,cAAAglB,GAAAC,UAAAuF,EAAA9G,GAAAQ,GAAA,GAAAsG,EAAA,OAAAA,EAAA,MAAA72B,EAAAwnB,KAAA9B,EAAAvE,EAAAqE,cAAAC,GAAAtgB,OAAA2R,SAAA+T,UAAAuG,GAAAb,EAAAvwB,EAAA,CAAA0lB,SAAAyL,OAAA,WAAAhsB,OAAA2R,SAAAyb,WAAApR,EAAAnJ,OAAAuJ,QAAAe,IAAA,kEAAAiO,MAAAvwB,gBAAA0lB,KAAA","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"twilight.min.js","sources":["../../src/lib/init-static-sections.js","../../node_modules/@salla.sa/analytics/node_modules/@jitsu/js/dist/jitsu.es.js"],"sourcesContent":["//todo:: remove all the usages of the document, we need it to be SSR friendly\nexport default class InitStaticSections {\n constructor() {\n Salla.event.on('twilight::before.ready', () => this.renderAll());\n }\n async renderAll() {\n // Register auto-mount first so hook listeners are attached before any await.\n // On first visit or after \"Clear site data\", component scripts may load before\n // lang/config settle; registering here ensures mount runs when the hook is ready.\n this.registerOrderSingleRatingPopupTrigger();\n this.registerWishlistNavIconMount();\n this.registerFreeShippingBannerMount();\n this.registerFreeShippingTagMount();\n Salla.hooks.renderAutoComponents([\n { hook: 'product:single.description', tag: 'salla-delivery-promise', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('delivery-promises'))},\n { hook: 'product:single.description', tag: 'salla-loyalty-banner', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('loyalty-system'))},\n { hook: 'product:single.description', tag: 'salla-loyalty-points-banner', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('loyalty-system'))},\n { hook: 'product:single.description', tag: 'salla-cashback-banner', canRender: () => Salla.url.is_page('product.single')},\n { hook: 'product:single.form.end', tag: 'salla-fulfillment-methods', canRender: () => (Salla.url.is_page('product.single') && Salla.config.get('store.features', []).includes('delivery-promises'))},\n { hook: 'body:end', tag: 'salla-cookies-bar', canRender: () => Salla.config.get('store.features')?.includes('website-cookies') },\n { hook: 'body:end', tag: 'salla-bullet-delivery', canRender: () => Salla.config.get('store.features')?.includes('bullet-delivery-v2') && Salla.config.get('store.settings.bullet_delivery.enabled') === true },\n { hook: 'product:single.description.end', tag: 'salla-bought-together', canRender: () => Salla.url.is_page('product.single') && Salla.config.get('store.settings.product.bought_together') },\n { hook: 'product:single.description.end', tag: 'salla-verified-review', canRender: () => Salla.url.is_page('product.single') },\n { hook: 'cart:items.end', tag: 'salla-basket-gap', canRender: () => Salla.url.is_page('cart') && Salla.config.get('store.settings.cart.basket_gap') },\n { hook: 'customer:wishlist.items.start', tag: 'salla-wishlist-actions', canRender: () => Salla.url.is_page('customer.wishlist') },\n { hook: 'product:index.items.start', tag: 'salla-applied-filters', canRender: () => Salla.url.is_page('product.index') && Salla.config.get('store.settings.product.filters') },\n { hook: 'customer:orders.single.details.start', tag: 'salla-order-cancel', canRender: () => Salla.url.is_page('customer.orders.single') },\n ]);\n\n await Salla.lang.onLoaded();\n this.renderAppInstall();\n this.renderEdit();\n this.applyContentCopyright();\n this.renderTemplateStore();\n\n if (!Salla.helpers.isIframe()) {\n this.renderMaintenance();\n this.renderThemePreview();\n }\n }\n\n registerOrderSingleRatingPopupTrigger() {\n if (this._orderSingleRatingPopupTriggerRegistered) {\n return;\n }\n this._orderSingleRatingPopupTriggerRegistered = true;\n\n Salla.hooks.registerHook('salla-hook', 'componentDidLoad', (component) => {\n // Check if the component is the order single details start\n if (component.name !== 'customer:orders.single.details.start') {\n return;\n }\n\n // Check if the current page is the order single page\n if (!Salla.url.is_page('customer.orders.single')) {\n return;\n }\n\n // Check if the show-rating-popup query parameter is set to true\n // NOTE: this will come from the email link generated from backend\n const showPopup = new URLSearchParams(window.location.search).get('show-rating-popup');\n if (showPopup !== 'true') {\n return;\n }\n\n // Once the rating component is ready, open the popup\n Salla.event.once('rating::ready', () => {\n Salla.event.dispatch('rating::open');\n\n // Strip the param only after the popup has been triggered, so a refresh\n // before the rating component loads still shows it, while refresh or\n // back/forward afterwards cannot re-trigger it.\n const url = new URL(window.location.href);\n url.searchParams.delete('show-rating-popup');\n window.history.replaceState(window.history.state, '', url.toString());\n });\n });\n }\n\n registerFreeShippingBannerMount() {\n if (this._freeShippingBannerMountRegistered) {\n return;\n }\n this._freeShippingBannerMountRegistered = true;\n\n // hook name -> where the banner is rendering; the banner uses it to request its data\n const placements = {\n 'index:start': 'home',\n 'product.single:start': 'product',\n };\n\n Salla.hooks.registerHook('salla-hook', 'componentDidLoad', (hook) => {\n const placement = placements[hook.name];\n if (!placement) {\n return;\n }\n\n const banner = document.createElement('salla-free-shipping-banner');\n banner.setAttribute('placement', placement);\n hook.mount(banner);\n });\n }\n\n registerFreeShippingTagMount() {\n if (this._freeShippingTagMountRegistered) {\n return;\n }\n this._freeShippingTagMountRegistered = true;\n\n Salla.hooks.registerHook('salla-hook', 'componentDidLoad', (hook) => {\n if (hook.name !== 'product:single.description' || !Salla.url.is_page('product.single')) {\n return;\n }\n\n const productId = Salla.config.get('page.id');\n if (!productId) {\n return;\n }\n\n const tag = document.createElement('salla-free-shipping-tag');\n tag.setAttribute('product-id', productId);\n hook.mount(tag);\n });\n }\n\n registerWishlistNavIconMount() {\n if (this._wishlistNavIconMountRegistered) {\n return;\n }\n this._wishlistNavIconMountRegistered = true;\n\n const mountWishlistIconFor = (userMenu) => {\n if (!userMenu) {\n return;\n }\n if (userMenu.hasAttribute('inline')) {\n return;\n }\n if (userMenu.nextElementSibling?.tagName === 'SALLA-WISHLIST-SUMMARY') {\n return;\n }\n if (salla.config.isGuest()) {\n return;\n }\n\n userMenu.insertAdjacentElement('afterend', document.createElement('salla-wishlist-summary'));\n };\n\n Salla.hooks.registerHook('salla-user-menu', 'componentDidLoad', (userMenuComponent) => {\n // The hook hands us the Stencil component instance, not the DOM element — the\n // element itself lives on its `host` property (`@Element() host: HTMLElement`).\n mountWishlistIconFor(userMenuComponent?.host);\n });\n\n // componentDidLoad above only fires once per salla-user-menu mount, but supported\n // auth flows (OTP verify, login modal, mobile bridge) can promote a guest to a\n // signed-in user in-page, without remounting salla-user-menu or reloading the\n // page. Re-run the same eligibility check against every mounted user-menu once\n // login completes, so the icon still appears without a refresh.\n Salla.event.on('auth::logged.in', () => {\n document.querySelectorAll('salla-user-menu').forEach(mountWishlistIconFor);\n });\n }\n\n renderMaintenance() {\n if (!Salla.config.get('maintenance')) {\n return;\n }\n\n document.body.classList.add('has-maintenance-bar');\n if (document.querySelector('salla-maintenance-alert')) {\n Salla.logger.warn('salla-maintenance-alert element Existed before!');\n return;\n }\n\n document.body.prepend(document.createElement('salla-maintenance-alert'));\n }\n\n renderTemplateStore() {\n if (!Salla.config.get('store.template')) {\n return;\n }\n\n document.body.classList.add('has-bottom-alert');\n if (document.querySelector('salla-bottom-alert')) {\n Salla.logger.warn('salla-bottom-alert element Existed before!');\n return;\n }\n\n document.body.append(document.createElement('salla-bottom-alert'));\n }\n\n renderAppInstall() {\n if (!Salla.config.get('store.app_install_prompt') || !Salla.config.get('store.apps') || Salla.storage.get('app_install_prompt_disabled') || Salla.config.isMobileApp()) {\n return;\n }\n\n document.body.classList.add('has-app-install-alert');\n if (document.querySelector('salla-app-install-alert')) {\n Salla.logger.warn('salla-app-install-alert element Existed before!');\n return;\n }\n\n document.body.append(document.createElement('salla-app-install-alert'));\n }\n renderThemePreview() {\n if (Salla.config.get('theme.mode') !== 'preview') {\n return;\n }\n document.body.classList.add('has-preview-bar');\n if (document.querySelector('#s-theme_preview_bar')) {\n Salla.logger.warn('#s-theme_preview_bar element Existed before!');\n return;\n }\n let alertElement = document.createElement('div');\n alertElement.id = 's-theme_preview_bar';\n alertElement.setAttribute('style', 'display: flex; justify-content: space-between; text-align: center; background-color: #232323; color: #fff; padding: 10px; font-size: 0.875rem; line-height: 1.25rem; position: relative;');\n alertElement.innerHTML = `\n <div style=\"display:flex; align-items:center;\">\n <img width=\"32\" src=\"https://cdn.salla.network/images/logo/logo-light.svg\">\n <span style=\"margin:0 10px;\">${Salla.lang.get('blocks.header.preview_mode')}: <span style=\"background:rgba(255,255,255,0.25);border-radius:15px; padding:2px 15px 4px\">${Salla.config.get('theme.name')}</span></span>\n </div>\n <a href=\"${Salla.url.get('preview_theme/cancel/preview')}\" style=\"line-height:32px; width:32px;\"><i class=\"sicon-cancel\"></i></a>\n `;\n document.body.prepend(alertElement);\n }\n\n /**\n * @deprecated\n */\n renderEdit() {\n let edit = Salla.config.get('edit');\n if (!edit) {\n return;\n }\n if (document.querySelector('#s-edit-alert')) {\n Salla.logger.warn('#s-edit-alert element Existed before!');\n return;\n }\n let alertElement = document.createElement('div');\n alertElement.id = 's-edit-alert';\n alertElement.innerHTML = `\n <a href=\"${edit}\" style=\"display:block; background-color:${Salla.config.get('theme.color.primary', '#5cd5c4')}; color:${Salla.config.get('theme.color.reverse', '#fff')}; padding: 10px; text-align:center; font-size: 0.875rem; line-height: 1.25rem;\">\n <i class=\"sicon-edit\"></i> \n ${Salla.lang.get('pages.products.quick_edit')}\n </a>\n `;\n document.body.prepend(alertElement);\n }\n\n applyContentCopyright() {\n if (!Salla.config.get('store.settings.content_copyright')) {\n return;\n }\n\n // Helper to check if element is an input\n const isInputElement = (element) => {\n if (!element) return false;\n const tagName = element.tagName?.toLowerCase();\n return tagName === 'input' || tagName === 'textarea';\n };\n\n // Common event prevention (excluding inputs)\n const preventEvents = ['contextmenu', 'selectstart', 'copy'];\n preventEvents.forEach((event) => {\n document.addEventListener(event, (e) => {\n if (!isInputElement(e.target)) {\n e.preventDefault();\n }\n });\n });\n\n // Prevent common dev tools shortcuts\n document.addEventListener('keydown', (e) => {\n const key = e.key.toLowerCase();\n const blockedCombos = (\n key === 'f12' ||\n (e.ctrlKey && e.shiftKey && ['i', 'j', 'c'].includes(key)) ||\n (e.ctrlKey && key === 'u')\n );\n if (blockedCombos) {\n e.preventDefault();\n e.stopPropagation();\n }\n });\n\n // Inject protection styles (excluding inputs)\n const style = document.createElement('style');\n style.textContent = `\n body {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n input, textarea {\n -webkit-touch-callout: auto;\n -webkit-user-select: auto;\n -moz-user-select: auto;\n -ms-user-select: auto;\n user-select: auto;\n }\n img {\n pointer-events: none;\n -webkit-user-drag: none;\n }\n `;\n document.head.appendChild(style);\n }\n}\n","function n$2(t,e,l,n,r){for(e=e.split?e.split(\".\"):e,n=0;n<e.length;n++)t=t?t[e[n]]:r;return t===r?l:t}\n\nvar e=\"undefined\",o$1=\"object\",b$3=\"any\",m$1=\"*\",j$1=\"__\",F$2=\"undefined\"!=typeof process?process:{};F$2.env&&F$2.env.NODE_ENV||\"\";var $$1=\"undefined\"!=typeof document;null!=F$2.versions&&null!=F$2.versions.node;\"undefined\"!=typeof Deno&&void 0!==Deno.core;$$1&&\"nodejs\"===window.name||\"undefined\"!=typeof navigator&&void 0!==navigator.userAgent&&(navigator.userAgent.includes(\"Node.js\")||navigator.userAgent.includes(\"jsdom\"));function M$1(n,t){return t.charAt(0)[n]()+t.slice(1)}var U$1=M$1.bind(null,\"toUpperCase\"),H$1=M$1.bind(null,\"toLowerCase\");function J$2(n){return Y$1(n)?U$1(\"null\"):\"object\"==typeof n?yn(n):Object.prototype.toString.call(n).slice(8,-1)}function R$1(n,t){void 0===t&&(t=!0);var e=J$2(n);return t?H$1(e):e}function V$1(n,t){return typeof t===n}var W$1=V$1.bind(null,\"function\"),q$1=V$1.bind(null,\"string\"),I$2=V$1.bind(null,\"undefined\");var Q$1=V$1.bind(null,\"boolean\");V$1.bind(null,\"symbol\");function Y$1(n){return null===n}function nn(n){return \"number\"===R$1(n)&&!isNaN(n)}function rn(n){return \"array\"===R$1(n)}function on(n){if(!un(n))return !1;for(var t=n;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(n)===t}function un(n){return n&&(\"object\"==typeof n||null!==n)}function yn(n){return W$1(n.constructor)?n.constructor.name:null}function hn(n){return n instanceof Error||q$1(n.message)&&n.constructor&&nn(n.constructor.stackTraceLimit)}function On(n,t){if(\"object\"!=typeof t||Y$1(t))return !1;if(t instanceof n)return !0;var e=R$1(new n(\"\"));if(hn(t))for(;t;){if(R$1(t)===e)return !0;t=Object.getPrototypeOf(t);}return !1}On.bind(null,TypeError);On.bind(null,SyntaxError);function $n(n,t){var e=n instanceof Element||n instanceof HTMLDocument;return e&&t?Tn(n,t):e}function Tn(n,t){return void 0===t&&(t=\"\"),n&&n.nodeName===t.toUpperCase()}function _n(n){var t=[].slice.call(arguments,1);return function(){return n.apply(void 0,[].slice.call(arguments).concat(t))}}_n($n,\"form\");_n($n,\"button\");_n($n,\"input\");_n($n,\"select\");\n\nfunction n$1(e){try{return decodeURIComponent(e.replace(/\\+/g,\" \"))}catch(e){return null}}function s(r){return function(e){for(var r,t=Object.create(null),o=/([^&=]+)=?([^&]*)/g;r=o.exec(e);){var a=n$1(r[1]),i=n$1(r[2]);\"[]\"===a.substring(a.length-2)?(t[a=a.substring(0,a.length-2)]||(t[a]=[])).push(i):t[a]=\"\"===i||i;}for(var u in t){var c=u.split(\"[\");c.length>1&&(m(t,c.map(function(e){return e.replace(/[?[\\]\\\\ ]/g,\"\")}),t[u]),delete t[u]);}return t}(function(r){if(r){var t=r.match(/\\?(.*)/);return t&&t[1]?t[1].split(\"#\")[0]:\"\"}return $$1&&window.location.search.substring(1)}(r))}function m(e,r,t){for(var n=r.length-1,o=0;o<n;++o){var a=r[o];if(\"__proto__\"===a||\"constructor\"===a)break;a in e||(e[a]={}),e=e[a];}e[r[n]]=t;}function y$1(){for(var e=\"\",r=0,t=4294967295*Math.random()|0;r++<36;){var n=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\"[r-1],o=15&t;e+=\"-\"==n||\"4\"==n?n:(\"x\"==n?o:3&o|8).toString(16),t=r%8==0?4294967295*Math.random()|0:t>>4;}return e}\n\nvar l=\"global\",o=j$1+\"global\"+j$1,n=typeof self===o$1&&self.self===self&&self||typeof global===o$1&&global.global===global&&global||void 0;function a$2(t){return n[o][t]}function f(t,e){return n[o][t]=e}function i$2(t){delete n[o][t];}function u$1(t,e,r){var l;try{if(b$2(t)){var o=window[t];l=o[e].bind(o);}}catch(t){}return l||r}n[o]||(n[o]={});var c$1={};function b$2(t){if(typeof c$1[t]!==e)return c$1[t];try{var e$1=window[t];e$1.setItem(e,e),e$1.removeItem(e);}catch(e){return c$1[t]=!1}return c$1[t]=!0}\n\nfunction g$1(){return g$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);}return e},g$1.apply(this,arguments)}var h$1=\"function\",v=\"undefined\",y=\"@@redux/\"+Math.random().toString(36),b$1=/* #__PURE__ */function(){return typeof Symbol===h$1&&Symbol.observable||\"@@observable\"}(),I$1=\" != \"+h$1;function w(e,t,n){var r;if(typeof t===h$1&&typeof n===v&&(n=t,t=void 0),typeof n!==v){if(typeof n!==h$1)throw new Error(\"enhancer\"+I$1);return n(w)(e,t)}if(typeof e!==h$1)throw new Error(\"reducer\"+I$1);var i=e,a=t,o=[],u=o,s=!1;function l(){u===o&&(u=o.slice());}function f(){return a}function d(e){if(typeof e!==h$1)throw new Error(\"Listener\"+I$1);var t=!0;return l(),u.push(e),function(){if(t){t=!1,l();var n=u.indexOf(e);u.splice(n,1);}}}function p(e){if(!on(e))throw new Error(\"Act != obj\");if(typeof e.type===v)throw new Error(\"ActType \"+v);if(s)throw new Error(\"Dispatch in reducer\");try{s=!0,a=i(a,e);}finally{s=!1;}for(var t=o=u,n=0;n<t.length;n++)(0, t[n])();return e}return p({type:\"@@redux/INIT\"}),(r={dispatch:p,subscribe:d,getState:f,replaceReducer:function(e){if(typeof e!==h$1)throw new Error(\"next reducer\"+I$1);i=e,p({type:\"@@redux/INIT\"});}})[b$1]=function(){var e,t=d;return (e={subscribe:function(e){if(\"object\"!=typeof e)throw new TypeError(\"Observer != obj\");function n(){e.next&&e.next(f());}return n(),{unsubscribe:t(n)}}})[b$1]=function(){return this},e},r}function E$1(e,t){var n=t&&t.type;return \"action \"+(n&&n.toString()||\"?\")+\"reducer \"+e+\" returns \"+v}function P(){var e=[].slice.call(arguments);return 0===e.length?function(e){return e}:1===e.length?e[0]:e.reduce(function(e,t){return function(){return e(t.apply(void 0,[].slice.call(arguments)))}})}function S(){var e=arguments;return function(t){return function(n,r,i){var a,o=t(n,r,i),u=o.dispatch,c={getState:o.getState,dispatch:function(e){return u(e)}};return a=[].slice.call(e).map(function(e){return e(c)}),g$1({},o,{dispatch:u=P.apply(void 0,a)(o.dispatch)})}}}var N$1=j$1+\"anon_id\",A$1=j$1+\"user_id\",_=j$1+\"user_traits\",j=\"userId\",k$1=\"anonymousId\",x$1=[\"bootstrap\",\"params\",\"campaign\",\"initializeStart\",\"initialize\",\"initializeEnd\",\"ready\",\"resetStart\",\"reset\",\"resetEnd\",\"pageStart\",\"page\",\"pageEnd\",\"pageAborted\",\"trackStart\",\"track\",\"trackEnd\",\"trackAborted\",\"identifyStart\",\"identify\",\"identifyEnd\",\"identifyAborted\",\"userIdChanged\",\"registerPlugins\",\"enablePlugin\",\"disablePlugin\",\"online\",\"offline\",\"setItemStart\",\"setItem\",\"setItemEnd\",\"setItemAborted\",\"removeItemStart\",\"removeItem\",\"removeItemEnd\",\"removeItemAborted\"],T=[\"name\",\"EVENTS\",\"config\",\"loaded\"],z=x$1.reduce(function(e,t){return e[t]=t,e},{registerPluginType:function(e){return \"registerPlugin:\"+e},pluginReadyType:function(e){return \"ready:\"+e}}),M=/^utm_/,q=/^an_prop_/,V=/^an_trait_/;function C$1(e){var t=e.storage.setItem;return function(n){return function(r){return function(i){if(i.type===z.bootstrap){var a=i.params,o=i.user,u=i.persistedUser,c=i.initialUser,s=u.userId===o.userId;u.anonymousId!==o.anonymousId&&t(N$1,o.anonymousId),s||t(A$1,o.userId),c.traits&&t(_,g$1({},s&&u.traits?u.traits:{},c.traits));var l=Object.keys(i.params);if(l.length){var f=a.an_uid,d=a.an_event,p=l.reduce(function(e,t){if(t.match(M)||t.match(/^(d|g)clid/)){var n=t.replace(M,\"\");e.campaign[\"campaign\"===n?\"name\":n]=a[t];}return t.match(q)&&(e.props[t.replace(q,\"\")]=a[t]),t.match(V)&&(e.traits[t.replace(V,\"\")]=a[t]),e},{campaign:{},props:{},traits:{}});n.dispatch(g$1({type:z.params,raw:a},p,f?{userId:f}:{})),f&&setTimeout(function(){return e.identify(f,p.traits)},0),d&&setTimeout(function(){return e.track(d,p.props)},0),Object.keys(p.campaign).length&&n.dispatch({type:z.campaign,campaign:p.campaign});}}return r(i)}}}}function U(e){return function(t,n){if(void 0===t&&(t={}),void 0===n&&(n={}),n.type===z.setItemEnd){if(n.key===N$1)return g$1({},t,{anonymousId:n.value});if(n.key===A$1)return g$1({},t,{userId:n.value})}switch(n.type){case z.identify:return Object.assign({},t,{userId:n.userId,traits:g$1({},t.traits,n.traits)});case z.reset:return [A$1,N$1,_].forEach(function(t){e.removeItem(t);}),Object.assign({},t,{userId:null,anonymousId:null,traits:{}});default:return t}}}function R(e){return {userId:e.getItem(A$1),anonymousId:e.getItem(N$1),traits:e.getItem(_)}}var $=function(e){return j$1+\"TEMP\"+j$1+e};function D(t){var n=t.storage,r=n.setItem,a=n.removeItem,o=n.getItem;return function(t){return function(n){return function(u){var c=u.userId,s=u.traits,l=u.options;if(u.type===z.reset&&([A$1,_,N$1].forEach(function(e){a(e);}),[j,k$1,\"traits\"].forEach(function(e){i$2($(e));})),u.type===z.identify){o(N$1)||r(N$1,y$1());var f=o(A$1),d=o(_)||{};f&&f!==c&&t.dispatch({type:z.userIdChanged,old:{userId:f,traits:d},new:{userId:c,traits:s},options:l}),c&&r(A$1,c),s&&r(_,g$1({},d,s));}return n(u)}}}}var B={};function L$1(e,t){B[e]&&W$1(B[e])&&(B[e](t),delete B[e]);}function J$1(e,t,n){return new Promise(function(r,i){return t()?r(e):n<1?i(g$1({},e,{queue:!0})):new Promise(function(e){return setTimeout(e,10)}).then(function(a){return J$1(e,t,n-10).then(r,i)})})}function X(e){return {abort:e}}var H=function(e){var t=e.data,n=e.action,r=e.instance,i=e.state,a=e.allPlugins,o=e.allMatches,u=e.store,s=e.EVENTS;try{var f=i.plugins,d=i.context,p=n.type,m=p.match(W),h=t.exact.map(function(e){return e.pluginName});m&&(h=o.during.map(function(e){return e.pluginName}));var v=function(e,t){return function(n,r,i){var a=r.config,o=r.name,u=o+\".\"+n.type;i&&(u=i.event);var c=n.type.match(W)?function(e,t,n,r,i){return function(a,o){var u=r?r.name:e,c=o&&ne(o)?o:n;if(r&&(!(c=o&&ne(o)?o:[e]).includes(e)||1!==c.length))throw new Error(\"Method \"+t+\" can only abort \"+e+\" plugin. \"+JSON.stringify(c)+\" input valid\");return g$1({},i,{abort:{reason:a,plugins:c,caller:t,_:u}})}}(o,u,t,i,n):function(e,t){return function(){throw new Error(e.type+\" action not cancellable. Remove abort in \"+t)}}(n,u);return {payload:ae(n),instance:e,config:a||{},abort:c}}}(r,h),y=t.exact.reduce(function(e,t){var n=t.pluginName,r=t.methodName,i=!1;return r.match(/^initialize/)||r.match(/^reset/)||(i=!f[n].loaded),d.offline&&r.match(/^(page|track|identify)/)&&(i=!0),e[\"\"+n]=i,e},{});return Promise.resolve(t.exact.reduce(function(e,i,o){try{var u=i.pluginName;return Promise.resolve(e).then(function(e){function i(){return Promise.resolve(e)}var o=function(){if(t.namespaced&&t.namespaced[u])return Promise.resolve(t.namespaced[u].reduce(function(e,t,n){try{return Promise.resolve(e).then(function(e){return t.method&&W$1(t.method)?(function(e,t){var n=ie(e);if(n&&n.name===t){var r=ie(n.method);throw new Error([t+\" plugin is calling method \"+e,\"Plugins cant call self\",\"Use \"+n.method+\" \"+(r?\"or \"+r.method:\"\")+\" in \"+t+\" plugin insteadof \"+e].join(\"\\n\"))}}(t.methodName,t.pluginName),Promise.resolve(t.method({payload:e,instance:r,abort:(n=e,i=u,o=t.pluginName,function(e,t){return g$1({},n,{abort:{reason:e,plugins:t||[i],caller:p,from:o||i}})}),config:Q(t.pluginName,f,a),plugins:f})).then(function(t){var n=on(t)?t:{};return Promise.resolve(g$1({},e,n))})):e;var n,i,o;})}catch(e){return Promise.reject(e)}},Promise.resolve(n))).then(function(t){e[u]=t;});e[u]=n;}();return o&&o.then?o.then(i):i()})}catch(e){return Promise.reject(e)}},Promise.resolve({}))).then(function(e){return Promise.resolve(t.exact.reduce(function(n,i,o){try{var s=t.exact.length===o+1,l=i.pluginName,d=a[l];return Promise.resolve(n).then(function(t){var n=e[l]?e[l]:{};if(m&&(n=t),ee(n,l))return K({data:n,method:p,instance:r,pluginName:l,store:u}),Promise.resolve(t);if(ee(t,l))return s&&K({data:t,method:p,instance:r,store:u}),Promise.resolve(t);if(y.hasOwnProperty(l)&&!0===y[l])return u.dispatch({type:\"queue\",plugin:l,payload:n,_:{called:\"queue\",from:\"queueMechanism\"}}),Promise.resolve(t);var i=v(e[l],a[l]);return Promise.resolve(d[p]({abort:i.abort,payload:n,instance:r,config:Q(l,f,a),plugins:f})).then(function(i){var a=on(i)?i:{},o=g$1({},t,a),s=e[l];if(ee(s,l))K({data:s,method:p,instance:r,pluginName:l,store:u});else {var f=p+\":\"+l;(f.match(/:/g)||[]).length<2&&!p.match(F$1)&&!p.match(G$1)&&r.dispatch(g$1({},m?o:n,{type:f,_:{called:f,from:\"submethod\"}}));}return Promise.resolve(o)})})}catch(e){return Promise.reject(e)}},Promise.resolve(n))).then(function(e){if(!(p.match(W)||p.match(/^registerPlugin/)||p.match(G$1)||p.match(F$1)||p.match(/^params/)||p.match(/^userIdChanged/))){if(s.plugins.includes(p),e._&&e._.originalAction===p)return e;var n=g$1({},e,{_:{originalAction:e.type,called:e.type,from:\"engineEnd\"}});te(e,t.exact.length)&&!p.match(/End$/)&&(n=g$1({},n,{type:e.type+\"Aborted\"})),u.dispatch(n);}return e})})}catch(e){return Promise.reject(e)}},W=/Start$/,F$1=/^bootstrap/,G$1=/^ready/;function K(e){var t=e.pluginName,n=e.method+\"Aborted\"+(t?\":\"+t:\"\");e.store.dispatch(g$1({},e.data,{type:n,_:{called:n,from:\"abort\"}}));}function Q(e,t,n){var r=t[e]||n[e];return r&&r.config?r.config:{}}function Y(e,t){return t.reduce(function(t,n){return n[e]?t.concat({methodName:e,pluginName:n.name,method:n[e]}):t},[])}function Z(e,t){var n=e.replace(W,\"\"),r=t?\":\"+t:\"\";return [\"\"+e+r,\"\"+n+r,n+\"End\"+r]}function ee(e,t){var n=e.abort;return !!n&&(!0===n||re(n,t)||n&&re(n.plugins,t))}function te(e,t){var n=e.abort;if(!n)return !1;if(!0===n||q$1(n))return !0;var r=n.plugins;return ne(n)&&n.length===t||ne(r)&&r.length===t}function ne(e){return Array.isArray(e)}function re(e,t){return !(!e||!ne(e))&&e.includes(t)}function ie(e){var t=e.match(/(.*):(.*)/);return !!t&&{method:t[1],name:t[2]}}function ae(e){return Object.keys(e).reduce(function(t,n){return \"type\"===n||(t[n]=on(e[n])?Object.assign({},e[n]):e[n]),t},{})}function oe(e,t,n){var r={};return function(i){return function(a){return function(o){try{var u,s=function(e){return u?e:a(m)},d=o.type,p=o.plugins,m=o;if(o.abort)return Promise.resolve(a(o));if(d===z.enablePlugin&&i.dispatch({type:z.initializeStart,plugins:p,disabled:[],fromEnable:!0,meta:o.meta}),d===z.disablePlugin&&setTimeout(function(){return L$1(o.meta.rid,{payload:o})},0),d===z.initializeEnd){var h=t(),v=Object.keys(h),y=v.filter(function(e){return p.includes(e)}).map(function(e){return h[e]}),b=[],I=[],w=o.disabled,E=y.map(function(e){var t=e.loaded,n=e.name,a=e.config;return J$1(e,function(){return t({config:a})},1e4).then(function(t){return r[n]||(i.dispatch({type:z.pluginReadyType(n),name:n,events:Object.keys(e).filter(function(e){return !T.includes(e)})}),r[n]=!0),b=b.concat(n),e}).catch(function(e){if(e instanceof Error)throw new Error(e);return I=I.concat(e.name),e})});Promise.all(E).then(function(e){var t={plugins:b,failed:I,disabled:w};setTimeout(function(){v.length===E.length+w.length&&i.dispatch(g$1({},{type:z.ready},t));},0);});}var P=function(){if(d!==z.bootstrap)return /^ready:([^:]*)$/.test(d)&&setTimeout(function(){return function(e,t,n){var r={},i=t(),a=e.getState(),o=a.plugins,u=a.queue,s=a.user;if(!a.context.offline&&u&&u.actions&&u.actions.length){var f=u.actions.reduce(function(e,t,n){return o[t.plugin].loaded?(e.process.push(t),e.processIndex.push(n)):(e.requeue.push(t),e.requeueIndex.push(n)),e},{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(f.processIndex&&f.processIndex.length){f.processIndex.forEach(function(t){var a=u.actions[t],f=a.plugin,d=a.payload.type,p=i[f][d];if(p&&W$1(p)){var m,h=function(e,t){return void 0===e&&(e={}),void 0===t&&(t={}),[j,k$1].reduce(function(n,r){return e.hasOwnProperty(r)&&t[r]&&t[r]!==e[r]&&(n[r]=t[r]),n},e)}(a.payload,s),v=r[h.meta.rid];if(!v&&(m=p({payload:h,config:o[f].config,instance:n,abort:X}))&&on(m)&&m.abort)return void(r[h.meta.rid]=!0);if(!v){var y=d+\":\"+f;e.dispatch(g$1({},h,{type:y,_:{called:y,from:\"queueDrain\"}}));}}});var d=u.actions.filter(function(e,t){return !~f.processIndex.indexOf(t)});u.actions=d;}}}(i,t,e)},0),Promise.resolve(function(e,t,n,r,i){try{var a=W$1(t)?t():t,o=e.type,u=o.replace(W,\"\");if(e._&&e._.called)return Promise.resolve(e);var c=n.getState(),s=(m=a,void 0===(h=c.plugins)&&(h={}),void 0===(v=e.options)&&(v={}),Object.keys(m).filter(function(e){var t=v.plugins||{};return Q$1(t[e])?t[e]:!1!==t.all&&(!h[e]||!1!==h[e].enabled)}).map(function(e){return m[e]}));o===z.initializeStart&&e.fromEnable&&(s=Object.keys(c.plugins).filter(function(t){var n=c.plugins[t];return e.plugins.includes(t)&&!n.initialized}).map(function(e){return a[e]}));var d=s.map(function(e){return e.name}),p=function(e,t,n){var r=Z(e).map(function(e){return Y(e,t)});return t.reduce(function(n,r){var i=r.name,a=Z(e,i).map(function(e){return Y(e,t)}),o=a[0],u=a[1],c=a[2];return o.length&&(n.beforeNS[i]=o),u.length&&(n.duringNS[i]=u),c.length&&(n.afterNS[i]=c),n},{before:r[0],beforeNS:{},during:r[1],duringNS:{},after:r[2],afterNS:{}})}(o,s);return Promise.resolve(H({action:e,data:{exact:p.before,namespaced:p.beforeNS},state:c,allPlugins:a,allMatches:p,instance:n,store:r,EVENTS:i})).then(function(e){function t(){var t=function(){if(o.match(W))return Promise.resolve(H({action:g$1({},s,{type:u+\"End\"}),data:{exact:p.after,namespaced:p.afterNS},state:c,allPlugins:a,allMatches:p,instance:n,store:r,EVENTS:i})).then(function(e){e.meta&&e.meta.hasCallback&&L$1(e.meta.rid,{payload:e});})}();return t&&t.then?t.then(function(){return e}):e}if(te(e,d.length))return e;var s,l=function(){if(o!==u)return Promise.resolve(H({action:g$1({},e,{type:u}),data:{exact:p.during,namespaced:p.duringNS},state:c,allPlugins:a,allMatches:p,instance:n,store:r,EVENTS:i})).then(function(e){s=e;});s=e;}();return l&&l.then?l.then(t):t()})}catch(e){return Promise.reject(e)}var m,h,v;}(o,t,e,i,n)).then(function(e){return u=1,a(e)})}();return Promise.resolve(P&&P.then?P.then(s):s(P))}catch(e){return Promise.reject(e)}}}}}function ue(e){return function(t){return function(t){return function(n){var r=n.type,i=n.key,a=n.value,o=n.options;if(r===z.setItem||r===z.removeItem){if(n.abort)return t(n);r===z.setItem?e.setItem(i,a,o):e.removeItem(i,o);}return t(n)}}}}var ce=function(){var e=this;this.before=[],this.after=[],this.addMiddleware=function(t,n){e[n]=e[n].concat(t);},this.removeMiddleware=function(t,n){var r=e[n].findIndex(function(e){return e===t});-1!==r&&(e[n]=[].concat(e[n].slice(0,r),e[n].slice(r+1)));},this.dynamicMiddlewares=function(t){return function(n){return function(r){return function(i){var a={getState:n.getState,dispatch:function(e){return n.dispatch(e)}},o=e[t].map(function(e){return e(a)});return P.apply(void 0,o)(r)(i)}}}};};function se(e){return function(t,n){void 0===t&&(t={});var r={};if(\"initialize:aborted\"===n.type)return t;if(/^registerPlugin:([^:]*)$/.test(n.type)){var i=le(n.type,\"registerPlugin\"),a=e()[i];if(!a||!i)return t;var o=n.enabled,u=a.config;return r[i]={enabled:o,initialized:!!o&&Boolean(!a.initialize),loaded:!!o&&Boolean(a.loaded({config:u})),config:u},g$1({},t,r)}if(/^initialize:([^:]*)$/.test(n.type)){var c=le(n.type,z.initialize),s=e()[c];return s&&c?(r[c]=g$1({},t[c],{initialized:!0,loaded:Boolean(s.loaded({config:s.config}))}),g$1({},t,r)):t}if(/^ready:([^:]*)$/.test(n.type))return r[n.name]=g$1({},t[n.name],{loaded:!0}),g$1({},t,r);switch(n.type){case z.disablePlugin:return g$1({},t,fe(n.plugins,!1,t));case z.enablePlugin:return g$1({},t,fe(n.plugins,!0,t));default:return t}}}function le(e,t){return e.substring(t.length+1,e.length)}function fe(e,t,n){return e.reduce(function(e,r){return e[r]=g$1({},n[r],{enabled:t}),e},n)}function de(e){try{return JSON.parse(JSON.stringify(e))}catch(e){}return e}var pe={last:{},history:[]};function me(e,t){void 0===e&&(e=pe);var n=t.options,r=t.meta;if(t.type===z.track){var i=de(g$1({event:t.event,properties:t.properties},Object.keys(n).length&&{options:n},{meta:r}));return g$1({},e,{last:i,history:e.history.concat(i)})}return e}var ge={actions:[]};function he(e,t){void 0===e&&(e=ge);var n=t.payload;switch(t.type){case\"queue\":var r;return r=n&&n.type&&n.type===z.identify?[t].concat(e.actions):e.actions.concat(t),g$1({},e,{actions:r});case\"dequeue\":return [];default:return e}}var ve=/#.*$/;function ye(e){var t=/(http[s]?:\\/\\/)?([^\\/\\s]+\\/)(.*)/g.exec(e);return \"/\"+(t&&t[3]?t[3].split(\"?\")[0].replace(ve,\"\"):\"\")}var be,Ie=function(e){if(void 0===e&&(e={}),!$$1)return e;var t=document,n=t.title,r=t.referrer,i=window,a=i.location,o=i.innerWidth,u=i.innerHeight,c=a.hash,s=a.search,l=function(e){var t=function(){if($$1)for(var e,t=document.getElementsByTagName(\"link\"),n=0;e=t[n];n++)if(\"canonical\"===e.getAttribute(\"rel\"))return e.getAttribute(\"href\")}();return t?t.match(/\\?/)?t:t+e:window.location.href.replace(ve,\"\")}(s),f={title:n,url:l,path:ye(l),hash:c,search:s,width:o,height:u};return r&&\"\"!==r&&(f.referrer=r),g$1({},f,e)},we={last:{},history:[]};function Ee(e,t){void 0===e&&(e=we);var n=t.options;if(t.type===z.page){var r=de(g$1({properties:t.properties,meta:t.meta},Object.keys(n).length&&{options:n}));return g$1({},e,{last:r,history:e.history.concat(r)})}return e}be={};var Pe={initialized:!1,sessionId:y$1(),app:null,version:null,debug:!1,offline:!!$$1&&!navigator.onLine,os:{name:\"na\"},userAgent:$$1?navigator.userAgent:\"node\",library:{name:\"analytics\",version:\"0.12.14\"},timezone:void 0,locale:void 0,campaign:{},referrer:be};function Se(e,t){void 0===e&&(e=Pe);var n=e.initialized,r=t.campaign;switch(t.type){case z.campaign:return g$1({},e,{campaign:r});case z.offline:return g$1({},e,{offline:!0});case z.online:return g$1({},e,{offline:!1});default:return n?e:g$1({},Pe,e,{initialized:!0})}}var Ne=[\"plugins\",\"reducers\",\"storage\"];function Ae(){return f(\"analytics\",[]),function(e){return function(t,n$1,r){var i=e(t,n$1,r),a=i.dispatch;return Object.assign(i,{dispatch:function(e){return n[o].analytics.push(e.action||e),a(e)}})}}}function _e(e){return function(){return P(P.apply(null,arguments),Ae())}}function Oe(e){return e?rn(e)?e:[e]:[]}function je(t,n,r){void 0===t&&(t={});var i,a,o=y$1();return n&&(B[o]=(i=n,a=function(e){for(var t,n=e||Array.prototype.slice.call(arguments),r=0;r<n.length;r++)if(W$1(n[r])){t=n[r];break}return t}(r),function(e){a&&a(e),i(e);})),g$1({},t,{rid:o,ts:(new Date).getTime()},n?{hasCallback:!0}:{})}function ke(o){void 0===o&&(o={});var u=o.reducers||{},s$1=o.initialUser||{},f$1=(o.plugins||[]).reduce(function(e,t){if(W$1(t))return e.middlewares=e.middlewares.concat(t),e;if(t.NAMESPACE&&(t.name=t.NAMESPACE),!t.name)throw new Error(\"https://lytics.dev/errors/1\");t.config||(t.config={});var n=t.EVENTS?Object.keys(t.EVENTS).map(function(e){return t.EVENTS[e]}):[];e.pluginEnabled[t.name]=!(!1===t.enabled||!1===t.config.enabled),delete t.enabled,t.methods&&(e.methods[t.name]=Object.keys(t.methods).reduce(function(e,n){var r;return e[n]=(r=t.methods[n],function(){for(var e=Array.prototype.slice.call(arguments),t=new Array(r.length),n=0;n<e.length;n++)t[n]=e[n];return t[t.length]=K,r.apply({instance:K},t)}),e},{}),delete t.methods);var r=Object.keys(t).concat(n),i=new Set(e.events.concat(r));if(e.events=Array.from(i),e.pluginsArray=e.pluginsArray.concat(t),e.plugins[t.name])throw new Error(t.name+\"AlreadyLoaded\");return e.plugins[t.name]=t,e.plugins[t.name].loaded||(e.plugins[t.name].loaded=function(){return !0}),e},{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),m=o.storage?o.storage:{getItem:a$2,setItem:f,removeItem:i$2},b=function(e){return function(t,n,i){return n.getState(\"user\")[t]||(i&&on(i)&&i[t]?i[t]:R(e)[t]||a$2($(t))||null)}}(m),I=f$1.plugins,A=f$1.events.filter(function(e){return !T.includes(e)}).sort(),_=new Set(A.concat(x$1).filter(function(e){return !T.includes(e)})),O=Array.from(_).sort(),M=function(){return I},q=new ce,V=q.addMiddleware,B=q.removeMiddleware,L=q.dynamicMiddlewares,J=function(){throw new Error(\"Abort disabled inListener\")},X=s(),H=R(m),W=g$1({},H,s$1,X.an_uid?{userId:X.an_uid}:{},X.an_aid?{anonymousId:X.an_aid}:{});W.anonymousId||(W.anonymousId=y$1());var F=g$1({enable:function(e,t){return new Promise(function(n){le.dispatch({type:z.enablePlugin,plugins:Oe(e),_:{originalAction:z.enablePlugin}},n,[t]);})},disable:function(e,t){return new Promise(function(n){le.dispatch({type:z.disablePlugin,plugins:Oe(e),_:{originalAction:z.disablePlugin}},n,[t]);})}},f$1.methods),G=!1,K={identify:function(e,t,n,r){try{var i=q$1(e)?e:null,o=on(e)?e:t,u=n||{},s=K.user();f($(j),i);var l=i||o.userId||b(j,K,o);return Promise.resolve(new Promise(function(e){le.dispatch(g$1({type:z.identifyStart,userId:l,traits:o||{},options:u,anonymousId:s.anonymousId},s.id&&s.id!==i&&{previousId:s.id}),e,[t,n,r]);}))}catch(e){return Promise.reject(e)}},track:function(e,t,n,r){try{var i=on(e)?e.event:e;if(!i||!q$1(i))throw new Error(\"EventMissing\");var a=on(e)?e:t||{},o=on(n)?n:{};return Promise.resolve(new Promise(function(e){le.dispatch({type:z.trackStart,event:i,properties:a,options:o,userId:b(j,K,t),anonymousId:b(k$1,K,t)},e,[t,n,r]);}))}catch(e){return Promise.reject(e)}},page:function(e,t,n){try{var r=on(e)?e:{},i=on(t)?t:{};return Promise.resolve(new Promise(function(a){le.dispatch({type:z.pageStart,properties:Ie(r),options:i,userId:b(j,K,r),anonymousId:b(k$1,K,r)},a,[e,t,n]);}))}catch(e){return Promise.reject(e)}},user:function(e){if(e===j||\"id\"===e)return b(j,K);if(e===k$1||\"anonId\"===e)return b(k$1,K);var t=K.getState(\"user\");return e?n$2(t,e):t},reset:function(e){return new Promise(function(t){le.dispatch({type:z.resetStart},t,e);})},ready:function(e){return G&&e({plugins:F,instance:K}),K.on(z.ready,function(t){e(t),G=!0;})},on:function(e,t){if(!e||!W$1(t))return !1;if(e===z.bootstrap)throw new Error(\".on disabled for \"+e);var n=/Start$|Start:/;if(\"*\"===e){var r=function(e){return function(e){return function(r){return r.type.match(n)&&t({payload:r,instance:K,plugins:I}),e(r)}}},i=function(e){return function(e){return function(r){return r.type.match(n)||t({payload:r,instance:K,plugins:I}),e(r)}}};return V(r,xe),V(i,Te),function(){B(r,xe),B(i,Te);}}var a=e.match(n)?xe:Te,o=function(n){return function(n){return function(r){return r.type===e&&t({payload:r,instance:K,plugins:I,abort:J}),n(r)}}};return V(o,a),function(){return B(o,a)}},once:function(e,t){if(!e||!W$1(t))return !1;if(e===z.bootstrap)throw new Error(\".once disabled for \"+e);var n=K.on(e,function(e){t({payload:e.payload,instance:K,plugins:I,abort:J}),n();});return n},getState:function(e){var t=le.getState();return e?n$2(t,e):Object.assign({},t)},dispatch:function(e){var t=q$1(e)?{type:e}:e;if(x$1.includes(t.type))throw new Error(\"reserved action \"+t.type);var n=g$1({},t,{_:g$1({originalAction:t.type},e._||{})});le.dispatch(n);},enablePlugin:F.enable,disablePlugin:F.disable,plugins:F,storage:{getItem:m.getItem,setItem:function(e,t,n){le.dispatch({type:z.setItemStart,key:e,value:t,options:n});},removeItem:function(e,t){le.dispatch({type:z.removeItemStart,key:e,options:t});}},setAnonymousId:function(e,t){K.storage.setItem(N$1,e,t);},events:{core:x$1,plugins:A}},Q=f$1.middlewares.concat([function(e){return function(e){return function(t){return t.meta||(t.meta=je()),e(t)}}},L(xe),oe(K,M,{all:O,plugins:A}),ue(m),C$1(K),D(K),L(Te)]),Y={context:Se,user:U(m),page:Ee,track:me,plugins:se(M),queue:he},Z=P,ee=P;if($$1&&o.debug){var te=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;te&&(Z=te({trace:!0,traceLimit:25})),ee=function(){return 0===arguments.length?Ae():on(typeof arguments[0])?_e():_e().apply(null,arguments)};}var ne,re=function(e){return Object.keys(e).reduce(function(t,n){return Ne.includes(n)||(t[n]=e[n]),t},{})}(o),ie=f$1.pluginsArray.reduce(function(e,t){var n=t.name,r=t.config,i=t.loaded,a=f$1.pluginEnabled[n];return e[n]={enabled:a,initialized:!!a&&Boolean(!t.initialize),loaded:Boolean(i({config:r})),config:r},e},{}),ae={context:re,user:W,plugins:ie},le=w(function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var i=t[r];typeof e[i]===h$1&&(n[i]=e[i]);}var a,o=Object.keys(n);try{!function(e){Object.keys(e).forEach(function(t){var n=e[t];if(typeof n(void 0,{type:\"@@redux/INIT\"})===v||typeof n(void 0,{type:y})===v)throw new Error(\"reducer \"+t+\" \"+v)});}(n);}catch(e){a=e;}return function(e,t){if(void 0===e&&(e={}),a)throw a;for(var r=!1,i={},u=0;u<o.length;u++){var c=o[u],s=e[c],l=(0, n[c])(s,t);if(typeof l===v){var f=E$1(c,t);throw new Error(f)}i[c]=l,r=r||l!==s;}return r?i:e}}(g$1({},Y,u)),ae,ee(Z(S.apply(void 0,Q))));le.dispatch=(ne=le.dispatch,function(e,t,n){var r=g$1({},e,{meta:je(e.meta,t,Oe(n))});return ne.apply(null,[r])});var fe=Object.keys(I);le.dispatch({type:z.bootstrap,plugins:fe,config:re,params:X,user:W,initialUser:s$1,persistedUser:H});var de=fe.filter(function(e){return f$1.pluginEnabled[e]}),pe=fe.filter(function(e){return !f$1.pluginEnabled[e]});return le.dispatch({type:z.registerPlugins,plugins:fe,enabled:f$1.pluginEnabled}),f$1.pluginsArray.map(function(e,t){var n=e.bootstrap,r=e.config,i=e.name;n&&W$1(n)&&n({instance:K,config:r,payload:e}),le.dispatch({type:z.registerPluginType(i),name:i,enabled:f$1.pluginEnabled[i],plugin:e}),f$1.pluginsArray.length===t+1&&le.dispatch({type:z.initializeStart,plugins:de,disabled:pe});}),K}var xe=\"before\",Te=\"after\";\n\nvar t=\"cookie\",i$1=a$1(),r$1=d$1,c=d$1;function u(o){return i$1?d$1(o,\"\",-1):i$2(o)}function a$1(){if(void 0!==i$1)return i$1;var e=\"cookiecookie\";try{d$1(e,e),i$1=-1!==document.cookie.indexOf(e),u(e);}catch(e){i$1=!1;}return i$1}function d$1(e,t,r,c,u,a){if(\"undefined\"!=typeof window){var d=arguments.length>1;return !1===i$1&&(d?f(e,t):a$2(e)),d?document.cookie=e+\"=\"+encodeURIComponent(t)+(r?\"; expires=\"+new Date(+new Date+1e3*r).toUTCString()+(c?\"; path=\"+c:\"\")+(u?\"; domain=\"+u:\"\")+(a?\"; secure\":\"\"):\"\"):decodeURIComponent(((\"; \"+document.cookie).split(\"; \"+e+\"=\")[1]||\"\").split(\";\")[0])}}\n\nvar r=\"localStorage\",g=b$2.bind(null,\"localStorage\");u$1(\"localStorage\",\"getItem\",a$2);u$1(\"localStorage\",\"setItem\",f);u$1(\"localStorage\",\"removeItem\",i$2);\n\nvar a=\"sessionStorage\",i=b$2.bind(null,\"sessionStorage\");u$1(\"sessionStorage\",\"getItem\",a$2);u$1(\"sessionStorage\",\"setItem\",f);u$1(\"sessionStorage\",\"removeItem\",i$2);\n\nfunction I(t){var o=t;try{if(\"true\"===(o=JSON.parse(t)))return !0;if(\"false\"===o)return !1;if(on(o))return o;parseFloat(o)===o&&(o=parseFloat(o));}catch(t){}if(null!==o&&\"\"!==o)return o}var k=g(),O=i(),x=a$1();function C(o,e){if(o){var r=A(e),a=!N(r),i=d(r)?I(localStorage.getItem(o)):void 0;if(a&&!I$2(i))return i;var n=h(r)?I(r$1(o)):void 0;if(a&&n)return n;var l=E(r)?I(sessionStorage.getItem(o)):void 0;if(a&&l)return l;var u=a$2(o);return a?u:{localStorage:i,sessionStorage:l,cookie:n,global:u}}}function L(r$2,a$1,l$1){if(r$2&&!I$2(a$1)){var u={},g=A(l$1),m=JSON.stringify(a$1),S=!N(g);return d(g)&&(u[r]=F(r,a$1,I(localStorage.getItem(r$2))),localStorage.setItem(r$2,m),S)?u[r]:h(g)&&(u[t]=F(t,a$1,I(r$1(r$2))),c(r$2,m),S)?u[t]:E(g)&&(u[a]=F(a,a$1,I(sessionStorage.getItem(r$2))),sessionStorage.setItem(r$2,m),S)?u[a]:(u[l]=F(l,a$1,a$2(r$2)),f(r$2,a$1),S?u[l]:u)}}function b(t$1,e){if(t$1){var a$1=A(e),s=C(t$1,m$1),n={};return !I$2(s.localStorage)&&d(a$1)&&(localStorage.removeItem(t$1),n[r]=s.localStorage),!I$2(s.cookie)&&h(a$1)&&(u(t$1),n[t]=s.cookie),!I$2(s.sessionStorage)&&E(a$1)&&(sessionStorage.removeItem(t$1),n[a]=s.sessionStorage),!I$2(s.global)&&G(a$1,l)&&(i$2(t$1),n[l]=s.global),n}}function A(t){return t?q$1(t)?t:t.storage:b$3}function d(t){return k&&G(t,r)}function h(t$1){return x&&G(t$1,t)}function E(t){return O&&G(t,a)}function N(t){return t===m$1||\"all\"===t}function G(t,o){return t===b$3||t===o||N(t)}function F(t,o,e){return {location:t,current:o,previous:e}}var J={setItem:L,getItem:C,removeItem:b};\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction analyticsLib() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaultSettings = {\n storage: J\n };\n return ke(_objectSpread2(_objectSpread2({}, defaultSettings), opts));\n}\n\nfunction findScript(src) {\n const scripts = Array.prototype.slice.call(window.document.querySelectorAll(\"script\"));\n return scripts.find(s => s.src === src);\n}\nfunction buildScriptSrc(src, options) {\n let result = src;\n if (!result.startsWith(\"http\")) {\n result = `https://${(options === null || options === void 0 ? void 0 : options.www) ? \"www.\" : \"\"}${result}`;\n }\n if (options === null || options === void 0 ? void 0 : options.min) {\n result = result + \".min.js\";\n }\n else if (options === null || options === void 0 ? void 0 : options.js) {\n result = result + \".js\";\n }\n if (options === null || options === void 0 ? void 0 : options.query) {\n result += \"?\" + options.query;\n }\n return result;\n}\nfunction loadScript(src, options) {\n const found = findScript(src);\n if (found !== undefined) {\n const status = found === null || found === void 0 ? void 0 : found.getAttribute(\"status\");\n if (status === \"loaded\") {\n return Promise.resolve(found);\n }\n if (status === \"loading\") {\n return new Promise((resolve, reject) => {\n found.addEventListener(\"load\", () => resolve(found));\n found.addEventListener(\"error\", err => reject(err));\n });\n }\n }\n return new Promise((resolve, reject) => {\n var _a, _b;\n const script = window.document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = buildScriptSrc(src, options);\n script.async = true;\n script.setAttribute(\"status\", \"loading\");\n for (const [k, v] of Object.entries((_a = options === null || options === void 0 ? void 0 : options.attributes) !== null && _a !== void 0 ? _a : {})) {\n script.setAttribute(k, v);\n }\n script.onload = () => {\n script.onerror = script.onload = null;\n script.setAttribute(\"status\", \"loaded\");\n resolve(script);\n };\n script.onerror = () => {\n script.onerror = script.onload = null;\n script.setAttribute(\"status\", \"error\");\n reject(new Error(`Failed to load ${src}`));\n };\n const tag = window.document.getElementsByTagName(\"script\")[0];\n (_b = tag.parentElement) === null || _b === void 0 ? void 0 : _b.insertBefore(script, tag);\n });\n}\n\nvar __awaiter$5 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst tagPlugin = {\n id: \"tag\",\n handle(config, payload) {\n return __awaiter$5(this, void 0, void 0, function* () {\n if (!applyFilters(payload, config)) {\n return;\n }\n insertTags(config.code, payload);\n });\n },\n};\nfunction insertTags(code, event, opts = {}) {\n let tag;\n try {\n tag = JSON.parse(code);\n }\n catch (e) {\n tag = { code, lang: \"javascript\" };\n }\n const debug = opts.debug || false;\n if (isInBrowser()) {\n if (tag.lang === \"javascript\") {\n execJs(tag.code, event);\n }\n else {\n const codeHolder = document.createElement(\"span\");\n codeHolder.innerHTML = replaceMacro(tag.code, event);\n document.body.insertAdjacentElement(\"beforeend\", codeHolder);\n const scripts = codeHolder.querySelectorAll(\"script\");\n scripts.forEach(script => {\n const scriptClone = document.createElement(\"script\");\n scriptClone.type = scriptClone.type || \"text/javascript\";\n if (script.hasAttribute(\"src\")) {\n scriptClone.src = script.src;\n }\n scriptClone.text = script.text;\n if (debug) {\n console.log(`[JITSU] Executing script${script.hasAttribute(\"src\") ? ` ${script.src}` : \"\"}`, scriptClone.text);\n }\n document.head.appendChild(scriptClone);\n document.head.removeChild(scriptClone);\n });\n }\n }\n else {\n if (debug) {\n console.log(`[JITSU] insertTags(): cannot insert tags in non-browser environment`);\n }\n }\n}\n//This weird code is used to mask eval() usage.\n//Although the code can be executed in the browser, some server side bundlers (like Vercel) fails\n//the build if a direct reference to eval() is found.\nlet al = \"al\";\nlet ev = \"ve\".split(\"\").reverse().join(\"\");\nconst execF = globalThis[ev + al];\nfunction execJs(code, event) {\n const varName = `jitsu_event_${randomId()}`;\n window[varName] = event;\n const iif = `(function(){\n const event = ${varName};\n ${code}\n })()`;\n try {\n execF(iif);\n }\n catch (e) {\n console.error(`[JITSU] Error executing JS code: ${e.message}. Code: `, iif);\n }\n finally {\n delete window[varName];\n }\n return iif;\n}\nfunction replaceMacro(code, event) {\n return code.replace(/{{\\s*event\\s*}}/g, JSON.stringify(event));\n}\n\nvar __awaiter$4 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst cdn = \"cdn.lr-ingest.io/\";\nconst logrocketPlugin = {\n id: \"logrocket\",\n handle(config, payload) {\n return __awaiter$4(this, void 0, void 0, function* () {\n if (!applyFilters(payload, config)) {\n return;\n }\n initLogrocketIfNeeded(config.appId);\n const action = logRocket => {\n if (payload.type === \"identify\" && payload.userId) {\n logRocket.identify(payload.userId, payload.traits || {});\n }\n };\n getLogRocketQueue().push(action);\n if (getLogRocketState() === \"loaded\") {\n flushLogRocketQueue(window[\"LogRocket\"]);\n }\n });\n },\n};\nfunction getLogRocketState() {\n return window[\"__jitsuLrState\"] || \"fresh\";\n}\nfunction setLogRocketState(s) {\n window[\"__jitsuLrState\"] = s;\n}\nfunction getLogRocketQueue() {\n return window[\"__jitsuLrQueue\"] || (window[\"__jitsuLrQueue\"] = []);\n}\nfunction flushLogRocketQueue(lr) {\n const queue = getLogRocketQueue();\n while (queue.length > 0) {\n const method = queue.shift();\n try {\n const res = method(lr);\n if (res) {\n res.catch(e => console.warn(`Async LogRocket method failed: ${e.message}`, e));\n }\n }\n catch (e) {\n console.warn(`LogRocket method failed: ${e.message}`, e);\n }\n }\n}\nfunction initLogrocketIfNeeded(appId) {\n return __awaiter$4(this, void 0, void 0, function* () {\n if (getLogRocketState() !== \"fresh\") {\n return;\n }\n setLogRocketState(\"loading\");\n loadScript(`${cdn}LogRocket`, { min: true, attributes: { crossOrigin: \"anonymous\" } })\n .then(() => {\n if (window[\"LogRocket\"]) {\n try {\n window[\"LogRocket\"].init(appId);\n }\n catch (e) {\n console.warn(`LogRocket (id=${appId}) init failed: ${e.message}`, e);\n setLogRocketState(\"failed\");\n }\n setLogRocketState(\"loaded\");\n flushLogRocketQueue(window[\"LogRocket\"]);\n }\n })\n .catch(e => {\n console.warn(`LogRocket (id=${appId}) init failed: ${e.message}`, e);\n setLogRocketState(\"failed\");\n });\n });\n}\n\nvar __awaiter$3 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nfunction omit(obj, ...keys) {\n return Object.fromEntries(Object.entries(obj).filter(([k]) => !keys.includes(k)));\n}\nconst gtmPlugin = {\n id: \"gtm\",\n handle(config, payload) {\n return __awaiter$3(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n const debug = !!config.debug;\n if (!applyFilters(payload, config)) {\n return;\n }\n yield initGtmIfNeeded(config, payload);\n const dataLayer = window[config.dataLayerName || \"dataLayer\"];\n //traits could be in both nodes, context.traits takes precedence\n const traits = Object.assign(Object.assign({}, ((payload === null || payload === void 0 ? void 0 : payload.traits) || {})), (((_a = payload === null || payload === void 0 ? void 0 : payload.context) === null || _a === void 0 ? void 0 : _a.traits) || {}));\n //remove properties that defined separately\n const idsFromTraits = omit(traits, \"id\", \"userId\", \"user_id\", \"anonymousId\", \"userId\");\n if (debug) {\n console.debug(\"GTM plugin will be applied to following payload\", payload);\n }\n // See https://developers.google.com/tag-platform/tag-manager/server-side/common-event-data\n const userData = {\n email_address: traits.email,\n };\n const ids = Object.assign(Object.assign(Object.assign(Object.assign({}, (payload.userId ? { user_id: payload.userId, userId: payload.userId } : {})), (payload.anonymousId ? { anonymousId: payload.anonymousId } : {})), idsFromTraits), { user_data: Object.keys(userData).length > 0 ? userData : undefined });\n if (debug) {\n console.debug(\"GTM plugin will set following user-related data layer vars\", ids);\n }\n const pageProperties = payload.properties || {};\n const pageVariables = {\n page_location: pageProperties.url || ((_c = (_b = payload.context) === null || _b === void 0 ? void 0 : _b.page) === null || _c === void 0 ? void 0 : _c.url),\n page_title: pageProperties.title || ((_e = (_d = payload.context) === null || _d === void 0 ? void 0 : _d.page) === null || _e === void 0 ? void 0 : _e.title),\n page_path: pageProperties.path || ((_g = (_f = payload.context) === null || _f === void 0 ? void 0 : _f.page) === null || _g === void 0 ? void 0 : _g.path),\n page_hash: pageProperties.hash || ((_j = (_h = payload.context) === null || _h === void 0 ? void 0 : _h.page) === null || _j === void 0 ? void 0 : _j.hash),\n page_search: pageProperties.search || ((_l = (_k = payload.context) === null || _k === void 0 ? void 0 : _k.page) === null || _l === void 0 ? void 0 : _l.search),\n page_referrer: (_p = (_o = (_m = payload === null || payload === void 0 ? void 0 : payload.context) === null || _m === void 0 ? void 0 : _m.page) === null || _o === void 0 ? void 0 : _o.referrer) !== null && _p !== void 0 ? _p : \"\",\n };\n if (debug) {\n console.debug(\"GTM plugin will set following context (page) related data layer vars\", ids);\n }\n const pushToDataLayer = (data) => {\n dataLayer.push(data);\n if (debug) {\n console.debug(\"GTM plugin will push following data to dataLayer\", data);\n }\n };\n switch (payload.type) {\n case \"page\":\n const pageEvent = Object.assign(Object.assign({ event: \"page_view\" }, pageVariables), ids);\n pushToDataLayer(pageEvent);\n break;\n case \"track\":\n const { properties: trackProperties } = payload;\n const trackEvent = Object.assign(Object.assign(Object.assign({ event: payload.event }, pageVariables), trackProperties), ids);\n pushToDataLayer(trackEvent);\n break;\n case \"identify\":\n const { traits } = payload;\n const identifyEvent = Object.assign(Object.assign(Object.assign({ event: \"identify\" }, pageVariables), traits), ids);\n pushToDataLayer(identifyEvent);\n break;\n }\n dataLayer.push(function () {\n this.reset();\n });\n });\n },\n};\nfunction getGtmState() {\n return window[\"__jitsuGtmState\"] || \"fresh\";\n}\nfunction setGtmState(s) {\n window[\"__jitsuGtmState\"] = s;\n}\nfunction initGtmIfNeeded(config, payload) {\n return __awaiter$3(this, void 0, void 0, function* () {\n if (getGtmState() !== \"fresh\") {\n return;\n }\n setGtmState(\"loading\");\n const dlName = config.dataLayerName || \"dataLayer\";\n const tagId = config.containerId;\n (function (w, l, i) {\n w[l] = w[l] || [];\n w[l].push({\n user_id: payload.userId,\n });\n w[l].push({\n \"gtm.start\": new Date().getTime(),\n event: \"gtm.js\",\n });\n const dl = l != \"dataLayer\" ? \"&l=\" + l : \"\";\n const scriptSrc = \"googletagmanager.com/gtm\";\n loadScript(scriptSrc, { www: true, js: true, query: \"id=\" + i + dl })\n .then(() => {\n setGtmState(\"loaded\");\n })\n .catch(e => {\n console.warn(`GTM (containerId=${tagId}) init failed: ${e.message}`, e);\n setGtmState(\"failed\");\n });\n })(window, dlName, tagId);\n });\n}\n\nvar __awaiter$2 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst urlData = [\n new Uint8Array([109, 111, 99, 46, 114, 101, 103, 97, 110, 97, 109, 103, 97, 116, 101, 108, 103, 111, 111, 103]),\n new Uint8Array([103, 97, 116, 103]),\n new Uint8Array([115, 106]),\n];\nfunction byteArrayToString(byteArray) {\n const decoder = new TextDecoder();\n return decoder.decode(byteArray);\n}\nfunction buildTagUrl() {\n return urlData\n .map(d => d.reverse())\n .map(byteArrayToString)\n .join(\"/\");\n}\nconst ga4Plugin = {\n id: \"ga4-tag\",\n handle(config, payload) {\n return __awaiter$2(this, void 0, void 0, function* () {\n var _a, _b;\n if (!applyFilters(payload, config)) {\n return;\n }\n yield initGa4IfNeeded(config, payload);\n const dataLayer = window[config.dataLayerName || \"dataLayer\"];\n const gtag = function () {\n dataLayer.push(arguments);\n };\n const ids = Object.assign(Object.assign({}, (payload.userId ? { user_id: payload.userId, userId: payload.userId } : {})), (payload.anonymousId ? { anonymousId: payload.anonymousId } : {}));\n if (payload.userId) {\n // @ts-ignore\n gtag(\"set\", { user_id: payload.userId });\n }\n switch (payload.type) {\n case \"page\":\n if (config.autoPageView) {\n console.log(\"autoPageView\");\n break;\n }\n const { properties: pageProperties, context } = payload;\n const pageEvent = Object.assign({ page_location: pageProperties.url, page_title: pageProperties.title, page_path: pageProperties.path, page_hash: pageProperties.hash, page_search: pageProperties.search, page_referrer: (_b = (_a = context === null || context === void 0 ? void 0 : context.page) === null || _a === void 0 ? void 0 : _a.referrer) !== null && _b !== void 0 ? _b : \"\" }, ids);\n // @ts-ignore\n gtag(\"event\", \"page_view\", pageEvent);\n break;\n case \"track\":\n const { properties: trackProperties } = payload;\n const trackEvent = Object.assign(Object.assign({}, trackProperties), ids);\n // @ts-ignore\n gtag(\"event\", payload.event, trackEvent);\n break;\n case \"identify\":\n const { traits } = payload;\n const identifyEvent = Object.assign(Object.assign({}, traits), ids);\n // @ts-ignore\n gtag(\"event\", \"identify\", identifyEvent);\n break;\n }\n });\n },\n};\nfunction getGa4State() {\n return window[\"__jitsuGa4State\"] || \"fresh\";\n}\nfunction setGa4State(s) {\n window[\"__jitsuGa4State\"] = s;\n}\nfunction initGa4IfNeeded(config, payload) {\n return __awaiter$2(this, void 0, void 0, function* () {\n if (getGa4State() !== \"fresh\") {\n return;\n }\n setGa4State(\"loading\");\n const dlName = config.dataLayerName || \"dataLayer\";\n const dlParam = dlName !== \"dataLayer\" ? \"&l=\" + dlName : \"\";\n // to work with both GA4 and GTM\n const tagId = config.measurementIds;\n window[dlName] = window[dlName] || [];\n const gtag = function () {\n window[dlName].push(arguments);\n };\n // @ts-ignore\n gtag(\"js\", new Date());\n gtag(\n // @ts-ignore\n \"config\", tagId, Object.assign(Object.assign({}, (payload.userId ? { user_id: payload.userId } : {})), (!config.autoPageView ? { send_page_view: false } : {})));\n loadScript(buildTagUrl(), { query: `id=${tagId}${dlParam}`, www: true })\n .then(() => {\n setGa4State(\"loaded\");\n })\n .catch(e => {\n console.warn(`GA4 (containerId=${config.measurementIds}) init failed: ${e.message}`, e);\n setGa4State(\"failed\");\n });\n });\n}\n\nfunction satisfyFilter(filter, subject) {\n return filter === \"*\" || filter.toLowerCase().trim() === (subject || \"\").trim().toLowerCase();\n}\nfunction satisfyDomainFilter(filter, subject) {\n if (filter === \"*\") {\n return true;\n }\n subject = subject || \"\";\n if (filter.startsWith(\"*.\")) {\n return subject.endsWith(filter.substring(1));\n }\n else {\n return filter === subject;\n }\n}\nfunction applyFilters(event, creds) {\n const { hosts = \"*\", events = \"*\" } = creds;\n try {\n const eventsArray = Array.isArray(events) ? events : events.split(\"\\n\");\n const hostsArray = Array.isArray(hosts) ? hosts : hosts.split(\"\\n\");\n return (!!hostsArray.find(hostFilter => { var _a, _b; return satisfyDomainFilter(hostFilter, (_b = (_a = event.context) === null || _a === void 0 ? void 0 : _a.page) === null || _b === void 0 ? void 0 : _b.host); }) &&\n (!!eventsArray.find(eventFilter => satisfyFilter(eventFilter, event.type)) ||\n !!eventsArray.find(eventFilter => satisfyFilter(eventFilter, event.event))));\n }\n catch (e) {\n console.warn(`Failed to apply filters: ${e.message}. Typeof events: ${typeof events}, typeof hosts: ${typeof hosts}. Values`, events, hosts);\n throw new Error(`Failed to apply filters: ${e.message}. Typeof events: ${typeof events}, typeof hosts: ${typeof hosts}`);\n }\n}\nconst internalDestinationPlugins = {\n [tagPlugin.id]: tagPlugin,\n [gtmPlugin.id]: gtmPlugin,\n [ga4Plugin.id]: ga4Plugin,\n [logrocketPlugin.id]: logrocketPlugin,\n};\n\nconst jitsuVersion = \"2.0.0\";\nconst jitsuLibraryName = \"@jitsu/js\";\n\nconst publicSuffixes = \"myshopify.com,ac,com.ac,edu.ac,gov.ac,net.ac,mil.ac,org.ac,ad,nom.ad,ae,co.ae,net.ae,org.ae,sch.ae,ac.ae,gov.ae,mil.ae,aero,af,gov.af,com.af,org.af,net.af,edu.af,ag,com.ag,org.ag,net.ag,co.ag,nom.ag,ai,off.ai,com.ai,net.ai,org.ai,al,com.al,edu.al,gov.al,mil.al,net.al,org.al,am,co.am,com.am,commune.am,net.am,org.am,ao,ed.ao,gv.ao,og.ao,co.ao,pb.ao,it.ao,aq,ar,bet.ar,com.ar,coop.ar,edu.ar,gob.ar,gov.ar,int.ar,mil.ar,musica.ar,mutual.ar,net.ar,org.ar,senasa.ar,tur.ar,arpa,e164.arpa,in-addr.arpa,ip6.arpa,iris.arpa,uri.arpa,urn.arpa,as,gov.as,asia,at,ac.at,co.at,gv.at,or.at,sth.ac.at,au,com.au,net.au,org.au,edu.au,gov.au,asn.au,id.au,act.au,nsw.au,nt.au,qld.au,sa.au,tas.au,vic.au,wa.au,aw,com.aw,ax,az,com.az,net.az,int.az,gov.az,org.az,edu.az,info.az,pp.az,mil.az,name.az,pro.az,biz.az,ba,com.ba,edu.ba,gov.ba,mil.ba,net.ba,org.ba,bb,biz.bb,co.bb,com.bb,edu.bb,gov.bb,info.bb,net.bb,org.bb,store.bb,tv.bb,bd,be,ac.be,bf,gov.bf,bg,a.bg,b.bg,c.bg,d.bg,e.bg,f.bg,g.bg,h.bg,i.bg,j.bg,k.bg,l.bg,m.bg,n.bg,o.bg,p.bg,q.bg,r.bg,s.bg,t.bg,u.bg,v.bg,w.bg,x.bg,y.bg,z.bg,0.bg,1.bg,2.bg,3.bg,4.bg,5.bg,6.bg,7.bg,8.bg,9.bg,bh,com.bh,edu.bh,net.bh,org.bh,gov.bh,bi,co.bi,com.bi,edu.bi,or.bi,org.bi,biz,bj,africa.bj,agro.bj,architectes.bj,assur.bj,avocats.bj,co.bj,com.bj,eco.bj,econo.bj,edu.bj,info.bj,loisirs.bj,money.bj,net.bj,org.bj,ote.bj,resto.bj,restaurant.bj,tourism.bj,univ.bj,bm,com.bm,edu.bm,gov.bm,net.bm,org.bm,bn,com.bn,edu.bn,gov.bn,net.bn,org.bn,bo,com.bo,edu.bo,gob.bo,int.bo,org.bo,net.bo,mil.bo,tv.bo,web.bo,br,9guacu.br,abc.br,adm.br,adv.br,agr.br,aju.br,am.br,anani.br,aparecida.br,app.br,arq.br,art.br,ato.br,b.br,barueri.br,belem.br,bhz.br,bib.br,bio.br,blog.br,bmd.br,boavista.br,bsb.br,campinagrande.br,campinas.br,caxias.br,cim.br,cng.br,cnt.br,com.br,contagem.br,coop.br,coz.br,cri.br,cuiaba.br,curitiba.br,def.br,des.br,det.br,dev.br,ecn.br,eco.br,edu.br,emp.br,enf.br,eng.br,esp.br,etc.br,eti.br,far.br,feira.br,flog.br,floripa.br,fm.br,fnd.br,fortal.br,fot.br,foz.br,fst.br,g12.br,geo.br,ggf.br,goiania.br,gov.br,gru.br,imb.br,ind.br,inf.br,jab.br,jampa.br,jdf.br,joinville.br,jor.br,jus.br,leg.br,lel.br,log.br,londrina.br,macapa.br,maceio.br,manaus.br,maringa.br,mat.br,med.br,mil.br,morena.br,mp.br,mus.br,natal.br,net.br,niteroi.br,nom.br,not.br,ntr.br,odo.br,ong.br,org.br,osasco.br,palmas.br,poa.br,ppg.br,pro.br,psc.br,psi.br,pvh.br,qsl.br,radio.br,rec.br,recife.br,rep.br,ribeirao.br,rio.br,riobranco.br,riopreto.br,salvador.br,sampa.br,santamaria.br,santoandre.br,saobernardo.br,saogonca.br,seg.br,sjc.br,slg.br,slz.br,sorocaba.br,srv.br,taxi.br,tc.br,tec.br,teo.br,the.br,tmp.br,trd.br,tur.br,tv.br,udi.br,vet.br,vix.br,vlog.br,wiki.br,zlg.br,bs,com.bs,net.bs,org.bs,edu.bs,gov.bs,bt,com.bt,edu.bt,gov.bt,net.bt,org.bt,bv,bw,co.bw,org.bw,by,gov.by,mil.by,com.by,of.by,bz,com.bz,net.bz,org.bz,edu.bz,gov.bz,ca,ab.ca,bc.ca,mb.ca,nb.ca,nf.ca,nl.ca,ns.ca,nt.ca,nu.ca,on.ca,pe.ca,qc.ca,sk.ca,yk.ca,gc.ca,cat,cc,cd,gov.cd,cf,cg,ch,ci,org.ci,or.ci,com.ci,co.ci,edu.ci,ed.ci,ac.ci,net.ci,go.ci,asso.ci,aéroport.ci,int.ci,presse.ci,md.ci,gouv.ci,ck,cl,co.cl,gob.cl,gov.cl,mil.cl,cm,co.cm,com.cm,gov.cm,net.cm,cn,ac.cn,com.cn,edu.cn,gov.cn,net.cn,org.cn,mil.cn,co,arts.co,com.co,edu.co,firm.co,gov.co,info.co,int.co,mil.co,net.co,nom.co,org.co,rec.co,web.co,com,coop,cr,ac.cr,co.cr,ed.cr,fi.cr,go.cr,or.cr,sa.cr,cu,com.cu,edu.cu,org.cu,net.cu,gov.cu,inf.cu,cv,com.cv,edu.cv,int.cv,nome.cv,org.cv,cw,com.cw,edu.cw,net.cw,org.cw,cx,gov.cx,cy,ac.cy,biz.cy,com.cy,ekloges.cy,gov.cy,ltd.cy,mil.cy,net.cy,org.cy,press.cy,pro.cy,tm.cy,cz,de,dj,dk,dm,com.dm,net.dm,org.dm,edu.dm,gov.dm,do,art.do,com.do,edu.do,gob.do,gov.do,mil.do,net.do,org.do,sld.do,web.do,dz,art.dz,asso.dz,com.dz,edu.dz,gov.dz,org.dz,net.dz,pol.dz,soc.dz,tm.dz,ec,com.ec,info.ec,net.ec,fin.ec,k12.ec,med.ec,pro.ec,org.ec,edu.ec,gov.ec,gob.ec,mil.ec,edu,ee,edu.ee,gov.ee,riik.ee,lib.ee,med.ee,com.ee,pri.ee,aip.ee,org.ee,fie.ee,eg,com.eg,edu.eg,eun.eg,gov.eg,mil.eg,name.eg,net.eg,org.eg,sci.eg,er,es,com.es,nom.es,org.es,gob.es,edu.es,et,com.et,gov.et,org.et,edu.et,biz.et,name.et,info.et,net.et,eu,fi,aland.fi,fj,ac.fj,biz.fj,com.fj,gov.fj,info.fj,mil.fj,name.fj,net.fj,org.fj,pro.fj,fk,com.fm,edu.fm,net.fm,org.fm,fm,fo,fr,asso.fr,com.fr,gouv.fr,nom.fr,prd.fr,tm.fr,aeroport.fr,avocat.fr,avoues.fr,cci.fr,chambagri.fr,chirurgiens-dentistes.fr,experts-comptables.fr,geometre-expert.fr,greta.fr,huissier-justice.fr,medecin.fr,notaires.fr,pharmacien.fr,port.fr,veterinaire.fr,ga,gb,edu.gd,gov.gd,gd,ge,com.ge,edu.ge,gov.ge,org.ge,mil.ge,net.ge,pvt.ge,gf,gg,co.gg,net.gg,org.gg,gh,com.gh,edu.gh,gov.gh,org.gh,mil.gh,gi,com.gi,ltd.gi,gov.gi,mod.gi,edu.gi,org.gi,gl,co.gl,com.gl,edu.gl,net.gl,org.gl,gm,gn,ac.gn,com.gn,edu.gn,gov.gn,org.gn,net.gn,gov,gp,com.gp,net.gp,mobi.gp,edu.gp,org.gp,asso.gp,gq,gr,com.gr,edu.gr,net.gr,org.gr,gov.gr,gs,gt,com.gt,edu.gt,gob.gt,ind.gt,mil.gt,net.gt,org.gt,gu,com.gu,edu.gu,gov.gu,guam.gu,info.gu,net.gu,org.gu,web.gu,gw,gy,co.gy,com.gy,edu.gy,gov.gy,net.gy,org.gy,hk,com.hk,edu.hk,gov.hk,idv.hk,net.hk,org.hk,hm,hn,com.hn,edu.hn,org.hn,net.hn,mil.hn,gob.hn,hr,iz.hr,from.hr,name.hr,com.hr,ht,com.ht,shop.ht,firm.ht,info.ht,adult.ht,net.ht,pro.ht,org.ht,med.ht,art.ht,coop.ht,pol.ht,asso.ht,edu.ht,rel.ht,gouv.ht,perso.ht,hu,co.hu,info.hu,org.hu,priv.hu,sport.hu,tm.hu,2000.hu,agrar.hu,bolt.hu,casino.hu,city.hu,erotica.hu,erotika.hu,film.hu,forum.hu,games.hu,hotel.hu,ingatlan.hu,jogasz.hu,konyvelo.hu,lakas.hu,media.hu,news.hu,reklam.hu,sex.hu,shop.hu,suli.hu,szex.hu,tozsde.hu,utazas.hu,video.hu,id,ac.id,biz.id,co.id,desa.id,go.id,mil.id,my.id,net.id,or.id,ponpes.id,sch.id,web.id,ie,gov.ie,il,ac.il,co.il,gov.il,idf.il,k12.il,muni.il,net.il,org.il,im,ac.im,co.im,com.im,ltd.co.im,net.im,org.im,plc.co.im,tt.im,tv.im,in,5g.in,6g.in,ac.in,ai.in,am.in,bihar.in,biz.in,business.in,ca.in,cn.in,co.in,com.in,coop.in,cs.in,delhi.in,dr.in,edu.in,er.in,firm.in,gen.in,gov.in,gujarat.in,ind.in,info.in,int.in,internet.in,io.in,me.in,mil.in,net.in,nic.in,org.in,pg.in,post.in,pro.in,res.in,travel.in,tv.in,uk.in,up.in,us.in,info,int,eu.int,io,com.io,iq,gov.iq,edu.iq,mil.iq,com.iq,org.iq,net.iq,ir,ac.ir,co.ir,gov.ir,id.ir,net.ir,org.ir,sch.ir,is,net.is,com.is,edu.is,gov.is,org.is,int.is,it,gov.it,edu.it,je,co.je,net.je,org.je,jm,jo,com.jo,org.jo,net.jo,edu.jo,sch.jo,gov.jo,mil.jo,name.jo,jobs,jp,ac.jp,ad.jp,co.jp,ed.jp,go.jp,gr.jp,lg.jp,ne.jp,or.jp,ke,ac.ke,co.ke,go.ke,info.ke,me.ke,mobi.ke,ne.ke,or.ke,sc.ke,kg,org.kg,net.kg,com.kg,edu.kg,gov.kg,mil.kg,kh,ki,edu.ki,biz.ki,net.ki,org.ki,gov.ki,info.ki,com.ki,km,org.km,nom.km,gov.km,prd.km,tm.km,edu.km,mil.km,ass.km,com.km,kn,net.kn,org.kn,edu.kn,gov.kn,kp,com.kp,edu.kp,gov.kp,org.kp,rep.kp,tra.kp,kr,ac.kr,co.kr,es.kr,go.kr,hs.kr,kg.kr,mil.kr,ms.kr,ne.kr,or.kr,pe.kr,re.kr,sc.kr,kw,com.kw,edu.kw,emb.kw,gov.kw,ind.kw,net.kw,org.kw,ky,com.ky,edu.ky,net.ky,org.ky,kz,org.kz,edu.kz,net.kz,gov.kz,mil.kz,com.kz,la,int.la,net.la,info.la,edu.la,gov.la,per.la,com.la,org.la,lb,com.lb,edu.lb,gov.lb,net.lb,org.lb,lc,com.lc,net.lc,co.lc,org.lc,edu.lc,gov.lc,li,lk,gov.lk,sch.lk,net.lk,int.lk,com.lk,org.lk,edu.lk,ngo.lk,soc.lk,web.lk,ltd.lk,assn.lk,grp.lk,hotel.lk,ac.lk,lr,com.lr,edu.lr,gov.lr,org.lr,net.lr,ls,ac.ls,biz.ls,co.ls,edu.ls,gov.ls,info.ls,net.ls,org.ls,sc.ls,lt,gov.lt,lu,lv,com.lv,edu.lv,gov.lv,org.lv,mil.lv,id.lv,net.lv,asn.lv,conf.lv,ly,com.ly,net.ly,gov.ly,plc.ly,edu.ly,sch.ly,med.ly,org.ly,id.ly,ma,co.ma,net.ma,gov.ma,org.ma,ac.ma,press.ma,mc,tm.mc,asso.mc,md,me,co.me,net.me,org.me,edu.me,ac.me,gov.me,its.me,priv.me,mg,org.mg,nom.mg,gov.mg,prd.mg,tm.mg,edu.mg,mil.mg,com.mg,co.mg,mh,mil,mk,com.mk,org.mk,net.mk,edu.mk,gov.mk,inf.mk,name.mk,ml,com.ml,edu.ml,gouv.ml,gov.ml,net.ml,org.ml,presse.ml,mm,mn,gov.mn,edu.mn,org.mn,mo,com.mo,net.mo,org.mo,edu.mo,gov.mo,mobi,mp,mq,mr,gov.mr,ms,com.ms,edu.ms,gov.ms,net.ms,org.ms,mt,com.mt,edu.mt,net.mt,org.mt,mu,com.mu,net.mu,org.mu,gov.mu,ac.mu,co.mu,or.mu,museum,mv,aero.mv,biz.mv,com.mv,coop.mv,edu.mv,gov.mv,info.mv,int.mv,mil.mv,museum.mv,name.mv,net.mv,org.mv,pro.mv,mw,ac.mw,biz.mw,co.mw,com.mw,coop.mw,edu.mw,gov.mw,int.mw,museum.mw,net.mw,org.mw,mx,com.mx,org.mx,gob.mx,edu.mx,net.mx,my,biz.my,com.my,edu.my,gov.my,mil.my,name.my,net.my,org.my,mz,ac.mz,adv.mz,co.mz,edu.mz,gov.mz,mil.mz,net.mz,org.mz,na,info.na,pro.na,name.na,school.na,or.na,dr.na,us.na,mx.na,ca.na,in.na,cc.na,tv.na,ws.na,mobi.na,co.na,com.na,org.na,name,nc,asso.nc,nom.nc,ne,net,nf,com.nf,net.nf,per.nf,rec.nf,web.nf,arts.nf,firm.nf,info.nf,other.nf,store.nf,ng,com.ng,edu.ng,gov.ng,i.ng,mil.ng,mobi.ng,name.ng,net.ng,org.ng,sch.ng,ni,ac.ni,biz.ni,co.ni,com.ni,edu.ni,gob.ni,in.ni,info.ni,int.ni,mil.ni,net.ni,nom.ni,org.ni,web.ni,nl,no,fhs.no,vgs.no,fylkesbibl.no,folkebibl.no,museum.no,idrett.no,priv.no,mil.no,stat.no,dep.no,kommune.no,herad.no,np,nr,biz.nr,info.nr,gov.nr,edu.nr,org.nr,net.nr,com.nr,nu,nz,ac.nz,co.nz,cri.nz,geek.nz,gen.nz,govt.nz,health.nz,iwi.nz,kiwi.nz,maori.nz,mil.nz,māori.nz,net.nz,org.nz,parliament.nz,school.nz,om,co.om,com.om,edu.om,gov.om,med.om,museum.om,net.om,org.om,pro.om,onion,org,pa,ac.pa,gob.pa,com.pa,org.pa,sld.pa,edu.pa,net.pa,ing.pa,abo.pa,med.pa,nom.pa,pe,edu.pe,gob.pe,nom.pe,mil.pe,org.pe,com.pe,net.pe,pf,com.pf,org.pf,edu.pf,pg,ph,com.ph,net.ph,org.ph,gov.ph,edu.ph,ngo.ph,mil.ph,i.ph,pk,com.pk,net.pk,edu.pk,org.pk,fam.pk,biz.pk,web.pk,gov.pk,gob.pk,gok.pk,gon.pk,gop.pk,gos.pk,info.pk,pl,com.pl,net.pl,org.pl,aid.pl,agro.pl,atm.pl,auto.pl,biz.pl,edu.pl,gmina.pl,gsm.pl,info.pl,mail.pl,miasta.pl,media.pl,mil.pl,nieruchomosci.pl,nom.pl,pc.pl,powiat.pl,priv.pl,realestate.pl,rel.pl,sex.pl,shop.pl,sklep.pl,sos.pl,szkola.pl,targi.pl,tm.pl,tourism.pl,travel.pl,turystyka.pl,pm,pn,gov.pn,co.pn,org.pn,edu.pn,net.pn,post,pr,com.pr,net.pr,org.pr,gov.pr,edu.pr,isla.pr,pro.pr,biz.pr,info.pr,name.pr,est.pr,prof.pr,ac.pr,pro,aaa.pro,aca.pro,acct.pro,avocat.pro,bar.pro,cpa.pro,eng.pro,jur.pro,law.pro,med.pro,recht.pro,ps,edu.ps,gov.ps,sec.ps,plo.ps,com.ps,org.ps,net.ps,pt,net.pt,gov.pt,org.pt,edu.pt,int.pt,publ.pt,com.pt,nome.pt,pw,co.pw,ne.pw,or.pw,ed.pw,go.pw,belau.pw,py,com.py,coop.py,edu.py,gov.py,mil.py,net.py,org.py,qa,com.qa,edu.qa,gov.qa,mil.qa,name.qa,net.qa,org.qa,sch.qa,re,asso.re,com.re,nom.re,ro,arts.ro,com.ro,firm.ro,info.ro,nom.ro,nt.ro,org.ro,rec.ro,store.ro,tm.ro,www.ro,rs,ac.rs,co.rs,edu.rs,gov.rs,in.rs,org.rs,ru,rw,ac.rw,co.rw,coop.rw,gov.rw,mil.rw,net.rw,org.rw,sa,com.sa,net.sa,org.sa,gov.sa,med.sa,pub.sa,edu.sa,sch.sa,sb,com.sb,edu.sb,gov.sb,net.sb,org.sb,sc,com.sc,gov.sc,net.sc,org.sc,edu.sc,sd,com.sd,net.sd,org.sd,edu.sd,med.sd,tv.sd,gov.sd,info.sd,se,a.se,ac.se,b.se,bd.se,brand.se,c.se,d.se,e.se,f.se,fh.se,fhsk.se,fhv.se,g.se,h.se,i.se,k.se,komforb.se,kommunalforbund.se,komvux.se,l.se,lanbib.se,m.se,n.se,naturbruksgymn.se,o.se,org.se,p.se,parti.se,pp.se,press.se,r.se,s.se,t.se,tm.se,u.se,w.se,x.se,y.se,z.se,sg,com.sg,net.sg,org.sg,gov.sg,edu.sg,per.sg,sh,com.sh,net.sh,gov.sh,org.sh,mil.sh,si,sj,sk,sl,com.sl,net.sl,edu.sl,gov.sl,org.sl,sm,sn,art.sn,com.sn,edu.sn,gouv.sn,org.sn,perso.sn,univ.sn,so,com.so,edu.so,gov.so,me.so,net.so,org.so,sr,ss,biz.ss,com.ss,edu.ss,gov.ss,me.ss,net.ss,org.ss,sch.ss,st,co.st,com.st,consulado.st,edu.st,embaixada.st,mil.st,net.st,org.st,principe.st,saotome.st,store.st,su,sv,com.sv,edu.sv,gob.sv,org.sv,red.sv,sx,gov.sx,sy,edu.sy,gov.sy,net.sy,mil.sy,com.sy,org.sy,sz,co.sz,ac.sz,org.sz,tc,td,tel,tf,tg,th,ac.th,co.th,go.th,in.th,mi.th,net.th,or.th,tj,ac.tj,biz.tj,co.tj,com.tj,edu.tj,go.tj,gov.tj,int.tj,mil.tj,name.tj,net.tj,nic.tj,org.tj,test.tj,web.tj,tk,tl,gov.tl,tm,com.tm,co.tm,org.tm,net.tm,nom.tm,gov.tm,mil.tm,edu.tm,tn,com.tn,ens.tn,fin.tn,gov.tn,ind.tn,info.tn,intl.tn,mincom.tn,nat.tn,net.tn,org.tn,perso.tn,tourism.tn,to,com.to,gov.to,net.to,org.to,edu.to,mil.to,tr,av.tr,bbs.tr,bel.tr,biz.tr,com.tr,dr.tr,edu.tr,gen.tr,gov.tr,info.tr,mil.tr,k12.tr,kep.tr,name.tr,net.tr,org.tr,pol.tr,tel.tr,tsk.tr,tv.tr,web.tr,nc.tr,tt,co.tt,com.tt,org.tt,net.tt,biz.tt,info.tt,pro.tt,int.tt,coop.tt,jobs.tt,mobi.tt,travel.tt,museum.tt,aero.tt,name.tt,gov.tt,edu.tt,tv,tw,edu.tw,gov.tw,mil.tw,com.tw,net.tw,org.tw,idv.tw,game.tw,ebiz.tw,club.tw,tz,ac.tz,co.tz,go.tz,hotel.tz,info.tz,me.tz,mil.tz,mobi.tz,ne.tz,or.tz,sc.tz,tv.tz,ua,com.ua,edu.ua,gov.ua,in.ua,net.ua,org.ua,ug,co.ug,or.ug,ac.ug,sc.ug,go.ug,ne.ug,com.ug,org.ug,uk,ac.uk,co.uk,gov.uk,ltd.uk,me.uk,net.uk,nhs.uk,org.uk,plc.uk,police.uk,us,dni.us,fed.us,isa.us,kids.us,nsn.us,ak.us,al.us,ar.us,as.us,az.us,ca.us,co.us,ct.us,dc.us,de.us,fl.us,ga.us,gu.us,hi.us,ia.us,id.us,il.us,in.us,ks.us,ky.us,la.us,ma.us,md.us,me.us,mi.us,mn.us,mo.us,ms.us,mt.us,nc.us,nd.us,ne.us,nh.us,nj.us,nm.us,nv.us,ny.us,oh.us,ok.us,or.us,pa.us,pr.us,ri.us,sc.us,sd.us,tn.us,tx.us,ut.us,vi.us,vt.us,va.us,wa.us,wi.us,wv.us,wy.us,uy,com.uy,edu.uy,gub.uy,mil.uy,net.uy,org.uy,uz,co.uz,com.uz,net.uz,org.uz,va,vc,com.vc,net.vc,org.vc,gov.vc,mil.vc,edu.vc,ve,arts.ve,bib.ve,co.ve,com.ve,e12.ve,edu.ve,firm.ve,gob.ve,gov.ve,info.ve,int.ve,mil.ve,net.ve,nom.ve,org.ve,rar.ve,rec.ve,store.ve,tec.ve,web.ve,vg,vi,co.vi,com.vi,k12.vi,net.vi,org.vi,vn,ac.vn,ai.vn,biz.vn,com.vn,edu.vn,gov.vn,health.vn,id.vn,info.vn,int.vn,io.vn,name.vn,net.vn,org.vn,pro.vn,vu,com.vu,edu.vu,net.vu,org.vu,wf,ws,com.ws,net.ws,org.ws,gov.ws,edu.ws,yt,ye,com.ye,edu.ye,gov.ye,net.ye,mil.ye,org.ye,ac.za,agric.za,alt.za,co.za,edu.za,gov.za,grondar.za,law.za,mil.za,net.za,ngo.za,nic.za,nis.za,nom.za,org.za,school.za,tm.za,web.za,zm,ac.zm,biz.zm,co.zm,com.zm,edu.zm,gov.zm,info.zm,mil.zm,net.zm,org.zm,sch.zm,zw,ac.zw,co.zw,gov.zw,mil.zw,org.zw\".split(\",\");\n//convert to Map\nconst _publicSuffixesMap = {};\npublicSuffixes.forEach(tld => {\n _publicSuffixesMap[tld] = true;\n});\nconst publicSuffixesMap = _publicSuffixesMap;\nfunction getTopLevelDomain(hostname) {\n const [domain] = hostname.split(\":\");\n const parts = domain.split(\".\");\n if (parts[parts.length - 1] === \"localhost\" || parts.length < 2) {\n return parts[parts.length - 1];\n }\n else {\n const d = parts[parts.length - 2] + \".\" + parts[parts.length - 1];\n if (parts.length > 2 && publicSuffixesMap[d]) {\n return parts[parts.length - 3] + \".\" + d;\n }\n else {\n return d;\n }\n }\n}\n\nclass Processor {\n constructor(options) {\n this.selfOptions = options || {};\n this.pipes = {};\n }\n options(options) {\n if (options) {\n this.selfOptions = options;\n }\n return this.selfOptions;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pipe(name, pipeArg) {\n let pipe = pipeArg;\n if (typeof name === \"string\") {\n if (typeof pipe === \"undefined\") {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n return this.pipes[name];\n }\n else {\n this.pipes[name] = pipe;\n }\n }\n if (name && name.name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pipe = name;\n if (pipe.processor === this) {\n return pipe;\n }\n this.pipes[pipe.name] = pipe;\n }\n pipe.processor = this;\n return pipe;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n process(input, pipe) {\n let context = input;\n context.options = this.options();\n let nextPipe = pipe || input.pipe || \"default\";\n let lastPipe;\n while (nextPipe) {\n if (typeof context.nextAfterChildren !== \"undefined\") {\n // children processed and coming back to parent\n context.next = context.nextAfterChildren;\n context.nextAfterChildren = null;\n }\n if (typeof nextPipe === \"string\") {\n nextPipe = this.pipe(nextPipe);\n }\n nextPipe.process(context);\n lastPipe = nextPipe;\n nextPipe = null;\n if (context) {\n if (context.next) {\n context = context.next;\n nextPipe = context.pipe || lastPipe;\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return context.hasResult ? context.result : undefined;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nclass Pipe {\n constructor(name) {\n this.name = name;\n this.filters = [];\n }\n process(input) {\n if (!this.processor) {\n throw new Error(\"add this pipe to a processor before using it\");\n }\n const debug = this.debug;\n const length = this.filters.length;\n const context = input;\n for (let index = 0; index < length; index++) {\n const filter = this.filters[index];\n if (debug) {\n this.log(`filter: ${filter.filterName}`);\n }\n filter(context);\n if (typeof context === \"object\" && context.exiting) {\n context.exiting = false;\n break;\n }\n }\n if (!context.next && this.resultCheck) {\n this.resultCheck(context);\n }\n }\n log(msg) {\n console.log(`[jsondiffpatch] ${this.name} pipe, ${msg}`);\n }\n append(...args) {\n this.filters.push(...args);\n return this;\n }\n prepend(...args) {\n this.filters.unshift(...args);\n return this;\n }\n indexOf(filterName) {\n if (!filterName) {\n throw new Error(\"a filter name is required\");\n }\n for (let index = 0; index < this.filters.length; index++) {\n const filter = this.filters[index];\n if (filter.filterName === filterName) {\n return index;\n }\n }\n throw new Error(`filter not found: ${filterName}`);\n }\n list() {\n return this.filters.map(f => f.filterName);\n }\n after(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index + 1, 0, ...params);\n return this;\n }\n before(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 0, ...params);\n return this;\n }\n replace(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 1, ...params);\n return this;\n }\n remove(filterName) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 1);\n return this;\n }\n clear() {\n this.filters.length = 0;\n return this;\n }\n shouldHaveResult(should) {\n if (should === false) {\n this.resultCheck = null;\n return;\n }\n if (this.resultCheck) {\n return;\n }\n this.resultCheck = context => {\n if (!context.hasResult) {\n console.log(context);\n const error = new Error(`${this.name} failed`);\n error.noResult = true;\n throw error;\n }\n };\n return this;\n }\n}\n\nclass Context {\n setResult(result) {\n this.result = result;\n this.hasResult = true;\n return this;\n }\n exit() {\n this.exiting = true;\n return this;\n }\n push(child, name) {\n child.parent = this;\n if (typeof name !== \"undefined\") {\n child.childName = name;\n }\n child.root = this.root || this;\n child.options = child.options || this.options;\n if (!this.children) {\n this.children = [child];\n this.nextAfterChildren = this.next || null;\n this.next = child;\n }\n else {\n this.children[this.children.length - 1].next = child;\n this.children.push(child);\n }\n child.next = this;\n return this;\n }\n}\n\nclass DiffContext extends Context {\n constructor(left, right) {\n super();\n this.left = left;\n this.right = right;\n this.pipe = \"diff\";\n }\n setResult(result) {\n return super.setResult(result);\n }\n}\n\nclass PatchContext extends Context {\n constructor(left, delta) {\n super();\n this.left = left;\n this.delta = delta;\n this.pipe = \"patch\";\n }\n}\n\nfunction arrayEquals(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\nconst diffFilter$1 = function trivialMatchesDiffFilter(context) {\n if (context.left === context.right) {\n context.setResult(undefined).exit();\n return;\n }\n if (typeof context.left === \"undefined\") {\n if (typeof context.right === \"function\") {\n throw new Error(\"functions are not supported\");\n }\n context.setResult([context.right]).exit();\n return;\n }\n if (typeof context.right === \"undefined\") {\n context.setResult([context.left, 0, 0]).exit();\n return;\n }\n if (typeof context.left === \"function\" || typeof context.right === \"function\") {\n throw new Error(\"functions are not supported\");\n }\n context.leftType = context.left === null ? \"null\" : typeof context.left;\n context.rightType = context.right === null ? \"null\" : typeof context.right;\n if (context.leftType !== context.rightType) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === \"boolean\" || context.leftType === \"number\" || context.leftType === \"string\") {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === \"object\") {\n context.leftIsArray = Array.isArray(context.left);\n }\n if (context.rightType === \"object\") {\n context.rightIsArray = Array.isArray(context.right);\n }\n if (context.leftIsArray !== context.rightIsArray) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftIsArray && context.rightIsArray) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (arrayEquals(context.left, context.right)) {\n context.setResult(undefined).exit();\n return;\n }\n else {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n }\n if (context.left instanceof RegExp) {\n if (context.right instanceof RegExp) {\n context.setResult([context.left.toString(), context.right.toString()]).exit();\n }\n else {\n context.setResult([context.left, context.right]).exit();\n }\n }\n};\ndiffFilter$1.filterName = \"trivial\";\nconst patchFilter$1 = function trivialMatchesPatchFilter(context) {\n if (typeof context.delta === \"undefined\") {\n context.setResult(context.left).exit();\n return;\n }\n context.nested = !Array.isArray(context.delta);\n if (context.nested) {\n return;\n }\n const nonNestedDelta = context.delta;\n if (nonNestedDelta.length === 1) {\n context.setResult(nonNestedDelta[0]).exit();\n return;\n }\n if (nonNestedDelta.length === 2) {\n if (context.left instanceof RegExp) {\n const regexArgs = /^\\/(.*)\\/([gimyu]+)$/.exec(nonNestedDelta[1]);\n if (regexArgs) {\n context.setResult(new RegExp(regexArgs[1], regexArgs[2])).exit();\n return;\n }\n }\n context.setResult(nonNestedDelta[1]).exit();\n return;\n }\n if (nonNestedDelta.length === 3 && nonNestedDelta[2] === 0) {\n context.setResult(undefined).exit();\n }\n};\npatchFilter$1.filterName = \"trivial\";\n\nconst collectChildrenDiffFilter = context => {\n if (!context || !context.children) {\n return;\n }\n const length = context.children.length;\n let child;\n let result = context.result;\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n if (typeof child.result === \"undefined\") {\n continue;\n }\n result = result || {};\n result[child.childName] = child.result;\n }\n if (result && context.leftIsArray) {\n result._t = \"a\";\n }\n context.setResult(result).exit();\n};\ncollectChildrenDiffFilter.filterName = \"collectChildren\";\nconst objectsDiffFilter = context => {\n if (context.leftIsArray || context.leftType !== \"object\") {\n return;\n }\n const left = context.left;\n const right = context.right;\n let name;\n let child;\n const propertyFilter = context.options.propertyFilter;\n for (name in left) {\n if (!Object.prototype.hasOwnProperty.call(left, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n child = new DiffContext(left[name], right[name]);\n context.push(child, name);\n }\n for (name in right) {\n if (!Object.prototype.hasOwnProperty.call(right, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n if (typeof left[name] === \"undefined\") {\n child = new DiffContext(undefined, right[name]);\n context.push(child, name);\n }\n }\n if (!context.children || context.children.length === 0) {\n context.setResult(undefined).exit();\n return;\n }\n context.exit();\n};\nobjectsDiffFilter.filterName = \"objects\";\nconst patchFilter = function nestedPatchFilter(context) {\n if (!context.nested) {\n return;\n }\n const nestedDelta = context.delta;\n if (nestedDelta._t) {\n return;\n }\n const objectDelta = nestedDelta;\n let name;\n let child;\n for (name in objectDelta) {\n child = new PatchContext(context.left[name], objectDelta[name]);\n context.push(child, name);\n }\n context.exit();\n};\npatchFilter.filterName = \"objects\";\nconst collectChildrenPatchFilter = function collectChildrenPatchFilter(context) {\n if (!context || !context.children) {\n return;\n }\n const deltaWithChildren = context.delta;\n if (deltaWithChildren._t) {\n return;\n }\n const object = context.left;\n const length = context.children.length;\n let child;\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n const property = child.childName;\n if (Object.prototype.hasOwnProperty.call(context.left, property) && child.result === undefined) {\n delete object[property];\n }\n else if (object[property] !== child.result) {\n object[property] = child.result;\n }\n }\n context.setResult(object).exit();\n};\ncollectChildrenPatchFilter.filterName = \"collectChildren\";\n\nconst diffFilter = function datesDiffFilter(context) {\n if (context.left instanceof Date) {\n if (context.right instanceof Date) {\n if (context.left.getTime() !== context.right.getTime()) {\n context.setResult([context.left, context.right]);\n }\n else {\n context.setResult(undefined);\n }\n }\n else {\n context.setResult([context.left, context.right]);\n }\n context.exit();\n }\n else if (context.right instanceof Date) {\n context.setResult([context.left, context.right]).exit();\n }\n};\ndiffFilter.filterName = \"dates\";\n\nclass DiffPatcher {\n constructor(options) {\n this.processor = new Processor(options);\n this.processor.pipe(new Pipe(\"diff\")\n .append(collectChildrenDiffFilter, diffFilter$1, diffFilter, objectsDiffFilter)\n .shouldHaveResult());\n this.processor.pipe(new Pipe(\"patch\")\n .append(collectChildrenPatchFilter, patchFilter$1, patchFilter)\n .shouldHaveResult());\n }\n options(options) {\n return this.processor.options(options);\n }\n diff(left, right) {\n return this.processor.process(new DiffContext(left, right));\n }\n patch(left, delta) {\n return this.processor.process(new PatchContext(left, delta));\n }\n}\n\nfunction create(options) {\n return new DiffPatcher(options);\n}\n\n/* global analytics */\nvar __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst diff = create();\nconst defaultConfig = {\n /* Your segment writeKey */\n writeKey: null,\n /* Disable anonymous MTU */\n host: null,\n debug: false,\n fetch: null,\n echoEvents: false,\n cookieDomain: undefined,\n cookieNames: {},\n cookieCapture: {},\n runtime: undefined,\n fetchTimeoutMs: undefined,\n s2s: undefined,\n idEndpoint: undefined,\n errorPolicy: \"log\",\n defaultPayloadContext: {},\n privacy: {\n dontSend: false,\n disableUserIds: false,\n ipPolicy: \"keep\",\n consentCategories: {},\n },\n};\n// mergeConfig merges newConfig into currentConfig also making sure that all undefined values are replaced with defaultConfig values\nconst mergeConfig = (current, newConfig) => {\n for (const key of Object.keys(defaultConfig)) {\n const value = newConfig[key];\n if (key === \"privacy\") {\n if (typeof value === \"object\") {\n current.privacy = Object.assign(Object.assign(Object.assign(Object.assign({}, defaultConfig.privacy), { consentCategories: Object.assign({}, defaultConfig.privacy.consentCategories) }), current.privacy), value);\n }\n else if (typeof value === \"undefined\") {\n if (newConfig.hasOwnProperty(\"privacy\") || !current.hasOwnProperty(\"privacy\")) {\n // explicitly set to undefined - reset to default\n // or was not set at all - set to default\n current.privacy = Object.assign(Object.assign({}, defaultConfig.privacy), { consentCategories: Object.assign({}, defaultConfig.privacy.consentCategories) });\n }\n }\n }\n else if (typeof value === \"undefined\") {\n if (newConfig.hasOwnProperty(key) || !current.hasOwnProperty(key)) {\n // explicitly set to undefined - reset to default\n // or was not set at all - set to default\n current[key] = defaultConfig[key];\n }\n }\n else {\n current[key] = value;\n }\n }\n};\nconst parseQuery = (qs) => {\n if (!qs) {\n return {};\n }\n let queryString = qs.length > 0 && qs.charAt(0) === \"?\" ? qs.substring(1) : qs;\n let query = {};\n let pairs = (queryString[0] === \"?\" ? queryString.substr(1) : queryString).split(\"&\");\n for (let i = 0; i < pairs.length; i++) {\n let pair = pairs[i].split(\"=\");\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || \"\");\n }\n return query;\n};\nfunction utmToKey(key) {\n const name = key.substring(\"utm_\".length);\n return name === \"campaign\" ? \"name\" : name;\n}\nfunction parseUtms(query) {\n return Object.entries(query)\n .filter(([key]) => key.indexOf(\"utm_\") === 0)\n .reduce((acc, [key, value]) => (Object.assign(Object.assign({}, acc), { [utmToKey(key)]: value })), {});\n}\nfunction safeCall(f, defaultVal) {\n try {\n return f();\n }\n catch (e) {\n return defaultVal;\n }\n}\nfunction restoreTraits(storage) {\n let val = storage.getItem(\"__user_traits\");\n if (typeof val === \"string\") {\n val = safeCall(() => JSON.parse(val), {});\n }\n if (typeof val !== \"object\" || val === null || Array.isArray(val)) {\n val = {};\n }\n let groupVal = storage.getItem(\"__group_traits\");\n if (typeof groupVal === \"string\") {\n groupVal = safeCall(() => JSON.parse(groupVal), {});\n }\n if (typeof groupVal !== \"object\" || groupVal === null || Array.isArray(groupVal)) {\n groupVal = {};\n }\n return Object.assign(Object.assign({}, (groupVal || {})), (val || {}));\n}\nfunction getCookie(name) {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n return parts.length === 2 ? parts.pop().split(\";\").shift() : undefined;\n}\nfunction getClientIds(runtime, customCookieCapture) {\n const cookieCapture = Object.assign({ fbc: \"_fbc\", fbp: \"_fbp\" }, customCookieCapture);\n const clientIds = Object.entries(cookieCapture).reduce((acc, [key, cookieName]) => {\n acc[key] = runtime.getCookie(cookieName);\n return acc;\n }, {});\n return Object.assign(Object.assign({}, clientIds), getGa4Ids(runtime));\n}\nfunction parseGa4SessionId(cookieValue) {\n if (typeof cookieValue !== \"string\") {\n return undefined;\n }\n if (cookieValue.startsWith(\"GA1\") || cookieValue.startsWith(\"GS1\")) {\n return cookieValue.split(\".\")[2];\n }\n else {\n // parse new GA4 cookie format, e.g.: GS2.1.s1747323152$o28$g0$t1747323152$j60$l0$h69286059\n const match = cookieValue.match(/^GS\\d+\\.\\d+\\.(?:[\\w_-]+[$])*s(\\d+)(?:$|[$])/);\n return match ? match[1] : undefined;\n }\n}\nfunction getGa4Ids(runtime) {\n var _a;\n const allCookies = runtime.getCookies();\n const clientId = (_a = allCookies[\"_ga\"]) === null || _a === void 0 ? void 0 : _a.split(\".\").slice(-2).join(\".\");\n const gaSessionCookies = Object.entries(allCookies).filter(([key]) => key.startsWith(\"_ga_\"));\n const sessionIds = gaSessionCookies.length > 0\n ? Object.fromEntries(gaSessionCookies\n .map(([key, value]) => {\n const sessionId = parseGa4SessionId(value);\n if (!sessionId) {\n return null;\n }\n return [key.substring(\"_ga_\".length), sessionId];\n })\n .filter(v => v !== null))\n : undefined;\n if (clientId || sessionIds) {\n return { ga4: { clientId, sessionIds } };\n }\n else {\n return undefined;\n }\n}\nfunction removeCookie(name, { domain, secure }) {\n document.cookie =\n name +\n \"=;domain=\" +\n domain +\n \";path=/\" +\n \";expires=Thu, 01 Jan 1970 00:00:01 GMT;SameSite=\" +\n (secure ? \"None\" : \"Lax\") +\n (secure ? \";secure\" : \"\");\n}\nfunction setCookie(name, val, { domain, secure }) {\n document.cookie =\n name +\n \"=\" +\n val +\n \";domain=\" +\n domain +\n \";path=/\" +\n \";expires=\" +\n new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 365 * 5).toUTCString() +\n \";SameSite=\" +\n (secure ? \"None\" : \"Lax\") +\n (secure ? \";secure\" : \"\");\n}\nconst defaultCookie2Key = {\n __anon_id: \"__eventn_id\",\n __user_id: \"__eventn_uid\",\n __user_traits: \"__eventn_id_usr\",\n __group_id: \"__group_id\",\n __group_traits: \"__group_traits\",\n};\nconst cookieStorage = (cookieDomain, key2cookie) => {\n return {\n setItem(key, val) {\n const cookieName = key2cookie(key) || key;\n if (typeof val === \"undefined\") {\n removeCookie(cookieName, {\n domain: cookieDomain,\n secure: window.location.protocol === \"https:\",\n });\n return;\n }\n const strVal = typeof val === \"object\" && val !== null ? encodeURIComponent(JSON.stringify(val)) : val;\n setCookie(cookieName, strVal, {\n domain: cookieDomain,\n secure: window.location.protocol === \"https:\",\n });\n },\n getItem(key) {\n const cookieName = key2cookie(key) || key;\n const result = getCookie(cookieName);\n if (key === \"__anon_id\") {\n //anonymous id must always be a string, so we don't parse it to preserve its exact value\n return result;\n }\n if (typeof result === \"undefined\" && key === \"__user_id\") {\n //backward compatibility with old jitsu cookie. get user id if from traits\n const traits = parse(getCookie(key2cookie(\"__user_traits\") || \"__eventn_id_usr\")) || {};\n return traits.internal_id || traits.user_id || traits.id || traits.userId;\n }\n return parse(result);\n },\n removeItem(key) {\n removeCookie(key2cookie(key) || key, {\n domain: cookieDomain,\n secure: window.location.protocol === \"https:\",\n });\n },\n reset() {\n for (const key of Object.keys(defaultCookie2Key)) {\n removeCookie(key2cookie(key) || key, {\n domain: cookieDomain,\n secure: window.location.protocol === \"https:\",\n });\n }\n },\n };\n};\nfunction windowRuntime(opts) {\n const key2Cookie = (key) => {\n var _a, _b, _c, _d, _e;\n switch (key) {\n case \"__anon_id\":\n return ((_a = opts.cookieNames) === null || _a === void 0 ? void 0 : _a.anonymousId) || defaultCookie2Key.__anon_id;\n case \"__user_id\":\n return ((_b = opts.cookieNames) === null || _b === void 0 ? void 0 : _b.userId) || defaultCookie2Key.__user_id;\n case \"__user_traits\":\n return ((_c = opts.cookieNames) === null || _c === void 0 ? void 0 : _c.userTraits) || defaultCookie2Key.__user_traits;\n case \"__group_id\":\n return ((_d = opts.cookieNames) === null || _d === void 0 ? void 0 : _d.groupId) || defaultCookie2Key.__group_id;\n case \"__group_traits\":\n return ((_e = opts.cookieNames) === null || _e === void 0 ? void 0 : _e.groupTraits) || defaultCookie2Key.__group_traits;\n default:\n return key;\n }\n };\n return {\n getCookie(name) {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n return parts.length === 2 ? parts.pop().split(\";\").shift() : undefined;\n },\n getCookies() {\n const value = `; ${document.cookie}`;\n const cookies = {};\n const matches = value.matchAll(/(\\w+)=([^;]+)/g);\n for (const match of matches) {\n cookies[match[1]] = match[2];\n }\n return cookies;\n },\n documentEncoding() {\n return window.document.characterSet;\n },\n timezoneOffset() {\n return new Date().getTimezoneOffset();\n },\n store() {\n return cookieStorage(opts.cookieDomain || getTopLevelDomain(window.location.hostname), key2Cookie);\n },\n language() {\n return window.navigator.language;\n },\n pageTitle() {\n return window.document.title;\n },\n pageUrl() {\n return window.location.href;\n },\n referrer() {\n return window.document.referrer;\n },\n screen() {\n return {\n width: window.screen.width,\n height: window.screen.height,\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n density: Math.floor(window.devicePixelRatio),\n };\n },\n userAgent() {\n return window.navigator.userAgent;\n },\n };\n}\nfunction createInMemoryStorage(debug) {\n const storage = {};\n return {\n reset() {\n Object.keys(storage).forEach(key => delete storage[key]);\n },\n setItem(key, val) {\n if (debug) {\n console.log(`[JITSU EMPTY RUNTIME] Set storage item ${key}=${JSON.stringify(val)}`);\n }\n if (typeof val === \"undefined\") {\n delete storage[key];\n }\n else {\n storage[key] = val;\n }\n },\n getItem(key) {\n const val = storage[key];\n if (debug) {\n console.log(`[JITSU EMPTY RUNTIME] Get storage item ${key}=${JSON.stringify(val)}`);\n }\n return val;\n },\n removeItem(key) {\n if (debug) {\n console.log(`[JITSU EMPTY RUNTIME] Get storage item ${key}=${storage[key]}`);\n }\n delete storage[key];\n },\n };\n}\nconst emptyRuntime = (config) => ({\n documentEncoding() {\n return undefined;\n },\n timezoneOffset() {\n return undefined;\n },\n getCookie(name) {\n return undefined;\n },\n getCookies() {\n return {};\n },\n store() {\n return createInMemoryStorage(config.debug);\n },\n language() {\n return undefined;\n },\n pageTitle() {\n return undefined;\n },\n pageUrl() {\n return undefined;\n },\n referrer() {\n return undefined;\n },\n screen() {\n return undefined;\n },\n userAgent() {\n return undefined;\n },\n});\nfunction deepCopy(o) {\n if (typeof o !== \"object\") {\n return o;\n }\n if (!o) {\n return o;\n }\n return JSON.parse(JSON.stringify(o));\n}\nfunction deepMerge(target, source) {\n if (typeof source !== \"object\" || source === null) {\n return source;\n }\n if (typeof target !== \"object\" || target === null) {\n return source;\n }\n return Object.entries(source).reduce((acc, [key, value]) => {\n acc[key] = deepMerge(target[key], value);\n return acc;\n }, target);\n}\nfunction isInBrowser() {\n return typeof document !== \"undefined\" && typeof window !== \"undefined\";\n}\n/**\n * Fixes a weird bug in analytics URL where path\n * of https://test.com becomes //test.com\n */\nfunction fixPath(path) {\n if (path.indexOf(\"//\") === 0 && path.lastIndexOf(\"/\") === 1) {\n return \"/\";\n }\n return path;\n}\nconst hashRegex = /#.*$/;\n/**\n * for compatibility with path produced by analytics.js\n * @param url\n */\nfunction urlPath(url) {\n const regex = /(http[s]?:\\/\\/)?([^\\/\\s]+\\/)(.*)/g;\n const matches = regex.exec(url);\n const pathMatch = matches && matches[3] ? matches[3].split(\"?\")[0].replace(hashRegex, \"\") : \"\";\n return \"/\" + pathMatch;\n}\nfunction canonicalUrl() {\n if (!isInBrowser())\n return;\n const tags = document.getElementsByTagName(\"link\");\n for (var i = 0, tag; (tag = tags[i]); i++) {\n if (tag.getAttribute(\"rel\") === \"canonical\") {\n return tag.getAttribute(\"href\");\n }\n }\n}\n/**\n * bugged analytics.js logic that produces 'url' parameter by concating canonical URL with current search part\n * I produces broken results in some cases like SPA where path is changed but canonical URL is not updated\n */\nfunction analyticsJsUrl() {\n if (!isInBrowser())\n return;\n const canonical = canonicalUrl();\n if (!canonical)\n return window.location.href.replace(hashRegex, \"\");\n return canonical.match(/\\?/) ? canonical : canonical + window.location.search;\n}\nfunction adjustPayload(payload, config, storage, s2s) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\n const runtime = config.runtime || (isInBrowser() ? windowRuntime(config) : emptyRuntime(config));\n const url = runtime.pageUrl();\n const parsedUrl = safeCall(() => new URL(url), undefined);\n const query = parsedUrl ? parseQuery(parsedUrl.search) : {};\n const properties = payload.properties || {};\n if (payload.type === \"page\" && (properties.url || url)) {\n // we don't trust analytics.js URL logic since it's sticks with canonical URL on SPA pages\n let targetUrl = url || properties.url;\n if (properties.url && properties.url !== analyticsJsUrl()) {\n // properties.url is not the same as provided by analytics.js\n // it means that it was not overridden by user and we should use it\n targetUrl = properties.url;\n }\n properties.url = targetUrl.replace(hashRegex, \"\");\n properties.path = fixPath(urlPath(targetUrl));\n // other properties are correctly based on window.location in analytics.js\n }\n const customContext = deepMerge(config.defaultPayloadContext, ((_a = payload.properties) === null || _a === void 0 ? void 0 : _a.context) || ((_b = payload.options) === null || _b === void 0 ? void 0 : _b.context) || {});\n (_c = payload.properties) === null || _c === void 0 ? true : delete _c.context;\n const referrer = runtime.referrer();\n const context = {\n library: {\n name: jitsuLibraryName,\n version: jitsuVersion,\n env: isInBrowser() ? \"browser\" : \"node\",\n },\n consent: typeof ((_d = config.privacy) === null || _d === void 0 ? void 0 : _d.consentCategories) === \"object\" && Object.keys((_e = config.privacy) === null || _e === void 0 ? void 0 : _e.consentCategories).length\n ? {\n categoryPreferences: config.privacy.consentCategories,\n }\n : undefined,\n userAgent: (_f = runtime.userAgent) === null || _f === void 0 ? void 0 : _f.call(runtime),\n locale: (_g = runtime.language) === null || _g === void 0 ? void 0 : _g.call(runtime),\n screen: (_h = runtime.screen) === null || _h === void 0 ? void 0 : _h.call(runtime),\n ip: (_j = runtime === null || runtime === void 0 ? void 0 : runtime.ip) === null || _j === void 0 ? void 0 : _j.call(runtime),\n traits: payload.type != \"identify\" && payload.type != \"group\"\n ? Object.assign(Object.assign({}, (restoreTraits(storage) || {})), (((_k = payload === null || payload === void 0 ? void 0 : payload.options) === null || _k === void 0 ? void 0 : _k.traits) || {})) : undefined,\n page: {\n path: properties.path || (parsedUrl && parsedUrl.pathname),\n referrer: referrer,\n referring_domain: safeCall(() => referrer && new URL(referrer).hostname),\n host: parsedUrl && parsedUrl.host,\n search: properties.search || (parsedUrl && parsedUrl.search),\n title: properties.title || runtime.pageTitle(),\n url: properties.url || url,\n encoding: properties.encoding || runtime.documentEncoding(),\n },\n clientIds: !((_l = config.privacy) === null || _l === void 0 ? void 0 : _l.disableUserIds) ? getClientIds(runtime, config.cookieCapture) : undefined,\n campaign: parseUtms(query),\n };\n const withContext = Object.assign(Object.assign({}, payload), { userId: ((_m = payload === null || payload === void 0 ? void 0 : payload.options) === null || _m === void 0 ? void 0 : _m.userId) || (payload === null || payload === void 0 ? void 0 : payload.userId), anonymousId: ((_o = payload === null || payload === void 0 ? void 0 : payload.options) === null || _o === void 0 ? void 0 : _o.anonymousId) || (payload === null || payload === void 0 ? void 0 : payload.anonymousId), groupId: ((_p = payload === null || payload === void 0 ? void 0 : payload.options) === null || _p === void 0 ? void 0 : _p.groupId) || storage.getItem(\"__group_id\"), timestamp: new Date().toISOString(), sentAt: new Date().toISOString(), messageId: randomId(properties.path || (parsedUrl && parsedUrl.pathname)), writeKey: maskWriteKey(config.writeKey), context: deepMerge(context, customContext) });\n delete withContext.meta;\n delete withContext.options;\n if ((_q = config.privacy) === null || _q === void 0 ? void 0 : _q.disableUserIds) {\n delete withContext.userId;\n delete withContext.anonymousId;\n delete withContext.context.traits;\n delete withContext.groupId;\n }\n return withContext;\n}\nfunction isDiff(obj) {\n const keys = Object.keys(obj);\n return keys.length === 1 && keys[0] === \"__diff\";\n}\nfunction processDestinations(destinations, method, originalEvent, debug, analyticsInstance) {\n return __awaiter$1(this, void 0, void 0, function* () {\n const promises = [];\n for (const destination of destinations) {\n let newEvents = [];\n if (destination.newEvents) {\n try {\n newEvents = destination.newEvents.map(e => e === \"same\" ? deepCopy(originalEvent) : isDiff(e) ? diff.patch(deepCopy(originalEvent), e.__diff) : e);\n }\n catch (e) {\n console.error(`[JITSU] Error applying '${destination.id}' changes to event: ${e === null || e === void 0 ? void 0 : e.message}`, e);\n }\n }\n else {\n newEvents = [deepCopy(originalEvent)];\n }\n const credentials = Object.assign(Object.assign({}, destination.credentials), destination.options);\n if (destination.deviceOptions.type === \"internal-plugin\") {\n const plugin = internalDestinationPlugins[destination.deviceOptions.name];\n if (plugin) {\n for (const event of newEvents) {\n try {\n promises.push(plugin.handle(Object.assign(Object.assign({}, credentials), { debug }), event));\n }\n catch (e) {\n console.warn(`[JITSU] Error processing event with internal plugin '${destination.deviceOptions.name}': ${e === null || e === void 0 ? void 0 : e.message}`, e);\n }\n }\n }\n else {\n console.warn(`[JITSU] Unknown internal plugin '${destination.deviceOptions.name}' for destination '${destination.id}'`);\n }\n }\n else if (destination.deviceOptions.type === \"analytics-plugin\") {\n yield loadScript(destination.deviceOptions.packageCdn);\n const plugin = window[destination.deviceOptions.moduleVarName];\n if (!plugin) {\n console.warn(`[JITSU] Broken plugin '${destination.deviceOptions.packageCdn}' for destination '${destination.id}' - it doesn't export '${destination.deviceOptions.moduleVarName}' variable`);\n }\n else {\n let pluginInstance;\n try {\n pluginInstance = (typeof plugin === \"function\" ? plugin : plugin.init)(credentials);\n }\n catch (e) {\n console.warn(`[JITSU] Error creating plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e === null || e === void 0 ? void 0 : e.message}`, e);\n }\n try {\n if (debug) {\n console.log(`[JITSU] Plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}' initialized with config:`, pluginInstance.config);\n }\n pluginInstance.initialize({ config: pluginInstance.config, instance: analyticsInstance });\n }\n catch (e) {\n console.warn(`[JITSU] Error initializing plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e === null || e === void 0 ? void 0 : e.message}. Config: ${JSON.stringify(pluginInstance.config)}`, e);\n continue;\n }\n if (pluginInstance[method]) {\n for (const event of newEvents) {\n try {\n pluginInstance[method]({\n payload: event,\n config: pluginInstance.config,\n instance: analyticsInstance,\n });\n }\n catch (e) {\n console.warn(`[JITSU] Error processing ${method}() with plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e === null || e === void 0 ? void 0 : e.message}`, e);\n }\n }\n }\n }\n }\n }\n });\n}\nfunction looksLikeCuid(id) {\n return id.length === 25 && id.charAt(0) === \"c\";\n}\nfunction validateWriteKey(writeKey) {\n if (writeKey) {\n const [, secret] = writeKey.split(\":\", 2);\n if (!secret && !looksLikeCuid(writeKey)) {\n throw new Error(`Legacy write key detected - ${writeKey}! This format doesn't work anymore, it should be 'key:secret'. Please download a new key from Jitsu UI`);\n }\n }\n return writeKey;\n}\nfunction maskWriteKey(writeKey) {\n if (writeKey) {\n const [id, secret] = writeKey.split(\":\", 2);\n if (secret) {\n return `${id}:***`;\n }\n else {\n return \"***\";\n }\n }\n return writeKey;\n}\nfunction getErrorHandler(opts) {\n const configuredHandler = opts.errorPolicy || \"log\";\n if (typeof configuredHandler === \"function\") {\n return configuredHandler;\n }\n else if (configuredHandler === \"rethrow\") {\n return (msg, ...args) => {\n //ignore args, not clear what to do with them\n throw new Error(msg);\n };\n }\n else {\n return (msg, ...args) => {\n console.error(msg, ...args);\n };\n }\n}\nfunction send(method, payload, jitsuConfig, instance, store) {\n return __awaiter$1(this, void 0, void 0, function* () {\n var _a, _b;\n const s2s = !!jitsuConfig.s2s;\n const debugHeader = jitsuConfig.debug ? { \"X-Enable-Debug\": \"true\" } : {};\n const adjustedPayload = adjustPayload(payload, jitsuConfig, store);\n if (jitsuConfig.echoEvents) {\n console.log(`[JITSU DEBUG] sending '${method}' event:`, adjustedPayload);\n return;\n }\n const url = s2s ? `${jitsuConfig.host}/api/s/s2s/${method}` : `${jitsuConfig.host}/api/s/${method}`;\n const fetch = jitsuConfig.fetch || globalThis.fetch;\n if (!fetch) {\n //don't run it through error handler since error is critical and should be addressed\n throw new Error(\"Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope\");\n }\n const abortController = jitsuConfig.fetchTimeoutMs ? new AbortController() : undefined;\n const abortTimeout = jitsuConfig.fetchTimeoutMs\n ? setTimeout(() => {\n abortController.abort();\n }, jitsuConfig.fetchTimeoutMs)\n : undefined;\n const authHeader = jitsuConfig.writeKey ? { \"X-Write-Key\": jitsuConfig.writeKey } : {};\n const ipHeader = typeof ((_a = jitsuConfig.privacy) === null || _a === void 0 ? void 0 : _a.ipPolicy) === \"undefined\" || ((_b = jitsuConfig.privacy) === null || _b === void 0 ? void 0 : _b.ipPolicy) === \"keep\"\n ? {}\n : { \"X-IP-Policy\": jitsuConfig.privacy.ipPolicy };\n let fetchResult;\n try {\n fetchResult = yield fetch(url, {\n method: \"POST\",\n headers: Object.assign(Object.assign(Object.assign({ \"Content-Type\": \"application/json\" }, authHeader), debugHeader), ipHeader),\n body: JSON.stringify(adjustedPayload),\n signal: abortController === null || abortController === void 0 ? void 0 : abortController.signal,\n });\n if (abortTimeout) {\n clearTimeout(abortTimeout);\n }\n }\n catch (e) {\n getErrorHandler(jitsuConfig)(`Call to ${url} failed with error ${e.message}`);\n return Promise.resolve();\n }\n let responseText;\n try {\n responseText = yield fetchResult.text();\n }\n catch (e) {\n console.warn(`Can't read response text from ${url} (status - ${fetchResult.status} ${fetchResult.statusText}): ${e === null || e === void 0 ? void 0 : e.message}`);\n }\n if (jitsuConfig.debug) {\n console.log(`[JITSU DEBUG] ${url} replied ${fetchResult.status}: ${responseText}. Original payload:\\n${JSON.stringify(adjustedPayload, null, 2)}`);\n }\n if (!fetchResult.ok) {\n getErrorHandler(jitsuConfig)(`Call to ${url} failed with error: ${fetchResult.status} - ${fetchResult.statusText}: ${responseText}`);\n return Promise.resolve();\n }\n let responseJson;\n try {\n responseJson = JSON.parse(responseText);\n }\n catch (e) {\n getErrorHandler(jitsuConfig)(`Can't parse JSON: ${responseText}: ${e === null || e === void 0 ? void 0 : e.message}`);\n return Promise.resolve();\n }\n if (responseJson.destinations && responseJson.destinations.length > 0) {\n if (jitsuConfig.s2s) {\n console.warn(`[JITSU] ${payload.type} responded with list of ${responseJson.destinations.length} destinations. However, this code is running in server-to-server mode, so destinations will be ignored`, jitsuConfig.debug ? JSON.stringify(responseJson.destinations, null, 2) : undefined);\n }\n else {\n //double protection, ingest should not return destinations in s2s mode\n if (isInBrowser()) {\n if (jitsuConfig.debug) {\n console.log(`[JITSU] Processing device destinations: `, JSON.stringify(responseJson.destinations, null, 2));\n }\n return processDestinations(responseJson.destinations, method, adjustedPayload, !!jitsuConfig.debug, instance);\n }\n }\n }\n return adjustedPayload;\n });\n}\nconst controllingTraits = [\"$doNotSend\"];\n/**\n * Remove all members of traits that controls identify/group behavior (see analytics.d.ts), and should not be recorded. Returns\n * copy of the object with these members removed.\n *\n * Do not modify traits object, but creates one\n * @param traits\n */\nfunction stripControllingTraits(traits) {\n const res = Object.assign({}, traits);\n // see Traits definition in analytics.d.ts. We cannot define const here, so here's a little code duplication\n for (const key of controllingTraits) {\n delete res[key];\n }\n return res;\n}\nconst jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {\n // just to make sure that all undefined values are replaced with defaultConfig values\n mergeConfig(jitsuOptions, jitsuOptions);\n return {\n name: \"jitsu\",\n config: jitsuOptions,\n initialize: (args) => __awaiter$1(void 0, void 0, void 0, function* () {\n const { config } = args;\n if (config.debug) {\n console.debug(\"[JITSU DEBUG] Initializing Jitsu plugin with config: \", JSON.stringify(config, null, 2));\n }\n if (!config.host && !config.echoEvents) {\n throw new Error(\"Please specify host variable in jitsu plugin initialization, or set echoEvents to true\");\n }\n validateWriteKey(config.writeKey);\n if (config.idEndpoint) {\n if (!isInBrowser()) {\n console.error(`[JITSU] 'idEndpoint' option can be used only in browser environment`);\n return;\n }\n try {\n const fetch = config.fetch || globalThis.fetch;\n const controller = new AbortController();\n setTimeout(() => controller.abort(), 1000);\n const domain = config.cookieDomain || getTopLevelDomain(window.location.hostname);\n const res = yield fetch(config.idEndpoint + \"?domain=\" + encodeURIComponent(domain), {\n credentials: \"include\",\n signal: controller.signal,\n });\n if (!res.ok) {\n console.error(`[JITSU] Can't fetch idEndpoint: ${res.status} - ${res.statusText}`);\n }\n else if (config.debug) {\n console.log(`[JITSU DEBUG] Fetch idEndpoint: ${res.status}`);\n }\n }\n catch (e) {\n console.error(`[JITSU] Can't fetch idEndpoint: ${e.message}`);\n }\n }\n }),\n page: args => {\n var _a;\n const { payload, config, instance } = args;\n if ((_a = config.privacy) === null || _a === void 0 ? void 0 : _a.dontSend) {\n return;\n }\n return send(\"page\", payload, config, instance, storage);\n },\n track: args => {\n var _a;\n const { payload, config, instance } = args;\n if ((_a = config.privacy) === null || _a === void 0 ? void 0 : _a.dontSend) {\n return;\n }\n return send(\"track\", payload, config, instance, storage);\n },\n identify: args => {\n var _a, _b, _c;\n const { payload, config, instance } = args;\n if (((_a = config.privacy) === null || _a === void 0 ? void 0 : _a.dontSend) || ((_b = config.privacy) === null || _b === void 0 ? void 0 : _b.disableUserIds)) {\n return;\n }\n // Store traits in cache to be able to use them in page and track events that run asynchronously with current identify.\n storage.setItem(\"__user_id\", payload.userId);\n const doNotSend = (_c = payload.traits) === null || _c === void 0 ? void 0 : _c.$doNotSend;\n if (payload.traits && typeof payload.traits === \"object\") {\n payload.traits = stripControllingTraits(payload.traits);\n storage.setItem(\"__user_traits\", payload.traits);\n }\n if (doNotSend) {\n return Promise.resolve();\n }\n return send(\"identify\", payload, config, instance, storage);\n },\n reset: args => {\n const { config, instance } = args;\n storage.reset();\n if (config.debug) {\n console.log(\"[JITSU DEBUG] Resetting Jitsu plugin storage\");\n }\n },\n methods: {\n //analytics doesn't support group as a base method, so we need to add it manually\n configure(newOptions) {\n var _a, _b, _c, _d;\n const idsWasDisabled = ((_a = jitsuOptions.privacy) === null || _a === void 0 ? void 0 : _a.disableUserIds) || ((_b = jitsuOptions.privacy) === null || _b === void 0 ? void 0 : _b.dontSend);\n mergeConfig(jitsuOptions, newOptions);\n const idsDisabledNow = ((_c = jitsuOptions.privacy) === null || _c === void 0 ? void 0 : _c.disableUserIds) || ((_d = jitsuOptions.privacy) === null || _d === void 0 ? void 0 : _d.dontSend);\n if (!idsDisabledNow && idsWasDisabled) {\n if (jitsuOptions.debug) {\n console.log(\"[JITSU] Enabling Anonymous ID. Generating new Id.\");\n }\n const instance = this.instance;\n const newAnonymousId = uuid();\n const userState = instance.user();\n if (userState) {\n userState.anonymousId = newAnonymousId;\n }\n storage.setItem(\"__anon_id\", newAnonymousId);\n instance.setAnonymousId(newAnonymousId);\n }\n },\n group(groupId, traits, options, callback) {\n var _a, _b;\n if (((_a = jitsuOptions.privacy) === null || _a === void 0 ? void 0 : _a.dontSend) || ((_b = jitsuOptions.privacy) === null || _b === void 0 ? void 0 : _b.disableUserIds)) {\n return;\n }\n if (typeof groupId === \"number\") {\n //fix potential issues with group id being used incorrectly\n groupId = groupId + \"\";\n }\n const instance = this.instance;\n const user = instance.user();\n const userId = (options === null || options === void 0 ? void 0 : options.userId) || (user === null || user === void 0 ? void 0 : user.userId);\n const anonymousId = (options === null || options === void 0 ? void 0 : options.anonymousId) || (user === null || user === void 0 ? void 0 : user.anonymousId) || storage.getItem(\"__anon_id\");\n storage.setItem(\"__group_id\", groupId);\n const doNotSend = traits === null || traits === void 0 ? void 0 : traits.$doNotSend;\n if (traits && typeof traits === \"object\") {\n traits = stripControllingTraits(traits);\n storage.setItem(\"__group_traits\", traits);\n }\n if (doNotSend) {\n return Promise.resolve();\n }\n return send(\"group\", Object.assign(Object.assign({ type: \"group\", groupId, traits }, (anonymousId ? { anonymousId } : {})), (userId ? { userId } : {})), jitsuOptions, instance, storage);\n },\n },\n };\n};\nlet seedCounter = 0;\nfunction getSeed() {\n var _a;\n seedCounter = (seedCounter + 1) % Number.MAX_SAFE_INTEGER;\n const defaultSeed = Date.now() % 2147483647;\n const seed = isInBrowser() ? ((_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.now()) || defaultSeed : defaultSeed;\n return seed + seedCounter;\n}\nfunction randomId(hashString = \"\") {\n const d = Date.now();\n return (((Math.random() * d * hash(hashString !== null && hashString !== void 0 ? hashString : \"\", getSeed())) % Number.MAX_SAFE_INTEGER).toString(36) +\n ((Math.random() * d * hash(hashString !== null && hashString !== void 0 ? hashString : \"\", getSeed())) % Number.MAX_SAFE_INTEGER).toString(36));\n}\nfunction uuid() {\n var u = \"\", m = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\", i = 0, rb = (Math.random() * 0xffffffff) | 0;\n while (i++ < 36) {\n var c = m[i - 1], r = rb & 0xf, v = c == \"x\" ? r : (r & 0x3) | 0x8;\n u += c == \"-\" || c == \"4\" ? c : v.toString(16);\n rb = i % 8 == 0 ? (Math.random() * 0xffffffff) | 0 : rb >> 4;\n }\n return u;\n}\nfunction hash(str, seed = 0) {\n let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n return 4294967296 * (2097151 & h2) + (h1 >>> 0);\n}\n\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nfunction parse(input) {\n let value = input;\n if ((input === null || input === void 0 ? void 0 : input.indexOf(\"%7B%22\")) === 0) {\n value = decodeURIComponent(input);\n }\n try {\n value = JSON.parse(value);\n if (value === \"true\")\n return true;\n if (value === \"false\")\n return false;\n if (typeof value === \"object\")\n return value;\n if (parseFloat(value) === value) {\n value = parseFloat(value);\n }\n }\n catch (e) { }\n if (value === null || value === \"\") {\n return;\n }\n return value;\n}\nconst emptyAnalytics = {\n setAnonymousId: () => { },\n setContextProperty(name, value) { },\n getContextProperty(name) {\n return undefined;\n },\n track: () => Promise.resolve(),\n page: () => Promise.resolve(),\n user: () => ({}),\n identify: () => Promise.resolve({}),\n group: () => Promise.resolve({}),\n reset: () => Promise.resolve({}),\n configure: () => { },\n getConfiguration() {\n return {};\n },\n};\nfunction createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {\n var _a, _b, _c;\n const storageCache = {};\n // AnalyticsInstance's storage is async somewhere inside. So if we make 'page' call right after 'identify' call\n // 'page' call will load traits from storage before 'identify' call had a change to save them.\n // to avoid that we use in-memory cache for storage\n const cachingStorageWrapper = (persistentStorage) => ({\n setItem(key, val) {\n var _a, _b;\n if (((_a = opts.privacy) === null || _a === void 0 ? void 0 : _a.dontSend) || ((_b = opts.privacy) === null || _b === void 0 ? void 0 : _b.disableUserIds)) {\n return;\n }\n if (opts.debug) {\n console.log(`[JITSU DEBUG] Caching storage setItem: ${key}=${val}`);\n }\n storageCache[key] = val;\n persistentStorage.setItem(key, val);\n },\n getItem(key) {\n var _a, _b;\n if (((_a = opts.privacy) === null || _a === void 0 ? void 0 : _a.dontSend) || ((_b = opts.privacy) === null || _b === void 0 ? void 0 : _b.disableUserIds)) {\n return;\n }\n const value = storageCache[key] || persistentStorage.getItem(key);\n if (opts.debug) {\n console.log(`[JITSU DEBUG] Caching storage getItem: ${key}=${value}. Evicted from cache: ${!storageCache[key]}`);\n }\n return value;\n },\n reset() {\n for (const key of [...Object.keys(storageCache)]) {\n delete storageCache[key];\n }\n persistentStorage.reset();\n },\n removeItem(key) {\n if (opts.debug) {\n console.log(`[JITSU DEBUG] Caching storage removeItem: ${key}`);\n }\n delete storageCache[key];\n persistentStorage.removeItem(key);\n },\n });\n const storage = cachingStorageWrapper(((_a = rt.store) === null || _a === void 0 ? void 0 : _a.call(rt)) || createInMemoryStorage(opts.debug));\n const analytics = analyticsLib({\n debug: !!opts.debug,\n storage,\n plugins: [jitsuAnalyticsPlugin(opts, storage), ...plugins],\n });\n const a = Object.assign(Object.assign({}, analytics), { page: (...args) => {\n if (args.length === 2 && typeof args[0] === \"string\" && typeof args[1] === \"object\") {\n return analytics.page(Object.assign({ name: args[0] }, args[1]));\n }\n else {\n return analytics.page(...args);\n }\n }, identify: (...args) => {\n if (args[0] && typeof args[0] !== \"object\" && typeof args[0] !== \"string\") {\n //fix the quirk of analytics.js: if you pass number as first argument, it will be converted to string\n args[0] = args[0] + \"\";\n }\n //analytics.js sets userId and traits asynchronously, so if\n //we want them to be available immediately after identify call in subsequent page() calls,\n //we need to put them into storage manually\n const storage = analytics.storage;\n const storageWrapper = cachingStorageWrapper(storage);\n if (typeof args[0] === \"string\") {\n //first argument is user id\n storageWrapper.setItem(\"__user_id\", args[0]);\n }\n else if (typeof args[0] === \"object\") {\n //first argument is traits\n storageWrapper.setItem(\"__user_traits\", args[0]);\n }\n if (args.length === 2 && typeof args[1] === \"object\") {\n //first argument is user id, second is traits\n storageWrapper.setItem(\"__user_traits\", args[1]);\n }\n return analytics.identify(...args);\n }, setContextProperty(name, value) {\n if (opts.debug) {\n console.log(`[JITSU DEBUG] Setting context property '${name}':${JSON.stringify(value)}`);\n }\n if (!opts.defaultPayloadContext) {\n opts.defaultPayloadContext = {\n [name]: value,\n };\n }\n else {\n opts.defaultPayloadContext[name] = value;\n }\n },\n getContextProperty(name) {\n var _a;\n if (opts.debug) {\n console.log(`[JITSU DEBUG] Getting context property '${name}'`);\n }\n return (_a = opts.defaultPayloadContext) === null || _a === void 0 ? void 0 : _a[name];\n }, setAnonymousId: (id) => {\n if (opts.debug) {\n console.log(\"[JITSU DEBUG] Setting anonymous id to \" + id);\n }\n //Workaround for analytics.js bug. Underlying setAnonymousId doesn't set the id immediately,\n //so we got to it manually here. See https://github.com/jitsucom/jitsu/issues/1060\n storage.setItem(\"__anon_id\", id);\n const userState = analytics.user();\n if (userState) {\n userState.anonymousId = id;\n }\n analytics.setAnonymousId(id);\n }, reset() {\n return __awaiter(this, void 0, void 0, function* () {\n if (opts.debug) {\n console.log(\"[JITSU DEBUG] Called reset(). Storage state\", JSON.stringify(analytics.user()));\n }\n storage.reset();\n yield analytics.reset();\n this.setAnonymousId(uuid());\n if (opts.debug) {\n console.log(\"[JITSU DEBUG] User state after reset\", JSON.stringify(analytics.user()));\n }\n });\n },\n configure(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n if (opts.debug) {\n console.log(\"[JITSU DEBUG] Update Jitsu config with\", JSON.stringify(options));\n }\n if (((_a = options.privacy) === null || _a === void 0 ? void 0 : _a.disableUserIds) || ((_b = options.privacy) === null || _b === void 0 ? void 0 : _b.dontSend)) {\n storage.reset();\n }\n for (const plugin of Object.values(analytics.plugins)) {\n if (typeof plugin[\"configure\"] === \"function\") {\n plugin[\"configure\"](options);\n }\n }\n });\n },\n group(groupId, traits, options, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const results = [];\n for (const plugin of Object.values(analytics.plugins)) {\n if (plugin[\"group\"]) {\n results.push(yield plugin[\"group\"](groupId, traits, options, callback));\n }\n }\n //It's incorrect at many levels. First, it's not a dispatched event. Second, we take a first result\n //However, since returned values are used for debugging purposes only, it's ok\n return results[0];\n });\n },\n getConfiguration() {\n return opts;\n } });\n if (((_b = opts.privacy) === null || _b === void 0 ? void 0 : _b.disableUserIds) || ((_c = opts.privacy) === null || _c === void 0 ? void 0 : _c.dontSend)) {\n storage.reset();\n }\n return a;\n}\n/**\n * Fix common mistakes in jitsu configuration\n * @param opts\n */\nfunction fixOptions(opts) {\n var _a, _b;\n return Object.assign(Object.assign({}, opts), { host: ((_a = opts.host) !== null && _a !== void 0 ? _a : \"\").indexOf(\"https://\") !== 0 && ((_b = opts.host) !== null && _b !== void 0 ? _b : \"\").indexOf(\"http://\") !== 0\n ? `https://${opts.host}`\n : opts.host });\n}\nfunction jitsuAnalytics(_opts) {\n const opts = fixOptions(_opts);\n const inBrowser = isInBrowser();\n const rt = opts.runtime || (inBrowser ? windowRuntime(opts) : emptyRuntime(opts));\n return createUnderlyingAnalyticsInstance(opts, rt);\n // if (inBrowser) {\n // const fetch = opts.fetch || globalThis.fetch;\n // if (!fetch) {\n // throw new Error(\n // \"Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope\"\n // );\n // }\n // const url = `${opts.host}/api/s/cfg`;\n // const authHeader = {};\n // const debugHeader = opts.debug ? { \"X-Enable-Debug\": \"true\" } : {};\n // fetch(url)\n // .then(res => res.json())\n // .then(res => {\n // result.loaded(createUnderlyingAnalyticsInstance(opts, rt, []));\n // })\n // .catch(e => {\n // console.warn(`[JITSU] error getting device-destinations from ${url}`, e);\n // result.loaded(createUnderlyingAnalyticsInstance(opts, rt));\n // });\n // } else {\n // result.loaded(createUnderlyingAnalyticsInstance(opts, rt));\n // }\n}\n\nexport { createInMemoryStorage, emptyAnalytics, emptyRuntime, isInBrowser, jitsuAnalytics, jitsuAnalyticsPlugin, parseQuery, randomId, uuid, windowRuntime };\n"],"names":["InitStaticSections","constructor","Salla","event","on","this","renderAll","registerOrderSingleRatingPopupTrigger","registerWishlistNavIconMount","registerFreeShippingBannerMount","registerFreeShippingTagMount","hooks","renderAutoComponents","hook","tag","canRender","url","is_page","config","get","includes","_Salla$config$get","_Salla$config$get2","lang","onLoaded","renderAppInstall","renderEdit","applyContentCopyright","renderTemplateStore","helpers","isIframe","renderMaintenance","renderThemePreview","_orderSingleRatingPopupTriggerRegistered","registerHook","component","name","URLSearchParams","window","location","search","once","dispatch","URL","href","searchParams","delete","history","replaceState","state","toString","_freeShippingBannerMountRegistered","placements","placement","banner","document","createElement","setAttribute","mount","_freeShippingTagMountRegistered","productId","_wishlistNavIconMountRegistered","mountWishlistIconFor","userMenu","_userMenu$nextElement","hasAttribute","nextElementSibling","tagName","salla","isGuest","insertAdjacentElement","userMenuComponent","host","querySelectorAll","forEach","body","classList","add","querySelector","logger","warn","prepend","append","storage","isMobileApp","alertElement","id","innerHTML","edit","addEventListener","e","element","_element$tagName","toLowerCase","isInputElement","target","preventDefault","key","ctrlKey","shiftKey","stopPropagation","style","textContent","n$2","t","l","n","varName","split","length","r","o$1","F$2","process","env","NODE_ENV","$$1","M$1","charAt","slice","versions","node","Deno","core","navigator","userAgent","U$1","bind","H$1","J$2","Y$1","W$1","yn","Object","prototype","call","R$1","V$1","q$1","I$2","Q$1","un","getPrototypeOf","hn","Error","message","isNaN","nn","stackTraceLimit","On","$n","Element","HTMLDocument","nodeName","toUpperCase","Tn","_n","arguments","apply","concat","n$1","decodeURIComponent","replace","m$2","o","a","y$1","Math","random","TypeError","SyntaxError","j$1","self","global","a$2","f","i$2","u$1","b$2","c$1","e$1","setItem","removeItem","g$1","assign","hasOwnProperty","h$1","v$1","y","b$1","Symbol","observable","I$1","w","i","u","s","d","push","indexOf","splice","p","type","subscribe","getState","replaceReducer","next","unsubscribe","E$1","P","reduce","S","c","map","N$1","A$1","_","j","k$1","x$1","T","z","registerPluginType","pluginReadyType","M","q","V","C$1","bootstrap","params","user","persistedUser","initialUser","userId","anonymousId","traits","keys","an_uid","an_event","match","campaign","props","raw","setTimeout","identify","track","U","setItemEnd","value","reset","R","getItem","$","D","options","userIdChanged","old","new","B","L$1","J$1","Promise","queue","then","X","abort","H","data","action","instance","allPlugins","allMatches","store","EVENTS","plugins","context","m","W","h","exact","pluginName","during","v","ne","JSON","stringify","reason","caller","payload","ae","methodName","loaded","offline","resolve","namespaced","method","ie","join","from","Q","reject","ee","K","plugin","called","F$1","G$1","originalAction","te","Y","Z","re","Array","isArray","oe","enablePlugin","initializeStart","disabled","fromEnable","meta","disablePlugin","rid","initializeEnd","filter","b","I","E","events","catch","all","failed","ready","test","actions","processIndex","requeue","requeueIndex","enabled","initialized","beforeNS","duringNS","afterNS","before","after","hasCallback","ue","ce","addMiddleware","removeMiddleware","findIndex","dynamicMiddlewares","se","le","Boolean","initialize","fe","substring","de","parse","pe","last","me","properties","ge","he","ve","ye","exec","be","Ie","title","referrer","innerWidth","innerHeight","hash","getElementsByTagName","getAttribute","path","width","height","we","Ee","page","Pe","sessionId","app","version","debug","onLine","os","library","timezone","locale","Se","online","Ne","Ae","analytics","_e","Oe","rn","je","ts","Date","getTime","ke","reducers","s$1","f$1","middlewares","NAMESPACE","pluginEnabled","methods","Set","pluginsArray","A","sort","O","L","J","create","an_aid","F","enable","disable","G","identifyStart","previousId","trackStart","pageStart","resetStart","xe","Te","setItemStart","removeItemStart","setAnonymousId","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","trace","traceLimit","registerPlugins","i$1","a$1","r$1","d$1","c$2","cookie","encodeURIComponent","toUTCString","g$2","parseFloat","k","x","C$2","A$2","N","d$2","localStorage","h$2","E$2","sessionStorage","t$1","F$3","current","previous","r$2","l$1","g","_defineProperty","obj","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","source","getOwnPropertyDescriptors","defineProperties","loadScript","src","found","find","findScript","undefined","status","err","_a","_b","script","result","startsWith","www","min","js","query","buildScriptSrc","async","entries","attributes","onload","onerror","parentElement","insertBefore","__awaiter$5","thisArg","_arguments","generator","fulfilled","step","rejected","done","tagPlugin","handle","applyFilters","code","opts","isInBrowser","randomId","iif","execJs","codeHolder","replaceMacro","scriptClone","text","console","log","head","appendChild","removeChild","insertTags","ev","reverse","execF","globalThis"],"mappings":"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","x_google_ignoreList":[1]}
|