@tagadapay/plugin-sdk 3.1.9 → 3.1.11

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.
@@ -1,10 +1,10 @@
1
1
  /**
2
- * TagadaPay SDK v3.1.9
2
+ * TagadaPay SDK v3.1.11
3
3
  * CDN Bundle - Full standalone SDK for external/vanilla pages
4
- * Includes: createTagadaClient, getPluginConfig, onConfigUpdate (hot reload)
4
+ * Usage: window.tgd.createTagadaClient(), window.tgd.formatMoney(), etc.
5
5
  * @license MIT
6
6
  */
7
- "use strict";var TagadaSDKBundle=(()=>{var Wt=Object.defineProperty,Fr=Object.defineProperties,Hr=Object.getOwnPropertyDescriptor,Gr=Object.getOwnPropertyDescriptors,Vr=Object.getOwnPropertyNames,ji=Object.getOwnPropertySymbols;var qi=Object.prototype.hasOwnProperty,Kr=Object.prototype.propertyIsEnumerable;var Be=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Wr=t=>{throw TypeError(t)};var $i=(t,e,n)=>e in t?Wt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,O=(t,e)=>{for(var n in e||(e={}))qi.call(e,n)&&$i(t,n,e[n]);if(ji)for(var n of ji(e))Kr.call(e,n)&&$i(t,n,e[n]);return t},K=(t,e)=>Fr(t,Gr(e));var Ie=(t,e)=>()=>(t&&(e=t(t=0)),e);var vn=(t,e)=>{for(var n in e)Wt(t,n,{get:e[n],enumerable:!0})},zr=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Vr(e))!qi.call(t,o)&&o!==n&&Wt(t,o,{get:()=>e[o],enumerable:!(i=Hr(e,o))||i.enumerable});return t};var Yr=t=>zr(Wt({},"__esModule",{value:!0}),t);var Pe=function(t,e){this[0]=t,this[1]=e},Pn=(t,e,n)=>{var i=(s,a,l,u)=>{try{var d=n[s](a),p=(a=d.value)instanceof Pe,I=d.done;Promise.resolve(p?a[0]:a).then(b=>p?i(s==="return"?s:"next",a[1]?{done:b.done,value:b.value}:b,l,u):l({value:b,done:I})).catch(b=>i("throw",b,l,u))}catch(b){u(b)}},o=s=>r[s]=a=>new Promise((l,u)=>i(s,a,l,u)),r={};return n=n.apply(t,e),r[Be("asyncIterator")]=()=>r,o("next"),o("throw"),o("return"),r},Nn=t=>{var e=t[Be("asyncIterator")],n=!1,i,o={};return e==null?(e=t[Be("iterator")](),i=r=>o[r]=s=>e[r](s)):(e=e.call(t),i=r=>o[r]=s=>{if(n){if(n=!1,r==="throw")throw s;return s}return n=!0,{done:!1,value:new Pe(new Promise(a=>{var l=e[r](s);l instanceof Object||Wr("Object expected"),a(l)}),1)}}),o[Be("iterator")]=()=>o,i("next"),"throw"in e?i("throw"):o.throw=r=>{throw r},"return"in e&&i("return"),o},Xi=(t,e,n)=>(e=t[Be("asyncIterator")])?e.call(t):(t=t[Be("iterator")](),e={},n=(i,o)=>(o=t[i])&&(e[i]=r=>new Promise((s,a,l)=>(r=o.call(t,r),l=r.done,Promise.resolve(r.value).then(u=>s({value:u,done:l}),a)))),n("next"),n("return"),e);function Zi(t){var i;if(typeof document=="undefined")return null;let n="; ".concat(document.cookie).split("; ".concat(t,"="));return n.length===2&&((i=n.pop())==null?void 0:i.split(";").shift())||null}function Qi(t="local"){let e=Ji[t];if(!e)return console.warn("Unknown environment: ".concat(t,". Falling back to local.")),{environment:"local",apiConfig:Ji.local};let n=null;if(typeof window!="undefined"&&(n=new URLSearchParams(window.location.search).get("tagadaClientBaseUrl"),!n))try{n=localStorage.getItem("tgd_client_base_url")||Zi("tgd_client_base_url")}catch(o){}return n?(console.log("[SDK] Using custom API base URL override: ".concat(n)),{environment:t,apiConfig:K(O({},e),{baseUrl:n})}):{environment:t,apiConfig:e}}function st(){var o;if(console.log("[SDK] detectEnvironment() called"),typeof window=="undefined")return"local";let e=new URLSearchParams(window.location.search).get("tagadaClientEnv");if(e&&(e==="production"||e==="development"||e==="local"))return console.log("[SDK] Using explicit environment override: ".concat(e)),e;try{let r=localStorage.getItem("tgd_client_env")||Zi("tgd_client_env");if(r&&(r==="production"||r==="development"||r==="local"))return console.log("[SDK] Using persisted environment override: ".concat(r)),r}catch(r){}let n=window.location.hostname,i=window.location.href;if(console.log('[SDK] detectEnvironment() - hostname: "'.concat(n,'"')),n==="localhost"||n.startsWith("127.")||n.startsWith("192.168.")||n.startsWith("10.")||n.includes(".local")||n===""||n==="0.0.0.0"||n.includes("ngrok-free.dev")||n.includes("ngrok-free.app")||n.includes("ngrok.io")||n.includes("ngrok.app")){if(console.log("[SDK] detectEnvironment() - returning LOCAL"),typeof window!="undefined"&&((o=window==null?void 0:window.__TAGADA_ENV__)!=null&&o.TAGADA_ENVIRONMENT)){let r=window.__TAGADA_ENV__.TAGADA_ENVIRONMENT.toLowerCase();if(r==="production"||r==="development"||r==="local")return console.log("[SDK] Local override detected: ".concat(r)),r}return"local"}return n==="app.tagadapay.com"||n.includes("tagadapay.com")||n.includes("yourproductiondomain.com")?"production":n==="app.tagadapay.dev"||n.includes("tagadapay.dev")||n.includes("vercel.app")||n.includes("netlify.app")||n.includes("surge.sh")||n.includes("github.io")||n.includes("herokuapp.com")||n.includes("railway.app")||i.includes("?env=dev")||i.includes("?dev=true")||i.includes("#dev")?"development":(console.warn("[SDK] Unknown domain: ".concat(n,", defaulting to production")),"production")}function at(t=!1){return st()!=="local"?!1:t&&typeof window!="undefined"?!window.location.hostname.includes(".cdn."):!0}var Ji,zt=Ie(()=>{"use strict";Ji={production:{baseUrl:"https://app.tagadapay.com",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}},development:{baseUrl:"https://app.tagadapay.dev",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}},local:{baseUrl:"http://app.localhost:3000",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}}}});var jt,Yt,xn=Ie(()=>{"use strict";jt=(I=>(I.DIRECT_NAVIGATION="direct_navigation",I.BACK_NAVIGATION="back_navigation",I.CONTINUE_CLICKED="continue_clicked",I.BUTTON_CLICK="button_click",I.FORM_SUBMIT="form_submit",I.PAYMENT_SUCCESS="payment_success",I.PAYMENT_FAILED="payment_failed",I.OFFER_ACCEPTED="offer_accepted",I.OFFER_DECLINED="offer_declined",I.CART_UPDATED="cart_updated",I.CART_ITEM_ADDED="cart_item_added",I.CUSTOM="custom",I))(jt||{}),Yt=class{constructor(e){this.apiClient=e}async initialize(e){return this.apiClient.post("/api/v1/funnel/initialize",e)}async navigate(e){return this.apiClient.post("/api/v1/funnel/navigate",e)}async updateContext(e,n){return this.apiClient.patch("/api/v1/funnel/context/".concat(e),n)}async endSession(e){return this.apiClient.delete("/api/v1/funnel/session/".concat(e))}async getSession(e,n,i){let o=new URLSearchParams;n&&o.append("currentUrl",n),i&&o.append("includeDebugData","true");let r="/api/v1/funnel/session/".concat(e).concat(o.toString()?"?".concat(o):"");return this.apiClient.get(r)}}});var Me,kn=Ie(()=>{"use strict";Me=class{constructor(){this.listeners=new Set}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(e){this.listeners.forEach(n=>{try{n(e)}catch(i){console.error("Error in event listener:",i)}})}clear(){this.listeners.clear()}}});function ne(t){if(typeof window!="undefined")try{let n=localStorage.getItem($t)!==t;localStorage.setItem($t,t),n&&window.dispatchEvent(new Event("storage"))}catch(e){console.error("Failed to save token to localStorage:",e)}}function lt(){if(typeof window!="undefined")try{return localStorage.getItem($t)}catch(t){return console.error("Failed to get token from localStorage:",t),null}return null}function Ue(){if(typeof window!="undefined")try{localStorage.removeItem($t)}catch(t){console.error("Failed to clear token from localStorage:",t)}}var $t,Fe=Ie(()=>{"use strict";$t="cms_token"});function _n(t){typeof document!="undefined"&&(document.cookie="".concat(Ln,"=").concat(t,"; path=/; max-age=2592000; SameSite=Lax"))}function qt(){if(typeof document=="undefined")return;let t=document.cookie.split("; ").find(e=>e.startsWith("".concat(Ln,"=")));return t?t.split("=")[1]:void 0}function ct(){typeof document!="undefined"&&(document.cookie="".concat(Ln,"=; path=/; max-age=0"))}function $r(){return!!qt()}function qr(){var t;if(typeof document!="undefined")try{let e=document.cookie.split("; ").find(i=>i.startsWith("".concat(jr,"=")));if(!e)return;let n=JSON.parse(decodeURIComponent(e.split("=")[1]));return(t=n==null?void 0:n.metadata)==null?void 0:t.funnelVariantId}catch(e){console.warn("Failed to parse sticky session for variant ID:",e);return}}var Ln,jr,ut=Ie(()=>{"use strict";Ln="tgd-funnel-session-id",jr="tgd-session-id"});function He(t){if(typeof window=="undefined")return null;try{return localStorage.getItem(t)}catch(e){return null}}function Xt(t,e){if(typeof window!="undefined")try{localStorage.setItem(t,e)}catch(n){}}function dt(t){var i;if(typeof document=="undefined")return null;let n=document.cookie.split(";").find(o=>o.trim().startsWith("".concat(t,"=")));return n?(i=n.split("=")[1])==null?void 0:i.trim():null}function Dn(t,e,n=86400){if(typeof document!="undefined"){if(t==="tgd_draft"||t==="tgd-draft"){console.warn("\u{1F6E1}\uFE0F [SDK] Blocked attempt to set ".concat(t," as cookie - this should only be in localStorage"));return}document.cookie="".concat(t,"=").concat(e,"; path=/; max-age=").concat(n)}}function to(t){typeof document!="undefined"&&(document.cookie="".concat(t,"=; path=/; max-age=0"))}function Ne(){if(typeof window=="undefined")return{};let t=new URLSearchParams(window.location.search),e,n=t.get("draft");if(n!==null)e=n==="true";else{let y=He(B.DRAFT);y!==null&&(e=y==="true")}let i,o=t.get("funnelTracking");if(o!==null)i=o!=="false";else{let y=He(B.FUNNEL_TRACKING)||dt(B.FUNNEL_TRACKING);y!==null&&(i=y!=="false")}let r=t.get("token")||lt()||null,s=t.get("funnelSessionId")||null,a=t.get("funnelId")||null,l,u=t.get("funnelEnv");u&&(u==="staging"||u==="production")&&(l=u);let d=t.get("forceReset")==="true",p,I=t.get("tagadaClientEnv");if(I&&(I==="production"||I==="development"||I==="local"))p=I;else{let y=He(B.CLIENT_ENV)||dt(B.CLIENT_ENV);y&&(y==="production"||y==="development"||y==="local")&&(p=y)}let b,f=t.get("tagadaClientBaseUrl");if(f)b=f;else{let y=He(B.CLIENT_BASE_URL)||dt(B.CLIENT_BASE_URL);y&&(b=y)}let C,w=t.get("currency");if(w)C=w;else{let y=He(B.CURRENCY)||dt(B.CURRENCY);y&&(C=y)}let v,L=t.get("locale");if(L)v=L;else{let y=He(B.LOCALE)||dt(B.LOCALE);y&&(v=y)}return{forceReset:d,token:r,funnelSessionId:s,funnelId:a,draft:e,funnelTracking:i,funnelEnv:l,tagadaClientEnv:p,tagadaClientBaseUrl:b,currency:C,locale:v}}function ft(){var e;return(e=Ne().draft)!=null?e:!1}function Bn(t){if(typeof window!="undefined")if(t)Xt(B.DRAFT,"true");else try{localStorage.removeItem(B.DRAFT)}catch(e){}}function no(t=!1){let e=null;typeof window!="undefined"&&(e=new URLSearchParams(window.location.search).get("token"));let n=Ne(),i=n.forceReset||!1;if(!i&&!n.token)return eo(),!1;t&&(console.log("[SDK] Detected params:",n),console.log("[SDK] URL token (direct read):",e?e.substring(0,20)+"...":"none")),i&&(t&&console.log("[SDK] Force reset: Clearing all stored state"),Ue(),ct(),typeof window!="undefined"&&window.localStorage&&Object.keys(localStorage).forEach(s=>{(s.startsWith("tagadapay_")||s.startsWith("tgd_"))&&(t&&console.log("[SDK] Clearing localStorage: ".concat(s)),localStorage.removeItem(s))}));let o=e||n.token;return o!=null?(t&&console.log("[SDK] Setting token from URL:",o.substring(0,20)+"..."),o===""||o==="null"?Ue():(ne(o),t&&console.log("[SDK] \u2705 Token set in localStorage immediately after clear"))):i&&(t&&console.log("[SDK] Force reset mode (no token in URL)"),Ue()),eo(),n.funnelSessionId&&t&&console.log("[SDK] Using funnelSessionId from URL:",n.funnelSessionId),i}function eo(){if(typeof window=="undefined")return;let t=new URLSearchParams(window.location.search),e=t.get("draft");e!==null&&Bn(e==="true");let n=t.get("funnelTracking");n!==null&&Xr(n!=="false");let i=t.get("tagadaClientEnv");i&&(i==="production"||i==="development"||i==="local")&&Jr(i);let o=t.get("tagadaClientBaseUrl");o&&Zr(o)}function Xr(t){if(typeof window=="undefined")return;let e=t?"true":"false";Xt(B.FUNNEL_TRACKING,e),Dn(B.FUNNEL_TRACKING,e,86400)}function Jr(t){typeof window!="undefined"&&(Xt(B.CLIENT_ENV,t),Dn(B.CLIENT_ENV,t,86400))}function io(){if(typeof window!="undefined")try{localStorage.removeItem(B.CLIENT_ENV),to(B.CLIENT_ENV)}catch(t){}}function Zr(t){typeof window!="undefined"&&(Xt(B.CLIENT_BASE_URL,t),Dn(B.CLIENT_BASE_URL,t,86400))}function oo(){if(typeof window!="undefined")try{localStorage.removeItem(B.CLIENT_BASE_URL),to(B.CLIENT_BASE_URL)}catch(t){}}function ro(){var e;return(e=Ne().funnelTracking)!=null?e:!0}var B,Jt=Ie(()=>{"use strict";Fe();ut();B={DRAFT:"tgd_draft",FUNNEL_TRACKING:"tgd_funnel_tracking",FORCE_RESET:"tgd_force_reset",CLIENT_ENV:"tgd_client_env",CLIENT_BASE_URL:"tgd_client_base_url",CURRENCY:"tgd_currency",LOCALE:"tgd_locale"}});function Mn(t){if(typeof window=="undefined"||typeof document=="undefined")return;let e=window.location.hostname,n=e.split("."),i=["",e,"."+e];for(let a=1;a<n.length;a++){let l=n.slice(a).join(".");i.push(l),i.push("."+l)}let o=window.location.pathname.split("/").filter(a=>a),r=["/"],s="";o.forEach(a=>{s+="/"+a,r.push(s)}),i.forEach(a=>{r.forEach(l=>{let u="".concat(t,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(l),d=a?"; domain=".concat(a):"";document.cookie=u+d,document.cookie=u+d+"; secure",document.cookie=u+d+"; SameSite=None; secure",document.cookie=u+d+"; SameSite=Lax",document.cookie=u+d+"; SameSite=Strict"})})}function es(){if(typeof window=="undefined"||!confirm("\u{1F6AA} Leave Preview Mode?\n\nThis will clear ALL cookies and localStorage (including Shopify session, cart, and preview settings) and reload the page.\n\nAre you sure?"))return;let e=new URL(window.location.href);["draft","funnelEnv","funnelTracking","tagadaClientEnv","tagadaClientBaseUrl","forceReset","funnelId","funnelSessionId","token"].forEach(r=>e.searchParams.delete(r)),window.history.replaceState({},"",e.href);try{let r=Object.getOwnPropertyDescriptor(Document.prototype,"cookie")||Object.getOwnPropertyDescriptor(HTMLDocument.prototype,"cookie");r&&r.set&&Object.defineProperty(document,"cookie",{configurable:!0,enumerable:!0,get:function(){return r.get?r.get.call(this):""},set:function(s){if(typeof s=="string"){let a=s.toLowerCase();if(a.includes("tgd_draft")||a.includes("tgd-draft")||a.includes("tgd.draft")||a.includes("tgddraft")){if(a.includes("max-age=0")||a.includes("expires=thu, 01 jan 1970")){r.set&&r.set.call(this,s);return}console.warn("\u{1F6E1}\uFE0F [TagadaPay] BLOCKED: tgd_draft should never be a cookie");return}}r.set&&r.set.call(this,s)}})}catch(r){console.warn("[TagadaPay] Could not install cookie blocker:",r)}if(window.localStorage)try{localStorage.removeItem("tgd_draft"),localStorage.removeItem("tgd_funnel_tracking"),localStorage.removeItem("tgd_client_env"),localStorage.removeItem("tgd_client_base_url"),localStorage.removeItem("cms_token")}catch(r){console.warn("[TagadaPay] Failed to clear some localStorage keys:",r)}Ue(),ct(),io(),oo(),window.localStorage&&localStorage.clear(),window.sessionStorage&&sessionStorage.clear(),["tgd-funnel-session-id","tgd_draft","tgd_funnel_tracking","tgd_client_env","tgd_client_base_url","cms_token","tagadapay_session"].forEach(r=>Mn(r)),["tgd-draft","tgd_draft","tgd.draft","tgddraft"].forEach(r=>Mn(r)),document.cookie&&document.cookie.split(";").forEach(s=>{let a=s.split("=")[0].trim();if(!a)return;let l=window.location.hostname,u=l.split("."),d=["",l,"."+l];for(let f=1;f<u.length;f++){let C=u.slice(f).join(".");d.push(C),d.push("."+C)}let p=window.location.pathname.split("/").filter(f=>f),I=["/"],b="";p.forEach(f=>{b+="/"+f,I.push(b)}),d.forEach(f=>{I.forEach(C=>{let w="".concat(a,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(C),v=f?"; domain=".concat(f):"";document.cookie=w+v,document.cookie=w+v+"; secure",document.cookie=w+v+"; SameSite=None; secure",document.cookie=w+v+"; SameSite=Lax",document.cookie=w+v+"; SameSite=Strict",document.cookie=w+v+"; secure; SameSite=None",document.cookie=w+v+"; secure; SameSite=Lax",document.cookie=w+v+"; secure; SameSite=Strict"})})}),setTimeout(()=>{window.localStorage&&localStorage.length>0&&localStorage.clear(),Mn("tgd_draft"),typeof window.stop=="function"&&window.stop(),window.location.replace(e.href)},10)}function Un(){if(so||typeof window=="undefined"||typeof document=="undefined")return;let t=Ne(),e=ft(),n=!ro(),i=!!(t.tagadaClientEnv||t.tagadaClientBaseUrl);if(!e&&!n&&!i)return;let o=document.createElement("div");o.id="tgd-preview-indicator",o.style.cssText='\n position: fixed;\n bottom: 16px;\n right: 16px;\n z-index: 999999;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n ';let r=document.createElement("div");r.style.cssText="\n background: ".concat(e?"#ff9500":"#007aff",";\n color: white;\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 600;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n "),r.innerHTML='\n <span style="font-size: 16px;">\u{1F50D}</span>\n <span>'.concat(e?"Preview Mode":"Dev Mode","</span>\n ");let s=document.createElement("div");s.style.cssText="\n position: absolute;\n bottom: calc(100% + 8px);\n right: 0;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 12px;\n min-width: 250px;\n font-size: 12px;\n line-height: 1.5;\n display: none;\n ",s.style.paddingTop="20px";let a=document.createElement("div");a.style.cssText="\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n height: 8px;\n display: none;\n ";let l='<div style="margin-bottom: 8px; font-weight: 600; color: #1d1d1f;">Current Environment</div>';l+='<div style="display: flex; flex-direction: column; gap: 6px;">',e&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Draft Mode:</span>\n <span style="color: #ff9500; font-weight: 600;">ON</span>\n </div>\n '),n&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Tracking:</span>\n <span style="color: #ff3b30; font-weight: 600;">DISABLED</span>\n </div>\n '),t.funnelEnv&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Funnel Env:</span>\n <span style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 11px;">\n '.concat(t.funnelEnv,"\n </span>\n </div>\n ")),t.tagadaClientEnv&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>API Env:</span>\n <span style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 11px;">\n '.concat(t.tagadaClientEnv,"\n </span>\n </div>\n ")),t.tagadaClientBaseUrl&&(l+='\n <div style="color: #86868b;">\n <div style="margin-bottom: 4px;">API URL:</div>\n <div style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 10px; word-break: break-all; background: #f5f5f7; padding: 4px 6px; border-radius: 4px;">\n '.concat(t.tagadaClientBaseUrl,"\n </div>\n </div>\n ")),t.funnelId&&(l+='\n <div style="color: #86868b; margin-top: 4px; padding-top: 8px; border-top: 1px solid #e5e5e5;">\n <div style="margin-bottom: 4px;">Funnel ID:</div>\n <div style="color: #1d1d1f; font-family: monospace; font-size: 10px; word-break: break-all; background: #f5f5f7; padding: 4px 6px; border-radius: 4px;">\n '.concat(t.funnelId,"\n </div>\n </div>\n ")),l+="</div>",l+='\n <div style="margin-top: 12px; padding-top: 8px; border-top: 1px solid #e5e5e5; font-size: 11px; color: #86868b; text-align: center;">\n Add <code style="background: #f5f5f7; padding: 2px 4px; border-radius: 3px;">?forceReset=true</code> to reset\n </div>\n ',l+='\n <div style="margin-top: 12px; padding-top: 8px; border-top: 1px solid #e5e5e5;">\n <button id="tgd-leave-preview" style="\n background: #ff3b30;\n color: white;\n border: none;\n border-radius: 6px;\n padding: 10px 12px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: opacity 0.2s;\n width: 100%;\n ">\n \u{1F6AA} Leave Preview Mode\n </button>\n </div>\n ',s.innerHTML=l;let u=!1,d=()=>{u=!0,s.style.display="block",a.style.display="block"},p=()=>{u=!1,setTimeout(()=>{u||(s.style.display="none",a.style.display="none")},100)};r.addEventListener("mouseenter",d),r.addEventListener("mouseleave",p),a.addEventListener("mouseenter",d),a.addEventListener("mouseleave",p),s.addEventListener("mouseenter",d),s.addEventListener("mouseleave",p);let I=s.querySelector("#tgd-leave-preview");I&&(I.addEventListener("mouseenter",()=>{I.style.opacity="0.8"}),I.addEventListener("mouseleave",()=>{I.style.opacity="1"}),I.addEventListener("click",b=>{b.stopPropagation(),es()})),o.appendChild(r),o.appendChild(a),o.appendChild(s),document.body.appendChild(o),Qr=o,so=!0}var Qr,so,ao=Ie(()=>{"use strict";Jt();Fe();ut();Qr=null,so=!1});var fo={};vn(fo,{FunnelClient:()=>gt,TrackingProvider:()=>co,getAssignedPaymentFlowId:()=>rs,getAssignedPixels:()=>ls,getAssignedScripts:()=>as,getAssignedStaticResources:()=>ss,getAssignedStepConfig:()=>mt,getLocalFunnelConfig:()=>uo,loadLocalFunnelConfig:()=>is});function ts(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_ID__)return window.__TGD_FUNNEL_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function Zt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_VARIANT_ID__)return window.__TGD_FUNNEL_VARIANT_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-variant-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function pt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_STEP_ID__)return window.__TGD_FUNNEL_STEP_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-step-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function lo(t){if(!t||typeof t!="string")return;let e=t.trim();if(!e)return;let n=[()=>JSON.parse(e),()=>JSON.parse(decodeURIComponent(e)),()=>JSON.parse(decodeURIComponent(decodeURIComponent(e)))];for(let i of n)try{let o=i();if(o&&typeof o=="object")return o}catch(o){}typeof console!="undefined"&&console.warn("[SDK] Failed to parse stepConfig:",e.substring(0,100))}function ns(){if(typeof window=="undefined")return!1;let t=window.location.hostname;return t==="localhost"||t==="127.0.0.1"||t.endsWith(".localhost")&&!t.includes(".cdn.")}async function is(){if(!ns())return null;if(ie!==void 0)return ie;if(Fn)return await new Promise(t=>setTimeout(t,100)),ie!=null?ie:null;Fn=!0;try{console.log("\u{1F6E0}\uFE0F [SDK] Loading local funnel config from /config/funnel.local.json...");let t=await fetch("/config/funnel.local.json");if(!t.ok)return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not found (this is fine in production)"),ie=null,null;let e=await t.json();return console.log("\u{1F6E0}\uFE0F [SDK] \u2705 Loaded local funnel config:",e),ie=e,e}catch(t){return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not available:",t),ie=null,null}finally{Fn=!1}}function uo(){return ie!=null?ie:null}function os(t){return{payment:t.paymentFlowId?{paymentFlowId:t.paymentFlowId}:void 0,staticResources:t.staticResources,scripts:t.scripts,pixels:t.pixels}}function mt(){if(typeof window=="undefined")return;let t=uo();if(t)return console.log("\u{1F6E0}\uFE0F [SDK] Using local funnel.local.json (overrides injected)"),os(t);let e=window.__TGD_STEP_CONFIG__;if(e){let n=lo(e);if(n)return n}if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-step-config"]'),i=n==null?void 0:n.getAttribute("content");if(i){let o=lo(i);if(o)return o}}}function rs(){var e;let t=mt();if((e=t==null?void 0:t.payment)!=null&&e.paymentFlowId)return t.payment.paymentFlowId;if(typeof window!="undefined"){if(window.__TGD_PAYMENT_FLOW_ID__)return window.__TGD_PAYMENT_FLOW_ID__;if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-payment-flow-id"]');return(n==null?void 0:n.getAttribute("content"))||void 0}}}function ss(){let t=mt();return t==null?void 0:t.staticResources}function as(t){let e=mt();if(!(e!=null&&e.scripts))return;let n=e.scripts.filter(i=>i.enabled);return t&&(n=n.filter(i=>i.position===t||!i.position&&t==="head-end")),n.length>0?n:void 0}function ls(){let t=mt(),e=t==null?void 0:t.pixels;if(!e||typeof e!="object")return;let n={};for(let[i,o]of Object.entries(e))o&&(Array.isArray(o)?n[i]=o:typeof o=="object"&&(n[i]=[o]));return Object.keys(n).length>0?n:void 0}var co,ie,Fn,gt,Hn=Ie(()=>{"use strict";zt();xn();kn();Jt();ao();ut();co=(r=>(r.FACEBOOK="facebook",r.TIKTOK="tiktok",r.SNAPCHAT="snapchat",r.META_CONVERSION="meta_conversion",r.GTM="gtm",r))(co||{});Fn=!1;gt=class{constructor(e){this.eventDispatcher=new Me;this.isInitializing=!1;this.initializationAttempted=!1;this.config=e,this.resource=new Yt(e.apiClient),this.state={context:null,isLoading:!1,isInitialized:!1,isNavigating:!1,error:null,sessionError:null}}setConfig(e){this.config=O(O({},this.config),e)}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}getDetectedSessionId(){var i;if((i=this.state.context)!=null&&i.sessionId)return this.state.context.sessionId;if(typeof window=="undefined")return null;let n=new URLSearchParams(window.location.search).get("funnelSessionId");return n||qt()||null}resetInitialization(){this.initializationAttempted=!1,this.isInitializing=!1,this.updateState({context:null,isInitialized:!1})}async autoInitialize(e,n,i){if(this.state.context)return this.state.context;if(this.isInitializing||this.initializationAttempted)return null;this.initializationAttempted=!0,this.isInitializing=!0,this.updateState({isLoading:!0,error:null});try{let o=this.getDetectedSessionId(),a=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||i,l=ts(),u=Zt(),d=pt(),p=Ne(),I=this.config.funnelId||l||a,b=this.config.stepId||d,f=typeof window!="undefined"?new URLSearchParams(window.location.search):null,C=f==null?void 0:f.get("funnelEnv");this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-initializing...",{existingSessionId:o,effectiveFunnelId:I,funnelVariantId:u,funnelStepId:b,draft:p.draft,funnelTracking:p.funnelTracking,funnelEnv:C,tagadaClientEnv:p.tagadaClientEnv,tagadaClientBaseUrl:p.tagadaClientBaseUrl,source:{funnelId:this.config.funnelId?"config":l?"injected":a?"url/prop":"none",stepId:this.config.stepId?"config":d?"injected":"none"}});let w=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:I,existingSessionId:o||void 0,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:u,funnelStepId:b,draft:p.draft,funnelTracking:p.funnelTracking,funnelEnv:C||void 0,tagadaClientEnv:p.tagadaClientEnv,tagadaClientBaseUrl:p.tagadaClientBaseUrl,currency:p.currency,locale:p.locale});if(w.success&&w.context){let v=this.enrichContext(w.context);return this.handleSessionSuccess(v),Un(),v}else throw new Error(w.error||"Failed to initialize funnel session")}catch(o){let r=o instanceof Error?o:new Error(String(o));throw this.updateState({error:r,isLoading:!1}),this.config.debugMode&&console.error("\u274C [FunnelClient] Init failed:",r),r}finally{this.isInitializing=!1}}async initialize(e,n,i,o){this.updateState({isLoading:!0,error:null});try{let r=Zt(),s=pt();this.config.debugMode&&(r&&console.log("\u{1F3AF} [FunnelClient] Detected A/B test variant:",r),s&&console.log("\u{1F3AF} [FunnelClient] Detected step ID:",s));let a=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:i,entryStepId:o,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:r,funnelStepId:s});if(a.success&&a.context){let l=this.enrichContext(a.context);return this.handleSessionSuccess(l),Un(),l}else throw new Error(a.error||"Failed to initialize")}catch(r){let s=r instanceof Error?r:new Error(String(r));throw this.updateState({error:s,isLoading:!1}),s}}async navigate(e,n){var i,o,r,s,a,l;if(n!=null&&n.waitForSession&&!((i=this.state.context)!=null&&i.sessionId)){this.config.debugMode&&console.log("\u23F3 [FunnelClient] Waiting for session before navigation...");let u=5e3,d=Date.now();for(;!((o=this.state.context)!=null&&o.sessionId)&&Date.now()-d<u;)await new Promise(p=>setTimeout(p,100));(r=this.state.context)!=null&&r.sessionId&&this.config.debugMode&&console.log("\u2705 [FunnelClient] Session ready, proceeding with navigation")}if(!((s=this.state.context)!=null&&s.sessionId))throw new Error("No active session");this.updateState({isNavigating:!0,isLoading:!0});try{let u=Zt(),d=pt(),p=typeof window!="undefined"?window.location.href:void 0;!d&&this.config.stepId&&(d=this.config.stepId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using stepId from config (no injection):",d)),!u&&this.config.variantId&&(u=this.config.variantId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using variantId from config (no injection):",u)),this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Sending to backend:",{sessionId:this.state.context.sessionId,currentUrl:p,funnelStepId:d||"(not found)",funnelVariantId:u||"(not found)",hasInjectedStepId:!!pt(),hasInjectedVariantId:!!Zt(),usedConfigFallback:!pt()&&!!this.config.stepId,customerTags:(n==null?void 0:n.customerTags)||"(none)",deviceId:(n==null?void 0:n.deviceId)||"(none)"});let I=(n==null?void 0:n.fireAndForget)||!1,b=await this.resource.navigate({sessionId:this.state.context.sessionId,event:e,currentUrl:p,funnelStepId:d,funnelVariantId:u,fireAndForget:I,customerTags:n==null?void 0:n.customerTags,deviceId:n==null?void 0:n.deviceId});if(!b.success||!b.result)throw new Error(b.error||"Navigation failed");let f=b.result;if(f.queued)return this.updateState({isNavigating:!1,isLoading:!1}),f.sessionId&&f.sessionId!==((a=this.state.context)==null?void 0:a.sessionId)&&(this.config.debugMode&&console.log("\u{1F525} [FunnelClient] Session ID updated: ".concat((l=this.state.context)==null?void 0:l.sessionId," \u2192 ").concat(f.sessionId)),this.state.context&&(this.state.context.sessionId=f.sessionId)),this.config.debugMode&&console.log("\u{1F525} [FunnelClient] Navigation queued (fire-and-forget mode)"),f;let C=(n==null?void 0:n.autoRedirect)!==void 0?n.autoRedirect:this.config.autoRedirect!==!1;return C||(this.config.debugMode&&console.log("\u{1F504} [FunnelClient] Refreshing session (no auto-redirect)"),await this.refreshSession()),this.updateState({isNavigating:!1,isLoading:!1}),C&&(f!=null&&f.url)&&typeof window!="undefined"&&(this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-redirecting to:",f.url,"(skipped session refresh - next page will initialize)"),window.location.href=f.url),f}catch(u){let d=u instanceof Error?u:new Error(String(u));throw this.updateState({error:d,isNavigating:!1,isLoading:!1}),d}}async goToStep(e,n){return this.navigate({type:"direct_navigation",data:{targetStepId:e}},n)}async refreshSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{let n=await this.resource.getSession(this.state.context.sessionId);if(n.success&&n.context){let i=this.enrichContext(n.context);return this.updateState({context:i,sessionError:null}),i}}catch(n){this.updateState({sessionError:n instanceof Error?n:new Error(String(n))})}}async updateContext(e){var n;if(!((n=this.state.context)!=null&&n.sessionId))throw new Error("No active session");this.updateState({isLoading:!0});try{let i=await this.resource.updateContext(this.state.context.sessionId,{contextUpdates:e});if(i.success)await this.refreshSession();else throw new Error(i.error||"Failed to update context")}finally{this.updateState({isLoading:!1})}}async endSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{await this.resource.endSession(this.state.context.sessionId)}finally{this.state.context=null,this.updateState({context:null,isInitialized:!1})}}updateState(e){this.state=O(O({},this.state),e),this.eventDispatcher.notify(this.state)}handleSessionSuccess(e){_n(e.sessionId),this.updateState({context:e,isLoading:!1,isInitialized:!0,error:null,sessionError:null})}enrichContext(e){var s,a;if((((s=this.config.environment)==null?void 0:s.environment)||st())!=="local")return e;let i=((a=this.config.pluginConfig)==null?void 0:a.staticResources)||{};if(Object.keys(i).length===0)return e;let o=e.static||{};return Object.keys(i).every(l=>o[l]===i[l])&&Object.keys(o).length===Object.keys(i).length?e:K(O({},e),{static:O(O({},i),o)})}}});var tl={};vn(tl,{ApiClient:()=>$e,CheckoutResource:()=>On,CheckoutUtils:()=>Mi,CurrencyUtils:()=>Bi,FunnelActionType:()=>jt,OrderBumpUtils:()=>Hi,OrderUtils:()=>Di,PluginConfigUtils:()=>Ni,PostPurchasesUtils:()=>Fi,ProductsUtils:()=>_i,PromotionsUtils:()=>Ui,TagadaClient:()=>Gt,TagadaExternalTracker:()=>Vt,TagadaTracker:()=>Gi,broadcastConfigUpdate:()=>Za,clearFunnelSessionCookie:()=>ct,createRawPluginConfig:()=>Lr,createTagadaClient:()=>Vi,debounceConfigUpdate:()=>el,funnelQueryKeys:()=>Ja,getFunnelSessionCookie:()=>qt,getFunnelVariantId:()=>qr,getPluginConfig:()=>ja,hasFunnelSessionCookie:()=>$r,loadLocalConfig:()=>kr,loadPluginConfig:()=>xi,onConfigUpdate:()=>Qa,sendConfigUpdate:()=>Br,setFunnelSessionCookie:()=>_n});zt();Hn();function ht(t,e){return function(){return t.apply(e,arguments)}}var{toString:cs}=Object.prototype,{getPrototypeOf:Vn}=Object,{iterator:en,toStringTag:go}=Symbol,tn=(t=>e=>{let n=cs.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),oe=t=>(t=t.toLowerCase(),e=>tn(e)===t),nn=t=>e=>typeof e===t,{isArray:Ve}=Array,Ge=nn("undefined");function Et(t){return t!==null&&!Ge(t)&&t.constructor!==null&&!Ge(t.constructor)&&X(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var mo=oe("ArrayBuffer");function us(t){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&mo(t.buffer),e}var ds=nn("string"),X=nn("function"),ho=nn("number"),At=t=>t!==null&&typeof t=="object",fs=t=>t===!0||t===!1,Qt=t=>{if(tn(t)!=="object")return!1;let e=Vn(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(go in t)&&!(en in t)},ps=t=>{if(!At(t)||Et(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(e){return!1}},gs=oe("Date"),ms=oe("File"),hs=oe("Blob"),Es=oe("FileList"),As=t=>At(t)&&X(t.pipe),ws=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||X(t.append)&&((e=tn(t))==="formdata"||e==="object"&&X(t.toString)&&t.toString()==="[object FormData]"))},bs=oe("URLSearchParams"),[Is,Ss,Cs,Ts]=["ReadableStream","Request","Response","Headers"].map(oe),ys=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function wt(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t=="undefined")return;let i,o;if(typeof t!="object"&&(t=[t]),Ve(t))for(i=0,o=t.length;i<o;i++)e.call(null,t[i],i,t);else{if(Et(t))return;let r=n?Object.getOwnPropertyNames(t):Object.keys(t),s=r.length,a;for(i=0;i<s;i++)a=r[i],e.call(null,t[a],a,t)}}function Eo(t,e){if(Et(t))return null;e=e.toLowerCase();let n=Object.keys(t),i=n.length,o;for(;i-- >0;)if(o=n[i],e===o.toLowerCase())return o;return null}var xe=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,Ao=t=>!Ge(t)&&t!==xe;function Gn(){let{caseless:t,skipUndefined:e}=Ao(this)&&this||{},n={},i=(o,r)=>{let s=t&&Eo(n,r)||r;Qt(n[s])&&Qt(o)?n[s]=Gn(n[s],o):Qt(o)?n[s]=Gn({},o):Ve(o)?n[s]=o.slice():(!e||!Ge(o))&&(n[s]=o)};for(let o=0,r=arguments.length;o<r;o++)arguments[o]&&wt(arguments[o],i);return n}var Os=(t,e,n,{allOwnKeys:i}={})=>(wt(e,(o,r)=>{n&&X(o)?t[r]=ht(o,n):t[r]=o},{allOwnKeys:i}),t),Rs=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),vs=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},Ps=(t,e,n,i)=>{let o,r,s,a={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),r=o.length;r-- >0;)s=o[r],(!i||i(s,t,e))&&!a[s]&&(e[s]=t[s],a[s]=!0);t=n!==!1&&Vn(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Ns=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;let i=t.indexOf(e,n);return i!==-1&&i===n},xs=t=>{if(!t)return null;if(Ve(t))return t;let e=t.length;if(!ho(e))return null;let n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},ks=(t=>e=>t&&e instanceof t)(typeof Uint8Array!="undefined"&&Vn(Uint8Array)),Ls=(t,e)=>{let i=(t&&t[en]).call(t),o;for(;(o=i.next())&&!o.done;){let r=o.value;e.call(t,r[0],r[1])}},_s=(t,e)=>{let n,i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},Ds=oe("HTMLFormElement"),Bs=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,i,o){return i.toUpperCase()+o}),po=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),Ms=oe("RegExp"),wo=(t,e)=>{let n=Object.getOwnPropertyDescriptors(t),i={};wt(n,(o,r)=>{let s;(s=e(o,r,t))!==!1&&(i[r]=s||o)}),Object.defineProperties(t,i)},Us=t=>{wo(t,(e,n)=>{if(X(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;let i=t[n];if(X(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Fs=(t,e)=>{let n={},i=o=>{o.forEach(r=>{n[r]=!0})};return Ve(t)?i(t):i(String(t).split(e)),n},Hs=()=>{},Gs=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Vs(t){return!!(t&&X(t.append)&&t[go]==="FormData"&&t[en])}var Ks=t=>{let e=new Array(10),n=(i,o)=>{if(At(i)){if(e.indexOf(i)>=0)return;if(Et(i))return i;if(!("toJSON"in i)){e[o]=i;let r=Ve(i)?[]:{};return wt(i,(s,a)=>{let l=n(s,o+1);!Ge(l)&&(r[a]=l)}),e[o]=void 0,r}}return i};return n(t,0)},Ws=oe("AsyncFunction"),zs=t=>t&&(At(t)||X(t))&&X(t.then)&&X(t.catch),bo=((t,e)=>t?setImmediate:e?((n,i)=>(xe.addEventListener("message",({source:o,data:r})=>{o===xe&&r===n&&i.length&&i.shift()()},!1),o=>{i.push(o),xe.postMessage(n,"*")}))("axios@".concat(Math.random()),[]):n=>setTimeout(n))(typeof setImmediate=="function",X(xe.postMessage)),Ys=typeof queueMicrotask!="undefined"?queueMicrotask.bind(xe):typeof process!="undefined"&&process.nextTick||bo,js=t=>t!=null&&X(t[en]),c={isArray:Ve,isArrayBuffer:mo,isBuffer:Et,isFormData:ws,isArrayBufferView:us,isString:ds,isNumber:ho,isBoolean:fs,isObject:At,isPlainObject:Qt,isEmptyObject:ps,isReadableStream:Is,isRequest:Ss,isResponse:Cs,isHeaders:Ts,isUndefined:Ge,isDate:gs,isFile:ms,isBlob:hs,isRegExp:Ms,isFunction:X,isStream:As,isURLSearchParams:bs,isTypedArray:ks,isFileList:Es,forEach:wt,merge:Gn,extend:Os,trim:ys,stripBOM:Rs,inherits:vs,toFlatObject:Ps,kindOf:tn,kindOfTest:oe,endsWith:Ns,toArray:xs,forEachEntry:Ls,matchAll:_s,isHTMLForm:Ds,hasOwnProperty:po,hasOwnProp:po,reduceDescriptors:wo,freezeMethods:Us,toObjectSet:Fs,toCamelCase:Bs,noop:Hs,toFiniteNumber:Gs,findKey:Eo,global:xe,isContextDefined:Ao,isSpecCompliantForm:Vs,toJSONObject:Ks,isAsyncFn:Ws,isThenable:zs,setImmediate:bo,asap:Ys,isIterable:js};function Ke(t,e,n,i,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),i&&(this.request=i),o&&(this.response=o,this.status=o.status?o.status:null)}c.inherits(Ke,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:c.toJSONObject(this.config),code:this.code,status:this.status}}});var Io=Ke.prototype,So={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{So[t]={value:t}});Object.defineProperties(Ke,So);Object.defineProperty(Io,"isAxiosError",{value:!0});Ke.from=(t,e,n,i,o,r)=>{let s=Object.create(Io);c.toFlatObject(t,s,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");let a=t&&t.message?t.message:"Error",l=e==null&&t?t.code:e;return Ke.call(s,a,l,n,i,o),t&&s.cause==null&&Object.defineProperty(s,"cause",{value:t,configurable:!0}),s.name=t&&t.name||"Error",r&&Object.assign(s,r),s};var T=Ke;var on=null;function Kn(t){return c.isPlainObject(t)||c.isArray(t)}function To(t){return c.endsWith(t,"[]")?t.slice(0,-2):t}function Co(t,e,n){return t?t.concat(e).map(function(o,r){return o=To(o),!n&&r?"["+o+"]":o}).join(n?".":""):e}function $s(t){return c.isArray(t)&&!t.some(Kn)}var qs=c.toFlatObject(c,{},null,function(e){return/^is[A-Z]/.test(e)});function Xs(t,e,n){if(!c.isObject(t))throw new TypeError("target must be an object");e=e||new(on||FormData),n=c.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(C,w){return!c.isUndefined(w[C])});let i=n.metaTokens,o=n.visitor||d,r=n.dots,s=n.indexes,l=(n.Blob||typeof Blob!="undefined"&&Blob)&&c.isSpecCompliantForm(e);if(!c.isFunction(o))throw new TypeError("visitor must be a function");function u(f){if(f===null)return"";if(c.isDate(f))return f.toISOString();if(c.isBoolean(f))return f.toString();if(!l&&c.isBlob(f))throw new T("Blob is not supported. Use a Buffer instead.");return c.isArrayBuffer(f)||c.isTypedArray(f)?l&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function d(f,C,w){let v=f;if(f&&!w&&typeof f=="object"){if(c.endsWith(C,"{}"))C=i?C:C.slice(0,-2),f=JSON.stringify(f);else if(c.isArray(f)&&$s(f)||(c.isFileList(f)||c.endsWith(C,"[]"))&&(v=c.toArray(f)))return C=To(C),v.forEach(function(y,N){!(c.isUndefined(y)||y===null)&&e.append(s===!0?Co([C],N,r):s===null?C:C+"[]",u(y))}),!1}return Kn(f)?!0:(e.append(Co(w,C,r),u(f)),!1)}let p=[],I=Object.assign(qs,{defaultVisitor:d,convertValue:u,isVisitable:Kn});function b(f,C){if(!c.isUndefined(f)){if(p.indexOf(f)!==-1)throw Error("Circular reference detected in "+C.join("."));p.push(f),c.forEach(f,function(v,L){(!(c.isUndefined(v)||v===null)&&o.call(e,v,c.isString(L)?L.trim():L,C,I))===!0&&b(v,C?C.concat(L):[L])}),p.pop()}}if(!c.isObject(t))throw new TypeError("data must be an object");return b(t),e}var Se=Xs;function yo(t){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(i){return e[i]})}function Oo(t,e){this._pairs=[],t&&Se(t,this,e)}var Ro=Oo.prototype;Ro.append=function(e,n){this._pairs.push([e,n])};Ro.toString=function(e){let n=e?function(i){return e.call(this,i,yo)}:yo;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};var rn=Oo;function Js(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function bt(t,e,n){if(!e)return t;let i=n&&n.encode||Js;c.isFunction(n)&&(n={serialize:n});let o=n&&n.serialize,r;if(o?r=o(e,n):r=c.isURLSearchParams(e)?e.toString():new rn(e,n).toString(i),r){let s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}var Wn=class{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){c.forEach(this.handlers,function(i){i!==null&&e(i)})}},zn=Wn;var sn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var vo=typeof URLSearchParams!="undefined"?URLSearchParams:rn;var Po=typeof FormData!="undefined"?FormData:null;var No=typeof Blob!="undefined"?Blob:null;var xo={isBrowser:!0,classes:{URLSearchParams:vo,FormData:Po,Blob:No},protocols:["http","https","file","blob","url","data"]};var $n={};vn($n,{hasBrowserEnv:()=>jn,hasStandardBrowserEnv:()=>Zs,hasStandardBrowserWebWorkerEnv:()=>Qs,navigator:()=>Yn,origin:()=>ea});var jn=typeof window!="undefined"&&typeof document!="undefined",Yn=typeof navigator=="object"&&navigator||void 0,Zs=jn&&(!Yn||["ReactNative","NativeScript","NS"].indexOf(Yn.product)<0),Qs=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ea=jn&&window.location.href||"http://localhost";var M=O(O({},$n),xo);function qn(t,e){return Se(t,new M.classes.URLSearchParams,O({visitor:function(n,i,o,r){return M.isNode&&c.isBuffer(n)?(this.append(i,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}function ta(t){return c.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function na(t){let e={},n=Object.keys(t),i,o=n.length,r;for(i=0;i<o;i++)r=n[i],e[r]=t[r];return e}function ia(t){function e(n,i,o,r){let s=n[r++];if(s==="__proto__")return!0;let a=Number.isFinite(+s),l=r>=n.length;return s=!s&&c.isArray(o)?o.length:s,l?(c.hasOwnProp(o,s)?o[s]=[o[s],i]:o[s]=i,!a):((!o[s]||!c.isObject(o[s]))&&(o[s]=[]),e(n,i,o[s],r)&&c.isArray(o[s])&&(o[s]=na(o[s])),!a)}if(c.isFormData(t)&&c.isFunction(t.entries)){let n={};return c.forEachEntry(t,(i,o)=>{e(ta(i),o,n,0)}),n}return null}var an=ia;function oa(t,e,n){if(c.isString(t))try{return(e||JSON.parse)(t),c.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}var Xn={transitional:sn,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){let i=n.getContentType()||"",o=i.indexOf("application/json")>-1,r=c.isObject(e);if(r&&c.isHTMLForm(e)&&(e=new FormData(e)),c.isFormData(e))return o?JSON.stringify(an(e)):e;if(c.isArrayBuffer(e)||c.isBuffer(e)||c.isStream(e)||c.isFile(e)||c.isBlob(e)||c.isReadableStream(e))return e;if(c.isArrayBufferView(e))return e.buffer;if(c.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(r){if(i.indexOf("application/x-www-form-urlencoded")>-1)return qn(e,this.formSerializer).toString();if((a=c.isFileList(e))||i.indexOf("multipart/form-data")>-1){let l=this.env&&this.env.FormData;return Se(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return r||o?(n.setContentType("application/json",!1),oa(e)):e}],transformResponse:[function(e){let n=this.transitional||Xn.transitional,i=n&&n.forcedJSONParsing,o=this.responseType==="json";if(c.isResponse(e)||c.isReadableStream(e))return e;if(e&&c.isString(e)&&(i&&!this.responseType||o)){let s=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(e,this.parseReviver)}catch(a){if(s)throw a.name==="SyntaxError"?T.from(a,T.ERR_BAD_RESPONSE,this,null,this.response):a}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:M.classes.FormData,Blob:M.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};c.forEach(["delete","get","head","post","put","patch"],t=>{Xn.headers[t]={}});var We=Xn;var ra=c.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ko=t=>{let e={},n,i,o;return t&&t.split("\n").forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!n||e[n]&&ra[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};var Lo=Symbol("internals");function It(t){return t&&String(t).trim().toLowerCase()}function ln(t){return t===!1||t==null?t:c.isArray(t)?t.map(ln):String(t)}function sa(t){let e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}var aa=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Jn(t,e,n,i,o){if(c.isFunction(i))return i.call(this,e,n);if(o&&(e=n),!!c.isString(e)){if(c.isString(i))return e.indexOf(i)!==-1;if(c.isRegExp(i))return i.test(e)}}function la(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function ca(t,e){let n=c.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{value:function(o,r,s){return this[i].call(this,e,o,r,s)},configurable:!0})})}var ze=class{constructor(e){e&&this.set(e)}set(e,n,i){let o=this;function r(a,l,u){let d=It(l);if(!d)throw new Error("header name must be a non-empty string");let p=c.findKey(o,d);(!p||o[p]===void 0||u===!0||u===void 0&&o[p]!==!1)&&(o[p||l]=ln(a))}let s=(a,l)=>c.forEach(a,(u,d)=>r(u,d,l));if(c.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(c.isString(e)&&(e=e.trim())&&!aa(e))s(ko(e),n);else if(c.isObject(e)&&c.isIterable(e)){let a={},l,u;for(let d of e){if(!c.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[u=d[0]]=(l=a[u])?c.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}s(a,n)}else e!=null&&r(n,e,i);return this}get(e,n){if(e=It(e),e){let i=c.findKey(this,e);if(i){let o=this[i];if(!n)return o;if(n===!0)return sa(o);if(c.isFunction(n))return n.call(this,o,i);if(c.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=It(e),e){let i=c.findKey(this,e);return!!(i&&this[i]!==void 0&&(!n||Jn(this,this[i],i,n)))}return!1}delete(e,n){let i=this,o=!1;function r(s){if(s=It(s),s){let a=c.findKey(i,s);a&&(!n||Jn(i,i[a],a,n))&&(delete i[a],o=!0)}}return c.isArray(e)?e.forEach(r):r(e),o}clear(e){let n=Object.keys(this),i=n.length,o=!1;for(;i--;){let r=n[i];(!e||Jn(this,this[r],r,e,!0))&&(delete this[r],o=!0)}return o}normalize(e){let n=this,i={};return c.forEach(this,(o,r)=>{let s=c.findKey(i,r);if(s){n[s]=ln(o),delete n[r];return}let a=e?la(r):String(r).trim();a!==r&&delete n[r],n[a]=ln(o),i[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let n=Object.create(null);return c.forEach(this,(i,o)=>{i!=null&&i!==!1&&(n[o]=e&&c.isArray(i)?i.join(", "):i)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){let i=new this(e);return n.forEach(o=>i.set(o)),i}static accessor(e){let i=(this[Lo]=this[Lo]={accessors:{}}).accessors,o=this.prototype;function r(s){let a=It(s);i[a]||(ca(o,s),i[a]=!0)}return c.isArray(e)?e.forEach(r):r(e),this}};ze.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);c.reduceDescriptors(ze.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}});c.freezeMethods(ze);var V=ze;function St(t,e){let n=this||We,i=e||n,o=V.from(i.headers),r=i.data;return c.forEach(t,function(a){r=a.call(n,r,o.normalize(),e?e.status:void 0)}),o.normalize(),r}function Ct(t){return!!(t&&t.__CANCEL__)}function _o(t,e,n){T.call(this,t==null?"canceled":t,T.ERR_CANCELED,e,n),this.name="CanceledError"}c.inherits(_o,T,{__CANCEL__:!0});var ce=_o;function Tt(t,e,n){let i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new T("Request failed with status code "+n.status,[T.ERR_BAD_REQUEST,T.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Zn(t){let e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ua(t,e){t=t||10;let n=new Array(t),i=new Array(t),o=0,r=0,s;return e=e!==void 0?e:1e3,function(l){let u=Date.now(),d=i[r];s||(s=u),n[o]=l,i[o]=u;let p=r,I=0;for(;p!==o;)I+=n[p++],p=p%t;if(o=(o+1)%t,o===r&&(r=(r+1)%t),u-s<e)return;let b=d&&u-d;return b?Math.round(I*1e3/b):void 0}}var Do=ua;function da(t,e){let n=0,i=1e3/e,o,r,s=(u,d=Date.now())=>{n=d,o=null,r&&(clearTimeout(r),r=null),t(...u)};return[(...u)=>{let d=Date.now(),p=d-n;p>=i?s(u,d):(o=u,r||(r=setTimeout(()=>{r=null,s(o)},i-p)))},()=>o&&s(o)]}var Bo=da;var Ye=(t,e,n=3)=>{let i=0,o=Do(50,250);return Bo(r=>{let s=r.loaded,a=r.lengthComputable?r.total:void 0,l=s-i,u=o(l),d=s<=a;i=s;let p={loaded:s,total:a,progress:a?s/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&d?(a-s)/u:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(p)},n)},Qn=(t,e)=>{let n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},ei=t=>(...e)=>c.asap(()=>t(...e));var Mo=M.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,M.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(M.origin),M.navigator&&/(msie|trident)/i.test(M.navigator.userAgent)):()=>!0;var Uo=M.hasStandardBrowserEnv?{write(t,e,n,i,o,r,s){if(typeof document=="undefined")return;let a=["".concat(t,"=").concat(encodeURIComponent(e))];c.isNumber(n)&&a.push("expires=".concat(new Date(n).toUTCString())),c.isString(i)&&a.push("path=".concat(i)),c.isString(o)&&a.push("domain=".concat(o)),r===!0&&a.push("secure"),c.isString(s)&&a.push("SameSite=".concat(s)),document.cookie=a.join("; ")},read(t){if(typeof document=="undefined")return null;let e=document.cookie.match(new RegExp("(?:^|; )"+t+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function ti(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function ni(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function yt(t,e,n){let i=!ti(e);return t&&(i||n==!1)?ni(t,e):e}var Fo=t=>t instanceof V?O({},t):t;function re(t,e){e=e||{};let n={};function i(u,d,p,I){return c.isPlainObject(u)&&c.isPlainObject(d)?c.merge.call({caseless:I},u,d):c.isPlainObject(d)?c.merge({},d):c.isArray(d)?d.slice():d}function o(u,d,p,I){if(c.isUndefined(d)){if(!c.isUndefined(u))return i(void 0,u,p,I)}else return i(u,d,p,I)}function r(u,d){if(!c.isUndefined(d))return i(void 0,d)}function s(u,d){if(c.isUndefined(d)){if(!c.isUndefined(u))return i(void 0,u)}else return i(void 0,d)}function a(u,d,p){if(p in e)return i(u,d);if(p in t)return i(void 0,u)}let l={url:r,method:r,data:r,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(u,d,p)=>o(Fo(u),Fo(d),p,!0)};return c.forEach(Object.keys(O(O({},t),e)),function(d){let p=l[d]||o,I=p(t[d],e[d],d);c.isUndefined(I)&&p!==a||(n[d]=I)}),n}var cn=t=>{let e=re({},t),{data:n,withXSRFToken:i,xsrfHeaderName:o,xsrfCookieName:r,headers:s,auth:a}=e;if(e.headers=s=V.from(s),e.url=bt(yt(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),c.isFormData(n)){if(M.hasStandardBrowserEnv||M.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(c.isFunction(n.getHeaders)){let l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([d,p])=>{u.includes(d.toLowerCase())&&s.set(d,p)})}}if(M.hasStandardBrowserEnv&&(i&&c.isFunction(i)&&(i=i(e)),i||i!==!1&&Mo(e.url))){let l=o&&r&&Uo.read(r);l&&s.set(o,l)}return e};var fa=typeof XMLHttpRequest!="undefined",Ho=fa&&function(t){return new Promise(function(n,i){let o=cn(t),r=o.data,s=V.from(o.headers).normalize(),{responseType:a,onUploadProgress:l,onDownloadProgress:u}=o,d,p,I,b,f;function C(){b&&b(),f&&f(),o.cancelToken&&o.cancelToken.unsubscribe(d),o.signal&&o.signal.removeEventListener("abort",d)}let w=new XMLHttpRequest;w.open(o.method.toUpperCase(),o.url,!0),w.timeout=o.timeout;function v(){if(!w)return;let y=V.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),W={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:y,config:t,request:w};Tt(function(z){n(z),C()},function(z){i(z),C()},W),w=null}"onloadend"in w?w.onloadend=v:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(v)},w.onabort=function(){w&&(i(new T("Request aborted",T.ECONNABORTED,t,w)),w=null)},w.onerror=function(N){let W=N&&N.message?N.message:"Network Error",_=new T(W,T.ERR_NETWORK,t,w);_.event=N||null,i(_),w=null},w.ontimeout=function(){let N=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",W=o.transitional||sn;o.timeoutErrorMessage&&(N=o.timeoutErrorMessage),i(new T(N,W.clarifyTimeoutError?T.ETIMEDOUT:T.ECONNABORTED,t,w)),w=null},r===void 0&&s.setContentType(null),"setRequestHeader"in w&&c.forEach(s.toJSON(),function(N,W){w.setRequestHeader(W,N)}),c.isUndefined(o.withCredentials)||(w.withCredentials=!!o.withCredentials),a&&a!=="json"&&(w.responseType=o.responseType),u&&([I,f]=Ye(u,!0),w.addEventListener("progress",I)),l&&w.upload&&([p,b]=Ye(l),w.upload.addEventListener("progress",p),w.upload.addEventListener("loadend",b)),(o.cancelToken||o.signal)&&(d=y=>{w&&(i(!y||y.type?new ce(null,t,w):y),w.abort(),w=null)},o.cancelToken&&o.cancelToken.subscribe(d),o.signal&&(o.signal.aborted?d():o.signal.addEventListener("abort",d)));let L=Zn(o.url);if(L&&M.protocols.indexOf(L)===-1){i(new T("Unsupported protocol "+L+":",T.ERR_BAD_REQUEST,t));return}w.send(r||null)})};var pa=(t,e)=>{let{length:n}=t=t?t.filter(Boolean):[];if(e||n){let i=new AbortController,o,r=function(u){if(!o){o=!0,a();let d=u instanceof Error?u:this.reason;i.abort(d instanceof T?d:new ce(d instanceof Error?d.message:d))}},s=e&&setTimeout(()=>{s=null,r(new T("timeout ".concat(e," of ms exceeded"),T.ETIMEDOUT))},e),a=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(u=>{u.unsubscribe?u.unsubscribe(r):u.removeEventListener("abort",r)}),t=null)};t.forEach(u=>u.addEventListener("abort",r));let{signal:l}=i;return l.unsubscribe=()=>c.asap(a),l}},Go=pa;var ga=function*(t,e){let n=t.byteLength;if(!e||n<e){yield t;return}let i=0,o;for(;i<n;)o=i+e,yield t.slice(i,o),i=o},ma=function(t,e){return Pn(this,null,function*(){try{for(var n=Xi(ha(t)),i,o,r;i=!(o=yield new Pe(n.next())).done;i=!1){let s=o.value;yield*Nn(ga(s,e))}}catch(o){r=[o]}finally{try{i&&(o=n.return)&&(yield new Pe(o.call(n)))}finally{if(r)throw r[0]}}})},ha=function(t){return Pn(this,null,function*(){if(t[Symbol.asyncIterator]){yield*Nn(t);return}let e=t.getReader();try{for(;;){let{done:n,value:i}=yield new Pe(e.read());if(n)break;yield i}}finally{yield new Pe(e.cancel())}})},ii=(t,e,n,i)=>{let o=ma(t,e),r=0,s,a=l=>{s||(s=!0,i&&i(l))};return new ReadableStream({async pull(l){try{let{done:u,value:d}=await o.next();if(u){a(),l.close();return}let p=d.byteLength;if(n){let I=r+=p;n(I)}l.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(l){return a(l),o.return()}},{highWaterMark:2})};var Vo=64*1024,{isFunction:un}=c,Ea=(({Request:t,Response:e})=>({Request:t,Response:e}))(c.global),{ReadableStream:Ko,TextEncoder:Wo}=c.global,zo=(t,...e)=>{try{return!!t(...e)}catch(n){return!1}},Aa=t=>{t=c.merge.call({skipUndefined:!0},Ea,t);let{fetch:e,Request:n,Response:i}=t,o=e?un(e):typeof fetch=="function",r=un(n),s=un(i);if(!o)return!1;let a=o&&un(Ko),l=o&&(typeof Wo=="function"?(f=>C=>f.encode(C))(new Wo):async f=>new Uint8Array(await new n(f).arrayBuffer())),u=r&&a&&zo(()=>{let f=!1,C=new n(M.origin,{body:new Ko,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!C}),d=s&&a&&zo(()=>c.isReadableStream(new i("").body)),p={stream:d&&(f=>f.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!p[f]&&(p[f]=(C,w)=>{let v=C&&C[f];if(v)return v.call(C);throw new T("Response type '".concat(f,"' is not supported"),T.ERR_NOT_SUPPORT,w)})});let I=async f=>{if(f==null)return 0;if(c.isBlob(f))return f.size;if(c.isSpecCompliantForm(f))return(await new n(M.origin,{method:"POST",body:f}).arrayBuffer()).byteLength;if(c.isArrayBufferView(f)||c.isArrayBuffer(f))return f.byteLength;if(c.isURLSearchParams(f)&&(f=f+""),c.isString(f))return(await l(f)).byteLength},b=async(f,C)=>{let w=c.toFiniteNumber(f.getContentLength());return w==null?I(C):w};return async f=>{let{url:C,method:w,data:v,signal:L,cancelToken:y,timeout:N,onDownloadProgress:W,onUploadProgress:_,responseType:z,headers:ae,withCredentials:ot="same-origin",fetchOptions:te}=cn(f),Ae=e||fetch;z=z?(z+"").toLowerCase():"text";let j=Go([L,y&&y.toAbortSignal()],N),rt=null,ve=j&&j.unsubscribe&&(()=>{j.unsubscribe()}),Ki;try{if(_&&u&&w!=="get"&&w!=="head"&&(Ki=await b(ae,v))!==0){let be=new n(C,{method:"POST",body:v,duplex:"half"}),De;if(c.isFormData(v)&&(De=be.headers.get("content-type"))&&ae.setContentType(De),be.body){let[Rn,Kt]=Qn(Ki,Ye(ei(_)));v=ii(be.body,Vo,Rn,Kt)}}c.isString(ot)||(ot=ot?"include":"omit");let le=r&&"credentials"in n.prototype,Wi=K(O({},te),{signal:j,method:w.toUpperCase(),headers:ae.normalize().toJSON(),body:v,duplex:"half",credentials:le?ot:void 0});rt=r&&new n(C,Wi);let we=await(r?Ae(rt,te):Ae(C,Wi)),zi=d&&(z==="stream"||z==="response");if(d&&(W||zi&&ve)){let be={};["status","statusText","headers"].forEach(Yi=>{be[Yi]=we[Yi]});let De=c.toFiniteNumber(we.headers.get("content-length")),[Rn,Kt]=W&&Qn(De,Ye(ei(W),!0))||[];we=new i(ii(we.body,Vo,Rn,()=>{Kt&&Kt(),ve&&ve()}),be)}z=z||"text";let Ur=await p[c.findKey(p,z)||"text"](we,f);return!zi&&ve&&ve(),await new Promise((be,De)=>{Tt(be,De,{data:Ur,headers:V.from(we.headers),status:we.status,statusText:we.statusText,config:f,request:rt})})}catch(le){throw ve&&ve(),le&&le.name==="TypeError"&&/Load failed|fetch/i.test(le.message)?Object.assign(new T("Network Error",T.ERR_NETWORK,f,rt),{cause:le.cause||le}):T.from(le,le&&le.code,f,rt)}}},wa=new Map,oi=t=>{let e=t&&t.env||{},{fetch:n,Request:i,Response:o}=e,r=[i,o,n],s=r.length,a=s,l,u,d=wa;for(;a--;)l=r[a],u=d.get(l),u===void 0&&d.set(l,u=a?new Map:Aa(e)),d=u;return u},Du=oi();var ri={http:on,xhr:Ho,fetch:{get:oi}};c.forEach(ri,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var Yo=t=>"- ".concat(t),Ia=t=>c.isFunction(t)||t===null||t===!1;function Sa(t,e){t=c.isArray(t)?t:[t];let{length:n}=t,i,o,r={};for(let s=0;s<n;s++){i=t[s];let a;if(o=i,!Ia(i)&&(o=ri[(a=String(i)).toLowerCase()],o===void 0))throw new T("Unknown adapter '".concat(a,"'"));if(o&&(c.isFunction(o)||(o=o.get(e))))break;r[a||"#"+s]=o}if(!o){let s=Object.entries(r).map(([l,u])=>"adapter ".concat(l," ")+(u===!1?"is not supported by the environment":"is not available in the build")),a=n?s.length>1?"since :\n"+s.map(Yo).join("\n"):" "+Yo(s[0]):"as no adapter specified";throw new T("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return o}var dn={getAdapter:Sa,adapters:ri};function si(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ce(null,t)}function fn(t){return si(t),t.headers=V.from(t.headers),t.data=St.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),dn.getAdapter(t.adapter||We.adapter,t)(t).then(function(i){return si(t),i.data=St.call(t,t.transformResponse,i),i.headers=V.from(i.headers),i},function(i){return Ct(i)||(si(t),i&&i.response&&(i.response.data=St.call(t,t.transformResponse,i.response),i.response.headers=V.from(i.response.headers))),Promise.reject(i)})}var pn="1.13.2";var gn={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{gn[t]=function(i){return typeof i===t||"a"+(e<1?"n ":" ")+t}});var jo={};gn.transitional=function(e,n,i){function o(r,s){return"[Axios v"+pn+"] Transitional option '"+r+"'"+s+(i?". "+i:"")}return(r,s,a)=>{if(e===!1)throw new T(o(s," has been removed"+(n?" in "+n:"")),T.ERR_DEPRECATED);return n&&!jo[s]&&(jo[s]=!0,console.warn(o(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,s,a):!0}};gn.spelling=function(e){return(n,i)=>(console.warn("".concat(i," is likely a misspelling of ").concat(e)),!0)};function Ca(t,e,n){if(typeof t!="object")throw new T("options must be an object",T.ERR_BAD_OPTION_VALUE);let i=Object.keys(t),o=i.length;for(;o-- >0;){let r=i[o],s=e[r];if(s){let a=t[r],l=a===void 0||s(a,r,t);if(l!==!0)throw new T("option "+r+" must be "+l,T.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new T("Unknown option "+r,T.ERR_BAD_OPTION)}}var Ot={assertOptions:Ca,validators:gn};var ue=Ot.validators,je=class{constructor(e){this.defaults=e||{},this.interceptors={request:new zn,response:new zn}}async request(e,n){try{return await this._request(e,n)}catch(i){if(i instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;let r=o.stack?o.stack.replace(/^.+\n/,""):"";try{i.stack?r&&!String(i.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(i.stack+="\n"+r):i.stack=r}catch(s){}}throw i}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=re(this.defaults,n);let{transitional:i,paramsSerializer:o,headers:r}=n;i!==void 0&&Ot.assertOptions(i,{silentJSONParsing:ue.transitional(ue.boolean),forcedJSONParsing:ue.transitional(ue.boolean),clarifyTimeoutError:ue.transitional(ue.boolean)},!1),o!=null&&(c.isFunction(o)?n.paramsSerializer={serialize:o}:Ot.assertOptions(o,{encode:ue.function,serialize:ue.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Ot.assertOptions(n,{baseUrl:ue.spelling("baseURL"),withXsrfToken:ue.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=r&&c.merge(r.common,r[n.method]);r&&c.forEach(["delete","get","head","post","put","patch","common"],f=>{delete r[f]}),n.headers=V.concat(s,r);let a=[],l=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(n)===!1||(l=l&&C.synchronous,a.unshift(C.fulfilled,C.rejected))});let u=[];this.interceptors.response.forEach(function(C){u.push(C.fulfilled,C.rejected)});let d,p=0,I;if(!l){let f=[fn.bind(this),void 0];for(f.unshift(...a),f.push(...u),I=f.length,d=Promise.resolve(n);p<I;)d=d.then(f[p++],f[p++]);return d}I=a.length;let b=n;for(;p<I;){let f=a[p++],C=a[p++];try{b=f(b)}catch(w){C.call(this,w);break}}try{d=fn.call(this,b)}catch(f){return Promise.reject(f)}for(p=0,I=u.length;p<I;)d=d.then(u[p++],u[p++]);return d}getUri(e){e=re(this.defaults,e);let n=yt(e.baseURL,e.url,e.allowAbsoluteUrls);return bt(n,e.params,e.paramsSerializer)}};c.forEach(["delete","get","head","options"],function(e){je.prototype[e]=function(n,i){return this.request(re(i||{},{method:e,url:n,data:(i||{}).data}))}});c.forEach(["post","put","patch"],function(e){function n(i){return function(r,s,a){return this.request(re(a||{},{method:e,headers:i?{"Content-Type":"multipart/form-data"}:{},url:r,data:s}))}}je.prototype[e]=n(),je.prototype[e+"Form"]=n(!0)});var Rt=je;var ai=class t{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(r){n=r});let i=this;this.promise.then(o=>{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](o);i._listeners=null}),this.promise.then=o=>{let r,s=new Promise(a=>{i.subscribe(a),r=a}).then(o);return s.cancel=function(){i.unsubscribe(r)},s},e(function(r,s,a){i.reason||(i.reason=new ce(r,s,a),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){let e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new t(function(o){e=o}),cancel:e}}},$o=ai;function li(t){return function(n){return t.apply(null,n)}}function ci(t){return c.isObject(t)&&t.isAxiosError===!0}var ui={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(ui).forEach(([t,e])=>{ui[e]=t});var qo=ui;function Xo(t){let e=new Rt(t),n=ht(Rt.prototype.request,e);return c.extend(n,Rt.prototype,e,{allOwnKeys:!0}),c.extend(n,e,null,{allOwnKeys:!0}),n.create=function(o){return Xo(re(t,o))},n}var H=Xo(We);H.Axios=Rt;H.CanceledError=ce;H.CancelToken=$o;H.isCancel=Ct;H.VERSION=pn;H.toFormData=Se;H.AxiosError=T;H.Cancel=H.CanceledError;H.all=function(e){return Promise.all(e)};H.spread=li;H.isAxiosError=ci;H.mergeConfig=re;H.AxiosHeaders=V;H.formToJSON=t=>an(c.isHTMLForm(t)?new FormData(t):t);H.getAdapter=dn.getAdapter;H.HttpStatusCode=qo;H.default=H;var mn=H;var{Axios:Ld,AxiosError:_d,CanceledError:Dd,isCancel:Bd,CancelToken:Md,VERSION:Ud,all:Fd,Cancel:Hd,isAxiosError:Gd,spread:Vd,toFormData:Kd,AxiosHeaders:Wd,HttpStatusCode:zd,formToJSON:Yd,getAdapter:jd,mergeConfig:$d}=mn;var $e=class{constructor(e){this.currentToken=null;this.tokenProvider=null;this.requestHistory=new Map;this.WINDOW_MS=5e3;this.MAX_REQUESTS=30;this.axios=mn.create({baseURL:e.baseURL,timeout:e.timeout||6e4,headers:O({"Content-Type":"application/json"},e.headers)}),typeof setInterval!="undefined"&&setInterval(()=>this.cleanupHistory(),1e4),this.axios.interceptors.request.use(async n=>{var i,o;if(n.url)try{this.checkRequestLimit("".concat((i=n.method)==null?void 0:i.toUpperCase(),":").concat(n.url))}catch(r){return console.error("[SDK] \u{1F6D1} Request blocked by Circuit Breaker:",r),Promise.reject(r)}if(!n.skipAuth&&!this.currentToken&&this.tokenProvider)try{console.log("[SDK] Waiting for token...");let r=await this.tokenProvider();r&&(this.updateToken(r),n.headers["x-cms-token"]=r)}catch(r){console.error("[SDK] Failed to get token from provider:",r)}return!n.skipAuth&&this.currentToken&&(n.headers["x-cms-token"]=this.currentToken),console.log("[SDK] Making ".concat((o=n.method)==null?void 0:o.toUpperCase()," request to: ").concat(n.baseURL||"").concat(n.url)),n},n=>(console.error("[SDK] Request error:",n),Promise.reject(n instanceof Error?n:new Error(String(n))))),this.axios.interceptors.response.use(n=>n,n=>(console.error("[SDK] Response error:",n.message),Promise.reject(n instanceof Error?n:new Error(String(n)))))}setTokenProvider(e){this.tokenProvider=e}async get(e,n){return(await this.axios.get(e,n)).data}async post(e,n,i){return(await this.axios.post(e,n,i)).data}async put(e,n,i){return(await this.axios.put(e,n,i)).data}async patch(e,n,i){return(await this.axios.patch(e,n,i)).data}async delete(e,n){return(await this.axios.delete(e,n)).data}setHeader(e,n){this.axios.defaults.headers.common[e]=n}removeHeader(e){delete this.axios.defaults.headers.common[e]}updateToken(e){this.currentToken=e,e?this.setHeader("x-cms-token",e):(this.removeHeader("x-cms-token"),console.log("[SDK] Token removed from ApiClient"))}getCurrentToken(){return this.currentToken}updateConfig(e){e.baseURL&&(this.axios.defaults.baseURL=e.baseURL),e.timeout&&(this.axios.defaults.timeout=e.timeout),e.headers&&Object.assign(this.axios.defaults.headers.common,e.headers),console.log("[SDK] ApiClient configuration updated")}checkRequestLimit(e){let n=Date.now(),i=this.requestHistory.get(e);if(!i){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(n-i.firstRequestTime>this.WINDOW_MS){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(i.count++,i.count>this.MAX_REQUESTS){let o=new Error("Circuit Breaker: Too many requests to ".concat(e," (").concat(i.count," in ").concat(this.WINDOW_MS,"ms)"));throw o.isCircuitBreaker=!0,o}}cleanupHistory(){let e=Date.now();for(let[n,i]of this.requestHistory.entries())e-i.firstRequestTime>this.WINDOW_MS&&this.requestHistory.delete(n)}};var Ta="2.0.6",ya=500,Jo="user-agent",et="",Zo="?",U={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},J="browser",ge="cpu",pe="device",se="engine",Q="os",Ze="result",h="name",g="type",E="vendor",A="version",$="architecture",Bt="major",m="model",_t="console",R="mobile",x="tablet",G="smarttv",de="wearable",hn="xr",Dt="embedded",qe="inapp",Ti="brands",Le="formFactors",yi="fullVersionList",Qe="platform",Oi="platformVersion",Cn="bitness",Oe="sec-ch-ua",Oa=Oe+"-full-version-list",Ra=Oe+"-arch",va=Oe+"-"+Cn,Pa=Oe+"-form-factors",Na=Oe+"-"+R,xa=Oe+"-"+m,fr=Oe+"-"+Qe,ka=fr+"-version",pr=[Ti,yi,R,m,Qe,Oi,$,Le,Cn],En="Amazon",Xe="Apple",Qo="ASUS",er="BlackBerry",ke="Google",tr="Huawei",di="Lenovo",nr="Honor",An="LG",fi="Microsoft",pi="Motorola",gi="Nvidia",ir="OnePlus",mi="OPPO",vt="Samsung",or="Sharp",Pt="Sony",hi="Xiaomi",Ei="Zebra",rr="Chrome",sr="Chromium",Ce="Chromecast",bn="Edge",Nt="Firefox",xt="Opera",Ai="Facebook",ar="Sogou",Je="Mobile ",kt=" Browser",Si="Windows",La=typeof window!==U.UNDEFINED,Z=La&&window.navigator?window.navigator:void 0,Te=Z&&Z.userAgentData?Z.userAgentData:void 0,_a=function(t,e){var n={},i=e;if(!In(e)){i={};for(var o in e)for(var r in e[o])i[r]=e[o][r].concat(i[r]?i[r]:[])}for(var s in t)n[s]=i[s]&&i[s].length%2===0?i[s].concat(t[s]):t[s];return n},Tn=function(t){for(var e={},n=0;n<t.length;n++)e[t[n].toUpperCase()]=t[n];return e},Ci=function(t,e){if(typeof t===U.OBJECT&&t.length>0){for(var n in t)if(ye(e)==ye(t[n]))return!0;return!1}return Mt(t)?ye(e)==ye(t):!1},In=function(t,e){for(var n in t)return/^(browser|cpu|device|engine|os)$/.test(n)||(e?In(t[n]):!1)},Mt=function(t){return typeof t===U.STRING},wi=function(t){if(t){for(var e=[],n=tt(/\\?\"/g,t).split(","),i=0;i<n.length;i++)if(n[i].indexOf(";")>-1){var o=Sn(n[i]).split(";v=");e[i]={brand:o[0],version:o[1]}}else e[i]=Sn(n[i]);return e}},ye=function(t){return Mt(t)?t.toLowerCase():t},bi=function(t){return Mt(t)?tt(/[^\d\.]/g,t).split(".")[0]:void 0},me=function(t){for(var e in t)if(t.hasOwnProperty(e)){var n=t[e];typeof n==U.OBJECT&&n.length==2?this[n[0]]=n[1]:this[n]=void 0}return this},tt=function(t,e){return Mt(e)?e.replace(t,et):e},Lt=function(t){return tt(/\\?\"/g,t)},Sn=function(t,e){return t=tt(/^\s\s*/,String(t)),typeof e===U.UNDEFINED?t:t.substring(0,e)},Ii=function(t,e){if(!(!t||!e))for(var n=0,i,o,r,s,a,l;n<e.length&&!a;){var u=e[n],d=e[n+1];for(i=o=0;i<u.length&&!a&&u[i];)if(a=u[i++].exec(t),a)for(r=0;r<d.length;r++)l=a[++o],s=d[r],typeof s===U.OBJECT&&s.length>0?s.length===2?typeof s[1]==U.FUNCTION?this[s[0]]=s[1].call(this,l):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]===U.FUNCTION&&!(s[1].exec&&s[1].test)?s.length>3?this[s[0]]=l?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=l?s[1].call(this,l,s[2]):void 0:s.length==3?this[s[0]]=l?l.replace(s[1],s[2]):void 0:s.length==4?this[s[0]]=l?s[3].call(this,l.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=l?s[3].apply(this,[l.replace(s[1],s[2])].concat(s.slice(4))):void 0)):this[s]=l||void 0;n+=2}},fe=function(t,e){for(var n in e)if(typeof e[n]===U.OBJECT&&e[n].length>0){for(var i=0;i<e[n].length;i++)if(Ci(e[n][i],t))return n===Zo?void 0:n}else if(Ci(e[n],t))return n===Zo?void 0:n;return e.hasOwnProperty("*")?e["*"]:t},lr={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2","8.1":"6.3",10:["6.4","10.0"],NT:""},cr={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Da={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},ur={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[A,[h,Je+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[A,[h,bn+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[A,[h,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[h,A],[/opios[\/ ]+([\w\.]+)/i],[A,[h,xt+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[A,[h,xt+" GX"]],[/\bopr\/([\w\.]+)/i],[A,[h,xt]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[A,[h,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[A,[h,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,/(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[h,A],[/quark(?:pc)?\/([-\w\.]+)/i],[A,[h,"Quark"]],[/\bddg\/([\w\.]+)/i],[A,[h,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[A,[h,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[A,[h,"WeChat"]],[/konqueror\/([\w\.]+)/i],[A,[h,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[A,[h,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[A,[h,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[A,[h,"Smart "+di+kt]],[/(avast|avg)\/([\w\.]+)/i],[[h,/(.+)/,"$1 Secure"+kt],A],[/\bfocus\/([\w\.]+)/i],[A,[h,Nt+" Focus"]],[/\bopt\/([\w\.]+)/i],[A,[h,xt+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[A,[h,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[A,[h,"Dolphin"]],[/coast\/([\w\.]+)/i],[A,[h,xt+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[A,[h,"MIUI"+kt]],[/fxios\/([\w\.-]+)/i],[A,[h,Je+Nt]],[/\bqihoobrowser\/?([\w\.]*)/i],[A,[h,"360"]],[/\b(qq)\/([\w\.]+)/i],[[h,/(.+)/,"$1Browser"],A],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[h,/(.+)/,"$1"+kt],A],[/samsungbrowser\/([\w\.]+)/i],[A,[h,vt+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[A,[h,ar+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[h,ar+" Mobile"],A],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[h,A],[/(lbbrowser|rekonq)/i],[h],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[A,h],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[h,Ai],A,[g,qe]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[h,A,[g,qe]],[/\bgsa\/([\w\.]+) .*safari\//i],[A,[h,"GSA"],[g,qe]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[A,[h,"TikTok"],[g,qe]],[/\[(linkedin)app\]/i],[h,[g,qe]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[h,/(.+)/,"Zalo"],A,[g,qe]],[/(chromium)[\/ ]([-\w\.]+)/i],[h,A],[/headlesschrome(?:\/([\w\.]+)| )/i],[A,[h,rr+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[A,[h,bn+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[h,rr+" WebView"],A],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[A,[h,"Android"+kt]],[/chrome\/([\w\.]+) mobile/i],[A,[h,Je+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[h,A],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[A,[h,Je+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[h,Je+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[A,h],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[h,[A,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[h,A],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[h,Je+Nt],A],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[h,"Netscape"],A],[/(wolvic|librewolf)\/([\w\.]+)/i],[h,A],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[A,[h,Nt+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[h,[A,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[h,[A,/[^\d\.]+./,et]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[$,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[$,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[$,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[$,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[$,"arm"]],[/ sun4\w[;\)]/i],[[$,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[$,/ower/,et,ye]],[/mc680.0/i],[[$,"68k"]],[/winnt.+\[axp/i],[[$,"alpha"]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[m,[E,vt],[g,x]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[m,[E,vt],[g,R]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[m,[E,Xe],[g,R]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[m,[E,Xe],[g,x]],[/(macintosh);/i],[m,[E,Xe]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[E,or],[g,R]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[m,[E,nr],[g,x]],[/honor([-\w ]+)[;\)]/i],[m,[E,nr],[g,R]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[m,[E,tr],[g,x]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[m,[E,tr],[g,R]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[m,/_/g," "],[E,hi],[g,x]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[m,/_/g," "],[E,hi],[g,R]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[m,[E,ir],[g,R]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[E,mi],[g,R]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[m,[E,fe,{OnePlus:["203","304","403","404","413","415"],"*":mi}],[g,x]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[m,[E,"BLU"],[g,R]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[E,"Vivo"],[g,R]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[m,[E,"Realme"],[g,R]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[m,[E,di],[g,x]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[m,[E,di],[g,R]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[m,[E,pi],[g,R]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[E,pi],[g,x]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[E,An],[g,x]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[E,An],[g,R]],[/(nokia) (t[12][01])/i],[E,m,[g,x]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[m,/_/g," "],[g,R],[E,"Nokia"]],[/(pixel (c|tablet))\b/i],[m,[E,ke],[g,x]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[m,[E,ke],[g,R]],[/(google) (pixelbook( go)?)/i],[E,m],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[m,[E,Pt],[g,R]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[E,Pt],[g,x]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[E,En],[g,x]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[E,En],[g,R]],[/(playbook);[-\w\),; ]+(rim)/i],[m,E,[g,x]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[m,[E,er],[g,R]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[E,Qo],[g,x]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[E,Qo],[g,R]],[/(nexus 9)/i],[m,[E,"HTC"],[g,x]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[E,[m,/_/g," "],[g,R]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[m,[E,"TCL"],[g,x]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[m,[E,"TCL"],[g,R]],[/(itel) ((\w+))/i],[[E,ye],m,[g,fe,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[E,"Acer"],[g,x]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[E,"Meizu"],[g,R]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[m,[E,"Ulefone"],[g,R]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[m,[E,"Energizer"],[g,R]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[m,[E,"Cat"],[g,R]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[m,[E,"Smartfren"],[g,R]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[m,[E,"Nothing"],[g,R]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[m,[E,"Archos"],[g,x]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[m,[E,"Archos"],[g,R]],[/; (n159v)/i],[m,[E,"HMD"],[g,R]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[E,m,[g,x]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i,/(hisense) ([ehv][\w ]+)\)/i,/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i],[E,m,[g,R]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[E,m,[g,x]],[/(surface duo)/i],[m,[E,fi],[g,x]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[E,"Fairphone"],[g,R]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[m,[E,gi],[g,x]],[/(sprint) (\w+)/i],[E,m,[g,R]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[E,fi],[g,R]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[E,Ei],[g,x]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[E,Ei],[g,R]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[E,[g,G]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[E,vt],[g,G]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[E,m,[g,G]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[E,An],[g,G]],[/(apple) ?tv/i],[E,[m,Xe+" TV"],[g,G]],[/crkey.*devicetype\/chromecast/i],[[m,Ce+" Third Generation"],[E,ke],[g,G]],[/crkey.*devicetype\/([^/]*)/i],[[m,/^/,"Chromecast "],[E,ke],[g,G]],[/fuchsia.*crkey/i],[[m,Ce+" Nest Hub"],[E,ke],[g,G]],[/crkey/i],[[m,Ce],[E,ke],[g,G]],[/(portaltv)/i],[m,[E,Ai],[g,G]],[/droid.+aft(\w+)( bui|\))/i],[m,[E,En],[g,G]],[/(shield \w+ tv)/i],[m,[E,gi],[g,G]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[E,or],[g,G]],[/(bravia[\w ]+)( bui|\))/i],[m,[E,Pt],[g,G]],[/(mi(tv|box)-?\w+) bui/i],[m,[E,hi],[g,G]],[/Hbbtv.*(technisat) (.*);/i],[E,m,[g,G]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[E,/.+\/(\w+)/,"$1",fe,{LG:"lge"}],[m,Sn],[g,G]],[/(playstation \w+)/i],[m,[E,Pt],[g,_t]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[E,fi],[g,_t]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[E,m,[g,_t]],[/droid.+; (shield)( bui|\))/i],[m,[E,gi],[g,_t]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[m,[E,vt],[g,de]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[E,m,[g,de]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[m,[E,mi],[g,de]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[E,Xe],[g,de]],[/(opwwe\d{3})/i],[m,[E,ir],[g,de]],[/(moto 360)/i],[m,[E,pi],[g,de]],[/(smartwatch 3)/i],[m,[E,Pt],[g,de]],[/(g watch r)/i],[m,[E,An],[g,de]],[/droid.+; (wt63?0{2,3})\)/i],[m,[E,Ei],[g,de]],[/droid.+; (glass) \d/i],[m,[E,ke],[g,hn]],[/(pico) ([\w ]+) os\d/i],[E,m,[g,hn]],[/(quest( \d| pro)?s?).+vr/i],[m,[E,Ai],[g,hn]],[/mobile vr; rv.+firefox/i],[[g,hn]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[E,[g,Dt]],[/(aeobc)\b/i],[m,[E,En],[g,Dt]],[/(homepod).+mac os/i],[m,[E,Xe],[g,Dt]],[/windows iot/i],[[g,Dt]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[m,[g,G]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[g,G]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[m,[g,fe,{mobile:"Mobile",xr:"VR","*":x}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[g,x]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[g,R]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[m,[E,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[A,[h,bn+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[h,A],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[A,[h,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[h,A],[/ladybird\//i],[[h,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[A,h]],os:[[/(windows nt) (6\.[23]); arm/i],[[h,/N/,"R"],[A,fe,lr]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[h,A],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[A,/(;|\))/g,"",fe,lr],[h,Si]],[/(windows ce)\/?([\d\.]*)/i],[h,A],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w\.]+)/i,/cfnetwork\/.+darwin/i],[[A,/_/g,"."],[h,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[h,"macOS"],[A,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[A,[h,Ce+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[A,[h,Ce+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[A,[h,Ce+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[A,[h,Ce+" Linux"]],[/crkey\/([\d\.]+)/i],[A,[h,Ce]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[A,h],[/(ubuntu) ([\w\.]+) like android/i],[[h,/(.+)/,"$1 Touch"],A],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[h,A],[/\(bb(10);/i],[A,[h,er]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[A,[h,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[A,[h,Nt+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[A,[h,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[A,fe,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[h,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[A,[h,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[h,"Chrome OS"],A],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[h,A],[/(sunos) ?([\d\.]*)/i],[[h,"Solaris"],A],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[h,A]]},wn=function(){var t={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return me.call(t.init,[[J,[h,A,Bt,g]],[ge,[$]],[pe,[g,m,E]],[se,[h,A]],[Q,[h,A]]]),me.call(t.isIgnore,[[J,[A,Bt]],[se,[A]],[Q,[A]]]),me.call(t.isIgnoreRgx,[[J,/ ?browser$/i],[Q,/ ?os$/i]]),me.call(t.toString,[[J,[h,A]],[ge,[$]],[pe,[E,m]],[se,[h,A]],[Q,[h,A]]]),t}(),Ba=function(t,e){var n=wn.init[e],i=wn.isIgnore[e]||0,o=wn.isIgnoreRgx[e]||0,r=wn.toString[e]||0;function s(){me.call(this,n)}return s.prototype.getItem=function(){return t},s.prototype.withClientHints=function(){return Te?Te.getHighEntropyValues(pr).then(function(a){return t.setCH(new gr(a,!1)).parseCH().get()}):t.parseCH().get()},s.prototype.withFeatureCheck=function(){return t.detectFeature().get()},e!=Ze&&(s.prototype.is=function(a){var l=!1;for(var u in this)if(this.hasOwnProperty(u)&&!Ci(i,u)&&ye(o?tt(o,this[u]):this[u])==ye(o?tt(o,a):a)){if(l=!0,a!=U.UNDEFINED)break}else if(a==U.UNDEFINED&&l){l=!l;break}return l},s.prototype.toString=function(){var a=et;for(var l in r)typeof this[r[l]]!==U.UNDEFINED&&(a+=(a?" ":et)+this[r[l]]);return a||U.UNDEFINED}),Te||(s.prototype.then=function(a){var l=this,u=function(){for(var p in l)l.hasOwnProperty(p)&&(this[p]=l[p])};u.prototype={is:s.prototype.is,toString:s.prototype.toString};var d=new u;return a(d),d}),new s};function gr(t,e){if(t=t||{},me.call(this,pr),e)me.call(this,[[Ti,wi(t[Oe])],[yi,wi(t[Oa])],[R,/\?1/.test(t[Na])],[m,Lt(t[xa])],[Qe,Lt(t[fr])],[Oi,Lt(t[ka])],[$,Lt(t[Ra])],[Le,wi(t[Pa])],[Cn,Lt(t[va])]]);else for(var n in t)this.hasOwnProperty(n)&&typeof t[n]!==U.UNDEFINED&&(this[n]=t[n])}function dr(t,e,n,i){return this.get=function(o){return o?this.data.hasOwnProperty(o)?this.data[o]:void 0:this.data},this.set=function(o,r){return this.data[o]=r,this},this.setCH=function(o){return this.uaCH=o,this},this.detectFeature=function(){if(Z&&Z.userAgent==this.ua)switch(this.itemType){case J:Z.brave&&typeof Z.brave.isBrave==U.FUNCTION&&this.set(h,"Brave");break;case pe:!this.get(g)&&Te&&Te[R]&&this.set(g,R),this.get(m)=="Macintosh"&&Z&&typeof Z.standalone!==U.UNDEFINED&&Z.maxTouchPoints&&Z.maxTouchPoints>2&&this.set(m,"iPad").set(g,x);break;case Q:!this.get(h)&&Te&&Te[Qe]&&this.set(h,Te[Qe]);break;case Ze:var o=this.data,r=function(s){return o[s].getItem().detectFeature().get()};this.set(J,r(J)).set(ge,r(ge)).set(pe,r(pe)).set(se,r(se)).set(Q,r(Q))}return this},this.parseUA=function(){switch(this.itemType!=Ze&&Ii.call(this.data,this.ua,this.rgxMap),this.itemType){case J:this.set(Bt,bi(this.get(A)));break;case Q:if(this.get(h)=="iOS"&&this.get(A)=="18.6"){var o=/\) Version\/([\d\.]+)/.exec(this.ua);o&&parseInt(o[1].substring(0,2),10)>=26&&this.set(A,o[1])}break}return this},this.parseCH=function(){var o=this.uaCH,r=this.rgxMap;switch(this.itemType){case J:case se:var s=o[yi]||o[Ti],a;if(s)for(var l=0;l<s.length;l++){var u=s[l].brand||s[l],d=s[l].version;this.itemType==J&&!/not.a.brand/i.test(u)&&(!a||/Chrom/.test(a)&&u!=sr||a==bn&&/WebView2/.test(u))&&(u=fe(u,Da),a=this.get(h),a&&!/Chrom/.test(a)&&/Chrom/.test(u)||this.set(h,u).set(A,d).set(Bt,bi(d)),a=u),this.itemType==se&&u==sr&&this.set(A,d)}break;case ge:var p=o[$];p&&(p&&o[Cn]=="64"&&(p+="64"),Ii.call(this.data,p+";",r));break;case pe:if(o[R]&&this.set(g,R),o[m]&&(this.set(m,o[m]),!this.get(g)||!this.get(E))){var I={};Ii.call(I,"droid 9; "+o[m]+")",r),!this.get(g)&&I.type&&this.set(g,I.type),!this.get(E)&&I.vendor&&this.set(E,I.vendor)}if(o[Le]){var b;if(typeof o[Le]!="string")for(var f=0;!b&&f<o[Le].length;)b=fe(o[Le][f++],cr);else b=fe(o[Le],cr);this.set(g,b)}break;case Q:var C=o[Qe];if(C){var w=o[Oi];C==Si&&(w=parseInt(bi(w),10)>=13?"11":"10"),this.set(h,C).set(A,w)}this.get(h)==Si&&o[m]=="Xbox"&&this.set(h,"Xbox").set(A,void 0);break;case Ze:var v=this.data,L=function(y){return v[y].getItem().setCH(o).parseCH().get()};this.set(J,L(J)).set(ge,L(ge)).set(pe,L(pe)).set(se,L(se)).set(Q,L(Q))}return this},me.call(this,[["itemType",t],["ua",e],["uaCH",i],["rgxMap",n],["data",Ba(this,t)]]),this}function ee(t,e,n){if(typeof t===U.OBJECT?(In(t,!0)?(typeof e===U.OBJECT&&(n=e),e=t):(n=t,e=void 0),t=void 0):typeof t===U.STRING&&!In(e,!0)&&(n=e,e=void 0),n)if(typeof n.append===U.FUNCTION){var i={};n.forEach(function(d,p){i[String(p).toLowerCase()]=d}),n=i}else{var o={};for(var r in n)n.hasOwnProperty(r)&&(o[String(r).toLowerCase()]=n[r]);n=o}if(!(this instanceof ee))return new ee(t,e,n).getResult();var s=typeof t===U.STRING?t:n&&n[Jo]?n[Jo]:Z&&Z.userAgent?Z.userAgent:et,a=new gr(n,!0),l=e?_a(ur,e):ur,u=function(d){return d==Ze?function(){return new dr(d,s,l,a).set("ua",s).set(J,this.getBrowser()).set(ge,this.getCPU()).set(pe,this.getDevice()).set(se,this.getEngine()).set(Q,this.getOS()).get()}:function(){return new dr(d,s,l[d],a).parseUA().get()}};return me.call(this,[["getBrowser",u(J)],["getCPU",u(ge)],["getDevice",u(pe)],["getEngine",u(se)],["getOS",u(Q)],["getResult",u(Ze)],["getUA",function(){return s}],["setUA",function(d){return Mt(d)&&(s=Sn(d,ya)),this}]]).setUA(s),this}ee.VERSION=Ta;ee.BROWSER=Tn([h,A,Bt,g]);ee.CPU=Tn([$]);ee.DEVICE=Tn([m,E,g,_t,R,G,x,de,Dt]);ee.ENGINE=ee.OS=Tn([h,A]);var of=Object.freeze({115:"115",2345:"2345",360:"360",ALIPAY:"Alipay",AMAYA:"Amaya",ANDROID:"Android Browser",ARORA:"Arora",AVANT:"Avant",AVAST:"Avast Secure Browser",AVG:"AVG Secure Browser",BAIDU:"Baidu Browser",BASILISK:"Basilisk",BING:"Bing",BLAZER:"Blazer",BOLT:"Bolt",BOWSER:"Bowser",BRAVE:"Brave",CAMINO:"Camino",CHIMERA:"Chimera",CHROME:"Chrome",CHROME_HEADLESS:"Chrome Headless",CHROME_MOBILE:"Mobile Chrome",CHROME_WEBVIEW:"Chrome WebView",CHROMIUM:"Chromium",COBALT:"Cobalt",COC_COC:"Coc Coc",CONKEROR:"Conkeror",DAUM:"Daum",DILLO:"Dillo",DOLPHIN:"Dolphin",DOOBLE:"Dooble",DORIS:"Doris",DRAGON:"Dragon",DUCKDUCKGO:"DuckDuckGo",ECOSIA:"Ecosia",EDGE:"Edge",EDGE_WEBVIEW:"Edge WebView",EDGE_WEBVIEW2:"Edge WebView2",EPIPHANY:"Epiphany",FACEBOOK:"Facebook",FALKON:"Falkon",FIREBIRD:"Firebird",FIREFOX:"Firefox",FIREFOX_FOCUS:"Firefox Focus",FIREFOX_MOBILE:"Mobile Firefox",FIREFOX_REALITY:"Firefox Reality",FENNEC:"Fennec",FLOCK:"Flock",FLOW:"Flow",GO:"GoBrowser",GOOGLE_SEARCH:"GSA",HELIO:"Helio",HEYTAP:"HeyTap",HONOR:"Honor",HUAWEI:"Huawei Browser",ICAB:"iCab",ICE:"ICE Browser",ICEAPE:"IceApe",ICECAT:"IceCat",ICEDRAGON:"IceDragon",ICEWEASEL:"IceWeasel",IE:"IE",INSTAGRAM:"Instagram",IRIDIUM:"Iridium",IRON:"Iron",JASMINE:"Jasmine",KONQUEROR:"Konqueror",KAKAO:"KakaoTalk",KHTML:"KHTML",K_MELEON:"K-Meleon",KLAR:"Klar",KLARNA:"Klarna",KINDLE:"Kindle",LENOVO:"Smart Lenovo Browser",LADYBIRD:"Ladybird",LG:"LG Browser",LIBREWOLF:"LibreWolf",LIEBAO:"LBBROWSER",LINE:"Line",LINKEDIN:"LinkedIn",LINKS:"Links",LUNASCAPE:"Lunascape",LYNX:"Lynx",MAEMO:"Maemo Browser",MAXTHON:"Maxthon",MIDORI:"Midori",MINIMO:"Minimo",MIUI:"MIUI Browser",MOZILLA:"Mozilla",MOSAIC:"Mosaic",NAVER:"Naver",NETFRONT:"NetFront",NETSCAPE:"Netscape",NETSURF:"Netsurf",NOKIA:"Nokia Browser",OBIGO:"Obigo",OCULUS:"Oculus Browser",OMNIWEB:"OmniWeb",OPERA:"Opera",OPERA_COAST:"Opera Coast",OPERA_GX:"Opera GX",OPERA_MINI:"Opera Mini",OPERA_MOBI:"Opera Mobi",OPERA_TABLET:"Opera Tablet",OPERA_TOUCH:"Opera Touch",OTTER:"Otter",OVI:"OviBrowser",PALEMOON:"PaleMoon",PHANTOMJS:"PhantomJS",PHOENIX:"Phoenix",PICOBROWSER:"Pico Browser",POLARIS:"Polaris",PUFFIN:"Puffin",QQ:"QQBrowser",QQ_LITE:"QQBrowserLite",QUARK:"Quark",QUPZILLA:"QupZilla",QUTEBROWSER:"qutebrowser",QWANT:"Qwant",REKONQ:"rekonq",ROCKMELT:"Rockmelt",SAFARI:"Safari",SAFARI_MOBILE:"Mobile Safari",SAILFISH:"Sailfish Browser",SAMSUNG:"Samsung Internet",SEAMONKEY:"SeaMonkey",SILK:"Silk",SKYFIRE:"Skyfire",SLEIPNIR:"Sleipnir",SLIMBOAT:"SlimBoat",SLIMBROWSER:"SlimBrowser",SLIMJET:"Slimjet",SNAPCHAT:"Snapchat",SOGOU_EXPLORER:"Sogou Explorer",SOGOU_MOBILE:"Sogou Mobile",SURF:"Surf",SWIFTFOX:"Swiftfox",TESLA:"Tesla",TIKTOK:"TikTok",TIZEN:"Tizen Browser",TWITTER:"Twitter",UC:"UCBrowser",UP:"UP.Browser",VIVALDI:"Vivaldi",VIVO:"Vivo Browser",W3M:"w3m",WATERFOX:"Waterfox",WEBKIT:"WebKit",WECHAT:"WeChat",WEIBO:"Weibo",WHALE:"Whale",WOLVIC:"Wolvic",YANDEX:"Yandex",ZALO:"Zalo"});var Ut=Object.freeze({CRAWLER:"crawler",CLI:"cli",EMAIL:"email",FETCHER:"fetcher",INAPP:"inapp",MEDIAPLAYER:"mediaplayer",LIBRARY:"library"}),mr=Object.freeze({"68K":"68k",ALPHA:"alpha",ARM:"arm",ARM_64:"arm64",ARM_HF:"armhf",AVR:"avr",AVR_32:"avr32",IA64:"ia64",IRIX:"irix",IRIX_64:"irix64",MIPS:"mips",MIPS_64:"mips64",PA_RISC:"pa-risc",PPC:"ppc",SPARC:"sparc",SPARC_64:"sparc64",X86:"ia32",X86_64:"amd64"});var rf=Object.freeze({CONSOLE:"console",DESKTOP:"desktop",EMBEDDED:"embedded",MOBILE:"mobile",SMARTTV:"smarttv",TABLET:"tablet",WEARABLE:"wearable",XR:"xr"});var sf=Object.freeze({ACER:"Acer",ADVAN:"Advan",ALCATEL:"Alcatel",APPLE:"Apple",AMAZON:"Amazon",ARCHOS:"Archos",ASUS:"ASUS",ATT:"AT&T",BENQ:"BenQ",BLACKBERRY:"BlackBerry",BLU:"BLU",CAT:"Cat",DELL:"Dell",ENERGIZER:"Energizer",ESSENTIAL:"Essential",FACEBOOK:"Facebook",FAIRPHONE:"Fairphone",GEEKSPHONE:"GeeksPhone",GENERIC:"Generic",GOOGLE:"Google",HISENSE:"Hisense",HMD:"HMD",HP:"HP",HTC:"HTC",HUAWEI:"Huawei",IMO:"IMO",INFINIX:"Infinix",ITEL:"itel",JOLLA:"Jolla",KOBO:"Kobo",LAVA:"Lava",LENOVO:"Lenovo",LG:"LG",MEIZU:"Meizu",MICROMAX:"Micromax",MICROSOFT:"Microsoft",MOTOROLA:"Motorola",NEXIAN:"Nexian",NINTENDO:"Nintendo",NOKIA:"Nokia",NOTHING:"Nothing",NVIDIA:"Nvidia",ONEPLUS:"OnePlus",OPPO:"OPPO",OUYA:"Ouya",PALM:"Palm",PANASONIC:"Panasonic",PEBBLE:"Pebble",PHILIPS:"Philips",PICO:"Pico",POLYTRON:"Polytron",REALME:"Realme",RETROID:"Retroid",RIM:"RIM",ROKU:"Roku",SAMSUNG:"Samsung",SHARP:"Sharp",SIEMENS:"Siemens",SMARTFREN:"Smartfren",SONY:"Sony",SPRINT:"Sprint",TCL:"TCL",TECHNISAT:"TechniSAT",TECNO:"TECNO",TESLA:"Tesla",ULEFONE:"Ulefone",VIVO:"Vivo",VIZIO:"Vizio",VODAFONE:"Vodafone",WIKO:"Wiko",XBOX:"Xbox",XIAOMI:"Xiaomi",ZEBRA:"Zebra",ZTE:"ZTE"});var hr=Object.freeze({AMAYA:"Amaya",ARKWEB:"ArkWeb",BLINK:"Blink",EDGEHTML:"EdgeHTML",FLOW:"Flow",GECKO:"Gecko",GOANNA:"Goanna",ICAB:"iCab",KHTML:"KHTML",LIBWEB:"LibWeb",LINKS:"Links",LYNX:"Lynx",NETFRONT:"NetFront",NETSURF:"NetSurf",PRESTO:"Presto",SERVO:"Servo",TASMAN:"Tasman",TRIDENT:"Trident",W3M:"w3m",WEBKIT:"WebKit"});var Er=Object.freeze({AIX:"AIX",AMIGA_OS:"Amiga OS",ANDROID:"Android",ANDROID_X86:"Android-x86",ARCAOS:"ArcaOS",ARCH:"Arch",BADA:"Bada",BEOS:"BeOS",BLACKBERRY:"BlackBerry",CENTOS:"CentOS",CHROME_OS:"Chrome OS",CHROMECAST:"Chromecast",CHROMECAST_ANDROID:"Chromecast Android",CHROMECAST_FUCHSIA:"Chromecast Fuchsia",CHROMECAST_LINUX:"Chromecast Linux",CHROMECAST_SMARTSPEAKER:"Chromecast SmartSpeaker",CONTIKI:"Contiki",DEBIAN:"Debian",DEEPIN:"Deepin",DRAGONFLY:"DragonFly",ELEMENTARY_OS:"elementary OS",FEDORA:"Fedora",FIREFOX_OS:"Firefox OS",FREEBSD:"FreeBSD",FUCHSIA:"Fuchsia",GENTOO:"Gentoo",GHOSTBSD:"GhostBSD",GNU:"GNU",HAIKU:"Haiku",HARMONYOS:"HarmonyOS",HP_UX:"HP-UX",HURD:"Hurd",IOS:"iOS",JOLI:"Joli",KAIOS:"KaiOS",KNOPPIX:"Knoppix",KUBUNTU:"Kubuntu",LINPUS:"Linpus",LINSPIRE:"Linspire",LINUX:"Linux",MACOS:"macOS",MAEMO:"Maemo",MAGEIA:"Mageia",MANDRIVA:"Mandriva",MANJARO:"Manjaro",MEEGO:"MeeGo",MINIX:"Minix",MINT:"Mint",MORPH_OS:"Morph OS",NETBSD:"NetBSD",NETRANGE:"NetRange",NETTV:"NetTV",NINTENDO:"Nintendo",OPENHARMONY:"OpenHarmony",OPENBSD:"OpenBSD",OPENVMS:"OpenVMS",OS2:"OS/2",PALM:"Palm",PC_BSD:"PC-BSD",PCLINUXOS:"PCLinuxOS",PICO:"Pico",PLAN9:"Plan9",PLAYSTATION:"PlayStation",QNX:"QNX",RASPBIAN:"Raspbian",REDHAT:"RedHat",RIM_TABLET_OS:"RIM Tablet OS",RISC_OS:"RISC OS",SABAYON:"Sabayon",SAILFISH:"Sailfish",SERENITYOS:"SerenityOS",SERIES40:"Series40",SLACKWARE:"Slackware",SOLARIS:"Solaris",SUSE:"SUSE",SYMBIAN:"Symbian",TIZEN:"Tizen",UBUNTU:"Ubuntu",UBUNTU_TOUCH:"Ubuntu Touch",UNIX:"Unix",VECTORLINUX:"VectorLinux",WATCHOS:"watchOS",WEBOS:"WebOS",WINDOWS:"Windows",WINDOWS_CE:"Windows CE",WINDOWS_IOT:"Windows IoT",WINDOWS_MOBILE:"Windows Mobile",WINDOWS_PHONE:"Windows Phone",WINDOWS_RT:"Windows RT",XBOX:"Xbox",XUBUNTU:"Xubuntu",ZENWALK:"Zenwalk"});var Ar=Object.freeze({BrowserName:{CLI:{CURL:"curl",ELINKS:"ELinks",HTTPIE:"HTTPie",LYNX:"Lynx",WGET:"Wget"},Crawler:{AHREFS_BOT:"AhrefsBot",AI2_BOT:"AI2Bot",AIHIT_BOT:"aiHitBot",ALGOLIA_CRAWLER:"Algolia Crawler",APPLE_BOT:"Applebot",APPLE_BOT_EXTENDED:"Applebot-Extended",ASK_TEOMA:"Teoma",AMAZON_BOT:"Amazonbot",AMAZON_CONTXBOT:"contxbot",ANTHROPIC_AI:"anthropic-ai",ANTHROPIC_CLAUDE_BOT:"ClaudeBot",ANTHROPIC_CLAUDE_SEARCHBOT:"Claude-SearchBot",ANTHROPIC_CLAUDE_WEB:"Claude-Web",ARCHIVEORG_BOT:"archive.org_bot",BAIDU_ADS:"Baidu-ADS",BAIDU_SPIDER:"Baiduspider",BAIDU_SPIDER_ADS:"Baiduspider-ads",BAIDU_SPIDER_CPRO:"Baiduspider-cpro",BAIDU_SPIDER_FAVO:"Baiduspider-favo",BAIDU_SPIDER_IMAGE:"Baiduspider-image",BAIDU_SPIDER_NEWS:"Baiduspider-news",BAIDU_SPIDER_RENDER:"Baiduspider-render",BAIDU_SPIDER_VIDEO:"Baiduspider-video",BLEX_BOT:"BLEXBot",BOTIFY:"botify",BRAVE_BOT:"Bravebot",BYTEDANCE_BYTESPIDER:"Bytespider",BYTEDANCE_TIKTOKSPIDER:"TikTokSpider",COMMON_CRAWL_CCBOT:"CCBot",COCCOC_BOT_WEB:"coccocbot-web",COCCOC_BOT_IMAGE:"coccocbot-image",COHERE_TRAINING_DATA_CRAWLER:"cohere-training-data-crawler",COTOYOGI:"Cotoyogi",COVEO_BOT:"Coveobot",CRITEO_BOT:"CriteoBot",DATAFORSEO_BOT:"DataForSeoBot",DAUM:"Daum",DAUM_DAUMOA:"Daumoa",DAUM_DAUMOA_IMAGE:"Daumoa-image",DEEPSEEK_BOT:"DeepSeekBot",DIFFBOT:"Diffbot",DUCKDUCKGO_BOT:"DuckDuckBot",DUCKDUCKGO_FAVICONS_BOT:"DuckDuckGo-Favicons-Bot",ELASTIC:"Elastic",ELASTIC_SWIFTYPE_BOT:"Swiftbot",EXALEAD_EXABOT:"Exabot",FIRECRAWL_AGENT:"FirecrawlAgent",FREESPOKE:"Freespoke",GOOGLE_ADSBOT:"AdsBot-Google",GOOGLE_ADSBOT_MOBILE:"Adsbot-Google-Mobile",GOOGLE_ADSENSE:"AdSense",GOOGLE_APIS:"APIs-Google",GOOGLE_BOT:"Googlebot",GOOGLE_BOT_IMAGE:"Googlebot-Image",GOOGLE_BOT_NEWS:"Googlebot-News",GOOGLE_BOT_VIDEO:"Googlebot-Video",GOOGLE_CLOUDVERTEXBOT:"Google-CloudVertexBot",GOOGLE_EXTENDED:"Google-Extended",GOOGLE_INSPECTIONTOOL:"Google-InspectionTool",GOOGLE_OTHER:"GoogleOther",GOOGLE_OTHER_IMAGE:"GoogleOther-Image",GOOGLE_OTHER_VIDEO:"GoogleOther-Video",GOOGLE_SAFETY:"Google-Safety",GOOGLE_STOREBOT:"Storebot-Google",HIVE_IMAGESIFTBOT:"ImagesiftBot",HUAWEI_PANGUBOT:"PanguBot",HUAWEI_PETALBOT:"PetalBot",HUGGINGFACE_BOT:"HuggingFace-Bot",HUNTER_VELENPUBLICWEBCRAWLER:"VelenPublicWebCrawler",IA_ARCHIVER:"ia_archiver",IASK_BOT:"iAskBot",KAGI_BOT:"Kagibot",KANGAROO_BOT:"Kangaroo Bot",LINE_SPIDER:"Linespider",LINKEDIN_BOT:"LinkedInBot",MAGPIE_CRAWLER:"magpie-crawler",MARGINALIA:"marginalia",META_EXTERNALAGENT:"meta-externalagent",META_FACEBOOKBOT:"FacebookBot",META_FACEBOOKCATALOG:"facebookcatalog",META_FACEBOOKEXTERNALHIT:"facebookexternalhit",MAJESTIC_MJ12BOT:"MJ12bot",MICROSOFT_BINGBOT:"Bingbot",MICROSOFT_MSNBOT:"msnbot",MICROSOFT_ADIDXBOT:"adidxbot",MOJEEK_BOT:"MojeekBot",MOZ_DOTBOT:"DotBot",ONCRAWL:"OnCrawl",ONESPOT_SCRAPERBOT:"Onespot-ScraperBot",OPENAI_GPTBOT:"GPTBot",OPENAI_SEARCH_BOT:"OAI-SearchBot",PERPLEXITY_BOT:"PerplexityBot",QIHOO_360_SPIDER:"360Spider",QWANT_BOT:"Qwantbot",QWANT_BOT_NEWS:"Qwantbot-news",REPLICATE_BOT:"Replicate-Bot",RUNPOD_BOT:"RunPod-Bot",SB_INTUITIONS_BOT:"SBIntuitionsBot",SEEKPORT_BOT:"SeekportBot",SEMRUSH_BOT:"SemrushBot",SEMRUSH_BOT_BACKLINK:"SemrushBot-BA",SEMRUSH_BOT_CONTENTSHAKE:"SemrushBot-OCOB",SEMRUSH_BOT_SEO_CHECKER:"SemrushBot-SI",SEZNAM_BOT:"SeznamBot",SITEIMPROVE:"Siteimprove",SOGOU_PIC_SPIDER:"Sogou Pic Spider",SOGOU_WEB_SPIDER:"Sogou web spider",STARTPAGE:"Startpage",SURLY_BOT:"SurdotlyBot",TIMPI_BOT:"Timpibot",TOGETHER_BOT:"Together-Bot",TURNITIN_BOT:"TurnitinBot",TWIN_AGENT:"TwinAgent",VERCEL_V0BOT:"v0bot",WEBZIO:"webzio",WEBZIO_EXTENDED:"Webzio-Extended",WEBZIO_OMGILI:"omgili",WEBZIO_OMGILI_BOT:"omgilibot",XAI_BOT:"xAI-Bot",YAHOO_JAPAN:"Y!J-BRW",YAHOO_SLURP:"Yahoo! Slurp",YANDEX_ACCESSIBILITY_BOT:"YandexAccessibilityBot",YANDEX_ADDITIONAL_BOT:"YandexAdditionalBot",YANDEX_ADNET:"YandexAdNet",YANDEX_BLOGS:"YandexBlogs",YANDEX_BOT:"YandexBot",YANDEX_BOT_MIRRORDETECTOR:"YandexBot MirrorDetector",YANDEX_COMBOT:"YandexComBot",YANDEX_FAVICONS:"YandexFavicons",YANDEX_IMAGE_RESIZER:"YandexImageResizer",YANDEX_IMAGES:"YandexImages",YANDEX_MARKET:"YandexMarket",YANDEX_MEDIA:"YandexMedia",YANDEX_METRIKA:"YandexMetrika",YANDEX_MOBILE_BOT:"YandexMobileBot",YANDEX_MOBILE_SCREENSHOT_BOT:"YandexMobileScreenShotBot",YANDEX_NEWS:"YandexNews",YANDEX_ONTODB:"YandexOntoDB",YANDEX_ONTODB_API:"YandexOntoDBAPI",YANDEX_PARTNER:"YandexPartner",YANDEX_RCA:"YandexRCA",YANDEX_RENDERRESOURCES_BOT:"YandexRenderResourcesBot",YANDEX_SCREENSHOT_BOT:"YandexScreenshotBot",YANDEX_SPRAV_BOT:"YandexSpravBot",YANDEX_TRACKER:"YandexTracker",YANDEX_VERTICALS:"YandexVerticals",YANDEX_VERTIS:"YandexVertis",YANDEX_VIDEO:"YandexVideo",YANDEX_VIDEO_PARSER:"YandexVideoParser",YANDEX_WEBMASTER:"YandexWebmaster",YEP_BOT:"YepBot",YETI:"Yeti",YISOU_SPIDER:"YisouSpider",YOU_BOT:"YouBot",ZHIPU_CHATGLM_SPIDER:"ChatGLM-Spider",ZUM_BOT:"ZumBot"},Email:{AIRMAIL:"Airmail",APPLE_MAIL:"Mail",BLUEMAIL:"BlueMail",DAUM_MAIL:"DaumMail",EVOLUTION:"Evolution",EM_CLIENT:"eM Client",FOXMAIL:"Foxmail",KMAIL:"KMail",KMAIL2:"kmail2",KONTACT:"Kontact",MICROSOFT_OUTLOOK:"Microsoft Outlook",MICROSOFT_OUTLOOK_MAC:"MacOutlook",NAVER_MAILAPP:"NaverMailApp",POLYMAIL:"Polymail",PROTON_MAIL:"ProtonMail",SPARK_MAIL:"SparkDesktop",SPARROW:"Sparrow",THUNDERBIRD:"Thunderbird",YAHOO_MAIL:"Yahoo",ZIMBRA:"Zimbra",ZOHO_MAIL:"ZohoMail-Desktop"},Fetcher:{AHREFS_SITEAUDIT:"AhrefsSiteAudit",ANTHROPIC_CLAUDE_USER:"Claude-User",ASANA:"Asana",BETTER_UPTIME_BOT:"Better Uptime Bot",BITLY_BOT:"bitlybot",BLUESKY:"Bluesky",BUFFER_LINKPREVIEWBOT:"BufferLinkPreviewBot",COHERE_AI:"Cohere-AI",DISCORD_BOT:"Discordbot",DUCKDUCKGO_ASSISTBOT:"DuckAssistBot",GOOGLE_CHROME_LIGHTHOUSE:"Chrome-Lighthouse",GOOGLE_FEEDFETCHER:"FeedFetcher-Google",GOOGLE_GEMINI_DEEP_RESEARCH:"Gemini-Deep-Research",GOOGLE_IMAGEPROXY:"GoogleImageProxy",GOOGLE_PAGERENDERER:"Google-PageRenderer",GOOGLE_READ_ALOUD:"Google-Read-Aloud",GOOGLE_PRODUCER:"GoogleProducer",GOOGLE_SITE_VERIFICATION:"Google-Site-Verification",HUBSPOT_PAGE_FETCHER:"HubSpot Page Fetcher",IFRAMELY:"Iframely",KAKAOTALK_SCRAP:"kakaotalk-scrap",KEYBASE_BOT:"KeybaseBot",META_EXTERNALFETCHER:"meta-externalfetcher",META_WHATSAPP:"WhatsApp",MICROSOFT_BINGPREVIEW:"BingPreview",MICROSOFT_PREVIEW:"MicrosoftPreview",MISTRALAI_USER:"MistralAI-User",NAVER_BLUENO:"Blueno",ONCRAWL_ROGERBOT:"rogerbot",OPENAI_CHATGPT_USER:"ChatGPT-User",PERPLEXITY_USER:"Perplexity-User",PINTEREST_BOT:"Pinterestbot",SEMRUSH_SITEAUDITBOT:"SiteAuditBot",SLACK_BOT:"Slackbot",SLACK_BOT_LINKEXPANDING:"Slackbot-LinkExpanding",SLACK_IMGPROXY:"Slack-ImgProxy",SNAP_URL_PREVIEW:"Snap URL Preview",SKYPE_URIPREVIEW:"SkypeUriPreview",TELEGRAM_BOT:"TelegramBot",UPTIMEROBOT:"UptimeRobot",VERCEL_FAVICON_BOT:"vercel-favicon-bot",VERCEL_SCREENSHOT_BOT:"vercel-screenshot-bot",VERCEL_BOT:"Vercelbot",VERCEL_FLAGS:"vercelflags",VERCEL_TRACING:"verceltracing",X_TWITTERBOT:"Twitterbot",YANDEX_CALENDAR:"YandexCalendar",YANDEX_DIRECT:"YandexDirect",YANDEX_DIRECTDYN:"YandexDirectDyn",YANDEX_DIRECTFETCHER:"YaDirectFetcher",YANDEX_FORDOMAIN:"YandexForDomain",YANDEX_PAGECHECKER:"YandexPagechecker",YANDEX_SEARCHSHOP:"YandexSearchShop",YANDEX_SITELINKS:"YandexSitelinks",YANDEX_USERPROXY:"YandexUserproxy",ZOOMINFO_BOT:"Zoombot"},InApp:{DISCORD:"Discord",EVERNOTE:"Evernote",FIGMA:"Figma",FLIPBOARD:"Flipboard",MATTERMOST:"Mattermost",TEAMS:"Teams",NOTION:"Notion",POSTMAN:"Postman",RAMBOX:"Rambox",ROCKETCHAT:"Rocket.Chat",SLACK:"Slack",TIKTOK_LITE:"TikTok Lite",VSCODE:"VS Code",YAHOO_JAPAN:"Yahoo! Japan"},Library:{ADOBE_AIR:"AdobeAIR",AIOHTTP:"aiohttp",APACHE_HTTPCLIENT:"Apache-HttpClient",AXIOS:"axios",GO_HTTP_CLIENT:"go-http-client",GOT:"got",GUZZLEHTTP:"GuzzleHttp",JAVA:"Java",JAVA_HTTPCLIENT:"Java-http-client",JSDOM:"jsdom",LIBWWW_PERL:"libwww-perl",LUA_RESTY_HTTP:"lua-resty-http",NEEDLE:"Needle",NUTCH:"Nutch",OKHTTP:"OkHttp",NODE_FETCH:"node-fetch",NODE_SUPERAGENT:"node-superagent",PHP_SOAP:"PHP-SOAP",POSTMAN_RUNTIME:"PostmanRuntime",PYTHON_HTTPX:"python-httpx",PYTHON_URLLIB:"python-urllib",PYTHON_URLLIB3:"python-urllib3",PYTHON_REQUESTS:"python-requests",SCRAPY:"Scrapy"}},DeviceVendor:{Vehicle:{BMW:"BMW",BYD:"BYD",JEEP:"Jeep",RIVIAN:"Rivian",TESLA:"Tesla",VOLVO:"Volvo"}}});var D="model",F="name",P="type",k="vendor",Y="version",_e="mobile",q="tablet",Ri="crawler",Ma="cli",wr="email",br="fetcher",nt="inapp",Ft="mediaplayer",Ua="library",Fa=Object.freeze({browser:[[/(wget|curl|lynx|elinks|httpie)[\/ ]\(?([\w\.-]+)/i],[F,Y,[P,Ma]]]}),Sr=Object.freeze({browser:[[/((?:adidx|ahrefs|amazon|bing|brave|cc|contx|coveo|criteo|dot|duckduck(?:go-favicons-)?|exa|facebook|gpt|iask|kagi|kangaroo |linkedin|mj12|mojeek|oai-search|onespot-scraper|perplexity|sbintuitions|semrush|seznam|surdotly|swift|yep)bot)\/([\w\.-]+)/i,/(algolia crawler(?: renderscript)?)\/?([\w\.]*)/i,/(applebot(?:-extended)?)\/?([\w\.]*)/i,/(baiduspider[-imagevdonwsfcpr]{0,7})\/?([\w\.]*)/i,/(claude(?:bot|-searchbot|-web)|anthropic-ai)\/?([\w\.]*)/i,/(coccocbot-(?:image|web))\/([\w\.]+)/i,/(daum(?:oa)?(?:-image)?)[ \/]([\w\.]+)/i,/(facebook(?:externalhit|catalog)|meta-externalagent)\/([\w\.]+)/i,/(google(?:bot|other|-inspectiontool)(?:-image|-video|-news)?|storebot-google)\/?([\w\.]*)/i,/(ia_archiver|archive\.org_bot)\/?([\w\.]*)/i,/(oncrawl) mobile\/([\w\.]+)/i,/(qwantbot(?:-news)?)[-\w]*\/?([\w\.]*)/i,/((?:semrush|splitsignal)bot[-abcfimostw]*)\/?([\w\.-]*)/i,/(sogou (?:pic|head|web|orion|news) spider)\/([\w\.]+)/i,/(y!?j-(?:asr|br[uw]|dscv|mmp|vsidx|wsc))\/([\w\.]+)/i,/(yandex(?:(?:mobile)?(?:accessibility|additional|com|renderresources|screenshot|sprav)?bot(?!.+mirror)|image(?:s|resizer)|adnet|blogs|favicons|market|media|metrika|news|ontodb(?:api)?|partner|rca|tracker|turbo|verti(?:cal)?s|webmaster|video(?:parser)?))\/([\w\.]+)/i,/(yeti)\/([\w\.]+)/i,/((?:aihit|blex|diff|huggingface-|msn|pangu|replicate-|runpod-|timpi|together-|xai-|you|zum)bot|(?:magpie-|velenpublicweb)crawler|(?:chatglm-|line|screaming frog seo |yisou)spider|cotoyogi|firecrawlagent|freespoke|omgili(?:bot)?|openai image downloader|startpageprivateimageproxy|twinagent|webzio-extended)\/?([\w\.]*)/i],[F,Y,[P,Ri]],[/(yandexbot\/([\w\.]+); mirrordetector)/i],[[F,/\/.+;/ig,""],Y,[P,Ri]],[/((?:adsbot|apis|mediapartners)-google(?:-mobile)?|google-?(?:other|cloudvertexbot|extended|safety))/i,/\b((ai2|aspiegel|dataforseo|deepseek|imagesift|petal|seekport|turnitin|v0)bot|360spider-?(image|video)?|baidu-ads|botify|(byte|tiktok)spider|cohere-training-data-crawler|elastic(?=\/s)|marginalia|siteimprove(?=bot|\.com)|teoma|webzio|yahoo! slurp)/i],[F,[P,Ri]]]}),lf=Object.freeze({device:[[/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[k,D,[P,q]],[/(u304aa)/i],[D,[k,"AT&T"],[P,_e]],[/\bsie-(\w*)/i],[D,[k,"Siemens"],[P,_e]],[/\b(rct\w+) b/i],[D,[k,"RCA"],[P,q]],[/\b(venue[\d ]{2,7}) b/i],[D,[k,"Dell"],[P,q]],[/\b(q(?:mv|ta)\w+) b/i],[D,[k,"Verizon"],[P,q]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[D,[k,"Barnes & Noble"],[P,q]],[/\b(tm\d{3}\w+) b/i],[D,[k,"NuVision"],[P,q]],[/\b(k88) b/i],[D,[k,"ZTE"],[P,q]],[/\b(nx\d{3}j) b/i],[D,[k,"ZTE"],[P,_e]],[/\b(gen\d{3}) b.+49h/i],[D,[k,"Swiss"],[P,_e]],[/\b(zur\d{3}) b/i],[D,[k,"Swiss"],[P,q]],[/^((zeki)?tb.*\b) b/i],[D,[k,"Zeki"],[P,q]],[/\b([yr]\d{2}) b/i,/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i],[D,[k,"Dragon Touch"],[P,q]],[/\b(ns-?\w{0,9}) b/i],[D,[k,"Insignia"],[P,q]],[/\b((nxa|next)-?\w{0,9}) b/i],[D,[k,"NextBook"],[P,q]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[k,"Voice"],D,[P,_e]],[/\b(lvtel\-)?(v1[12]) b/i],[[k,"LvTel"],D,[P,_e]],[/\b(ph-1) /i],[D,[k,"Essential"],[P,_e]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[D,[k,"Envizen"],[P,q]],[/\b(trio[-\w\. ]+) b/i],[D,[k,"MachSpeed"],[P,q]],[/\btu_(1491) b/i],[D,[k,"Rotor"],[P,q]]]}),cf=Object.freeze({browser:[[/((?:air|blue|daum|fox|poly|proton)mail|emclient|evolution|kmail2?|kontact|(?:microsoft |mac)?outlook(?:-express)?|navermailapp|(?!chrom.+)sparrow|sparkdesktop|thunderbird|yahoo|zohomail-desktop)(?:m.+ail; |[\/ ])([\w\.]+)/i,/(mail)\/([\w\.]+) cf/i],[F,Y,[P,wr]],[/zdesktop\/([\w\.]+)/i],[Y,[F,"Zimbra"],[P,wr]]]}),Ir=Object.freeze({browser:[[/(asana|ahrefssiteaudit|(?:bing|microsoft)preview|blueno|(?:chatgpt|claude|mistralai|perplexity)-user|cohere-ai|hubspot page fetcher|mastodon|(?:bitly|bufferlinkpreview|discord|duckassist|linkedin|pinterest|reddit|roger|siteaudit|twitter|uptimero|zoom)bot|google-site-verification|iframely|kakaotalk-scrap|meta-externalfetcher|y!?j-dlc|yandex(?:calendar|direct(?:dyn)?|fordomain|pagechecker|searchshop)|yadirectfetcher)\/([\w\.]+)/i,/(bluesky) cardyb\/([\w\.]+)/i,/(skypeuripreview) preview\/([\w\.]+)/i,/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i,/(whatsapp)\/([\w\.]+)/i],[F,Y,[P,br]],[/((?:better uptime |keybase|telegram|vercel)bot|chrome-lighthouse|feedfetcher-google|gemini-deep-research|google(?:imageproxy|-read-aloud|-pagerenderer|producer)|snap url preview|vercel(flags|tracing|-(favicon|screenshot)-bot)|yandex(?:sitelinks|userproxy))/i],[F,[P,br]]],os:[[/whatsapp\/[\d\.]+ (a|i)/i],[[F,t=>t=="A"?"Android":"iOS"]]]}),uf=Object.freeze({browser:[[/\b(discord|figma|mattermost|notion|postman|rambox|rocket.chat|slack|teams)\/([\w\.]+).+(electron\/|; ios)/i,/(flipboard)\/([\w\.]+)/i],[F,Y,[P,nt]],[/(evernote) win/i,/(teams)mobile-(ios|and)/i],[F,[P,nt]],[/chatlyio\/([\d\.]+)/i],[Y,[F,"Slack"],[P,nt]],[/ultralite app_version\/([\w\.]+)/i],[Y,[F,"TikTok Lite"],[P,nt]],[/\) code\/([\d\.]+).+electron\//i],[Y,[F,"VS Code"],[P,nt]],[/jp\.co\.yahoo\.(?:android\.yjtop|ipn\.appli)\/([\d\.]+)/i],[Y,[F,"Yahoo! Japan"],[P,nt]]]}),df=Object.freeze({browser:[[/(apple(?:coremedia|tv))\/([\w\._]+)/i,/(coremedia) v([\w\._]+)/i,/(ares|clementine|music player daemon|nexplayer|ossproxy) ([\w\.-]+)/i,/^(aqualung|audacious|audimusicstream|amarok|bass|bsplayer|core|gnomemplayer|gvfs|irapp|lyssna|music on console|nero (?:home|scout)|nokia\d+|nsplayer|psp-internetradioplayer|quicktime|rma|radioapp|radioclientapplication|soundtap|stagefright|streamium|totem|videos|xbmc|xine|xmms)\/([\w\.-]+)/i,/(lg player|nexplayer) ([\d\.]+)/i,/player\/(nexplayer|lg player) ([\w\.-]+)/i,/(gstreamer) souphttpsrc.+libsoup\/([\w\.-]+)/i,/(htc streaming player) [\w_]+ \/ ([\d\.]+)/i,/(lavf)([\d\.]+)/i,/(mplayer)(?: |\/)(?:(?:sherpya-){0,1}svn)(?:-| )(r\d+(?:-\d+[\w\.-]+))/i,/ (songbird)\/([\w\.-]+)/i,/(winamp)(?:3 version|mpeg| ) ([\w\.-]+)/i,/(vlc)(?:\/| media player - version )([\w\.-]+)/i,/^(foobar2000|itunes|smp)\/([\d\.]+)/i,/com\.(riseupradioalarm)\/([\d\.]*)/i,/(mplayer)(?:\s|\/| unknown-)([\w\.\-]+)/i,/(windows)\/([\w\.-]+) upnp\/[\d\.]+ dlnadoc\/[\d\.]+ home media server/i],[F,Y,[P,Ft]],[/(flrp)\/([\w\.-]+)/i],[[F,"Flip Player"],Y,[P,Ft]],[/(fstream|media player classic|inlight radio|mplayer|nativehost|nero showtime|ocms-bot|queryseekspider|tapinradio|tunein radio|winamp|yourmuze)/i],[F,[P,Ft]],[/(htc_one_s|windows-media-player|wmplayer)\/([\w\.-]+)/i],[[F,/[_-]/g," "],Y,[P,Ft]],[/(rad.io|radio.(?:de|at|fr)) ([\d\.]+)/i],[[F,"rad.io"],Y,[P,Ft]]]}),Ha=Object.freeze({browser:[[/^(apache-httpclient|axios|(?:go|java)-http-client|got|guzzlehttp|java|libwww-perl|lua-resty-http|needle|node-(?:fetch|superagent)|okhttp|php-soap|postmanruntime|python-(?:httpx|urllib[23]?|requests)|scrapy)\/([\w\.]+)/i,/(adobeair|aiohttp|jsdom)\/([\w\.]+)/i,/(nutch)-([\w\.-]+)(\(|$)/i,/\((java)\/([\w\.]+)/i],[F,Y,[P,Ua]]]}),ff=Object.freeze({device:[[/aftlbt962e2/i],[[k,"BMW"]],[/dilink.+(byd) auto/i],[k],[/aftlft962x3/i],[[k,"Jeep"],[D,"Wagooner"]],[/(rivian) (r1t)/i],[k,D],[/vcc.+netfront/i],[[k,"Volvo"]]]}),Cr=Object.freeze({browser:[...Fa.browser,...Ir.browser,...Sr.browser,...Ha.browser],os:[...Ir.os]});var S={ANDORRA:{ANDORRA:"Europe/Andorra"},AUSTRIA:{VIENNA:"Europe/Vienna"},BELGIUM:{BRUSSELS:"Europe/Brussels"},BULGARIA:{SOFIA:"Europe/Sofia"},CROATIA:{ZAGREB:"Europe/Zagreb"},CYPRUS:{NICOSIA_EUROPE:"Europe/Nicosia",NICOSIA_ASIA:"Asia/Nicosia",FAMAGUSTA:"Asia/Famagusta"},CZECHIA:{PRAGUE:"Europe/Prague"},DENMARK:{COPENHAGEN:"Europe/Copenhagen",FAROE:"Atlantic/Faroe"},ESTONIA:{TALLINN:"Europe/Tallinn"},FINLAND:{HELSINKI:"Europe/Helsinki",MARIEHAMN:"Europe/Mariehamn"},FRANCE:{PARIS:"Europe/Paris",CAYENNE:"America/Cayenne",GUADELOUPE:"America/Guadeloupe",MARIGOT:"America/Marigot",MARTINIQUE:"America/Martinique",MAYOTTE:"Indian/Mayotte",REUNION:"Indian/Reunion"},GERMANY:{BERLIN:"Europe/Berlin",BUSINGEN:"Europe/Busingen"},GREECE:{ATHENS:"Europe/Athens"},HUNGARY:{BUDAPEST:"Europe/Budapest"},ICELAND:{REYKJAVIK:"Atlantic/Reykjavik"},IRELAND:{DUBLIN:"Europe/Dublin"},ITALY:{ROME:"Europe/Rome"},LATVIA:{RIGA:"Europe/Riga"},LIECHTENSTEIN:{VADUZ:"Europe/Vaduz"},LITHUANIA:{VILNIUS:"Europe/Vilnius"},LUXEMBOURG:{LUXEMBOURG:"Europe/Luxembourg"},MALTA:{MALTA:"Europe/Malta"},MONACO:{MONACO:"Europe/Monaco"},NETHERLANDS:{AMSTERDAM:"Europe/Amsterdam",ARUBA:"America/Aruba",CURACAO:"America/Curacao",KRALENDIJK:"America/Kralendijk",LOWER_PRINCES:"America/Lower_Princes"},NORWAY:{OSLO:"Europe/Oslo",JAN_MAYEN:"Atlantic/Jan_Mayen",LONGYEARBYEN:"Arctic/Longyearbyen"},POLAND:{WARSAW:"Europe/Warsaw"},PORTUGAL:{LISBON:"Europe/Lisbon",AZORES:"Atlantic/Azores",MADEIRA:"Atlantic/Madeira"},ROMANIA:{BUCHAREST:"Europe/Bucharest"},SAN_MARINO:{SAN_MARINO:"Europe/San_Marino"},SLOVAKIA:{BRATISLAVA:"Europe/Bratislava"},SLOVENIA:{LJUBLJANA:"Europe/Ljubljana"},SPAIN:{MADRID:"Europe/Madrid",CANARY:"Atlantic/Canary",CEUTA:"Africa/Ceuta"},SWEDEN:{STOCKHOLM:"Europe/Stockholm"},SWITZERLAND:{ZURICH:"Europe/Zurich"},VATICAN:{VATICAN:"Europe/Vatican"}},Ga=[S.AUSTRIA.VIENNA,S.BELGIUM.BRUSSELS,S.BULGARIA.SOFIA,S.CROATIA.ZAGREB,S.CYPRUS.NICOSIA_EUROPE,S.CYPRUS.NICOSIA_ASIA,S.CYPRUS.FAMAGUSTA,S.CZECHIA.PRAGUE,S.DENMARK.COPENHAGEN,S.ESTONIA.TALLINN,S.FINLAND.HELSINKI,S.FINLAND.MARIEHAMN,S.FRANCE.PARIS,S.GERMANY.BERLIN,S.GREECE.ATHENS,S.HUNGARY.BUDAPEST,S.IRELAND.DUBLIN,S.ITALY.ROME,S.LATVIA.RIGA,S.LITHUANIA.VILNIUS,S.LUXEMBOURG.LUXEMBOURG,S.MALTA.MALTA,S.NETHERLANDS.AMSTERDAM,S.POLAND.WARSAW,S.PORTUGAL.LISBON,S.ROMANIA.BUCHAREST,S.SLOVAKIA.BRATISLAVA,S.SLOVENIA.LJUBLJANA,S.SPAIN.MADRID,S.SWEDEN.STOCKHOLM,S.FRANCE.CAYENNE,S.FRANCE.GUADELOUPE,S.FRANCE.MARIGOT,S.FRANCE.MARTINIQUE,S.FRANCE.MAYOTTE,S.FRANCE.REUNION,S.PORTUGAL.AZORES,S.PORTUGAL.MADEIRA,S.SPAIN.CANARY],Tr=[S.ICELAND.REYKJAVIK,S.LIECHTENSTEIN.VADUZ,S.NORWAY.OSLO,S.NORWAY.JAN_MAYEN],gf=[...Ga,...Tr],mf=[S.SWITZERLAND.ZURICH,...Tr],hf=[S.AUSTRIA.VIENNA,S.BELGIUM.BRUSSELS,S.BULGARIA.SOFIA,S.CROATIA.ZAGREB,S.CZECHIA.PRAGUE,S.DENMARK.COPENHAGEN,S.ESTONIA.TALLINN,S.FINLAND.HELSINKI,S.FINLAND.MARIEHAMN,S.FRANCE.PARIS,S.GERMANY.BERLIN,S.GREECE.ATHENS,S.HUNGARY.BUDAPEST,S.ITALY.ROME,S.LATVIA.RIGA,S.LITHUANIA.VILNIUS,S.LUXEMBOURG.LUXEMBOURG,S.MALTA.MALTA,S.NETHERLANDS.AMSTERDAM,S.POLAND.WARSAW,S.PORTUGAL.LISBON,S.PORTUGAL.AZORES,S.PORTUGAL.MADEIRA,S.ROMANIA.BUCHAREST,S.SLOVAKIA.BRATISLAVA,S.SLOVENIA.LJUBLJANA,S.SPAIN.MADRID,S.SPAIN.CANARY,S.SWEDEN.STOCKHOLM,S.ANDORRA.ANDORRA,S.GERMANY.BUSINGEN,S.ICELAND.REYKJAVIK,S.LIECHTENSTEIN.VADUZ,S.MONACO.MONACO,S.NORWAY.OSLO,S.SAN_MARINO.SAN_MARINO,S.SPAIN.CEUTA,S.SWITZERLAND.ZURICH,S.VATICAN.VATICAN];function vi(){var t;return typeof window!="undefined"&&((window==null?void 0:window.matchMedia("(display-mode: standalone)").matches)||((t=window.navigator)===null||t===void 0?void 0:t.standalone)||document.referrer.startsWith("android-app://")||(window==null?void 0:window.Windows)||/trident.+(msapphost|webview)\//i.test(navigator.userAgent)||document.referrer.startsWith("app-info://platform/microsoft-store"))}var{Crawler:vf}=Ar.BrowserName,Pi=(t,e,n)=>typeof t=="string"?ee(t,e,n):t;var yr=t=>{let e=Pi(t);if(e.os.is(Er.MACOS)){if(e.cpu.is(mr.ARM))return!0;if(typeof t!="string"&&typeof window!="undefined")try{let n=document.createElement("canvas"),i=n.getContext("webgl2")||n.getContext("webgl")||n.getContext("experimental-webgl"),o=i.getExtension("WEBGL_debug_renderer_info");if(i.getParameter(o.UNMASKED_RENDERER_WEBGL).match(/apple m\d/i))return!0}catch(n){return!1}}return!1};var Or=t=>[Ut.CLI,Ut.CRAWLER,Ut.FETCHER,Ut.LIBRARY].includes(Pi(t,Cr).browser.type),Rr=t=>Pi(t).engine.is(hr.BLINK);function Va(){return{width:window.screen.width,height:window.screen.height}}function Ka(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return console.error("Failed to get timezone:",t),"UTC"}}function vr(){try{return navigator.language||"en-US"}catch(t){return console.error("Failed to get browser locale:",t),"en-US"}}function Pr(){if(typeof window=="undefined")return{userAgent:{name:"",browser:{major:"",name:"",version:""},os:{name:"",version:""},device:void 0,engine:{name:"",version:""},cpu:{architecture:""}},screenResolution:{width:0,height:0},timeZone:"UTC",flags:{isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}};let e=new ee().getResult(),n;try{n={isBot:Or(e),isChromeFamily:Rr(e),isStandalonePWA:vi(),isAppleSilicon:yr(e)}}catch(i){console.error("Failed to compute device flags:",i),n={isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}}return{userAgent:{name:e.ua,browser:{major:e.browser.major||"",name:e.browser.name||"",version:e.browser.version||"",type:e.browser.type},os:{name:e.os.name||"",version:e.os.version||""},device:e.device.model||e.device.type||e.device.vendor?{model:e.device.model,type:e.device.type,vendor:e.device.vendor}:void 0,engine:{name:e.engine.name||"",version:e.engine.version||""},cpu:{architecture:e.cpu.architecture||""}},screenResolution:Va(),timeZone:Ka(),flags:n}}function Nr(){if(typeof window=="undefined")return{};let t=new URLSearchParams(window.location.search);return{locale:t.get("locale")||void 0,currency:t.get("currency")||void 0,utmSource:t.get("utm_source")||void 0,utmMedium:t.get("utm_medium")||void 0,utmCampaign:t.get("utm_campaign")||void 0}}var yn=class{constructor(){this.listeners=new Map}on(e,n){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(n),()=>this.off(e,n)}off(e,n){this.listeners.has(e)&&this.listeners.get(e).delete(n)}async emit(e,n){if(this.listeners.has(e)){let i=Array.from(this.listeners.get(e));await Promise.all(i.map(o=>{try{return Promise.resolve(o(n))}catch(r){return console.error('[EventBus] Error in listener for event "'.concat(e,'":'),r),Promise.resolve()}}))}}clear(){this.listeners.clear()}};kn();function Ht(t){try{let e=t.split(".");if(e.length!==3)return console.error("Invalid JWT token format"),null;let n=e[1],i=n+"=".repeat((4-n.length%4)%4),o=atob(i),r=JSON.parse(o);return r.exp&&Date.now()>=r.exp*1e3?(console.warn("JWT token is expired"),null):{sessionId:r.sessionId,storeId:r.storeId,accountId:r.accountId,customerId:r.customerId,role:r.role,isValid:!0,isLoading:!1}}catch(e){return console.error("Failed to decode JWT token:",e),null}}function xr(t){try{let e=t.split(".");if(e.length!==3)return!0;let n=e[1],i=n+"=".repeat((4-n.length%4)%4),o=atob(i),r=JSON.parse(o);return r.exp?Date.now()>=r.exp*1e3:!1}catch(e){return console.error("Failed to check token expiration:",e),!0}}zt();var it={},Wa=["","VITE_","REACT_APP_","NEXT_PUBLIC_"];function he(t,e=Wa){var n,i,o;for(let r of e){let s=r?"".concat(r).concat(t):t;if(typeof process!="undefined"&&((n=process==null?void 0:process.env)!=null&&n[s]))return console.log("process.env[".concat(s,"]"),process.env[s]),process.env[s];if(typeof it!="undefined"&&((i=it==null?void 0:it.env)!=null&&i[s]))return console.log("import.meta.env[".concat(s,"]"),it.env[s]),it.env[s];if(typeof window!="undefined"&&((o=window==null?void 0:window.__TAGADA_ENV__)!=null&&o[s]))return console.log("window.__TAGADA_ENV__[".concat(s,"]"),window.__TAGADA_ENV__[s]),window.__TAGADA_ENV__[s]}}var za=async(t="default")=>{try{if((he("TAGADA_ENV")||he("TAGADA_ENVIRONMENT"))==="production"||!at(!0))return null;let n=await fetch("/.local.json");if(!n.ok)return null;let i=await n.json(),o={},r=!1;try{let a=await fetch("/config/".concat(t,".tgd.json"));a.ok||(a=await fetch("/config/".concat(t,".json"))),a.ok&&(o=await a.json(),r=!0)}catch(a){}if(!r&&t!=="default"){console.warn("\u26A0\uFE0F Config variant '".concat(t,"' not found, falling back to 'default'"));try{let a=await fetch("/config/default.tgd.json");a.ok||(a=await fetch("/config/default.json")),a.ok&&(o=await a.json(),r=!0,console.log("\u2705 Fallback to 'default' config successful"))}catch(a){}}r||console.warn(t==="default"?"\u26A0\uFE0F No 'default' config found. Create /config/default.tgd.json":"\u26A0\uFE0F Neither '".concat(t,"' nor 'default' config found. Create /config/default.tgd.json"));let s={storeId:i.storeId,accountId:i.accountId,basePath:i.basePath,config:o};return console.log("\u{1F6E0}\uFE0F Using local development plugin config:",s),s}catch(e){return null}},Ya=async()=>{try{if((he("TAGADA_ENV")||he("TAGADA_ENVIRONMENT"))==="production"||!at(!0))return null;try{console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/funnel.local.json...");let i=await fetch("/config/funnel.local.json");if(i.ok){let o=await i.json();console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded local funnel config (NEW format):",o);let{loadLocalFunnelConfig:r}=await Promise.resolve().then(()=>(Hn(),fo));if(await r(),o.staticResources){let s={};for(let[a,l]of Object.entries(o.staticResources))s[a]={id:l};return s}return null}}catch(i){console.log("\u{1F6E0}\uFE0F [V2] funnel.local.json not found, trying legacy format...")}console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/resources.static.json (legacy)...");let e=await fetch("/config/resources.static.json");if(!e.ok)return console.log("\u{1F6E0}\uFE0F [V2] No local static resources found"),null;let n=await e.json();return console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded legacy static resources:",n),n}catch(t){return console.error("\u{1F6E0}\uFE0F [V2] \u274C Error loading static resources:",t),null}},Re=t=>{if(typeof document=="undefined")return;let e=document.querySelector('meta[name="'.concat(t,'"]'));return(e==null?void 0:e.getAttribute("content"))||void 0};function ja(){if(typeof document=="undefined")return{basePath:"/",config:{}};let t=Re("x-plugin-store-id"),e=Re("x-plugin-account-id"),n=Re("x-plugin-base-path")||"/",i={};try{let o=Re("x-plugin-config");o&&(i=JSON.parse(decodeURIComponent(o)))}catch(o){console.warn("[TagadaSDK] Failed to parse plugin config from meta tag:",o)}return{storeId:t,accountId:e,basePath:n,config:i}}var $a=async()=>{try{if(typeof document=="undefined")return null;let t=Re("x-plugin-store-id"),e=Re("x-plugin-account-id");if(!t)return null;let n=Re("x-plugin-base-path")||"/",i={};try{let r=Re("x-plugin-config");if(r){let s=decodeURIComponent(r);i=JSON.parse(s)}}catch(r){console.warn("\u26A0\uFE0F Failed to parse plugin config from meta tag:",r)}e||console.warn("\u26A0\uFE0F Plugin config: Account ID not found in meta tags");let o={storeId:t,accountId:e,basePath:n,config:i};return console.log("\u{1F680} [HIGHEST PRIORITY] Plugin config loaded from meta tags (runtime injected config):",{storeId:t,accountId:e,basePath:n,configKeys:Object.keys(i),configSize:JSON.stringify(i).length}),o}catch(t){return console.warn("\u26A0\uFE0F Error loading production config from meta tags:",t),null}},xi=async(t="default",e)=>{var s,a;console.log("\u{1F527} [V2] loadPluginConfig called with variant:",t);let n=await Ya(),i=await $a();if(i){let l=K(O({},i),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using INJECTED config from meta tags (HIGHEST PRIORITY)"),l}if(e){let l={storeId:e.storeId,accountId:e.accountId,basePath:(s=e.basePath)!=null?s:"/",config:(a=e.config)!=null?a:{},staticResources:n!=null?n:void 0};return console.log("\u2705 [V2] Using raw config parameter (PRIORITY 2)"),l}let o=await Lr();if(o){let l=K(O({},o),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using environment variables config (PRIORITY 3 - build time)"),l}let r=await za(t);if(r){let l=K(O({},r),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using local dev config files (PRIORITY 4)"),l}return console.warn("\u26A0\uFE0F [V2] No plugin config found - using defaults"),{basePath:"/",config:{},staticResources:n!=null?n:void 0}};async function kr(t="default",e){try{if(!at())return null;if(e)return e;let n=["/config/".concat(t,".config.json"),"/config/".concat(t,".tgd.json"),"/config/".concat(t,".json")];for(let i of n)try{let o=await fetch(i);if(o.ok)return await o.json()}catch(o){continue}return console.warn("\u26A0\uFE0F [loadLocalConfig] No config found for '".concat(t,"'")),null}catch(n){return console.error("[loadLocalConfig] Error loading config:",n),null}}async function Lr(){try{if(!at())return;let t=he("TAGADA_STORE_ID"),e=he("TAGADA_ACCOUNT_ID"),n=he("TAGADA_BASE_PATH"),i=he("TAGADA_CONFIG_NAME");if(!t||!e)return;let o=await kr(i);if(!o)return;let r={storeId:t,accountId:e,basePath:n||"/",config:o};return console.log("\u{1F6E0}\uFE0F [createRawPluginConfig] Using environment variables (build-time config):",{hasStoreId:!!r.storeId,hasAccountId:!!r.accountId,basePath:r.basePath,hasConfig:!!r.config}),r}catch(t){console.error("[createRawPluginConfig] Error creating config:",t);return}}var Ni=class{static getPluginConfig(e,n){return{storeId:(e==null?void 0:e.storeId)||(n==null?void 0:n.storeId),accountId:(e==null?void 0:e.accountId)||(n==null?void 0:n.accountId),basePath:(e==null?void 0:e.basePath)||(n==null?void 0:n.basePath)||"/",config:(e==null?void 0:e.config)||{}}}static validateConfig(e){return!!(e.storeId&&e.accountId)}};Jt();Fe();Fe();var ki=new Map,Li=new Set;function qa(){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get("authCode")}async function _r(t,e,n,i=!1){if(Li.has(t))throw i&&console.log("[AuthHandoff] Code already resolved, skipping duplicate request"),new Error("Auth code already resolved");let o=ki.get(t);if(o)return i&&console.log("[AuthHandoff] Resolution already in progress, waiting for existing request"),o;i&&console.log("[AuthHandoff] Resolving authCode:",t.substring(0,15)+"...");let r=(async()=>{try{let s=await fetch("".concat(n,"/api/v1/cms/auth/resolve-handoff"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:t,storeId:e})});if(!s.ok){let l=await s.json().catch(()=>({message:"Unknown error"}));throw new Error(l.message||"Failed to resolve auth handoff: ".concat(s.status))}let a=await s.json();return i&&console.log("[AuthHandoff] \u2705 Resolved successfully:",{customerId:a.customer.id,role:a.customer.role,hasContext:Object.keys(a.context).length>0}),i&&console.log("[AuthHandoff] Storing new token (overriding existing)"),ne(a.token),Xa(i),Li.add(t),a}catch(s){throw console.error("[AuthHandoff] \u274C Failed to resolve:",s),s}finally{ki.delete(t)}})();return ki.set(t,r),r}function Xa(t=!1){if(typeof window=="undefined")return;let e=new URL(window.location.href);e.searchParams.has("authCode")&&(e.searchParams.delete("authCode"),window.history.replaceState({},"",e.pathname+e.search+e.hash),t&&console.log("[AuthHandoff] Cleaned authCode from URL"))}function Dr(){let t=qa();return!(!t||!t.startsWith("ah_")||Li.has(t))}var Gt=class{constructor(e={}){this.bus=new yn;this.eventDispatcher=new Me;this.tokenPromise=null;this.tokenResolver=null;this.isInitializingSession=!1;this.lastSessionInitError=null;this.sessionInitRetryCount=0;this.MAX_SESSION_INIT_RETRIES=3;var a,l,u,d;this.config=e,this.instanceId=Math.random().toString(36).substr(2,9),this.boundHandleStorageChange=this.handleStorageChange.bind(this),this.boundHandlePageshow=p=>{if(p.persisted)if(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Page restored from BFcache (back button), re-initializing funnel...")),this.funnel&&this.state.session&&this.state.store){this.funnel.resetInitialization();let I=this.getAccountId(),f=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||void 0;this.funnel.autoInitialize({customerId:this.state.session.customerId,sessionId:this.state.session.sessionId},{id:this.state.store.id,accountId:I},f).catch(C=>{console.error("[TagadaClient] Funnel re-initialization failed:",C)})}else this.sessionInitRetryCount=0,this.initialize()},console.log("[TagadaClient ".concat(this.instanceId,"] Initializing...")),console.log("[TagadaClient ".concat(this.instanceId,"] Config:"),{debugMode:e.debugMode,hasRawPluginConfig:!!e.rawPluginConfig,rawPluginConfig:e.rawPluginConfig,features:e.features}),no(this.config.debugMode)&&this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Preview mode active - state cleared"));let i=this.resolveEnvironment(),o=Qi(i);e.customApiConfig&&(o=K(O(O({},o),e.customApiConfig),{apiConfig:O(O({},o.apiConfig),e.customApiConfig.apiConfig)}),this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Applied custom API config:"),o.apiConfig.baseUrl)),this.state={auth:{isAuthenticated:!1,isLoading:!1,customer:null,session:null},session:null,customer:null,locale:{locale:"en-US",language:"en",region:"US",messages:{}},currency:{code:"USD",symbol:"$",name:"US Dollar"},store:null,environment:o,isLoading:!0,isInitialized:!1,isSessionInitialized:!1,pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!0,debugMode:(a=e.debugMode)!=null?a:i!=="production",token:null},console.log("[TagadaClient ".concat(this.instanceId,"] Initial state:"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!e.rawPluginConfig}),this.apiClient=new $e({baseURL:o.apiConfig.baseUrl});let r=(l=e.features)==null?void 0:l.funnel;if(r!==!1){let p=typeof r=="object"?r:{};this.funnel=new gt({apiClient:this.apiClient,debugMode:this.state.debugMode,pluginConfig:this.state.pluginConfig,environment:this.state.environment,autoRedirect:p.autoRedirect,funnelId:(u=e.rawPluginConfig)==null?void 0:u.funnelId,stepId:(d=e.rawPluginConfig)==null?void 0:d.stepId})}this.apiClient.setTokenProvider(this.waitForToken.bind(this)),typeof window!="undefined"&&(window.addEventListener("storage",this.boundHandleStorageChange),window.addEventListener("pageshow",this.boundHandlePageshow)),this.setupConfigHotReload(),this.initialize()}destroy(){typeof window!="undefined"&&(window.removeEventListener("storage",this.boundHandleStorageChange),window.removeEventListener("pageshow",this.boundHandlePageshow)),this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Destroyed")),this.eventDispatcher.clear(),this.bus.clear()}handleStorageChange(){if(lt()===this.state.token){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Token unchanged (ignoring event)"));return}if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping storage change"));return}if(this.sessionInitRetryCount>=this.MAX_SESSION_INIT_RETRIES&&this.lastSessionInitError){this.state.debugMode&&console.error("[TagadaClient ".concat(this.instanceId,"] Max session init retries reached, giving up"),this.lastSessionInitError);return}this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Storage changed, re-initializing token...")),this.initializeToken()}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}updateState(e){this.state=O(O({},this.state),e),this.eventDispatcher.notify(this.state)}resolveEnvironment(){return this.config.environment?this.config.environment:st()}async initialize(){try{await this.initializePluginConfig(),this.state.pluginConfig.storeId?await this.initializeToken():(console.warn("[TagadaClient] No store ID found in plugin config. Skipping token initialization."),this.updateState({isLoading:!1,isInitialized:!0}))}catch(e){console.error("[TagadaClient] Initialization failed:",e),this.updateState({isLoading:!1,isInitialized:!0})}}async initializePluginConfig(){if(console.log("[TagadaClient ".concat(this.instanceId,"] initializePluginConfig called"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!this.config.rawPluginConfig}),!this.state.pluginConfigLoading){console.log("[TagadaClient ".concat(this.instanceId,"] Plugin config already loading or loaded, skipping..."));return}try{let e=this.config.localConfig||"default";console.log("[TagadaClient ".concat(this.instanceId,"] Loading plugin config with variant: ").concat(e));let n=await xi(e,this.config.rawPluginConfig);console.log("[TagadaClient ".concat(this.instanceId,"] Plugin config loaded:"),n),this.updateState({pluginConfig:n,pluginConfigLoading:!1}),this.funnel&&this.funnel.setConfig({pluginConfig:n,environment:this.state.environment})}catch(e){console.error("[TagadaClient] Failed to load plugin config:",e),this.updateState({pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!1})}}async initializeToken(){var e;if(Dr()){let n=this.state.pluginConfig.storeId;if(!n)return console.error("[TagadaClient] Cannot resolve authCode: storeId not found in config"),this.fallbackToNormalFlow();console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F510} Cross-domain auth detected, resolving..."));try{let i=new URLSearchParams(window.location.search).get("authCode");if(!i)return this.fallbackToNormalFlow();let o=await _r(i,n,this.state.environment.apiConfig.baseUrl,this.state.debugMode);console.log("[TagadaClient ".concat(this.instanceId,"] \u2705 Auth handoff resolved:"),{customerId:o.customer.id,role:o.customer.role,hasContext:Object.keys(o.context).length>0}),this.setToken(o.token);let r=Ht(o.token);r?(this.updateState({session:r}),await this.initializeSession(r),(e=o.context)!=null&&e.funnelSessionId&&this.funnel&&this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Restoring funnel session from handoff context:"),o.context.funnelSessionId)):(console.error("[TagadaClient] Failed to decode token from handoff"),this.updateState({isInitialized:!0,isLoading:!1}));return}catch(i){console.error("[TagadaClient ".concat(this.instanceId,"] \u274C Auth handoff failed, falling back to normal flow:"),i)}}await this.fallbackToNormalFlow()}async fallbackToNormalFlow(){let n=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("token");n&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL token detected, setting immediately to prevent race condition")),this.apiClient.updateToken(n),ne(n));let i=lt();console.log("[TagadaClient ".concat(this.instanceId,"] Initializing token (normal flow)..."),{hasExistingToken:!!i,hasQueryToken:!!n,storeId:this.state.pluginConfig.storeId});let o=null,r=!1;if(n?(o=n,r=!0):i&&!xr(i)&&(o=i),o){this.setToken(o),r&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Persisting query token to storage...")),ne(o));let s=Ht(o);s?(this.updateState({session:s}),await this.initializeSession(s)):(console.error("[TagadaClient] Failed to decode token"),this.updateState({isInitialized:!0,isLoading:!1}))}else{let s=this.state.pluginConfig.storeId;console.log("[TagadaClient ".concat(this.instanceId,"] No existing token, creating anonymous token..."),{hasStoreId:!!s,storeId:s}),s?await this.createAnonymousToken(s):(console.warn("[TagadaClient ".concat(this.instanceId,"] No storeId in plugin config, skipping anonymous token creation")),this.updateState({isInitialized:!0,isLoading:!1}))}}setToken(e){this.apiClient.updateToken(e),this.updateState({token:e}),this.tokenResolver&&(this.tokenResolver(e),this.tokenPromise=null,this.tokenResolver=null)}waitForToken(){return this.apiClient.getCurrentToken()?Promise.resolve(this.apiClient.getCurrentToken()):(this.tokenPromise||(this.tokenPromise=new Promise(e=>{this.tokenResolver=e})),this.tokenPromise)}async createAnonymousToken(e){if(typeof window!="undefined"){let i=new URLSearchParams(window.location.search).get("token");if(i){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL has token, skipping anonymous token creation")),this.setToken(i),ne(i);let o=Ht(i);o&&(this.updateState({session:o}),await this.initializeSession(o));return}}if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping anonymous token creation"));return}try{let n=ft();this.state.debugMode&&console.log("[TagadaClient] Creating anonymous token for store:",e,{draft:n});let i=await this.apiClient.post("/api/v1/cms/session/anonymous",{storeId:e,role:"anonymous",draft:n},{skipAuth:!0});this.setToken(i.token),ne(i.token);let o=Ht(i.token);o&&(this.updateState({session:o}),await this.initializeSession(o)),this.updateState({isSessionInitialized:!0})}catch(n){console.error("[TagadaClient] Failed to create anonymous token:",n),this.updateState({isInitialized:!0,isLoading:!1})}}async initializeSession(e){var n,i,o,r,s,a,l,u,d,p,I;if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization already in progress, skipping"));return}this.isInitializingSession=!0;try{this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Initializing session..."),{sessionId:e.sessionId});let b=Pr(),f=Nr(),C=vr(),w=ft(),v=new URLSearchParams(window.location.search).get("draft");v!==null&&Bn(v==="true");let L={storeId:e.storeId,accountId:e.accountId,customerId:e.customerId,role:e.role,browserLocale:C,queryLocale:f.locale,queryCurrency:f.currency,utmSource:f.utmSource,utmMedium:f.utmMedium,utmCampaign:f.utmCampaign,browser:b.userAgent.browser.name,browserVersion:b.userAgent.browser.version,os:b.userAgent.os.name,osVersion:b.userAgent.os.version,deviceType:(n=b.userAgent.device)==null?void 0:n.type,deviceModel:(i=b.userAgent.device)==null?void 0:i.model,deviceVendor:(o=b.userAgent.device)==null?void 0:o.vendor,userAgent:b.userAgent.name,engineName:b.userAgent.engine.name,engineVersion:b.userAgent.engine.version,cpuArchitecture:b.userAgent.cpu.architecture,isBot:(s=(r=b.flags)==null?void 0:r.isBot)!=null?s:!1,isChromeFamily:(l=(a=b.flags)==null?void 0:a.isChromeFamily)!=null?l:!1,isStandalonePWA:(d=(u=b.flags)==null?void 0:u.isStandalonePWA)!=null?d:!1,isAppleSilicon:(I=(p=b.flags)==null?void 0:p.isAppleSilicon)!=null?I:!1,screenWidth:b.screenResolution.width,screenHeight:b.screenResolution.height,timeZone:b.timeZone,draft:w,fetchMessages:!1},y=await this.apiClient.post("/api/v1/cms/session/v2/init",L);this.lastSessionInitError=null,this.sessionInitRetryCount=0,this.updateSessionState(y,e),this.updateState({isInitialized:!0,isSessionInitialized:!0,isLoading:!1}),this.state.debugMode&&console.log("[TagadaClient] Session initialized successfully")}catch(b){this.lastSessionInitError=b,this.sessionInitRetryCount++,console.error("[TagadaClient] Error initializing session (attempt ".concat(this.sessionInitRetryCount,"/").concat(this.MAX_SESSION_INIT_RETRIES,"):"),b),this.updateState({isInitialized:!0,isLoading:!1})}finally{this.isInitializingSession=!1}}updateSessionState(e,n){var o,r,s,a,l,u,d,p,I;if(e.store){let b=e.store,f=K(O({},e.store),{accountId:b.accountId||((o=this.state.pluginConfig)==null?void 0:o.accountId)||n.accountId||"",presentmentCurrencies:b.presentmentCurrencies||[e.store.currency||"USD"],chargeCurrencies:b.chargeCurrencies||[e.store.currency||"USD"]});this.updateState({store:f})}if(e.locale){let b={locale:e.locale,language:e.locale.split("-")[0],region:(r=e.locale.split("-")[1])!=null?r:"US",messages:(s=e.messages)!=null?s:{}};this.updateState({locale:b})}if(e.store){let b={code:e.store.currency,symbol:this.getCurrencySymbol(e.store.currency),name:this.getCurrencyName(e.store.currency)};this.updateState({currency:b})}let i={isAuthenticated:(l=(a=e.customer)==null?void 0:a.isAuthenticated)!=null?l:!1,isLoading:!1,customer:(u=e.customer)!=null?u:null,session:n};if(this.updateState({customer:(d=e.customer)!=null?d:null,auth:i}),this.funnel&&n.customerId&&((p=e.store)!=null&&p.id)){let b=e.store.accountId||((I=this.state.pluginConfig)==null?void 0:I.accountId)||n.accountId||"";if(b){let C=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||void 0;this.state.debugMode&&console.log("[TagadaClient] Auto-initializing funnel...",{customerId:n.customerId,storeId:e.store.id,accountId:b,funnelId:C||"auto-detect"}),this.funnel.autoInitialize({customerId:n.customerId,sessionId:n.sessionId},{id:e.store.id,accountId:b},C).catch(w=>{console.error("[TagadaClient] Funnel auto-initialization failed:",w)})}else console.warn("[TagadaClient] Cannot auto-initialize funnel: accountId is missing")}}getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$"}[e]||e}getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar"}[e]||e}getAccountId(){var e,n,i;return((e=this.state.store)==null?void 0:e.accountId)||((n=this.state.pluginConfig)==null?void 0:n.accountId)||((i=this.state.session)==null?void 0:i.accountId)||""}updatePluginConfig(e){this.state.debugMode&&console.log("[TagadaClient] Hot-reloading config:",e);let n=O(O({},this.state.pluginConfig.config),e);this.updateState({pluginConfig:K(O({},this.state.pluginConfig),{config:n})}),this.bus.emit("CONFIG_UPDATED",n),this.state.debugMode&&console.log("[TagadaClient] Config updated successfully")}setupConfigHotReload(){if(typeof window=="undefined")return;let e=n=>{var i,o;if(((i=n.data)==null?void 0:i.type)==="TAGADAPAY_CONFIG_UPDATE"){let{config:r}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received config update from parent:",r),this.updatePluginConfig(r)}else if(((o=n.data)==null?void 0:o.type)==="APPLY_STYLES_TO_ELEMENT"){let{elementId:r,styles:s}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received style application request:",{elementId:r,styles:s}),this.applyStylesToElement(r,s)}};window.addEventListener("message",e),this.state.debugMode&&console.log("[TagadaClient] Config hot-reload and style manipulation listeners enabled")}applyStylesToElement(e,n){if(typeof document=="undefined")return;let i="tagada-editor-highlight",o=document.getElementById(i);o&&o.remove();let r=p=>{var y;let b=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]).has(p.tagName.toLowerCase()),f=p;if(b){let N=p.parentElement;if((N==null?void 0:N.getAttribute("data-tagada-highlight-wrapper"))==="true"&&N instanceof HTMLElement)f=N;else{let _=document.createElement("div");_.setAttribute("data-tagada-highlight-wrapper","true");let z=window.getComputedStyle(p),ae=z.display;if(ae==="inline"?_.style.display="inline-block":_.style.display=ae,_.style.position="relative",ae==="inline"||ae.includes("inline")){let te=z.verticalAlign;te&&te!=="baseline"&&(_.style.verticalAlign=te)}["width","height","minWidth","minHeight","maxWidth","maxHeight","flex","flexGrow","flexShrink","flexBasis","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","gridArea","alignSelf","justifySelf","boxSizing","gap","rowGap","columnGap","order","aspectRatio"].forEach(te=>{let Ae=te.replace(/([A-Z])/g,"-$1").toLowerCase(),j=z.getPropertyValue(Ae);j&&j.trim()!==""&&(te==="flex"&&j!=="none"&&j!=="0 1 auto"?_.style.flex=j:te==="boxSizing"?_.style.boxSizing=j:_.style.setProperty(Ae,j))}),p.style&&["width","height","min-width","min-height","max-width","max-height","flex","flex-grow","flex-shrink","flex-basis","grid-column","grid-row","grid-column-start","grid-column-end","grid-row-start","grid-row-end","grid-area","align-self","justify-self","box-sizing","gap","row-gap","column-gap","order","aspect-ratio"].forEach(Ae=>{let j=p.style.getPropertyValue(Ae);j&&_.style.setProperty(Ae,j)}),(y=p.parentNode)==null||y.insertBefore(_,p),_.appendChild(p),f=_}}let C=getComputedStyle(b?p:f);(f.style.position==="static"||!f.style.position)&&(f.style.position="relative");let w=document.createElement("div");w.id=i,w.style.position="absolute",w.style.inset="0",w.style.pointerEvents="none",w.style.zIndex="9999",w.style.boxSizing="border-box",w.style.background="none",w.style.border="none",w.style.outline="none",w.style.margin="0",w.style.padding="0";let v=C.borderRadius;v&&(w.style.borderRadius=v),f.appendChild(w);let L=n||{boxShadow:"0 0 0 2px rgb(239 68 68)"};if(Object.entries(L).forEach(([N,W])=>{let _=N.includes("-")?N.replace(/-([a-z])/g,(z,ae)=>ae.toUpperCase()):N;N.includes("-")?w.style.setProperty(N,W):w.style[_]=W}),p.scrollIntoView({behavior:"smooth",block:"center"}),this.state.debugMode){let N=Object.entries(L).map(([W,_])=>"".concat(W,": ").concat(_)).join("; ");console.log("[TagadaClient] Applied styles to highlight div of element #".concat(e,":"),N)}},s=5,a=1e3,l=0,u=p=>{let I=window.getComputedStyle(p);return I.display==="none"||I.visibility==="hidden"||I.opacity==="0"||p.hidden||p.offsetWidth===0||p.offsetHeight===0},d=()=>{let p=document.querySelectorAll('[editor-id~="'.concat(e,'"]'));if(p.length===0){if(l+=1,l>=s){this.state.debugMode&&console.warn('[TagadaClient] Element with editor-id containing "'.concat(e,'" not found after ').concat(s," attempts"));return}this.state.debugMode&&console.warn('[TagadaClient] Element with editor-id containing "'.concat(e,'" not found (attempt ').concat(l,"/").concat(s,"), retrying in ").concat(a/1e3,"s")),setTimeout(d,a);return}let I=null;if(p.length===1)I=p[0];else{for(let b=0;b<p.length;b++)if(!u(p[b])){I=p[b];break}I||(I=p[0])}I&&r(I)};d()}};var On=class{constructor(e){this.apiClient=e}async initCheckout(e){return this.apiClient.post("/api/v1/checkout/session/init",e)}async initCheckoutAsync(e){return this.apiClient.post("/api/v1/checkout/session/init-async",e)}async preloadCheckout(e,n){let i=e.funnelSessionId;!i&&n&&(i=n()||void 0);let o=typeof e.navigationEvent=="string"?{type:e.navigationEvent}:e.navigationEvent,r=K(O(O(O({},e),i&&{funnelSessionId:i}),o&&{navigationEvent:o}),{currentUrl:e.currentUrl||(typeof window!="undefined"?window.location.href:void 0)});return this.apiClient.post("/api/v1/checkout/session/preload",r)}async checkAsyncStatus(e){return this.apiClient.get("/api/public/v1/checkout/async-status/".concat(e))}async getCheckout(e,n){let i=new URLSearchParams;n&&i.set("currency",n),i.set("skipAsyncWait","false");let o="/api/v1/checkout-sessions/".concat(e,"/v2").concat(i.toString()?"?".concat(i.toString()):"");return this.apiClient.get(o)}async getCheckoutRaw(e,n){let i=new URLSearchParams;n&&i.set("currency",n),i.set("skipAsyncWait","true");let o="/api/v1/checkout-sessions/".concat(e,"/v2").concat(i.toString()?"?".concat(i.toString()):"");return this.apiClient.get(o)}async updateAddress(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/address"),{data:n})}async setCheckoutInfo(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/checkout-info"),{shippingAddress:n.shippingAddress,billingAddress:n.differentBillingAddress?n.billingAddress:n.shippingAddress,differentBillingAddress:n.differentBillingAddress||!1})}async applyPromotionCode(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/promotions/apply"),{code:n})}async removePromotion(e,n){return this.apiClient.delete("/api/v1/checkout-sessions/".concat(e,"/promotions/").concat(n))}async getAppliedPromotions(e){return this.apiClient.get("/api/v1/checkout-sessions/".concat(e,"/promotions"))}async updateLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items"),{lineItems:n})}async addLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/add"),{lineItems:n})}async removeLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/remove"),{lineItems:n})}async setItemQuantity(e,n,i,o){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/set-quantity"),{variantId:n,quantity:i,priceId:o})}async toggleOrderBump(e,n,i){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/toggle-order-bump"),{orderBumpOfferId:n,selected:i})}async updateCustomer(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/customer"),n)}async updateCustomerAndSessionInfo(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/customer-and-session-info"),n)}async previewCheckoutSession(e){return this.apiClient.post("/api/v1/checkout-sessions/preview",e)}};xn();var _i=class{static findVariant(e,n){for(let i of e){let o=i.variants.find(r=>r.id===n);if(o)return o}return null}static getVariantPrice(e,n="USD"){let i=e.prices.find(r=>r.currency===n);if(i)return i;let o=e.prices.find(r=>r.default);return o||e.prices[0]||null}static getAllVariants(e){let n=[];for(let i of e)if(i.variants)for(let o of i.variants)n.push({product:i,variant:o});return n}static filterVariants(e,n){let i=[];for(let o of e)if(o.variants)for(let r of o.variants)n(r,o)&&i.push({product:o,variant:r});return i}};var Di=class{static getOrderLineItems(e){return e.items||[]}static getOrderTotal(e){return e.paidAmount||0}static getOrderStatus(e){return e.status||"unknown"}static isOrderCompleted(e){return e.status==="completed"||e.status==="fulfilled"}static isOrderPending(e){return e.status==="pending"||e.status==="processing"}static isOrderCancelled(e){return e.status==="cancelled"||e.status==="refunded"}};var Bi=class{static getCurrency(e,n="USD"){var o,r,s;let i;return typeof(e==null?void 0:e.currency)=="string"?i=e.currency:(o=e==null?void 0:e.currency)!=null&&o.code?i=e.currency.code:(s=(r=e==null?void 0:e.store)==null?void 0:r.presentmentCurrencies)!=null&&s[0]?i=e.store.presentmentCurrencies[0]:i=n,{code:i,symbol:this.getCurrencySymbol(i),name:this.getCurrencyName(i),decimalPlaces:this.getDecimalPlaces(i)}}static getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$",CHF:"CHF",CNY:"\xA5",SEK:"kr",NOK:"kr",DKK:"kr",PLN:"z\u0142",CZK:"K\u010D",HUF:"Ft",RON:"lei",BGN:"\u043B\u0432",HRK:"kn",RUB:"\u20BD",UAH:"\u20B4",TRY:"\u20BA",BRL:"R$",ARS:"$",CLP:"$",COP:"$",MXN:"$",PEN:"S/",UYU:"$U",VEF:"Bs",ZAR:"R",EGP:"\xA3",MAD:"\u062F.\u0645.",TND:"\u062F.\u062A",DZD:"\u062F.\u062C",LYD:"\u0644.\u062F",NGN:"\u20A6",GHS:"\u20B5",KES:"KSh",UGX:"USh",TZS:"TSh",ETB:"Br",ZMW:"ZK",BWP:"P",SZL:"L",LSL:"L",NAD:"N$",MUR:"\u20A8",SCR:"\u20A8",KWD:"\u062F.\u0643",BHD:"\u062F.\u0628",QAR:"\u0631.\u0642",AED:"\u062F.\u0625",OMR:"\u0631.\u0639.",YER:"\uFDFC",SAR:"\u0631.\u0633",JOD:"\u062F.\u0627",LBP:"\u0644.\u0644",ILS:"\u20AA",INR:"\u20B9",PKR:"\u20A8",BDT:"\u09F3",LKR:"\u20A8",NPR:"\u20A8",AFN:"\u060B",KZT:"\u20B8",UZS:"\u043B\u0432",KGS:"\u043B\u0432",TJS:"SM",TMT:"T",AZN:"\u20BC",GEL:"\u20BE",AMD:"\u058F",KRW:"\u20A9",THB:"\u0E3F",VND:"\u20AB",IDR:"Rp",MYR:"RM",SGD:"S$",PHP:"\u20B1",TWD:"NT$",HKD:"HK$",MOP:"MOP$",BND:"B$",LAK:"\u20AD",KHR:"\u17DB",MMK:"K",BOB:"Bs",PYG:"\u20B2",GTQ:"Q",HNL:"L",NIO:"C$",CRC:"\u20A1",PAB:"B/.",DOP:"RD$",JMD:"J$",TTD:"TT$",BBD:"Bds$",XCD:"EC$",AWG:"\u0192",ANG:"\u0192",SRD:"$",GYD:"G$",VES:"Bs.S",VED:"Bs.D"}[e]||e}static getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar",CHF:"Swiss Franc",CNY:"Chinese Yuan",SEK:"Swedish Krona",NOK:"Norwegian Krone",DKK:"Danish Krone",PLN:"Polish Zloty",CZK:"Czech Koruna",HUF:"Hungarian Forint",RON:"Romanian Leu",BGN:"Bulgarian Lev",HRK:"Croatian Kuna",RUB:"Russian Ruble",UAH:"Ukrainian Hryvnia",TRY:"Turkish Lira",BRL:"Brazilian Real",ARS:"Argentine Peso",CLP:"Chilean Peso",COP:"Colombian Peso",MXN:"Mexican Peso",PEN:"Peruvian Sol",UYU:"Uruguayan Peso",VEF:"Venezuelan Bolivar",ZAR:"South African Rand",EGP:"Egyptian Pound",MAD:"Moroccan Dirham",TND:"Tunisian Dinar",DZD:"Algerian Dinar",LYD:"Libyan Dinar",NGN:"Nigerian Naira",GHS:"Ghanaian Cedi",KES:"Kenyan Shilling",UGX:"Ugandan Shilling",TZS:"Tanzanian Shilling",ETB:"Ethiopian Birr",ZMW:"Zambian Kwacha",BWP:"Botswana Pula",SZL:"Swazi Lilangeni",LSL:"Lesotho Loti",NAD:"Namibian Dollar",MUR:"Mauritian Rupee",SCR:"Seychellois Rupee",KWD:"Kuwaiti Dinar",BHD:"Bahraini Dinar",QAR:"Qatari Riyal",AED:"UAE Dirham",OMR:"Omani Rial",YER:"Yemeni Rial",SAR:"Saudi Riyal",JOD:"Jordanian Dinar",LBP:"Lebanese Pound",ILS:"Israeli Shekel",INR:"Indian Rupee",PKR:"Pakistani Rupee",BDT:"Bangladeshi Taka",LKR:"Sri Lankan Rupee",NPR:"Nepalese Rupee",AFN:"Afghan Afghani",KZT:"Kazakhstani Tenge",UZS:"Uzbekistani Som",KGS:"Kyrgyzstani Som",TJS:"Tajikistani Somoni",TMT:"Turkmenistani Manat",AZN:"Azerbaijani Manat",GEL:"Georgian Lari",AMD:"Armenian Dram",KRW:"South Korean Won",THB:"Thai Baht",VND:"Vietnamese Dong",IDR:"Indonesian Rupiah",MYR:"Malaysian Ringgit",SGD:"Singapore Dollar",PHP:"Philippine Peso",TWD:"Taiwan Dollar",HKD:"Hong Kong Dollar",MOP:"Macanese Pataca",BND:"Brunei Dollar",LAK:"Lao Kip",KHR:"Cambodian Riel",MMK:"Myanmar Kyat",BOB:"Bolivian Boliviano",PYG:"Paraguayan Guarani",GTQ:"Guatemalan Quetzal",HNL:"Honduran Lempira",NIO:"Nicaraguan Cordoba",CRC:"Costa Rican Colon",PAB:"Panamanian Balboa",DOP:"Dominican Peso",JMD:"Jamaican Dollar",TTD:"Trinidad and Tobago Dollar",BBD:"Barbadian Dollar",XCD:"East Caribbean Dollar",AWG:"Aruban Florin",ANG:"Netherlands Antillean Guilder",SRD:"Surinamese Dollar",GYD:"Guyanese Dollar",VES:"Venezuelan Bolivar Soberano",VED:"Venezuelan Bolivar Digital"}[e]||e}static getDecimalPlaces(e){var i;return(i={JPY:0,KRW:0,VND:0,IDR:0,LAK:0,KHR:0,MMK:0,PYG:0,VEF:0,VES:0,VED:0}[e])!=null?i:2}};var Mi=class{static getCheckoutSessionId(e){var n;return((n=e.checkoutSession)==null?void 0:n.id)||""}static getLineItems(e){var n;return((n=e.checkoutSession)==null?void 0:n.lineItems)||[]}static getTotal(e){var n;return((n=e.checkoutSession)==null?void 0:n.totalPrice)||0}static isClubMember(e){return e.customerIsClubMember||!1}};var Ui=class{static isValidPromotion(e){return!!(e.id&&e.name)}static getPromotionType(e){return e.type||"unknown"}static hasRules(e){return!!(e.rules&&e.rules.length>0)}static hasActions(e){return!!(e.actions&&e.actions.length>0)}};var Fi=class{static isValidOffer(e){return!!(e.id&&e.summaries&&e.summaries.length>0)}static getOfferTotal(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.totalAmount)||0}static getOfferAdjustedTotal(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.totalAdjustedAmount)||0}static hasItems(e){return!!(e.offerLineItems&&e.offerLineItems.length>0)}static getOfferCurrency(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.currency)||"USD"}static getOfferTitle(e,n="en"){var i,o;return((i=e.titleTrans)==null?void 0:i[n])||((o=e.titleTrans)==null?void 0:o.en)||"Offer ".concat(e.id)}};var Hi=class{static isValidOffer(e){return!!(e.id&&e.name&&e.price>0)}static toggleSelection(e){return K(O({},e),{isSelected:!e.isSelected})}static calculatePreview(e,n=0){let i=n+e.price,o=e.isSelected?i:n;return{offer:e,totalAmount:i,adjustedAmount:o}}static getSelectedOffers(e){return e.filter(n=>n.isSelected)}static getSelectedTotal(e){return e.filter(n=>n.isSelected).reduce((n,i)=>n+i.price,0)}};ut();var Ja={session:t=>["funnel","session",t],allSessions:()=>["funnel","sessions"],funnelMeta:t=>["funnel","meta",t]};function Br(t,e,n="*"){let i={type:"TAGADAPAY_CONFIG_UPDATE",config:e,timestamp:Date.now()};t.postMessage(i,n)}function Za(t,e="iframe"){if(typeof document=="undefined")return;let n=document.querySelectorAll(e);n.forEach(i=>{i.contentWindow&&Br(i.contentWindow,t)}),console.log("[ConfigHotReload] Broadcasted config update to ".concat(n.length," iframe(s)"))}function Qa(t){if(typeof window=="undefined")return()=>{};let e=n=>{var i;((i=n.data)==null?void 0:i.type)==="TAGADAPAY_CONFIG_UPDATE"&&t(n.data.config)};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}}function el(t,e=150){let n=null;return i=>{n&&clearTimeout(n),n=setTimeout(()=>{t(i),n=null},e)}}Fe();function Mr(t){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get(t)}function Ee(t,...e){t&&console.log("[TagadaTracker]",...e)}var Vt=class{constructor(){this.config=null;this.client=null;this.initialized=!1;this.initializing=!1}async init(e){var n,i,o,r;if(this.initialized||this.initializing)return Ee(e.debug||!1,"Already initialized or initializing"),this.getSession();this.initializing=!0,this.config=O({debug:!1},e),Ee(this.config.debug,"\u{1F680} Initializing external tracker with SDK...",e);try{let s=Mr("token");s&&(ne(s),Ee(this.config.debug,"\u{1F511} Bootstrapped token from URL")),this.client=Vi({debugMode:this.config.debug,features:{funnel:!0}}),await this.waitForClientReady();let a=await this.initializeFunnel();Ee(this.config.debug,"\u2705 Session initialized (tracking handled by orchestrator):",a),this.initialized=!0;let l=this.getSession();return l&&((i=(n=this.config).onReady)==null||i.call(n,l)),l}catch(s){let a=s instanceof Error?s:new Error(String(s));throw Ee(this.config.debug,"\u274C Initialization failed:",a),(r=(o=this.config).onError)==null||r.call(o,a),a}finally{this.initializing=!1}}getSession(){var n,i;if(!((i=(n=this.client)==null?void 0:n.funnel)!=null&&i.state.context))return null;let e=this.client.funnel.state.context;return{sessionId:e.sessionId,customerId:e.customerId,storeId:e.storeId,funnelId:e.funnelId,currentStepId:e.currentStepId,cmsToken:this.client.state.token||void 0}}isReady(){var e,n;return this.initialized&&!!((n=(e=this.client)==null?void 0:e.funnel)!=null&&n.state.context)}async navigate(e){if(!this.isReady())throw new Error("Tracker not initialized. Call init() first.");Ee(this.config.debug,"\u{1F680} Navigating:",e);let n=e.autoRedirect!==!1;try{let i=await this.client.funnel.navigate({type:e.eventType,data:e.eventData||{}},{autoRedirect:!1});return i!=null&&i.url?(Ee(this.config.debug,"\u2705 Navigation result:",i.url),n&&typeof window!="undefined"&&(window.location.href=e.returnUrl||i.url),{url:i.url}):null}catch(i){throw Ee(this.config.debug,"\u274C Navigation failed:",i),i}}getCustomerId(){var e,n,i,o,r;return((n=(e=this.client)==null?void 0:e.state.auth.customer)==null?void 0:n.id)||((r=(o=(i=this.client)==null?void 0:i.funnel)==null?void 0:o.state.context)==null?void 0:r.customerId)||null}getFunnelSessionId(){var e,n,i;return((i=(n=(e=this.client)==null?void 0:e.funnel)==null?void 0:n.state.context)==null?void 0:i.sessionId)||null}buildUrl(e,n){let i=this.getSession();if(!i)return e;let o=new URL(e,typeof window!="undefined"?window.location.origin:void 0);return o.searchParams.set("funnelSessionId",i.sessionId),i.cmsToken&&o.searchParams.set("token",i.cmsToken),i.funnelId&&o.searchParams.set("funnelId",i.funnelId),o.searchParams.set("storeId",i.storeId),n&&Object.entries(n).forEach(([r,s])=>{o.searchParams.set(r,s)}),o.toString()}getClient(){return this.client}async waitForClientReady(){if(this.client)return new Promise(e=>{let n=0,i=()=>{var o,r;(o=this.client)!=null&&o.state.isInitialized||(r=this.client)!=null&&r.state.token||n>40?e():(n++,setTimeout(i,50))};i()})}async initializeFunnel(){var o,r,s;if(!((o=this.client)!=null&&o.funnel))return null;let e={customerId:((r=this.client.state.auth.customer)==null?void 0:r.id)||"anon_placeholder",sessionId:((s=this.client.state.auth.session)==null?void 0:s.sessionId)||"sess_placeholder"},n={id:this.config.storeId,accountId:this.config.accountId||""},i=this.config.stepId;if(!i)throw new Error("stepId is required for external page tracking (URL mapping does not work for external pages)");return Ee(this.config.debug,"\u{1F50D} Initializing external page at step:",i),this.client.funnel.initialize(e,n,this.config.funnelId||Mr("funnelId")||void 0,i)}},Gi=new Vt;typeof window!="undefined"&&(window.TagadaTracker=Gi);function Vi(t={}){return new Gt(t)}return Yr(tl);})();
7
+ "use strict";var TagadaSDKBundle=(()=>{var zt=Object.defineProperty,Fr=Object.defineProperties,Hr=Object.getOwnPropertyDescriptor,Gr=Object.getOwnPropertyDescriptors,Vr=Object.getOwnPropertyNames,ji=Object.getOwnPropertySymbols;var qi=Object.prototype.hasOwnProperty,Kr=Object.prototype.propertyIsEnumerable;var Be=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Wr=t=>{throw TypeError(t)};var $i=(t,e,n)=>e in t?zt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,O=(t,e)=>{for(var n in e||(e={}))qi.call(e,n)&&$i(t,n,e[n]);if(ji)for(var n of ji(e))Kr.call(e,n)&&$i(t,n,e[n]);return t},K=(t,e)=>Fr(t,Gr(e));var Ie=(t,e)=>()=>(t&&(e=t(t=0)),e);var Pn=(t,e)=>{for(var n in e)zt(t,n,{get:e[n],enumerable:!0})},zr=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Vr(e))!qi.call(t,o)&&o!==n&&zt(t,o,{get:()=>e[o],enumerable:!(i=Hr(e,o))||i.enumerable});return t};var Yr=t=>zr(zt({},"__esModule",{value:!0}),t);var Pe=function(t,e){this[0]=t,this[1]=e},Nn=(t,e,n)=>{var i=(s,a,l,u)=>{try{var d=n[s](a),p=(a=d.value)instanceof Pe,I=d.done;Promise.resolve(p?a[0]:a).then(w=>p?i(s==="return"?s:"next",a[1]?{done:w.done,value:w.value}:w,l,u):l({value:w,done:I})).catch(w=>i("throw",w,l,u))}catch(w){u(w)}},o=s=>r[s]=a=>new Promise((l,u)=>i(s,a,l,u)),r={};return n=n.apply(t,e),r[Be("asyncIterator")]=()=>r,o("next"),o("throw"),o("return"),r},xn=t=>{var e=t[Be("asyncIterator")],n=!1,i,o={};return e==null?(e=t[Be("iterator")](),i=r=>o[r]=s=>e[r](s)):(e=e.call(t),i=r=>o[r]=s=>{if(n){if(n=!1,r==="throw")throw s;return s}return n=!0,{done:!1,value:new Pe(new Promise(a=>{var l=e[r](s);l instanceof Object||Wr("Object expected"),a(l)}),1)}}),o[Be("iterator")]=()=>o,i("next"),"throw"in e?i("throw"):o.throw=r=>{throw r},"return"in e&&i("return"),o},Xi=(t,e,n)=>(e=t[Be("asyncIterator")])?e.call(t):(t=t[Be("iterator")](),e={},n=(i,o)=>(o=t[i])&&(e[i]=r=>new Promise((s,a,l)=>(r=o.call(t,r),l=r.done,Promise.resolve(r.value).then(u=>s({value:u,done:l}),a)))),n("next"),n("return"),e);function Zi(t){var i;if(typeof document=="undefined")return null;let n="; ".concat(document.cookie).split("; ".concat(t,"="));return n.length===2&&((i=n.pop())==null?void 0:i.split(";").shift())||null}function Qi(t="local"){let e=Ji[t];if(!e)return console.warn("Unknown environment: ".concat(t,". Falling back to local.")),{environment:"local",apiConfig:Ji.local};let n=null;if(typeof window!="undefined"&&(n=new URLSearchParams(window.location.search).get("tagadaClientBaseUrl"),!n))try{n=localStorage.getItem("tgd_client_base_url")||Zi("tgd_client_base_url")}catch(o){}return n?(console.log("[SDK] Using custom API base URL override: ".concat(n)),{environment:t,apiConfig:K(O({},e),{baseUrl:n})}):{environment:t,apiConfig:e}}function st(){var o;if(console.log("[SDK] detectEnvironment() called"),typeof window=="undefined")return"local";let e=new URLSearchParams(window.location.search).get("tagadaClientEnv");if(e&&(e==="production"||e==="development"||e==="local"))return console.log("[SDK] Using explicit environment override: ".concat(e)),e;try{let r=localStorage.getItem("tgd_client_env")||Zi("tgd_client_env");if(r&&(r==="production"||r==="development"||r==="local"))return console.log("[SDK] Using persisted environment override: ".concat(r)),r}catch(r){}let n=window.location.hostname,i=window.location.href;if(console.log('[SDK] detectEnvironment() - hostname: "'.concat(n,'"')),n==="localhost"||n.startsWith("127.")||n.startsWith("192.168.")||n.startsWith("10.")||n.includes(".local")||n===""||n==="0.0.0.0"||n.includes("ngrok-free.dev")||n.includes("ngrok-free.app")||n.includes("ngrok.io")||n.includes("ngrok.app")){if(console.log("[SDK] detectEnvironment() - returning LOCAL"),typeof window!="undefined"&&((o=window==null?void 0:window.__TAGADA_ENV__)!=null&&o.TAGADA_ENVIRONMENT)){let r=window.__TAGADA_ENV__.TAGADA_ENVIRONMENT.toLowerCase();if(r==="production"||r==="development"||r==="local")return console.log("[SDK] Local override detected: ".concat(r)),r}return"local"}return n==="app.tagadapay.com"||n.includes("tagadapay.com")||n.includes("yourproductiondomain.com")?"production":n==="app.tagadapay.dev"||n.includes("tagadapay.dev")||n.includes("vercel.app")||n.includes("netlify.app")||n.includes("surge.sh")||n.includes("github.io")||n.includes("herokuapp.com")||n.includes("railway.app")||i.includes("?env=dev")||i.includes("?dev=true")||i.includes("#dev")?"development":(console.warn("[SDK] Unknown domain: ".concat(n,", defaulting to production")),"production")}function at(t=!1){return st()!=="local"?!1:t&&typeof window!="undefined"?!window.location.hostname.includes(".cdn."):!0}var Ji,Yt=Ie(()=>{"use strict";Ji={production:{baseUrl:"https://app.tagadapay.com",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}},development:{baseUrl:"https://app.tagadapay.dev",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}},local:{baseUrl:"http://app.localhost:3000",endpoints:{checkout:{sessionInit:"/api/v1/checkout/session/init",sessionInitAsync:"/api/v1/checkout/session/init-async",sessionStatus:"/api/v1/checkout/session/status",asyncStatus:"/api/public/v1/checkout/async-status"},customer:{profile:"/api/v1/customer/profile",session:"/api/v1/customer/session"},store:{config:"/api/v1/store/config"}}}}});var $t,jt,kn=Ie(()=>{"use strict";$t=(I=>(I.DIRECT_NAVIGATION="direct_navigation",I.BACK_NAVIGATION="back_navigation",I.CONTINUE_CLICKED="continue_clicked",I.BUTTON_CLICK="button_click",I.FORM_SUBMIT="form_submit",I.PAYMENT_SUCCESS="payment_success",I.PAYMENT_FAILED="payment_failed",I.OFFER_ACCEPTED="offer_accepted",I.OFFER_DECLINED="offer_declined",I.CART_UPDATED="cart_updated",I.CART_ITEM_ADDED="cart_item_added",I.CUSTOM="custom",I))($t||{}),jt=class{constructor(e){this.apiClient=e}async initialize(e){return this.apiClient.post("/api/v1/funnel/initialize",e)}async navigate(e){return this.apiClient.post("/api/v1/funnel/navigate",e)}async updateContext(e,n){return this.apiClient.patch("/api/v1/funnel/context/".concat(e),n)}async endSession(e){return this.apiClient.delete("/api/v1/funnel/session/".concat(e))}async getSession(e,n,i){let o=new URLSearchParams;n&&o.append("currentUrl",n),i&&o.append("includeDebugData","true");let r="/api/v1/funnel/session/".concat(e).concat(o.toString()?"?".concat(o):"");return this.apiClient.get(r)}}});var Me,Ln=Ie(()=>{"use strict";Me=class{constructor(){this.listeners=new Set}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(e){this.listeners.forEach(n=>{try{n(e)}catch(i){console.error("Error in event listener:",i)}})}clear(){this.listeners.clear()}}});function ne(t){if(typeof window!="undefined")try{let n=localStorage.getItem(qt)!==t;localStorage.setItem(qt,t),n&&window.dispatchEvent(new Event("storage"))}catch(e){console.error("Failed to save token to localStorage:",e)}}function lt(){if(typeof window!="undefined")try{return localStorage.getItem(qt)}catch(t){return console.error("Failed to get token from localStorage:",t),null}return null}function Ue(){if(typeof window!="undefined")try{localStorage.removeItem(qt)}catch(t){console.error("Failed to clear token from localStorage:",t)}}var qt,Fe=Ie(()=>{"use strict";qt="cms_token"});function Dn(t){typeof document!="undefined"&&(document.cookie="".concat(_n,"=").concat(t,"; path=/; max-age=2592000; SameSite=Lax"))}function Xt(){if(typeof document=="undefined")return;let t=document.cookie.split("; ").find(e=>e.startsWith("".concat(_n,"=")));return t?t.split("=")[1]:void 0}function ct(){typeof document!="undefined"&&(document.cookie="".concat(_n,"=; path=/; max-age=0"))}function $r(){return!!Xt()}function qr(){var t;if(typeof document!="undefined")try{let e=document.cookie.split("; ").find(i=>i.startsWith("".concat(jr,"=")));if(!e)return;let n=JSON.parse(decodeURIComponent(e.split("=")[1]));return(t=n==null?void 0:n.metadata)==null?void 0:t.funnelVariantId}catch(e){console.warn("Failed to parse sticky session for variant ID:",e);return}}var _n,jr,ut=Ie(()=>{"use strict";_n="tgd-funnel-session-id",jr="tgd-session-id"});function He(t){if(typeof window=="undefined")return null;try{return localStorage.getItem(t)}catch(e){return null}}function Jt(t,e){if(typeof window!="undefined")try{localStorage.setItem(t,e)}catch(n){}}function dt(t){var i;if(typeof document=="undefined")return null;let n=document.cookie.split(";").find(o=>o.trim().startsWith("".concat(t,"=")));return n?(i=n.split("=")[1])==null?void 0:i.trim():null}function Bn(t,e,n=86400){if(typeof document!="undefined"){if(t==="tgd_draft"||t==="tgd-draft"){console.warn("\u{1F6E1}\uFE0F [SDK] Blocked attempt to set ".concat(t," as cookie - this should only be in localStorage"));return}document.cookie="".concat(t,"=").concat(e,"; path=/; max-age=").concat(n)}}function to(t){typeof document!="undefined"&&(document.cookie="".concat(t,"=; path=/; max-age=0"))}function Ne(){if(typeof window=="undefined")return{};let t=new URLSearchParams(window.location.search),e,n=t.get("draft");if(n!==null)e=n==="true";else{let y=He(B.DRAFT);y!==null&&(e=y==="true")}let i,o=t.get("funnelTracking");if(o!==null)i=o!=="false";else{let y=He(B.FUNNEL_TRACKING)||dt(B.FUNNEL_TRACKING);y!==null&&(i=y!=="false")}let r=t.get("token")||lt()||null,s=t.get("funnelSessionId")||null,a=t.get("funnelId")||null,l,u=t.get("funnelEnv");u&&(u==="staging"||u==="production")&&(l=u);let d=t.get("forceReset")==="true",p,I=t.get("tagadaClientEnv");if(I&&(I==="production"||I==="development"||I==="local"))p=I;else{let y=He(B.CLIENT_ENV)||dt(B.CLIENT_ENV);y&&(y==="production"||y==="development"||y==="local")&&(p=y)}let w,f=t.get("tagadaClientBaseUrl");if(f)w=f;else{let y=He(B.CLIENT_BASE_URL)||dt(B.CLIENT_BASE_URL);y&&(w=y)}let C,b=t.get("currency");if(b)C=b;else{let y=He(B.CURRENCY)||dt(B.CURRENCY);y&&(C=y)}let v,L=t.get("locale");if(L)v=L;else{let y=He(B.LOCALE)||dt(B.LOCALE);y&&(v=y)}return{forceReset:d,token:r,funnelSessionId:s,funnelId:a,draft:e,funnelTracking:i,funnelEnv:l,tagadaClientEnv:p,tagadaClientBaseUrl:w,currency:C,locale:v}}function ft(){var e;return(e=Ne().draft)!=null?e:!1}function Mn(t){if(typeof window!="undefined")if(t)Jt(B.DRAFT,"true");else try{localStorage.removeItem(B.DRAFT)}catch(e){}}function no(t=!1){let e=null;typeof window!="undefined"&&(e=new URLSearchParams(window.location.search).get("token"));let n=Ne(),i=n.forceReset||!1;if(!i&&!n.token)return eo(),!1;t&&(console.log("[SDK] Detected params:",n),console.log("[SDK] URL token (direct read):",e?e.substring(0,20)+"...":"none")),i&&(t&&console.log("[SDK] Force reset: Clearing all stored state"),Ue(),ct(),typeof window!="undefined"&&window.localStorage&&Object.keys(localStorage).forEach(s=>{(s.startsWith("tagadapay_")||s.startsWith("tgd_"))&&(t&&console.log("[SDK] Clearing localStorage: ".concat(s)),localStorage.removeItem(s))}));let o=e||n.token;return o!=null?(t&&console.log("[SDK] Setting token from URL:",o.substring(0,20)+"..."),o===""||o==="null"?Ue():(ne(o),t&&console.log("[SDK] \u2705 Token set in localStorage immediately after clear"))):i&&(t&&console.log("[SDK] Force reset mode (no token in URL)"),Ue()),eo(),n.funnelSessionId&&t&&console.log("[SDK] Using funnelSessionId from URL:",n.funnelSessionId),i}function eo(){if(typeof window=="undefined")return;let t=new URLSearchParams(window.location.search),e=t.get("draft");e!==null&&Mn(e==="true");let n=t.get("funnelTracking");n!==null&&Xr(n!=="false");let i=t.get("tagadaClientEnv");i&&(i==="production"||i==="development"||i==="local")&&Jr(i);let o=t.get("tagadaClientBaseUrl");o&&Zr(o)}function Xr(t){if(typeof window=="undefined")return;let e=t?"true":"false";Jt(B.FUNNEL_TRACKING,e),Bn(B.FUNNEL_TRACKING,e,86400)}function Jr(t){typeof window!="undefined"&&(Jt(B.CLIENT_ENV,t),Bn(B.CLIENT_ENV,t,86400))}function io(){if(typeof window!="undefined")try{localStorage.removeItem(B.CLIENT_ENV),to(B.CLIENT_ENV)}catch(t){}}function Zr(t){typeof window!="undefined"&&(Jt(B.CLIENT_BASE_URL,t),Bn(B.CLIENT_BASE_URL,t,86400))}function oo(){if(typeof window!="undefined")try{localStorage.removeItem(B.CLIENT_BASE_URL),to(B.CLIENT_BASE_URL)}catch(t){}}function ro(){var e;return(e=Ne().funnelTracking)!=null?e:!0}var B,Zt=Ie(()=>{"use strict";Fe();ut();B={DRAFT:"tgd_draft",FUNNEL_TRACKING:"tgd_funnel_tracking",FORCE_RESET:"tgd_force_reset",CLIENT_ENV:"tgd_client_env",CLIENT_BASE_URL:"tgd_client_base_url",CURRENCY:"tgd_currency",LOCALE:"tgd_locale"}});function Un(t){if(typeof window=="undefined"||typeof document=="undefined")return;let e=window.location.hostname,n=e.split("."),i=["",e,"."+e];for(let a=1;a<n.length;a++){let l=n.slice(a).join(".");i.push(l),i.push("."+l)}let o=window.location.pathname.split("/").filter(a=>a),r=["/"],s="";o.forEach(a=>{s+="/"+a,r.push(s)}),i.forEach(a=>{r.forEach(l=>{let u="".concat(t,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(l),d=a?"; domain=".concat(a):"";document.cookie=u+d,document.cookie=u+d+"; secure",document.cookie=u+d+"; SameSite=None; secure",document.cookie=u+d+"; SameSite=Lax",document.cookie=u+d+"; SameSite=Strict"})})}function es(){if(typeof window=="undefined"||!confirm("\u{1F6AA} Leave Preview Mode?\n\nThis will clear ALL cookies and localStorage (including Shopify session, cart, and preview settings) and reload the page.\n\nAre you sure?"))return;let e=new URL(window.location.href);["draft","funnelEnv","funnelTracking","tagadaClientEnv","tagadaClientBaseUrl","forceReset","funnelId","funnelSessionId","token"].forEach(r=>e.searchParams.delete(r)),window.history.replaceState({},"",e.href);try{let r=Object.getOwnPropertyDescriptor(Document.prototype,"cookie")||Object.getOwnPropertyDescriptor(HTMLDocument.prototype,"cookie");r&&r.set&&Object.defineProperty(document,"cookie",{configurable:!0,enumerable:!0,get:function(){return r.get?r.get.call(this):""},set:function(s){if(typeof s=="string"){let a=s.toLowerCase();if(a.includes("tgd_draft")||a.includes("tgd-draft")||a.includes("tgd.draft")||a.includes("tgddraft")){if(a.includes("max-age=0")||a.includes("expires=thu, 01 jan 1970")){r.set&&r.set.call(this,s);return}console.warn("\u{1F6E1}\uFE0F [TagadaPay] BLOCKED: tgd_draft should never be a cookie");return}}r.set&&r.set.call(this,s)}})}catch(r){console.warn("[TagadaPay] Could not install cookie blocker:",r)}if(window.localStorage)try{localStorage.removeItem("tgd_draft"),localStorage.removeItem("tgd_funnel_tracking"),localStorage.removeItem("tgd_client_env"),localStorage.removeItem("tgd_client_base_url"),localStorage.removeItem("cms_token")}catch(r){console.warn("[TagadaPay] Failed to clear some localStorage keys:",r)}Ue(),ct(),io(),oo(),window.localStorage&&localStorage.clear(),window.sessionStorage&&sessionStorage.clear(),["tgd-funnel-session-id","tgd_draft","tgd_funnel_tracking","tgd_client_env","tgd_client_base_url","cms_token","tagadapay_session"].forEach(r=>Un(r)),["tgd-draft","tgd_draft","tgd.draft","tgddraft"].forEach(r=>Un(r)),document.cookie&&document.cookie.split(";").forEach(s=>{let a=s.split("=")[0].trim();if(!a)return;let l=window.location.hostname,u=l.split("."),d=["",l,"."+l];for(let f=1;f<u.length;f++){let C=u.slice(f).join(".");d.push(C),d.push("."+C)}let p=window.location.pathname.split("/").filter(f=>f),I=["/"],w="";p.forEach(f=>{w+="/"+f,I.push(w)}),d.forEach(f=>{I.forEach(C=>{let b="".concat(a,"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=").concat(C),v=f?"; domain=".concat(f):"";document.cookie=b+v,document.cookie=b+v+"; secure",document.cookie=b+v+"; SameSite=None; secure",document.cookie=b+v+"; SameSite=Lax",document.cookie=b+v+"; SameSite=Strict",document.cookie=b+v+"; secure; SameSite=None",document.cookie=b+v+"; secure; SameSite=Lax",document.cookie=b+v+"; secure; SameSite=Strict"})})}),setTimeout(()=>{window.localStorage&&localStorage.length>0&&localStorage.clear(),Un("tgd_draft"),typeof window.stop=="function"&&window.stop(),window.location.replace(e.href)},10)}function Fn(){if(so||typeof window=="undefined"||typeof document=="undefined")return;let t=Ne(),e=ft(),n=!ro(),i=!!(t.tagadaClientEnv||t.tagadaClientBaseUrl);if(!e&&!n&&!i)return;let o=document.createElement("div");o.id="tgd-preview-indicator",o.style.cssText='\n position: fixed;\n bottom: 16px;\n right: 16px;\n z-index: 999999;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n ';let r=document.createElement("div");r.style.cssText="\n background: ".concat(e?"#ff9500":"#007aff",";\n color: white;\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 600;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n "),r.innerHTML='\n <span style="font-size: 16px;">\u{1F50D}</span>\n <span>'.concat(e?"Preview Mode":"Dev Mode","</span>\n ");let s=document.createElement("div");s.style.cssText="\n position: absolute;\n bottom: calc(100% + 8px);\n right: 0;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 12px;\n min-width: 250px;\n font-size: 12px;\n line-height: 1.5;\n display: none;\n ",s.style.paddingTop="20px";let a=document.createElement("div");a.style.cssText="\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n height: 8px;\n display: none;\n ";let l='<div style="margin-bottom: 8px; font-weight: 600; color: #1d1d1f;">Current Environment</div>';l+='<div style="display: flex; flex-direction: column; gap: 6px;">',e&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Draft Mode:</span>\n <span style="color: #ff9500; font-weight: 600;">ON</span>\n </div>\n '),n&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Tracking:</span>\n <span style="color: #ff3b30; font-weight: 600;">DISABLED</span>\n </div>\n '),t.funnelEnv&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>Funnel Env:</span>\n <span style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 11px;">\n '.concat(t.funnelEnv,"\n </span>\n </div>\n ")),t.tagadaClientEnv&&(l+='\n <div style="display: flex; justify-content: space-between; color: #86868b;">\n <span>API Env:</span>\n <span style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 11px;">\n '.concat(t.tagadaClientEnv,"\n </span>\n </div>\n ")),t.tagadaClientBaseUrl&&(l+='\n <div style="color: #86868b;">\n <div style="margin-bottom: 4px;">API URL:</div>\n <div style="color: #1d1d1f; font-weight: 600; font-family: monospace; font-size: 10px; word-break: break-all; background: #f5f5f7; padding: 4px 6px; border-radius: 4px;">\n '.concat(t.tagadaClientBaseUrl,"\n </div>\n </div>\n ")),t.funnelId&&(l+='\n <div style="color: #86868b; margin-top: 4px; padding-top: 8px; border-top: 1px solid #e5e5e5;">\n <div style="margin-bottom: 4px;">Funnel ID:</div>\n <div style="color: #1d1d1f; font-family: monospace; font-size: 10px; word-break: break-all; background: #f5f5f7; padding: 4px 6px; border-radius: 4px;">\n '.concat(t.funnelId,"\n </div>\n </div>\n ")),l+="</div>",l+='\n <div style="margin-top: 12px; padding-top: 8px; border-top: 1px solid #e5e5e5; font-size: 11px; color: #86868b; text-align: center;">\n Add <code style="background: #f5f5f7; padding: 2px 4px; border-radius: 3px;">?forceReset=true</code> to reset\n </div>\n ',l+='\n <div style="margin-top: 12px; padding-top: 8px; border-top: 1px solid #e5e5e5;">\n <button id="tgd-leave-preview" style="\n background: #ff3b30;\n color: white;\n border: none;\n border-radius: 6px;\n padding: 10px 12px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: opacity 0.2s;\n width: 100%;\n ">\n \u{1F6AA} Leave Preview Mode\n </button>\n </div>\n ',s.innerHTML=l;let u=!1,d=()=>{u=!0,s.style.display="block",a.style.display="block"},p=()=>{u=!1,setTimeout(()=>{u||(s.style.display="none",a.style.display="none")},100)};r.addEventListener("mouseenter",d),r.addEventListener("mouseleave",p),a.addEventListener("mouseenter",d),a.addEventListener("mouseleave",p),s.addEventListener("mouseenter",d),s.addEventListener("mouseleave",p);let I=s.querySelector("#tgd-leave-preview");I&&(I.addEventListener("mouseenter",()=>{I.style.opacity="0.8"}),I.addEventListener("mouseleave",()=>{I.style.opacity="1"}),I.addEventListener("click",w=>{w.stopPropagation(),es()})),o.appendChild(r),o.appendChild(a),o.appendChild(s),document.body.appendChild(o),Qr=o,so=!0}var Qr,so,ao=Ie(()=>{"use strict";Zt();Fe();ut();Qr=null,so=!1});var fo={};Pn(fo,{FunnelClient:()=>gt,TrackingProvider:()=>co,getAssignedPaymentFlowId:()=>rs,getAssignedPixels:()=>ls,getAssignedScripts:()=>as,getAssignedStaticResources:()=>ss,getAssignedStepConfig:()=>mt,getLocalFunnelConfig:()=>uo,loadLocalFunnelConfig:()=>is});function ts(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_ID__)return window.__TGD_FUNNEL_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function Qt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_VARIANT_ID__)return window.__TGD_FUNNEL_VARIANT_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-variant-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function pt(){if(typeof window!="undefined"){if(window.__TGD_FUNNEL_STEP_ID__)return window.__TGD_FUNNEL_STEP_ID__;if(typeof document!="undefined"){let t=document.querySelector('meta[name="x-funnel-step-id"]');return(t==null?void 0:t.getAttribute("content"))||void 0}}}function lo(t){if(!t||typeof t!="string")return;let e=t.trim();if(!e)return;let n=[()=>JSON.parse(e),()=>JSON.parse(decodeURIComponent(e)),()=>JSON.parse(decodeURIComponent(decodeURIComponent(e)))];for(let i of n)try{let o=i();if(o&&typeof o=="object")return o}catch(o){}typeof console!="undefined"&&console.warn("[SDK] Failed to parse stepConfig:",e.substring(0,100))}function ns(){if(typeof window=="undefined")return!1;let t=window.location.hostname;return t==="localhost"||t==="127.0.0.1"||t.endsWith(".localhost")&&!t.includes(".cdn.")}async function is(){if(!ns())return null;if(ie!==void 0)return ie;if(Hn)return await new Promise(t=>setTimeout(t,100)),ie!=null?ie:null;Hn=!0;try{console.log("\u{1F6E0}\uFE0F [SDK] Loading local funnel config from /config/funnel.local.json...");let t=await fetch("/config/funnel.local.json");if(!t.ok)return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not found (this is fine in production)"),ie=null,null;let e=await t.json();return console.log("\u{1F6E0}\uFE0F [SDK] \u2705 Loaded local funnel config:",e),ie=e,e}catch(t){return console.log("\u{1F6E0}\uFE0F [SDK] funnel.local.json not available:",t),ie=null,null}finally{Hn=!1}}function uo(){return ie!=null?ie:null}function os(t){return{payment:t.paymentFlowId?{paymentFlowId:t.paymentFlowId}:void 0,staticResources:t.staticResources,scripts:t.scripts,pixels:t.pixels}}function mt(){if(typeof window=="undefined")return;let t=uo();if(t)return console.log("\u{1F6E0}\uFE0F [SDK] Using local funnel.local.json (overrides injected)"),os(t);let e=window.__TGD_STEP_CONFIG__;if(e){let n=lo(e);if(n)return n}if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-step-config"]'),i=n==null?void 0:n.getAttribute("content");if(i){let o=lo(i);if(o)return o}}}function rs(){var e;let t=mt();if((e=t==null?void 0:t.payment)!=null&&e.paymentFlowId)return t.payment.paymentFlowId;if(typeof window!="undefined"){if(window.__TGD_PAYMENT_FLOW_ID__)return window.__TGD_PAYMENT_FLOW_ID__;if(typeof document!="undefined"){let n=document.querySelector('meta[name="x-payment-flow-id"]');return(n==null?void 0:n.getAttribute("content"))||void 0}}}function ss(){let t=mt();return t==null?void 0:t.staticResources}function as(t){let e=mt();if(!(e!=null&&e.scripts))return;let n=e.scripts.filter(i=>i.enabled);return t&&(n=n.filter(i=>i.position===t||!i.position&&t==="head-end")),n.length>0?n:void 0}function ls(){let t=mt(),e=t==null?void 0:t.pixels;if(!e||typeof e!="object")return;let n={};for(let[i,o]of Object.entries(e))o&&(Array.isArray(o)?n[i]=o:typeof o=="object"&&(n[i]=[o]));return Object.keys(n).length>0?n:void 0}var co,ie,Hn,gt,Gn=Ie(()=>{"use strict";Yt();kn();Ln();Zt();ao();ut();co=(r=>(r.FACEBOOK="facebook",r.TIKTOK="tiktok",r.SNAPCHAT="snapchat",r.META_CONVERSION="meta_conversion",r.GTM="gtm",r))(co||{});Hn=!1;gt=class{constructor(e){this.eventDispatcher=new Me;this.isInitializing=!1;this.initializationAttempted=!1;this.config=e,this.resource=new jt(e.apiClient),this.state={context:null,isLoading:!1,isInitialized:!1,isNavigating:!1,error:null,sessionError:null}}setConfig(e){this.config=O(O({},this.config),e)}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}getDetectedSessionId(){var i;if((i=this.state.context)!=null&&i.sessionId)return this.state.context.sessionId;if(typeof window=="undefined")return null;let n=new URLSearchParams(window.location.search).get("funnelSessionId");return n||Xt()||null}resetInitialization(){this.initializationAttempted=!1,this.isInitializing=!1,this.updateState({context:null,isInitialized:!1})}async autoInitialize(e,n,i){if(this.state.context)return this.state.context;if(this.isInitializing||this.initializationAttempted)return null;this.initializationAttempted=!0,this.isInitializing=!0,this.updateState({isLoading:!0,error:null});try{let o=this.getDetectedSessionId(),a=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||i,l=ts(),u=Qt(),d=pt(),p=Ne(),I=this.config.funnelId||l||a,w=this.config.stepId||d,f=typeof window!="undefined"?new URLSearchParams(window.location.search):null,C=f==null?void 0:f.get("funnelEnv");this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-initializing...",{existingSessionId:o,effectiveFunnelId:I,funnelVariantId:u,funnelStepId:w,draft:p.draft,funnelTracking:p.funnelTracking,funnelEnv:C,tagadaClientEnv:p.tagadaClientEnv,tagadaClientBaseUrl:p.tagadaClientBaseUrl,source:{funnelId:this.config.funnelId?"config":l?"injected":a?"url/prop":"none",stepId:this.config.stepId?"config":d?"injected":"none"}});let b=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:I,existingSessionId:o||void 0,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:u,funnelStepId:w,draft:p.draft,funnelTracking:p.funnelTracking,funnelEnv:C||void 0,tagadaClientEnv:p.tagadaClientEnv,tagadaClientBaseUrl:p.tagadaClientBaseUrl,currency:p.currency,locale:p.locale});if(b.success&&b.context){let v=this.enrichContext(b.context);return this.handleSessionSuccess(v),Fn(),v}else throw new Error(b.error||"Failed to initialize funnel session")}catch(o){let r=o instanceof Error?o:new Error(String(o));throw this.updateState({error:r,isLoading:!1}),this.config.debugMode&&console.error("\u274C [FunnelClient] Init failed:",r),r}finally{this.isInitializing=!1}}async initialize(e,n,i,o){this.updateState({isLoading:!0,error:null});try{let r=Qt(),s=pt();this.config.debugMode&&(r&&console.log("\u{1F3AF} [FunnelClient] Detected A/B test variant:",r),s&&console.log("\u{1F3AF} [FunnelClient] Detected step ID:",s));let a=await this.resource.initialize({cmsSession:{customerId:e.customerId,sessionId:e.sessionId,storeId:n.id,accountId:n.accountId},funnelId:i,entryStepId:o,currentUrl:typeof window!="undefined"?window.location.href:void 0,funnelVariantId:r,funnelStepId:s});if(a.success&&a.context){let l=this.enrichContext(a.context);return this.handleSessionSuccess(l),Fn(),l}else throw new Error(a.error||"Failed to initialize")}catch(r){let s=r instanceof Error?r:new Error(String(r));throw this.updateState({error:s,isLoading:!1}),s}}async navigate(e,n){var i,o,r,s,a,l;if(n!=null&&n.waitForSession&&!((i=this.state.context)!=null&&i.sessionId)){this.config.debugMode&&console.log("\u23F3 [FunnelClient] Waiting for session before navigation...");let u=5e3,d=Date.now();for(;!((o=this.state.context)!=null&&o.sessionId)&&Date.now()-d<u;)await new Promise(p=>setTimeout(p,100));(r=this.state.context)!=null&&r.sessionId&&this.config.debugMode&&console.log("\u2705 [FunnelClient] Session ready, proceeding with navigation")}if(!((s=this.state.context)!=null&&s.sessionId))throw new Error("No active session");this.updateState({isNavigating:!0,isLoading:!0});try{let u=Qt(),d=pt(),p=typeof window!="undefined"?window.location.href:void 0;!d&&this.config.stepId&&(d=this.config.stepId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using stepId from config (no injection):",d)),!u&&this.config.variantId&&(u=this.config.variantId,this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Using variantId from config (no injection):",u)),this.config.debugMode&&console.log("\u{1F50D} [FunnelClient.navigate] Sending to backend:",{sessionId:this.state.context.sessionId,currentUrl:p,funnelStepId:d||"(not found)",funnelVariantId:u||"(not found)",hasInjectedStepId:!!pt(),hasInjectedVariantId:!!Qt(),usedConfigFallback:!pt()&&!!this.config.stepId,customerTags:(n==null?void 0:n.customerTags)||"(none)",deviceId:(n==null?void 0:n.deviceId)||"(none)"});let I=(n==null?void 0:n.fireAndForget)||!1,w=await this.resource.navigate({sessionId:this.state.context.sessionId,event:e,currentUrl:p,funnelStepId:d,funnelVariantId:u,fireAndForget:I,customerTags:n==null?void 0:n.customerTags,deviceId:n==null?void 0:n.deviceId});if(!w.success||!w.result)throw new Error(w.error||"Navigation failed");let f=w.result;if(f.queued)return this.updateState({isNavigating:!1,isLoading:!1}),f.sessionId&&f.sessionId!==((a=this.state.context)==null?void 0:a.sessionId)&&(this.config.debugMode&&console.log("\u{1F525} [FunnelClient] Session ID updated: ".concat((l=this.state.context)==null?void 0:l.sessionId," \u2192 ").concat(f.sessionId)),this.state.context&&(this.state.context.sessionId=f.sessionId)),this.config.debugMode&&console.log("\u{1F525} [FunnelClient] Navigation queued (fire-and-forget mode)"),f;let C=(n==null?void 0:n.autoRedirect)!==void 0?n.autoRedirect:this.config.autoRedirect!==!1;return C||(this.config.debugMode&&console.log("\u{1F504} [FunnelClient] Refreshing session (no auto-redirect)"),await this.refreshSession()),this.updateState({isNavigating:!1,isLoading:!1}),C&&(f!=null&&f.url)&&typeof window!="undefined"&&(this.config.debugMode&&console.log("\u{1F680} [FunnelClient] Auto-redirecting to:",f.url,"(skipped session refresh - next page will initialize)"),window.location.href=f.url),f}catch(u){let d=u instanceof Error?u:new Error(String(u));throw this.updateState({error:d,isNavigating:!1,isLoading:!1}),d}}async goToStep(e,n){return this.navigate({type:"direct_navigation",data:{targetStepId:e}},n)}async refreshSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{let n=await this.resource.getSession(this.state.context.sessionId);if(n.success&&n.context){let i=this.enrichContext(n.context);return this.updateState({context:i,sessionError:null}),i}}catch(n){this.updateState({sessionError:n instanceof Error?n:new Error(String(n))})}}async updateContext(e){var n;if(!((n=this.state.context)!=null&&n.sessionId))throw new Error("No active session");this.updateState({isLoading:!0});try{let i=await this.resource.updateContext(this.state.context.sessionId,{contextUpdates:e});if(i.success)await this.refreshSession();else throw new Error(i.error||"Failed to update context")}finally{this.updateState({isLoading:!1})}}async endSession(){var e;if((e=this.state.context)!=null&&e.sessionId)try{await this.resource.endSession(this.state.context.sessionId)}finally{this.state.context=null,this.updateState({context:null,isInitialized:!1})}}updateState(e){this.state=O(O({},this.state),e),this.eventDispatcher.notify(this.state)}handleSessionSuccess(e){Dn(e.sessionId),this.updateState({context:e,isLoading:!1,isInitialized:!0,error:null,sessionError:null})}enrichContext(e){var s,a;if((((s=this.config.environment)==null?void 0:s.environment)||st())!=="local")return e;let i=((a=this.config.pluginConfig)==null?void 0:a.staticResources)||{};if(Object.keys(i).length===0)return e;let o=e.static||{};return Object.keys(i).every(l=>o[l]===i[l])&&Object.keys(o).length===Object.keys(i).length?e:K(O({},e),{static:O(O({},i),o)})}}});var nl={};Pn(nl,{ApiClient:()=>$e,CheckoutResource:()=>Rn,CheckoutUtils:()=>Mi,CurrencyUtils:()=>Vt,FunnelActionType:()=>$t,OrderBumpUtils:()=>Hi,OrderUtils:()=>Bi,PluginConfigUtils:()=>xi,PostPurchasesUtils:()=>Fi,ProductsUtils:()=>Di,PromotionsUtils:()=>Ui,TagadaClient:()=>Gt,TagadaExternalTracker:()=>Kt,TagadaTracker:()=>Gi,broadcastConfigUpdate:()=>Qa,clearFunnelSessionCookie:()=>ct,createRawPluginConfig:()=>Lr,createTagadaClient:()=>Vi,debounceConfigUpdate:()=>tl,formatMoney:()=>Ja,funnelQueryKeys:()=>Za,getFunnelSessionCookie:()=>Xt,getFunnelVariantId:()=>qr,getPluginConfig:()=>ja,hasFunnelSessionCookie:()=>$r,loadLocalConfig:()=>kr,loadPluginConfig:()=>ki,onConfigUpdate:()=>el,sendConfigUpdate:()=>Br,setFunnelSessionCookie:()=>Dn});Yt();Gn();function ht(t,e){return function(){return t.apply(e,arguments)}}var{toString:cs}=Object.prototype,{getPrototypeOf:Kn}=Object,{iterator:tn,toStringTag:go}=Symbol,nn=(t=>e=>{let n=cs.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),oe=t=>(t=t.toLowerCase(),e=>nn(e)===t),on=t=>e=>typeof e===t,{isArray:Ve}=Array,Ge=on("undefined");function Et(t){return t!==null&&!Ge(t)&&t.constructor!==null&&!Ge(t.constructor)&&X(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}var mo=oe("ArrayBuffer");function us(t){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&mo(t.buffer),e}var ds=on("string"),X=on("function"),ho=on("number"),At=t=>t!==null&&typeof t=="object",fs=t=>t===!0||t===!1,en=t=>{if(nn(t)!=="object")return!1;let e=Kn(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(go in t)&&!(tn in t)},ps=t=>{if(!At(t)||Et(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(e){return!1}},gs=oe("Date"),ms=oe("File"),hs=oe("Blob"),Es=oe("FileList"),As=t=>At(t)&&X(t.pipe),bs=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||X(t.append)&&((e=nn(t))==="formdata"||e==="object"&&X(t.toString)&&t.toString()==="[object FormData]"))},ws=oe("URLSearchParams"),[Is,Ss,Cs,Ts]=["ReadableStream","Request","Response","Headers"].map(oe),ys=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function bt(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t=="undefined")return;let i,o;if(typeof t!="object"&&(t=[t]),Ve(t))for(i=0,o=t.length;i<o;i++)e.call(null,t[i],i,t);else{if(Et(t))return;let r=n?Object.getOwnPropertyNames(t):Object.keys(t),s=r.length,a;for(i=0;i<s;i++)a=r[i],e.call(null,t[a],a,t)}}function Eo(t,e){if(Et(t))return null;e=e.toLowerCase();let n=Object.keys(t),i=n.length,o;for(;i-- >0;)if(o=n[i],e===o.toLowerCase())return o;return null}var xe=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,Ao=t=>!Ge(t)&&t!==xe;function Vn(){let{caseless:t,skipUndefined:e}=Ao(this)&&this||{},n={},i=(o,r)=>{let s=t&&Eo(n,r)||r;en(n[s])&&en(o)?n[s]=Vn(n[s],o):en(o)?n[s]=Vn({},o):Ve(o)?n[s]=o.slice():(!e||!Ge(o))&&(n[s]=o)};for(let o=0,r=arguments.length;o<r;o++)arguments[o]&&bt(arguments[o],i);return n}var Os=(t,e,n,{allOwnKeys:i}={})=>(bt(e,(o,r)=>{n&&X(o)?t[r]=ht(o,n):t[r]=o},{allOwnKeys:i}),t),Rs=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),vs=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},Ps=(t,e,n,i)=>{let o,r,s,a={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),r=o.length;r-- >0;)s=o[r],(!i||i(s,t,e))&&!a[s]&&(e[s]=t[s],a[s]=!0);t=n!==!1&&Kn(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Ns=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;let i=t.indexOf(e,n);return i!==-1&&i===n},xs=t=>{if(!t)return null;if(Ve(t))return t;let e=t.length;if(!ho(e))return null;let n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},ks=(t=>e=>t&&e instanceof t)(typeof Uint8Array!="undefined"&&Kn(Uint8Array)),Ls=(t,e)=>{let i=(t&&t[tn]).call(t),o;for(;(o=i.next())&&!o.done;){let r=o.value;e.call(t,r[0],r[1])}},_s=(t,e)=>{let n,i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},Ds=oe("HTMLFormElement"),Bs=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,i,o){return i.toUpperCase()+o}),po=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),Ms=oe("RegExp"),bo=(t,e)=>{let n=Object.getOwnPropertyDescriptors(t),i={};bt(n,(o,r)=>{let s;(s=e(o,r,t))!==!1&&(i[r]=s||o)}),Object.defineProperties(t,i)},Us=t=>{bo(t,(e,n)=>{if(X(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;let i=t[n];if(X(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Fs=(t,e)=>{let n={},i=o=>{o.forEach(r=>{n[r]=!0})};return Ve(t)?i(t):i(String(t).split(e)),n},Hs=()=>{},Gs=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Vs(t){return!!(t&&X(t.append)&&t[go]==="FormData"&&t[tn])}var Ks=t=>{let e=new Array(10),n=(i,o)=>{if(At(i)){if(e.indexOf(i)>=0)return;if(Et(i))return i;if(!("toJSON"in i)){e[o]=i;let r=Ve(i)?[]:{};return bt(i,(s,a)=>{let l=n(s,o+1);!Ge(l)&&(r[a]=l)}),e[o]=void 0,r}}return i};return n(t,0)},Ws=oe("AsyncFunction"),zs=t=>t&&(At(t)||X(t))&&X(t.then)&&X(t.catch),wo=((t,e)=>t?setImmediate:e?((n,i)=>(xe.addEventListener("message",({source:o,data:r})=>{o===xe&&r===n&&i.length&&i.shift()()},!1),o=>{i.push(o),xe.postMessage(n,"*")}))("axios@".concat(Math.random()),[]):n=>setTimeout(n))(typeof setImmediate=="function",X(xe.postMessage)),Ys=typeof queueMicrotask!="undefined"?queueMicrotask.bind(xe):typeof process!="undefined"&&process.nextTick||wo,js=t=>t!=null&&X(t[tn]),c={isArray:Ve,isArrayBuffer:mo,isBuffer:Et,isFormData:bs,isArrayBufferView:us,isString:ds,isNumber:ho,isBoolean:fs,isObject:At,isPlainObject:en,isEmptyObject:ps,isReadableStream:Is,isRequest:Ss,isResponse:Cs,isHeaders:Ts,isUndefined:Ge,isDate:gs,isFile:ms,isBlob:hs,isRegExp:Ms,isFunction:X,isStream:As,isURLSearchParams:ws,isTypedArray:ks,isFileList:Es,forEach:bt,merge:Vn,extend:Os,trim:ys,stripBOM:Rs,inherits:vs,toFlatObject:Ps,kindOf:nn,kindOfTest:oe,endsWith:Ns,toArray:xs,forEachEntry:Ls,matchAll:_s,isHTMLForm:Ds,hasOwnProperty:po,hasOwnProp:po,reduceDescriptors:bo,freezeMethods:Us,toObjectSet:Fs,toCamelCase:Bs,noop:Hs,toFiniteNumber:Gs,findKey:Eo,global:xe,isContextDefined:Ao,isSpecCompliantForm:Vs,toJSONObject:Ks,isAsyncFn:Ws,isThenable:zs,setImmediate:wo,asap:Ys,isIterable:js};function Ke(t,e,n,i,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),i&&(this.request=i),o&&(this.response=o,this.status=o.status?o.status:null)}c.inherits(Ke,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:c.toJSONObject(this.config),code:this.code,status:this.status}}});var Io=Ke.prototype,So={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{So[t]={value:t}});Object.defineProperties(Ke,So);Object.defineProperty(Io,"isAxiosError",{value:!0});Ke.from=(t,e,n,i,o,r)=>{let s=Object.create(Io);c.toFlatObject(t,s,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");let a=t&&t.message?t.message:"Error",l=e==null&&t?t.code:e;return Ke.call(s,a,l,n,i,o),t&&s.cause==null&&Object.defineProperty(s,"cause",{value:t,configurable:!0}),s.name=t&&t.name||"Error",r&&Object.assign(s,r),s};var T=Ke;var rn=null;function Wn(t){return c.isPlainObject(t)||c.isArray(t)}function To(t){return c.endsWith(t,"[]")?t.slice(0,-2):t}function Co(t,e,n){return t?t.concat(e).map(function(o,r){return o=To(o),!n&&r?"["+o+"]":o}).join(n?".":""):e}function $s(t){return c.isArray(t)&&!t.some(Wn)}var qs=c.toFlatObject(c,{},null,function(e){return/^is[A-Z]/.test(e)});function Xs(t,e,n){if(!c.isObject(t))throw new TypeError("target must be an object");e=e||new(rn||FormData),n=c.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(C,b){return!c.isUndefined(b[C])});let i=n.metaTokens,o=n.visitor||d,r=n.dots,s=n.indexes,l=(n.Blob||typeof Blob!="undefined"&&Blob)&&c.isSpecCompliantForm(e);if(!c.isFunction(o))throw new TypeError("visitor must be a function");function u(f){if(f===null)return"";if(c.isDate(f))return f.toISOString();if(c.isBoolean(f))return f.toString();if(!l&&c.isBlob(f))throw new T("Blob is not supported. Use a Buffer instead.");return c.isArrayBuffer(f)||c.isTypedArray(f)?l&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function d(f,C,b){let v=f;if(f&&!b&&typeof f=="object"){if(c.endsWith(C,"{}"))C=i?C:C.slice(0,-2),f=JSON.stringify(f);else if(c.isArray(f)&&$s(f)||(c.isFileList(f)||c.endsWith(C,"[]"))&&(v=c.toArray(f)))return C=To(C),v.forEach(function(y,N){!(c.isUndefined(y)||y===null)&&e.append(s===!0?Co([C],N,r):s===null?C:C+"[]",u(y))}),!1}return Wn(f)?!0:(e.append(Co(b,C,r),u(f)),!1)}let p=[],I=Object.assign(qs,{defaultVisitor:d,convertValue:u,isVisitable:Wn});function w(f,C){if(!c.isUndefined(f)){if(p.indexOf(f)!==-1)throw Error("Circular reference detected in "+C.join("."));p.push(f),c.forEach(f,function(v,L){(!(c.isUndefined(v)||v===null)&&o.call(e,v,c.isString(L)?L.trim():L,C,I))===!0&&w(v,C?C.concat(L):[L])}),p.pop()}}if(!c.isObject(t))throw new TypeError("data must be an object");return w(t),e}var Se=Xs;function yo(t){let e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(i){return e[i]})}function Oo(t,e){this._pairs=[],t&&Se(t,this,e)}var Ro=Oo.prototype;Ro.append=function(e,n){this._pairs.push([e,n])};Ro.toString=function(e){let n=e?function(i){return e.call(this,i,yo)}:yo;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};var sn=Oo;function Js(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function wt(t,e,n){if(!e)return t;let i=n&&n.encode||Js;c.isFunction(n)&&(n={serialize:n});let o=n&&n.serialize,r;if(o?r=o(e,n):r=c.isURLSearchParams(e)?e.toString():new sn(e,n).toString(i),r){let s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}var zn=class{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){c.forEach(this.handlers,function(i){i!==null&&e(i)})}},Yn=zn;var an={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var vo=typeof URLSearchParams!="undefined"?URLSearchParams:sn;var Po=typeof FormData!="undefined"?FormData:null;var No=typeof Blob!="undefined"?Blob:null;var xo={isBrowser:!0,classes:{URLSearchParams:vo,FormData:Po,Blob:No},protocols:["http","https","file","blob","url","data"]};var qn={};Pn(qn,{hasBrowserEnv:()=>$n,hasStandardBrowserEnv:()=>Zs,hasStandardBrowserWebWorkerEnv:()=>Qs,navigator:()=>jn,origin:()=>ea});var $n=typeof window!="undefined"&&typeof document!="undefined",jn=typeof navigator=="object"&&navigator||void 0,Zs=$n&&(!jn||["ReactNative","NativeScript","NS"].indexOf(jn.product)<0),Qs=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ea=$n&&window.location.href||"http://localhost";var M=O(O({},qn),xo);function Xn(t,e){return Se(t,new M.classes.URLSearchParams,O({visitor:function(n,i,o,r){return M.isNode&&c.isBuffer(n)?(this.append(i,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}function ta(t){return c.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function na(t){let e={},n=Object.keys(t),i,o=n.length,r;for(i=0;i<o;i++)r=n[i],e[r]=t[r];return e}function ia(t){function e(n,i,o,r){let s=n[r++];if(s==="__proto__")return!0;let a=Number.isFinite(+s),l=r>=n.length;return s=!s&&c.isArray(o)?o.length:s,l?(c.hasOwnProp(o,s)?o[s]=[o[s],i]:o[s]=i,!a):((!o[s]||!c.isObject(o[s]))&&(o[s]=[]),e(n,i,o[s],r)&&c.isArray(o[s])&&(o[s]=na(o[s])),!a)}if(c.isFormData(t)&&c.isFunction(t.entries)){let n={};return c.forEachEntry(t,(i,o)=>{e(ta(i),o,n,0)}),n}return null}var ln=ia;function oa(t,e,n){if(c.isString(t))try{return(e||JSON.parse)(t),c.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}var Jn={transitional:an,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){let i=n.getContentType()||"",o=i.indexOf("application/json")>-1,r=c.isObject(e);if(r&&c.isHTMLForm(e)&&(e=new FormData(e)),c.isFormData(e))return o?JSON.stringify(ln(e)):e;if(c.isArrayBuffer(e)||c.isBuffer(e)||c.isStream(e)||c.isFile(e)||c.isBlob(e)||c.isReadableStream(e))return e;if(c.isArrayBufferView(e))return e.buffer;if(c.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(r){if(i.indexOf("application/x-www-form-urlencoded")>-1)return Xn(e,this.formSerializer).toString();if((a=c.isFileList(e))||i.indexOf("multipart/form-data")>-1){let l=this.env&&this.env.FormData;return Se(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return r||o?(n.setContentType("application/json",!1),oa(e)):e}],transformResponse:[function(e){let n=this.transitional||Jn.transitional,i=n&&n.forcedJSONParsing,o=this.responseType==="json";if(c.isResponse(e)||c.isReadableStream(e))return e;if(e&&c.isString(e)&&(i&&!this.responseType||o)){let s=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(e,this.parseReviver)}catch(a){if(s)throw a.name==="SyntaxError"?T.from(a,T.ERR_BAD_RESPONSE,this,null,this.response):a}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:M.classes.FormData,Blob:M.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};c.forEach(["delete","get","head","post","put","patch"],t=>{Jn.headers[t]={}});var We=Jn;var ra=c.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ko=t=>{let e={},n,i,o;return t&&t.split("\n").forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!n||e[n]&&ra[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};var Lo=Symbol("internals");function It(t){return t&&String(t).trim().toLowerCase()}function cn(t){return t===!1||t==null?t:c.isArray(t)?t.map(cn):String(t)}function sa(t){let e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}var aa=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Zn(t,e,n,i,o){if(c.isFunction(i))return i.call(this,e,n);if(o&&(e=n),!!c.isString(e)){if(c.isString(i))return e.indexOf(i)!==-1;if(c.isRegExp(i))return i.test(e)}}function la(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function ca(t,e){let n=c.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{value:function(o,r,s){return this[i].call(this,e,o,r,s)},configurable:!0})})}var ze=class{constructor(e){e&&this.set(e)}set(e,n,i){let o=this;function r(a,l,u){let d=It(l);if(!d)throw new Error("header name must be a non-empty string");let p=c.findKey(o,d);(!p||o[p]===void 0||u===!0||u===void 0&&o[p]!==!1)&&(o[p||l]=cn(a))}let s=(a,l)=>c.forEach(a,(u,d)=>r(u,d,l));if(c.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(c.isString(e)&&(e=e.trim())&&!aa(e))s(ko(e),n);else if(c.isObject(e)&&c.isIterable(e)){let a={},l,u;for(let d of e){if(!c.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[u=d[0]]=(l=a[u])?c.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}s(a,n)}else e!=null&&r(n,e,i);return this}get(e,n){if(e=It(e),e){let i=c.findKey(this,e);if(i){let o=this[i];if(!n)return o;if(n===!0)return sa(o);if(c.isFunction(n))return n.call(this,o,i);if(c.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=It(e),e){let i=c.findKey(this,e);return!!(i&&this[i]!==void 0&&(!n||Zn(this,this[i],i,n)))}return!1}delete(e,n){let i=this,o=!1;function r(s){if(s=It(s),s){let a=c.findKey(i,s);a&&(!n||Zn(i,i[a],a,n))&&(delete i[a],o=!0)}}return c.isArray(e)?e.forEach(r):r(e),o}clear(e){let n=Object.keys(this),i=n.length,o=!1;for(;i--;){let r=n[i];(!e||Zn(this,this[r],r,e,!0))&&(delete this[r],o=!0)}return o}normalize(e){let n=this,i={};return c.forEach(this,(o,r)=>{let s=c.findKey(i,r);if(s){n[s]=cn(o),delete n[r];return}let a=e?la(r):String(r).trim();a!==r&&delete n[r],n[a]=cn(o),i[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let n=Object.create(null);return c.forEach(this,(i,o)=>{i!=null&&i!==!1&&(n[o]=e&&c.isArray(i)?i.join(", "):i)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){let i=new this(e);return n.forEach(o=>i.set(o)),i}static accessor(e){let i=(this[Lo]=this[Lo]={accessors:{}}).accessors,o=this.prototype;function r(s){let a=It(s);i[a]||(ca(o,s),i[a]=!0)}return c.isArray(e)?e.forEach(r):r(e),this}};ze.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);c.reduceDescriptors(ze.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}});c.freezeMethods(ze);var V=ze;function St(t,e){let n=this||We,i=e||n,o=V.from(i.headers),r=i.data;return c.forEach(t,function(a){r=a.call(n,r,o.normalize(),e?e.status:void 0)}),o.normalize(),r}function Ct(t){return!!(t&&t.__CANCEL__)}function _o(t,e,n){T.call(this,t==null?"canceled":t,T.ERR_CANCELED,e,n),this.name="CanceledError"}c.inherits(_o,T,{__CANCEL__:!0});var ce=_o;function Tt(t,e,n){let i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new T("Request failed with status code "+n.status,[T.ERR_BAD_REQUEST,T.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Qn(t){let e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ua(t,e){t=t||10;let n=new Array(t),i=new Array(t),o=0,r=0,s;return e=e!==void 0?e:1e3,function(l){let u=Date.now(),d=i[r];s||(s=u),n[o]=l,i[o]=u;let p=r,I=0;for(;p!==o;)I+=n[p++],p=p%t;if(o=(o+1)%t,o===r&&(r=(r+1)%t),u-s<e)return;let w=d&&u-d;return w?Math.round(I*1e3/w):void 0}}var Do=ua;function da(t,e){let n=0,i=1e3/e,o,r,s=(u,d=Date.now())=>{n=d,o=null,r&&(clearTimeout(r),r=null),t(...u)};return[(...u)=>{let d=Date.now(),p=d-n;p>=i?s(u,d):(o=u,r||(r=setTimeout(()=>{r=null,s(o)},i-p)))},()=>o&&s(o)]}var Bo=da;var Ye=(t,e,n=3)=>{let i=0,o=Do(50,250);return Bo(r=>{let s=r.loaded,a=r.lengthComputable?r.total:void 0,l=s-i,u=o(l),d=s<=a;i=s;let p={loaded:s,total:a,progress:a?s/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&d?(a-s)/u:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(p)},n)},ei=(t,e)=>{let n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},ti=t=>(...e)=>c.asap(()=>t(...e));var Mo=M.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,M.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(M.origin),M.navigator&&/(msie|trident)/i.test(M.navigator.userAgent)):()=>!0;var Uo=M.hasStandardBrowserEnv?{write(t,e,n,i,o,r,s){if(typeof document=="undefined")return;let a=["".concat(t,"=").concat(encodeURIComponent(e))];c.isNumber(n)&&a.push("expires=".concat(new Date(n).toUTCString())),c.isString(i)&&a.push("path=".concat(i)),c.isString(o)&&a.push("domain=".concat(o)),r===!0&&a.push("secure"),c.isString(s)&&a.push("SameSite=".concat(s)),document.cookie=a.join("; ")},read(t){if(typeof document=="undefined")return null;let e=document.cookie.match(new RegExp("(?:^|; )"+t+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function ni(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function ii(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function yt(t,e,n){let i=!ni(e);return t&&(i||n==!1)?ii(t,e):e}var Fo=t=>t instanceof V?O({},t):t;function re(t,e){e=e||{};let n={};function i(u,d,p,I){return c.isPlainObject(u)&&c.isPlainObject(d)?c.merge.call({caseless:I},u,d):c.isPlainObject(d)?c.merge({},d):c.isArray(d)?d.slice():d}function o(u,d,p,I){if(c.isUndefined(d)){if(!c.isUndefined(u))return i(void 0,u,p,I)}else return i(u,d,p,I)}function r(u,d){if(!c.isUndefined(d))return i(void 0,d)}function s(u,d){if(c.isUndefined(d)){if(!c.isUndefined(u))return i(void 0,u)}else return i(void 0,d)}function a(u,d,p){if(p in e)return i(u,d);if(p in t)return i(void 0,u)}let l={url:r,method:r,data:r,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(u,d,p)=>o(Fo(u),Fo(d),p,!0)};return c.forEach(Object.keys(O(O({},t),e)),function(d){let p=l[d]||o,I=p(t[d],e[d],d);c.isUndefined(I)&&p!==a||(n[d]=I)}),n}var un=t=>{let e=re({},t),{data:n,withXSRFToken:i,xsrfHeaderName:o,xsrfCookieName:r,headers:s,auth:a}=e;if(e.headers=s=V.from(s),e.url=wt(yt(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),c.isFormData(n)){if(M.hasStandardBrowserEnv||M.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(c.isFunction(n.getHeaders)){let l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([d,p])=>{u.includes(d.toLowerCase())&&s.set(d,p)})}}if(M.hasStandardBrowserEnv&&(i&&c.isFunction(i)&&(i=i(e)),i||i!==!1&&Mo(e.url))){let l=o&&r&&Uo.read(r);l&&s.set(o,l)}return e};var fa=typeof XMLHttpRequest!="undefined",Ho=fa&&function(t){return new Promise(function(n,i){let o=un(t),r=o.data,s=V.from(o.headers).normalize(),{responseType:a,onUploadProgress:l,onDownloadProgress:u}=o,d,p,I,w,f;function C(){w&&w(),f&&f(),o.cancelToken&&o.cancelToken.unsubscribe(d),o.signal&&o.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(o.method.toUpperCase(),o.url,!0),b.timeout=o.timeout;function v(){if(!b)return;let y=V.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),W={data:!a||a==="text"||a==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:y,config:t,request:b};Tt(function(z){n(z),C()},function(z){i(z),C()},W),b=null}"onloadend"in b?b.onloadend=v:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(v)},b.onabort=function(){b&&(i(new T("Request aborted",T.ECONNABORTED,t,b)),b=null)},b.onerror=function(N){let W=N&&N.message?N.message:"Network Error",_=new T(W,T.ERR_NETWORK,t,b);_.event=N||null,i(_),b=null},b.ontimeout=function(){let N=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",W=o.transitional||an;o.timeoutErrorMessage&&(N=o.timeoutErrorMessage),i(new T(N,W.clarifyTimeoutError?T.ETIMEDOUT:T.ECONNABORTED,t,b)),b=null},r===void 0&&s.setContentType(null),"setRequestHeader"in b&&c.forEach(s.toJSON(),function(N,W){b.setRequestHeader(W,N)}),c.isUndefined(o.withCredentials)||(b.withCredentials=!!o.withCredentials),a&&a!=="json"&&(b.responseType=o.responseType),u&&([I,f]=Ye(u,!0),b.addEventListener("progress",I)),l&&b.upload&&([p,w]=Ye(l),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",w)),(o.cancelToken||o.signal)&&(d=y=>{b&&(i(!y||y.type?new ce(null,t,b):y),b.abort(),b=null)},o.cancelToken&&o.cancelToken.subscribe(d),o.signal&&(o.signal.aborted?d():o.signal.addEventListener("abort",d)));let L=Qn(o.url);if(L&&M.protocols.indexOf(L)===-1){i(new T("Unsupported protocol "+L+":",T.ERR_BAD_REQUEST,t));return}b.send(r||null)})};var pa=(t,e)=>{let{length:n}=t=t?t.filter(Boolean):[];if(e||n){let i=new AbortController,o,r=function(u){if(!o){o=!0,a();let d=u instanceof Error?u:this.reason;i.abort(d instanceof T?d:new ce(d instanceof Error?d.message:d))}},s=e&&setTimeout(()=>{s=null,r(new T("timeout ".concat(e," of ms exceeded"),T.ETIMEDOUT))},e),a=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(u=>{u.unsubscribe?u.unsubscribe(r):u.removeEventListener("abort",r)}),t=null)};t.forEach(u=>u.addEventListener("abort",r));let{signal:l}=i;return l.unsubscribe=()=>c.asap(a),l}},Go=pa;var ga=function*(t,e){let n=t.byteLength;if(!e||n<e){yield t;return}let i=0,o;for(;i<n;)o=i+e,yield t.slice(i,o),i=o},ma=function(t,e){return Nn(this,null,function*(){try{for(var n=Xi(ha(t)),i,o,r;i=!(o=yield new Pe(n.next())).done;i=!1){let s=o.value;yield*xn(ga(s,e))}}catch(o){r=[o]}finally{try{i&&(o=n.return)&&(yield new Pe(o.call(n)))}finally{if(r)throw r[0]}}})},ha=function(t){return Nn(this,null,function*(){if(t[Symbol.asyncIterator]){yield*xn(t);return}let e=t.getReader();try{for(;;){let{done:n,value:i}=yield new Pe(e.read());if(n)break;yield i}}finally{yield new Pe(e.cancel())}})},oi=(t,e,n,i)=>{let o=ma(t,e),r=0,s,a=l=>{s||(s=!0,i&&i(l))};return new ReadableStream({async pull(l){try{let{done:u,value:d}=await o.next();if(u){a(),l.close();return}let p=d.byteLength;if(n){let I=r+=p;n(I)}l.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(l){return a(l),o.return()}},{highWaterMark:2})};var Vo=64*1024,{isFunction:dn}=c,Ea=(({Request:t,Response:e})=>({Request:t,Response:e}))(c.global),{ReadableStream:Ko,TextEncoder:Wo}=c.global,zo=(t,...e)=>{try{return!!t(...e)}catch(n){return!1}},Aa=t=>{t=c.merge.call({skipUndefined:!0},Ea,t);let{fetch:e,Request:n,Response:i}=t,o=e?dn(e):typeof fetch=="function",r=dn(n),s=dn(i);if(!o)return!1;let a=o&&dn(Ko),l=o&&(typeof Wo=="function"?(f=>C=>f.encode(C))(new Wo):async f=>new Uint8Array(await new n(f).arrayBuffer())),u=r&&a&&zo(()=>{let f=!1,C=new n(M.origin,{body:new Ko,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!C}),d=s&&a&&zo(()=>c.isReadableStream(new i("").body)),p={stream:d&&(f=>f.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!p[f]&&(p[f]=(C,b)=>{let v=C&&C[f];if(v)return v.call(C);throw new T("Response type '".concat(f,"' is not supported"),T.ERR_NOT_SUPPORT,b)})});let I=async f=>{if(f==null)return 0;if(c.isBlob(f))return f.size;if(c.isSpecCompliantForm(f))return(await new n(M.origin,{method:"POST",body:f}).arrayBuffer()).byteLength;if(c.isArrayBufferView(f)||c.isArrayBuffer(f))return f.byteLength;if(c.isURLSearchParams(f)&&(f=f+""),c.isString(f))return(await l(f)).byteLength},w=async(f,C)=>{let b=c.toFiniteNumber(f.getContentLength());return b==null?I(C):b};return async f=>{let{url:C,method:b,data:v,signal:L,cancelToken:y,timeout:N,onDownloadProgress:W,onUploadProgress:_,responseType:z,headers:ae,withCredentials:ot="same-origin",fetchOptions:te}=un(f),Ae=e||fetch;z=z?(z+"").toLowerCase():"text";let j=Go([L,y&&y.toAbortSignal()],N),rt=null,ve=j&&j.unsubscribe&&(()=>{j.unsubscribe()}),Ki;try{if(_&&u&&b!=="get"&&b!=="head"&&(Ki=await w(ae,v))!==0){let we=new n(C,{method:"POST",body:v,duplex:"half"}),De;if(c.isFormData(v)&&(De=we.headers.get("content-type"))&&ae.setContentType(De),we.body){let[vn,Wt]=ei(Ki,Ye(ti(_)));v=oi(we.body,Vo,vn,Wt)}}c.isString(ot)||(ot=ot?"include":"omit");let le=r&&"credentials"in n.prototype,Wi=K(O({},te),{signal:j,method:b.toUpperCase(),headers:ae.normalize().toJSON(),body:v,duplex:"half",credentials:le?ot:void 0});rt=r&&new n(C,Wi);let be=await(r?Ae(rt,te):Ae(C,Wi)),zi=d&&(z==="stream"||z==="response");if(d&&(W||zi&&ve)){let we={};["status","statusText","headers"].forEach(Yi=>{we[Yi]=be[Yi]});let De=c.toFiniteNumber(be.headers.get("content-length")),[vn,Wt]=W&&ei(De,Ye(ti(W),!0))||[];be=new i(oi(be.body,Vo,vn,()=>{Wt&&Wt(),ve&&ve()}),we)}z=z||"text";let Ur=await p[c.findKey(p,z)||"text"](be,f);return!zi&&ve&&ve(),await new Promise((we,De)=>{Tt(we,De,{data:Ur,headers:V.from(be.headers),status:be.status,statusText:be.statusText,config:f,request:rt})})}catch(le){throw ve&&ve(),le&&le.name==="TypeError"&&/Load failed|fetch/i.test(le.message)?Object.assign(new T("Network Error",T.ERR_NETWORK,f,rt),{cause:le.cause||le}):T.from(le,le&&le.code,f,rt)}}},ba=new Map,ri=t=>{let e=t&&t.env||{},{fetch:n,Request:i,Response:o}=e,r=[i,o,n],s=r.length,a=s,l,u,d=ba;for(;a--;)l=r[a],u=d.get(l),u===void 0&&d.set(l,u=a?new Map:Aa(e)),d=u;return u},Bu=ri();var si={http:rn,xhr:Ho,fetch:{get:ri}};c.forEach(si,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(n){}Object.defineProperty(t,"adapterName",{value:e})}});var Yo=t=>"- ".concat(t),Ia=t=>c.isFunction(t)||t===null||t===!1;function Sa(t,e){t=c.isArray(t)?t:[t];let{length:n}=t,i,o,r={};for(let s=0;s<n;s++){i=t[s];let a;if(o=i,!Ia(i)&&(o=si[(a=String(i)).toLowerCase()],o===void 0))throw new T("Unknown adapter '".concat(a,"'"));if(o&&(c.isFunction(o)||(o=o.get(e))))break;r[a||"#"+s]=o}if(!o){let s=Object.entries(r).map(([l,u])=>"adapter ".concat(l," ")+(u===!1?"is not supported by the environment":"is not available in the build")),a=n?s.length>1?"since :\n"+s.map(Yo).join("\n"):" "+Yo(s[0]):"as no adapter specified";throw new T("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return o}var fn={getAdapter:Sa,adapters:si};function ai(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ce(null,t)}function pn(t){return ai(t),t.headers=V.from(t.headers),t.data=St.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),fn.getAdapter(t.adapter||We.adapter,t)(t).then(function(i){return ai(t),i.data=St.call(t,t.transformResponse,i),i.headers=V.from(i.headers),i},function(i){return Ct(i)||(ai(t),i&&i.response&&(i.response.data=St.call(t,t.transformResponse,i.response),i.response.headers=V.from(i.response.headers))),Promise.reject(i)})}var gn="1.13.2";var mn={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{mn[t]=function(i){return typeof i===t||"a"+(e<1?"n ":" ")+t}});var jo={};mn.transitional=function(e,n,i){function o(r,s){return"[Axios v"+gn+"] Transitional option '"+r+"'"+s+(i?". "+i:"")}return(r,s,a)=>{if(e===!1)throw new T(o(s," has been removed"+(n?" in "+n:"")),T.ERR_DEPRECATED);return n&&!jo[s]&&(jo[s]=!0,console.warn(o(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,s,a):!0}};mn.spelling=function(e){return(n,i)=>(console.warn("".concat(i," is likely a misspelling of ").concat(e)),!0)};function Ca(t,e,n){if(typeof t!="object")throw new T("options must be an object",T.ERR_BAD_OPTION_VALUE);let i=Object.keys(t),o=i.length;for(;o-- >0;){let r=i[o],s=e[r];if(s){let a=t[r],l=a===void 0||s(a,r,t);if(l!==!0)throw new T("option "+r+" must be "+l,T.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new T("Unknown option "+r,T.ERR_BAD_OPTION)}}var Ot={assertOptions:Ca,validators:mn};var ue=Ot.validators,je=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Yn,response:new Yn}}async request(e,n){try{return await this._request(e,n)}catch(i){if(i instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;let r=o.stack?o.stack.replace(/^.+\n/,""):"";try{i.stack?r&&!String(i.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(i.stack+="\n"+r):i.stack=r}catch(s){}}throw i}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=re(this.defaults,n);let{transitional:i,paramsSerializer:o,headers:r}=n;i!==void 0&&Ot.assertOptions(i,{silentJSONParsing:ue.transitional(ue.boolean),forcedJSONParsing:ue.transitional(ue.boolean),clarifyTimeoutError:ue.transitional(ue.boolean)},!1),o!=null&&(c.isFunction(o)?n.paramsSerializer={serialize:o}:Ot.assertOptions(o,{encode:ue.function,serialize:ue.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Ot.assertOptions(n,{baseUrl:ue.spelling("baseURL"),withXsrfToken:ue.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=r&&c.merge(r.common,r[n.method]);r&&c.forEach(["delete","get","head","post","put","patch","common"],f=>{delete r[f]}),n.headers=V.concat(s,r);let a=[],l=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(n)===!1||(l=l&&C.synchronous,a.unshift(C.fulfilled,C.rejected))});let u=[];this.interceptors.response.forEach(function(C){u.push(C.fulfilled,C.rejected)});let d,p=0,I;if(!l){let f=[pn.bind(this),void 0];for(f.unshift(...a),f.push(...u),I=f.length,d=Promise.resolve(n);p<I;)d=d.then(f[p++],f[p++]);return d}I=a.length;let w=n;for(;p<I;){let f=a[p++],C=a[p++];try{w=f(w)}catch(b){C.call(this,b);break}}try{d=pn.call(this,w)}catch(f){return Promise.reject(f)}for(p=0,I=u.length;p<I;)d=d.then(u[p++],u[p++]);return d}getUri(e){e=re(this.defaults,e);let n=yt(e.baseURL,e.url,e.allowAbsoluteUrls);return wt(n,e.params,e.paramsSerializer)}};c.forEach(["delete","get","head","options"],function(e){je.prototype[e]=function(n,i){return this.request(re(i||{},{method:e,url:n,data:(i||{}).data}))}});c.forEach(["post","put","patch"],function(e){function n(i){return function(r,s,a){return this.request(re(a||{},{method:e,headers:i?{"Content-Type":"multipart/form-data"}:{},url:r,data:s}))}}je.prototype[e]=n(),je.prototype[e+"Form"]=n(!0)});var Rt=je;var li=class t{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(r){n=r});let i=this;this.promise.then(o=>{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](o);i._listeners=null}),this.promise.then=o=>{let r,s=new Promise(a=>{i.subscribe(a),r=a}).then(o);return s.cancel=function(){i.unsubscribe(r)},s},e(function(r,s,a){i.reason||(i.reason=new ce(r,s,a),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){let e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new t(function(o){e=o}),cancel:e}}},$o=li;function ci(t){return function(n){return t.apply(null,n)}}function ui(t){return c.isObject(t)&&t.isAxiosError===!0}var di={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(di).forEach(([t,e])=>{di[e]=t});var qo=di;function Xo(t){let e=new Rt(t),n=ht(Rt.prototype.request,e);return c.extend(n,Rt.prototype,e,{allOwnKeys:!0}),c.extend(n,e,null,{allOwnKeys:!0}),n.create=function(o){return Xo(re(t,o))},n}var H=Xo(We);H.Axios=Rt;H.CanceledError=ce;H.CancelToken=$o;H.isCancel=Ct;H.VERSION=gn;H.toFormData=Se;H.AxiosError=T;H.Cancel=H.CanceledError;H.all=function(e){return Promise.all(e)};H.spread=ci;H.isAxiosError=ui;H.mergeConfig=re;H.AxiosHeaders=V;H.formToJSON=t=>ln(c.isHTMLForm(t)?new FormData(t):t);H.getAdapter=fn.getAdapter;H.HttpStatusCode=qo;H.default=H;var hn=H;var{Axios:_d,AxiosError:Dd,CanceledError:Bd,isCancel:Md,CancelToken:Ud,VERSION:Fd,all:Hd,Cancel:Gd,isAxiosError:Vd,spread:Kd,toFormData:Wd,AxiosHeaders:zd,HttpStatusCode:Yd,formToJSON:jd,getAdapter:$d,mergeConfig:qd}=hn;var $e=class{constructor(e){this.currentToken=null;this.tokenProvider=null;this.requestHistory=new Map;this.WINDOW_MS=5e3;this.MAX_REQUESTS=30;this.axios=hn.create({baseURL:e.baseURL,timeout:e.timeout||6e4,headers:O({"Content-Type":"application/json"},e.headers)}),typeof setInterval!="undefined"&&setInterval(()=>this.cleanupHistory(),1e4),this.axios.interceptors.request.use(async n=>{var i,o;if(n.url)try{this.checkRequestLimit("".concat((i=n.method)==null?void 0:i.toUpperCase(),":").concat(n.url))}catch(r){return console.error("[SDK] \u{1F6D1} Request blocked by Circuit Breaker:",r),Promise.reject(r)}if(!n.skipAuth&&!this.currentToken&&this.tokenProvider)try{console.log("[SDK] Waiting for token...");let r=await this.tokenProvider();r&&(this.updateToken(r),n.headers["x-cms-token"]=r)}catch(r){console.error("[SDK] Failed to get token from provider:",r)}return!n.skipAuth&&this.currentToken&&(n.headers["x-cms-token"]=this.currentToken),console.log("[SDK] Making ".concat((o=n.method)==null?void 0:o.toUpperCase()," request to: ").concat(n.baseURL||"").concat(n.url)),n},n=>(console.error("[SDK] Request error:",n),Promise.reject(n instanceof Error?n:new Error(String(n))))),this.axios.interceptors.response.use(n=>n,n=>(console.error("[SDK] Response error:",n.message),Promise.reject(n instanceof Error?n:new Error(String(n)))))}setTokenProvider(e){this.tokenProvider=e}async get(e,n){return(await this.axios.get(e,n)).data}async post(e,n,i){return(await this.axios.post(e,n,i)).data}async put(e,n,i){return(await this.axios.put(e,n,i)).data}async patch(e,n,i){return(await this.axios.patch(e,n,i)).data}async delete(e,n){return(await this.axios.delete(e,n)).data}setHeader(e,n){this.axios.defaults.headers.common[e]=n}removeHeader(e){delete this.axios.defaults.headers.common[e]}updateToken(e){this.currentToken=e,e?this.setHeader("x-cms-token",e):(this.removeHeader("x-cms-token"),console.log("[SDK] Token removed from ApiClient"))}getCurrentToken(){return this.currentToken}updateConfig(e){e.baseURL&&(this.axios.defaults.baseURL=e.baseURL),e.timeout&&(this.axios.defaults.timeout=e.timeout),e.headers&&Object.assign(this.axios.defaults.headers.common,e.headers),console.log("[SDK] ApiClient configuration updated")}checkRequestLimit(e){let n=Date.now(),i=this.requestHistory.get(e);if(!i){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(n-i.firstRequestTime>this.WINDOW_MS){this.requestHistory.set(e,{count:1,firstRequestTime:n});return}if(i.count++,i.count>this.MAX_REQUESTS){let o=new Error("Circuit Breaker: Too many requests to ".concat(e," (").concat(i.count," in ").concat(this.WINDOW_MS,"ms)"));throw o.isCircuitBreaker=!0,o}}cleanupHistory(){let e=Date.now();for(let[n,i]of this.requestHistory.entries())e-i.firstRequestTime>this.WINDOW_MS&&this.requestHistory.delete(n)}};var Ta="2.0.6",ya=500,Jo="user-agent",et="",Zo="?",U={FUNCTION:"function",OBJECT:"object",STRING:"string",UNDEFINED:"undefined"},J="browser",ge="cpu",pe="device",se="engine",Q="os",Ze="result",h="name",g="type",E="vendor",A="version",$="architecture",Bt="major",m="model",_t="console",R="mobile",x="tablet",G="smarttv",de="wearable",En="xr",Dt="embedded",qe="inapp",yi="brands",Le="formFactors",Oi="fullVersionList",Qe="platform",Ri="platformVersion",Tn="bitness",Oe="sec-ch-ua",Oa=Oe+"-full-version-list",Ra=Oe+"-arch",va=Oe+"-"+Tn,Pa=Oe+"-form-factors",Na=Oe+"-"+R,xa=Oe+"-"+m,fr=Oe+"-"+Qe,ka=fr+"-version",pr=[yi,Oi,R,m,Qe,Ri,$,Le,Tn],An="Amazon",Xe="Apple",Qo="ASUS",er="BlackBerry",ke="Google",tr="Huawei",fi="Lenovo",nr="Honor",bn="LG",pi="Microsoft",gi="Motorola",mi="Nvidia",ir="OnePlus",hi="OPPO",vt="Samsung",or="Sharp",Pt="Sony",Ei="Xiaomi",Ai="Zebra",rr="Chrome",sr="Chromium",Ce="Chromecast",In="Edge",Nt="Firefox",xt="Opera",bi="Facebook",ar="Sogou",Je="Mobile ",kt=" Browser",Ci="Windows",La=typeof window!==U.UNDEFINED,Z=La&&window.navigator?window.navigator:void 0,Te=Z&&Z.userAgentData?Z.userAgentData:void 0,_a=function(t,e){var n={},i=e;if(!Sn(e)){i={};for(var o in e)for(var r in e[o])i[r]=e[o][r].concat(i[r]?i[r]:[])}for(var s in t)n[s]=i[s]&&i[s].length%2===0?i[s].concat(t[s]):t[s];return n},yn=function(t){for(var e={},n=0;n<t.length;n++)e[t[n].toUpperCase()]=t[n];return e},Ti=function(t,e){if(typeof t===U.OBJECT&&t.length>0){for(var n in t)if(ye(e)==ye(t[n]))return!0;return!1}return Mt(t)?ye(e)==ye(t):!1},Sn=function(t,e){for(var n in t)return/^(browser|cpu|device|engine|os)$/.test(n)||(e?Sn(t[n]):!1)},Mt=function(t){return typeof t===U.STRING},wi=function(t){if(t){for(var e=[],n=tt(/\\?\"/g,t).split(","),i=0;i<n.length;i++)if(n[i].indexOf(";")>-1){var o=Cn(n[i]).split(";v=");e[i]={brand:o[0],version:o[1]}}else e[i]=Cn(n[i]);return e}},ye=function(t){return Mt(t)?t.toLowerCase():t},Ii=function(t){return Mt(t)?tt(/[^\d\.]/g,t).split(".")[0]:void 0},me=function(t){for(var e in t)if(t.hasOwnProperty(e)){var n=t[e];typeof n==U.OBJECT&&n.length==2?this[n[0]]=n[1]:this[n]=void 0}return this},tt=function(t,e){return Mt(e)?e.replace(t,et):e},Lt=function(t){return tt(/\\?\"/g,t)},Cn=function(t,e){return t=tt(/^\s\s*/,String(t)),typeof e===U.UNDEFINED?t:t.substring(0,e)},Si=function(t,e){if(!(!t||!e))for(var n=0,i,o,r,s,a,l;n<e.length&&!a;){var u=e[n],d=e[n+1];for(i=o=0;i<u.length&&!a&&u[i];)if(a=u[i++].exec(t),a)for(r=0;r<d.length;r++)l=a[++o],s=d[r],typeof s===U.OBJECT&&s.length>0?s.length===2?typeof s[1]==U.FUNCTION?this[s[0]]=s[1].call(this,l):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]===U.FUNCTION&&!(s[1].exec&&s[1].test)?s.length>3?this[s[0]]=l?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=l?s[1].call(this,l,s[2]):void 0:s.length==3?this[s[0]]=l?l.replace(s[1],s[2]):void 0:s.length==4?this[s[0]]=l?s[3].call(this,l.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=l?s[3].apply(this,[l.replace(s[1],s[2])].concat(s.slice(4))):void 0)):this[s]=l||void 0;n+=2}},fe=function(t,e){for(var n in e)if(typeof e[n]===U.OBJECT&&e[n].length>0){for(var i=0;i<e[n].length;i++)if(Ti(e[n][i],t))return n===Zo?void 0:n}else if(Ti(e[n],t))return n===Zo?void 0:n;return e.hasOwnProperty("*")?e["*"]:t},lr={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2","8.1":"6.3",10:["6.4","10.0"],NT:""},cr={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Da={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},ur={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[A,[h,Je+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[A,[h,In+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[A,[h,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[h,A],[/opios[\/ ]+([\w\.]+)/i],[A,[h,xt+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[A,[h,xt+" GX"]],[/\bopr\/([\w\.]+)/i],[A,[h,xt]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[A,[h,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[A,[h,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,/(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[h,A],[/quark(?:pc)?\/([-\w\.]+)/i],[A,[h,"Quark"]],[/\bddg\/([\w\.]+)/i],[A,[h,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[A,[h,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[A,[h,"WeChat"]],[/konqueror\/([\w\.]+)/i],[A,[h,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[A,[h,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[A,[h,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[A,[h,"Smart "+fi+kt]],[/(avast|avg)\/([\w\.]+)/i],[[h,/(.+)/,"$1 Secure"+kt],A],[/\bfocus\/([\w\.]+)/i],[A,[h,Nt+" Focus"]],[/\bopt\/([\w\.]+)/i],[A,[h,xt+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[A,[h,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[A,[h,"Dolphin"]],[/coast\/([\w\.]+)/i],[A,[h,xt+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[A,[h,"MIUI"+kt]],[/fxios\/([\w\.-]+)/i],[A,[h,Je+Nt]],[/\bqihoobrowser\/?([\w\.]*)/i],[A,[h,"360"]],[/\b(qq)\/([\w\.]+)/i],[[h,/(.+)/,"$1Browser"],A],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[h,/(.+)/,"$1"+kt],A],[/samsungbrowser\/([\w\.]+)/i],[A,[h,vt+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[A,[h,ar+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[h,ar+" Mobile"],A],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[h,A],[/(lbbrowser|rekonq)/i],[h],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[A,h],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[h,bi],A,[g,qe]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[h,A,[g,qe]],[/\bgsa\/([\w\.]+) .*safari\//i],[A,[h,"GSA"],[g,qe]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[A,[h,"TikTok"],[g,qe]],[/\[(linkedin)app\]/i],[h,[g,qe]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[h,/(.+)/,"Zalo"],A,[g,qe]],[/(chromium)[\/ ]([-\w\.]+)/i],[h,A],[/headlesschrome(?:\/([\w\.]+)| )/i],[A,[h,rr+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[A,[h,In+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[h,rr+" WebView"],A],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[A,[h,"Android"+kt]],[/chrome\/([\w\.]+) mobile/i],[A,[h,Je+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[h,A],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[A,[h,Je+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[h,Je+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[A,h],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[h,[A,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[h,A],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[h,Je+Nt],A],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[h,"Netscape"],A],[/(wolvic|librewolf)\/([\w\.]+)/i],[h,A],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[A,[h,Nt+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[h,[A,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[h,[A,/[^\d\.]+./,et]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[$,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[$,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[$,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[$,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[$,"arm"]],[/ sun4\w[;\)]/i],[[$,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[$,/ower/,et,ye]],[/mc680.0/i],[[$,"68k"]],[/winnt.+\[axp/i],[[$,"alpha"]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[m,[E,vt],[g,x]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[m,[E,vt],[g,R]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[m,[E,Xe],[g,R]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[m,[E,Xe],[g,x]],[/(macintosh);/i],[m,[E,Xe]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[E,or],[g,R]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[m,[E,nr],[g,x]],[/honor([-\w ]+)[;\)]/i],[m,[E,nr],[g,R]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[m,[E,tr],[g,x]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[m,[E,tr],[g,R]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[m,/_/g," "],[E,Ei],[g,x]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[m,/_/g," "],[E,Ei],[g,R]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[m,[E,ir],[g,R]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[E,hi],[g,R]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[m,[E,fe,{OnePlus:["203","304","403","404","413","415"],"*":hi}],[g,x]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[m,[E,"BLU"],[g,R]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[E,"Vivo"],[g,R]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[m,[E,"Realme"],[g,R]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[m,[E,fi],[g,x]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[m,[E,fi],[g,R]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[m,[E,gi],[g,R]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[E,gi],[g,x]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[E,bn],[g,x]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[E,bn],[g,R]],[/(nokia) (t[12][01])/i],[E,m,[g,x]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[m,/_/g," "],[g,R],[E,"Nokia"]],[/(pixel (c|tablet))\b/i],[m,[E,ke],[g,x]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[m,[E,ke],[g,R]],[/(google) (pixelbook( go)?)/i],[E,m],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[m,[E,Pt],[g,R]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[E,Pt],[g,x]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[E,An],[g,x]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[E,An],[g,R]],[/(playbook);[-\w\),; ]+(rim)/i],[m,E,[g,x]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[m,[E,er],[g,R]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[E,Qo],[g,x]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[E,Qo],[g,R]],[/(nexus 9)/i],[m,[E,"HTC"],[g,x]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[E,[m,/_/g," "],[g,R]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[m,[E,"TCL"],[g,x]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[m,[E,"TCL"],[g,R]],[/(itel) ((\w+))/i],[[E,ye],m,[g,fe,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[E,"Acer"],[g,x]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[E,"Meizu"],[g,R]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[m,[E,"Ulefone"],[g,R]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[m,[E,"Energizer"],[g,R]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[m,[E,"Cat"],[g,R]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[m,[E,"Smartfren"],[g,R]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[m,[E,"Nothing"],[g,R]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[m,[E,"Archos"],[g,x]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[m,[E,"Archos"],[g,R]],[/; (n159v)/i],[m,[E,"HMD"],[g,R]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[E,m,[g,x]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i,/(hisense) ([ehv][\w ]+)\)/i,/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i],[E,m,[g,R]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[E,m,[g,x]],[/(surface duo)/i],[m,[E,pi],[g,x]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[E,"Fairphone"],[g,R]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[m,[E,mi],[g,x]],[/(sprint) (\w+)/i],[E,m,[g,R]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[E,pi],[g,R]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[E,Ai],[g,x]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[E,Ai],[g,R]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[E,[g,G]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[E,vt],[g,G]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[E,m,[g,G]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[E,bn],[g,G]],[/(apple) ?tv/i],[E,[m,Xe+" TV"],[g,G]],[/crkey.*devicetype\/chromecast/i],[[m,Ce+" Third Generation"],[E,ke],[g,G]],[/crkey.*devicetype\/([^/]*)/i],[[m,/^/,"Chromecast "],[E,ke],[g,G]],[/fuchsia.*crkey/i],[[m,Ce+" Nest Hub"],[E,ke],[g,G]],[/crkey/i],[[m,Ce],[E,ke],[g,G]],[/(portaltv)/i],[m,[E,bi],[g,G]],[/droid.+aft(\w+)( bui|\))/i],[m,[E,An],[g,G]],[/(shield \w+ tv)/i],[m,[E,mi],[g,G]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[E,or],[g,G]],[/(bravia[\w ]+)( bui|\))/i],[m,[E,Pt],[g,G]],[/(mi(tv|box)-?\w+) bui/i],[m,[E,Ei],[g,G]],[/Hbbtv.*(technisat) (.*);/i],[E,m,[g,G]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[E,/.+\/(\w+)/,"$1",fe,{LG:"lge"}],[m,Cn],[g,G]],[/(playstation \w+)/i],[m,[E,Pt],[g,_t]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[E,pi],[g,_t]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[E,m,[g,_t]],[/droid.+; (shield)( bui|\))/i],[m,[E,mi],[g,_t]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[m,[E,vt],[g,de]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[E,m,[g,de]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[m,[E,hi],[g,de]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[E,Xe],[g,de]],[/(opwwe\d{3})/i],[m,[E,ir],[g,de]],[/(moto 360)/i],[m,[E,gi],[g,de]],[/(smartwatch 3)/i],[m,[E,Pt],[g,de]],[/(g watch r)/i],[m,[E,bn],[g,de]],[/droid.+; (wt63?0{2,3})\)/i],[m,[E,Ai],[g,de]],[/droid.+; (glass) \d/i],[m,[E,ke],[g,En]],[/(pico) ([\w ]+) os\d/i],[E,m,[g,En]],[/(quest( \d| pro)?s?).+vr/i],[m,[E,bi],[g,En]],[/mobile vr; rv.+firefox/i],[[g,En]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[E,[g,Dt]],[/(aeobc)\b/i],[m,[E,An],[g,Dt]],[/(homepod).+mac os/i],[m,[E,Xe],[g,Dt]],[/windows iot/i],[[g,Dt]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[m,[g,G]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[g,G]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[m,[g,fe,{mobile:"Mobile",xr:"VR","*":x}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[g,x]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[g,R]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[m,[E,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[A,[h,In+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[h,A],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[A,[h,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[h,A],[/ladybird\//i],[[h,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[A,h]],os:[[/(windows nt) (6\.[23]); arm/i],[[h,/N/,"R"],[A,fe,lr]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[h,A],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[A,/(;|\))/g,"",fe,lr],[h,Ci]],[/(windows ce)\/?([\d\.]*)/i],[h,A],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w\.]+)/i,/cfnetwork\/.+darwin/i],[[A,/_/g,"."],[h,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[h,"macOS"],[A,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[A,[h,Ce+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[A,[h,Ce+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[A,[h,Ce+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[A,[h,Ce+" Linux"]],[/crkey\/([\d\.]+)/i],[A,[h,Ce]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[A,h],[/(ubuntu) ([\w\.]+) like android/i],[[h,/(.+)/,"$1 Touch"],A],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[h,A],[/\(bb(10);/i],[A,[h,er]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[A,[h,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[A,[h,Nt+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[A,[h,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[A,fe,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[h,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[A,[h,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[h,"Chrome OS"],A],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[h,A],[/(sunos) ?([\d\.]*)/i],[[h,"Solaris"],A],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[h,A]]},wn=function(){var t={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return me.call(t.init,[[J,[h,A,Bt,g]],[ge,[$]],[pe,[g,m,E]],[se,[h,A]],[Q,[h,A]]]),me.call(t.isIgnore,[[J,[A,Bt]],[se,[A]],[Q,[A]]]),me.call(t.isIgnoreRgx,[[J,/ ?browser$/i],[Q,/ ?os$/i]]),me.call(t.toString,[[J,[h,A]],[ge,[$]],[pe,[E,m]],[se,[h,A]],[Q,[h,A]]]),t}(),Ba=function(t,e){var n=wn.init[e],i=wn.isIgnore[e]||0,o=wn.isIgnoreRgx[e]||0,r=wn.toString[e]||0;function s(){me.call(this,n)}return s.prototype.getItem=function(){return t},s.prototype.withClientHints=function(){return Te?Te.getHighEntropyValues(pr).then(function(a){return t.setCH(new gr(a,!1)).parseCH().get()}):t.parseCH().get()},s.prototype.withFeatureCheck=function(){return t.detectFeature().get()},e!=Ze&&(s.prototype.is=function(a){var l=!1;for(var u in this)if(this.hasOwnProperty(u)&&!Ti(i,u)&&ye(o?tt(o,this[u]):this[u])==ye(o?tt(o,a):a)){if(l=!0,a!=U.UNDEFINED)break}else if(a==U.UNDEFINED&&l){l=!l;break}return l},s.prototype.toString=function(){var a=et;for(var l in r)typeof this[r[l]]!==U.UNDEFINED&&(a+=(a?" ":et)+this[r[l]]);return a||U.UNDEFINED}),Te||(s.prototype.then=function(a){var l=this,u=function(){for(var p in l)l.hasOwnProperty(p)&&(this[p]=l[p])};u.prototype={is:s.prototype.is,toString:s.prototype.toString};var d=new u;return a(d),d}),new s};function gr(t,e){if(t=t||{},me.call(this,pr),e)me.call(this,[[yi,wi(t[Oe])],[Oi,wi(t[Oa])],[R,/\?1/.test(t[Na])],[m,Lt(t[xa])],[Qe,Lt(t[fr])],[Ri,Lt(t[ka])],[$,Lt(t[Ra])],[Le,wi(t[Pa])],[Tn,Lt(t[va])]]);else for(var n in t)this.hasOwnProperty(n)&&typeof t[n]!==U.UNDEFINED&&(this[n]=t[n])}function dr(t,e,n,i){return this.get=function(o){return o?this.data.hasOwnProperty(o)?this.data[o]:void 0:this.data},this.set=function(o,r){return this.data[o]=r,this},this.setCH=function(o){return this.uaCH=o,this},this.detectFeature=function(){if(Z&&Z.userAgent==this.ua)switch(this.itemType){case J:Z.brave&&typeof Z.brave.isBrave==U.FUNCTION&&this.set(h,"Brave");break;case pe:!this.get(g)&&Te&&Te[R]&&this.set(g,R),this.get(m)=="Macintosh"&&Z&&typeof Z.standalone!==U.UNDEFINED&&Z.maxTouchPoints&&Z.maxTouchPoints>2&&this.set(m,"iPad").set(g,x);break;case Q:!this.get(h)&&Te&&Te[Qe]&&this.set(h,Te[Qe]);break;case Ze:var o=this.data,r=function(s){return o[s].getItem().detectFeature().get()};this.set(J,r(J)).set(ge,r(ge)).set(pe,r(pe)).set(se,r(se)).set(Q,r(Q))}return this},this.parseUA=function(){switch(this.itemType!=Ze&&Si.call(this.data,this.ua,this.rgxMap),this.itemType){case J:this.set(Bt,Ii(this.get(A)));break;case Q:if(this.get(h)=="iOS"&&this.get(A)=="18.6"){var o=/\) Version\/([\d\.]+)/.exec(this.ua);o&&parseInt(o[1].substring(0,2),10)>=26&&this.set(A,o[1])}break}return this},this.parseCH=function(){var o=this.uaCH,r=this.rgxMap;switch(this.itemType){case J:case se:var s=o[Oi]||o[yi],a;if(s)for(var l=0;l<s.length;l++){var u=s[l].brand||s[l],d=s[l].version;this.itemType==J&&!/not.a.brand/i.test(u)&&(!a||/Chrom/.test(a)&&u!=sr||a==In&&/WebView2/.test(u))&&(u=fe(u,Da),a=this.get(h),a&&!/Chrom/.test(a)&&/Chrom/.test(u)||this.set(h,u).set(A,d).set(Bt,Ii(d)),a=u),this.itemType==se&&u==sr&&this.set(A,d)}break;case ge:var p=o[$];p&&(p&&o[Tn]=="64"&&(p+="64"),Si.call(this.data,p+";",r));break;case pe:if(o[R]&&this.set(g,R),o[m]&&(this.set(m,o[m]),!this.get(g)||!this.get(E))){var I={};Si.call(I,"droid 9; "+o[m]+")",r),!this.get(g)&&I.type&&this.set(g,I.type),!this.get(E)&&I.vendor&&this.set(E,I.vendor)}if(o[Le]){var w;if(typeof o[Le]!="string")for(var f=0;!w&&f<o[Le].length;)w=fe(o[Le][f++],cr);else w=fe(o[Le],cr);this.set(g,w)}break;case Q:var C=o[Qe];if(C){var b=o[Ri];C==Ci&&(b=parseInt(Ii(b),10)>=13?"11":"10"),this.set(h,C).set(A,b)}this.get(h)==Ci&&o[m]=="Xbox"&&this.set(h,"Xbox").set(A,void 0);break;case Ze:var v=this.data,L=function(y){return v[y].getItem().setCH(o).parseCH().get()};this.set(J,L(J)).set(ge,L(ge)).set(pe,L(pe)).set(se,L(se)).set(Q,L(Q))}return this},me.call(this,[["itemType",t],["ua",e],["uaCH",i],["rgxMap",n],["data",Ba(this,t)]]),this}function ee(t,e,n){if(typeof t===U.OBJECT?(Sn(t,!0)?(typeof e===U.OBJECT&&(n=e),e=t):(n=t,e=void 0),t=void 0):typeof t===U.STRING&&!Sn(e,!0)&&(n=e,e=void 0),n)if(typeof n.append===U.FUNCTION){var i={};n.forEach(function(d,p){i[String(p).toLowerCase()]=d}),n=i}else{var o={};for(var r in n)n.hasOwnProperty(r)&&(o[String(r).toLowerCase()]=n[r]);n=o}if(!(this instanceof ee))return new ee(t,e,n).getResult();var s=typeof t===U.STRING?t:n&&n[Jo]?n[Jo]:Z&&Z.userAgent?Z.userAgent:et,a=new gr(n,!0),l=e?_a(ur,e):ur,u=function(d){return d==Ze?function(){return new dr(d,s,l,a).set("ua",s).set(J,this.getBrowser()).set(ge,this.getCPU()).set(pe,this.getDevice()).set(se,this.getEngine()).set(Q,this.getOS()).get()}:function(){return new dr(d,s,l[d],a).parseUA().get()}};return me.call(this,[["getBrowser",u(J)],["getCPU",u(ge)],["getDevice",u(pe)],["getEngine",u(se)],["getOS",u(Q)],["getResult",u(Ze)],["getUA",function(){return s}],["setUA",function(d){return Mt(d)&&(s=Cn(d,ya)),this}]]).setUA(s),this}ee.VERSION=Ta;ee.BROWSER=yn([h,A,Bt,g]);ee.CPU=yn([$]);ee.DEVICE=yn([m,E,g,_t,R,G,x,de,Dt]);ee.ENGINE=ee.OS=yn([h,A]);var rf=Object.freeze({115:"115",2345:"2345",360:"360",ALIPAY:"Alipay",AMAYA:"Amaya",ANDROID:"Android Browser",ARORA:"Arora",AVANT:"Avant",AVAST:"Avast Secure Browser",AVG:"AVG Secure Browser",BAIDU:"Baidu Browser",BASILISK:"Basilisk",BING:"Bing",BLAZER:"Blazer",BOLT:"Bolt",BOWSER:"Bowser",BRAVE:"Brave",CAMINO:"Camino",CHIMERA:"Chimera",CHROME:"Chrome",CHROME_HEADLESS:"Chrome Headless",CHROME_MOBILE:"Mobile Chrome",CHROME_WEBVIEW:"Chrome WebView",CHROMIUM:"Chromium",COBALT:"Cobalt",COC_COC:"Coc Coc",CONKEROR:"Conkeror",DAUM:"Daum",DILLO:"Dillo",DOLPHIN:"Dolphin",DOOBLE:"Dooble",DORIS:"Doris",DRAGON:"Dragon",DUCKDUCKGO:"DuckDuckGo",ECOSIA:"Ecosia",EDGE:"Edge",EDGE_WEBVIEW:"Edge WebView",EDGE_WEBVIEW2:"Edge WebView2",EPIPHANY:"Epiphany",FACEBOOK:"Facebook",FALKON:"Falkon",FIREBIRD:"Firebird",FIREFOX:"Firefox",FIREFOX_FOCUS:"Firefox Focus",FIREFOX_MOBILE:"Mobile Firefox",FIREFOX_REALITY:"Firefox Reality",FENNEC:"Fennec",FLOCK:"Flock",FLOW:"Flow",GO:"GoBrowser",GOOGLE_SEARCH:"GSA",HELIO:"Helio",HEYTAP:"HeyTap",HONOR:"Honor",HUAWEI:"Huawei Browser",ICAB:"iCab",ICE:"ICE Browser",ICEAPE:"IceApe",ICECAT:"IceCat",ICEDRAGON:"IceDragon",ICEWEASEL:"IceWeasel",IE:"IE",INSTAGRAM:"Instagram",IRIDIUM:"Iridium",IRON:"Iron",JASMINE:"Jasmine",KONQUEROR:"Konqueror",KAKAO:"KakaoTalk",KHTML:"KHTML",K_MELEON:"K-Meleon",KLAR:"Klar",KLARNA:"Klarna",KINDLE:"Kindle",LENOVO:"Smart Lenovo Browser",LADYBIRD:"Ladybird",LG:"LG Browser",LIBREWOLF:"LibreWolf",LIEBAO:"LBBROWSER",LINE:"Line",LINKEDIN:"LinkedIn",LINKS:"Links",LUNASCAPE:"Lunascape",LYNX:"Lynx",MAEMO:"Maemo Browser",MAXTHON:"Maxthon",MIDORI:"Midori",MINIMO:"Minimo",MIUI:"MIUI Browser",MOZILLA:"Mozilla",MOSAIC:"Mosaic",NAVER:"Naver",NETFRONT:"NetFront",NETSCAPE:"Netscape",NETSURF:"Netsurf",NOKIA:"Nokia Browser",OBIGO:"Obigo",OCULUS:"Oculus Browser",OMNIWEB:"OmniWeb",OPERA:"Opera",OPERA_COAST:"Opera Coast",OPERA_GX:"Opera GX",OPERA_MINI:"Opera Mini",OPERA_MOBI:"Opera Mobi",OPERA_TABLET:"Opera Tablet",OPERA_TOUCH:"Opera Touch",OTTER:"Otter",OVI:"OviBrowser",PALEMOON:"PaleMoon",PHANTOMJS:"PhantomJS",PHOENIX:"Phoenix",PICOBROWSER:"Pico Browser",POLARIS:"Polaris",PUFFIN:"Puffin",QQ:"QQBrowser",QQ_LITE:"QQBrowserLite",QUARK:"Quark",QUPZILLA:"QupZilla",QUTEBROWSER:"qutebrowser",QWANT:"Qwant",REKONQ:"rekonq",ROCKMELT:"Rockmelt",SAFARI:"Safari",SAFARI_MOBILE:"Mobile Safari",SAILFISH:"Sailfish Browser",SAMSUNG:"Samsung Internet",SEAMONKEY:"SeaMonkey",SILK:"Silk",SKYFIRE:"Skyfire",SLEIPNIR:"Sleipnir",SLIMBOAT:"SlimBoat",SLIMBROWSER:"SlimBrowser",SLIMJET:"Slimjet",SNAPCHAT:"Snapchat",SOGOU_EXPLORER:"Sogou Explorer",SOGOU_MOBILE:"Sogou Mobile",SURF:"Surf",SWIFTFOX:"Swiftfox",TESLA:"Tesla",TIKTOK:"TikTok",TIZEN:"Tizen Browser",TWITTER:"Twitter",UC:"UCBrowser",UP:"UP.Browser",VIVALDI:"Vivaldi",VIVO:"Vivo Browser",W3M:"w3m",WATERFOX:"Waterfox",WEBKIT:"WebKit",WECHAT:"WeChat",WEIBO:"Weibo",WHALE:"Whale",WOLVIC:"Wolvic",YANDEX:"Yandex",ZALO:"Zalo"});var Ut=Object.freeze({CRAWLER:"crawler",CLI:"cli",EMAIL:"email",FETCHER:"fetcher",INAPP:"inapp",MEDIAPLAYER:"mediaplayer",LIBRARY:"library"}),mr=Object.freeze({"68K":"68k",ALPHA:"alpha",ARM:"arm",ARM_64:"arm64",ARM_HF:"armhf",AVR:"avr",AVR_32:"avr32",IA64:"ia64",IRIX:"irix",IRIX_64:"irix64",MIPS:"mips",MIPS_64:"mips64",PA_RISC:"pa-risc",PPC:"ppc",SPARC:"sparc",SPARC_64:"sparc64",X86:"ia32",X86_64:"amd64"});var sf=Object.freeze({CONSOLE:"console",DESKTOP:"desktop",EMBEDDED:"embedded",MOBILE:"mobile",SMARTTV:"smarttv",TABLET:"tablet",WEARABLE:"wearable",XR:"xr"});var af=Object.freeze({ACER:"Acer",ADVAN:"Advan",ALCATEL:"Alcatel",APPLE:"Apple",AMAZON:"Amazon",ARCHOS:"Archos",ASUS:"ASUS",ATT:"AT&T",BENQ:"BenQ",BLACKBERRY:"BlackBerry",BLU:"BLU",CAT:"Cat",DELL:"Dell",ENERGIZER:"Energizer",ESSENTIAL:"Essential",FACEBOOK:"Facebook",FAIRPHONE:"Fairphone",GEEKSPHONE:"GeeksPhone",GENERIC:"Generic",GOOGLE:"Google",HISENSE:"Hisense",HMD:"HMD",HP:"HP",HTC:"HTC",HUAWEI:"Huawei",IMO:"IMO",INFINIX:"Infinix",ITEL:"itel",JOLLA:"Jolla",KOBO:"Kobo",LAVA:"Lava",LENOVO:"Lenovo",LG:"LG",MEIZU:"Meizu",MICROMAX:"Micromax",MICROSOFT:"Microsoft",MOTOROLA:"Motorola",NEXIAN:"Nexian",NINTENDO:"Nintendo",NOKIA:"Nokia",NOTHING:"Nothing",NVIDIA:"Nvidia",ONEPLUS:"OnePlus",OPPO:"OPPO",OUYA:"Ouya",PALM:"Palm",PANASONIC:"Panasonic",PEBBLE:"Pebble",PHILIPS:"Philips",PICO:"Pico",POLYTRON:"Polytron",REALME:"Realme",RETROID:"Retroid",RIM:"RIM",ROKU:"Roku",SAMSUNG:"Samsung",SHARP:"Sharp",SIEMENS:"Siemens",SMARTFREN:"Smartfren",SONY:"Sony",SPRINT:"Sprint",TCL:"TCL",TECHNISAT:"TechniSAT",TECNO:"TECNO",TESLA:"Tesla",ULEFONE:"Ulefone",VIVO:"Vivo",VIZIO:"Vizio",VODAFONE:"Vodafone",WIKO:"Wiko",XBOX:"Xbox",XIAOMI:"Xiaomi",ZEBRA:"Zebra",ZTE:"ZTE"});var hr=Object.freeze({AMAYA:"Amaya",ARKWEB:"ArkWeb",BLINK:"Blink",EDGEHTML:"EdgeHTML",FLOW:"Flow",GECKO:"Gecko",GOANNA:"Goanna",ICAB:"iCab",KHTML:"KHTML",LIBWEB:"LibWeb",LINKS:"Links",LYNX:"Lynx",NETFRONT:"NetFront",NETSURF:"NetSurf",PRESTO:"Presto",SERVO:"Servo",TASMAN:"Tasman",TRIDENT:"Trident",W3M:"w3m",WEBKIT:"WebKit"});var Er=Object.freeze({AIX:"AIX",AMIGA_OS:"Amiga OS",ANDROID:"Android",ANDROID_X86:"Android-x86",ARCAOS:"ArcaOS",ARCH:"Arch",BADA:"Bada",BEOS:"BeOS",BLACKBERRY:"BlackBerry",CENTOS:"CentOS",CHROME_OS:"Chrome OS",CHROMECAST:"Chromecast",CHROMECAST_ANDROID:"Chromecast Android",CHROMECAST_FUCHSIA:"Chromecast Fuchsia",CHROMECAST_LINUX:"Chromecast Linux",CHROMECAST_SMARTSPEAKER:"Chromecast SmartSpeaker",CONTIKI:"Contiki",DEBIAN:"Debian",DEEPIN:"Deepin",DRAGONFLY:"DragonFly",ELEMENTARY_OS:"elementary OS",FEDORA:"Fedora",FIREFOX_OS:"Firefox OS",FREEBSD:"FreeBSD",FUCHSIA:"Fuchsia",GENTOO:"Gentoo",GHOSTBSD:"GhostBSD",GNU:"GNU",HAIKU:"Haiku",HARMONYOS:"HarmonyOS",HP_UX:"HP-UX",HURD:"Hurd",IOS:"iOS",JOLI:"Joli",KAIOS:"KaiOS",KNOPPIX:"Knoppix",KUBUNTU:"Kubuntu",LINPUS:"Linpus",LINSPIRE:"Linspire",LINUX:"Linux",MACOS:"macOS",MAEMO:"Maemo",MAGEIA:"Mageia",MANDRIVA:"Mandriva",MANJARO:"Manjaro",MEEGO:"MeeGo",MINIX:"Minix",MINT:"Mint",MORPH_OS:"Morph OS",NETBSD:"NetBSD",NETRANGE:"NetRange",NETTV:"NetTV",NINTENDO:"Nintendo",OPENHARMONY:"OpenHarmony",OPENBSD:"OpenBSD",OPENVMS:"OpenVMS",OS2:"OS/2",PALM:"Palm",PC_BSD:"PC-BSD",PCLINUXOS:"PCLinuxOS",PICO:"Pico",PLAN9:"Plan9",PLAYSTATION:"PlayStation",QNX:"QNX",RASPBIAN:"Raspbian",REDHAT:"RedHat",RIM_TABLET_OS:"RIM Tablet OS",RISC_OS:"RISC OS",SABAYON:"Sabayon",SAILFISH:"Sailfish",SERENITYOS:"SerenityOS",SERIES40:"Series40",SLACKWARE:"Slackware",SOLARIS:"Solaris",SUSE:"SUSE",SYMBIAN:"Symbian",TIZEN:"Tizen",UBUNTU:"Ubuntu",UBUNTU_TOUCH:"Ubuntu Touch",UNIX:"Unix",VECTORLINUX:"VectorLinux",WATCHOS:"watchOS",WEBOS:"WebOS",WINDOWS:"Windows",WINDOWS_CE:"Windows CE",WINDOWS_IOT:"Windows IoT",WINDOWS_MOBILE:"Windows Mobile",WINDOWS_PHONE:"Windows Phone",WINDOWS_RT:"Windows RT",XBOX:"Xbox",XUBUNTU:"Xubuntu",ZENWALK:"Zenwalk"});var Ar=Object.freeze({BrowserName:{CLI:{CURL:"curl",ELINKS:"ELinks",HTTPIE:"HTTPie",LYNX:"Lynx",WGET:"Wget"},Crawler:{AHREFS_BOT:"AhrefsBot",AI2_BOT:"AI2Bot",AIHIT_BOT:"aiHitBot",ALGOLIA_CRAWLER:"Algolia Crawler",APPLE_BOT:"Applebot",APPLE_BOT_EXTENDED:"Applebot-Extended",ASK_TEOMA:"Teoma",AMAZON_BOT:"Amazonbot",AMAZON_CONTXBOT:"contxbot",ANTHROPIC_AI:"anthropic-ai",ANTHROPIC_CLAUDE_BOT:"ClaudeBot",ANTHROPIC_CLAUDE_SEARCHBOT:"Claude-SearchBot",ANTHROPIC_CLAUDE_WEB:"Claude-Web",ARCHIVEORG_BOT:"archive.org_bot",BAIDU_ADS:"Baidu-ADS",BAIDU_SPIDER:"Baiduspider",BAIDU_SPIDER_ADS:"Baiduspider-ads",BAIDU_SPIDER_CPRO:"Baiduspider-cpro",BAIDU_SPIDER_FAVO:"Baiduspider-favo",BAIDU_SPIDER_IMAGE:"Baiduspider-image",BAIDU_SPIDER_NEWS:"Baiduspider-news",BAIDU_SPIDER_RENDER:"Baiduspider-render",BAIDU_SPIDER_VIDEO:"Baiduspider-video",BLEX_BOT:"BLEXBot",BOTIFY:"botify",BRAVE_BOT:"Bravebot",BYTEDANCE_BYTESPIDER:"Bytespider",BYTEDANCE_TIKTOKSPIDER:"TikTokSpider",COMMON_CRAWL_CCBOT:"CCBot",COCCOC_BOT_WEB:"coccocbot-web",COCCOC_BOT_IMAGE:"coccocbot-image",COHERE_TRAINING_DATA_CRAWLER:"cohere-training-data-crawler",COTOYOGI:"Cotoyogi",COVEO_BOT:"Coveobot",CRITEO_BOT:"CriteoBot",DATAFORSEO_BOT:"DataForSeoBot",DAUM:"Daum",DAUM_DAUMOA:"Daumoa",DAUM_DAUMOA_IMAGE:"Daumoa-image",DEEPSEEK_BOT:"DeepSeekBot",DIFFBOT:"Diffbot",DUCKDUCKGO_BOT:"DuckDuckBot",DUCKDUCKGO_FAVICONS_BOT:"DuckDuckGo-Favicons-Bot",ELASTIC:"Elastic",ELASTIC_SWIFTYPE_BOT:"Swiftbot",EXALEAD_EXABOT:"Exabot",FIRECRAWL_AGENT:"FirecrawlAgent",FREESPOKE:"Freespoke",GOOGLE_ADSBOT:"AdsBot-Google",GOOGLE_ADSBOT_MOBILE:"Adsbot-Google-Mobile",GOOGLE_ADSENSE:"AdSense",GOOGLE_APIS:"APIs-Google",GOOGLE_BOT:"Googlebot",GOOGLE_BOT_IMAGE:"Googlebot-Image",GOOGLE_BOT_NEWS:"Googlebot-News",GOOGLE_BOT_VIDEO:"Googlebot-Video",GOOGLE_CLOUDVERTEXBOT:"Google-CloudVertexBot",GOOGLE_EXTENDED:"Google-Extended",GOOGLE_INSPECTIONTOOL:"Google-InspectionTool",GOOGLE_OTHER:"GoogleOther",GOOGLE_OTHER_IMAGE:"GoogleOther-Image",GOOGLE_OTHER_VIDEO:"GoogleOther-Video",GOOGLE_SAFETY:"Google-Safety",GOOGLE_STOREBOT:"Storebot-Google",HIVE_IMAGESIFTBOT:"ImagesiftBot",HUAWEI_PANGUBOT:"PanguBot",HUAWEI_PETALBOT:"PetalBot",HUGGINGFACE_BOT:"HuggingFace-Bot",HUNTER_VELENPUBLICWEBCRAWLER:"VelenPublicWebCrawler",IA_ARCHIVER:"ia_archiver",IASK_BOT:"iAskBot",KAGI_BOT:"Kagibot",KANGAROO_BOT:"Kangaroo Bot",LINE_SPIDER:"Linespider",LINKEDIN_BOT:"LinkedInBot",MAGPIE_CRAWLER:"magpie-crawler",MARGINALIA:"marginalia",META_EXTERNALAGENT:"meta-externalagent",META_FACEBOOKBOT:"FacebookBot",META_FACEBOOKCATALOG:"facebookcatalog",META_FACEBOOKEXTERNALHIT:"facebookexternalhit",MAJESTIC_MJ12BOT:"MJ12bot",MICROSOFT_BINGBOT:"Bingbot",MICROSOFT_MSNBOT:"msnbot",MICROSOFT_ADIDXBOT:"adidxbot",MOJEEK_BOT:"MojeekBot",MOZ_DOTBOT:"DotBot",ONCRAWL:"OnCrawl",ONESPOT_SCRAPERBOT:"Onespot-ScraperBot",OPENAI_GPTBOT:"GPTBot",OPENAI_SEARCH_BOT:"OAI-SearchBot",PERPLEXITY_BOT:"PerplexityBot",QIHOO_360_SPIDER:"360Spider",QWANT_BOT:"Qwantbot",QWANT_BOT_NEWS:"Qwantbot-news",REPLICATE_BOT:"Replicate-Bot",RUNPOD_BOT:"RunPod-Bot",SB_INTUITIONS_BOT:"SBIntuitionsBot",SEEKPORT_BOT:"SeekportBot",SEMRUSH_BOT:"SemrushBot",SEMRUSH_BOT_BACKLINK:"SemrushBot-BA",SEMRUSH_BOT_CONTENTSHAKE:"SemrushBot-OCOB",SEMRUSH_BOT_SEO_CHECKER:"SemrushBot-SI",SEZNAM_BOT:"SeznamBot",SITEIMPROVE:"Siteimprove",SOGOU_PIC_SPIDER:"Sogou Pic Spider",SOGOU_WEB_SPIDER:"Sogou web spider",STARTPAGE:"Startpage",SURLY_BOT:"SurdotlyBot",TIMPI_BOT:"Timpibot",TOGETHER_BOT:"Together-Bot",TURNITIN_BOT:"TurnitinBot",TWIN_AGENT:"TwinAgent",VERCEL_V0BOT:"v0bot",WEBZIO:"webzio",WEBZIO_EXTENDED:"Webzio-Extended",WEBZIO_OMGILI:"omgili",WEBZIO_OMGILI_BOT:"omgilibot",XAI_BOT:"xAI-Bot",YAHOO_JAPAN:"Y!J-BRW",YAHOO_SLURP:"Yahoo! Slurp",YANDEX_ACCESSIBILITY_BOT:"YandexAccessibilityBot",YANDEX_ADDITIONAL_BOT:"YandexAdditionalBot",YANDEX_ADNET:"YandexAdNet",YANDEX_BLOGS:"YandexBlogs",YANDEX_BOT:"YandexBot",YANDEX_BOT_MIRRORDETECTOR:"YandexBot MirrorDetector",YANDEX_COMBOT:"YandexComBot",YANDEX_FAVICONS:"YandexFavicons",YANDEX_IMAGE_RESIZER:"YandexImageResizer",YANDEX_IMAGES:"YandexImages",YANDEX_MARKET:"YandexMarket",YANDEX_MEDIA:"YandexMedia",YANDEX_METRIKA:"YandexMetrika",YANDEX_MOBILE_BOT:"YandexMobileBot",YANDEX_MOBILE_SCREENSHOT_BOT:"YandexMobileScreenShotBot",YANDEX_NEWS:"YandexNews",YANDEX_ONTODB:"YandexOntoDB",YANDEX_ONTODB_API:"YandexOntoDBAPI",YANDEX_PARTNER:"YandexPartner",YANDEX_RCA:"YandexRCA",YANDEX_RENDERRESOURCES_BOT:"YandexRenderResourcesBot",YANDEX_SCREENSHOT_BOT:"YandexScreenshotBot",YANDEX_SPRAV_BOT:"YandexSpravBot",YANDEX_TRACKER:"YandexTracker",YANDEX_VERTICALS:"YandexVerticals",YANDEX_VERTIS:"YandexVertis",YANDEX_VIDEO:"YandexVideo",YANDEX_VIDEO_PARSER:"YandexVideoParser",YANDEX_WEBMASTER:"YandexWebmaster",YEP_BOT:"YepBot",YETI:"Yeti",YISOU_SPIDER:"YisouSpider",YOU_BOT:"YouBot",ZHIPU_CHATGLM_SPIDER:"ChatGLM-Spider",ZUM_BOT:"ZumBot"},Email:{AIRMAIL:"Airmail",APPLE_MAIL:"Mail",BLUEMAIL:"BlueMail",DAUM_MAIL:"DaumMail",EVOLUTION:"Evolution",EM_CLIENT:"eM Client",FOXMAIL:"Foxmail",KMAIL:"KMail",KMAIL2:"kmail2",KONTACT:"Kontact",MICROSOFT_OUTLOOK:"Microsoft Outlook",MICROSOFT_OUTLOOK_MAC:"MacOutlook",NAVER_MAILAPP:"NaverMailApp",POLYMAIL:"Polymail",PROTON_MAIL:"ProtonMail",SPARK_MAIL:"SparkDesktop",SPARROW:"Sparrow",THUNDERBIRD:"Thunderbird",YAHOO_MAIL:"Yahoo",ZIMBRA:"Zimbra",ZOHO_MAIL:"ZohoMail-Desktop"},Fetcher:{AHREFS_SITEAUDIT:"AhrefsSiteAudit",ANTHROPIC_CLAUDE_USER:"Claude-User",ASANA:"Asana",BETTER_UPTIME_BOT:"Better Uptime Bot",BITLY_BOT:"bitlybot",BLUESKY:"Bluesky",BUFFER_LINKPREVIEWBOT:"BufferLinkPreviewBot",COHERE_AI:"Cohere-AI",DISCORD_BOT:"Discordbot",DUCKDUCKGO_ASSISTBOT:"DuckAssistBot",GOOGLE_CHROME_LIGHTHOUSE:"Chrome-Lighthouse",GOOGLE_FEEDFETCHER:"FeedFetcher-Google",GOOGLE_GEMINI_DEEP_RESEARCH:"Gemini-Deep-Research",GOOGLE_IMAGEPROXY:"GoogleImageProxy",GOOGLE_PAGERENDERER:"Google-PageRenderer",GOOGLE_READ_ALOUD:"Google-Read-Aloud",GOOGLE_PRODUCER:"GoogleProducer",GOOGLE_SITE_VERIFICATION:"Google-Site-Verification",HUBSPOT_PAGE_FETCHER:"HubSpot Page Fetcher",IFRAMELY:"Iframely",KAKAOTALK_SCRAP:"kakaotalk-scrap",KEYBASE_BOT:"KeybaseBot",META_EXTERNALFETCHER:"meta-externalfetcher",META_WHATSAPP:"WhatsApp",MICROSOFT_BINGPREVIEW:"BingPreview",MICROSOFT_PREVIEW:"MicrosoftPreview",MISTRALAI_USER:"MistralAI-User",NAVER_BLUENO:"Blueno",ONCRAWL_ROGERBOT:"rogerbot",OPENAI_CHATGPT_USER:"ChatGPT-User",PERPLEXITY_USER:"Perplexity-User",PINTEREST_BOT:"Pinterestbot",SEMRUSH_SITEAUDITBOT:"SiteAuditBot",SLACK_BOT:"Slackbot",SLACK_BOT_LINKEXPANDING:"Slackbot-LinkExpanding",SLACK_IMGPROXY:"Slack-ImgProxy",SNAP_URL_PREVIEW:"Snap URL Preview",SKYPE_URIPREVIEW:"SkypeUriPreview",TELEGRAM_BOT:"TelegramBot",UPTIMEROBOT:"UptimeRobot",VERCEL_FAVICON_BOT:"vercel-favicon-bot",VERCEL_SCREENSHOT_BOT:"vercel-screenshot-bot",VERCEL_BOT:"Vercelbot",VERCEL_FLAGS:"vercelflags",VERCEL_TRACING:"verceltracing",X_TWITTERBOT:"Twitterbot",YANDEX_CALENDAR:"YandexCalendar",YANDEX_DIRECT:"YandexDirect",YANDEX_DIRECTDYN:"YandexDirectDyn",YANDEX_DIRECTFETCHER:"YaDirectFetcher",YANDEX_FORDOMAIN:"YandexForDomain",YANDEX_PAGECHECKER:"YandexPagechecker",YANDEX_SEARCHSHOP:"YandexSearchShop",YANDEX_SITELINKS:"YandexSitelinks",YANDEX_USERPROXY:"YandexUserproxy",ZOOMINFO_BOT:"Zoombot"},InApp:{DISCORD:"Discord",EVERNOTE:"Evernote",FIGMA:"Figma",FLIPBOARD:"Flipboard",MATTERMOST:"Mattermost",TEAMS:"Teams",NOTION:"Notion",POSTMAN:"Postman",RAMBOX:"Rambox",ROCKETCHAT:"Rocket.Chat",SLACK:"Slack",TIKTOK_LITE:"TikTok Lite",VSCODE:"VS Code",YAHOO_JAPAN:"Yahoo! Japan"},Library:{ADOBE_AIR:"AdobeAIR",AIOHTTP:"aiohttp",APACHE_HTTPCLIENT:"Apache-HttpClient",AXIOS:"axios",GO_HTTP_CLIENT:"go-http-client",GOT:"got",GUZZLEHTTP:"GuzzleHttp",JAVA:"Java",JAVA_HTTPCLIENT:"Java-http-client",JSDOM:"jsdom",LIBWWW_PERL:"libwww-perl",LUA_RESTY_HTTP:"lua-resty-http",NEEDLE:"Needle",NUTCH:"Nutch",OKHTTP:"OkHttp",NODE_FETCH:"node-fetch",NODE_SUPERAGENT:"node-superagent",PHP_SOAP:"PHP-SOAP",POSTMAN_RUNTIME:"PostmanRuntime",PYTHON_HTTPX:"python-httpx",PYTHON_URLLIB:"python-urllib",PYTHON_URLLIB3:"python-urllib3",PYTHON_REQUESTS:"python-requests",SCRAPY:"Scrapy"}},DeviceVendor:{Vehicle:{BMW:"BMW",BYD:"BYD",JEEP:"Jeep",RIVIAN:"Rivian",TESLA:"Tesla",VOLVO:"Volvo"}}});var D="model",F="name",P="type",k="vendor",Y="version",_e="mobile",q="tablet",vi="crawler",Ma="cli",br="email",wr="fetcher",nt="inapp",Ft="mediaplayer",Ua="library",Fa=Object.freeze({browser:[[/(wget|curl|lynx|elinks|httpie)[\/ ]\(?([\w\.-]+)/i],[F,Y,[P,Ma]]]}),Sr=Object.freeze({browser:[[/((?:adidx|ahrefs|amazon|bing|brave|cc|contx|coveo|criteo|dot|duckduck(?:go-favicons-)?|exa|facebook|gpt|iask|kagi|kangaroo |linkedin|mj12|mojeek|oai-search|onespot-scraper|perplexity|sbintuitions|semrush|seznam|surdotly|swift|yep)bot)\/([\w\.-]+)/i,/(algolia crawler(?: renderscript)?)\/?([\w\.]*)/i,/(applebot(?:-extended)?)\/?([\w\.]*)/i,/(baiduspider[-imagevdonwsfcpr]{0,7})\/?([\w\.]*)/i,/(claude(?:bot|-searchbot|-web)|anthropic-ai)\/?([\w\.]*)/i,/(coccocbot-(?:image|web))\/([\w\.]+)/i,/(daum(?:oa)?(?:-image)?)[ \/]([\w\.]+)/i,/(facebook(?:externalhit|catalog)|meta-externalagent)\/([\w\.]+)/i,/(google(?:bot|other|-inspectiontool)(?:-image|-video|-news)?|storebot-google)\/?([\w\.]*)/i,/(ia_archiver|archive\.org_bot)\/?([\w\.]*)/i,/(oncrawl) mobile\/([\w\.]+)/i,/(qwantbot(?:-news)?)[-\w]*\/?([\w\.]*)/i,/((?:semrush|splitsignal)bot[-abcfimostw]*)\/?([\w\.-]*)/i,/(sogou (?:pic|head|web|orion|news) spider)\/([\w\.]+)/i,/(y!?j-(?:asr|br[uw]|dscv|mmp|vsidx|wsc))\/([\w\.]+)/i,/(yandex(?:(?:mobile)?(?:accessibility|additional|com|renderresources|screenshot|sprav)?bot(?!.+mirror)|image(?:s|resizer)|adnet|blogs|favicons|market|media|metrika|news|ontodb(?:api)?|partner|rca|tracker|turbo|verti(?:cal)?s|webmaster|video(?:parser)?))\/([\w\.]+)/i,/(yeti)\/([\w\.]+)/i,/((?:aihit|blex|diff|huggingface-|msn|pangu|replicate-|runpod-|timpi|together-|xai-|you|zum)bot|(?:magpie-|velenpublicweb)crawler|(?:chatglm-|line|screaming frog seo |yisou)spider|cotoyogi|firecrawlagent|freespoke|omgili(?:bot)?|openai image downloader|startpageprivateimageproxy|twinagent|webzio-extended)\/?([\w\.]*)/i],[F,Y,[P,vi]],[/(yandexbot\/([\w\.]+); mirrordetector)/i],[[F,/\/.+;/ig,""],Y,[P,vi]],[/((?:adsbot|apis|mediapartners)-google(?:-mobile)?|google-?(?:other|cloudvertexbot|extended|safety))/i,/\b((ai2|aspiegel|dataforseo|deepseek|imagesift|petal|seekport|turnitin|v0)bot|360spider-?(image|video)?|baidu-ads|botify|(byte|tiktok)spider|cohere-training-data-crawler|elastic(?=\/s)|marginalia|siteimprove(?=bot|\.com)|teoma|webzio|yahoo! slurp)/i],[F,[P,vi]]]}),cf=Object.freeze({device:[[/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[k,D,[P,q]],[/(u304aa)/i],[D,[k,"AT&T"],[P,_e]],[/\bsie-(\w*)/i],[D,[k,"Siemens"],[P,_e]],[/\b(rct\w+) b/i],[D,[k,"RCA"],[P,q]],[/\b(venue[\d ]{2,7}) b/i],[D,[k,"Dell"],[P,q]],[/\b(q(?:mv|ta)\w+) b/i],[D,[k,"Verizon"],[P,q]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[D,[k,"Barnes & Noble"],[P,q]],[/\b(tm\d{3}\w+) b/i],[D,[k,"NuVision"],[P,q]],[/\b(k88) b/i],[D,[k,"ZTE"],[P,q]],[/\b(nx\d{3}j) b/i],[D,[k,"ZTE"],[P,_e]],[/\b(gen\d{3}) b.+49h/i],[D,[k,"Swiss"],[P,_e]],[/\b(zur\d{3}) b/i],[D,[k,"Swiss"],[P,q]],[/^((zeki)?tb.*\b) b/i],[D,[k,"Zeki"],[P,q]],[/\b([yr]\d{2}) b/i,/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i],[D,[k,"Dragon Touch"],[P,q]],[/\b(ns-?\w{0,9}) b/i],[D,[k,"Insignia"],[P,q]],[/\b((nxa|next)-?\w{0,9}) b/i],[D,[k,"NextBook"],[P,q]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[k,"Voice"],D,[P,_e]],[/\b(lvtel\-)?(v1[12]) b/i],[[k,"LvTel"],D,[P,_e]],[/\b(ph-1) /i],[D,[k,"Essential"],[P,_e]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[D,[k,"Envizen"],[P,q]],[/\b(trio[-\w\. ]+) b/i],[D,[k,"MachSpeed"],[P,q]],[/\btu_(1491) b/i],[D,[k,"Rotor"],[P,q]]]}),uf=Object.freeze({browser:[[/((?:air|blue|daum|fox|poly|proton)mail|emclient|evolution|kmail2?|kontact|(?:microsoft |mac)?outlook(?:-express)?|navermailapp|(?!chrom.+)sparrow|sparkdesktop|thunderbird|yahoo|zohomail-desktop)(?:m.+ail; |[\/ ])([\w\.]+)/i,/(mail)\/([\w\.]+) cf/i],[F,Y,[P,br]],[/zdesktop\/([\w\.]+)/i],[Y,[F,"Zimbra"],[P,br]]]}),Ir=Object.freeze({browser:[[/(asana|ahrefssiteaudit|(?:bing|microsoft)preview|blueno|(?:chatgpt|claude|mistralai|perplexity)-user|cohere-ai|hubspot page fetcher|mastodon|(?:bitly|bufferlinkpreview|discord|duckassist|linkedin|pinterest|reddit|roger|siteaudit|twitter|uptimero|zoom)bot|google-site-verification|iframely|kakaotalk-scrap|meta-externalfetcher|y!?j-dlc|yandex(?:calendar|direct(?:dyn)?|fordomain|pagechecker|searchshop)|yadirectfetcher)\/([\w\.]+)/i,/(bluesky) cardyb\/([\w\.]+)/i,/(skypeuripreview) preview\/([\w\.]+)/i,/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i,/(whatsapp)\/([\w\.]+)/i],[F,Y,[P,wr]],[/((?:better uptime |keybase|telegram|vercel)bot|chrome-lighthouse|feedfetcher-google|gemini-deep-research|google(?:imageproxy|-read-aloud|-pagerenderer|producer)|snap url preview|vercel(flags|tracing|-(favicon|screenshot)-bot)|yandex(?:sitelinks|userproxy))/i],[F,[P,wr]]],os:[[/whatsapp\/[\d\.]+ (a|i)/i],[[F,t=>t=="A"?"Android":"iOS"]]]}),df=Object.freeze({browser:[[/\b(discord|figma|mattermost|notion|postman|rambox|rocket.chat|slack|teams)\/([\w\.]+).+(electron\/|; ios)/i,/(flipboard)\/([\w\.]+)/i],[F,Y,[P,nt]],[/(evernote) win/i,/(teams)mobile-(ios|and)/i],[F,[P,nt]],[/chatlyio\/([\d\.]+)/i],[Y,[F,"Slack"],[P,nt]],[/ultralite app_version\/([\w\.]+)/i],[Y,[F,"TikTok Lite"],[P,nt]],[/\) code\/([\d\.]+).+electron\//i],[Y,[F,"VS Code"],[P,nt]],[/jp\.co\.yahoo\.(?:android\.yjtop|ipn\.appli)\/([\d\.]+)/i],[Y,[F,"Yahoo! Japan"],[P,nt]]]}),ff=Object.freeze({browser:[[/(apple(?:coremedia|tv))\/([\w\._]+)/i,/(coremedia) v([\w\._]+)/i,/(ares|clementine|music player daemon|nexplayer|ossproxy) ([\w\.-]+)/i,/^(aqualung|audacious|audimusicstream|amarok|bass|bsplayer|core|gnomemplayer|gvfs|irapp|lyssna|music on console|nero (?:home|scout)|nokia\d+|nsplayer|psp-internetradioplayer|quicktime|rma|radioapp|radioclientapplication|soundtap|stagefright|streamium|totem|videos|xbmc|xine|xmms)\/([\w\.-]+)/i,/(lg player|nexplayer) ([\d\.]+)/i,/player\/(nexplayer|lg player) ([\w\.-]+)/i,/(gstreamer) souphttpsrc.+libsoup\/([\w\.-]+)/i,/(htc streaming player) [\w_]+ \/ ([\d\.]+)/i,/(lavf)([\d\.]+)/i,/(mplayer)(?: |\/)(?:(?:sherpya-){0,1}svn)(?:-| )(r\d+(?:-\d+[\w\.-]+))/i,/ (songbird)\/([\w\.-]+)/i,/(winamp)(?:3 version|mpeg| ) ([\w\.-]+)/i,/(vlc)(?:\/| media player - version )([\w\.-]+)/i,/^(foobar2000|itunes|smp)\/([\d\.]+)/i,/com\.(riseupradioalarm)\/([\d\.]*)/i,/(mplayer)(?:\s|\/| unknown-)([\w\.\-]+)/i,/(windows)\/([\w\.-]+) upnp\/[\d\.]+ dlnadoc\/[\d\.]+ home media server/i],[F,Y,[P,Ft]],[/(flrp)\/([\w\.-]+)/i],[[F,"Flip Player"],Y,[P,Ft]],[/(fstream|media player classic|inlight radio|mplayer|nativehost|nero showtime|ocms-bot|queryseekspider|tapinradio|tunein radio|winamp|yourmuze)/i],[F,[P,Ft]],[/(htc_one_s|windows-media-player|wmplayer)\/([\w\.-]+)/i],[[F,/[_-]/g," "],Y,[P,Ft]],[/(rad.io|radio.(?:de|at|fr)) ([\d\.]+)/i],[[F,"rad.io"],Y,[P,Ft]]]}),Ha=Object.freeze({browser:[[/^(apache-httpclient|axios|(?:go|java)-http-client|got|guzzlehttp|java|libwww-perl|lua-resty-http|needle|node-(?:fetch|superagent)|okhttp|php-soap|postmanruntime|python-(?:httpx|urllib[23]?|requests)|scrapy)\/([\w\.]+)/i,/(adobeair|aiohttp|jsdom)\/([\w\.]+)/i,/(nutch)-([\w\.-]+)(\(|$)/i,/\((java)\/([\w\.]+)/i],[F,Y,[P,Ua]]]}),pf=Object.freeze({device:[[/aftlbt962e2/i],[[k,"BMW"]],[/dilink.+(byd) auto/i],[k],[/aftlft962x3/i],[[k,"Jeep"],[D,"Wagooner"]],[/(rivian) (r1t)/i],[k,D],[/vcc.+netfront/i],[[k,"Volvo"]]]}),Cr=Object.freeze({browser:[...Fa.browser,...Ir.browser,...Sr.browser,...Ha.browser],os:[...Ir.os]});var S={ANDORRA:{ANDORRA:"Europe/Andorra"},AUSTRIA:{VIENNA:"Europe/Vienna"},BELGIUM:{BRUSSELS:"Europe/Brussels"},BULGARIA:{SOFIA:"Europe/Sofia"},CROATIA:{ZAGREB:"Europe/Zagreb"},CYPRUS:{NICOSIA_EUROPE:"Europe/Nicosia",NICOSIA_ASIA:"Asia/Nicosia",FAMAGUSTA:"Asia/Famagusta"},CZECHIA:{PRAGUE:"Europe/Prague"},DENMARK:{COPENHAGEN:"Europe/Copenhagen",FAROE:"Atlantic/Faroe"},ESTONIA:{TALLINN:"Europe/Tallinn"},FINLAND:{HELSINKI:"Europe/Helsinki",MARIEHAMN:"Europe/Mariehamn"},FRANCE:{PARIS:"Europe/Paris",CAYENNE:"America/Cayenne",GUADELOUPE:"America/Guadeloupe",MARIGOT:"America/Marigot",MARTINIQUE:"America/Martinique",MAYOTTE:"Indian/Mayotte",REUNION:"Indian/Reunion"},GERMANY:{BERLIN:"Europe/Berlin",BUSINGEN:"Europe/Busingen"},GREECE:{ATHENS:"Europe/Athens"},HUNGARY:{BUDAPEST:"Europe/Budapest"},ICELAND:{REYKJAVIK:"Atlantic/Reykjavik"},IRELAND:{DUBLIN:"Europe/Dublin"},ITALY:{ROME:"Europe/Rome"},LATVIA:{RIGA:"Europe/Riga"},LIECHTENSTEIN:{VADUZ:"Europe/Vaduz"},LITHUANIA:{VILNIUS:"Europe/Vilnius"},LUXEMBOURG:{LUXEMBOURG:"Europe/Luxembourg"},MALTA:{MALTA:"Europe/Malta"},MONACO:{MONACO:"Europe/Monaco"},NETHERLANDS:{AMSTERDAM:"Europe/Amsterdam",ARUBA:"America/Aruba",CURACAO:"America/Curacao",KRALENDIJK:"America/Kralendijk",LOWER_PRINCES:"America/Lower_Princes"},NORWAY:{OSLO:"Europe/Oslo",JAN_MAYEN:"Atlantic/Jan_Mayen",LONGYEARBYEN:"Arctic/Longyearbyen"},POLAND:{WARSAW:"Europe/Warsaw"},PORTUGAL:{LISBON:"Europe/Lisbon",AZORES:"Atlantic/Azores",MADEIRA:"Atlantic/Madeira"},ROMANIA:{BUCHAREST:"Europe/Bucharest"},SAN_MARINO:{SAN_MARINO:"Europe/San_Marino"},SLOVAKIA:{BRATISLAVA:"Europe/Bratislava"},SLOVENIA:{LJUBLJANA:"Europe/Ljubljana"},SPAIN:{MADRID:"Europe/Madrid",CANARY:"Atlantic/Canary",CEUTA:"Africa/Ceuta"},SWEDEN:{STOCKHOLM:"Europe/Stockholm"},SWITZERLAND:{ZURICH:"Europe/Zurich"},VATICAN:{VATICAN:"Europe/Vatican"}},Ga=[S.AUSTRIA.VIENNA,S.BELGIUM.BRUSSELS,S.BULGARIA.SOFIA,S.CROATIA.ZAGREB,S.CYPRUS.NICOSIA_EUROPE,S.CYPRUS.NICOSIA_ASIA,S.CYPRUS.FAMAGUSTA,S.CZECHIA.PRAGUE,S.DENMARK.COPENHAGEN,S.ESTONIA.TALLINN,S.FINLAND.HELSINKI,S.FINLAND.MARIEHAMN,S.FRANCE.PARIS,S.GERMANY.BERLIN,S.GREECE.ATHENS,S.HUNGARY.BUDAPEST,S.IRELAND.DUBLIN,S.ITALY.ROME,S.LATVIA.RIGA,S.LITHUANIA.VILNIUS,S.LUXEMBOURG.LUXEMBOURG,S.MALTA.MALTA,S.NETHERLANDS.AMSTERDAM,S.POLAND.WARSAW,S.PORTUGAL.LISBON,S.ROMANIA.BUCHAREST,S.SLOVAKIA.BRATISLAVA,S.SLOVENIA.LJUBLJANA,S.SPAIN.MADRID,S.SWEDEN.STOCKHOLM,S.FRANCE.CAYENNE,S.FRANCE.GUADELOUPE,S.FRANCE.MARIGOT,S.FRANCE.MARTINIQUE,S.FRANCE.MAYOTTE,S.FRANCE.REUNION,S.PORTUGAL.AZORES,S.PORTUGAL.MADEIRA,S.SPAIN.CANARY],Tr=[S.ICELAND.REYKJAVIK,S.LIECHTENSTEIN.VADUZ,S.NORWAY.OSLO,S.NORWAY.JAN_MAYEN],mf=[...Ga,...Tr],hf=[S.SWITZERLAND.ZURICH,...Tr],Ef=[S.AUSTRIA.VIENNA,S.BELGIUM.BRUSSELS,S.BULGARIA.SOFIA,S.CROATIA.ZAGREB,S.CZECHIA.PRAGUE,S.DENMARK.COPENHAGEN,S.ESTONIA.TALLINN,S.FINLAND.HELSINKI,S.FINLAND.MARIEHAMN,S.FRANCE.PARIS,S.GERMANY.BERLIN,S.GREECE.ATHENS,S.HUNGARY.BUDAPEST,S.ITALY.ROME,S.LATVIA.RIGA,S.LITHUANIA.VILNIUS,S.LUXEMBOURG.LUXEMBOURG,S.MALTA.MALTA,S.NETHERLANDS.AMSTERDAM,S.POLAND.WARSAW,S.PORTUGAL.LISBON,S.PORTUGAL.AZORES,S.PORTUGAL.MADEIRA,S.ROMANIA.BUCHAREST,S.SLOVAKIA.BRATISLAVA,S.SLOVENIA.LJUBLJANA,S.SPAIN.MADRID,S.SPAIN.CANARY,S.SWEDEN.STOCKHOLM,S.ANDORRA.ANDORRA,S.GERMANY.BUSINGEN,S.ICELAND.REYKJAVIK,S.LIECHTENSTEIN.VADUZ,S.MONACO.MONACO,S.NORWAY.OSLO,S.SAN_MARINO.SAN_MARINO,S.SPAIN.CEUTA,S.SWITZERLAND.ZURICH,S.VATICAN.VATICAN];function Pi(){var t;return typeof window!="undefined"&&((window==null?void 0:window.matchMedia("(display-mode: standalone)").matches)||((t=window.navigator)===null||t===void 0?void 0:t.standalone)||document.referrer.startsWith("android-app://")||(window==null?void 0:window.Windows)||/trident.+(msapphost|webview)\//i.test(navigator.userAgent)||document.referrer.startsWith("app-info://platform/microsoft-store"))}var{Crawler:Pf}=Ar.BrowserName,Ni=(t,e,n)=>typeof t=="string"?ee(t,e,n):t;var yr=t=>{let e=Ni(t);if(e.os.is(Er.MACOS)){if(e.cpu.is(mr.ARM))return!0;if(typeof t!="string"&&typeof window!="undefined")try{let n=document.createElement("canvas"),i=n.getContext("webgl2")||n.getContext("webgl")||n.getContext("experimental-webgl"),o=i.getExtension("WEBGL_debug_renderer_info");if(i.getParameter(o.UNMASKED_RENDERER_WEBGL).match(/apple m\d/i))return!0}catch(n){return!1}}return!1};var Or=t=>[Ut.CLI,Ut.CRAWLER,Ut.FETCHER,Ut.LIBRARY].includes(Ni(t,Cr).browser.type),Rr=t=>Ni(t).engine.is(hr.BLINK);function Va(){return{width:window.screen.width,height:window.screen.height}}function Ka(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return console.error("Failed to get timezone:",t),"UTC"}}function vr(){try{return navigator.language||"en-US"}catch(t){return console.error("Failed to get browser locale:",t),"en-US"}}function Pr(){if(typeof window=="undefined")return{userAgent:{name:"",browser:{major:"",name:"",version:""},os:{name:"",version:""},device:void 0,engine:{name:"",version:""},cpu:{architecture:""}},screenResolution:{width:0,height:0},timeZone:"UTC",flags:{isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}};let e=new ee().getResult(),n;try{n={isBot:Or(e),isChromeFamily:Rr(e),isStandalonePWA:Pi(),isAppleSilicon:yr(e)}}catch(i){console.error("Failed to compute device flags:",i),n={isBot:!1,isChromeFamily:!1,isStandalonePWA:!1,isAppleSilicon:!1}}return{userAgent:{name:e.ua,browser:{major:e.browser.major||"",name:e.browser.name||"",version:e.browser.version||"",type:e.browser.type},os:{name:e.os.name||"",version:e.os.version||""},device:e.device.model||e.device.type||e.device.vendor?{model:e.device.model,type:e.device.type,vendor:e.device.vendor}:void 0,engine:{name:e.engine.name||"",version:e.engine.version||""},cpu:{architecture:e.cpu.architecture||""}},screenResolution:Va(),timeZone:Ka(),flags:n}}function Nr(){if(typeof window=="undefined")return{};let t=new URLSearchParams(window.location.search);return{locale:t.get("locale")||void 0,currency:t.get("currency")||void 0,utmSource:t.get("utm_source")||void 0,utmMedium:t.get("utm_medium")||void 0,utmCampaign:t.get("utm_campaign")||void 0}}var On=class{constructor(){this.listeners=new Map}on(e,n){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(n),()=>this.off(e,n)}off(e,n){this.listeners.has(e)&&this.listeners.get(e).delete(n)}async emit(e,n){if(this.listeners.has(e)){let i=Array.from(this.listeners.get(e));await Promise.all(i.map(o=>{try{return Promise.resolve(o(n))}catch(r){return console.error('[EventBus] Error in listener for event "'.concat(e,'":'),r),Promise.resolve()}}))}}clear(){this.listeners.clear()}};Ln();function Ht(t){try{let e=t.split(".");if(e.length!==3)return console.error("Invalid JWT token format"),null;let n=e[1],i=n+"=".repeat((4-n.length%4)%4),o=atob(i),r=JSON.parse(o);return r.exp&&Date.now()>=r.exp*1e3?(console.warn("JWT token is expired"),null):{sessionId:r.sessionId,storeId:r.storeId,accountId:r.accountId,customerId:r.customerId,role:r.role,isValid:!0,isLoading:!1}}catch(e){return console.error("Failed to decode JWT token:",e),null}}function xr(t){try{let e=t.split(".");if(e.length!==3)return!0;let n=e[1],i=n+"=".repeat((4-n.length%4)%4),o=atob(i),r=JSON.parse(o);return r.exp?Date.now()>=r.exp*1e3:!1}catch(e){return console.error("Failed to check token expiration:",e),!0}}Yt();var it={},Wa=["","VITE_","REACT_APP_","NEXT_PUBLIC_"];function he(t,e=Wa){var n,i,o;for(let r of e){let s=r?"".concat(r).concat(t):t;if(typeof process!="undefined"&&((n=process==null?void 0:process.env)!=null&&n[s]))return console.log("process.env[".concat(s,"]"),process.env[s]),process.env[s];if(typeof it!="undefined"&&((i=it==null?void 0:it.env)!=null&&i[s]))return console.log("import.meta.env[".concat(s,"]"),it.env[s]),it.env[s];if(typeof window!="undefined"&&((o=window==null?void 0:window.__TAGADA_ENV__)!=null&&o[s]))return console.log("window.__TAGADA_ENV__[".concat(s,"]"),window.__TAGADA_ENV__[s]),window.__TAGADA_ENV__[s]}}var za=async(t="default")=>{try{if((he("TAGADA_ENV")||he("TAGADA_ENVIRONMENT"))==="production"||!at(!0))return null;let n=await fetch("/.local.json");if(!n.ok)return null;let i=await n.json(),o={},r=!1;try{let a=await fetch("/config/".concat(t,".tgd.json"));a.ok||(a=await fetch("/config/".concat(t,".json"))),a.ok&&(o=await a.json(),r=!0)}catch(a){}if(!r&&t!=="default"){console.warn("\u26A0\uFE0F Config variant '".concat(t,"' not found, falling back to 'default'"));try{let a=await fetch("/config/default.tgd.json");a.ok||(a=await fetch("/config/default.json")),a.ok&&(o=await a.json(),r=!0,console.log("\u2705 Fallback to 'default' config successful"))}catch(a){}}r||console.warn(t==="default"?"\u26A0\uFE0F No 'default' config found. Create /config/default.tgd.json":"\u26A0\uFE0F Neither '".concat(t,"' nor 'default' config found. Create /config/default.tgd.json"));let s={storeId:i.storeId,accountId:i.accountId,basePath:i.basePath,config:o};return console.log("\u{1F6E0}\uFE0F Using local development plugin config:",s),s}catch(e){return null}},Ya=async()=>{try{if((he("TAGADA_ENV")||he("TAGADA_ENVIRONMENT"))==="production"||!at(!0))return null;try{console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/funnel.local.json...");let i=await fetch("/config/funnel.local.json");if(i.ok){let o=await i.json();console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded local funnel config (NEW format):",o);let{loadLocalFunnelConfig:r}=await Promise.resolve().then(()=>(Gn(),fo));if(await r(),o.staticResources){let s={};for(let[a,l]of Object.entries(o.staticResources))s[a]={id:l};return s}return null}}catch(i){console.log("\u{1F6E0}\uFE0F [V2] funnel.local.json not found, trying legacy format...")}console.log("\u{1F6E0}\uFE0F [V2] Attempting to load /config/resources.static.json (legacy)...");let e=await fetch("/config/resources.static.json");if(!e.ok)return console.log("\u{1F6E0}\uFE0F [V2] No local static resources found"),null;let n=await e.json();return console.log("\u{1F6E0}\uFE0F [V2] \u2705 Loaded legacy static resources:",n),n}catch(t){return console.error("\u{1F6E0}\uFE0F [V2] \u274C Error loading static resources:",t),null}},Re=t=>{if(typeof document=="undefined")return;let e=document.querySelector('meta[name="'.concat(t,'"]'));return(e==null?void 0:e.getAttribute("content"))||void 0};function ja(){if(typeof document=="undefined")return{basePath:"/",config:{}};let t=Re("x-plugin-store-id"),e=Re("x-plugin-account-id"),n=Re("x-plugin-base-path")||"/",i={};try{let o=Re("x-plugin-config");o&&(i=JSON.parse(decodeURIComponent(o)))}catch(o){console.warn("[TagadaSDK] Failed to parse plugin config from meta tag:",o)}return{storeId:t,accountId:e,basePath:n,config:i}}var $a=async()=>{try{if(typeof document=="undefined")return null;let t=Re("x-plugin-store-id"),e=Re("x-plugin-account-id");if(!t)return null;let n=Re("x-plugin-base-path")||"/",i={};try{let r=Re("x-plugin-config");if(r){let s=decodeURIComponent(r);i=JSON.parse(s)}}catch(r){console.warn("\u26A0\uFE0F Failed to parse plugin config from meta tag:",r)}e||console.warn("\u26A0\uFE0F Plugin config: Account ID not found in meta tags");let o={storeId:t,accountId:e,basePath:n,config:i};return console.log("\u{1F680} [HIGHEST PRIORITY] Plugin config loaded from meta tags (runtime injected config):",{storeId:t,accountId:e,basePath:n,configKeys:Object.keys(i),configSize:JSON.stringify(i).length}),o}catch(t){return console.warn("\u26A0\uFE0F Error loading production config from meta tags:",t),null}},ki=async(t="default",e)=>{var s,a;console.log("\u{1F527} [V2] loadPluginConfig called with variant:",t);let n=await Ya(),i=await $a();if(i){let l=K(O({},i),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using INJECTED config from meta tags (HIGHEST PRIORITY)"),l}if(e){let l={storeId:e.storeId,accountId:e.accountId,basePath:(s=e.basePath)!=null?s:"/",config:(a=e.config)!=null?a:{},staticResources:n!=null?n:void 0};return console.log("\u2705 [V2] Using raw config parameter (PRIORITY 2)"),l}let o=await Lr();if(o){let l=K(O({},o),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using environment variables config (PRIORITY 3 - build time)"),l}let r=await za(t);if(r){let l=K(O({},r),{staticResources:n!=null?n:void 0});return console.log("\u2705 [V2] Using local dev config files (PRIORITY 4)"),l}return console.warn("\u26A0\uFE0F [V2] No plugin config found - using defaults"),{basePath:"/",config:{},staticResources:n!=null?n:void 0}};async function kr(t="default",e){try{if(!at())return null;if(e)return e;let n=["/config/".concat(t,".config.json"),"/config/".concat(t,".tgd.json"),"/config/".concat(t,".json")];for(let i of n)try{let o=await fetch(i);if(o.ok)return await o.json()}catch(o){continue}return console.warn("\u26A0\uFE0F [loadLocalConfig] No config found for '".concat(t,"'")),null}catch(n){return console.error("[loadLocalConfig] Error loading config:",n),null}}async function Lr(){try{if(!at())return;let t=he("TAGADA_STORE_ID"),e=he("TAGADA_ACCOUNT_ID"),n=he("TAGADA_BASE_PATH"),i=he("TAGADA_CONFIG_NAME");if(!t||!e)return;let o=await kr(i);if(!o)return;let r={storeId:t,accountId:e,basePath:n||"/",config:o};return console.log("\u{1F6E0}\uFE0F [createRawPluginConfig] Using environment variables (build-time config):",{hasStoreId:!!r.storeId,hasAccountId:!!r.accountId,basePath:r.basePath,hasConfig:!!r.config}),r}catch(t){console.error("[createRawPluginConfig] Error creating config:",t);return}}var xi=class{static getPluginConfig(e,n){return{storeId:(e==null?void 0:e.storeId)||(n==null?void 0:n.storeId),accountId:(e==null?void 0:e.accountId)||(n==null?void 0:n.accountId),basePath:(e==null?void 0:e.basePath)||(n==null?void 0:n.basePath)||"/",config:(e==null?void 0:e.config)||{}}}static validateConfig(e){return!!(e.storeId&&e.accountId)}};Zt();Fe();Fe();var Li=new Map,_i=new Set;function qa(){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get("authCode")}async function _r(t,e,n,i=!1){if(_i.has(t))throw i&&console.log("[AuthHandoff] Code already resolved, skipping duplicate request"),new Error("Auth code already resolved");let o=Li.get(t);if(o)return i&&console.log("[AuthHandoff] Resolution already in progress, waiting for existing request"),o;i&&console.log("[AuthHandoff] Resolving authCode:",t.substring(0,15)+"...");let r=(async()=>{try{let s=await fetch("".concat(n,"/api/v1/cms/auth/resolve-handoff"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:t,storeId:e})});if(!s.ok){let l=await s.json().catch(()=>({message:"Unknown error"}));throw new Error(l.message||"Failed to resolve auth handoff: ".concat(s.status))}let a=await s.json();return i&&console.log("[AuthHandoff] \u2705 Resolved successfully:",{customerId:a.customer.id,role:a.customer.role,hasContext:Object.keys(a.context).length>0}),i&&console.log("[AuthHandoff] Storing new token (overriding existing)"),ne(a.token),Xa(i),_i.add(t),a}catch(s){throw console.error("[AuthHandoff] \u274C Failed to resolve:",s),s}finally{Li.delete(t)}})();return Li.set(t,r),r}function Xa(t=!1){if(typeof window=="undefined")return;let e=new URL(window.location.href);e.searchParams.has("authCode")&&(e.searchParams.delete("authCode"),window.history.replaceState({},"",e.pathname+e.search+e.hash),t&&console.log("[AuthHandoff] Cleaned authCode from URL"))}function Dr(){let t=qa();return!(!t||!t.startsWith("ah_")||_i.has(t))}var Gt=class{constructor(e={}){this.bus=new On;this.eventDispatcher=new Me;this.tokenPromise=null;this.tokenResolver=null;this.isInitializingSession=!1;this.lastSessionInitError=null;this.sessionInitRetryCount=0;this.MAX_SESSION_INIT_RETRIES=3;var a,l,u,d;this.config=e,this.instanceId=Math.random().toString(36).substr(2,9),this.boundHandleStorageChange=this.handleStorageChange.bind(this),this.boundHandlePageshow=p=>{if(p.persisted)if(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Page restored from BFcache (back button), re-initializing funnel...")),this.funnel&&this.state.session&&this.state.store){this.funnel.resetInitialization();let I=this.getAccountId(),f=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||void 0;this.funnel.autoInitialize({customerId:this.state.session.customerId,sessionId:this.state.session.sessionId},{id:this.state.store.id,accountId:I},f).catch(C=>{console.error("[TagadaClient] Funnel re-initialization failed:",C)})}else this.sessionInitRetryCount=0,this.initialize()},console.log("[TagadaClient ".concat(this.instanceId,"] Initializing...")),console.log("[TagadaClient ".concat(this.instanceId,"] Config:"),{debugMode:e.debugMode,hasRawPluginConfig:!!e.rawPluginConfig,rawPluginConfig:e.rawPluginConfig,features:e.features}),no(this.config.debugMode)&&this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Preview mode active - state cleared"));let i=this.resolveEnvironment(),o=Qi(i);e.customApiConfig&&(o=K(O(O({},o),e.customApiConfig),{apiConfig:O(O({},o.apiConfig),e.customApiConfig.apiConfig)}),this.config.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Applied custom API config:"),o.apiConfig.baseUrl)),this.state={auth:{isAuthenticated:!1,isLoading:!1,customer:null,session:null},session:null,customer:null,locale:{locale:"en-US",language:"en",region:"US",messages:{}},currency:{code:"USD",symbol:"$",name:"US Dollar"},store:null,environment:o,isLoading:!0,isInitialized:!1,isSessionInitialized:!1,pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!0,debugMode:(a=e.debugMode)!=null?a:i!=="production",token:null},console.log("[TagadaClient ".concat(this.instanceId,"] Initial state:"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!e.rawPluginConfig}),this.apiClient=new $e({baseURL:o.apiConfig.baseUrl});let r=(l=e.features)==null?void 0:l.funnel;if(r!==!1){let p=typeof r=="object"?r:{};this.funnel=new gt({apiClient:this.apiClient,debugMode:this.state.debugMode,pluginConfig:this.state.pluginConfig,environment:this.state.environment,autoRedirect:p.autoRedirect,funnelId:(u=e.rawPluginConfig)==null?void 0:u.funnelId,stepId:(d=e.rawPluginConfig)==null?void 0:d.stepId})}this.apiClient.setTokenProvider(this.waitForToken.bind(this)),typeof window!="undefined"&&(window.addEventListener("storage",this.boundHandleStorageChange),window.addEventListener("pageshow",this.boundHandlePageshow)),this.setupConfigHotReload(),this.initialize()}destroy(){typeof window!="undefined"&&(window.removeEventListener("storage",this.boundHandleStorageChange),window.removeEventListener("pageshow",this.boundHandlePageshow)),this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Destroyed")),this.eventDispatcher.clear(),this.bus.clear()}handleStorageChange(){if(lt()===this.state.token){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Token unchanged (ignoring event)"));return}if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping storage change"));return}if(this.sessionInitRetryCount>=this.MAX_SESSION_INIT_RETRIES&&this.lastSessionInitError){this.state.debugMode&&console.error("[TagadaClient ".concat(this.instanceId,"] Max session init retries reached, giving up"),this.lastSessionInitError);return}this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Storage changed, re-initializing token...")),this.initializeToken()}subscribe(e){return this.eventDispatcher.subscribe(e)}getState(){return this.state}updateState(e){this.state=O(O({},this.state),e),this.eventDispatcher.notify(this.state)}resolveEnvironment(){return this.config.environment?this.config.environment:st()}async initialize(){try{await this.initializePluginConfig(),this.state.pluginConfig.storeId?await this.initializeToken():(console.warn("[TagadaClient] No store ID found in plugin config. Skipping token initialization."),this.updateState({isLoading:!1,isInitialized:!0}))}catch(e){console.error("[TagadaClient] Initialization failed:",e),this.updateState({isLoading:!1,isInitialized:!0})}}async initializePluginConfig(){if(console.log("[TagadaClient ".concat(this.instanceId,"] initializePluginConfig called"),{pluginConfigLoading:this.state.pluginConfigLoading,hasRawPluginConfig:!!this.config.rawPluginConfig}),!this.state.pluginConfigLoading){console.log("[TagadaClient ".concat(this.instanceId,"] Plugin config already loading or loaded, skipping..."));return}try{let e=this.config.localConfig||"default";console.log("[TagadaClient ".concat(this.instanceId,"] Loading plugin config with variant: ").concat(e));let n=await ki(e,this.config.rawPluginConfig);console.log("[TagadaClient ".concat(this.instanceId,"] Plugin config loaded:"),n),this.updateState({pluginConfig:n,pluginConfigLoading:!1}),this.funnel&&this.funnel.setConfig({pluginConfig:n,environment:this.state.environment})}catch(e){console.error("[TagadaClient] Failed to load plugin config:",e),this.updateState({pluginConfig:{basePath:"/",config:{}},pluginConfigLoading:!1})}}async initializeToken(){var e;if(Dr()){let n=this.state.pluginConfig.storeId;if(!n)return console.error("[TagadaClient] Cannot resolve authCode: storeId not found in config"),this.fallbackToNormalFlow();console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F510} Cross-domain auth detected, resolving..."));try{let i=new URLSearchParams(window.location.search).get("authCode");if(!i)return this.fallbackToNormalFlow();let o=await _r(i,n,this.state.environment.apiConfig.baseUrl,this.state.debugMode);console.log("[TagadaClient ".concat(this.instanceId,"] \u2705 Auth handoff resolved:"),{customerId:o.customer.id,role:o.customer.role,hasContext:Object.keys(o.context).length>0}),this.setToken(o.token);let r=Ht(o.token);r?(this.updateState({session:r}),await this.initializeSession(r),(e=o.context)!=null&&e.funnelSessionId&&this.funnel&&this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Restoring funnel session from handoff context:"),o.context.funnelSessionId)):(console.error("[TagadaClient] Failed to decode token from handoff"),this.updateState({isInitialized:!0,isLoading:!1}));return}catch(i){console.error("[TagadaClient ".concat(this.instanceId,"] \u274C Auth handoff failed, falling back to normal flow:"),i)}}await this.fallbackToNormalFlow()}async fallbackToNormalFlow(){let n=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("token");n&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL token detected, setting immediately to prevent race condition")),this.apiClient.updateToken(n),ne(n));let i=lt();console.log("[TagadaClient ".concat(this.instanceId,"] Initializing token (normal flow)..."),{hasExistingToken:!!i,hasQueryToken:!!n,storeId:this.state.pluginConfig.storeId});let o=null,r=!1;if(n?(o=n,r=!0):i&&!xr(i)&&(o=i),o){this.setToken(o),r&&(this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Persisting query token to storage...")),ne(o));let s=Ht(o);s?(this.updateState({session:s}),await this.initializeSession(s)):(console.error("[TagadaClient] Failed to decode token"),this.updateState({isInitialized:!0,isLoading:!1}))}else{let s=this.state.pluginConfig.storeId;console.log("[TagadaClient ".concat(this.instanceId,"] No existing token, creating anonymous token..."),{hasStoreId:!!s,storeId:s}),s?await this.createAnonymousToken(s):(console.warn("[TagadaClient ".concat(this.instanceId,"] No storeId in plugin config, skipping anonymous token creation")),this.updateState({isInitialized:!0,isLoading:!1}))}}setToken(e){this.apiClient.updateToken(e),this.updateState({token:e}),this.tokenResolver&&(this.tokenResolver(e),this.tokenPromise=null,this.tokenResolver=null)}waitForToken(){return this.apiClient.getCurrentToken()?Promise.resolve(this.apiClient.getCurrentToken()):(this.tokenPromise||(this.tokenPromise=new Promise(e=>{this.tokenResolver=e})),this.tokenPromise)}async createAnonymousToken(e){if(typeof window!="undefined"){let i=new URLSearchParams(window.location.search).get("token");if(i){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] \u{1F512} URL has token, skipping anonymous token creation")),this.setToken(i),ne(i);let o=Ht(i);o&&(this.updateState({session:o}),await this.initializeSession(o));return}}if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization in progress, skipping anonymous token creation"));return}try{let n=ft();this.state.debugMode&&console.log("[TagadaClient] Creating anonymous token for store:",e,{draft:n});let i=await this.apiClient.post("/api/v1/cms/session/anonymous",{storeId:e,role:"anonymous",draft:n},{skipAuth:!0});this.setToken(i.token),ne(i.token);let o=Ht(i.token);o&&(this.updateState({session:o}),await this.initializeSession(o)),this.updateState({isSessionInitialized:!0})}catch(n){console.error("[TagadaClient] Failed to create anonymous token:",n),this.updateState({isInitialized:!0,isLoading:!1})}}async initializeSession(e){var n,i,o,r,s,a,l,u,d,p,I;if(this.isInitializingSession){this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Session initialization already in progress, skipping"));return}this.isInitializingSession=!0;try{this.state.debugMode&&console.log("[TagadaClient ".concat(this.instanceId,"] Initializing session..."),{sessionId:e.sessionId});let w=Pr(),f=Nr(),C=vr(),b=ft(),v=new URLSearchParams(window.location.search).get("draft");v!==null&&Mn(v==="true");let L={storeId:e.storeId,accountId:e.accountId,customerId:e.customerId,role:e.role,browserLocale:C,queryLocale:f.locale,queryCurrency:f.currency,utmSource:f.utmSource,utmMedium:f.utmMedium,utmCampaign:f.utmCampaign,browser:w.userAgent.browser.name,browserVersion:w.userAgent.browser.version,os:w.userAgent.os.name,osVersion:w.userAgent.os.version,deviceType:(n=w.userAgent.device)==null?void 0:n.type,deviceModel:(i=w.userAgent.device)==null?void 0:i.model,deviceVendor:(o=w.userAgent.device)==null?void 0:o.vendor,userAgent:w.userAgent.name,engineName:w.userAgent.engine.name,engineVersion:w.userAgent.engine.version,cpuArchitecture:w.userAgent.cpu.architecture,isBot:(s=(r=w.flags)==null?void 0:r.isBot)!=null?s:!1,isChromeFamily:(l=(a=w.flags)==null?void 0:a.isChromeFamily)!=null?l:!1,isStandalonePWA:(d=(u=w.flags)==null?void 0:u.isStandalonePWA)!=null?d:!1,isAppleSilicon:(I=(p=w.flags)==null?void 0:p.isAppleSilicon)!=null?I:!1,screenWidth:w.screenResolution.width,screenHeight:w.screenResolution.height,timeZone:w.timeZone,draft:b,fetchMessages:!1},y=await this.apiClient.post("/api/v1/cms/session/v2/init",L);this.lastSessionInitError=null,this.sessionInitRetryCount=0,this.updateSessionState(y,e),this.updateState({isInitialized:!0,isSessionInitialized:!0,isLoading:!1}),this.state.debugMode&&console.log("[TagadaClient] Session initialized successfully")}catch(w){this.lastSessionInitError=w,this.sessionInitRetryCount++,console.error("[TagadaClient] Error initializing session (attempt ".concat(this.sessionInitRetryCount,"/").concat(this.MAX_SESSION_INIT_RETRIES,"):"),w),this.updateState({isInitialized:!0,isLoading:!1})}finally{this.isInitializingSession=!1}}updateSessionState(e,n){var o,r,s,a,l,u,d,p,I;if(e.store){let w=e.store,f=K(O({},e.store),{accountId:w.accountId||((o=this.state.pluginConfig)==null?void 0:o.accountId)||n.accountId||"",presentmentCurrencies:w.presentmentCurrencies||[e.store.currency||"USD"],chargeCurrencies:w.chargeCurrencies||[e.store.currency||"USD"]});this.updateState({store:f})}if(e.locale){let w={locale:e.locale,language:e.locale.split("-")[0],region:(r=e.locale.split("-")[1])!=null?r:"US",messages:(s=e.messages)!=null?s:{}};this.updateState({locale:w})}if(e.store){let w={code:e.store.currency,symbol:this.getCurrencySymbol(e.store.currency),name:this.getCurrencyName(e.store.currency)};this.updateState({currency:w})}let i={isAuthenticated:(l=(a=e.customer)==null?void 0:a.isAuthenticated)!=null?l:!1,isLoading:!1,customer:(u=e.customer)!=null?u:null,session:n};if(this.updateState({customer:(d=e.customer)!=null?d:null,auth:i}),this.funnel&&n.customerId&&((p=e.store)!=null&&p.id)){let w=e.store.accountId||((I=this.state.pluginConfig)==null?void 0:I.accountId)||n.accountId||"";if(w){let C=new URLSearchParams(typeof window!="undefined"?window.location.search:"").get("funnelId")||void 0;this.state.debugMode&&console.log("[TagadaClient] Auto-initializing funnel...",{customerId:n.customerId,storeId:e.store.id,accountId:w,funnelId:C||"auto-detect"}),this.funnel.autoInitialize({customerId:n.customerId,sessionId:n.sessionId},{id:e.store.id,accountId:w},C).catch(b=>{console.error("[TagadaClient] Funnel auto-initialization failed:",b)})}else console.warn("[TagadaClient] Cannot auto-initialize funnel: accountId is missing")}}getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$"}[e]||e}getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar"}[e]||e}getAccountId(){var e,n,i;return((e=this.state.store)==null?void 0:e.accountId)||((n=this.state.pluginConfig)==null?void 0:n.accountId)||((i=this.state.session)==null?void 0:i.accountId)||""}updatePluginConfig(e){this.state.debugMode&&console.log("[TagadaClient] Hot-reloading config:",e);let n=O(O({},this.state.pluginConfig.config),e);this.updateState({pluginConfig:K(O({},this.state.pluginConfig),{config:n})}),this.bus.emit("CONFIG_UPDATED",n),this.state.debugMode&&console.log("[TagadaClient] Config updated successfully")}setupConfigHotReload(){if(typeof window=="undefined")return;let e=n=>{var i,o;if(((i=n.data)==null?void 0:i.type)==="TAGADAPAY_CONFIG_UPDATE"){let{config:r}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received config update from parent:",r),this.updatePluginConfig(r)}else if(((o=n.data)==null?void 0:o.type)==="APPLY_STYLES_TO_ELEMENT"){let{elementId:r,styles:s}=n.data;this.state.debugMode&&console.log("[TagadaClient] Received style application request:",{elementId:r,styles:s}),this.applyStylesToElement(r,s)}};window.addEventListener("message",e),this.state.debugMode&&console.log("[TagadaClient] Config hot-reload and style manipulation listeners enabled")}applyStylesToElement(e,n){if(typeof document=="undefined")return;let i="tagada-editor-highlight",o=document.getElementById(i);o&&o.remove();let r=p=>{var y;let w=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]).has(p.tagName.toLowerCase()),f=p;if(w){let N=p.parentElement;if((N==null?void 0:N.getAttribute("data-tagada-highlight-wrapper"))==="true"&&N instanceof HTMLElement)f=N;else{let _=document.createElement("div");_.setAttribute("data-tagada-highlight-wrapper","true");let z=window.getComputedStyle(p),ae=z.display;if(ae==="inline"?_.style.display="inline-block":_.style.display=ae,_.style.position="relative",ae==="inline"||ae.includes("inline")){let te=z.verticalAlign;te&&te!=="baseline"&&(_.style.verticalAlign=te)}["width","height","minWidth","minHeight","maxWidth","maxHeight","flex","flexGrow","flexShrink","flexBasis","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","gridArea","alignSelf","justifySelf","boxSizing","gap","rowGap","columnGap","order","aspectRatio"].forEach(te=>{let Ae=te.replace(/([A-Z])/g,"-$1").toLowerCase(),j=z.getPropertyValue(Ae);j&&j.trim()!==""&&(te==="flex"&&j!=="none"&&j!=="0 1 auto"?_.style.flex=j:te==="boxSizing"?_.style.boxSizing=j:_.style.setProperty(Ae,j))}),p.style&&["width","height","min-width","min-height","max-width","max-height","flex","flex-grow","flex-shrink","flex-basis","grid-column","grid-row","grid-column-start","grid-column-end","grid-row-start","grid-row-end","grid-area","align-self","justify-self","box-sizing","gap","row-gap","column-gap","order","aspect-ratio"].forEach(Ae=>{let j=p.style.getPropertyValue(Ae);j&&_.style.setProperty(Ae,j)}),(y=p.parentNode)==null||y.insertBefore(_,p),_.appendChild(p),f=_}}let C=getComputedStyle(w?p:f);(f.style.position==="static"||!f.style.position)&&(f.style.position="relative");let b=document.createElement("div");b.id=i,b.style.position="absolute",b.style.inset="0",b.style.pointerEvents="none",b.style.zIndex="9999",b.style.boxSizing="border-box",b.style.background="none",b.style.border="none",b.style.outline="none",b.style.margin="0",b.style.padding="0";let v=C.borderRadius;v&&(b.style.borderRadius=v),f.appendChild(b);let L=n||{boxShadow:"0 0 0 2px rgb(239 68 68)"};if(Object.entries(L).forEach(([N,W])=>{let _=N.includes("-")?N.replace(/-([a-z])/g,(z,ae)=>ae.toUpperCase()):N;N.includes("-")?b.style.setProperty(N,W):b.style[_]=W}),p.scrollIntoView({behavior:"smooth",block:"center"}),this.state.debugMode){let N=Object.entries(L).map(([W,_])=>"".concat(W,": ").concat(_)).join("; ");console.log("[TagadaClient] Applied styles to highlight div of element #".concat(e,":"),N)}},s=5,a=1e3,l=0,u=p=>{let I=window.getComputedStyle(p);return I.display==="none"||I.visibility==="hidden"||I.opacity==="0"||p.hidden||p.offsetWidth===0||p.offsetHeight===0},d=()=>{let p=document.querySelectorAll('[editor-id~="'.concat(e,'"]'));if(p.length===0){if(l+=1,l>=s){this.state.debugMode&&console.warn('[TagadaClient] Element with editor-id containing "'.concat(e,'" not found after ').concat(s," attempts"));return}this.state.debugMode&&console.warn('[TagadaClient] Element with editor-id containing "'.concat(e,'" not found (attempt ').concat(l,"/").concat(s,"), retrying in ").concat(a/1e3,"s")),setTimeout(d,a);return}let I=null;if(p.length===1)I=p[0];else{for(let w=0;w<p.length;w++)if(!u(p[w])){I=p[w];break}I||(I=p[0])}I&&r(I)};d()}};var Rn=class{constructor(e){this.apiClient=e}async initCheckout(e){return this.apiClient.post("/api/v1/checkout/session/init",e)}async initCheckoutAsync(e){return this.apiClient.post("/api/v1/checkout/session/init-async",e)}async preloadCheckout(e,n){let i=e.funnelSessionId;!i&&n&&(i=n()||void 0);let o=typeof e.navigationEvent=="string"?{type:e.navigationEvent}:e.navigationEvent,r=K(O(O(O({},e),i&&{funnelSessionId:i}),o&&{navigationEvent:o}),{currentUrl:e.currentUrl||(typeof window!="undefined"?window.location.href:void 0)});return this.apiClient.post("/api/v1/checkout/session/preload",r)}async checkAsyncStatus(e){return this.apiClient.get("/api/public/v1/checkout/async-status/".concat(e))}async getCheckout(e,n){let i=new URLSearchParams;n&&i.set("currency",n),i.set("skipAsyncWait","false");let o="/api/v1/checkout-sessions/".concat(e,"/v2").concat(i.toString()?"?".concat(i.toString()):"");return this.apiClient.get(o)}async getCheckoutRaw(e,n){let i=new URLSearchParams;n&&i.set("currency",n),i.set("skipAsyncWait","true");let o="/api/v1/checkout-sessions/".concat(e,"/v2").concat(i.toString()?"?".concat(i.toString()):"");return this.apiClient.get(o)}async updateAddress(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/address"),{data:n})}async setCheckoutInfo(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/checkout-info"),{shippingAddress:n.shippingAddress,billingAddress:n.differentBillingAddress?n.billingAddress:n.shippingAddress,differentBillingAddress:n.differentBillingAddress||!1})}async applyPromotionCode(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/promotions/apply"),{code:n})}async removePromotion(e,n){return this.apiClient.delete("/api/v1/checkout-sessions/".concat(e,"/promotions/").concat(n))}async getAppliedPromotions(e){return this.apiClient.get("/api/v1/checkout-sessions/".concat(e,"/promotions"))}async updateLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items"),{lineItems:n})}async addLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/add"),{lineItems:n})}async removeLineItems(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/remove"),{lineItems:n})}async setItemQuantity(e,n,i,o){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/line-items/set-quantity"),{variantId:n,quantity:i,priceId:o})}async toggleOrderBump(e,n,i){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/toggle-order-bump"),{orderBumpOfferId:n,selected:i})}async updateCustomer(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/customer"),n)}async updateCustomerAndSessionInfo(e,n){return this.apiClient.post("/api/v1/checkout-sessions/".concat(e,"/customer-and-session-info"),n)}async previewCheckoutSession(e){return this.apiClient.post("/api/v1/checkout-sessions/preview",e)}};kn();var Di=class{static findVariant(e,n){for(let i of e){let o=i.variants.find(r=>r.id===n);if(o)return o}return null}static getVariantPrice(e,n="USD"){let i=e.prices.find(r=>r.currency===n);if(i)return i;let o=e.prices.find(r=>r.default);return o||e.prices[0]||null}static getAllVariants(e){let n=[];for(let i of e)if(i.variants)for(let o of i.variants)n.push({product:i,variant:o});return n}static filterVariants(e,n){let i=[];for(let o of e)if(o.variants)for(let r of o.variants)n(r,o)&&i.push({product:o,variant:r});return i}};var Bi=class{static getOrderLineItems(e){return e.items||[]}static getOrderTotal(e){return e.paidAmount||0}static getOrderStatus(e){return e.status||"unknown"}static isOrderCompleted(e){return e.status==="completed"||e.status==="fulfilled"}static isOrderPending(e){return e.status==="pending"||e.status==="processing"}static isOrderCancelled(e){return e.status==="cancelled"||e.status==="refunded"}};function Ja(t,e="USD",n="en-US"){let i=Vt.getDecimalPlaces(e),o;i===0?o=t/100:o=t/Math.pow(10,i);try{return new Intl.NumberFormat(n,{style:"currency",currency:e,minimumFractionDigits:i,maximumFractionDigits:i}).format(o)}catch(r){let s=Vt.getCurrencySymbol(e);return"".concat(s).concat(o.toFixed(i))}}var Vt=class{static getCurrency(e,n="USD"){var o,r,s;let i;return typeof(e==null?void 0:e.currency)=="string"?i=e.currency:(o=e==null?void 0:e.currency)!=null&&o.code?i=e.currency.code:(s=(r=e==null?void 0:e.store)==null?void 0:r.presentmentCurrencies)!=null&&s[0]?i=e.store.presentmentCurrencies[0]:i=n,{code:i,symbol:this.getCurrencySymbol(i),name:this.getCurrencyName(i),decimalPlaces:this.getDecimalPlaces(i)}}static getCurrencySymbol(e){return{USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5",CAD:"C$",AUD:"A$",CHF:"CHF",CNY:"\xA5",SEK:"kr",NOK:"kr",DKK:"kr",PLN:"z\u0142",CZK:"K\u010D",HUF:"Ft",RON:"lei",BGN:"\u043B\u0432",HRK:"kn",RUB:"\u20BD",UAH:"\u20B4",TRY:"\u20BA",BRL:"R$",ARS:"$",CLP:"$",COP:"$",MXN:"$",PEN:"S/",UYU:"$U",VEF:"Bs",ZAR:"R",EGP:"\xA3",MAD:"\u062F.\u0645.",TND:"\u062F.\u062A",DZD:"\u062F.\u062C",LYD:"\u0644.\u062F",NGN:"\u20A6",GHS:"\u20B5",KES:"KSh",UGX:"USh",TZS:"TSh",ETB:"Br",ZMW:"ZK",BWP:"P",SZL:"L",LSL:"L",NAD:"N$",MUR:"\u20A8",SCR:"\u20A8",KWD:"\u062F.\u0643",BHD:"\u062F.\u0628",QAR:"\u0631.\u0642",AED:"\u062F.\u0625",OMR:"\u0631.\u0639.",YER:"\uFDFC",SAR:"\u0631.\u0633",JOD:"\u062F.\u0627",LBP:"\u0644.\u0644",ILS:"\u20AA",INR:"\u20B9",PKR:"\u20A8",BDT:"\u09F3",LKR:"\u20A8",NPR:"\u20A8",AFN:"\u060B",KZT:"\u20B8",UZS:"\u043B\u0432",KGS:"\u043B\u0432",TJS:"SM",TMT:"T",AZN:"\u20BC",GEL:"\u20BE",AMD:"\u058F",KRW:"\u20A9",THB:"\u0E3F",VND:"\u20AB",IDR:"Rp",MYR:"RM",SGD:"S$",PHP:"\u20B1",TWD:"NT$",HKD:"HK$",MOP:"MOP$",BND:"B$",LAK:"\u20AD",KHR:"\u17DB",MMK:"K",BOB:"Bs",PYG:"\u20B2",GTQ:"Q",HNL:"L",NIO:"C$",CRC:"\u20A1",PAB:"B/.",DOP:"RD$",JMD:"J$",TTD:"TT$",BBD:"Bds$",XCD:"EC$",AWG:"\u0192",ANG:"\u0192",SRD:"$",GYD:"G$",VES:"Bs.S",VED:"Bs.D"}[e]||e}static getCurrencyName(e){return{USD:"US Dollar",EUR:"Euro",GBP:"British Pound",JPY:"Japanese Yen",CAD:"Canadian Dollar",AUD:"Australian Dollar",CHF:"Swiss Franc",CNY:"Chinese Yuan",SEK:"Swedish Krona",NOK:"Norwegian Krone",DKK:"Danish Krone",PLN:"Polish Zloty",CZK:"Czech Koruna",HUF:"Hungarian Forint",RON:"Romanian Leu",BGN:"Bulgarian Lev",HRK:"Croatian Kuna",RUB:"Russian Ruble",UAH:"Ukrainian Hryvnia",TRY:"Turkish Lira",BRL:"Brazilian Real",ARS:"Argentine Peso",CLP:"Chilean Peso",COP:"Colombian Peso",MXN:"Mexican Peso",PEN:"Peruvian Sol",UYU:"Uruguayan Peso",VEF:"Venezuelan Bolivar",ZAR:"South African Rand",EGP:"Egyptian Pound",MAD:"Moroccan Dirham",TND:"Tunisian Dinar",DZD:"Algerian Dinar",LYD:"Libyan Dinar",NGN:"Nigerian Naira",GHS:"Ghanaian Cedi",KES:"Kenyan Shilling",UGX:"Ugandan Shilling",TZS:"Tanzanian Shilling",ETB:"Ethiopian Birr",ZMW:"Zambian Kwacha",BWP:"Botswana Pula",SZL:"Swazi Lilangeni",LSL:"Lesotho Loti",NAD:"Namibian Dollar",MUR:"Mauritian Rupee",SCR:"Seychellois Rupee",KWD:"Kuwaiti Dinar",BHD:"Bahraini Dinar",QAR:"Qatari Riyal",AED:"UAE Dirham",OMR:"Omani Rial",YER:"Yemeni Rial",SAR:"Saudi Riyal",JOD:"Jordanian Dinar",LBP:"Lebanese Pound",ILS:"Israeli Shekel",INR:"Indian Rupee",PKR:"Pakistani Rupee",BDT:"Bangladeshi Taka",LKR:"Sri Lankan Rupee",NPR:"Nepalese Rupee",AFN:"Afghan Afghani",KZT:"Kazakhstani Tenge",UZS:"Uzbekistani Som",KGS:"Kyrgyzstani Som",TJS:"Tajikistani Somoni",TMT:"Turkmenistani Manat",AZN:"Azerbaijani Manat",GEL:"Georgian Lari",AMD:"Armenian Dram",KRW:"South Korean Won",THB:"Thai Baht",VND:"Vietnamese Dong",IDR:"Indonesian Rupiah",MYR:"Malaysian Ringgit",SGD:"Singapore Dollar",PHP:"Philippine Peso",TWD:"Taiwan Dollar",HKD:"Hong Kong Dollar",MOP:"Macanese Pataca",BND:"Brunei Dollar",LAK:"Lao Kip",KHR:"Cambodian Riel",MMK:"Myanmar Kyat",BOB:"Bolivian Boliviano",PYG:"Paraguayan Guarani",GTQ:"Guatemalan Quetzal",HNL:"Honduran Lempira",NIO:"Nicaraguan Cordoba",CRC:"Costa Rican Colon",PAB:"Panamanian Balboa",DOP:"Dominican Peso",JMD:"Jamaican Dollar",TTD:"Trinidad and Tobago Dollar",BBD:"Barbadian Dollar",XCD:"East Caribbean Dollar",AWG:"Aruban Florin",ANG:"Netherlands Antillean Guilder",SRD:"Surinamese Dollar",GYD:"Guyanese Dollar",VES:"Venezuelan Bolivar Soberano",VED:"Venezuelan Bolivar Digital"}[e]||e}static getDecimalPlaces(e){var i;return(i={JPY:0,KRW:0,VND:0,IDR:0,LAK:0,KHR:0,MMK:0,PYG:0,VEF:0,VES:0,VED:0}[e])!=null?i:2}};var Mi=class{static getCheckoutSessionId(e){var n;return((n=e.checkoutSession)==null?void 0:n.id)||""}static getLineItems(e){var n;return((n=e.checkoutSession)==null?void 0:n.lineItems)||[]}static getTotal(e){var n;return((n=e.checkoutSession)==null?void 0:n.totalPrice)||0}static isClubMember(e){return e.customerIsClubMember||!1}};var Ui=class{static isValidPromotion(e){return!!(e.id&&e.name)}static getPromotionType(e){return e.type||"unknown"}static hasRules(e){return!!(e.rules&&e.rules.length>0)}static hasActions(e){return!!(e.actions&&e.actions.length>0)}};var Fi=class{static isValidOffer(e){return!!(e.id&&e.summaries&&e.summaries.length>0)}static getOfferTotal(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.totalAmount)||0}static getOfferAdjustedTotal(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.totalAdjustedAmount)||0}static hasItems(e){return!!(e.offerLineItems&&e.offerLineItems.length>0)}static getOfferCurrency(e){var n,i;return((i=(n=e.summaries)==null?void 0:n[0])==null?void 0:i.currency)||"USD"}static getOfferTitle(e,n="en"){var i,o;return((i=e.titleTrans)==null?void 0:i[n])||((o=e.titleTrans)==null?void 0:o.en)||"Offer ".concat(e.id)}};var Hi=class{static isValidOffer(e){return!!(e.id&&e.name&&e.price>0)}static toggleSelection(e){return K(O({},e),{isSelected:!e.isSelected})}static calculatePreview(e,n=0){let i=n+e.price,o=e.isSelected?i:n;return{offer:e,totalAmount:i,adjustedAmount:o}}static getSelectedOffers(e){return e.filter(n=>n.isSelected)}static getSelectedTotal(e){return e.filter(n=>n.isSelected).reduce((n,i)=>n+i.price,0)}};ut();var Za={session:t=>["funnel","session",t],allSessions:()=>["funnel","sessions"],funnelMeta:t=>["funnel","meta",t]};function Br(t,e,n="*"){let i={type:"TAGADAPAY_CONFIG_UPDATE",config:e,timestamp:Date.now()};t.postMessage(i,n)}function Qa(t,e="iframe"){if(typeof document=="undefined")return;let n=document.querySelectorAll(e);n.forEach(i=>{i.contentWindow&&Br(i.contentWindow,t)}),console.log("[ConfigHotReload] Broadcasted config update to ".concat(n.length," iframe(s)"))}function el(t){if(typeof window=="undefined")return()=>{};let e=n=>{var i;((i=n.data)==null?void 0:i.type)==="TAGADAPAY_CONFIG_UPDATE"&&t(n.data.config)};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}}function tl(t,e=150){let n=null;return i=>{n&&clearTimeout(n),n=setTimeout(()=>{t(i),n=null},e)}}Fe();function Mr(t){return typeof window=="undefined"?null:new URLSearchParams(window.location.search).get(t)}function Ee(t,...e){t&&console.log("[TagadaTracker]",...e)}var Kt=class{constructor(){this.config=null;this.client=null;this.initialized=!1;this.initializing=!1}async init(e){var n,i,o,r;if(this.initialized||this.initializing)return Ee(e.debug||!1,"Already initialized or initializing"),this.getSession();this.initializing=!0,this.config=O({debug:!1},e),Ee(this.config.debug,"\u{1F680} Initializing external tracker with SDK...",e);try{let s=Mr("token");s&&(ne(s),Ee(this.config.debug,"\u{1F511} Bootstrapped token from URL")),this.client=Vi({debugMode:this.config.debug,features:{funnel:!0}}),await this.waitForClientReady();let a=await this.initializeFunnel();Ee(this.config.debug,"\u2705 Session initialized (tracking handled by orchestrator):",a),this.initialized=!0;let l=this.getSession();return l&&((i=(n=this.config).onReady)==null||i.call(n,l)),l}catch(s){let a=s instanceof Error?s:new Error(String(s));throw Ee(this.config.debug,"\u274C Initialization failed:",a),(r=(o=this.config).onError)==null||r.call(o,a),a}finally{this.initializing=!1}}getSession(){var n,i;if(!((i=(n=this.client)==null?void 0:n.funnel)!=null&&i.state.context))return null;let e=this.client.funnel.state.context;return{sessionId:e.sessionId,customerId:e.customerId,storeId:e.storeId,funnelId:e.funnelId,currentStepId:e.currentStepId,cmsToken:this.client.state.token||void 0}}isReady(){var e,n;return this.initialized&&!!((n=(e=this.client)==null?void 0:e.funnel)!=null&&n.state.context)}async navigate(e){if(!this.isReady())throw new Error("Tracker not initialized. Call init() first.");Ee(this.config.debug,"\u{1F680} Navigating:",e);let n=e.autoRedirect!==!1;try{let i=await this.client.funnel.navigate({type:e.eventType,data:e.eventData||{}},{autoRedirect:!1});return i!=null&&i.url?(Ee(this.config.debug,"\u2705 Navigation result:",i.url),n&&typeof window!="undefined"&&(window.location.href=e.returnUrl||i.url),{url:i.url}):null}catch(i){throw Ee(this.config.debug,"\u274C Navigation failed:",i),i}}getCustomerId(){var e,n,i,o,r;return((n=(e=this.client)==null?void 0:e.state.auth.customer)==null?void 0:n.id)||((r=(o=(i=this.client)==null?void 0:i.funnel)==null?void 0:o.state.context)==null?void 0:r.customerId)||null}getFunnelSessionId(){var e,n,i;return((i=(n=(e=this.client)==null?void 0:e.funnel)==null?void 0:n.state.context)==null?void 0:i.sessionId)||null}buildUrl(e,n){let i=this.getSession();if(!i)return e;let o=new URL(e,typeof window!="undefined"?window.location.origin:void 0);return o.searchParams.set("funnelSessionId",i.sessionId),i.cmsToken&&o.searchParams.set("token",i.cmsToken),i.funnelId&&o.searchParams.set("funnelId",i.funnelId),o.searchParams.set("storeId",i.storeId),n&&Object.entries(n).forEach(([r,s])=>{o.searchParams.set(r,s)}),o.toString()}getClient(){return this.client}async waitForClientReady(){if(this.client)return new Promise(e=>{let n=0,i=()=>{var o,r;(o=this.client)!=null&&o.state.isInitialized||(r=this.client)!=null&&r.state.token||n>40?e():(n++,setTimeout(i,50))};i()})}async initializeFunnel(){var o,r,s;if(!((o=this.client)!=null&&o.funnel))return null;let e={customerId:((r=this.client.state.auth.customer)==null?void 0:r.id)||"anon_placeholder",sessionId:((s=this.client.state.auth.session)==null?void 0:s.sessionId)||"sess_placeholder"},n={id:this.config.storeId,accountId:this.config.accountId||""},i=this.config.stepId;if(!i)throw new Error("stepId is required for external page tracking (URL mapping does not work for external pages)");return Ee(this.config.debug,"\u{1F50D} Initializing external page at step:",i),this.client.funnel.initialize(e,n,this.config.funnelId||Mr("funnelId")||void 0,i)}},Gi=new Kt;typeof window!="undefined"&&(window.TagadaTracker=Gi);function Vi(t={}){return new Gt(t)}return Yr(nl);})();
8
8
  /*! Bundled license information:
9
9
 
10
10
  detect-europe-js/dist/esm/index.js:
@@ -28,16 +28,21 @@ is-standalone-pwa/dist/esm/index.js:
28
28
  Author: Faisal Salman <f@faisalman.com>
29
29
  MIT License *)
30
30
  */
31
- // Expose SDK exports globally
31
+ // Expose SDK under window.tgd namespace (clean, single global)
32
32
  if (typeof window !== 'undefined' && TagadaSDKBundle) {
33
- window.TagadaSDK = TagadaSDKBundle;
34
- window.createTagadaClient = TagadaSDKBundle.createTagadaClient;
35
- // Config utilities (sync and async)
36
- window.getPluginConfig = TagadaSDKBundle.getPluginConfig; // Sync - reads from meta tags
37
- window.loadPluginConfig = TagadaSDKBundle.loadPluginConfig; // Async - full config loading
38
- // Hot reload utilities
39
- window.onConfigUpdate = TagadaSDKBundle.onConfigUpdate; // Listen for config changes
40
- window.sendConfigUpdate = TagadaSDKBundle.sendConfigUpdate; // Send config updates to iframes
41
- window.broadcastConfigUpdate = TagadaSDKBundle.broadcastConfigUpdate;
33
+ window.tgd = window.tgd || {};
34
+ // Core
35
+ window.tgd.createTagadaClient = TagadaSDKBundle.createTagadaClient;
36
+ // Config utilities
37
+ window.tgd.getPluginConfig = TagadaSDKBundle.getPluginConfig;
38
+ window.tgd.loadPluginConfig = TagadaSDKBundle.loadPluginConfig;
39
+ // Hot reload
40
+ window.tgd.onConfigUpdate = TagadaSDKBundle.onConfigUpdate;
41
+ window.tgd.sendConfigUpdate = TagadaSDKBundle.sendConfigUpdate;
42
+ window.tgd.broadcastConfigUpdate = TagadaSDKBundle.broadcastConfigUpdate;
43
+ // Currency
44
+ window.tgd.formatMoney = TagadaSDKBundle.formatMoney;
45
+ // Full bundle reference
46
+ window.tgd.sdk = TagadaSDKBundle;
42
47
  }
43
48
  //# sourceMappingURL=tagada-sdk.min.js.map