PageSourceSearch

https://www.drinktrade.com/pages/find-my-match

html drinktrade.com collected 2026-09-24 18:19:48 UTC 631,494 bytes, 6,132 lines download raw bytes

1<!doctype html>
2<html class="no-js default-layout" lang="en">
3  <head>
4<script>
5    (function () {
6      try {
7        var HAS_CUSTOMER = false;
8        // Public Customer Account API client_id, injected at build from OAUTH_CLIENT_ID by the
9        // webpack CopyPlugin transform (see webpack.config.js) so it can't drift from the SPA's
10        // value (src/standalone/auth.js). Empty when unset → probe fails closed (guest).
11        var CLIENT_ID = '88fb8b16-5d6f-4d86-bb99-763c54a53eaf';
12        // Only present when a logout link is actually rendered; guard against a blank
13        // routes.account_logout_url (which would otherwise become "<origin>/null").
14        var LOGOUT_URL = "\/account\/logout";
15        var CALLBACK_PATH = '/pages/silent-sso-callback';
16        // Same scopes the SPA already consented for this client, so prompt=none returns a
17        // code with no consent UI when a session is live.
18        var SCOPES = 'openid email customer-account-api:full';
19        var GUARD_KEY = 'trade_sso_guard';
20        var STATE_KEY = 'trade_sso_probe_state';
21        var RETURN_KEY = 'trade_sso_probe_return';
22        var MAX_PROBES = 3;
23        var COOLDOWN_MS = 60000;
24        // Reset the per-identity probe count after a long quiet period so a member stranded by
25        // transient failures (network / discovery hiccup) recovers without needing an SPA visit.
26        var RESET_AFTER_MS = 86400000; // 24h
27
28        var rawPath = window.location.pathname;
29        // Optional leading Markets locale/country segment (e.g. /en-ca) stripped, so route
30        // matching + callback detection hold under localized URLs without misclassifying a
31        // real two-letter page handle that isn't a configured locale.
32        var strippedPath = rawPath.replace(/^\/[a-z]{2}(-[a-z]{2})?(?=\/)/i, '');
33
34        var base64Url = function (bytes) {
35          var s = '';
36          for (var i = 0; i < bytes.length; i++) s += String.fromCharCode(bytes[i]);
37          return btoa(s).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
38        };
39        var randomToken = function () {
40          var arr = new Uint8Array(32);
41          crypto.getRandomValues(arr);
42          return base64Url(arr);
43        };
44        // Cheap non-crypto hash (djb2) of the identity value — used only to detect when the
45        // cookie changes (a fresh login), so we never store the raw token in localStorage.
46        var cheapHash = function (str) {
47          var h = 5381;
48          for (var i = 0; i < str.length; i++) h = ((h << 5) + h + str.charCodeAt(i)) | 0;
49          return String(h >>> 0);
50        };
51        var safeReturn = function (p) {
52          // return_to / client redirects must be a relative same-origin path.
53          return p && p.charAt(0) === '/' && p.charAt(1) !== '/' ? p : '/';
54        };
55        var LOGGING_OUT_COOKIE = 'trade_logging_out';
56        var clearIdentityCookie = function () {
57          // Must match the SPA's write flags (src/js/utils/identity-cookie.ts) or the delete
58          // no-ops; on preview/myshopify hosts where the cookie was never set it's harmless.
59          document.cookie =
60            'trade_identity=; Domain=.drinktrade.com; Path=/; Max-Age=0; Secure; SameSite=Lax';
61        };
62        var hasLoggingOutCookie = function () {
63          var parts = document.cookie.split(';');
64          for (var i = 0; i < parts.length; i++) {
65            var c = parts[i].replace(/^\s+/, '');
66            if (c.indexOf(LOGGING_OUT_COOKIE + '=') === 0) {
67              return c.length > LOGGING_OUT_COOKIE.length + 1;
68            }
69          }
70          return false;
71        };
72        var clearLoggingOutCookie = function () {
73          document.cookie =
74            LOGGING_OUT_COOKIE +
75            '=; Domain=.drinktrade.com; Path=/; Max-Age=0; Secure; SameSite=Lax';
76        };
77        var getIdentity = function () {
78          // Split on ';' and trim — the cookie separator isn't guaranteed to include a space.
79          var parts = document.cookie.split(';');
80          for (var i = 0; i < parts.length; i++) {
81            var c = parts[i].replace(/^\s+/, '');
82            if (c.indexOf('trade_identity=') === 0) {
83              var v = c.slice('trade_identity='.length);
84              return v || null;
85            }
86          }
87          return null;
88        };
89
90        // ---- SPA logout handoff: finish the Online Store session -----------
91        // Dashboard logout already ended the OIDC session and set this cookie.
92        // `/account/logout` does not clear Liquid `customer` under New Customer
93        // Accounts, so follow the real logout URL (Shopify-hosted when customer
94        // accounts are enabled) instead of leaving them signed in on the header.
95        // Clear the flag first so the post-logout landing on origin cannot loop.
96        if (hasLoggingOutCookie()) {
97          clearLoggingOutCookie();
98          clearIdentityCookie();
99          if (HAS_CUSTOMER && LOGOUT_URL) {
100            try {
101              document.documentElement.style.visibility = 'hidden';
102              window.location.replace(new URL(LOGOUT_URL, window.location.origin).href);
103            } catch (e) {}
104            return;
105          }
106          // Guest already — still abort the probe callback. A leftover ?code
107          // would otherwise look like "session live" and re-establish the
108          // Online Store session we just tore down.
109          if (rawPath === CALLBACK_PATH || strippedPath === CALLBACK_PATH) {
110            window.location.replace('/');
111            return;
112          }
113        }
114
115        // ---- Storefront logout teardown (only where a logout link exists) ---
116        if (HAS_CUSTOMER && LOGOUT_URL) {
117          var logoutHref = new URL(LOGOUT_URL, window.location.origin).href;
118          document.addEventListener(
119            'click',
120            function (event) {
121              try {
122                var target = event.target;
123                var anchor = target && target.closest ? target.closest('a') : null;
124                if (!anchor || anchor.href !== logoutHref) return;
125                clearIdentityCookie();
126              } catch (e) {}
127            },
128            true
129          );
130        }
131
132        // ---- Callback: the prompt=none probe returns here -------------------
133        // redirect_uri = origin + CALLBACK_PATH. Runs regardless of `customer` — the probe
134        // proves session liveness but does not itself establish the Online Store session, so
135        // `customer` is usually nil here, but if it is already populated we still return the
136        // member to where they were rather than stranding them on this blank page.
137        if (rawPath === CALLBACK_PATH || strippedPath === CALLBACK_PATH) {
138          var params = new URLSearchParams(window.location.search);
139          var code = params.get('code');
140          var cbError = params.get('error');
141          var returnedState = params.get('state');
142          var expectedState = null;
143          var ret = '/';
144          try {
145            expectedState = sessionStorage.getItem(STATE_KEY);
146            ret = sessionStorage.getItem(RETURN_KEY) || '/';
147            sessionStorage.removeItem(STATE_KEY);
148            sessionStorage.removeItem(RETURN_KEY);
149          } catch (e) {}
150          ret = safeReturn(ret);
151
152          // CSRF: Shopify echoes our state. A missing/mismatched state means this is not our
153          // probe response — bail to a safe page without touching cookies or markers.
154          if (!returnedState || !expectedState || returnedState !== expectedState) {
155            window.location.replace(ret);
156            return;
157          }
158          if (code && !cbError) {
159            // Session confirmed live. If the Online Store session is somehow already present,
160            // just return; otherwise the now-guaranteed-silent sign-in establishes it.
161            window.location.replace(
162              HAS_CUSTOMER
163                ? ret
164                : '/customer_authentication/login?return_to=' + encodeURIComponent(ret)
165            );
166            return;
167          }
168          // Never show a login screen. Only a definitive "no session" — login_required /
169          // interaction_required, matching auth.js — means the cookie is stale, so clear it and
170          // stop re-probing until the SPA rewrites it. Other errors (consent/config/transient)
171          // leave the cookie intact so a real session isn't dropped; the guard bounds retries. A
172          // present `customer` means the cookie is valid regardless, so never clear it then.
173          if (
174            !HAS_CUSTOMER &&
175            (cbError === 'login_required' || cbError === 'interaction_required')
176          ) {
177            clearIdentityCookie();
178          }
179          window.location.replace(ret);
180          return;
181        }
182
183        // Logged in already — nothing to probe (only the logout listener above applies).
184        if (HAS_CUSTOMER) return;
185
186        // Fail closed when no client_id was injected at build (OAUTH_CLIENT_ID unset → empty, or
187        // the un-substituted placeholder leaked): the probe can't succeed, so don't redirect to
188        // the authorize endpoint (which would surface an OAuth error and needlessly hide the
189        // page). The callback handler above still runs. A real client_id is a UUID, never '_…'.
190        if (!CLIENT_ID || CLIENT_ID.charAt(0) === '_') return;
191
192        // Feature-detect the APIs the async probe needs BEFORE hiding the page, so an
193        // unsupported browser simply renders guest instead of staying hidden until the safety
194        // timeout when a later `fetch`/`crypto.subtle`/`TextEncoder` call throws post-hide.
195        if (
196          typeof Promise === 'undefined' ||
197          typeof fetch === 'undefined' ||
198          typeof TextEncoder === 'undefined' ||
199          typeof URL === 'undefined' ||
200          !window.crypto ||
201          !crypto.subtle ||
202          !crypto.subtle.digest ||
203          !crypto.getRandomValues
204        ) {
205          return;
206        }
207
208        // ---- Eligibility to start a probe -----------------------------------
209        // Never probe on Shopify's own auth/checkout/cart routes. `/customer_authentication`
210        // is the sign-in route the callback hands off to; a full-navigation redirect must
211        // never interrupt checkout/cart. Segment-boundary match (not bare prefix) so handles
212        // like `/checkout-help` still bootstrap; both `/checkout` and `/checkouts` guarded
213        // (live checkout is served under `/checkouts/<token>`).
214        var isGuardedRoute = function (p) {
215          return (
216            p === '/customer_authentication' ||
217            p.indexOf('/customer_authentication/') === 0 ||
218            p === '/checkout' ||
219            p.indexOf('/checkout/') === 0 ||
220            p === '/checkouts' ||
221            p.indexOf('/checkouts/') === 0 ||
222            p === '/cart' ||
223            p.indexOf('/cart/') === 0
224          );
225        };
226        if (isGuardedRoute(rawPath) || isGuardedRoute(strippedPath)) return;
227
228        var identity = getIdentity();
229        if (!identity) return;
230
231        // Identity-keyed loop guard. A fresh login (new cookie value) resets the guard so it
232        // probes immediately; the same identity is bounded to MAX_PROBES total, spaced
233        // COOLDOWN_MS apart — so a non-persisting session (ITP) gets a few background
234        // redirects and then stops, rather than looping forever or being stranded by a stale
235        // timer. Not reset when `customer` populates.
236        var idHash = cheapHash(identity);
237        var now = Date.now();
238        var guard = null;
239        try {
240          guard = JSON.parse(localStorage.getItem(GUARD_KEY) || 'null');
241        } catch (e) {}
242        if (!guard || guard.id !== idHash) {
243          guard = { id: idHash, count: 0, until: 0 };
244        } else if (now - (guard.until - COOLDOWN_MS) > RESET_AFTER_MS) {
245          // Same identity, but the last probe was long ago — reset the count so a member
246          // stranded by earlier transient failures can recover without an SPA visit.
247          guard.count = 0;
248        }
249        if (guard.count >= MAX_PROBES) return;
250        if (now < guard.until) return;
251
252        // Preserve the hash fragment alongside path + query so anchor / hash-route deep-links
253        // (e.g. /pages/faq#returns) survive the round trip.
254        var returnTo = rawPath + window.location.search + window.location.hash;
255        var state = randomToken();
256        var codeVerifier = randomToken();
257
258        // Commit the guard + probe state up front so a redirect that never returns can't loop.
259        guard.count += 1;
260        guard.until = now + COOLDOWN_MS;
261        try {
262          localStorage.setItem(GUARD_KEY, JSON.stringify(guard));
263          sessionStorage.setItem(STATE_KEY, state);
264          sessionStorage.setItem(RETURN_KEY, returnTo);
265        } catch (e) {
266          return;
267        }
268
269        // Anti-flash: the redirect below is async (discovery + PKCE digest), so without this
270        // the guest page would paint and head analytics fire before it. Hide now; reveal if
271        // the probe can't complete so a failure/slow-network never strands a blank page.
272        var docEl = document.documentElement;
273        var revealed = false;
274        var reveal = function () {
275          if (revealed) return;
276          revealed = true;
277          try {
278            docEl.style.visibility = '';
279          } catch (e) {}
280        };
281        try {
282          docEl.style.visibility = 'hidden';
283        } catch (e) {}
284        var revealTimer = setTimeout(reveal, 4000);
285
286        Promise.all([
287          // Discovery is same-origin on the storefront domain; resolves the authorize
288          // endpoint without hardcoding a shop-specific URL (as the SPA does).
289          fetch(window.location.origin + '/.well-known/openid-configuration').then(function (r) {
290            return r.json();
291          }),
292          // PKCE S256. Public clients must send a code_challenge on /authorize. We never
293          // exchange the code (only its presence signals a live session), so the verifier
294          // is discarded.
295          crypto.subtle
296            .digest('SHA-256', new TextEncoder().encode(codeVerifier))
297            .then(function (digest) {
298              return base64Url(new Uint8Array(digest));
299            }),
300        ])
301          .then(function (results) {
302            var config = results[0];
303            var codeChallenge = results[1];
304            if (!config || !config.authorization_endpoint) {
305              clearTimeout(revealTimer);
306              reveal();
307              return;
308            }
309            var url = new URL(config.authorization_endpoint);
310            url.searchParams.set('client_id', CLIENT_ID);
311            url.searchParams.set('response_type', 'code');
312            url.searchParams.set('redirect_uri', window.location.origin + CALLBACK_PATH);
313            url.searchParams.set('scope', SCOPES);
314            url.searchParams.set('state', state);
315            // OIDC nonce: required alongside the `openid` scope. We never read the id_token,
316            // so the value only needs to be present, not verified.
317            url.searchParams.set('nonce', randomToken());
318            url.searchParams.set('code_challenge', codeChallenge);
319            url.searchParams.set('code_challenge_method', 'S256');
320            // prompt=none: live session → ?code, no session → ?error=login_required. Never UI.
321            url.searchParams.set('prompt', 'none');
322            clearTimeout(revealTimer);
323            window.location.replace(url.toString());
324          })
325          .catch(function () {
326            // Discovery/crypto failed — reveal the page and render guest; the guard stays set
327            // so we don't hammer.
328            clearTimeout(revealTimer);
329            reveal();
330          });
331      } catch (e) {}
332    })();
333  </script>
333
334    <!-- Start of Shoplift scripts -->
335    <!-- 2026-09-23T14:54:56.2512818Z -->
336<style>.shoplift-hide { opacity: 0 !important; }</style>
337<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
338<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-09-24T18:15:04.4855897Z */(function(){"use strict";var te=document.createElement("style");te.textContent=`#shoplift-preview-control{position:fixed;max-width:332px;height:56px;background-color:#141414;z-index:9999;bottom:20px;display:flex;border-radius:8px;box-shadow:13px 22px 7px #0000,9px 14px 7px #00000003,5px 8px 6px #0000000d,2px 4px 4px #00000017,1px 1px 2px #0000001a,0 0 #0000001a;align-items:center;margin:0 auto;left:16px;right:16px;opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s .4s}#shoplift-preview-control.visible{opacity:1;transform:translateY(0);visibility:visible;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s 0s}#shoplift-preview-control *{font-family:Inter,sans-serif;color:#fff;box-sizing:border-box;font-size:16px}#shoplift-preview-variant-title{font-weight:400;line-height:140%;font-size:16px;text-align:start;letter-spacing:-.16px;flex-grow:1;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}#shoplift-preview-variant-selector{position:relative;display:block;padding:6px 0;height:100%;min-width:0;flex:1 1 auto}#shoplift-preview-variant-menu-trigger{border:none;cursor:pointer;width:100%;background-color:transparent;padding:0 16px;border-left:1px solid #333;border-right:1px solid #333;height:100%;display:flex;align-items:center;justify-content:start;gap:8px}#shoplift-preview-variant-selector .menu-variant-label{width:24px;height:24px;border-radius:50%;padding:6px;display:flex;justify-content:center;align-items:center;font-size:12px;font-style:normal;font-weight:600;line-height:100%;letter-spacing:-.12px;flex-shrink:0}#shoplift-preview-variant-selector .preview-variant-menu{position:absolute;bottom:110%;transform:translate3d(0,20px,0);visibility:hidden;pointer-events:none;opacity:0;cursor:pointer;background-color:#141414;border:1px solid #141414;border-radius:6px;width:100%;max-height:156px;overflow-y:auto;box-shadow:0 8px 16px #0003;z-index:1;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s .3s}#shoplift-preview-variant-selector .preview-variant-menu.preview-variant-menu__visible{visibility:visible;pointer-events:auto;opacity:100;transform:translateZ(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s 0s}@media screen and (max-width:400px){#shoplift-preview-variant-selector .preview-variant-menu{position:fixed;left:0;right:0;width:auto;bottom:110%}}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item{padding:12px 16px;display:flex;overflow:hidden}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item .menu-variant-label{margin-right:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item span{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;white-space:nowrap;color:#f6f6f6;font-size:14px;font-style:normal;font-weight:500}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:hover{background-color:#545454}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}#shoplift-preview-control div:has(#shoplift-exit-preview-button){padding:0 16px}#shoplift-exit-preview-button{padding:6px 8px;font-weight:500;line-height:75%;border-radius:4px;background-color:transparent;border:none;text-decoration:none}#shoplift-exit-preview-button:hover{cursor:pointer;background-color:#333}#shoplift-preview-subscription-warning{position:relative;display:flex;align-items:center;gap:6px;padding:6px 10px;margin:0 4px;border-left:1px solid #333;cursor:help;outline:none}#shoplift-preview-subscription-warning__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background-color:#f59e0b;color:#141414!important;font-weight:700;font-size:12px!important;line-height:1;flex-shrink:0}#shoplift-preview-subscription-warning__label{font-size:13px!important;font-weight:500;color:#fbbf24!important;text-wrap:nowrap;white-space:nowrap}#shoplift-preview-subscription-warning__tooltip{position:absolute;bottom:calc(100% + 8px);right:0;max-width:320px;width:max-content;padding:10px 12px;border-radius:6px;background-color:#1f1f1f;color:#fff!important;font-size:12px!important;line-height:1.4!important;box-shadow:0 8px 16px #0000004d;z-index:10000;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s .2s;pointer-events:none}#shoplift-preview-subscription-warning__tooltip.shoplift-preview-subscription-warning__tooltip--visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s 0s}#shoplift-preview-subscription-warning:focus-visible{box-shadow:inset 0 0 0 2px #f59e0b;border-radius:4px}#shoplift-preview-control:has(#shoplift-preview-subscription-warning){max-width:480px}/*$vite$:1*/`,document.head.appendChild(te);var fe=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
3387|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+/1\\.0;|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/",ge=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function me(){if(z instanceof RegExp)return z;try{z=new RegExp(fe,"i")}catch{z=ge}return z}var ye=a=>typeof a=="string"&&a!=="";function ve(a){return ye(a)&&me().test(a)}var we=ve;class X{timestamp;constructor(){this.timestamp=new Date}}class be extends X{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Se extends X{type;path;constructor(e){super(),this.type=4,this.path=e}}class Ce extends X{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class ie extends Error{isBot;constructor(){super(),this.isBot=!0}}function Te(a,e,t){for(const i of e.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}re(a,e,(i,s,r,o,n)=>n(s,r),t)}function U(a,e,t){for(const i of e.selectors)ne(a,e.testId,e.hypothesisId,i,t??(()=>{}));re(a,e,ne,t??(()=>{}))}function se(a){return a.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function re(a,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(a,e.testId,e.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function ne(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let o=0;o<r.length;o++){let n=r.item(o);if(n instanceof HTMLElement&&n.dataset.shoplift!==""){n.dataset.shoplift="";for(const l of i.actions.sort(Re))n=Ie(a,i.cssSelector,n,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Ie(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Pe(t,i.scope,i.value);break;case"css":Ae(a,e,i.value);break;case"js":ke(a,t,i);break;case"copy":return Ee(t);case"remove":xe(t);break;case"move":_e(t,parseInt(i.value));break}return t}function Pe(a,e,t){a.setAttribute(e,t)}function Ae(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function ke(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function Ee(a){const e=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(e,a.nextSibling),e}function xe(a){a.remove()}function _e(a,e){if(e===0)return;const t=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(t+e,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",a)}function Re(a,e){return oe(a)-oe(e)}function oe(a){return a.type==="copy"||a.type==="remove"?0:1}
338const M={Template:0,UrlRedirect:2,Script:3,Price:5},De="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",Ve="data:image/svg+xml,%3csvg%20width='14'%20height='24'%20viewBox='0%200%2014%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.3976%2014.5255C12.2833%2013.8788%2012.0498%2013.3024%2011.6952%2012.7961C11.3416%2012.2898%2010.9209%2011.8353%2010.4353%2011.4317C9.94868%2011.0291%209.43546%2010.6488%208.89565%2010.292C8.48487%2010.049%208.09577%209.78565%207.72637%209.50402C7.35697%209.2224%207.08016%208.89503%206.89694%208.51987C6.71273%208.14471%206.67826%207.69533%206.79055%207.1697C6.86345%206.83216%206.97476%206.54647%207.12351%206.31162C7.27324%206.07778%207.47124%205.89986%207.7175%205.77684C7.96377%205.65483%208.21989%205.59383%208.48389%205.59383C8.88087%205.59383%209.17639%205.7016%209.3734%205.91714C9.56943%206.13268%209.68271%206.42345%209.71424%206.78946C9.74576%207.15547%209.72015%207.55401%209.63839%207.98509C9.55663%208.41617%209.43645%208.84724%209.27687%209.27934L13.5127%208.80149C13.9638%207.52656%2014.1017%206.42447%2013.9264%205.49725C13.751%204.56901%2013.2664%203.85122%2012.4724%203.34491C12.239%203.19648%2011.9779%203.07041%2011.6893%202.96569L12.0026%201.50979L9.86397%200L7.3875%201.50979L7.11169%202.78878C6.65166%202.8874%206.21724%203.01957%205.8114%203.19038C4.85292%203.594%204.06684%204.15115%203.45117%204.86385C2.83452%205.57655%202.42571%206.40108%202.22378%207.33847C2.06616%208.06947%202.04942%208.70796%202.17551%209.25087C2.30061%209.7948%202.52028%2010.2828%202.8355%2010.7139C3.14974%2011.145%203.51816%2011.5344%203.93977%2011.881C4.36039%2012.2288%204.782%2012.5521%205.20164%2012.851C5.68334%2013.1702%206.13844%2013.5169%206.56497%2013.8921C6.99052%2014.2672%207.31954%2014.7125%207.55004%2015.228C7.78055%2015.7445%207.81502%2016.3769%207.65347%2017.1262C7.56482%2017.5389%207.43676%2017.8765%207.27028%2018.1388C7.10381%2018.4011%206.89596%2018.5983%206.64772%2018.7295C6.3985%2018.8606%206.12071%2018.9267%205.8114%2018.9267C5.21641%2018.9267%204.79776%2018.6034%204.62833%2018.1632C4.4589%2017.7229%204.47367%2017.2583%204.60075%2016.5639C4.72782%2015.8705%205.05092%2015.1395%205.37107%2014.3699H1.17665C1.17665%2014.3699%200.207341%2016.1115%200.0310135%2017.6762C-0.0655232%2018.5302%200.0635208%2019.2653%200.41519%2019.8844C0.76686%2020.5036%201.33032%2020.9814%202.10655%2021.319C2.39222%2021.443%202.7104%2021.5447%203.05813%2021.623L2.54589%2024H7.17473L7.7047%2021.5386C8.08493%2021.442%208.43857%2021.3231%208.76562%2021.1787C9.73985%2020.7476%2010.52%2020.1427%2011.1071%2019.3649C11.6932%2018.5871%2012.0873%2017.7291%2012.2892%2016.7917C12.4744%2015.9295%2012.5099%2015.1741%2012.3966%2014.5275L12.3976%2014.5255Z'%20fill='white'/%3e%3c/svg%3e";async function Oe(a){let e=a.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,o=>
338o.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function F(a,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function ee(a,e){return e}function q(a,e=!1,t=!1,i=","){const s=a/100;if(t){const o=Math.round(s).toLocaleString("en-US");return i!==","?o.replace(/,/g,i):o}else{const r=e?",":".",o=s.toFixed(2).split("."),n=parseInt(o[0],10),l=o[1]??"00",c=n.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${l}`:e?`${c.replace(/,/g,".")}${r}${l}`:`${c}${r}${l}`}}function H(a,e,t,i){const s=e.replace("{{amount}}",q(a,!1,!1)).replace("{{amount_no_decimals}}",q(a,!1,!0)).replace("{{amount_with_comma_separator}}",q(a,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",q(a,!0,!0)).replace("{{amount_with_space_separator}}",q(a,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",q(a,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",q(a,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",q(a,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",q(a,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",q(a,!1,!0,". "));return i?`${s} ${t}`:s}function ae(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const e=new Map;for(const[t,i,s]of a.variants)e.set(t,{priceInCents:i,compareAtPriceInCents:s});return e}function Le(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat:o,currency:n,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===e)a.innerHTML=H(s,o,n,l);else if(a.getAttribute("data-sl-attribute-cap")===e)r<=0||r<=s?a.remove():a.innerHTML=H(r,o,n,l);else if(a.getAttribute("data-sl-attribute-discount")===e&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),u=ae(H(r-s,o,n,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${u}`:h==="both"&&(a.textContent=`-${d}% (-${u})`)}}function $e(a){const e=[],t={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){e.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[t],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const o=r<=0||r<=s;if(e.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[t],actions:[{id:`cap-action-${i}`,type:o?"remove":"innerHtml",scope:"compare-at-price",value:o?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!o&&r>s){const n=Math.round((r-s)/r*100),l=ae(H(r-s,a.moneyFormat,a.currency,!1));e.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[t],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent';                    if (format === 'percent') {                      element.textContent = '-${n}%';                    } else if (format === 'amount') {                      element.textContent = '-${l}';                    } else if (format === 'both') {                      element.textContent = '-${n}% (-${l})';                    }`}]})}}return e}const Me=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},qe=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),He=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),K=a=>a.replace(/#slr-[a-z0-9]+$/,""),tt="modulepreload",it=function(a){return"/"+a},st={},Ne=function(e,t,i){let s=Promise.resolve();function r(o){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=o,window.dispatchEvent(n),!n.defaultPrevented)throw o}return s.then(o=>{for(const n of o||[])n.status==="rejected"&&r(n.reason);return e().catch(r)})};function le(a,e,t){const i=t?a.plans.filter(c=>!c.variantId||c.variantId===t):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const o=e?s:r,n=e?r:s;if(t)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!o.includes(d)&&!n.includes(d)&&n.push(d);const l={};for(let c=0;c<n.length;c++){const d=n[c],u=o[c];d&&u&&(l[d]=u)}return{showPlanIds:o,hidePlanIds:n,swapMap:l}}function ce(a,e,t){const i=e?a.plans.find(r=>r.variantId===e):void 0;if(i)return i.direction;if(t){const r=a.plans.find(o=>o.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function J(a,e){const t=e?a.plans.filter(r=>!r.productId||r.productId===e):a.plans,i={};for(const r of t)i[r.existingShopifyPlanId]=r.existingDiscountAmount,i[r.createdShopifyPlanId]=r.existingDiscountAmount;
338const s=Math.max(...Object.values(i),0);return{discountMap:i,maxDiscount:s}}function W(a){const e=document.querySelector('form[action*="/cart/add"] input[name="product-id"]')?.value;if(e)return e;if(a){for(const r of Array.from(document.querySelectorAll("[data-sl-attribute-p]"))){const o=r.getAttribute("data-sl-attribute-p");if(!o)continue;const n=a.variants.find(l=>l[0]===o);if(n?.[3])return n[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(o=>o[0]===s);if(r?.[3])return r[3]}}const t=window,i=t.ShopifyAnalytics?.meta?.product?.id??t.meta?.product?.id;return i!=null?String(i):null}function D(a,e){return a.widget.selectors[e]??[]}function N(a,e){return a.replace(/[\d.]+%/,`${e}%`)}function $(a,e){const t=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let i=t.nextNode();for(;i;){if(i.nodeValue!==null){const s=e(i.nodeValue);if(s!==i.nodeValue){i.nodeValue=s;return}}i=t.nextNode()}}function de(a,e){return a===null?!1:a==="decrease"?!e:e}async function Ue(a){if(a.subscriptionSwapDone)return;const e=a.getActiveAssignment();if(!e)return;const t=a.getHypothesis(e.hypothesisId);if(!t?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=t.subscriptionData,s=t.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const o=i.plans.some(d=>d.variantId);let n=!1,l=!1;function c(){if(!l){l=!0;try{const d=o?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:u,hidePlanIds:h,swapMap:p}=le(i,s,d);a.swapMap=p;const b=D(i,"widgetParent"),E=D(i,"subscriptionPlans"),S=D(i,"subscriptionInput");if(!b.length||!E.length||!S.length)return;const C=document.querySelector(b[0].selector);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(E[0].selector);if(!_?.shadowRoot)return;const T=S[0].selector;let m=null;if(i.widget.widgetType==="buttons"||i.widget.widgetType==="radio"){const y=Array.from(_.shadowRoot.querySelectorAll(T));if(!y.length)return;for(const v of y){const g=v.closest("label");g&&(u.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>u.includes(v.value)&&v.checked),I=y.some(v=>h.includes(v.value)&&v.checked);if((w||I)&&(n=!1),!w&&!n){n=!0;for(const v of y)if(u.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&u.includes(f.value)?f.value:u[0]??null}else if(i.widget.widgetType==="dropdown"){const y=_.shadowRoot.querySelector("select");if(!y)return;for(const w of Array.from(y.options))h.includes(w.value)&&(w.style.display="none",w.disabled=!0);if(h.includes(y.value)){const w=Array.from(y.options).find(I=>u.includes(I.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=u.includes(y.value)?y.value:u[0]??null}if(m){const y=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const w of y)w.value!==m&&(w.value=m)}}finally{l=!1}}}if(a.subscriptionHideWrongPlans=c,a.swapMap=le(i,s).swapMap,c(),o){const d=document.querySelector("select[name='id'], input[name='id']");d&&d.addEventListener("change",c)}}function B(a){const e=D(a,"widgetParent");return e.length?document.querySelector(e[0].selector)?.shadowRoot??null:null}function Y(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function Z(a,e){const t=new URLSearchParams(window.location.search).get("variant");if(t)return t;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function Fe({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed — skipping"),()=>{};function r(n){if(i){const l=i();if(l)return e[l]??l}return e[n]??n}const o=function(n,l){if((typeof n=="string"?n:n instanceof URL?n.href:n.url).includes("/cart/add")&&l?.body)try{if(l.body instanceof FormData){const d=l.body.get("selling_plan");d?l.body.set("selling_plan",r(String(d))):(!d||d==="")&&t&&l.body.set("properties[_slpt]",t)}
338else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const u of d.items){const h=String(u.selling_plan??"");h?u.selling_plan=r(h):!u.selling_plan&&t&&(u.properties||(u.properties={}),u.properties._slpt=t)}else if(d.id){const u=String(d.selling_plan??"");u?d.selling_plan=r(u):!d.selling_plan&&t&&(d.properties||(d.properties={}),d.properties._slpt=t)}l.body=JSON.stringify(d)}}catch(d){s("[SUB-INTERCEPT] body parse failed; cart-add proceeds with un-swapped plan",d)}return a.call(window,n,l)};return o.__shoplift_intercepted=!0,window.fetch=o,function(){window.fetch===o&&(window.fetch=a)}}function Be({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed — skipping"),()=>{};const e=window.fetch,t=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview — cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):e.call(window,i,s)};return t.__shoplift_intercepted=!0,window.fetch=t,function(){window.fetch===t&&(window.fetch=e)}}function pe({data:a,runUpdates:e,debounceMs:t=150}){let i=null;function s(){i&&clearTimeout(i),e(),i=setTimeout(e,t)}let r=null;const o=[],n={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const p of o)p.disconnect();o.length=0;for(const p of Array.from(h.querySelectorAll("*")))if(p.shadowRoot){const b=new MutationObserver(s);b.observe(p.shadowRoot,n),o.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(p=>{p.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,n),!0):!1}const d=document.body||document.documentElement,u=new MutationObserver(()=>{c()&&s()});return u.observe(d,{childList:!0,subtree:!0}),c()&&s(),e(),function(){i&&(clearTimeout(i),i=null),u.disconnect(),r&&(r.disconnect(),r=null);for(const p of o)p.disconnect();o.length=0}}async function ze(a){if(a.subscriptionPriceDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=t?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=t?.subscriptionData?t:i?.hypothesis;if(!s?.subscriptionData)return;const r=t?.subscriptionData?e.testId:i.testId;a.subscriptionPriceDone=!0;const o=s.subscriptionData,n=s.isControl,l=s.priceData,c=o.widget.widgetType;let d=W(l),u=J(o,d),h=u.discountMap,p=u.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,u=J(o,d),h=u.discountMap,p=u.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`))}a.log(`[SUB-PRICE] side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`),a.updatePriceTestHiddenInputs(r,n?"control":"variant",!1);function E(){if(!l)return null;const g=j(l),P=Z(g),A=ce(o,P,d);if(!de(A,n))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:G(k.priceInCents,l),formattedDiscounted:G(k.priceInCents*(1-p/100),l)}:null}Fe({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(o);if(!g)return null;const P=Y(o,g);if(!P)return null;const A=D(o,"subscriptionInput"),k=A.length?A[0].selector:'input[name="rc_plan"]';return P.querySelector(`${k}:checked`)?.value??null}});function S(g){const P=D(o,"subscriptionDiscount");for(const A of P)if(A.selector.includes("badge")||A.selector.includes("__badge")){const k=g.querySelector(A.selector);k?.textContent&&!k.textContent.includes(`${p}%`)&&$(k,x=>N(x,p))}}function C(g){const P=E();if(!P)return;const A=D(o,"subscriptionCompareAt");for(const k of A){const x=g.querySelector(k.selector)||g.querySelector(`[part~="${k.selector}"]`);x?.textContent&&!x.textContent.includes(P.formattedVariantPrice)&&$(x,R=>/\d/.test(R)?P.formattedVariantPrice:R)}}function _(g,P){const A=D(o,"subscriptionCompareAt"),k=P===0?"none":"";for(const x of A){const R=g.querySelector(x.selector)||g.querySelector(`[part~="${x.selector}"]`);R&&(k==="none"?R.style.display!=="none"&&(R.style.display="none"):R.style.display==="none"&&(R.style.display=""))}}function T(g){const P=D(o,"subscriptionInput"),A=P.length?P[0].selector:'input[name="rc_plan"]',k=D(o,"subscriptionPlanDiscount"),x=k.length?k[0].selector:".rc-plans-button__discount";for(const R of Array.from(g.querySelectorAll("label"))){const O=R.querySelector(A),V=R.querySelector(x);
338if(O&&V){const L=h[O.value];if(L!==void 0){if(L===0)V.style.display!=="none"&&(V.style.display="none");else if(V.style.display==="none"&&(V.style.display=""),V.textContent){const Q=V.textContent.match(/[\d.]+%/)?.[0];Q&&Q!==`${L}%`&&$(V,et=>N(et,L))}}}}}function m(g){const P=g.querySelector("select");if(P)for(const A of Array.from(P.options)){const k=h[A.value];if(k!==void 0&&A.textContent){const x=A.textContent.match(/[\d.]+%/)?.[0];x&&x!==`${k}%`&&(A.textContent=N(A.textContent,k))}}}function y(g,P){const k=D(o,"subscriptionDiscount").filter(x=>x.selector.includes("benefit")||x.selector==="rc-benefits");for(const x of k){const R=g.querySelector(x.selector);if(R?.shadowRoot){for(const O of Array.from(R.shadowRoot.querySelectorAll("li")))if(O.textContent?.includes("Save")){const V=O;if(P===0)V.style.display!=="none"&&(V.style.display="none");else{V.style.display==="none"&&(V.style.display="");const L=O.textContent.match(/[\d.]+%/)?.[0];L&&L!==`${P}%`&&$(O,Q=>N(Q,P))}}}}}let w=!1;function I(){if(!w){w=!0;try{if(b(),d!==null&&Object.keys(h).length===0)return;const g=B(o);if(!g)return;S(g),l&&C(g);const P=Y(o,g);let A=p;if(P){const k=D(o,"subscriptionInput"),x=k.length?k[0].selector:'input[name="rc_plan"]',R=P.querySelector(`${x}:checked`);if(R){const O=h[R.value];O!==void 0&&(A=O)}c==="buttons"||c==="radio"?T(P):m(P)}_(g,A),y(g,A)}finally{w=!1}}}function f(){const g=E();if(!g)return;const P=B(o);if(!P)return;const A=D(o,"onetimeToggle"),k=A.length?A[0].selector:'input[value="onetime"]';if(!P.querySelector(k)?.checked)return;const R=D(o,"subscriptionPrice");for(const O of R){const V=P.querySelector(O.selector)||P.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(g.formattedDiscounted)&&$(V,L=>/\d/.test(L)?g.formattedDiscounted:L)}}function v(){a.subscriptionHideWrongPlans&&a.subscriptionHideWrongPlans(),I(),a.subscriptionUpdateOneTime&&a.subscriptionUpdateOneTime(),f()}pe({data:o,runUpdates:v})}async function We(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.hypothesis;if(!r?.subscriptionData||!r.priceData)return;const o=i?e.testId:s.testId;a.subscriptionOneTimeDone=!0;const n=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,u=d?"control":"variant";a.slptValue=`${o}:${u}:f`,a.updatePriceTestHiddenInputs(o,u,!1);function h(){const p=B(n);if(!p)return;const b=Z(c);if(!b)return;const E=W(l),S=ce(n,b,E);if(!de(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(n,"onetimePrice");if(!T.length)return;const m=D(n,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',I=p.querySelector(y)??p;for(const f of T){let v=null;try{v=I.querySelector(f.selector)}catch{v=null}v??=I.querySelector(`[part~="${f.selector}"]`),v&&v.textContent&&!v.textContent.includes(_)&&$(v,g=>/\d/.test(g)?_:g)}}a.subscriptionUpdateOneTime=h,h()}async function Ge(a,e){const{subscriptionPreviewRender:t}=await Ne(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>Xe);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function je(a,e){const t=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!t.length||!i.length||!s.length){e("[SUB-GLOBAL-HIDE] Missing required selectors — skipping");return}const r=t[0].selector,o=i[0].selector,n=s[0].selector;let l=!1,c=null,d=!1;function u(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const C=document.querySelector(r);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(o);if(!_?.shadowRoot)return;_.shadowRoot!==c&&(c=_.shadowRoot,l=!1);let T=0;if(a.widget.widgetType==="buttons"||a.widget.widgetType==="radio"){const m=Array.from(_.shadowRoot.querySelectorAll(n));for(const f of m)if(a.planIds.includes(f.value)){f.disabled||(f.disabled=!0);const v=f.closest("label");v&&v.style.display!=="none"&&(v.style.display="none",T++)}const y=m.filter(f=>!a.planIds.includes(f.value));if(!y.some(f=>f.checked)&&!l&&y.length>0){l=!0;const f=y[0];f.closest("label")?.click(),f.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible plan input=${f.value}`)}const I=y.find(f=>f.checked)??y[0];
338if(I){const f=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const v of f)v.value!==I.value&&(v.value=I.value,e(`[SUB-GLOBAL-HIDE] Mirrored plan id ${I.value} to form selling_plan input`))}}else if(a.widget.widgetType==="dropdown"){const m=_.shadowRoot.querySelector("select");if(!m)return;for(const I of Array.from(m.options))a.planIds.includes(I.value)&&(I.style.display!=="none"&&(I.style.display="none"),I.disabled||(I.disabled=!0),T++);const y=Array.from(m.options).filter(I=>!a.planIds.includes(I.value)),w=y.some(I=>I.value===m.value);y.length>0&&!w&&!l&&(l=!0,m.value=y[0].value,m.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible option=${y[0].value}`))}T>0&&e(`[SUB-GLOBAL-HIDE] Hidden ${T} B-side plan buttons`)}const p={childList:!0,subtree:!0,characterData:!0};let b=null;function E(C){b?.disconnect(),b=new MutationObserver(()=>u()),b.observe(C,p)}function S(){const C=document.querySelector(r);if(!C?.shadowRoot)return!1;u(),new MutationObserver(()=>{u();const m=C.shadowRoot.querySelector(o);m?.shadowRoot&&E(m.shadowRoot)}).observe(C.shadowRoot,p);const T=C.shadowRoot.querySelector(o);return T?.shadowRoot&&E(T.shadowRoot),!0}if(!S()){e("[SUB-GLOBAL-HIDE] Widget not in DOM yet — waiting via MutationObserver");const C=new MutationObserver(()=>{S()&&C.disconnect()});C.observe(document.body??document.documentElement,{childList:!0,subtree:!0})}}const ue="Limited preview",Ke="Add-to-cart and checkout prices won't reflect this test until it launches — test selling plans are not created in your subscription app until after a test is launched.",Je=5e3;function Ye(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__icon",e.setAttribute("aria-hidden","true"),e.textContent="!";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__label",t.textContent=ue;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ke,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",ue);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function o(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function n(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){o(),r(),s=setTimeout(()=>{n(),s=null},Je)}function c(){r(),o()}function d(){s===null&&n()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function u(p){try{const b=p.target;if(!(b instanceof Element))return;(b.closest('form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] input[type="submit"]')!==null||b.closest('[name="add"], button[name="add"], [data-add-to-cart], button[data-add-to-cart]')!==null)&&l()}catch{}}document.addEventListener("click",u,!0);function h(){r(),document.removeEventListener("click",u,!0),a.removeEventListener("mouseenter",c),a.removeEventListener("mouseleave",d),a.removeEventListener("focus",c),a.removeEventListener("blur",d),a.remove()}return{root:a,tooltip:i,cleanup:h}}let he=!1;class Ze{DATA_SL_ATTRIBUTE_P="data-sl-attribute-p";DATA_SL_TEST_ID="data-sl-test-id";VIEWPORT_TRACK_THRESHOLD=.5;temporarySessionKey="Shoplift_Session";essentialSessionKey="Shoplift_Essential";analyticsSessionKey="Shoplift_Analytics";priceSelectorsSessionKey="Shoplift_PriceSelectors_v2";shop;host;eventHost;disableReferrerOverride;legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;geoViaShopify;resolvedRegion=null;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);
338urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;constructor(e,t,i,s,r,o,n,l,c,d,u,h,p,b=!1){this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=l,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=u.map(S=>({...S,startAt:new Date(S.startAt),statusHistory:S.statusHistory.map(C=>({...C,createdAt:new Date(C.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=p,this.sendPageView=!!r,this.shopliftDebug=o===!0,this.telemetryEnabled=c===!0,this.geoViaShopify=b===!0,this.gaConfig=n!=={"sendEvents":true,"mode":"gtag"}?n:{sendEvents:!1},this.fetch=window.fetch.bind(window),this.localStorageSet=window.localStorage.setItem.bind(window.localStorage),this.localStorageGet=window.localStorage.getItem.bind(window.localStorage);const E=this.getDeviceType();this.device=E!=="tablet"?E:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=u.filter(S=>
338S.status=="active"),this.getCountryTimeout=d===1000?1e3:d,window.__slReadCookie=S=>{const C=this.getCookie(S);if(C===null)return null;try{return decodeURIComponent(C)}catch{return C}},this.log("State Loaded",JSON.stringify(this.state))}deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const e=this.state.essential.visitorTests.some(t=>{if(!t.hypothesisId)return!1;const i=this.getHypothesis(t.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=e?"global":"conditional",this.persistTemporaryState(),this.log("Derived test category from existing visitorTests: %s",this.state.temporary.testCategory)}}async init(){try{if(this.log("Shoplift script initializing"),window.Shopify&&window.Shopify.designMode){this.log("Skipping script for design mode");return}if(window.location.href.includes("slScreenshot=true")){this.log("Skipping script for screenshot");return}if(window.location.hostname.endsWith(".edgemesh.com")){this.log("Skipping script for preview");return}if(window.location.href.includes("isShopliftMerchant")){const o=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",o),this.state.temporary.isMerchant=o,this.persistTemporaryState()}if(this.state.temporary.isMerchant){this.log("Setting up preview for merchant"),typeof window.shoplift!="object"&&this.setShopliftStub(),this.state.temporary.previewConfig||this.hidePage(),await this.initPreview(),document.querySelector("#sl-preview-bar-hide")?.remove();return}if(this.state.temporary.previewConfig=void 0,we(navigator.userAgent))return;const e=Date.now(),t=!this.state.temporary.lastSeen||e-this.state.temporary.lastSeen>1800*1e3;(!this.state.temporary.entryPage||t)&&(this.state.temporary.entryPage=K(window.location.href)),this.state.temporary.lastSeen=e,this.persistTemporaryState(),window.__slEntryPage=this.state.temporary.entryPage??"";const i=this.state.essential.visitorTests.filter(o=>o.hypothesisId&&+o.createdAt>Date.now()-6e4);if(i.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const o of i)this.sendDiagnosticTelemetry("page-landed",o.testId,{hypothesisId:o.hypothesisId,isControl:o.assignedTo==="control",testType:o.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const o=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(n=>n?.json());this.log(`IP: ${o}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),ee)}).catch()}if(this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.monitorConsentChange(),this.checkForThemePreview())return;if(!this.disableReferrerOverride&&this.state.temporary.originalReferrer!=null){this.log(`Overriding referrer from '${document.referrer}' to '${this.state.temporary.originalReferrer}'`);const o=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>o,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),this.ensureCartAttributesForExistingPriceTests(!1);const r=this.state.essential.visitorTests.some(o=>(o.hypothesisId?this.getHypothesis(o.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(o=>this.getHypothesis(o.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!r&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test — hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),je(this.hiddenSubscriptionPlans,o=>this.log(o))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(e){if(e instanceof ie)return;throw e}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}
338async initPreview(){const e=this.urlParams.get("previewConfig");if(e){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const t=await Oe(e);if(this.state.temporary.previewConfig=t,this.state.temporary.previewConfig.testTypeCategory===M.Price){this.hidePage(!0);const s=this.state.temporary.previewConfig;let r=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/${s.isDraft||!1}`;s.shopifyProductId&&(r+=`?productId=${s.shopifyProductId}`);const o=await this.makeJsonRequest({method:"get",url:r}).catch(n=>(this.log("Error getting domSelectors",n),null));if(s.variants.forEach(n=>n.domSelectors=o[n.id]?.domSelectors),s.isDraft){const n=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:n}).catch(c=>(this.log("No subscription preview data for draft (test may not have a subscription widget)",c),null));l?.subscriptionData&&s.variants.forEach(c=>{c.subscriptionData=l.subscriptionData,c.priceData=l.priceData})}}this.persistTemporaryState();const i=new URL(window.location.toString());i.searchParams.delete("previewConfig"),this.queueRedirect(i)}else if(this.state.temporary.previewConfig){this.showPage();const t=this.state.temporary.previewConfig;if(t.testTypeCategory===M.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Price){const i=await this.handlePricePreview(t);t.isDraft?await this.handleSubscriptionPricePreview(t):await this.handleSubscriptionLivePreview(t),i&&this.initPreviewControls(t)}}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(b=>b.id===e.currentVariant),i=t?.label||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const o=document.createElement("div"),n=document.createElement("img");n.src=Ve,n.height=24,n.width=14,o.style.padding="0 16px",o.style.lineHeight="100%",o.appendChild(n),r.appendChild(o);const l=document.createElement("div");l.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const d=document.createElement("div");d.className="menu-variant-label",d.style.backgroundColor=this.getVariantColor(i).bg,d.style.color=this.getVariantColor(i).text,d.innerText=i.toUpperCase(),c.appendChild(d);const u=document.createElement("span");if(u.id="shoplift-preview-variant-title",u.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),c.appendChild(u),s.length>1){const b=document.createElement("img");b.src=De,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const E=document.createElement("div");E.className="preview-variant-menu";for(const S of e.variants.filter(C=>C.id!==e.currentVariant)){const C=document.createElement("div");C.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),C.appendChild(_);const T=document.createElement("span");T.innerText=this.getDefaultVariantTitle(S),C.appendChild(T),C.addEventListener("click",()=>{this.pickVariant(S.id)}),E.appendChild(C)}l.appendChild(E),c.addEventListener("click",()=>{E.className!=="preview-variant-menu preview-variant-menu__visible"?E.classList.add("preview-variant-menu__visible"):E.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&E.className==="preview-variant-menu preview-variant-menu__visible"&&E.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),e.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=Ye();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),p=document.createElement("button");p.id="shoplift-exit-preview-button",p.innerText="Exit",h.appendChild(p),p.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(h),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(e){if(this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(t.testTypeCategory===M.UrlRedirect){const s=t.variants.find(r=>r.id===t.currentVariant)?.redirectUrl;if(i.pathname===s){const r=t.variants.find(o=>o.id===e)?.redirectUrl;r&&(i.pathname=r)}}if(t.testTypeCategory===M.Template){const s=t.variants.find(r=>r.id===t.currentVariant)?.pathName;if(s&&i.pathname===s){const r=t.variants.find(o=>o.id===e)?.pathName;r&&r!==s&&(i.pathname=r)}}t.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const e=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===M.Template&&e.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===M.Script&&e.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===M.UrlRedirect){const i=this.state.temporary.previewConfig.variants.filter(r=>!r.isControl&&r.redirectUrl!==null).map(r=>r.redirectUrl),s=this.state.temporary.previewConfig.variants.find(r=>r.label==="a")?.redirectUrl;i.includes(e.pathname)&&s&&(e.pathname=s)}this.state.temporary.isMerchant=!1,e.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.subscriptionPreviewWarningCleanup?.(),this.subscriptionPreviewWarningCleanup=null,this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(l=>l.id===t);if(!i)return!1;const s=e.variants.find(l=>l.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
338const r=new URL(window.location.toString()),o=r.searchParams.get("view"),n=i.type===s.type;return!n&&!i.isControl&&template.suffix===s.affix&&this.typeFromTemplate()===s.type&&i.pathName!==null?(this.log("Hit control template type, redirecting to the variant url"),this.hidePage(),r.pathname=i.pathName,this.queueRedirect(r),!0):(!i.isControl&&this.typeFromTemplate()==i.type&&template.suffix===s.affix&&n&&o!==(i.affix||"__DEFAULT__")&&(this.log("Template type and affix match control, updating the view param"),r.searchParams.delete("view"),this.log("Setting the new viewParam to",i.affix||"__DEFAULT__"),this.hidePage(),r.searchParams.set("view",i.affix||"__DEFAULT__"),this.queueRedirect(r)),o!==null&&o!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=e.variants.find(o=>o.isControl)?.redirectUrl;if(!i)return!1;this.log("Setting up URL redirect preview");const r=new URL(window.location.toString());return r.pathname===s&&!i.isControl&&i.redirectUrl!==null&&(this.log("Url matches control, redirecting"),this.hidePage(),r.pathname=i.redirectUrl,this.queueRedirect(r)),!0}handleScriptPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t);if(!i)return!1;this.log("Setting up script preview");const s=new URL(window.location.toString());return s.searchParams.get("slVariant")!==i.id&&(this.log("current id doesn't match the variant, redirecting"),s.searchParams.delete("slVariant"),this.log("Setting the new slVariantParam"),this.hidePage(),s.searchParams.set("slVariant",i.id),this.queueRedirect(s)),!0}async handlePricePreview(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(U(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async handleSubscriptionPricePreview(e){const t=e.variants.find(i=>i.id===e.currentVariant);t?.subscriptionData&&(this.log("Setting up subscription price preview"),await Ge({id:t.id,isControl:t.isControl,subscriptionData:t.subscriptionData,priceData:t.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(e){this.testConfigs.find(s=>s.id===e.testId)?.hypotheses.find(s=>s.id===e.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(n=>n.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const o=this.state.essential.visitorTests.find(n=>n.testId===r.id);return o?(this.log("Active visitor test found",s),o.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(n=>n.hypotheses.some(l=>l.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===l.id))))},setAnalyticsConsent:async s=>{await this.onConsentChange(s,!0)},getVisitorData:()=>({visitor:this.state.analytics.visitor,visitorTests:this.state.essential.visitorTests.filter(s=>!s.isInvalid).map(s=>{const{shouldSendToGa:r,savedAt:o,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]);const t=this.getReservationForTest(e.id);t&&!t.isRealized&&t.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(t.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
338ategoryFromExistingTests(),this.clearStaleReservations();let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const l=this.considerRedirect(i);return l&&(this.log("Redirecting for current visitor test"),this.redirect(i)),l}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const l=this.getHypothesis(s.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(l);return c&&this.redirect(l),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(l=>this.testIsPaused(l)&&l.hypotheses.some(c=>this.state.essential.visitorTests.some(d=>d.hypothesisId===c.id)))).map(l=>l.id);if(r.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",r),!1;if(!this.state.temporary.testCategory){const l=this.testsFilteredByAudience.filter(d=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d))),c=this.testsFilteredByAudience.filter(d=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",l.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)})),c.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)}))),l.length>0&&c.length>0){const d=l.length,u=c.length,h=d+u,p=Math.random()*h;this.state.temporary.testCategory=p<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",p,h,d,u,this.state.temporary.testCategory)}else l.length>0?(this.state.temporary.testCategory="global",this.log("Only global tests available, setting category to global")):(this.state.temporary.testCategory="conditional",this.log("Only conditional tests available, setting category to conditional"));this.persistTemporaryState()}const o=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",o),o==="global"){const l=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:global");t=t.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const l=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:conditional");t=t.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(t.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(t);const n=this.getReservationForCurrentPage();if(n&&!n.isRealized){const l=this.getHypothesis(n.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(n.entryCriteriaKey);const c=this.considerRedirect(l);return c&&(this.log("Redirecting for new test"),this.redirect(l)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(p=>p.type==="price");if(this.state.essential.visitorTests.find(p=>p.testId===i.id&&p.isInvalid&&!p.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const o=this.getReservationForTest(i.id);let n=null,l=!1;const c=t.find(p=>i.hypotheses.some(b=>p.id===b.id));if(o)n=this.getHypothesis(o.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",o.hypothesisId,i.id);else if(c)n=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const p=this.visitorActiveTestTypeWithReservations();p?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",p,i.id)):n=this.pickHypothesis(i)}else n=this.pickHypothesis(i);if(l&&s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
338),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!n){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const d=i.bayesianRevision??4,u=n.type==="price",h=d>=5;if(u&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!n.priceData){this.log("No price data for hypothesis '%s', skipping",n.id);continue}const p=n.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${p} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,n,i.hypotheses,b=>{const E=this.getReservationForTest(b);E&&!E.isRealized&&E.entryCriteriaKey?this.realizeReservationForCriteria(E.entryCriteriaKey):this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(u&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const p=this.getDomSelectorsForHypothesis(n);if(p.length===0)continue;U(document,{testId:i.id,hypothesisId:n.id,selectors:p},b=>{this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!n.domSelectors||n.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:n.id,selectors:n.domSelectors},p=>{this.queueAddVisitorToTest(p,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(o=>o.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.themeId;else if(this.isThemePreview())return this.log("On non-test theme, skipping redirect"),!1;return this.log("Hiding page to redirect for theme test"),this.hidePage(),!0}return!1}else if(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const n=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(n&&n.length>1){const l=n[1];t.pathname=`${l}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);const i=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search,o=K(t.hash);if(i&&s!==r&&!o){const n=qe(),l=He({v:2,t:i,n,fh:Me(window.location.pathname+window.location.search)});t.hash=`slr-${n}`;const c=new Date(Date.now()+3e4).toUTCString();document.cookie=`shoplift_redirect=${l};domain=.${window.location.hostname};path=/;SameSite=Strict;expires=${c}`}s===r&&this.showPage(),this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=this.getUTMValue("utm_medium")??"",i=this.getUTMValue("utm_campaign")??"",s=this.getUTMValue("utm_content")??"",r=window.document.referrer,o=this.device;return{createdAt:new Date,utmSource:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:o}}checkForThemePreview(){return this.log("Checking for theme preview"),window.location.hostname.endsWith(".shopifypreview.com")?(this.log("on shopify preview domain"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("On active theme test, remov
338ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&!this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("Visitor is on an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.state.essential.isFirstLoad?(this.log("No visitor found on theme preview, redirecting to main theme"),this.redirectToMainTheme(),!0):this.inactiveTestConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Falling back to clearing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):(this.log("No tests on current theme, skipping script"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.filter(s=>s.hypotheses.some(r=>r.type!=="dom"&&r.type!=="price"&&(r.isControl&&r.type===i&&r.affix===template.suffix||r.type==="theme"||r.isControl&&r.type==="urlRedirect"&&r.redirectPath&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.variants.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(se(r)).test(K(t.toString())))))}async filterTestsByAudience(e,t,i){const s=[],r=e.some(n=>(n.requiresRegion||this.geoViaShopify&&n.requiresCountry)&&!i.some(l=>l.testId===n.id));this.resolvedRegion===null&&r&&(this.log("Hiding page to wait for Shopify region resolution"),this.hidePage(),await this.waitForResolvedRegion()),window.__slRegion=this.resolvedRegion??"";let o=t.country;this.geoViaShopify?o=this.resolvedRegion?this.resolvedRegion.slice(0,2):o:!o&&e.some(n=>n.requiresCountry&&!i.some(l=>l.testId===n.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),o=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(n=>(this.log("Error getting country",n),null)));for(const n of e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(d=>d.testId===n.id&&d.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const l=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(d=>d.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,l,o))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}async waitForResolvedRegion(e=1500,t=50){const i=Date.now();for(;this.resolvedRegion===null&&Date.now()-i<e;)await new Promise(s=>window.setTimeout(s,t))}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((o,n)=>o||n.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;return t.currentVariant&&t.testId?{testId:t.testId,hypothesisId:t.currentVariant}:null}const e=this.state.essential.visitorTests.find(t=>t.hypothesisId);return e?.hypothesisId?{testId:e.testId,hypothesisId:e.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const e of this.testConfigs){const t=e.hypotheses.find(i=>i.isControl);if(t?.subscriptionData)return{testId:e.id,hypothesis:t}}return null}getDomSelectorsForHypothesis(e){if(!e)return[];if(e.domSelectors&&e.domSelectors.length>0)return e.domSelectors;if(e.priceData){const t=`${this.priceSelectorsSessionKey}_${e.id}`;try{const s=sessionStorage.getItem(t);if(s){const r=JSON.parse(s);return e.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,e.id),r}}catch{}const i=$e(e.priceData);e.domSelectors=i;try{sessionStorage.setItem(t,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,e.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,e.id)}return i}return[]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(e){return e==="price"||this.isTemplateTestType(e)?"deferred":"immediate"}isTemplateTestType(e){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(e)}getEntryCriteriaKey(e){const t=e.hypotheses.find(i=>i.isControl);if(!t)return`unknown:${e.id}`;switch(t.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${e.id}`;case"urlRedirect":return`conditional:url:${t.redirectPath||"unknown"}`;default:return`conditional:template:${t.type}`}}isGlobalEntryCriteria(e){return e.startsWith("global:")}groupTestsByEntryCriteria(e){const t=new Map;for(const i of e){const s=this.getEntryCriteriaKey(i),r=t.get(s)||[];r.push(i),t.set(s,r)}return t}doesCurrentPageMatchEntryCriteria(e){if(this.isGlobalEntryCriteria(e))return!0;
338if(e==="conditional:manualApi")return!1;if(e.startsWith("conditional:url:")){const t=e.replace("conditional:url:","");return window.location.pathname.endsWith(t)}if(e.startsWith("conditional:template:")){const t=e.replace("conditional:template:","");return this.typeFromTemplate()===t}return!1}hasActiveReservation(){const e=this.getActiveReservations();return Object.values(e).some(t=>!t.isRealized)}getActiveReservation(){const e=this.getActiveReservations();return Object.values(e).find(t=>!t.isRealized)??null}clearStaleReservations(){const e=this.state.temporary.testReservations;if(!e)return;let t=!1;for(const[i,s]of Object.entries(e)){const r=this.testConfigs.find(n=>n.id===s.testId);if(!r){this.log("Test '%s' no longer in config, clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete e[i],t=!0;continue}this.testsFilteredByAudience.some(n=>n.id===s.testId)||(this.log("Visitor no longer passes audience for test '%s', clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0)}t&&this.persistTemporaryState()}createReservations(e){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(e,"global");return}const i=e.filter(n=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n))),s=e.filter(n=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n)));this.log("Conditional tests split - matching current page: %d, not matching: %d",i.length,s.length),i.length>0&&this.log("Tests matching current page (same pool): %o",i.map(n=>({id:n.id,title:n.title,criteria:this.getEntryCriteriaKey(n)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const n of i){const l=this.getEntryCriteriaKey(n);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const o=this.groupTestsByEntryCriteria(s);for(const[n,l]of o){if(this.state.temporary.rolledEntryCriteria.includes(n)){this.log("Already rolled for criteria '%s', skipping",n);continue}if(l.some(S=>this.state.essential.visitorTests.some(C=>C.testId===S.id))){this.log("Visitor already has VT for criteria '%s', skipping",n),this.state.temporary.rolledEntryCriteria.push(n);continue}const d=[...l].sort((S,C)=>S.id.localeCompare(C.id));this.log("Test dice roll for criteria '%s' - available tests: %o",n,d.map(S=>({id:S.id,title:S.title})));const u=Math.floor(Math.random()*d.length),h=d[u];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",u+1,l.length,h.id,h.title);const p=this.pickHypothesis(h);if(!p){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:p.id,isControl:p.isControl,testType:p.type});const b=this.getReservationType(p.type),E={testId:h.id,hypothesisId:p.id,testType:p.type,reservationType:b,isThemeTest:p.type==="theme",themeId:p.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:n};this.state.temporary.testReservations[n]=E,this.state.temporary.rolledEntryCriteria.push(n),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,n);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,n)}this.persistTemporaryState()}createSingleReservation(e,t){if(this.state.temporary.rolledEntryCriteria.includes(t)){this.log("Already rolled for pool '%s', skipping",t);return}if(e.some(u=>this.state.essential.visitorTests.some(h=>h.testId===u.id&&!h.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",t),this.state.temporary.rolledEntryCriteria.push(t);return}if(e.length===0){this.log("No tests in pool '%s'",t);return}const s=[...e].sort((u,h)=>u.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",t,s.map(u=>({id:u.id,title:u.title,criteria:this.getEntryCriteriaKey(u)})));const r=Math.floor(Math.random()*s.length),o=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,e.length,o.id,o.title);const n=this.pickHypothesis(o);if(!n){this.log("No hypothesis picked for test '%s'",o.id);return}this.sendDiagnosticTelemetry("assignment",o.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const l=this.getReservationType(n.type),c=this.getEntryCriteriaKey(o),d={testId:o.id,hypothesisId:n.id,testType:n.type,reservationType:l,isThemeTest:n.type==="theme",themeId:n.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=d,this.state.temporary.rolledEntryCriteria.push(t),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",l,o.id,t,c);for(const u of e)u.id!==o.id&&this.markTestAsBlocked(u,`pool:${t}`);this.persistTemporaryState()}markTestAsBlocked(e,t){this.state.essential.visitorTests.some(i=>i.testId===e.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",e.id,t),this.state.essential.visitorTests.push({createdAt:new Date,testId:e.id,hypothesisId:null,isThemeTest:e.hypotheses.some(i=>
338i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(e){const t=this.state.temporary.testReservations?.[e];if(!t)return this.log("No reservation found for criteria '%s'",e),!1;if(t.isRealized)return this.log("Reservation already realized for criteria '%s'",e),!1;if(this.state.essential.visitorTests.some(s=>s.testId===t.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",t.testId),!1;const i=this.getHypothesis(t.hypothesisId);return i?(t.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(t.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",t.testId,e),!0):(this.log("Hypothesis '%s' not found",t.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const e=this.getActiveReservations();for(const[t,i]of Object.entries(e)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(t))return i}return null}getReservationForTest(e){const t=this.getActiveReservations();return Object.values(t).find(i=>i.testId===e)??null}getReservationTestType(){const e=this.getActiveReservations(),t=Object.values(e);if(t.length===0)return null;for(const i of t)if(i.isThemeTest)return"theme";for(const i of t)if(i.testType==="price")return"price";return t.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(e){return e.some(t=>t.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const e=new Set;for(const t of this.testConfigs)for(const i of t.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&e.add(r[1])}if(i.priceData?.variants)for(const[s]of i.priceData.variants)e.add(s)}return this._priceTestProductIds=e,this.log("Built price test product ID cache with %d products",e.size),e}isProductInAnyPriceTest(e){return this.getPriceTestProductIds().has(e)}visitorActiveTestTypeWithReservations(){const e=this.getActiveReservations();for(const r of Object.values(e)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(e).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const o of Object.values(e)){if(o.testType==="theme")return"theme";if(o.testType==="price")return"price";if(o.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(o=>o.hypotheses.some(n=>n.id===r.hypothesisId)));return i.length===0?null:i.some(r=>this.getHypothesis(r.hypothesisId)?.type==="price")?"price":i.some(r=>r.isThemeTest)?"theme":"templateOrUrlRedirect"}applyControlForAudienceFilteredPriceTests(){const e=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(e.length===0)return;const t=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=e.filter(s=>!t.some(r=>r.id===s.id));if(i.length!==0){this.log("Found %d price tests filtered by audience, applying control selectors",i.length);for(const s of i){const r=s.hypotheses.find(c=>c.isControl),o=this.getDomSelectorsForHypothesis(r);if(o.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const n=new URL(window.location.href);o.some(c=>{try{return new RegExp(se(c)).test(K(n.toString()))}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),U(document,{testId:s.id,hypothesisId:r.id,selectors:o},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,o)=>r+o.visitorCount,0);return e.hypotheses.sort((r,o)=>r.isControl?o.isControl?0:-1:o.isControl?1:0).reduce((r,o)=>{if(r!==null)return r;const l=e.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?o.visitorCount/i-o.trafficPercentage:0;return t<=o.trafficPercentage-l?o:(t-=o.trafficPercentage-l,null)},null)}typeFromTemplate(){switch(template.type){case"list-collections":return"collectionList";case"page":return"landing";case"article":case"blog":case"cart":case"collection":case"index":case"product":case"search":return template.type;default:return null}}queueRedirect(e){this.saveState(),this.disableReferrerOverride||(this.log(`Saving temporary referrer override '${document.referrer}'`),this.state.temporary.originalReferrer=document.referrer,this.persistTemporaryState()),window.setTimeout(()=>window.location.assign(e),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}scheduleRetrySync(){this.clientIdRetryCount>=5||(this.clientIdRetryCount++,window.setTimeout(()=>{this.syncAllEvents()},500))}async syncAllEvents(){const e=async()=>
338{if(this.isSyncing){window.setTimeout(()=>{(async()=>await e())()},500);return}try{if(this.isSyncing=!0,this.syncGAEvents(),this.shopifyAnalyticsId||(this.shopifyAnalyticsId=this.getShopifyAnalyticsId()),!this.shopifyAnalyticsId){this.scheduleRetrySync();return}await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const i={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.state.analytics.visitor?.device??this.device,country:this.state.analytics.visitor?.country??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(r=>!r.isInvalid&&!r.isSaved&&r.hypothesisId!=null).map(r=>new be(r.testId,r.hypothesisId,r.createdAt)).concat(t)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null))this.sendDiagnosticTelemetry("event-delivered",r.testId,{hypothesisId:r.hypothesisId,isControl:r.assignedTo==="control",testType:r.testType??"unknown"});const s=await this.getVisitor(this.shopifyAnalyticsId);s!==null&&this.updateLocalVisitor(s);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved))r.isSaved=!0,r.savedAt=Date.now()}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(he)return;he=!0,this.log("UseGtag is false — skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
338this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(o,n,l){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}this.gaConfig.mode==="gtag"?r("event","experience_impression",{...s,event_callback:i}):(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"experience_impression",...s,eventCallback:i}))})}updateLocalVisitor(e){let t;({visitorTests:t,...this.state.analytics.visitor}=e),this.log("updateLocalVisitor - server returned %d tests: %o",t.length,t.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isInvalid:s.isInvalid}))),this.log("updateLocalVisitor - local has %d tests: %o",this.state.essential.visitorTests.length,this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid})));const i=300*1e3;for(const s of this.state.essential.visitorTests.filter(r=>r.isSaved&&(!r.savedAt||Date.now()-r.savedAt>i)&&!t.some(o=>o.testId===r.testId)))this.log("updateLocalVisitor - marking LOCAL test as INVALID (isSaved && not in server): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(n=>n.testId===s.testId);if(!(r!==-1))this.log("updateLocalVisitor - ADDING server test (not found locally): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),this.state.essential.visitorTests.push(s);else{const n=this.state.essential.visitorTests.at(r);this.log("updateLocalVisitor - REPLACING local test with server test: testId=%s, local hypothesisId=%s -> server hypothesisId=%s, local isInvalid=%s -> false",s.testId,n?.hypothesisId,s.hypothesisId,n?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=n?.shouldSe
338ndToGa??!1,s.testType=n?.testType,s.assignedTo=n?.assignedTo,s.testTitle=n?.testTitle,this.state.essential.visitorTests.splice(r,1,s)}}this.log("updateLocalVisitor - FINAL local tests: %o",this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid}))),this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}sendDiagnosticTelemetry(e,t,i){if(!this.telemetryEnabled||!navigator.sendBeacon)return;const s=this.state.essential.consentApproved,r=JSON.stringify({shop:this.shop,testId:t,checkpoint:e,device:this.device,...s?{visitorId:this.shopifyAnalyticsId??"unknown"}:{},clientTimestamp:Date.now(),consentApproved:s,hasConsentInteraction:this.state.essential.hasConsentInteraction,...i});navigator.sendBeacon(`${this.eventHost}/api/v0/telemetry`,new Blob([r],{type:"text/plain"}))}getUTMValue(e){const i=decodeURIComponent(window.location.search.substring(1)).split("&");for(let s=0;s<i.length;s++){const r=i[s].split("=");if(r[0]===e)return r[1]||null}return null}hidePage(e){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),e||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function e(){let i=!1;return(function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}function t(){let i=!1;return(function(s){(/android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
338sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}return e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}ensureCartAttributesForExistingPriceTests(e){try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",t.testId);let i="variant";if(t.variants&&t.variants.length>0){const s=t.variants.find(r=>r.id===t.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",t.testId,i),this.updatePriceTestHiddenInputs(t.testId,i,!0);return}for(const t of this.state.essential.visitorTests){const i=this.testConfigs.find(o=>o.id===t.testId);if(!i){this.log("Test config not found:",t.testId);continue}const s=i.hypotheses.find(o=>o.id===t.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",t.testId,r),this.updatePriceTestHiddenInputs(t.testId,r,e)}}catch(t){this.log("Error ensuring cart attributes for existing price tests:",t)}}subscriptionSwapDone=!1;subscriptionHideWrongPlans=null;subscriptionPriceDone=!1;subscriptionUpdateOneTime=null;subscriptionOneTimeDone=!1;swapMap=null;slptValue=null;async subscriptionSwap(){await Ue(this)}async subscriptionPriceChange(){await ze(this)}async subscriptionOneTimePrice(){await We(this)}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=T=>{const m=T.getAttribute("data-sl-pid");if(!m)return!0;if(i&&this.state.temporary.previewConfig){const w=this.state.temporary.previewConfig,I=t==="control"?"a":"b",f=w.variants.find(v=>v.label===I);if(!f)return!1;for(const v of f.domSelectors||[]){const g=v.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(g){const P=g[1];if(this.log(`Extracted ID from selector: ${P}, comparing to: ${m}`),P===m)return this.log("Product ID match found in preview config:",m,"variant:",f.label),!0}else this.log(`Could not extract ID from selector: ${v.cssSelector}`)}return this.log("No product ID match in preview config for:",m,"variant:",I),!1}const y=this.testConfigs.find(w=>w.id===e);if(!y)return this.log("Test config not found for testId:",e),!1;for(const w of y.hypotheses||[]){for(const I of w.domSelectors||[]){const f=I.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(f&&f[1]===m)return this.log("Product ID match found in domSelectors:",m,"for test:",e),!0}if(w.priceData?.variants){for(const I of w.priceData.variants)if(I[0]===m)return this.log("Product ID match found in priceData:",m,"for test:",e),!0}}return this.log("No product ID match for:",m,"in test:",e),!1},o=new Set;let n=!1,l=null;const c=(T,m)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(w=>{if(w instanceof Element&&w.nodeType===Node.ELEMENT_NODE&&w.isConnected&&document.contains(w))try{T.observe(w,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(I){this.log(`Failed to observe element (${m}):`,I)}}),document.body&&document.body.isConnected)try{T.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(w){this.log(`Failed to observe document.body (${m}):`,w)}},d=(T,m,y,w)=>{const I=T.filter(f=>{const v=f.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return v&&v[1]===w});this.log(`Applying ${y} DOM selectors, total: ${T.length}, filtered: ${I.length}`),I.length>0&&U(document,{testId:e,hypothesisId:m,selectors:I})},u=(T,m)=>{this.log(`Applying DOM selector changes for product ID: ${T}`),m.disconnect(),n=!0;try{if(i&&this.state.temporary.previewConfig){const y=t==="control"?"a":"b",w=this.state.temporary.previewConfig.variants.find(I=>I.label===y);if(!w?.domSelectors){this.log(`No DOM selectors found for preview variant: ${y}`);return}d(w.domSelectors,w.id,"preview config",T)}else{const y=this.testConfigs.find(I=>I.id===e);if(!y){this.log(`No test config found for testId: ${e}`);return}const w=y.hypotheses.find(I=>t==="control"?I.isControl:!I.isControl);if(!w?.domSelectors){this.log(`No DOM selectors found for assignment: ${t}`);return}d(w.domSelectors,w.id,"live config",T)}}finally{l!==null&&clearTimeout(l),l=window.setTimeout(()=>{n=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
338,50)}},h=new MutationObserver(T=>{if(!n)for(const m of T){if(m.type!=="childList"&&m.type!=="characterData")continue;let y=m.target;m.type==="characterData"&&(y=m.target.parentElement||m.target.parentNode);let w=y,I=w.getAttribute("data-sl-attribute-p");for(;!I&&w.parentElement;)w=w.parentElement,I=w.getAttribute("data-sl-attribute-p");if(!I)continue;const f=w.innerHTML||w.textContent||"";let v="";m.type==="characterData"&&m.oldValue!==null&&(v=m.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${I}"`),v&&this.log(`Previous content: "${v}"`),this.log(`Current content: "${f}"`),u(I,h)}});c(h,"initial setup"),o.add(h);const p=new MutationObserver(T=>{T.forEach(m=>{m.addedNodes.forEach(y=>{if(y.nodeType===Node.ELEMENT_NODE){const w=y;E(w);const I=w.matches('input[name="properties[_slpt]"]')?[w]:w.querySelectorAll('input[name="properties[_slpt]"]');I.length>0&&this.log(`MutationObserver found ${I.length} new hidden input(s)`),I.forEach(f=>{const v=f.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${v}"`),r(f))f.value!==s&&(f.value=s,this.log("Updated newly added hidden input:",s)),S(f);else{const g=f.getAttribute("data-sl-pid");g&&this.isProductInAnyPriceTest(g)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",g):(f.remove(),this.log("Removed newly added non-matching hidden input for product ID:",g))}})}})})});o.add(p);const b=new MutationObserver(T=>{T.forEach(m=>{if(m.type==="attributes"&&m.attributeName==="data-sl-pid"){const y=m.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",y.tagName),y.matches('input[name="properties[_slpt]"]')){const w=y,I=m.oldValue,f=w.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${I}" to "${f}" - triggering payment placement updates`),r(w)?(w.value!==s&&(w.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),f&&u(f,h),this.log("Re-running payment placement updates after variant change"),E(document.body)):f&&this.isProductInAnyPriceTest(f)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",f):(w.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",f))}}})});o.add(b);const E=T=>{T.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const m=T.querySelectorAll("shopify-payment-terms");m.length>0&&(this.log(`MutationObserver found ${m.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),T.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const y=T.querySelectorAll("afterpay-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),T.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const w=T.querySelectorAll("square-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),T.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const I=T.querySelectorAll("klarna-placement");I.length>0&&(this.log(`MutationObserver found ${I.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},S=T=>{b.observe(T,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const m=T.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${m}"`)},C=()=>{const T=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${T.length} existing hidden inputs to check`),T.forEach(m=>{const y=m.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${y}"`),r(m)?(m.value=s,this.log("Updated existing hidden input:",s),y&&(this.log("Applying initial DOM selector changes for existing product"),u(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",
338y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),C(),E(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),C(),E(document.body))}):(this.log("Set timeout on observer"),setTimeout(_,10))};_(),window.__shopliftPriceTestObservers=o,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden inputs")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,i="afterpay"){const s=i==="square"?"square-placement":"afterpay-placement";if(document.querySelectorAll(s).length===0){this.log(`No ${s} elements found on page - early return`);return}this.updatePlacementElements(e,t,s,(o,n)=>{if(i==="afterpay"){const l=(n/100).toFixed(2);o.setAttribute("data-amount",l)}else o.setAttribute("data-amount",n.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,i,s){const r=document.querySelectorAll(i);if(r.length===0){this.log(`No ${i} elements found - early return`);return}let o;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const l=t==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(d=>d.label===l);if(!c?.domSelectors){this.log(`No variant found for label ${l} in preview config for ${i}`);return}o=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${l}`)}else{const l=this.testConfigs.find(d=>d.id===e);if(!l){this.log(`No testConfig found for id: ${e} - early return`);return}
338const c=l.hypotheses.find(d=>t==="control"?d.isControl:!d.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}o=c.domSelectors}const n=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(l=>{let c=null;const d=l.parentElement;if(d&&(c=d.querySelector('input[name="properties[_slpt]"]')),c||(c=l.querySelector('input[name="properties[_slpt]"]')),!c){this.log(`No hidden input found for ${i} element`);return}const u=c.getAttribute("data-sl-pid");if(!u){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=o.find(S=>{const C=S.cssSelector.match(n);return C&&C[1]===u});if(!h){this.log(`No matching selector found for productId: ${u} - skipping element`);return}const p=h.actions.find(S=>S.scope==="price");if(!p?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(p.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${p.value}" for product ${u} - skipping`);return}const E=Math.round(b*100);s(l,E)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){const i=document.querySelectorAll("shopify-payment-terms");if(i.length===0)return;this.log("Store using shopify payments");let s;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const o=t==="control"?"a":"b",n=this.state.temporary.previewConfig.variants.find(l=>l.label===o);if(!n||!n.domSelectors){this.log(`No variant found for label ${o} in preview config`);return}s=n.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${o}`)}else{const o=this.testConfigs.find(l=>l.id===e);if(!o)return;const n=o.hypotheses.find(l=>t==="control"?l.isControl===!0:l.isControl===!1);if(!n||!n.domSelectors)return;s=n.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(o=>{const n=o.getAttribute("variant-id");if(!n)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===n});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=o.getAttribute("shopify-meta");if(d)try{const u=JSON.parse(d);if(u.variants&&Array.isArray(u.variants)){const h=u.variants.find(p=>p.id?.toString()===n);if(h){h.full_price=c.value;const p=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=p/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}o.setAttribute("shopify-meta",JSON.stringify(u))}}}catch(u){this.log("Error parsing/updating shoplift-meta:",u)}}}})}async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),F)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:o}=e,n=new Headers;if(s)for(const c in s)n.append(c,s[c]);(!s||!s.Accept)&&n.append("Accept","application/json"),(!s||!s["Content-Type"])&&n.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&n.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(t,{method:i,headers:n,body:r,signal:o});if(!l.ok){if(l.status===204)return null;if(l.status===422){const c=await l.json();if(typeof c<"u"&&c.isBot)throw new ie}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(e,t){if(this.state.essential.visitorTests.some(s=>s.testId===e))return;const i=this.testConfigs.find(s=>s.id===e);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:t.type,assignedTo:t.isControl?"control":"variant",testTitle:i?.title}),t.type==="price"){const s=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,s),this.updatePriceTestHiddenInputs(e,s,!1)}}queueCartUpdate(e){this.queueEvent(new Ce(e))}queuePageView(e){this.queueEvent(new Se(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(o=>o!==null).sort((o,n)=>+n.storedAt-+o.storedAt)[0];return t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.essential.initialState={createdAt:r.createdAt,referrer:r.referrer,utmCampaign:r.utmCampaign,utmContent:r.utmContent,utmMedium:r.utmMedium,utmSource:r.utmSource,device:r.device},this.deleteCookie("SHOPLIFT"),this.deleteLocalStorage(this.legacySessionKey)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();e.visitor?.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},o=[t,i].filter(n=>n!==null).sort((n,l)=>+l.timestamp-+n.timestamp)[0]??r;return o.initialState||(e.visitor!==null?o.initialState=e.visitor:(o.initialState=s,o.initialState.createdAt=o.timestamp)),o}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,o)=>+o.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,F):null,i=this.loadCookie(this.temporarySessionKey);return t??i??{isMerchant:!1,timestamp:new Date}}persistEssentialState(){this.log("Persisting essential state"),this.state.essential.isFirstLoad=!1,this.state.essential.timestamp=new Date,this.persistLocalStorageState(this.essentialSessionKey,this.state.essential),this.persist
338CookieState(this.essentialSessionKey,this.state.essential)}persistAnalyticsState(){this.log("Persisting analytics state"),this.state.essential.consentApproved&&(this.state.analytics.timestamp=new Date,this.persistLocalStorageState(this.analyticsSessionKey,this.state.analytics),this.persistCookieState(this.analyticsSessionKey,{...this.state.analytics,queue:[]}))}persistTemporaryState(){this.log("Setting temporary session state"),this.state.temporary.timestamp=new Date,this.sessionStorageSet(this.temporarySessionKey,JSON.stringify(this.state.temporary)),this.persistCookieState(this.temporarySessionKey,this.state.temporary,!0)}loadLocalStorage(e){const t=this.localStorageGet(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}loadCookie(e){const t=this.getCookie(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}persistLocalStorageState(e,t){this.localStorageSet(e,JSON.stringify(t))}persistCookieState(e,t,i=!1){const s=JSON.stringify(t),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${e}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(e){const t=new Date(0).toUTCString();document.cookie=`${e}=;domain=.${window.location.hostname};path=/;expires=${t};`}deleteLocalStorage(e){window.localStorage.removeItem(e)}getChannel(e){return[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)},{"name":"direct","test":(v) => v.utmSource === "" && v.utmMedium === ""},{"name":"paid-shopping","test":(v) => (new RegExp("^(?:Google|IGShopping|aax-us-east\.amazon-adsystem\.com|aax\.amazon-adsystem\.com|alibaba|alibaba\.com|amazon|amazon\.co\.uk|amazon\.com|apps\.shopify\.com|checkout\.shopify\.com|checkout\.stripe\.com|cr\.shopping\.naver\.com|cr2\.shopping\.naver\.com|ebay|ebay\.co\.uk|ebay\.com|ebay\.com\.au|ebay\.de|etsy|etsy\.com|m\.alibaba\.com|m\.shopping\.naver\.com|mercadolibre|mercadolibre\.com|mercadolibre\.com\.ar|mercadolibre\.com\.mx|message\.alibaba\.com|msearch\.shopping\.naver\.com|nl\.shopping\.net|no\.shopping\.net|offer\.alibaba\.com|one\.walmart\.com|order\.shopping\.yahoo\.co\.jp|partners\.shopify\.com|s3\.amazonaws\.com|se\.shopping\.net|shop\.app|shopify|shopify\.com|shopping\.naver\.com|shopping\.yahoo\.co\.jp|shopping\.yahoo\.com|shopzilla|shopzilla\.com|simplycodes\.com|store\.shopping\.yahoo\.co\.jp|stripe|stripe\.com|uk\.shopping\.net|walmart|walmart\.com)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
338andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|kakao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.o
338pera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"display","test":(v) => new RegExp("^(?:display|banner|expandable|interstitial|cpm)$", "i").test(v.utmMedium)},{"name":"paid-other","test":(v) => new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)}
338,{"name":"organic-shopping","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|yandex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)},{"name":"organic-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|k
338akao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.opera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) || new RegExp("^(?:social|social-network|social-media|sm|social network|social media)$", "i").test(v.utmMedium)},{"name":"organic-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) || new RegExp("^(.*video.*)$", "i").test(v.utmMedium)},{"name":"organic-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
338andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || v.utmMedium.toLowerCase() === "organic"},{"name":"referral","test":(v) => new RegExp("^(?:referral|app|link)$", "i").test(v.utmMedium)},{"name":"email","test":(v) => new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmMedium) || new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmSource)},{"name":"affiliate","test":(v) => v.utmMedium.toLowerCase() === "affiliate"},{"name":"audio","test":(v) => v.utmMedium.toLowerCase() === "audio"},{"name":"sms","test":(v) => v.utmSource.toLowerCase() === "sms" || v.utmMedium.toLowerCase() === "sms"},{"name":"mobile-push-notification","test":(v) => v.utmSource.toLowerCase() === "firebase" || new RegExp("(?:.*mobile.*|.*notification.*|push$)", "i").test(v.utmMedium)}].find(i=>i.test(e))?.name??"other"}getShopifyAnalyticsId(){const e=this.getCookie("_shopify_y");if(e)return e;try{const t=this.localStorageGet("Shoplift_ClientId");if(t)return t}catch{}return null}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,F)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>{(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),t=window.setTimeout(()=>{(async()=>await e())()},1e3);return}if(this.geoViaShopify){const s=window.Shopify.customerPrivacy.getRegion?.();this.resolvedRegion=typeof s=="string"?s.replace(/-/g,""):""}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>{(async()=>await e())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const e=["/apps/","/tools/","/a/"],t=window.location.pathname;return e.some(i=>t.startsWith(i))}clearThemeBar(e,t,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(o=>(this.log("Found theme bar"),t&&(this.log("Removing theme bar"),o.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},ee)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(o=>{const n=document.querySelector(t);if(n){r.disconnect(),i(n);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){let i=0;const s=e.replace(/%[sdoOfF]/g,r=>{if(i>=t.length)return r;const o=t[i++];return r==="%o"||r==="%O"?JSON.stringify(o):String(o)});this.logHistory.push(`[${new Date().toISOString()}][SL] ${s}`),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}debugState(){return{state:this.state,storage:{essential:this.loadLocalStorage(this.essentialSessionKey),analytics:this.loadLocalStorage(this.analyticsSessionKey)},params:{shop:this.shop,host:this.host,eventHost:this.eventHost,cssHideClass:this.cssHideClass,testConfigs:this.testConfigs,inactiveTestConfigs:this.inactiveTestConfigs,sendPageView:this.sendPageView,isShopifyMerchantCookie
338:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(o=>{o.forEach(n=>{if(n.isIntersecting&&!r.has(n.target)){const l=n.target,c=l.getAttribute(this.DATA_SL_TEST_ID);c&&(e(c,l),s&&r.add(l))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,o=n=>{if(this.state.essential.visitorTests.some(h=>h.testId===n)||this.activeViewportObservers.has(n))return;const l=[];if(r.forEach(h=>{e.querySelectorAll(h.cssSelector).forEach(b=>l.push(b))}),l.length===0)return;let c=!1;const d=()=>{c||(c=!0,i(n),u.disconnect(),this.activeViewportObservers.delete(n))},u=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(n,u),this.log(`Created viewport observer for test ${n}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(n)),u.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const p=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,E=Math.min(p.bottom,window.innerHeight)-Math.max(p.top,0),S=Math.min(p.right,window.innerWidth)-Math.max(p.left,0);p.top<window.innerHeight&&p.bottom>0&&p.left<window.innerWidth&&p.right>0&&E>0&&S>0&&E>=p.height*b&&(this.log(`Price element already visible in viewport for test ${n}:`,h),d())})},100)};t.selectors.length>0&&U(e,t,()=>{}),Te(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},n=>{o(n)})}applyPriceTestWithMapLookup(e,t,i,s){if(!t.priceData){this.log("No price data for hypothesis '%s'",t.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",t.id,t.isControl,t.priceData.variants.length);const r=t.priceData.variants.slice(0,3);for(const[S,C,_]of r)this.log("  Sample priceData: variant=%s, price=%d, compareAt=%d",S,C,_);const o=j(t.priceData),n=new Set;for(const S of i)if(S.priceData)for(const[C]of S.priceData.variants)n.add(C);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",o.size,n.size);const l=t.priceData,c=new WeakSet;let d=!1;const u="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",h=S=>{if(c.has(S))return;const C=S.getAttribute("data-sl-attribute-p"),_=S.getAttribute("data-sl-attribute-cap"),T=S.getAttribute("data-sl-attribute-discount"),m=C||_||T;if(!m||!n.has(m))return;c.add(S);const y=o.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),Le(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===e)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(e)),this.setupElementViewportTracking(S,e,()=>{d||(d=!0,s(e))}))},p=()=>{const S=document.querySelectorAll(u);this.log("Scanning for price elements, found: %d",S.length),S.forEach(h)},b=new MutationObserver(S=>{for(const C of S)C.type==="childList"&&C.addedNodes.forEach(_=>{if(_.nodeType===Node.ELEMENT_NODE){const T=_;(T.hasAttribute("data-sl-attribute-p")||T.hasAttribute("data-sl-attribute-cap")||T.hasAttribute("data-sl-attribute-discount"))&&h(T),T.querySelectorAll(u).forEach(h)}}),C.type==="attributes"&&C.target instanceof Element&&h(C.target)}),E=document.body||document.documentElement;b.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-sl-attribute-p","data-sl-attribute-cap","data-sl-attribute-discount"]}),this.log("MutationObserver started for price elements"),p(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),p()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),p()},100),setTimeout(()=>{this.log("Final rescan for price elements"),p()},500)}setupElementViewportTracking(e,t,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=e.getBoundingClientRect(),o=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),n=Math.min(r.right,window.innerWidth)-Math.max(r.left,0);if(r.top<window.innerHeight&&r.bottom>0&&r.left<window.innerWidth&&r.right>0&&o>0&&n>0&&o>=r.height*s){this.log("Price element already visible for test %s",t),i();return}const c=new IntersectionObserver(d=>{for(const u of d)if(u.isIntersecting&&u.intersectionRatio>=s){this.log("Price element entered viewport for test %s",t),c.disconnect(),i();break}},{threshold:s});c.observe(e)}debug(){const e=this.debugState();console.log(JSON.stringify(e,ee,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Ze("drinktrade.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",true,false,false,{"sendEvents":true,"mode":"gtag"},false,false,1000,[{"id":"01a08ca0-566c-7478-929c-24c2842d760d","startAt":"2026-09-10T18:41:53.257928Z","requiresCountry":false,"requiresRegion":false,"bayesianRevision":5,"device":"all","status":"active","visitorOption":"all","ignoreTestViewParameterEnforcement":false,"statusHistory":[{"status":"active","createdAt":"2026-09-10T18:41:53.266299Z"},{"status":"paused","createdAt":"2026-09-10T18:46:31.766055Z"},{"status":"active","createdAt":"2026-09-14T17:10:27.39967Z"}
338],"hypotheses":[{"visitorCount":289,"trafficPercentage":0.41762381148205674,"title":"Control","domSelectors":[],"id":"01a0878e-fbad-708b-b0f3-718b27f6d04d","type":"collectionList","themeId":188794601791,"affix":"","isControl":true},{"visitorCount":402,"trafficPercentage":0.5823761885179433,"title":"Bag imagery","domSelectors":[],"id":"01a0878f-3b67-766b-a0bf-21d58eb19981","type":"collectionList","themeId":188794601791,"affix":"sl-500C3574","isControl":false}],"targetAudiences":[],"title":"Collection list imagery test"},{"id":"01a0b12d-5563-7720-a762-c8f60597a71c","startAt":"2026-09-17T21:02:13.34554Z","requiresCountry":false,"requiresRegion":false,"bayesianRevision":5,"device":"all","status":"active","visitorOption":"all","ignoreTestViewParameterEnforcement":false,"statusHistory":[{"status":"active","createdAt":"2026-09-17T21:02:13.35287Z"}],"hypotheses":[{"visitorCount":12632,"trafficPercentage":0.5063323193469693,"title":"Original","domSelectors":[],"id":"01a0b10d-70cb-76bb-8dd3-3af1a78791b1","type":"product","themeId":188794601791,"affix":"","isControl":true},{"visitorCount":12317,"trafficPercentage":0.4936676806530306,"title":"Buy Once default","domSelectors":[],"id":"01a0b10d-9a9f-75be-ba51-cd4755ab2697","type":"product","themeId":188794601791,"affix":"discovery-pdp-test","isControl":false}],"targetAudiences":[],"title":"DT on PDP: Buy Once first"},{"id":"01a0c58d-9949-7492-a7e6-8b77a8a42113","startAt":"2026-09-21T19:59:46.480316Z","requiresCountry":false,"requiresRegion":false,"bayesianRevision":5,"device":"all","status":"active","visitorOption":"all","ignoreTestViewParameterEnforcement":false,"statusHistory":[{"status":"active","createdAt":"2026-09-21T19:59:46.565843Z"}],"hypotheses":[{"visitorCount":2981,"trafficPercentage":0.48821863950405475,"title":"Original","domSelectors":[],"id":"01a0c58c-29c3-76b3-9d4b-3812251beb36","type":"index","themeId":188794601791,"affix":"","isControl":true},{"visitorCount":3125,"trafficPercentage":0.5117813604959452,"title":"Discovery Trial dots","domSelectors":[],"id":"01a0c58c-29c4-7390-92cd-8170e53f81ba","type":"index","themeId":188794601791,"affix":"sl-C312AEC8","isControl":false}],"targetAudiences":[],"title":"HP Discovery Trial - Round 3 (50/50 split)"},{"id":"01a0cf16-5ea7-786d-81a3-71a4a01e50cc","startAt":"2026-09-23T16:25:44.868933Z","requiresCountry":false,"requiresRegion":false,"bayesianRevision":5,"device":"all","status":"active","visitorOption":"all","ignoreTestViewParameterEnforcement":false,"statusHistory":[{"status":"active","createdAt":"2026-09-23T16:25:44.878928Z"}],"hypotheses":[{"visitorCount":338,"trafficPercentage":0.48805803815826343,"title":"Control: SEP CTAs","domSelectors":[],"id":"01a0ceda-591b-7eb3-9c1d-a5ea7af39804","type":"landing","themeId":188794601791,"affix":"espresso-hub","isControl":true},{"visitorCount":355,"trafficPercentage":0.5119419618417366,"title":"Direct to Quiz CTAs","domSelectors":[],"id":"01a0ceda-d9e5-722d-b53b-69a19d635ebe","type":"landing","themeId":188794601791,"affix":"sl-BE672B3A","isControl":false}],"targetAudiences":[],"title":"Espresso Hub CTA testing"}],[{"id":"01a05d59-d178-7717-a747-daafcd2fe4dd","bayesianRevision":5,"status":"paused","hypotheses":[{"id":"01a05d4d-dc13-7548-b5f5-f3a6372c6739","type":"product","themeId":188794601791,"affix":"","isControl":true,"redirectPath":null},{"id":"01a05d4f-7a77-70c1-a954-e55af42c597c","type":"product","themeId":188794601791,"affix":"discovery-pdp-test","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"59c6fb68-9c9c-4286-9702-027e0c21d0a0","bayesianRevision":2,"status":"cancelled","hypotheses":[{"id":"e624d3c6-9e67-434a-88a1-8a1c6447bc83","type":"theme","themeId":169056141631,"affix":"","isControl":true,"redirectPath":null},{"id":"29268bd2-9d1f-49d0-ab3a-56c357e027d3","type":"theme","themeId":168875655487,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"7e6939df-4b3f-45c0-921e-0c737745a7d4","bayesianRevision":3,"status":"cancelled","hypotheses":[{"id":"4c29d08f-a91f-4f18-92fc-bbb20889362d","type":"theme","themeId":171464360255,"affix":"","isControl":true,"redirectPath":null},{"id":"67837aa2-6e3e-4388-8119-4e289fee597f","type":"theme","themeId":171372183871,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"c693f0e7-4001-4fc3-8bcf-a11d1b669e26","bayesianRevision":3,"status":"cancelled","hypotheses":[{"id":"b78addd6-431d-4713-8b43-eda809675adf","type":"theme","themeId":171648876863,"affix":"","isControl":true,"redirectPath":null},{"id":"2d8d912f-02db-4cee-90eb-0d0730a6a7ff","type":"theme","themeId":171590418751,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"369e0da9-9271-4387-9599-4c10bd826578","bayesianRevision":3,"status":"cancelled","hypotheses":[{"id":"fd8ebfbf-ebbd-4601-b1be-228590b9963e","type":"theme","themeId":171147362623,"affix":"","isControl":true,"redirectPath":null},{"id":"e33bf9d3-9d4e-4729-b921-57d2ecf5e488","type":"theme","themeId":171019698495,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false},{"id":"f137a724-1934-4735-80e7-e3c42accc342","bayesianRevision":3,"status":"cancelled","hypotheses":[{"id":"329b043f-7ed0-450e-91ad-81cfe7b49d9d","type":"theme","themeId":174099300671,"affix":"","isControl":true,"redirectPath":null},{"id":"606858a4-2ead-471d-b16f-67db87b56b40","type":"theme","themeId":172951503167,"affix":"","isControl":false,"redirectPath":null}],"ignoreTestViewParameterEnforcement":false}
338],null,false),await window.shopliftInstance.init())})();async function Qe(a,e,t,i){const s=Be({log:i});if(t)return i("[SUB-PREVIEW] A side — no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,o=e?j(e):null;let n=W(e),l=J(a,n),c=l.discountMap,d=l.maxDiscount;function u(){const f=W(e);f!==n&&(n=f,l=J(a,n),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${n??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${n??"n/a"}, maxDiscount=${d}`);function h(f){if(!e||!o)return null;const v=Z(o),g=v?o.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,e),formattedDiscounted:G(g.priceInCents*(1-f/100),e)}:null}function p(f){const v=Y(a,f);if(!v)return d;const g=D(a,"subscriptionInput"),P=g.length?g[0].selector:'input[name="rc_plan"]',A=v.querySelector(`${P}:checked`);if(A){const k=c[A.value];if(k!==void 0)return k}return d}function b(f){const v=D(a,"subscriptionDiscount");for(const g of v)if(g.selector.includes("badge")||g.selector.includes("__badge")){const P=f.querySelector(g.selector);P?.textContent&&!P.textContent.includes(`${d}%`)&&$(P,A=>N(A,d))}}function E(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionCompareAt");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedVariantPrice)&&$(k,x=>/\d/.test(x)?g.formattedVariantPrice:x)}}function S(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionPrice");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedDiscounted)&&$(k,x=>/\d/.test(x)?g.formattedDiscounted:x)}}function C(f){const v=D(a,"subscriptionInput"),g=v.length?v[0].selector:'input[name="rc_plan"]',P=D(a,"subscriptionPlanDiscount"),A=P.length?P[0].selector:".rc-plans-button__discount";for(const k of Array.from(f.querySelectorAll("label"))){const x=k.querySelector(g),R=k.querySelector(A);if(x&&R?.textContent){const O=c[x.value];if(O!==void 0){const V=R.textContent.match(/[\d.]+%/)?.[0];V&&V!==`${O}%`&&$(R,L=>N(L,O))}}}}function _(f){const v=f.querySelector("select");if(v)for(const g of Array.from(v.options)){const P=c[g.value];if(P!==void 0&&g.textContent){const A=g.textContent.match(/[\d.]+%/)?.[0];A&&A!==`${P}%`&&(g.textContent=N(g.textContent,P))}}}function T(f){const v=D(a,"onetimePrice");if(!v.length||!e||!o)return;const g=Z(o),P=g?o.get(g):void 0;if(!P)return;const A=G(P.priceInCents,e),k=D(a,"onetimeContainer"),x=k.length?k[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const O of v){const V=R.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(A)&&$(V,L=>/\d/.test(L)?A:L)}}function m(f,v){const P=D(a,"subscriptionDiscount").filter(A=>A.selector.includes("benefit")||A.selector==="rc-benefits");for(const A of P){const k=f.querySelector(A.selector);if(k?.shadowRoot){for(const x of Array.from(k.shadowRoot.querySelectorAll("li")))if(x.textContent?.includes("Save")){const R=x.textContent.match(/[\d.]+%/)?.[0];R&&R!==`${v}%`&&$(x,O=>N(O,v))}}}}let y=!1;function w(){if(!y){y=!0;try{u();const f=B(a);if(!f)return;const v=p(f);b(f),E(f,v),S(f,v),T(f);const g=Y(a,f);g&&(r==="buttons"||r==="radio"?C(g):_(g)),m(f,v)}finally{y=!1}}}const I=pe({data:a,runUpdates:w});return function(){I(),s()}}const Xe=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Qe},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "discovery-trial-quiz", type: "page" }, "main", 188794601791, false)</script>
338
339    <!-- End of Shoplift scripts -->
340     <!-- Tie Loader scripts -->
341    <!-- Revenue Roll tracker (Deferred with Firefox block, using your GTM snippet) -->
342<script>
343window.addEventListener('load', function () {
344  // Detect Firefox (incl. iOS Firefox) and stop early
345  const IS_FIREFOX = (() => {
346    try {
347      const ua = navigator.userAgent || "";
348      return /Firefox|FxiOS/i.test(ua) && !/Seamonkey/i.test(ua);
349    } catch { return false; }
350  })();
351  if (IS_FIREFOX) {
352    console.info('[RevenueRoll] GTM blocked on Firefox browser.');
353    return;
354  }
355
356  // Defer actual loader
357  const loadRevenueRoll = function () {
358    try {
359      !function(){"use strict";function l(e){for(var t=e,r=0,n=document.cookie.split(";");r<n.length;r++){var o=n[r].split("=");if(o[0].trim()===t)return o[1]}}function s(e){return localStorage.getItem(e)}function u(e){return window[e]}function A(e,t){e=document.querySelector(e);return t?null==e?void 0:e.getAttribute(t):null==e?void 0:e.textContent}var e=window,t=document,r="script",n="dataLayer",o="https://ss3.zone.drinktrade.com",a="",i="88x2wufxrvmc",c="3=CglLNSwrWCc7Lk4iKzImURVQRFxJQBEZXgkEGxYNAQUCCRNcGwkY",g="cookie",v="_shopify_y",E="",d=!1;try{var d=!!g&&(m=navigator.userAgent,!!(m=new RegExp("Version/([0-9._]+)(.*Mobile)?.*Safari.*").exec(m)))&&16.4<=parseFloat(m[1]),f="stapeUserId"===g,I=d&&!f?function(e,t,r){void 0===t&&(t="");var n={cookie:l,localStorage:s,jsVariable:u,cssSelector:A},t=Array.isArray(t)?t:[t];if(e&&n[e])for(var o=n[e],a=0,i=t;a<i.length;a++){var c=i[a],c=r?o(c,r):o(c);if(c)return c}else console.warn("invalid uid source",e)}(g,v,E):void 0;d=d&&(!!I||f)}catch(e){console.error(e)}var m=e,g=(m[n]=m[n]||[],m[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t.getElementsByTagName(r)[0]),v=I?"&bi="+encodeURIComponent(I):"",E=t.createElement(r),f=(d&&(i=8<i.length?i.replace(/([a-z]{8}$)/,"kp$1"):"kp"+i),!d&&a?a:o);E.async=!0,E.src=f+"/"+i+".js?"+c+v,null!=(e=g.parentNode)&&e.insertBefore(E,g)}();
360    } catch (err) {
361      console.error('[RevenueRoll] Error loading tracker:', err);
362    }
363  };
364
365  if ('requestIdleCallback' in window) {
366    requestIdleCallback(loadRevenueRoll);
367  } else {
368    setTimeout(loadRevenueRoll, 500);
369  }
370});
371</script>
371
372    <!-- End of Tie Loader -->
373    <!-- DataLayer Init -->
374    
374<script>
375      window.dataLayer = window.dataLayer || [];
376      
377    </script>
377
378    <!-- End DataLayer Init -->
379    
380    <meta charset="utf-8">
381    <meta http-equiv="X-UA-Compatible" content="IE=edge">
382    <meta name="viewport" content="width=device-width,initial-scale=1">
383    <meta name="theme-color" content="">
384    <meta name="google-site-verification" content="qqGskHLeSMTrx1ZT1GM1KhmNmO5DfiPBCBnWY2iPhKk"><link rel="manifest" href="//www.drinktrade.com/cdn/shop/t/2106/assets/manifest.json?v=43527963929861335821789670822">
385<link rel="apple-touch-icon" sizes="192x192" href="//www.drinktrade.com/cdn/shop/t/2106/assets/icon-192x192.png?v=35286948902013533561789675683">
386<link rel="icon" type="image/png" sizes="192x192" href="//www.drinktrade.com/cdn/shop/t/2106/assets/icon-192x192.png?v=35286948902013533561789675683">
387<link rel="icon" type="image/png" sizes="512x512" href="//www.drinktrade.com/cdn/shop/t/2106/assets/icon-512x512.png?v=152962058892237866261789675683">
388
389      
389<script>
390  if ('serviceWorker' in navigator) {
391    window.__swReady = navigator.serviceWorker.register('//www.drinktrade.com/cdn/shop/t/2106/assets/sw.js?v=69841308296326720821789670872')
392      .catch(function(err) {
393        console.error('Service worker registration failed:', err);
394        return null;
395      });
396  }
397  
398</script>
398
399
400
401    
402    
403    <link rel="canonical" href="https://www.drinktrade.com/pages/find-my-match"><link rel="icon" type="image/png" href="//www.drinktrade.com/cdn/shop/files/Group_1000002521.svg?crop=center&height=32&v=1765997605&width=32"><title>Coffee Subscription Quiz | Find Your Perfect Coffee | Trade Coffee</title>
404
405
406    
407      
408        <meta name="description" content="Take our quick coffee quiz and discover coffees tailored to your tastes. Explore 500+ coffees from 55+ top roasters.">
409      
410    
411
412    
413
414<meta property="og:site_name" content="Trade Coffee">
415<meta property="og:url" content="https://www.drinktrade.com/pages/find-my-match">
416<meta property="og:title" content="Coffee Subscription Quiz | Find Your Perfect Coffee | Trade Coffee">
417<meta property="og:type" content="website">
418<meta property="og:description" content="Take our quick coffee quiz and discover coffees tailored to your tastes. Explore 500+ coffees from 55+ top roasters."><meta property="og:image" content="http://www.drinktrade.com/cdn/shop/files/opengraph_v2_6dd08d1b-d999-4197-8943-0eab57c4f373.png?v=1765997753&width=1200">
419  <meta property="og:image:secure_url" content="https://www.drinktrade.com/cdn/shop/files/opengraph_v2_6dd08d1b-d999-4197-8943-0eab57c4f373.png?v=1765997753&width=1200">
420  <meta property="og:image:width" content="1200">
421  <meta property="og:image:height" content="630"><meta name="twitter:card" content="summary_large_image">
422<meta name="twitter:title" content="Coffee Subscription Quiz | Find Your Perfect Coffee | Trade Coffee">
423<meta name="twitter:description" content="Take our quick coffee quiz and discover coffees tailored to your tastes. Explore 500+ coffees from 55+ top roasters.">
424
425
426      
427<link href="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.theme.css?v=73465063649974366811789670858" rel="stylesheet" type="text/css" media="all" />
428
429
430  
431  <link rel="preload" as="style" href="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.page.css?v=138873324218916298831789670837">
432  <link href="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.page.css?v=138873324218916298831789670837" rel="stylesheet" type="text/css" media="all" />
433
434  
435
436  
437
438
439<link rel="preconnect" href="https://fonts.googleapis.com">
440<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
441
442    
443<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 443
443
444<script type="importmap">
445  {
446    "imports": {
447      "preact": "https://esm.sh/[email protected]",
448      "preact/": "https://esm.sh/[email protected]/",
449      "@preact/signals": "https://esm.sh/@preact/[email protected]?external=preact",
450      "htm/preact": "https://esm.sh/[email protected]/preact?external=preact",
451      "confetti": "//www.drinktrade.com/cdn/shop/t/2106/assets/confetti.js?v=62555554771269435241789670858",
452      "analytics-values": "//www.drinktrade.com/cdn/shop/t/2106/assets/analytics-values.js?v=84196337055756081941789670828",
453      "cart-tracking-attributes": "//www.drinktrade.com/cdn/shop/t/2106/assets/cart-tracking-attributes.js?v=122560085255391323171789670855",
454      "checkout-initiated": "//www.drinktrade.com/cdn/shop/t/2106/assets/checkout-initiated.js?v=136201386575160523771789670856",
455      "onboarding-accessibility": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-accessibility.js?v=110396494592110040441789670859",
456      "onboarding-analytics": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-analytics.js?v=67068325863168937081789670860",
457      "onboarding-banner-utils": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-banner-utils.js?v=4675481951066418891789670860",
458      "onboarding-brew-methods": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-brew-methods.js?v=93397223755103467821789670861",
459      "onboarding-checkout": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-checkout.js?v=73788576528942969761789670861",
460      "onboarding-debug-logger": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-debug-logger.js?v=107252028944250548511789670862",
461      "onboarding-discounts": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-discounts.js?v=147091950794516354491789670863",
462      "onboarding-dispatch-event": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-dispatch-event.js?v=12715430021551169071789670863",
463      "onboarding-dynamic-banner": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-dynamic-banner.js?v=66569294696370595461789670864",
464      "onboarding-icons": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-icons.js?v=138014272529580260571789670859",
465      "onboarding-next-step-resolver": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-next-step-resolver.js?v=181905566838763655391789670859",
466      "onboarding-pricing-utils": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-pricing-utils.js?v=177551858183869633051789670860",
467      "onboarding-progress-bar": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-progress-bar.js?v=42016083795943363171789670861",
468      "onboarding-step-constants": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-step-constants.js?v=33202668777386187341789670861",
469      "onboarding-step-global": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-step-global.js?v=167296861987662849181789670862",
470      "onboarding-step-preact-container": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-step-preact-container.js?v=149308841925072108111789670862",
471      "onboarding-step-tree": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-step-tree.js?v=105285695170254491851789670863",
472      "onboarding-storage-utils": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-storage-utils.js?v=114720078215700313491789670864",
473      "onboarding-use-pricing": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-use-pricing.js?v=117985790782197820581789670864",
474      "onboarding-use-required-step-data": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-use-required-step-data.js?v=100013281260579323051789670859",
475      "onboarding-use-storage": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-use-storage.js?v=11812865276956452901789670859",
476      "onboarding-utils": "//www.drinktrade.com/cdn/shop/t/2106/assets/onboarding-utils.js?v=166529376531134008031789670860",
477      "step-template-analytics-product-added-to-cart": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-analytics-product-added-to-cart.js?v=123112001049587252301789670867",
478      "step-template-analytics-quiz-loaded": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-analytics-quiz-loaded.js?v=98382845238122067661789670865",
479      "step-template-analytics-quiz-step-completed": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-analytics-quiz-step-completed.js?v=26086073035880500161789670866",
480      "step-template-analytics-recommendations-displayed": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-analytics-recommendations-displayed.js?v=170673854980268712401789670867",
481      "step-template-brewer-cta": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-brewer-cta.js?v=26807930225172958941789670868",
482      "step-template-buy-box-add-ons": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-buy-box-add-ons.js?v=143042185219931329931789670869",
483      "step-template-buy-box-header": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-buy-box-header.js?v=136352441338513359711789670870",
484      "step-template-buy-box-question": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-buy-box-question.js?v=29812646511221487391789670865",
485      "step-template-buy-box-summary": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-buy-box-summary.js?v=95438574303334671871789670867",
486      "step-template-cold-brew-results-complete-kit": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-cold-brew-results-complete-kit.js?v=136717377906645231941789670868",
487      "step-template-cold-brew-value-props": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-cold-brew-value-props.js?v=128286869414810691681789670869",
488      "step-template-cta-styled": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-cta-styled.js?v=110767295394180070261789670865",
489      "step-template-cta-styles-rebrand": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-cta-styles-rebrand.js?v=142869031876639107801789670870",
490      "step-template-dropdown-rebrand": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-dropdown-rebrand.js?v=97242391153449308501789670866",
491      "step-template-dropdown": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-dropdown.js?v=145401369954484447311789670867",
492      "step-template-embedded-dropdown-question": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-embedded-dropdown-question.js?v=40113493148488366901789670868",
493      "step-template-embedded-quiz-question": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-embedded-quiz-question.js?v=47535194761416304741789670868",
494      "step-template-get-queue": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-get-queue.js?v=115229515376193026621789670866",
495      "step-template-get-recommendations": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-get-recommendations.js?v=103188970783978657761789670866",
496      "step-template-heading": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-heading.js?v=150947950338631408211789670867",
497      "step-template-interstitial-rebrand": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-interstitial-rebrand.js?v=70557803080707814961789670868",
498      "step-template-interstitial": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-interstitial.js?v=138552771605390965271789670868",
499      "step-template-loading-screen": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-loading-screen.js?v=101442582587348468351789670870",
500      "step-template-placeholder": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-placeholder.js?v=95794193093893487971789670869",
501      "step-template-plan-selection-dynamic-rebrand": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-plan-selection-dynamic-rebrand.js?v=127198644629320498091789670866",
502      "step-template-plan-selection-dynamic": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-plan-selection-dynamic.js?v=143959688456505221531789670867",
503      "step-template-plan-selection-rebrand": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-plan-selection-rebrand.js?v=179492741331919308961789670867",
504      "step-template-plan-selection": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-plan-selection.js?v=85175972912719202851789670868",
505      "step-template-plan-selector-dynamic-rebrand": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-plan-selector-dynamic-rebrand.js?v=79558636234575409521789670869",
506      "step-template-plan-selector-dynamic": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-plan-selector-dynamic.js?v=68301397365298470041789670870",
507      "step-template-plan-selector-rebrand": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-plan-selector-rebrand.js?v=73957724881088174071789670869",
508      "step-template-plan-selector": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-plan-selector.js?v=87291646979685054831789670868",
509      "step-template-quiz-dropdown": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-quiz-dropdown.js?v=45028379085535405561789670869",
510      "step-template-quiz-question-v-2": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-quiz-question-v-2.js?v=140741287149391192061789670870",
511      "step-template-quiz-question": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-quiz-question.js?v=67808587084886065641789670871",
512      "step-template-results-order-summary": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-results-order-summary.js?v=64438023967459517241789670872",
513      "step-template-results-page-queue": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-results-page-queue.js?v=98001793856499183321789670873",
514      "step-template-results-page-v2": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-results-page-v2.js?v=132470574134712468751789670873",
515      "step-template-results-page": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-results-page.js?v=159330160534977670941789670874",
516      "step-template-results-timeline": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-results-timeline.js?v=166145303727764145931789670872",
517      "step-template-toggle": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-toggle.js?v=7582571911830285721789670871",
518      "step-template-value-props-rebrand": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-value-props-rebrand.js?v=50257787242093139001789670872",
519      "step-template-value-props": "//www.drinktrade.com/cdn/shop/t/2106/assets/step-template-value-props.js?v=23328817128973983311789670872"
520    }
521  }
522</script>
522
523
524<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
524<meta name="google-site-verification" content="6sdtovfKC2NW7obcTUkWwzk3N3FCvc_-P06prLwF2fo">
525<meta name="facebook-domain-verification" content="76pjzllf09qo4lcw03sqlprvvot4wx">
526<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/79471280447/digital_wallets/dialog">
527<meta id="in-context-paypal-metadata" data-shop-id="79471280447" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
528<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
528<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=6527254847"></script>
528
529<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
530<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=6527254847&shop_id=79471280447" crossorigin="anonymous"></script>
vendor: 1 bytes, line 530
530
531<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":79471280447,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/79471280447","merchantName":"Trade Coffee","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Trade Coffee","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 531
531
532<script id="shopify-features" type="application/json">{"accessToken":"3da1540d33fed79f8a6bfac10cab94ee","betas":["rich-media-storefront-analytics"],"domain":"www.drinktrade.com","predictiveSearch":true,"shopId":79471280447,"locale":"en"}</script>
vendor: 1 bytes, line 532
532
533<script>var Shopify = Shopify || {};
534Shopify.shop = "drinktrade.myshopify.com";
535Shopify.locale = "en";
536Shopify.currency = {"active":"USD","rate":"1.0"};
537Shopify.country = "US";
538Shopify.theme = {"name":"Production | 09-23-26 | RELEASE_v3.76.0","id":188794601791,"schema_name":"Shopify Shell theme","schema_version":"2.0.0","theme_store_id":null,"role":"main"};
539Shopify.theme.handle = "null";
540Shopify.theme.style = {"id":null,"handle":null};
541Shopify.cdnHost = "www.drinktrade.com/cdn";
542Shopify.routes = Shopify.routes || {};
543Shopify.routes.root = "/";
544Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
545Shopify.SignInWithShop = Shopify.SignInWithShop || {};
546Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
547Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 547
547
548<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 548
548
549<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 549
549
550<script>
551  window.ShopifyPay = window.ShopifyPay || {};
552  window.ShopifyPay.apiHost = "shop.app\/pay";
553  window.ShopifyPay.redirectState = null;
554</script>
vendor: 1 bytes, line 554
554
555<script>
556  window.Shopify = window.Shopify || {};
557  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
558  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
559  window.Shopify.SignInWithShop.eligible = true;
560</script>
vendor: 1 bytes, line 560
560
561<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 561
561
562<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 562
562
563<script type="module">
564  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
565
566  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
567
568</script>
vendor: 1 bytes, line 568
568
569<script>
570  window.Shopify = window.Shopify || {};
571  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
572  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
573</script>
vendor: 1 bytes, line 573
573
574<script>(function() {
575  var isLoaded = false;
576  function asyncLoad() {
577    if (isLoaded) return;
578    isLoaded = true;
579    var urls = ["https:\/\/cdn-loyalty.yotpo.com\/loader\/RE8BtND7urgOHdFDaTsGbw.js?shop=drinktrade.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=WmYpcv\u0026shop=drinktrade.myshopify.com","https:\/\/superfiliate-cdn.com\/storefront.js?shop=drinktrade.myshopify.com","https:\/\/admin.revenuehunt.com\/embed.js?shop=drinktrade.myshopify.com","https:\/\/cdn-app.cart-bot.net\/public\/js\/append.js?shop=drinktrade.myshopify.com","https:\/\/searchanise-ef84.kxcdn.com\/widgets\/shopify\/init.js?a=9V8G3W0Z8J\u0026shop=drinktrade.myshopify.com","https:\/\/cdn-bundler.nice-team.net\/app\/js\/bundler.js?shop=drinktrade.myshopify.com"];
580    for (var i = 0; i < urls.length; i++) {
581      var s = document.createElement('script');
582      s.type = 'text/javascript';
583      s.async = true;
584      s.src = urls[i];
585      var x = document.getElementsByTagName('script')[0];
586      x.parentNode.insertBefore(s, x);
587    }
588  };
589  if(window.attachEvent) {
590    window.attachEvent('onload', asyncLoad);
591  } else {
592    window.addEventListener('load', asyncLoad, false);
593  }
594})();</script>
vendor: 1 bytes, line 594
594
595<script id="__st">var __st={"a":79471280447,"offset":-14400,"reqid":"6e00a202-f8a2-44d8-adbf-6423022562e4-1790273988","pageurl":"www.drinktrade.com\/pages\/find-my-match","s":"pages-135353368895","u":"8d04b47f11fa","p":"page","rtyp":"page","rid":135353368895};</script>
vendor: 1 bytes, line 595
595
596<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 596
596
597<script id="form-persister">!function(){'use strict';const t='contact',e='new_comment',n=[[t,t],['blogs',e],['comments',e],[t,'customer']],o='password',r='form_key',c=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',o],s=()=>{try{return window.sessionStorage}catch{return}},i='__shopify_v',u=t=>t.elements[r],a=function(){const t=[...n].map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(',');var e;return e=t,()=>e?[...document.querySelectorAll(e)].map((t=>t.form)):[]}();function m(t){const e=u(t);a().includes(t)&&(!e||!e.value)&&function(t){try{if(!s())return;!function(t){const e=s();if(!e)return;const n=u(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){u(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:r})),t.elements[r].value=e}(t,e),function(t,e){const n=s();if(!n)return;const r=[...t.querySelectorAll(`input[type='${o}']`)].map((({name:t})=>t)),u=[...c,...r],a={};for(const[o,c]of new FormData(t).entries())u.includes(o)||(a[o]=c);n.setItem(e,JSON.stringify({[i]:1,action:t.action,data:a}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(t)}const f=t=>{if('true'===t.dataset.persistBound)return;const e=function(t,e){const n=function(t){return'function'==typeof t.submit?t.submit:HTMLFormElement.prototype.submit}(t).bind(t);return function(){let t;return()=>{t||(t=!0,(()=>{try{e(),n()}catch(t){(t=>{console.error('form submit failed',t)})(t)}})(),setTimeout((()=>t=!1),250))}}()}(t,(()=>{m(t)}));!function(t,e){if('function'==typeof t.submit&&'function'==typeof e)try{t.submit=e}catch{}}(t,e),t.addEventListener('submit',(t=>{t.preventDefault(),e()})),t.dataset.persistBound='true'};!function(){function t(t){const e=(t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form})(t);e&&m(e)}document.addEventListener('submit',t),document.addEventListener('DOMContentLoaded',(()=>{const e=a();for(const t of e)f(t);var n;n=document.body,new window.MutationObserver((t=>{for(const e of t)if('childList'===e.type&&e.addedNodes.length)for(const t of e.addedNodes)1===t.nodeType&&'FORM'===t.tagName&&a().includes(t)&&f(t)})).observe(n,{childList:!0,subtree:!0,attributes:!1}),document.removeEventListener('submit',t)}))}()}();</script>
vendor: 1 bytes, line 597
597
598<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.drinktrade.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 598
598
599<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.drinktrade.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
599<script crossorigin="anonymous" defer="defer" src="//www.drinktrade.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 599
599
600<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 600
600
601<script>
602  window.Shopify = window.Shopify || {};
603  window.Shopify.MCP = window.Shopify.MCP || {};
604  window.Shopify.MCP.enabled = true;
605  window.Shopify.MCP.shop = "drinktrade.myshopify.com";
606  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.drinktrade.com\/api\/mcp";
607  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}];
608</script>
vendor: 1 bytes, line 608
608
609<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.drinktrade.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
610</script>
vendor: 1 bytes, line 610
610
611<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.drinktrade.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
612</script>
vendor: 1 bytes, line 612
612
613<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
614  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
615</script>
vendor: 1 bytes, line 615
615
616<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
617</script>
vendor: 1 bytes, line 617
617
618<script integrity="sha256-/LA1C2Bx6899fYCos0FS9qLj2opaGFm7AXrTUvBEb4s=" data-source-attribution="shopify.remote_product_tracking" data-shopify-remote-tracking="{&quot;publisher_shop_id&quot;:79471280447,&quot;theme_id&quot;:188794601791,&quot;theme_published&quot;:true,&quot;theme_store_id&quot;:0,&quot;placement&quot;:&quot;collection&quot;,&quot;event_data&quot;:{&quot;handle&quot;:&quot;find-my-match&quot;,&quot;page_type&quot;:&quot;page&quot;},&quot;recommendations_tracking_enabled&quot;:true}" defer="defer" src="//www.drinktrade.com/cdn/shopifycloud/storefront/assets/storefront/remote_product_tracking-91d95044.js" crossorigin="anonymous"></script>
618
619<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.drinktrade.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
620<style id="shopify-accelerated-checkout-cart">
621        #shopify-buyer-consent {
622  margin-top: 1em;
623  display: inline-block;
624  width: 100%;
625}
626
627#shopify-buyer-consent.hidden {
628  display: none;
629}
630
631#shopify-subscription-policy-button {
632  background: none;
633  border: none;
634  padding: 0;
635  text-decoration: underline;
636  font-size: inherit;
637  cursor: pointer;
638}
639
640#shopify-subscription-policy-button::before {
641  box-shadow: none;
642}
643
644      </style>
645
646<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
646
647
648    
648<script>
649  // Expose Shopify template name for analytics tracking
650  window.SHOPIFY_TEMPLATE = "page.discovery-trial-quiz";
651
652  const IO = new IntersectionObserver(
653    (ObserverEntry) => {
654      ObserverEntry.forEach((entry) => {
655        const { isIntersecting, target } = entry;
656        if (isIntersecting) {
657          const isSvg = target.dataset.svg == 'true';
658          if (!isSvg) {
659            const source = target.querySelector('source');
660            const srcset = source.dataset.srcset;
661            source.srcset = srcset;
662          } else {
663            const img = target.querySelector('img');
664            img.src = img.dataset.src;
665          }
666          target.dataset.loaded = true;
667          IO.unobserve(target);
668        }
669      });
670    },
671    {
672      rootMargin: '10px',
673      threshold: 0,
674    }
675  );
676
677  const lazyImageFn = (el) => {
678    const loaded = el.dataset.loaded;
679    if (loaded !== 'true') {
680      IO.observe(el);
681    }
682  };
683
684  window.lazyImageFn = lazyImageFn;
685</script>
685
686
687
688    
688<script>
689      document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
690      if (Shopify.designMode) {
691        document.documentElement.classList.add('shopify-design-mode');
692      }
693      window.tradeSettings = { flatRateShipping: "3.99" };
694    </script>
694
695
696    
696<script defer>
697  /*! lozad.js - v1.16.0 - 2020-09-06
698   * https://github.com/ApoorvSaxena/lozad.js
699   * Copyright (c) 2020 Apoorv Saxena; Licensed MIT */
700  !(function (t, e) {
701    'object' == typeof exports && 'undefined' != typeof module
702      ? (module.exports = e())
703      : 'function' == typeof define && define.amd
704      ? define(e)
705      : (t.lozad = e());
706  })(this, function () {
707    'use strict';
708    /**
709     * Detect IE browser
710     * @const {boolean}
711     * @private
712     */ var g = 'undefined' != typeof document && document.documentMode,
713      f = {
714        rootMargin: '0px',
715        threshold: 0,
716        load: function (t) {
717          if ('picture' === t.nodeName.toLowerCase()) {
718            var e = t.querySelector('img'),
719              r = !1;
720            null === e && ((e = document.createElement('img')), (r = !0)),
721              g && t.getAttribute('data-iesrc') && (e.src = t.getAttribute('data-iesrc')),
722              t.getAttribute('data-alt') && (e.alt = t.getAttribute('data-alt')),
723              r && t.append(e);
724          }
725          if ('video' === t.nodeName.toLowerCase() && !t.getAttribute('data-src') && t.children) {
726            for (var a = t.children, o = void 0, i = 0; i <= a.length - 1; i++)
727              (o = a[i].getAttribute('data-src')) && (a[i].src = o);
728            t.load();
729          }
730          t.getAttribute('data-poster') && (t.poster = t.getAttribute('data-poster')),
731            t.getAttribute('data-src') && (t.src = t.getAttribute('data-src')),
732            t.getAttribute('data-srcset') && t.setAttribute('srcset', t.getAttribute('data-srcset'));
733          var n = ',';
734          if (
735            (t.getAttribute('data-background-delimiter') && (n = t.getAttribute('data-background-delimiter')),
736            t.getAttribute('data-background-image'))
737          )
738            t.style.backgroundImage =
739              "url('" + t.getAttribute('data-background-image').split(n).join("'),url('") + "')";
740          else if (t.getAttribute('data-background-image-set')) {
741            var d = t.getAttribute('data-background-image-set').split(n),
742              u = d[0].substr(0, d[0].indexOf(' ')) || d[0]; // Substring before ... 1x
743            (u = -1 === u.indexOf('url(') ? 'url(' + u + ')' : u),
744              1 === d.length
745                ? (t.style.backgroundImage = u)
746                : t.setAttribute(
747                    'style',
748                    (t.getAttribute('style') || '') +
749                      'background-image: ' +
750                      u +
751                      '; background-image: -webkit-image-set(' +
752                      d +
753                      '); background-image: image-set(' +
754                      d +
755                      ')'
756                  );
757          }
758          t.getAttribute('data-toggle-class') && t.classList.toggle(t.getAttribute('data-toggle-class'));
759        },
760        loaded: function () {},
761      };
762    function A(t) {
763      t.setAttribute('data-loaded', !0);
764    }
765    var m = function (t) {
766        return 'true' === t.getAttribute('data-loaded');
767      },
768      v = function (t) {
769        var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : document;
770        return t instanceof Element ? [t] : t instanceof NodeList ? t : e.querySelectorAll(t);
771      };
772    return function () {
773      var r,
774        a,
775        o = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : '.lozad',
776        t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},
777        e = Object.assign({}, f, t),
778        i = e.root,
779        n = e.rootMargin,
780        d = e.threshold,
781        u = e.load,
782        g = e.loaded,
783        s = void 0;
784      'undefined' != typeof window &&
785        window.IntersectionObserver &&
786        (s = new IntersectionObserver(
787          ((r = u),
788          (a = g),
789          function (t, e) {
790            t.forEach(function (t) {
791              (0 < t.intersectionRatio || t.isIntersecting) &&
792                (e.unobserve(t.target), m(t.target) || (r(t.target), A(t.target), a(t.target)));
793            });
794          }),
795          { root: i, rootMargin: n, threshold: d }
796        ));
797      for (var c, l = v(o, i), b = 0; b < l.length; b++)
798        (c = l[b]).getAttribute('data-placeholder-background') &&
799          (c.style.background = c.getAttribute('data-placeholder-background'));
800      return {
801        observe: function () {
802          for (var t = v(o, i), e = 0; e < t.length; e++)
803            m(t[e]) || (s ? s.observe(t[e]) : (u(t[e]), A(t[e]), g(t[e])));
804        },
805        triggerLoad: function (t) {
806          m(t) || (u(t), A(t), g(t));
807        },
808        observer: s,
809      };
810    };
811  });
812</script>
812
813
814<script defer>
815  (() => {
816    document.addEventListener('DOMContentLoaded', () => {
817      const observer = lozad();
818      observer.observe();
819    });
820  })();
821</script>
821
822
823
824
825
826
827
828<script
829  async
830  type="text/javascript"
831  src="https://static.ordergroove.com/5821cc3c27cf11ee8d0d822353e1715a/main.js"
832></script>
832<script>
833    !(function (t, e) {
834      var o, n, p, r;
835      e.__SV ||
836        ((window.posthog = e),
837        (e._i = []),
838        (e.init = function (i, s, a) {
839          function g(t, e) {
840            var o = e.split('.');
841            2 == o.length && ((t = t[o[0]]), (e = o[1])),
842              (t[e] = function () {
843                t.push([e].concat(Array.prototype.slice.call(arguments, 0)));
844              });
845          }
846          ((p = t.createElement('script')).type = 'text/javascript'),
847            (p.crossOrigin = 'anonymous'),
848            (p.async = !0),
849            (p.src = s.api_host.replace('.i.posthog.com', '-assets.i.posthog.com') + '/static/array.js'),
850            (r = t.getElementsByTagName('script')[0]).parentNode.insertBefore(p, r);
851          var u = e;
852          for (
853            void 0 !== a ? (u = e[a] = []) : (a = 'posthog'),
854              u.people = u.people || [],
855              u.toString = function (t) {
856                var e = 'posthog';
857                return 'posthog' !== a && (e += '.' + a), t || (e += ' (stub)'), e;
858              },
859              u.people.toString = function () {
860                return u.toString(1) + '.people (stub)';
861              },
862              o =
863                'init be ys Ss me gs ws capture Ne calculateEventProperties xs register register_once register_for_session unregister unregister_for_session Rs getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey canRenderSurveyAsync identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty Is ks createPersonProfile Ps bs opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing $s debug Es getPageViewId captureTraceFeedback captureTraceMetric'.split(
864                  ' '
865                ),
866              n = 0;
867            n < o.length;
868            n++
869          )
870            g(u, o[n]);
871          e._i.push([i, s, a]);
872        }),
873        (e.__SV = 1));
874    })(document, window.posthog || []);var tradeInternalReferrer = /(^|\.)drinktrade\.com$|(^|\.)drinktrade\.myshopify\.com$/i;
875    posthog.init("phc_UodV1WxhY9Ia4gpcRmenruL8VOIOBOo7iOEw9tqMJQo", {
876      api_host: 'https://us.i.posthog.com',
877      person_profiles: 'always',
878      enable_recording_console_log: true,
879      autocapture: true,
880      capture_pageview: true,
881      cross_subdomain_cookie: true,
882      before_send: function (event) {
883        if (!event || !event.properties) return event;
884        var props = event.properties;
885        ['$', '$session_entry_'].forEach(function (prefix) {
886          var domain = props[prefix + 'referring_domain'];
887          if (typeof domain === 'string' && tradeInternalReferrer.test(domain)) {
888            props.internal_referrer = props[prefix + 'referrer'] || domain;
889            props[prefix + 'referring_domain'] = '$direct';
890            if (props[prefix + 'referrer']) props[prefix + 'referrer'] = '$direct';
891          }
892        });
893        return event;
894      }
895    });</script>
895<script>
896  (() => {
897    const isMobileUserAgent = () => {
898      return /mobi|android/i.test(navigator.userAgent);
899    };
900
901    const globalProperties = {
902      Platform: isMobileUserAgent() ? 'MobileWeb' : 'DesktopWeb',
903      App: 'WebApp',
904      path: window.location.pathname,
905      url: window.location.href,
906      title: document.title,
907    };
908
909    // Convert event name to snake_case with trade: prefix for Shopify Custom Pixels
910    const toShopifyEventName = (event) => {
911      return 'trade:' + event
912        .toLowerCase()
913        .replace(/[^a-z0-9]+/g, '_')
914        .replace(/^_+|_+$/g, '');
915    };
916
917    // `options.beacon` marks an event fired immediately before a navigation
918    // (e.g. the storefront -> /checkout hand-off). Normal captures go out on a
919    // batched XHR that the browser cancels when the document unloads, so those
920    // events are simply lost. sendBeacon hands the payload to the browser,
921    // which delivers it independently of the page's lifetime.
922    const track = (event, payload = {}, options = {}) => {
923      if (window._DATADOG_SYNTHETICS_BROWSER !== undefined) {
924        return;
925      }
926
927      try {
928        // Add PostHog session ID to all events
929        let posthogSessionId = null;
930        if (typeof window.posthog !== 'undefined' && window.posthog?.get_session_id) {
931          posthogSessionId = window.posthog.get_session_id();
932        }
933
934        const combinedPayload = Object.assign(
935          Object.assign({}, globalProperties),
936          payload,
937          { posthog_session_id: posthogSessionId }
938        );
939
940        // PostHog — the analytics store for custom events.
941        if (typeof window.posthog !== 'undefined' && typeof window.posthog.capture === 'function') {
942          if (options.beacon) {
943            window.posthog.capture(event, combinedPayload, {
944              transport: 'sendBeacon',
945              send_instantly: true,
946            });
947          } else {
948            window.posthog.capture(event, combinedPayload);
949          }
950        }
951
952        // GTM dataLayer — push every custom event so the main-page GTM containers
953        // (Stape/rev-roll sGTM + any web containers bound to window.dataLayer) can
954        // consume it. The `event` key is the GTM trigger name; spread the payload
955        // first so it can't be clobbered. Every container on this dataLayer sees the
956        // push, but each fires only if it has a trigger matching the event name.
957        // (The custom-pixel sandbox container already gets these via the trade:*
958        // Shopify.analytics.publish path below.)
959        window.dataLayer = window.dataLayer || [];
960        window.dataLayer.push(Object.assign({}, combinedPayload, { event: event }));
961
962        // Shopify Custom Pixels — queue events if the API isn't ready yet
963        const shopifyEventName = toShopifyEventName(event);
964        const shopifyPayload = { customData: combinedPayload };
965        if (typeof Shopify !== 'undefined' &&
966            Shopify.analytics &&
967            typeof Shopify.analytics.publish === 'function') {
968          Shopify.analytics.publish(shopifyEventName, shopifyPayload);
969        } else {
970          window.__shopifyPixelQueue = window.__shopifyPixelQueue || [];
971          window.__shopifyPixelQueue.push({ event: shopifyEventName, payload: shopifyPayload });
972        }
973      } catch (error) {
974        // eslint-disable-next-line no-console
975        console.error('[analytics error]', error);
976      }
977    };
978
979    window.tradeTrack = window.tradeTrack || track;
980
981    // Flush queued Shopify pixel events once the API becomes available
982    (function flushShopifyPixelQueue() {
983      var maxAttempts = 20; // 20 × 500ms = 10s max wait
984      var attempt = 0;
985      var interval = setInterval(function () {
986        attempt++;
987        if (typeof Shopify !== 'undefined' &&
988            Shopify.analytics &&
989            typeof Shopify.analytics.publish === 'function') {
990          var queue = window.__shopifyPixelQueue || [];
991          for (var i = 0; i < queue.length; i++) {
992            Shopify.analytics.publish(queue[i].event, queue[i].payload);
993          }
994          window.__shopifyPixelQueue = [];
995          clearInterval(interval);
996        } else if (attempt >= maxAttempts) {
997          clearInterval(interval);
998        }
999      }, 500);
1000    })();
1001  })();
1002
1003  const initializeShoplift = () => {
1004    const urlParams = new URLSearchParams(window.location.search);
1005
1006    const reploExperiment = urlParams.get('replo-experiment');
1007    const reploVariation = urlParams.get('replo-variation');
1008
1009    if (reploExperiment && reploVariation) {
1010      window.tradeTrack('$experiment_started', {
1011        'Experiment name': reploExperiment,
1012        'Variant name': reploVariation,
1013        'Variant template': "page.discovery-trial-quiz",
1014        'Theme id': 188794601791,
1015      });
1016
1017      return;
1018    }
1019
1020    const isRedeemingGift = () => {
1021      const giftRedemptionQuantity = parseInt(urlParams.get('qty') ?? '', 10);
1022      return urlParams.get('view') === 'gift-quiz' && Object.values([3, 6, 12]).includes(giftRedemptionQuantity);
1023    };
1024
1025    let counter = 0;
1026    const interval = setInterval(async () => {
1027      counter++;
1028
1029      if (counter > 10) {
1030        clearInterval(interval);
1031        console.error('Shoplift did not load, could not fire experiment started.', window.shoplift, window.shopliftInstance);
1032        return;
1033      }
1034
1035      if (window.shoplift && window.shopliftInstance) {
1036        try {
1037          const visitorTests = window.shopliftInstance.state.essential.visitorTests;
1038          if (visitorTests) {
1039            visitorTests.forEach((visitorTest) => {
1040              const test = window.shopliftInstance.testConfigs.find((testConfig) => testConfig.id === visitorTest.testId);
1041              const allHypotheses = test?.hypotheses ?? [];
1042              const hypothesis = allHypotheses.find((h) => h.id === visitorTest.hypothesisId);
1043
1044              if (isRedeemingGift()) {
1045                return;
1046              }
1047
1048              if (hypothesis) {
1049                const testGroup = hypothesis.isControl ? 'control' : 'variant';
1050                if (hypothesis.type === 'theme') {
1051                  window.tradeTrack('$experiment_started', {
1052                    'Experiment name': test.id,
1053                    'Test id': test.id,
1054                    'Test group': testGroup,
1055                    'Variant name': testGroup,
1056                    'Variant id': hypothesis.id,
1057                    'Variant template': hypothesis.affix,
1058                    test,
1059                    visitorTest,
1060                  });
1061                } else {
1062                  window.tradeTrack('$experiment_started', {
1063                    'Experiment name': test.id,
1064                    'Test id': test.id,
1065                    'Test group': testGroup,
1066                    'Variant name': testGroup,
1067                    'Variant id': hypothesis.id,
1068                    'Variant theme id': hypothesis.themeId,
1069                    test,
1070                    visitorTest,
1071                  });
1072                }
1073              } else {
1074                console.warn('No hypothesis found for visitor test', visitorTest);
1075              }
1076            });
1077          } else {
1078            console.error('No visitor tests found', visitor);
1079          }
1080        } catch (error) {
1081          // eslint-disable-next-line no-console
1082          window.tradeTrack('Shoplift Load Failure');
1083          console.error('[shoplift error]', error);
1084        } finally {
1085          clearInterval(interval);
1086        }
1087      }
1088    }, 1000);
1089  };
1090
1091  const setKlaviyoFormListeners = () => {
1092    window.addEventListener("klaviyoForms", function(event) {
1093      if (event.detail.type === 'submit') {
1094        const emailAddress = event.detail.metaData["$email"];
1095        // set in local storage
1096        localStorage.setItem('klaviyoEmail', emailAddress);
1097
1098        console.log(`Klaviyo form submitted with email: ${emailAddress}`);
1099      }
1100    });
1101  }
1102
1103  if (document.readyState !== 'loading') {
1104    initializeShoplift();
1105    setKlaviyoFormListeners();
1106  } else {
1107    document.addEventListener('DOMContentLoaded', initializeShoplift);
1108    document.addEventListener('DOMContentLoaded', setKlaviyoFormListeners);
1109  }
1110</script>
1110
1111
1112
1113    <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
1114<link rel="preload" as="font" type="font/woff2" href="//www.drinktrade.com/cdn/shop/files/InterVariable.woff2?v=17726874589358246248" crossorigin>
1115<style data-shopify>
1116  @font-face {
1117    font-family: Inter;
1118    font-style: normal;
1119    font-weight: 100 900;
1120    src: url(//www.drinktrade.com/cdn/shop/files/InterVariable.woff2?v=17726874589358246248) format('woff2');
1121    font-display: swap;
1122  }
1123
1124  @font-face {
1125    font-family: Inter;
1126    font-style: italic;
1127    font-weight: 100 900;
1128    src: url(//www.drinktrade.com/cdn/shop/files/InterVariable-Italic.woff2?v=15038611141794517625) format('woff2');
1129    font-display: swap;
1130  }
1131
1132  /* ── GT Alpina ────────────────────────────────────────────────────────────
1133     All five cuts of GT Alpina Standard, upright and italic. Every face is a
1134     separate static file — this family has no variable build — so each one is
1135     declared on its own. Only the faces a page actually uses are downloaded,
1136     so declaring ten costs nothing until something asks for them.
1137
1138     Thin is declared at 100, not at the 250 its OS/2 usWeightClass reports.
1139     Nothing in Tailwind's scale maps to 250, so the foundry's value would only
1140     ever be reached by CSS fallback (it is the lightest face, so `font-thin`
1141     lands on it either way). Declaring 100 makes `font-thin` an exact match
1142     and states the mapping instead of leaving it to the matching algorithm.
1143
1144     Keep this list, the weights, and the filenames in sync with
1145     src/standalone/fonts.scss — the standalone dashboard runs no Liquid and
1146     mirrors these rules against absolute CDN URLs.
1147  ──────────────────────────────────────────────────────────────────────────── */
1148
1149  @font-face {
1150    font-family: 'GT Alpina';
1151    font-style: normal;
1152    font-weight: 100;
1153    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Thin.woff2?v=3081542300621144540) format('woff2');
1154    font-display: swap;
1155  }
1156
1157  @font-face {
1158    font-family: 'GT Alpina';
1159    font-style: italic;
1160    font-weight: 100;
1161    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Thin-Italic.woff2?v=16570321458351972929) format('woff2');
1162    font-display: swap;
1163  }
1164
1165  @font-face {
1166    font-family: 'GT Alpina';
1167    font-style: normal;
1168    font-weight: 300;
1169    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Light.woff2?v=4282620510385252477) format('woff2');
1170    font-display: swap;
1171  }
1172
1173  @font-face {
1174    font-family: 'GT Alpina';
1175    font-style: italic;
1176    font-weight: 300;
1177    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Light-Italic.woff2?v=17383692346786556843) format('woff2');
1178    font-display: swap;
1179  }
1180
1181  @font-face {
1182    font-family: 'GT Alpina';
1183    font-style: normal;
1184    font-weight: 400;
1185    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Regular.woff2?v=17974258050790870109) format('woff2');
1186    font-display: swap;
1187  }
1188
1189  @font-face {
1190    font-family: 'GT Alpina';
1191    font-style: italic;
1192    font-weight: 400;
1193    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Regular-Italic.woff2?v=11199247550301267404) format('woff2');
1194    font-display: swap;
1195  }
1196
1197  @font-face {
1198    font-family: 'GT Alpina';
1199    font-style: normal;
1200    font-weight: 500;
1201    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Medium.woff2?v=17755554464651672897) format('woff2');
1202    font-display: swap;
1203  }
1204
1205  @font-face {
1206    font-family: 'GT Alpina';
1207    font-style: italic;
1208    font-weight: 500;
1209    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Medium-Italic.woff2?v=2926411657096217623) format('woff2');
1210    font-display: swap;
1211  }
1212
1213  @font-face {
1214    font-family: 'GT Alpina';
1215    font-style: normal;
1216    font-weight: 700;
1217    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Bold.woff2?v=12710716301017615771) format('woff2');
1218    font-display: swap;
1219  }
1220
1221  @font-face {
1222    font-family: 'GT Alpina';
1223    font-style: italic;
1224    font-weight: 700;
1225    src: url(//www.drinktrade.com/cdn/shop/files/GT-Alpina-Standard-Bold-Italic.woff2?v=14667513512708528766) format('woff2');
1226    font-display: swap;
1227  }
1228
1229  @font-face {
1230    font-family: 'Geist Mono';
1231    font-style: normal;
1232    font-weight: 500;
1233    src: url(//www.drinktrade.com/cdn/shop/files/GeistMono-Medium.woff2?v=1320095131069479158) format('woff2');
1234    font-display: swap;
1235  }
1236</style>
1237
1238    <link href="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.section.tailwind.css?v=178082145445371909981790173858" rel="stylesheet" type="text/css" media="all" />
1239
1240<script type="application/ld+json">
1241{
1242  "@context": "https://schema.org",
1243  "@type": "Organization",
1244  "@id": "https://www.drinktrade.com/#organization",
1245  "name": "Trade Coffee",
1246  "url": "https://www.drinktrade.com",
1247  "description": "Trade matches coffee drinkers with roasted-to-order coffees from top independent roasters across the country, personalized to their taste.",
1248  "logo": {
1249    "@type": "ImageObject",
1250    "url": "https://www.drinktrade.com/cdn/shop/files/Asset_1.svg"
1251  },
1252  "sameAs": [
1253    "https://www.instagram.com/tradecoffeeco/",
1254    "https://www.facebook.com/tradecoffeeco"
1255  ],
1256  "contactPoint": {
1257    "@type": "ContactPoint",
1258    "contactType": "customer support",
1259    "availableLanguage": "English",
1260    "hoursAvailable": {
1261      "@type": "OpeningHoursSpecification",
1262      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
1263      "opens": "09:00",
1264      "closes": "17:00"
1265    }
1266  }
1267}
1268</script>
1268
1269
1270    
1270<script type="application/ld+json">
1271  {
1272    "@context": "https://schema.org",
1273    "@type": "WebPage",
1274    "@id": "https:\/\/www.drinktrade.com\/pages\/find-my-match",
1275    "url": "https:\/\/www.drinktrade.com\/pages\/find-my-match",
1276    "name": "Coffee Subscription Quiz | Find Your Perfect Coffee | Trade Coffee",
1277      "description": "Take our quick coffee quiz and discover coffees tailored to your tastes. Explore 500+ coffees from 55+ top roasters.",
1278    "publisher": {
1279      "@id": "https://www.drinktrade.com/#organization"
1280    }
1281  }
1282  </script>
1282
1283  <!-- BEGIN app block: shopify://apps/okendo/blocks/theme-settings/bb689e69-ea70-4661-8fb7-ad24a2e23c29 --><!-- BEGIN app snippet: header-metafields -->
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296    
1297        <style data-oke-reviews-version="0.94.3" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/okendo-reviews-styles.6dbb2446.css"></style><style data-oke-reviews-version="0.94.3" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/okendo-star-rating.4cb378a8.css"></style><style data-oke-reviews-version="0.94.3" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/okendo-reviews-keywords.0942444f.css"></style><style data-oke-reviews-version="0.94.3" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/okendo-reviews-summary.a0c9d7d6.css"></style><style type="text/css">.okeReviews[data-oke-container],div.okeReviews{font-size:14px;font-size:var(--oke-text-regular);font-weight:400;font-family:var(--oke-text-fontFamily);line-height:1.6}.okeReviews[data-oke-container] *,.okeReviews[data-oke-container] :after,.okeReviews[data-oke-container] :before,div.okeReviews *,div.okeReviews :after,div.okeReviews :before{box-sizing:border-box}.okeReviews[data-oke-container] h1,.okeReviews[data-oke-container] h2,.okeReviews[data-oke-container] h3,.okeReviews[data-oke-container] h4,.okeReviews[data-oke-container] h5,.okeReviews[data-oke-container] h6,div.okeReviews h1,div.okeReviews h2,div.okeReviews h3,div.okeReviews h4,div.okeReviews h5,div.okeReviews h6{font-size:1em;font-weight:400;line-height:1.4;margin:0}.okeReviews[data-oke-container] ul,div.okeReviews ul{padding:0;margin:0}.okeReviews[data-oke-container] li,div.okeReviews li{list-style-type:none;padding:0}.okeReviews[data-oke-container] p,div.okeReviews p{line-height:1.8;margin:0 0 4px}.okeReviews[data-oke-container] p:last-child,div.okeReviews p:last-child{margin-bottom:0}.okeReviews[data-oke-container] a,div.okeReviews a{text-decoration:none;color:inherit}.okeReviews[data-oke-container] button,div.okeReviews button{border-radius:0;border:0;box-shadow:none;margin:0;width:auto;min-width:auto;padding:0;background-color:transparent;min-height:auto}.okeReviews[data-oke-container] button,.okeReviews[data-oke-container] input,.okeReviews[data-oke-container] select,.okeReviews[data-oke-container] textarea,div.okeReviews button,div.okeReviews input,div.okeReviews select,div.okeReviews textarea{font-family:inherit;font-size:1em}.okeReviews[data-oke-container] label,.okeReviews[data-oke-container] select,div.okeReviews label,div.okeReviews select{display:inline}.okeReviews[data-oke-container] select,div.okeReviews select{width:auto}.okeReviews[data-oke-container] article,.okeReviews[data-oke-container] aside,div.okeReviews article,div.okeReviews aside{margin:0}.okeReviews[data-oke-container] table,div.okeReviews table{background:transparent;border:0;border-collapse:collapse;border-spacing:0;font-family:inherit;font-size:1em;table-layout:auto}.okeReviews[data-oke-container] table td,.okeReviews[data-oke-container] table th,.okeReviews[data-oke-container] table tr,div.okeReviews table td,div.okeReviews table th,div.okeReviews table tr{border:0;font-family:inherit;font-size:1em}.okeReviews[data-oke-container] table td,.okeReviews[data-oke-container] table th,div.okeReviews table td,div.okeReviews table th{background:transparent;font-weight:400;letter-spacing:normal;padding:0;text-align:left;text-transform:none;vertical-align:middle}.okeReviews[data-oke-container] table tr:hover td,.okeReviews[data-oke-container] table tr:hover th,div.okeReviews table tr:hover td,div.okeReviews table tr:hover th{background:transparent}.okeReviews[data-oke-container] fieldset,div.okeReviews fieldset{border:0;padding:0;margin:0;min-width:0}.okeReviews[data-oke-container] img,.okeReviews[data-oke-container] svg,div.okeReviews img,div.okeReviews svg{max-width:none}.okeReviews[data-oke-container] div:empty,div.okeReviews div:empty{display:block}.okeReviews[data-oke-container] .oke-icon:before,div.okeReviews .oke-icon:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit}.okeReviews[data-oke-container] .oke-icon--select-arrow:before,div.okeReviews .oke-icon--select-arrow:before{content:""}.okeReviews[data-oke-container] .oke-icon--loading:before,div.okeReviews .oke-icon--loading:before{content:""}
1297.okeReviews[data-oke-container] .oke-icon--pencil:before,div.okeReviews .oke-icon--pencil:before{content:""}.okeReviews[data-oke-container] .oke-icon--filter:before,div.okeReviews .oke-icon--filter:before{content:""}.okeReviews[data-oke-container] .oke-icon--play:before,div.okeReviews .oke-icon--play:before{content:""}.okeReviews[data-oke-container] .oke-icon--tick-circle:before,div.okeReviews .oke-icon--tick-circle:before{content:""}.okeReviews[data-oke-container] .oke-icon--chevron-left:before,div.okeReviews .oke-icon--chevron-left:before{content:""}.okeReviews[data-oke-container] .oke-icon--chevron-right:before,div.okeReviews .oke-icon--chevron-right:before{content:""}.okeReviews[data-oke-container] .oke-icon--thumbs-down:before,div.okeReviews .oke-icon--thumbs-down:before{content:""}.okeReviews[data-oke-container] .oke-icon--thumbs-up:before,div.okeReviews .oke-icon--thumbs-up:before{content:""}.okeReviews[data-oke-container] .oke-icon--close:before,div.okeReviews .oke-icon--close:before{content:""}.okeReviews[data-oke-container] .oke-icon--chevron-up:before,div.okeReviews .oke-icon--chevron-up:before{content:""}.okeReviews[data-oke-container] .oke-icon--chevron-down:before,div.okeReviews .oke-icon--chevron-down:before{content:""}.okeReviews[data-oke-container] .oke-icon--star:before,div.okeReviews .oke-icon--star:before{content:""}.okeReviews[data-oke-container] .oke-icon--magnifying-glass:before,div.okeReviews .oke-icon--magnifying-glass:before{content:""}@font-face{font-family:oke-widget-icons;src:url(https://cdn-static.okendo.io/reviews-widget-plus/fonts/oke-widget-icons.ttf) format("truetype"),url(https://cdn-static.okendo.io/reviews-widget-plus/fonts/oke-widget-icons.woff) format("woff"),url(https://cdn-static.okendo.io/reviews-widget-plus/img/oke-widget-icons.bc0d6b0a.svg) format("svg");font-weight:400;font-style:normal;font-display:swap}.okeReviews[data-oke-container] .oke-button,div.okeReviews .oke-button{display:inline-block;border-style:solid;border-color:var(--oke-button-borderColor);border-width:var(--oke-button-borderWidth);background-color:var(--oke-button-backgroundColor);line-height:1;padding:12px 24px;margin:0;border-radius:var(--oke-button-borderRadius);color:var(--oke-button-textColor);text-align:center;position:relative;font-weight:var(--oke-button-fontWeight);font-size:var(--oke-button-fontSize);font-family:var(--oke-button-fontFamily);outline:0}.okeReviews[data-oke-container] .oke-button-text,.okeReviews[data-oke-container] .oke-button .oke-icon,div.okeReviews .oke-button-text,div.okeReviews .oke-button .oke-icon{line-height:1}.okeReviews[data-oke-container] .oke-button.oke-is-loading,div.okeReviews .oke-button.oke-is-loading{position:relative}.okeReviews[data-oke-container] .oke-button.oke-is-loading:before,div.okeReviews .oke-button.oke-is-loading:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";color:undefined;font-size:12px;display:inline-block;animation:oke-spin 1s linear infinite;position:absolute;width:12px;height:12px;top:0;left:0;bottom:0;right:0;margin:auto}.okeReviews[data-oke-container] .oke-button.oke-is-loading>*,div.okeReviews .oke-button.oke-is-loading>*{opacity:0}.okeReviews[data-oke-container] .oke-button.oke-is-active,div.okeReviews .oke-button.oke-is-active{background-color:var(--oke-button-backgroundColorActive);color:var(--oke-button-textColorActive);border-color:var(--oke-button-borderColorActive)}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading),div.okeReviews .oke-button:not(.oke-is-loading){cursor:pointer}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover{background-color:var(--oke-button-backgroundColorHover);color:var(--oke-button-textColorHover);border-color:var(--oke-button-borderColorHover);box-shadow:0 0 0 2px var(--oke-button-backgroundColorHover)}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):active,.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover:active,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):active,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover:active{background-color:var(--oke-button-backgroundColorActive);color:var(--oke-button-textColorActive);border-color:var(--oke-button-borderColorActive)}.okeReviews[data-oke-container] .oke-title,div.okeReviews .oke-title{font-weight:var(--oke-title-fontWeight);font-size:var(--oke-title-fontSize);font-family:var(--oke-title-fontFamily)}.okeReviews[data-oke-container] .oke-bodyText,div.okeReviews .oke-bodyText{font-weight:var(--oke-bodyText-fontWeight);font-size:var(--oke-bodyText-fontSize);font-family:var(--oke-bodyText-fontFamily)}.okeReviews[data-oke-container] .oke-linkButton,div.okeReviews .oke-linkButton{curs
1297or:pointer;font-weight:700;pointer-events:auto;text-decoration:underline}.okeReviews[data-oke-container] .oke-linkButton:hover,div.okeReviews .oke-linkButton:hover{text-decoration:none}.okeReviews[data-oke-container] .oke-readMore,div.okeReviews .oke-readMore{cursor:pointer;color:inherit;text-decoration:underline}.okeReviews[data-oke-container] .oke-select,div.okeReviews .oke-select{cursor:pointer;background-repeat:no-repeat;background-position-x:100%;background-position-y:50%;border:none;padding:0 24px 0 12px;-moz-appearance:none;appearance:none;color:inherit;-webkit-appearance:none;background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='currentColor' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");outline-offset:4px}.okeReviews[data-oke-container] .oke-select:disabled,div.okeReviews .oke-select:disabled{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%239a9db1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.okeReviews[data-oke-container] .oke-loader,div.okeReviews .oke-loader{position:relative}.okeReviews[data-oke-container] .oke-loader:before,div.okeReviews .oke-loader:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";color:var(--oke-text-secondaryColor);font-size:12px;display:inline-block;animation:oke-spin 1s linear infinite;position:absolute;width:12px;height:12px;top:0;left:0;bottom:0;right:0;margin:auto}.okeReviews[data-oke-container] .oke-a11yText,div.okeReviews .oke-a11yText{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.okeReviews[data-oke-container] .oke-hidden,div.okeReviews .oke-hidden{display:none}.okeReviews[data-oke-container] .oke-modal,div.okeReviews .oke-modal{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2147483647;max-height:100%;background-color:rgba(0,0,0,.5);padding:40px 0 12px}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal,div.okeReviews .oke-modal{display:flex;align-items:center;padding:48px 0}}.okeReviews[data-oke-container] .oke-modal ::-moz-selection,div.okeReviews .oke-modal ::-moz-selection{background-color:rgba(39,45,69,.2)}.okeReviews[data-oke-container] .oke-modal ::selection,div.okeReviews .oke-modal ::selection{background-color:rgba(39,45,69,.2)}.okeReviews[data-oke-container] .oke-modal,.okeReviews[data-oke-container] .oke-modal p,div.okeReviews .oke-modal,div.okeReviews .oke-modal p{color:#272d45}.okeReviews[data-oke-container] .oke-modal-content,div.okeReviews .oke-modal-content{background-color:#fff;margin:auto;position:relative;will-change:transform,opacity;width:calc(100% - 24px)}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal-content,div.okeReviews .oke-modal-content{max-width:1000px}}.okeReviews[data-oke-container] .oke-modal-close,div.okeReviews .oke-modal-close{cursor:pointer;position:absolute;width:32px;height:32px;top:-32px;padding:4px;right:-4px;line-height:1}.okeReviews[data-oke-container] .oke-modal-close:before,div.okeReviews .oke-modal-close:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";color:#fff;font-size:24px;display:inline-block;width:24px;height:24px}.okeReviews[data-oke-container] .oke-modal-overlay,div.okeReviews .oke-modal-overlay{background-color:rgba(43,46,56,.9)}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal--large .oke-modal-content,div.okeReviews .oke-modal--large .oke-modal-content{max-width:1200px}}.okeReviews[data-oke-container] .oke-modal .oke-helpful,.okeReviews[data-oke-container] .oke-modal .oke-helpful-vote-button,.okeReviews[data-oke-container] .oke-modal .oke-reviewContent-date,div.okeReviews .oke-modal .oke-helpful,div.okeReviews .oke-modal .oke-helpful-vote-button,div.okeReviews .oke-modal .oke-reviewContent-date{color:#676986}.oke-modal .okeReviews[data-oke-container].oke-w,.oke-modal div.okeReviews.oke-w{color:#272d45}.okeReviews[data-oke-container] .oke-tag,div.okeReviews .oke-tag{align-items:center;color:#272d45;display:flex;font-size:var(--oke-text-small);font-weight:600;text-align:left;position:relative;z-index:2;background-color:#f4f4f6;padding:4px 6px;border:none;border-radius:4px;gap:6px;line-height:1}.okeReviews[data-oke-container] .oke-tag svg,div.okeReviews .oke-tag svg{fill:currentColor;height:1rem}.okeReviews[data-oke-container] .hooper,div.okeReviews .hooper{height:auto}.okeReviews--left{text-align:left}.okeReviews--right{text-align:right}.okeReviews--center{text-align:center}.okeReviews :not([tabindex="-1"]):focus-visible{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.is-oke-modalOpen{overflow:hidden!important}img.oke-is-error{background-color:var(--oke-shadingColor);background-size:cover;background-position:50% 50%;box-shadow:inset 0 0 0 1px var(--oke-border-color)}@keyframes oke-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes oke-fade-in{0%{opacity:0}
1297to{opacity:1}}.layout-panel-flex>div:has([data-oke-container]){width:100%}
1298.oke-stars{line-height:1;position:relative;display:inline-block}.oke-stars-background svg{overflow:visible}.oke-stars-foreground{overflow:hidden;position:absolute;top:0;left:0}.oke-sr{display:inline-block;padding-top:var(--oke-starRating-spaceAbove);padding-bottom:var(--oke-starRating-spaceBelow)}.oke-sr .oke-is-clickable{cursor:pointer}.oke-sr--hidden{display:none}.oke-sr-count,.oke-sr-rating,.oke-sr-stars{display:inline-block;vertical-align:middle}.oke-sr-stars{line-height:1;margin-right:8px}.oke-sr-rating{display:none}.oke-sr-count--brackets:before{content:"("}.oke-sr-count--brackets:after{content:")"}
1299.oke-rk{display:block}.okeReviews[data-oke-container] .oke-reviewsKeywords-heading,div.okeReviews .oke-reviewsKeywords-heading{font-weight:700;margin-bottom:8px}.okeReviews[data-oke-container] .oke-reviewsKeywords-heading-skeleton,div.okeReviews .oke-reviewsKeywords-heading-skeleton{height:calc(var(--oke-button-fontSize) + 4px);width:150px}.okeReviews[data-oke-container] .oke-reviewsKeywords-list,div.okeReviews .oke-reviewsKeywords-list{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category,div.okeReviews .oke-reviewsKeywords-list-category{background-color:var(--oke-filter-backgroundColor);color:var(--oke-filter-textColor);border:1px solid var(--oke-filter-borderColor);border-radius:var(--oke-filter-borderRadius);padding:6px 16px;transition:background-color .1s ease-out,border-color .1s ease-out;white-space:nowrap}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category.oke-is-clickable,div.okeReviews .oke-reviewsKeywords-list-category.oke-is-clickable{cursor:pointer}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category.oke-is-active,div.okeReviews .oke-reviewsKeywords-list-category.oke-is-active{background-color:var(--oke-filter-backgroundColorActive);color:var(--oke-filter-textColorActive);border-color:var(--oke-filter-borderColorActive)}.okeReviews[data-oke-container] .oke-reviewsKeywords .oke-translateButton,div.okeReviews .oke-reviewsKeywords .oke-translateButton{margin-top:12px}
1300.oke-rs{display:block}.oke-rs .oke-reviewsSummary.oke-is-preRender .oke-reviewsSummary-summary{-webkit-mask:linear-gradient(180deg,#000 0,#000 40%,transparent 95%,transparent 0) 100% 50%/100% 100% repeat-x;mask:linear-gradient(180deg,#000 0,#000 40%,transparent 95%,transparent 0) 100% 50%/100% 100% repeat-x;max-height:150px}.okeReviews[data-oke-container] .oke-reviewsSummary .oke-tooltip,div.okeReviews .oke-reviewsSummary .oke-tooltip{display:inline-block;font-weight:400}.okeReviews[data-oke-container] .oke-reviewsSummary .oke-tooltip-trigger,div.okeReviews .oke-reviewsSummary .oke-tooltip-trigger{height:15px;width:15px;overflow:hidden;transform:translateY(-10%)}.okeReviews[data-oke-container] .oke-reviewsSummary-heading,div.okeReviews .oke-reviewsSummary-heading{align-items:center;-moz-column-gap:4px;column-gap:4px;display:inline-flex;font-weight:700;margin-bottom:8px}.okeReviews[data-oke-container] .oke-reviewsSummary-heading-skeleton,div.okeReviews .oke-reviewsSummary-heading-skeleton{height:calc(var(--oke-button-fontSize) + 4px);width:150px}.okeReviews[data-oke-container] .oke-reviewsSummary-icon,div.okeReviews .oke-reviewsSummary-icon{fill:currentColor;font-size:14px}.okeReviews[data-oke-container] .oke-reviewsSummary-icon svg,div.okeReviews .oke-reviewsSummary-icon svg{vertical-align:baseline}.okeReviews[data-oke-container] .oke-reviewsSummary-summary.oke-is-truncated,div.okeReviews .oke-reviewsSummary-summary.oke-is-truncated{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}</style>
1301    
1302    
1302<script type="application/json" id="oke-reviews-settings">{"subscriberId":"d2bc5c90-c9cb-450d-ad0a-ede17e1609c5","analyticsSettings":{"isWidgetOnScreenTrackingEnabled":true,"provider":"gtm"},"locale":"en","localeAndVariant":{"code":"en"},"matchCustomerLocale":false,"widgetSettings":{"global":{"dateSettings":{"format":{"type":"relative"}},"hideOkendoBranding":true,"reviewTranslationsMode":"off","showIncentiveIndicator":true,"searchEnginePaginationEnabled":false,"stars":{"backgroundColor":"#ECECEE","borderColor":"#FFFFFF","foregroundColor":"#F45048","interspace":1,"shape":{"type":"default"},"showBorder":true},"font":{"fontType":"custom","fontFamily":"inter"}},"homepageCarousel":{"slidesPerPage":{"large":3,"medium":2},"totalSlides":20,"scrollBehaviour":"slide","sortOptionOrder":["rating desc","helpful desc","date desc","has_media desc","date asc","rating asc","unhelpful desc"],"style":{"showDates":true,"border":{"color":"#D7D7DA","width":{"value":1,"unit":"px"}},"bodyFont":{"fontSize":{"value":16,"unit":"px"},"fontType":"use-global","fontWeight":400,"hasCustomFontSettings":true},"headingFont":{"fontSize":{"value":18,"unit":"px"},"fontType":"use-global","fontWeight":600,"hasCustomFontSettings":true},"arrows":{"color":"#252525","size":{"value":24,"unit":"px"},"enabled":true},"avatar":{"backgroundColor":"#E5E5EB","placeholderTextColor":"#252525","size":{"value":40,"unit":"px"},"enabled":false},"media":{"size":{"value":80,"unit":"px"},"imageGap":{"value":4,"unit":"px"},"enabled":false},"stars":{"height":{"value":23,"unit":"px"}},"productImageSize":{"value":48,"unit":"px"},"layout":{"name":"default","reviewDetailsPosition":"above","showAttributeBars":false,"showProductDetails":"never"},"highlightColor":"#252525","spaceAbove":{"value":20,"unit":"px"},"text":{"primaryColor":"#252525","fontSizeRegular":{"value":18,"unit":"px"},"fontSizeSmall":{"value":14,"unit":"px"},"secondaryColor":"#252525"},"spaceBelow":{"value":20,"unit":"px"}},"featuredReviewsTags":["vmJoPyw"],"defaultSort":"tags desc","autoPlay":true,"secondarySort":"rating desc","truncation":{"bodyMaxLines":4,"truncateAll":false,"enabled":true}},"mediaCarousel":{"minimumImages":1,"linkText":"Read More","autoPlay":false,"slideSize":"medium","arrowPosition":"outside"},"mediaGrid":{"gridStyleDesktop":{"layout":"default-desktop"},"gridStyleMobile":{"layout":"default-mobile"},"showMoreArrow":{"arrowColor":"#676986","enabled":true,"backgroundColor":"#f4f4f6"},"linkText":"Read More","infiniteScroll":false,"gapSize":{"value":10,"unit":"px"}},"questions":{"initialPageSize":6,"loadMorePageSize":6},"reviewsBadge":{"layout":"large","colorScheme":"dark"},"reviewsTab":{"enabled":false},"reviewsWidget":{"tabs":{"reviews":true,"questions":true},"header":{"columnDistribution":"space-between","verticalAlignment":"top","blocks":[{"columnWidth":"one-third","modules":[{"name":"rating-average","layout":"one-line"},{"name":"rating-breakdown","backgroundColor":"#F4F4F6","shadingColor":"#252525","stretchMode":"contain"}],"textAlignment":"left"},{"columnWidth":"half","modules":[{"name":"recommended"}],"textAlignment":"center"}]},"style":{"showDates":true,"border":{"color":"#D7D7DA","width":{"value":1,"unit":"px"}},"bodyFont":{"fontSize":{"value":16,"unit":"px"},"fontType":"use-global","fontWeight":400,"hasCustomFontSettings":true},"headingFont":{"fontSize":{"value":24,"unit":"px"},"fontType":"use-global","fontWeight":700,"hasCustomFontSettings":true},"filters":{"backgroundColorActive":"#252525","backgroundColor":"#FFFFFF","borderColor":"#D7D7DA","borderRadius":{"value":8,"unit":"px"},"borderColorActive":"#252525","textColorActive":"#FFFFFF","textColor":"#252525","searchHighlightColor":"#d7b0a0"},"avatar":{"enabled":false},"stars":{"height":{"value":23,"unit":"px"}},"shadingColor":"#F7F7F8","productImageSize":{"value":48,"unit":"px"},"button":{"backgroundColorActive":"#252525","borderColorHover":"#252525","backgroundColor":"#252525","borderColor":"#252525","backgroundColorHover":"#252525","textColorHover":"#FFFFFF","borderRadius":{"value":8,"unit":"px"},"borderWidth":{"value":0,"unit":"px"},"borderColorActive":"#252525","textColorActive":"#FFFFFF","textColor":"#FFFFFF","font":{"fontSize":{"value":16,"unit":"px"}
1302,"fontType":"use-global","fontWeight":600,"hasCustomFontSettings":true}},"highlightColor":"#F45048","spaceAbove":{"value":20,"unit":"px"},"text":{"primaryColor":"#252525","fontSizeRegular":{"value":18,"unit":"px"},"fontSizeLarge":{"value":28,"unit":"px"},"fontSizeSmall":{"value":16,"unit":"px"},"secondaryColor":"#252525"},"spaceBelow":{"value":20,"unit":"px"},"attributeBar":{"style":"default","backgroundColor":"#D3D4DD","shadingColor":"#9A9DB1","markerColor":"#F45048"}},"showWhenEmpty":true,"reviews":{"list":{"layout":{"name":"minimal","showAttributeBars":false,"showProductVariantName":false,"columnAmount":2,"showProductDetails":"only-when-grouped"},"loyalty":{"maxInitialAchievements":3},"initialPageSize":5,"replyTruncation":{"bodyMaxLines":4,"enabled":true},"media":{"layout":"thumbnail","size":{"value":200,"unit":"px"},"imageGap":{"value":4,"unit":"px"}},"truncation":{"bodyMaxLines":4,"truncateAll":false,"enabled":true},"loadMorePageSize":5},"controls":{"filterMode":"closed","freeTextSearchEnabled":false,"writeReviewButtonEnabled":true,"defaultSort":"rating desc","sortOptionOrder":["rating desc","date desc","has_media desc","helpful desc","date asc","rating asc","unhelpful desc"]}}},"starRatings":{"showWhenEmpty":false,"style":{"spaceAbove":{"value":0,"unit":"px"},"text":{"content":"review-count","style":"number-and-text","brackets":false},"singleStar":false,"height":{"value":23,"unit":"px"},"spaceBelow":{"value":0,"unit":"px"}},"clickBehavior":"scroll-to-widget"}},"features":{"attributeFiltersEnabled":true,"recorderPlusEnabled":true,"recorderQandaPlusEnabled":true,"reviewsKeywordsEnabled":true,"reviewsSummariesEnabled":true}}</script>
1302
1303            <style id="oke-css-vars">:root{--oke-widget-spaceAbove:20px;--oke-widget-spaceBelow:20px;--oke-starRating-spaceAbove:0;--oke-starRating-spaceBelow:0;--oke-button-backgroundColor:#252525;--oke-button-backgroundColorHover:#252525;--oke-button-backgroundColorActive:#252525;--oke-button-textColor:#fff;--oke-button-textColorHover:#fff;--oke-button-textColorActive:#fff;--oke-button-borderColor:#252525;--oke-button-borderColorHover:#252525;--oke-button-borderColorActive:#252525;--oke-button-borderRadius:8px;--oke-button-borderWidth:0;--oke-button-fontWeight:600;--oke-button-fontSize:16px;--oke-button-fontFamily:inherit;--oke-border-color:#d7d7da;--oke-border-width:1px;--oke-text-primaryColor:#252525;--oke-text-secondaryColor:#252525;--oke-text-small:16px;--oke-text-regular:18px;--oke-text-large:28px;--oke-text-fontFamily:inter,sans-serif;--oke-avatar-size:undefined;--oke-avatar-backgroundColor:undefined;--oke-avatar-placeholderTextColor:undefined;--oke-highlightColor:#f45048;--oke-shadingColor:#f7f7f8;--oke-productImageSize:48px;--oke-attributeBar-shadingColor:#9a9db1;--oke-attributeBar-borderColor:undefined;--oke-attributeBar-backgroundColor:#d3d4dd;--oke-attributeBar-markerColor:#f45048;--oke-filter-backgroundColor:#fff;--oke-filter-backgroundColorActive:#252525;--oke-filter-borderColor:#d7d7da;--oke-filter-borderColorActive:#252525;--oke-filter-textColor:#252525;--oke-filter-textColorActive:#fff;--oke-filter-borderRadius:8px;--oke-filter-searchHighlightColor:#d7b0a0;--oke-mediaGrid-chevronColor:#676986;--oke-stars-foregroundColor:#f45048;--oke-stars-backgroundColor:#ececee;--oke-stars-borderWidth:1;--oke-stars-borderColor:#fff}.oke-w,.oke-modal{--oke-title-fontWeight:700;--oke-title-fontSize:24px;--oke-title-fontFamily:inherit;--oke-bodyText-fontWeight:400;--oke-bodyText-fontSize:16px;--oke-bodyText-fontFamily:inherit}</style>
1304            <style id="oke-reviews-custom-css">div.okeReviews[data-oke-container].oke-w{max-width:358px;margin:auto}div.okeReviews[data-oke-container] .oke-modal div.okeReviews.oke-w,div.okeReviews[data-oke-container] .oke-modal .oke-modal-content,div.okeReviews[data-oke-container] .oke-modal .oke-modal-content p{color:var(--oke-text-primaryColor)}div.okeReviews[data-oke-container] .oke-modal .oke-modal-content .oke-helpful,div.okeReviews[data-oke-container] .oke-modal .oke-modal-content .oke-helpful-vote-button,div.okeReviews[data-oke-container] .oke-modal .oke-modal-content .oke-reviewContent-date{color:var(--oke-text-secondaryColor)}div.okeReviews[data-oke-container] .oke-modal .oke-reviewContent-title{font-size:16px;font-weight:600}div.okeReviews .oke-w-selectAttr-item{font-size:14px}div.okeReviews .oke-w-reviews-controls{font-size:16px}div.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover{box-shadow:none}.okeReviews.oke-w .oke-button.oke-w-writeReview{height:100%;line-height:normal;vertical-align:middle}.okeReviews.oke-w .oke-is-small .oke-button,.okeReviews.oke-w .oke-is-small .oke-w-reviews-writeReview{width:100%}.okeReviews.oke-w .oke-is-small .oke-w-reviews-writeReview{margin-top:15px}div.okeReviews .oke-w-reviews-filterToggle .oke-icon{display:none}div.okeReviews .oke-w-reviews-filterToggle .oke-button-text{position:relative;padding-right:18px}div.okeReviews .oke-w-reviews-filterToggle .oke-button-text::after{content:"";position:absolute;right:-3px;top:55%;width:10px;height:10px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-70%) rotate(45deg);transform-origin:center;transition:transform .2s ease}div.okeReviews .oke-w-reviews-filterToggle[aria-expanded="true"] .oke-button-text::after{transform:translateY(-30%) rotate(225deg)}div.okeReviews .oke-w-filter .oke-w-filterOption-label{border-radius:100px;line-height:2.5}div.okeReviews[data-oke-container] .oke-w-filterOption-label-star:before,.okeReviews[data-oke-container] .oke-w-filterOption-label-star:empty:before,div.okeReviews .oke-w-filterOption-label-star:before,div.okeReviews .oke-w-filterOption-label-star:empty:before{color:#f45048 !important}div.okeReviews[data-oke-container] .oke-w-ratingAverageModule-rating-stars .oke-stars-background svg,div.okeReviews[data-oke-container] .oke-w-ratingAverageModule-rating-stars .oke-stars-foreground svg{height:25px}div[data-oke-carousel] .okeReviews[data-oke-container] .oke-testimonialCard{padding:12px 24px}div[data-oke-carousel] .okeReviews[data-oke-container] .oke-w-reviewer div{display:flex;flex-direction:column;font-size:20px}div[data-oke-carousel] .okeReviews[data-oke-container] .oke-w-reviewer .oke-w-reviewer-verified{margin:0;color:#f45048}div[data-oke-carousel] .oke-testimonialCard{border-radius:16px}div[data-oke-carousel] .okeReviews[data-oke-container] .oke-w-review-footer{display:none}div[data-oke-carousel] .okeReviews[data-oke-container] .oke-testimonialCard--above .oke-testimonialCard-head{padding-bottom:30px}div[data-oke-carousel] .okeReviews[data-oke-container] .oke-reviewContent-body p{font-size:16px}div[data-oke-star-rating] .oke-sr-count{color:#252525}@media all and (min-width:768px){div.okeReviews[data-oke-container].oke-w{max-width:712px;--oke-title-fontSize:28px;--oke-bodyText-fontSize:18px}div.okeReviews[data-oke-container] p{font-size:18px}div.okeReviews[data-oke-container] .oke-w-ratingAverageModule--oneLine{align-items:flex-start;-moz-column-gap:10px;column-gap:10px;flex-direction:column}}@media all and (min-width:1280px){div.okeReviews[data-oke-container].oke-w{max-width:1192px}}@media all and (min-width:1440px){div.okeReviews[data-oke-container].oke-w{max-width:1352px}}</style>
1305            <template id="oke-reviews-body-template"><svg id="oke-star-symbols" style="display:none!important" data-oke-id="oke-star-symbols"><symbol id="oke-star-empty" style="overflow:visible;"><path id="star-default--empty" fill="var(--oke-stars-backgroundColor)" stroke="var(--oke-stars-borderColor)" stroke-width="var(--oke-stars-borderWidth)" d="M3.34 13.86c-.48.3-.76.1-.63-.44l1.08-4.56L.26 5.82c-.42-.36-.32-.7.24-.74l4.63-.37L6.92.39c.2-.52.55-.52.76 0l1.8 4.32 4.62.37c.56.05.67.37.24.74l-3.53 3.04 1.08 4.56c.13.54-.14.74-.63.44L7.3 11.43l-3.96 2.43z"/></symbol><symbol id="oke-star-filled" style="overflow:visible;"><path id="star-default--filled" fill="var(--oke-stars-foregroundColor)" stroke="var(--oke-stars-borderColor)" stroke-width="var(--oke-stars-borderWidth)" d="M3.34 13.86c-.48.3-.76.1-.63-.44l1.08-4.56L.26 5.82c-.42-.36-.32-.7.24-.74l4.63-.37L6.92.39c.2-.52.55-.52.76 0l1.8 4.32 4.62.37c.56.05.67.37.24.74l-3.53 3.04 1.08 4.56c.13.54-.14.74-.63.44L7.3 11.43l-3.96 2.43z"/></symbol></svg></template>
1305<script>document.addEventListener('readystatechange',() =>{Array.from(document.getElementById('oke-reviews-body-template')?.content.children)?.forEach(function(child){if(!Array.from(document.body.querySelectorAll('[data-oke-id='.concat(child.getAttribute('data-oke-id'),']'))).length){document.body.prepend(child)}})},{once:true});</script>
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319<!-- END app snippet -->
1320
1321    <!-- BEGIN app snippet: okendo-reviews-json-ld -->
1322<!-- END app snippet -->
1323
1324<!-- BEGIN app snippet: widget-plus-initialisation-script -->
1325
1326
1327
1328
1329    
1329<script async id="okendo-reviews-script" src="https://cdn-static.okendo.io/reviews-widget-plus/js/okendo-reviews.js"></script>
1329
1330
1331<!-- END app snippet -->
1332
1333
1334<!-- END app block --><!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 -->
1335
1336
1337
1338<script type="module" dynamic>
1339  const configUrl = "/a/elevar/static/configs/8a155db7e33f38378045a1700f06df67a5eeed21/config.js";
1340  const config = (await import(configUrl)).default;
1341  const scriptUrl = config.script_src_app_theme_embed;
1342
1343  if (scriptUrl) {
1344    const { handler } = await import(scriptUrl);
1345
1346    await handler(
1347      config,
1348      {
1349        cartData: {
1350  marketId: "63223693631",
1351  localeCountryCode:"US",
1352  attributes:{},
1353  cartTotal: "0.0",
1354  currencyCode:"USD",
1355  items: []
1356}
1357,
1358        user: {
1359  cartTotal: "0.0",
1360  currencyCode:"USD",
1361  customer: {},
1362}
1363,
1364        isOnCartPage:false,
1365        collectionView:null,
1366        searchResultsView:null,
1367        productView:null,
1368      }
1369    );
1370  }
1371</script>
1371
1372
1373
1374<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
1375<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/drinktrade.myshopify.com"></script>
1375
1376
1377
1378<script defer data-gorgias-loader-convert  src="https://content.9gtb.com/loader.js"></script>
1378
1379
1380
1381<script defer data-gorgias-loader-mailto-replace  src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=drinktrade"></script>
1381
1382
1383
1384<!-- END app block --><!-- BEGIN app block: shopify://apps/helium-customer-fields/blocks/app-embed/bab58598-3e6a-4377-aaaa-97189b15f131 -->
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424<script>
1425  if ('CF' in window) {
1426    window.CF.appEmbedEnabled = true;
1427  } else {
1428    window.CF = {
1429      appEmbedEnabled: true,
1430    };
1431  }
1432
1433  window.CF.editAccountFormId = "dGtW0L";
1434  window.CF.registrationFormId = "";
1435</script>
1435
1436
1437<!-- BEGIN app snippet: patch-registration-links -->
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477<script>
1478  function patchRegistrationLinks() {
1479    const PATCHABLE_LINKS_SELECTOR = 'a[href*="/account/register"]';
1480
1481    const search = new URLSearchParams(window.location.search);
1482    const checkoutUrl = search.get('checkout_url');
1483    const returnUrl = search.get('return_url');
1484
1485    const redirectUrl = checkoutUrl || returnUrl;
1486    if (!redirectUrl) return;
1487
1488    const registrationLinks = Array.from(document.querySelectorAll(PATCHABLE_LINKS_SELECTOR));
1489    registrationLinks.forEach(link => {
1490      const url = new URL(link.href);
1491
1492      url.searchParams.set('return_url', redirectUrl);
1493
1494      link.href = url.href;
1495    });
1496  }
1497
1498  if (['complete', 'interactive', 'loaded'].includes(document.readyState)) {
1499    patchRegistrationLinks();
1500  } else {
1501    document.addEventListener('DOMContentLoaded', () => patchRegistrationLinks());
1502  }
1503</script>
1503<!-- END app snippet -->
1504<!-- BEGIN app snippet: patch-login-grecaptcha-conflict -->
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544<script>
1545  // Fixes a problem where both grecaptcha and hcaptcha response fields are included in the /account/login form submission
1546  // resulting in a 404 on the /challenge page.
1547  // This is caused by our triggerShopifyRecaptchaLoad function in initialize-forms.liquid.ejs
1548  // The fix itself just removes the unnecessary g-recaptcha-response input
1549
1550  function patchLoginGrecaptchaConflict() {
1551    Array.from(document.querySelectorAll('form')).forEach(form => {
1552      form.addEventListener('submit', e => {
1553        const grecaptchaResponse = form.querySelector('[name="g-recaptcha-response"]');
1554        const hcaptchaResponse = form.querySelector('[name="h-captcha-response"]');
1555
1556        if (grecaptchaResponse && hcaptchaResponse) {
1557          // Can't use both. Only keep hcaptcha response field.
1558          grecaptchaResponse.parentElement.removeChild(grecaptchaResponse);
1559        }
1560      })
1561    })
1562  }
1563
1564  if (['complete', 'interactive', 'loaded'].includes(document.readyState)) {
1565    patchLoginGrecaptchaConflict();
1566  } else {
1567    document.addEventListener('DOMContentLoaded', () => patchLoginGrecaptchaConflict());
1568  }
1569</script>
1569<!-- END app snippet -->
1570<!-- BEGIN app snippet: embed-data -->
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624<script>
1625  window.CF.version = "5.3.0";
1626  window.CF.environment = 
1627  {
1628  
1629  "domain": "drinktrade.myshopify.com",
1630  "baseApiUrl": "https:\/\/app.customerfields.com",
1631  "captchaSiteKey": "6LdiRtEnAAAAABo2kBzBbQ2n0xArOl868dL5jzPN",
1632  "captchaEnabled": true,
1633  "proxyPath": "\/tools\/customr",
1634  "countries": [{"name":"Afghanistan","code":"AF"},{"name":"Åland Islands","code":"AX"},{"name":"Albania","code":"AL"},{"name":"Algeria","code":"DZ"},{"name":"Andorra","code":"AD"},{"name":"Angola","code":"AO"},{"name":"Anguilla","code":"AI"},{"name":"Antigua \u0026 Barbuda","code":"AG"},{"name":"Argentina","code":"AR","provinces":[{"name":"Buenos Aires Province","code":"B"},{"name":"Catamarca","code":"K"},{"name":"Chaco","code":"H"},{"name":"Chubut","code":"U"},{"name":"Buenos Aires (Autonomous City)","code":"C"},{"name":"Córdoba","code":"X"},{"name":"Corrientes","code":"W"},{"name":"Entre Ríos","code":"E"},{"name":"Formosa","code":"P"},{"name":"Jujuy","code":"Y"},{"name":"La Pampa","code":"L"},{"name":"La Rioja","code":"F"},{"name":"Mendoza","code":"M"},{"name":"Misiones","code":"N"},{"name":"Neuquén","code":"Q"},{"name":"Río Negro","code":"R"},{"name":"Salta","code":"A"},{"name":"San Juan","code":"J"},{"name":"San Luis","code":"D"},{"name":"Santa Cruz","code":"Z"},{"name":"Santa Fe","code":"S"},{"name":"Santiago del Estero","code":"G"},{"name":"Tierra del Fuego","code":"V"},{"name":"Tucumán","code":"T"}]},{"name":"Armenia","code":"AM"},{"name":"Aruba","code":"AW"},{"name":"Ascension Island","code":"AC"},{"name":"Australia","code":"AU","provinces":[{"name":"Australian Capital Territory","code":"ACT"},{"name":"New South Wales","code":"NSW"},{"name":"Northern Territory","code":"NT"},{"name":"Queensland","code":"QLD"},{"name":"South Australia","code":"SA"},{"name":"Tasmania","code":"TAS"},{"name":"Victoria","code":"VIC"},{"name":"Western Australia","code":"WA"}]},{"name":"Austria","code":"AT"},{"name":"Azerbaijan","code":"AZ"},{"name":"Bahamas","code":"BS"},{"name":"Bahrain","code":"BH"},{"name":"Bangladesh","code":"BD"},{"name":"Barbados","code":"BB"},{"name":"Belarus","code":"BY"},{"name":"Belgium","code":"BE"},{"name":"Belize","code":"BZ"},{"name":"Benin","code":"BJ"},{"name":"Bermuda","code":"BM"},{"name":"Bhutan","code":"BT"},{"name":"Bolivia","code":"BO"},{"name":"Bosnia \u0026 Herzegovina","code":"BA"},{"name":"Botswana","code":"BW"},{"name":"Brazil","code":"BR","provinces":[{"name":"Acre","code":"AC"},{"name":"Alagoas","code":"AL"},{"name":"Amapá","code":"AP"},{"name":"Amazonas","code":"AM"},{"name":"Bahia","code":"BA"},{"name":"Ceará","code":"CE"},{"name":"Federal District","code":"DF"},{"name":"Espírito Santo","code":"ES"},{"name":"Goiás","code":"GO"},{"name":"Maranhão","code":"MA"},{"name":"Mato Grosso","code":"MT"},{"name":"Mato Grosso do Sul","code":"MS"},{"name":"Minas Gerais","code":"MG"},{"name":"Pará","code":"PA"},{"name":"Paraíba","code":"PB"},{"name":"Paraná","code":"PR"},{"name":"Pernambuco","code":"PE"},{"name":"Piauí","code":"PI"},{"name":"Rio Grande do Norte","code":"RN"},{"name":"Rio Grande do Sul","code":"RS"},{"name":"Rio de Janeiro","code":"RJ"},{"name":"Rondônia","code":"RO"},{"name":"Roraima","code":"RR"},{"name":"Santa Catarina","code":"SC"},{"name":"São Paulo","code":"SP"},{"name":"Sergipe","code":"SE"},{"name":"Tocantins","code":"TO"}]},{"name":"British Indian Ocean Territory","code":"IO"},{"name":"British Virgin Islands","code":"VG"},{"name":"Brunei","code":"BN"},{"name":"Bulgaria","code":"BG"},{"name":"Burkina Faso","code":"BF"},{"name":"Burundi","code":"BI"},{"name":"Cambodia","code":"KH"},{"name":"Cameroon","code":"CM"},{"name":"Canada","code":"CA","provinces":[{"name":"Alberta","code":"AB"},{"name":"British Columbia","code":"BC"},{"name":"Manitoba","code":"MB"},{"name":"New Brunswick","code":"NB"},{"name":"Newfoundland and Labrador","code":"NL"},{"name":"Northwest Territories","code":"NT"},{"name":"Nova Scotia","code":"NS"},{"name":"Nunavut","code":"NU"},{"name":"Ontario","code":"ON"},{"name":"Prince Edward Island","code":"PE"},{"name":"Quebec","code":"QC"},{"name":"Saskatchewan","code":"SK"},{"name":"Yukon","code":"YT"}]}
1634,{"name":"Cape Verde","code":"CV"},{"name":"Caribbean Netherlands","code":"BQ"},{"name":"Cayman Islands","code":"KY"},{"name":"Central African Republic","code":"CF"},{"name":"Chad","code":"TD"},{"name":"Chile","code":"CL","provinces":[{"name":"Arica y Parinacota","code":"AP"},{"name":"Tarapacá","code":"TA"},{"name":"Antofagasta","code":"AN"},{"name":"Atacama","code":"AT"},{"name":"Coquimbo","code":"CO"},{"name":"Valparaíso","code":"VS"},{"name":"Santiago Metropolitan","code":"RM"},{"name":"Libertador General Bernardo O’Higgins","code":"LI"},{"name":"Maule","code":"ML"},{"name":"Ñuble","code":"NB"},{"name":"Bío Bío","code":"BI"},{"name":"Araucanía","code":"AR"},{"name":"Los Ríos","code":"LR"},{"name":"Los Lagos","code":"LL"},{"name":"Aysén","code":"AI"},{"name":"Magallanes Region","code":"MA"}]},{"name":"China","code":"CN","provinces":[{"name":"Anhui","code":"AH"},{"name":"Beijing","code":"BJ"},{"name":"Chongqing","code":"CQ"},{"name":"Fujian","code":"FJ"},{"name":"Gansu","code":"GS"},{"name":"Guangdong","code":"GD"},{"name":"Guangxi","code":"GX"},{"name":"Guizhou","code":"GZ"},{"name":"Hainan","code":"HI"},{"name":"Hebei","code":"HE"},{"name":"Heilongjiang","code":"HL"},{"name":"Henan","code":"HA"},{"name":"Hubei","code":"HB"},{"name":"Hunan","code":"HN"},{"name":"Inner Mongolia","code":"NM"},{"name":"Jiangsu","code":"JS"},{"name":"Jiangxi","code":"JX"},{"name":"Jilin","code":"JL"},{"name":"Liaoning","code":"LN"},{"name":"Ningxia","code":"NX"},{"name":"Qinghai","code":"QH"},{"name":"Shaanxi","code":"SN"},{"name":"Shandong","code":"SD"},{"name":"Shanghai","code":"SH"},{"name":"Shanxi","code":"SX"},{"name":"Sichuan","code":"SC"},{"name":"Tianjin","code":"TJ"},{"name":"Xinjiang","code":"XJ"},{"name":"Tibet","code":"YZ"},{"name":"Yunnan","code":"YN"},{"name":"Zhejiang","code":"ZJ"}]},{"name":"Christmas Island","code":"CX"},{"name":"Cocos (Keeling) Islands","code":"CC"},{"name":"Colombia","code":"CO","provinces":[{"name":"Capital District","code":"DC"},{"name":"Amazonas","code":"AMA"},{"name":"Antioquia","code":"ANT"},{"name":"Arauca","code":"ARA"},{"name":"Atlántico","code":"ATL"},{"name":"Bolívar","code":"BOL"},{"name":"Boyacá","code":"BOY"},{"name":"Caldas","code":"CAL"},{"name":"Caquetá","code":"CAQ"},{"name":"Casanare","code":"CAS"},{"name":"Cauca","code":"CAU"},{"name":"Cesar","code":"CES"},{"name":"Chocó","code":"CHO"},{"name":"Córdoba","code":"COR"},{"name":"Cundinamarca","code":"CUN"},{"name":"Guainía","code":"GUA"},{"name":"Guaviare","code":"GUV"},{"name":"Huila","code":"HUI"},{"name":"La Guajira","code":"LAG"},{"name":"Magdalena","code":"MAG"},{"name":"Meta","code":"MET"},{"name":"Nariño","code":"NAR"},{"name":"Norte de Santander","code":"NSA"},{"name":"Putumayo","code":"PUT"},{"name":"Quindío","code":"QUI"},{"name":"Risaralda","code":"RIS"},{"name":"San Andrés \u0026 Providencia","code":"SAP"},{"name":"Santander","code":"SAN"},{"name":"Sucre","code":"SUC"},{"name":"Tolima","code":"TOL"},{"name":"Valle del Cauca","code":"VAC"},{"name":"Vaupés","code":"VAU"},{"name":"Vichada","code":"VID"}]},{"name":"Comoros","code":"KM"},{"name":"Congo - Brazzaville","code":"CG"},{"name":"Congo - Kinshasa","code":"CD"},{"name":"Cook Islands","code":"CK"},{"name":"Costa Rica","code":"CR","provinces":[{"name":"Alajuela","code":"CR-A"},{"name":"Cartago","code":"CR-C"},{"name":"Guanacaste","code":"CR-G"},{"name":"Heredia","code":"CR-H"},{"name":"Limón","code":"CR-L"},{"name":"Puntarenas","code":"CR-P"},{"name":"San José","code":"CR-SJ"}]},{"name":"Croatia","code":"HR"},{"name":"Curaçao","code":"CW"},{"name":"Cyprus","code":"CY"},{"name":"Czechia","code":"CZ"},{"name":"Côte d’Ivoire","code":"CI"},{"name":"Denmark","code":"DK"},{"name":"Djibouti","code":"DJ"},{"name":"Dominica","code":"DM"},{"name":"Dominican Republic","code":"DO"},{"name":"Ecuador","code":"EC"},{"name":"Egypt","code":"EG","provinces":[{"name":"6th of October","code":"SU"},{"name":"Al Sharqia","code":"SHR"},{"name":"Alexandria","code":"ALX"},{"name":"Aswan","code":"ASN"},{"name":"Asyut","code":"AST"},{"name":"Beheira","code":"BH"},{"name":"Beni Suef","code":"BNS"},{"name":"Cairo","code":"C"},{"name":"Dakahlia","code":"DK"},{"name":"Damietta","code":"DT"},{"name":"Faiyum","code":"FYM"},{"name":"Gharbia","code":"GH"},{"name":"Giza","code":"GZ"},{"name":"Helwan","code":"HU"},{"name":"Ismailia","code":"IS"},{"name":"Kafr el-Sheikh","code":"KFS"},{"name":"Luxor","code":"LX"},{"name":"Matrouh","code":"MT"},{"name":"Minya","code":"MN"},{"name":"Monufia","code":"MNF"},{"name":"New Valley","code":"WAD"},{"name":"North Sinai","code":"SIN"},{"name":"Port Said","code":"PTS"},{"name":"Qalyubia","code":"KB"},{"name":"Qena","code":"KN"},{"name":"Red Sea","code":"BA"},{"name":"Sohag","code":"SHG"},{"name":"South Sinai","code":"JS"},{"name":"Suez","code":"SUZ"}]},{"name":"El Salvador","code":"SV","provinces":[{"name":"Ahuachapán","code":"SV-AH"},{"name":"Cabañas","code":"SV-CA"},{"name":"Chalatenango","code":"SV-CH"},{"name":"Cuscatlán","code":"SV-CU"},{"name":"La Libertad","code":"SV-LI"},{"name":"La Paz","code":"SV-PA"},{"name":"La Unión","code":"SV-UN"},{"name":"Morazán","code":"SV-MO"},{"name":"San Miguel","code":"SV-SM"},{"name":"San Salvador","code":"SV-SS"},{"name":"San Vicente","code":"SV-SV"},{"name":"Santa Ana","code":"SV-SA"},{"name":"Sonsonate","code":"SV-SO"},{"name":"Usulután","code":"SV-US"}]},{"name":"Equatorial Guinea","code":"GQ"},{"name":"Eritrea","code":"ER"},{"name":"Estonia","code":"EE"},{"name":"Eswatini","code":"SZ"},{"name":"Ethiopia","code":"ET"},{"name":"Falkland Islands","code":"FK"},{"name":"Faroe Islands","code":"FO"},{"name":"Fiji","code":"FJ"},{"name":"Finland","code":"FI"},{"name":"France","code":"FR"},{"name":"French Guiana","code":"GF"},{"name":"French Polynesia","code":"PF"},{"name":"French Southern Territories","code":"TF"},{"name":"Gabon","code":"GA"},{"name":"Gambia","code":"GM"},{"name":"Georgia","code":"GE"},{"name":"Germany","code":"DE"},{"name":"Ghana","code":"GH"},{"name":"Gibraltar","code":"GI"},{"name":"Greece","code":"GR"},{"name":"Greenland","code":"GL"},{"name":"Grenada","code":"GD"},{"name":"Guadeloupe","code":"GP"},{"name":"Guatemala","code":"GT","provinces":[{"name":"Alta Verapaz","code":"AVE"},{"name":"Baja Verapaz","code":"BVE"},{"name":"Chimaltenango","code":"CMT"},{"name":"Chiquimula","code":"CQM"},{"name":"El Progreso","code":"EPR"},{"name":"Escuintla","code":"ESC"},{"name":"Guatemala","code":"GUA"},{"name":"Huehuetenango","code":"HUE"},{"name":"Izabal","code":"IZA"},{"name":"Jalapa","code":"JAL"},{"name":"Jutiapa","code":"JUT"},{"name":"Petén","code":"PET"},{"name":"Quetzaltenango","code":"QUE"},{"name":"Quiché","code":"QUI"},{"name":"Retalhuleu","code":"RET"},{"name":"Sacatepéquez","code":"SAC"},{"name":"San Marcos","code":"SMA"},{"name":"Santa Rosa","code":"SRO"},{"name":"Sololá","code":"SOL"},{"name":"Suchitepéquez","code":"SUC"},{"name":"Totonicapán","code":"TOT"},{"name":"Zacapa","code":"ZAC"}]},{"name":"Guernsey","code":"GG"},{"name":"Guinea","code":"GN"},{"name":"Guinea-Bissau","code":"GW"},{"name":"Guyana","code":"GY"},{"name":"Haiti","code":"HT"},{"name":"Honduras","code":"HN"},{"name":"Hong Kong SAR","code":"HK","provinces":[{"name":"Hong Kong Island","code":"HK"},{"name":"Kowloon","code":"KL"},{"name":"New Territories","code":"NT"}]}
1634,{"name":"Hungary","code":"HU"},{"name":"Iceland","code":"IS"},{"name":"India","code":"IN","provinces":[{"name":"Andaman and Nicobar Islands","code":"AN"},{"name":"Andhra Pradesh","code":"AP"},{"name":"Arunachal Pradesh","code":"AR"},{"name":"Assam","code":"AS"},{"name":"Bihar","code":"BR"},{"name":"Chandigarh","code":"CH"},{"name":"Chhattisgarh","code":"CG"},{"name":"Dadra and Nagar Haveli","code":"DN"},{"name":"Daman and Diu","code":"DD"},{"name":"Delhi","code":"DL"},{"name":"Goa","code":"GA"},{"name":"Gujarat","code":"GJ"},{"name":"Haryana","code":"HR"},{"name":"Himachal Pradesh","code":"HP"},{"name":"Jammu and Kashmir","code":"JK"},{"name":"Jharkhand","code":"JH"},{"name":"Karnataka","code":"KA"},{"name":"Kerala","code":"KL"},{"name":"Ladakh","code":"LA"},{"name":"Lakshadweep","code":"LD"},{"name":"Madhya Pradesh","code":"MP"},{"name":"Maharashtra","code":"MH"},{"name":"Manipur","code":"MN"},{"name":"Meghalaya","code":"ML"},{"name":"Mizoram","code":"MZ"},{"name":"Nagaland","code":"NL"},{"name":"Odisha","code":"OR"},{"name":"Puducherry","code":"PY"},{"name":"Punjab","code":"PB"},{"name":"Rajasthan","code":"RJ"},{"name":"Sikkim","code":"SK"},{"name":"Tamil Nadu","code":"TN"},{"name":"Telangana","code":"TS"},{"name":"Tripura","code":"TR"},{"name":"Uttar Pradesh","code":"UP"},{"name":"Uttarakhand","code":"UK"},{"name":"West Bengal","code":"WB"}]},{"name":"Indonesia","code":"ID","provinces":[{"name":"Aceh","code":"AC"},{"name":"Bali","code":"BA"},{"name":"Bangka–Belitung Islands","code":"BB"},{"name":"Banten","code":"BT"},{"name":"Bengkulu","code":"BE"},{"name":"Gorontalo","code":"GO"},{"name":"Jakarta","code":"JK"},{"name":"Jambi","code":"JA"},{"name":"West Java","code":"JB"},{"name":"Central Java","code":"JT"},{"name":"East Java","code":"JI"},{"name":"West Kalimantan","code":"KB"},{"name":"South Kalimantan","code":"KS"},{"name":"Central Kalimantan","code":"KT"},{"name":"East Kalimantan","code":"KI"},{"name":"North Kalimantan","code":"KU"},{"name":"Riau Islands","code":"KR"},{"name":"Lampung","code":"LA"},{"name":"Maluku","code":"MA"},{"name":"North Maluku","code":"MU"},{"name":"North Sumatra","code":"SU"},{"name":"West Nusa Tenggara","code":"NB"},{"name":"East Nusa Tenggara","code":"NT"},{"name":"Papua","code":"PA"},{"name":"West Papua","code":"PB"},{"name":"Riau","code":"RI"},{"name":"South Sumatra","code":"SS"},{"name":"West Sulawesi","code":"SR"},{"name":"South Sulawesi","code":"SN"},{"name":"Central Sulawesi","code":"ST"},{"name":"Southeast Sulawesi","code":"SG"},{"name":"North Sulawesi","code":"SA"},{"name":"West Sumatra","code":"SB"},{"name":"Yogyakarta","code":"YO"}]},{"name":"Iraq","code":"IQ"},{"name":"Ireland","code":"IE","provinces":[{"name":"Carlow","code":"CW"},{"name":"Cavan","code":"CN"},{"name":"Clare","code":"CE"},{"name":"Cork","code":"CO"},{"name":"Donegal","code":"DL"},{"name":"Dublin","code":"D"},{"name":"Galway","code":"G"},{"name":"Kerry","code":"KY"},{"name":"Kildare","code":"KE"},{"name":"Kilkenny","code":"KK"},{"name":"Laois","code":"LS"},{"name":"Leitrim","code":"LM"},{"name":"Limerick","code":"LK"},{"name":"Longford","code":"LD"},{"name":"Louth","code":"LH"},{"name":"Mayo","code":"MO"},{"name":"Meath","code":"MH"},{"name":"Monaghan","code":"MN"},{"name":"Offaly","code":"OY"},{"name":"Roscommon","code":"RN"},{"name":"Sligo","code":"SO"},{"name":"Tipperary","code":"TA"},{"name":"Waterford","code":"WD"},{"name":"Westmeath","code":"WH"},{"name":"Wexford","code":"WX"},{"name":"Wicklow","code":"WW"}]},{"name":"Isle of Man","code":"IM"},{"name":"Israel","code":"IL"},{"name":"Italy","code":"IT","provinces":[{"name":"Agrigento","code":"AG"},{"name":"Alessandria","code":"AL"},{"name":"Ancona","code":"AN"},{"name":"Aosta Valley","code":"AO"},{"name":"Arezzo","code":"AR"},{"name":"Ascoli Piceno","code":"AP"},{"name":"Asti","code":"AT"},{"name":"Avellino","code":"AV"},{"name":"Bari","code":"BA"},{"name":"Barletta-Andria-Trani","code":"BT"},{"name":"Belluno","code":"BL"},{"name":"Benevento","code":"BN"},{"name":"Bergamo","code":"BG"},{"name":"Biella","code":"BI"},{"name":"Bologna","code":"BO"},{"name":"South Tyrol","code":"BZ"},{"name":"Brescia","code":"BS"},{"name":"Brindisi","code":"BR"},{"name":"Cagliari","code":"CA"},{"name":"Caltanissetta","code":"CL"},{"name":"Campobasso","code":"CB"},{"name":"Carbonia-Iglesias","code":"CI"},{"name":"Caserta","code":"CE"},{"name":"Catania","code":"CT"},{"name":"Catanzaro","code":"CZ"},{"name":"Chieti","code":"CH"},{"name":"Como","code":"CO"},{"name":"Cosenza","code":"CS"},{"name":"Cremona","code":"CR"},{"name":"Crotone","code":"KR"},{"name":"Cuneo","code":"CN"},{"name":"Enna","code":"EN"},{"name":"Fermo","code":"FM"},{"name":"Ferrara","code":"FE"},{"name":"Florence","code":"FI"},{"name":"Foggia","code":"FG"},{"name":"Forlì-Cesena","code":"FC"},{"name":"Frosinone","code":"FR"},{"name":"Genoa","code":"GE"},{"name":"Gorizia","code":"GO"},{"name":"Grosseto","code":"GR"},{"name":"Imperia","code":"IM"},{"name":"Isernia","code":"IS"},{"name":"L’Aquila","code":"AQ"},{"name":"La Spezia","code":"SP"},{"name":"Latina","code":"LT"},{"name":"Lecce","code":"LE"},{"name":"Lecco","code":"LC"},{"name":"Livorno","code":"LI"},{"name":"Lodi","code":"LO"},{"name":"Lucca","code":"LU"},{"name":"Macerata","code":"MC"},{"name":"Mantua","code":"MN"},{"name":"Massa and Carrara","code":"MS"},{"name":"Matera","code":"MT"},{"name":"Medio Campidano","code":"VS"},{"name":"Messina","code":"ME"},{"name":"Milan","code":"MI"},{"name":"Modena","code":"MO"},{"name":"Monza and Brianza","code":"MB"},{"name":"Naples","code":"NA"},{"name":"Novara","code":"NO"},{"name":"Nuoro","code":"NU"},{"name":"Ogliastra","code":"OG"},{"name":"Olbia-Tempio","code":"OT"},{"name":"Oristano","code":"OR"},{"name":"Padua","code":"PD"},{"name":"Palermo","code":"PA"},{"name":"Parma","code":"PR"},{"name":"Pavia","code":"PV"},{"name":"Perugia","code":"PG"},{"name":"Pesaro and Urbino","code":"PU"},{"name":"Pescara","code":"PE"},{"name":"Piacenza","code":"PC"},{"name":"Pisa","code":"PI"},{"name":"Pistoia","code":"PT"},{"name":"Pordenone","code":"PN"},{"name":"Potenza","code":"PZ"},{"name":"Prato","code":"PO"},{"name":"Ragusa","code":"RG"},{"name":"Ravenna","code":"RA"},{"name":"Reggio Calabria","code":"RC"},{"name":"Reggio Emilia","code":"RE"},{"name":"Rieti","code":"RI"},{"name":"Rimini","code":"RN"},{"name":"Rome","code":"RM"},{"name":"Rovigo","code":"RO"},{"name":"Salerno","code":"SA"},{"name":"Sassari","code":"SS"},{"name":"Savona","code":"SV"},{"name":"Siena","code":"SI"},{"name":"Syracuse","code":"SR"},{"name":"Sondrio","code":"SO"},{"name":"Taranto","code":"TA"},{"name":"Teramo","code":"TE"},{"name":"Terni","code":"TR"},{"name":"Turin","code":"TO"},{"name":"Trapani","code":"TP"},{"name":"Trentino","code":"TN"},{"name":"Treviso","code":"TV"},{"name":"Trieste","code":"TS"},{"name":"Udine","code":"UD"},{"name":"Varese","code":"VA"},{"name":"Venice","code":"VE"},{"name":"Verbano-Cusio-Ossola","code":"VB"},{"name":"Vercelli","code":"VC"},{"name":"Verona","code":"VR"},{"name":"Vibo Valentia","code":"VV"},{"name":"Vicenza","code":"VI"},{"name":"Viterbo","code":"VT"}]}
1634,{"name":"Jamaica","code":"JM"},{"name":"Japan","code":"JP","provinces":[{"name":"Hokkaido","code":"JP-01"},{"name":"Aomori","code":"JP-02"},{"name":"Iwate","code":"JP-03"},{"name":"Miyagi","code":"JP-04"},{"name":"Akita","code":"JP-05"},{"name":"Yamagata","code":"JP-06"},{"name":"Fukushima","code":"JP-07"},{"name":"Ibaraki","code":"JP-08"},{"name":"Tochigi","code":"JP-09"},{"name":"Gunma","code":"JP-10"},{"name":"Saitama","code":"JP-11"},{"name":"Chiba","code":"JP-12"},{"name":"Tokyo","code":"JP-13"},{"name":"Kanagawa","code":"JP-14"},{"name":"Niigata","code":"JP-15"},{"name":"Toyama","code":"JP-16"},{"name":"Ishikawa","code":"JP-17"},{"name":"Fukui","code":"JP-18"},{"name":"Yamanashi","code":"JP-19"},{"name":"Nagano","code":"JP-20"},{"name":"Gifu","code":"JP-21"},{"name":"Shizuoka","code":"JP-22"},{"name":"Aichi","code":"JP-23"},{"name":"Mie","code":"JP-24"},{"name":"Shiga","code":"JP-25"},{"name":"Kyoto","code":"JP-26"},{"name":"Osaka","code":"JP-27"},{"name":"Hyogo","code":"JP-28"},{"name":"Nara","code":"JP-29"},{"name":"Wakayama","code":"JP-30"},{"name":"Tottori","code":"JP-31"},{"name":"Shimane","code":"JP-32"},{"name":"Okayama","code":"JP-33"},{"name":"Hiroshima","code":"JP-34"},{"name":"Yamaguchi","code":"JP-35"},{"name":"Tokushima","code":"JP-36"},{"name":"Kagawa","code":"JP-37"},{"name":"Ehime","code":"JP-38"},{"name":"Kochi","code":"JP-39"},{"name":"Fukuoka","code":"JP-40"},{"name":"Saga","code":"JP-41"},{"name":"Nagasaki","code":"JP-42"},{"name":"Kumamoto","code":"JP-43"},{"name":"Oita","code":"JP-44"},{"name":"Miyazaki","code":"JP-45"},{"name":"Kagoshima","code":"JP-46"},{"name":"Okinawa","code":"JP-47"}]},{"name":"Jersey","code":"JE"},{"name":"Jordan","code":"JO"},{"name":"Kazakhstan","code":"KZ"},{"name":"Kenya","code":"KE"},{"name":"Kiribati","code":"KI"},{"name":"Kosovo","code":"XK"},{"name":"Kuwait","code":"KW","provinces":[{"name":"Al Ahmadi","code":"KW-AH"},{"name":"Al Asimah","code":"KW-KU"},{"name":"Al Farwaniyah","code":"KW-FA"},{"name":"Al Jahra","code":"KW-JA"},{"name":"Hawalli","code":"KW-HA"},{"name":"Mubarak Al-Kabeer","code":"KW-MU"}]},{"name":"Kyrgyzstan","code":"KG"},{"name":"Laos","code":"LA"},{"name":"Latvia","code":"LV"},{"name":"Lebanon","code":"LB"},{"name":"Lesotho","code":"LS"},{"name":"Liberia","code":"LR"},{"name":"Libya","code":"LY"},{"name":"Liechtenstein","code":"LI"},{"name":"Lithuania","code":"LT"},{"name":"Luxembourg","code":"LU"},{"name":"Macao SAR","code":"MO"},{"name":"Madagascar","code":"MG"},{"name":"Malawi","code":"MW"},{"name":"Malaysia","code":"MY","provinces":[{"name":"Johor","code":"JHR"},{"name":"Kedah","code":"KDH"},{"name":"Kelantan","code":"KTN"},{"name":"Kuala Lumpur","code":"KUL"},{"name":"Labuan","code":"LBN"},{"name":"Malacca","code":"MLK"},{"name":"Negeri Sembilan","code":"NSN"},{"name":"Pahang","code":"PHG"},{"name":"Penang","code":"PNG"},{"name":"Perak","code":"PRK"},{"name":"Perlis","code":"PLS"},{"name":"Putrajaya","code":"PJY"},{"name":"Sabah","code":"SBH"},{"name":"Sarawak","code":"SWK"},{"name":"Selangor","code":"SGR"},{"name":"Terengganu","code":"TRG"}]},{"name":"Maldives","code":"MV"},{"name":"Mali","code":"ML"},{"name":"Malta","code":"MT"},{"name":"Martinique","code":"MQ"},{"name":"Mauritania","code":"MR"},{"name":"Mauritius","code":"MU"},{"name":"Mayotte","code":"YT"},{"name":"Mexico","code":"MX","provinces":[{"name":"Aguascalientes","code":"AGS"},{"name":"Baja California","code":"BC"},{"name":"Baja California Sur","code":"BCS"},{"name":"Campeche","code":"CAMP"},{"name":"Chiapas","code":"CHIS"},{"name":"Chihuahua","code":"CHIH"},{"name":"Ciudad de Mexico","code":"DF"},{"name":"Coahuila","code":"COAH"},{"name":"Colima","code":"COL"},{"name":"Durango","code":"DGO"},{"name":"Guanajuato","code":"GTO"},{"name":"Guerrero","code":"GRO"},{"name":"Hidalgo","code":"HGO"},{"name":"Jalisco","code":"JAL"},{"name":"Mexico State","code":"MEX"},{"name":"Michoacán","code":"MICH"},{"name":"Morelos","code":"MOR"},{"name":"Nayarit","code":"NAY"},{"name":"Nuevo León","code":"NL"},{"name":"Oaxaca","code":"OAX"},{"name":"Puebla","code":"PUE"},{"name":"Querétaro","code":"QRO"},{"name":"Quintana Roo","code":"Q ROO"},{"name":"San Luis Potosí","code":"SLP"},{"name":"Sinaloa","code":"SIN"},{"name":"Sonora","code":"SON"},{"name":"Tabasco","code":"TAB"},{"name":"Tamaulipas","code":"TAMPS"},{"name":"Tlaxcala","code":"TLAX"},{"name":"Veracruz","code":"VER"},{"name":"Yucatán","code":"YUC"},{"name":"Zacatecas","code":"ZAC"}]},{"name":"Moldova","code":"MD"},{"name":"Monaco","code":"MC"},{"name":"Mongolia","code":"MN"},{"name":"Montenegro","code":"ME"},{"name":"Montserrat","code":"MS"},{"name":"Morocco","code":"MA"},{"name":"Mozambique","code":"MZ"},{"name":"Myanmar (Burma)","code":"MM"},{"name":"Namibia","code":"NA"},{"name":"Nauru","code":"NR"},{"name":"Nepal","code":"NP"},{"name":"Netherlands","code":"NL"},{"name":"New Caledonia","code":"NC"},{"name":"New Zealand","code":"NZ","provinces":[{"name":"Auckland","code":"AUK"},{"name":"Bay of Plenty","code":"BOP"},{"name":"Canterbury","code":"CAN"},{"name":"Chatham Islands","code":"CIT"},{"name":"Gisborne","code":"GIS"},{"name":"Hawke’s Bay","code":"HKB"},{"name":"Manawatū-Whanganui","code":"MWT"},{"name":"Marlborough","code":"MBH"},{"name":"Nelson","code":"NSN"},{"name":"Northland","code":"NTL"},{"name":"Otago","code":"OTA"},{"name":"Southland","code":"STL"},{"name":"Taranaki","code":"TKI"},{"name":"Tasman","code":"TAS"},{"name":"Waikato","code":"WKO"},{"name":"Wellington","code":"WGN"},{"name":"West Coast","code":"WTC"}]},{"name":"Nicaragua","code":"NI"},{"name":"Niger","code":"NE"},{"name":"Nigeria","code":"NG","provinces":[{"name":"Abia","code":"AB"},{"name":"Federal Capital Territory","code":"FC"},{"name":"Adamawa","code":"AD"},{"name":"Akwa Ibom","code":"AK"},{"name":"Anambra","code":"AN"},{"name":"Bauchi","code":"BA"},{"name":"Bayelsa","code":"BY"},{"name":"Benue","code":"BE"},{"name":"Borno","code":"BO"},{"name":"Cross River","code":"CR"},{"name":"Delta","code":"DE"},{"name":"Ebonyi","code":"EB"},{"name":"Edo","code":"ED"},{"name":"Ekiti","code":"EK"},{"name":"Enugu","code":"EN"},{"name":"Gombe","code":"GO"},{"name":"Imo","code":"IM"},{"name":"Jigawa","code":"JI"},{"name":"Kaduna","code":"KD"},{"name":"Kano","code":"KN"},{"name":"Katsina","code":"KT"},{"name":"Kebbi","code":"KE"},{"name":"Kogi","code":"KO"},{"name":"Kwara","code":"KW"},{"name":"Lagos","code":"LA"},{"name":"Nasarawa","code":"NA"},{"name":"Niger","code":"NI"},{"name":"Ogun","code":"OG"},{"name":"Ondo","code":"ON"},{"name":"Osun","code":"OS"},{"name":"Oyo","code":"OY"},{"name":"Plateau","code":"PL"},{"name":"Rivers","code":"RI"},{"name":"Sokoto","code":"SO"},{"name":"Taraba","code":"TA"},{"name":"Yobe","code":"YO"},{"name":"Zamfara","code":"ZA"}]}
1634,{"name":"Niue","code":"NU"},{"name":"Norfolk Island","code":"NF"},{"name":"North Macedonia","code":"MK"},{"name":"Norway","code":"NO"},{"name":"Oman","code":"OM"},{"name":"Pakistan","code":"PK"},{"name":"Palestinian Territories","code":"PS"},{"name":"Panama","code":"PA","provinces":[{"name":"Bocas del Toro","code":"PA-1"},{"name":"Chiriquí","code":"PA-4"},{"name":"Coclé","code":"PA-2"},{"name":"Colón","code":"PA-3"},{"name":"Darién","code":"PA-5"},{"name":"Emberá","code":"PA-EM"},{"name":"Herrera","code":"PA-6"},{"name":"Guna Yala","code":"PA-KY"},{"name":"Los Santos","code":"PA-7"},{"name":"Ngöbe-Buglé","code":"PA-NB"},{"name":"Panamá","code":"PA-8"},{"name":"West Panamá","code":"PA-10"},{"name":"Veraguas","code":"PA-9"}]},{"name":"Papua New Guinea","code":"PG"},{"name":"Paraguay","code":"PY"},{"name":"Peru","code":"PE","provinces":[{"name":"Amazonas","code":"PE-AMA"},{"name":"Ancash","code":"PE-ANC"},{"name":"Apurímac","code":"PE-APU"},{"name":"Arequipa","code":"PE-ARE"},{"name":"Ayacucho","code":"PE-AYA"},{"name":"Cajamarca","code":"PE-CAJ"},{"name":"El Callao","code":"PE-CAL"},{"name":"Cusco","code":"PE-CUS"},{"name":"Huancavelica","code":"PE-HUV"},{"name":"Huánuco","code":"PE-HUC"},{"name":"Ica","code":"PE-ICA"},{"name":"Junín","code":"PE-JUN"},{"name":"La Libertad","code":"PE-LAL"},{"name":"Lambayeque","code":"PE-LAM"},{"name":"Lima (Department)","code":"PE-LIM"},{"name":"Lima (Metropolitan)","code":"PE-LMA"},{"name":"Loreto","code":"PE-LOR"},{"name":"Madre de Dios","code":"PE-MDD"},{"name":"Moquegua","code":"PE-MOQ"},{"name":"Pasco","code":"PE-PAS"},{"name":"Piura","code":"PE-PIU"},{"name":"Puno","code":"PE-PUN"},{"name":"San Martín","code":"PE-SAM"},{"name":"Tacna","code":"PE-TAC"},{"name":"Tumbes","code":"PE-TUM"},{"name":"Ucayali","code":"PE-UCA"}]},{"name":"Philippines","code":"PH","provinces":[{"name":"Abra","code":"PH-ABR"},{"name":"Agusan del Norte","code":"PH-AGN"},{"name":"Agusan del Sur","code":"PH-AGS"},{"name":"Aklan","code":"PH-AKL"},{"name":"Albay","code":"PH-ALB"},{"name":"Antique","code":"PH-ANT"},{"name":"Apayao","code":"PH-APA"},{"name":"Aurora","code":"PH-AUR"},{"name":"Basilan","code":"PH-BAS"},{"name":"Bataan","code":"PH-BAN"},{"name":"Batanes","code":"PH-BTN"},{"name":"Batangas","code":"PH-BTG"},{"name":"Benguet","code":"PH-BEN"},{"name":"Biliran","code":"PH-BIL"},{"name":"Bohol","code":"PH-BOH"},{"name":"Bukidnon","code":"PH-BUK"},{"name":"Bulacan","code":"PH-BUL"},{"name":"Cagayan","code":"PH-CAG"},{"name":"Camarines Norte","code":"PH-CAN"},{"name":"Camarines Sur","code":"PH-CAS"},{"name":"Camiguin","code":"PH-CAM"},{"name":"Capiz","code":"PH-CAP"},{"name":"Catanduanes","code":"PH-CAT"},{"name":"Cavite","code":"PH-CAV"},{"name":"Cebu","code":"PH-CEB"},{"name":"Cotabato","code":"PH-NCO"},{"name":"Davao Occidental","code":"PH-DVO"},{"name":"Davao Oriental","code":"PH-DAO"},{"name":"Compostela Valley","code":"PH-COM"},{"name":"Davao del Norte","code":"PH-DAV"},{"name":"Davao del Sur","code":"PH-DAS"},{"name":"Dinagat Islands","code":"PH-DIN"},{"name":"Eastern Samar","code":"PH-EAS"},{"name":"Guimaras","code":"PH-GUI"},{"name":"Ifugao","code":"PH-IFU"},{"name":"Ilocos Norte","code":"PH-ILN"},{"name":"Ilocos Sur","code":"PH-ILS"},{"name":"Iloilo","code":"PH-ILI"},{"name":"Isabela","code":"PH-ISA"},{"name":"Kalinga","code":"PH-KAL"},{"name":"La Union","code":"PH-LUN"},{"name":"Laguna","code":"PH-LAG"},{"name":"Lanao del Norte","code":"PH-LAN"},{"name":"Lanao del Sur","code":"PH-LAS"},{"name":"Leyte","code":"PH-LEY"},{"name":"Maguindanao","code":"PH-MAG"},{"name":"Marinduque","code":"PH-MAD"},{"name":"Masbate","code":"PH-MAS"},{"name":"Metro Manila","code":"PH-00"},{"name":"Misamis Occidental","code":"PH-MSC"},{"name":"Misamis Oriental","code":"PH-MSR"},{"name":"Mountain","code":"PH-MOU"},{"name":"Negros Occidental","code":"PH-NEC"},{"name":"Negros Oriental","code":"PH-NER"},{"name":"Northern Samar","code":"PH-NSA"},{"name":"Nueva Ecija","code":"PH-NUE"},{"name":"Nueva Vizcaya","code":"PH-NUV"},{"name":"Occidental Mindoro","code":"PH-MDC"},{"name":"Oriental Mindoro","code":"PH-MDR"},{"name":"Palawan","code":"PH-PLW"},{"name":"Pampanga","code":"PH-PAM"},{"name":"Pangasinan","code":"PH-PAN"},{"name":"Quezon","code":"PH-QUE"},{"name":"Quirino","code":"PH-QUI"},{"name":"Rizal","code":"PH-RIZ"},{"name":"Romblon","code":"PH-ROM"},{"name":"Samar","code":"PH-WSA"},{"name":"Sarangani","code":"PH-SAR"},{"name":"Siquijor","code":"PH-SIG"},{"name":"Sorsogon","code":"PH-SOR"},{"name":"South Cotabato","code":"PH-SCO"},{"name":"Southern Leyte","code":"PH-SLE"},{"name":"Sultan Kudarat","code":"PH-SUK"},{"name":"Sulu","code":"PH-SLU"},{"name":"Surigao del Norte","code":"PH-SUN"},{"name":"Surigao del Sur","code":"PH-SUR"},{"name":"Tarlac","code":"PH-TAR"},{"name":"Tawi-Tawi","code":"PH-TAW"},{"name":"Zambales","code":"PH-ZMB"},{"name":"Zamboanga Sibugay","code":"PH-ZSI"},{"name":"Zamboanga del Norte","code":"PH-ZAN"},{"name":"Zamboanga del Sur","code":"PH-ZAS"}]},{"name":"Pitcairn Islands","code":"PN"},{"name":"Poland","code":"PL"},{"name":"Portugal","code":"PT","provinces":[{"name":"Azores","code":"PT-20"},{"name":"Aveiro","code":"PT-01"},{"name":"Beja","code":"PT-02"},{"name":"Braga","code":"PT-03"},{"name":"Bragança","code":"PT-04"},{"name":"Castelo Branco","code":"PT-05"},{"name":"Coimbra","code":"PT-06"},{"name":"Évora","code":"PT-07"},{"name":"Faro","code":"PT-08"},{"name":"Guarda","code":"PT-09"},{"name":"Leiria","code":"PT-10"},{"name":"Lisbon","code":"PT-11"},{"name":"Madeira","code":"PT-30"},{"name":"Portalegre","code":"PT-12"},{"name":"Porto","code":"PT-13"},{"name":"Santarém","code":"PT-14"},{"name":"Setúbal","code":"PT-15"},{"name":"Viana do Castelo","code":"PT-16"},{"name":"Vila Real","code":"PT-17"},{"name":"Viseu","code":"PT-18"}]}
1634,{"name":"Qatar","code":"QA"},{"name":"Réunion","code":"RE"},{"name":"Romania","code":"RO","provinces":[{"name":"Alba","code":"AB"},{"name":"Arad","code":"AR"},{"name":"Argeș","code":"AG"},{"name":"Bacău","code":"BC"},{"name":"Bihor","code":"BH"},{"name":"Bistriţa-Năsăud","code":"BN"},{"name":"Botoşani","code":"BT"},{"name":"Brăila","code":"BR"},{"name":"Braşov","code":"BV"},{"name":"Bucharest","code":"B"},{"name":"Buzău","code":"BZ"},{"name":"Caraș-Severin","code":"CS"},{"name":"Cluj","code":"CJ"},{"name":"Constanța","code":"CT"},{"name":"Covasna","code":"CV"},{"name":"Călărași","code":"CL"},{"name":"Dolj","code":"DJ"},{"name":"Dâmbovița","code":"DB"},{"name":"Galați","code":"GL"},{"name":"Giurgiu","code":"GR"},{"name":"Gorj","code":"GJ"},{"name":"Harghita","code":"HR"},{"name":"Hunedoara","code":"HD"},{"name":"Ialomița","code":"IL"},{"name":"Iași","code":"IS"},{"name":"Ilfov","code":"IF"},{"name":"Maramureş","code":"MM"},{"name":"Mehedinți","code":"MH"},{"name":"Mureş","code":"MS"},{"name":"Neamţ","code":"NT"},{"name":"Olt","code":"OT"},{"name":"Prahova","code":"PH"},{"name":"Sălaj","code":"SJ"},{"name":"Satu Mare","code":"SM"},{"name":"Sibiu","code":"SB"},{"name":"Suceava","code":"SV"},{"name":"Teleorman","code":"TR"},{"name":"Timiș","code":"TM"},{"name":"Tulcea","code":"TL"},{"name":"Vâlcea","code":"VL"},{"name":"Vaslui","code":"VS"},{"name":"Vrancea","code":"VN"}]},{"name":"Russia","code":"RU","provinces":[{"name":"Altai Krai","code":"ALT"},{"name":"Altai","code":"AL"},{"name":"Amur","code":"AMU"},{"name":"Arkhangelsk","code":"ARK"},{"name":"Astrakhan","code":"AST"},{"name":"Belgorod","code":"BEL"},{"name":"Bryansk","code":"BRY"},{"name":"Chechen","code":"CE"},{"name":"Chelyabinsk","code":"CHE"},{"name":"Chukotka Okrug","code":"CHU"},{"name":"Chuvash","code":"CU"},{"name":"Irkutsk","code":"IRK"},{"name":"Ivanovo","code":"IVA"},{"name":"Jewish","code":"YEV"},{"name":"Kabardino-Balkar","code":"KB"},{"name":"Kaliningrad","code":"KGD"},{"name":"Kaluga","code":"KLU"},{"name":"Kamchatka Krai","code":"KAM"},{"name":"Karachay-Cherkess","code":"KC"},{"name":"Kemerovo","code":"KEM"},{"name":"Khabarovsk Krai","code":"KHA"},{"name":"Khanty-Mansi","code":"KHM"},{"name":"Kirov","code":"KIR"},{"name":"Komi","code":"KO"},{"name":"Kostroma","code":"KOS"},{"name":"Krasnodar Krai","code":"KDA"},{"name":"Krasnoyarsk Krai","code":"KYA"},{"name":"Kurgan","code":"KGN"},{"name":"Kursk","code":"KRS"},{"name":"Leningrad","code":"LEN"},{"name":"Lipetsk","code":"LIP"},{"name":"Magadan","code":"MAG"},{"name":"Mari El","code":"ME"},{"name":"Moscow","code":"MOW"},{"name":"Moscow Province","code":"MOS"},{"name":"Murmansk","code":"MUR"},{"name":"Nizhny Novgorod","code":"NIZ"},{"name":"Novgorod","code":"NGR"},{"name":"Novosibirsk","code":"NVS"},{"name":"Omsk","code":"OMS"},{"name":"Orenburg","code":"ORE"},{"name":"Oryol","code":"ORL"},{"name":"Penza","code":"PNZ"},{"name":"Perm Krai","code":"PER"},{"name":"Primorsky Krai","code":"PRI"},{"name":"Pskov","code":"PSK"},{"name":"Adygea","code":"AD"},{"name":"Bashkortostan","code":"BA"},{"name":"Buryat","code":"BU"},{"name":"Dagestan","code":"DA"},{"name":"Ingushetia","code":"IN"},{"name":"Kalmykia","code":"KL"},{"name":"Karelia","code":"KR"},{"name":"Khakassia","code":"KK"},{"name":"Mordovia","code":"MO"},{"name":"North Ossetia-Alania","code":"SE"},{"name":"Tatarstan","code":"TA"},{"name":"Rostov","code":"ROS"},{"name":"Ryazan","code":"RYA"},{"name":"Saint Petersburg","code":"SPE"},{"name":"Sakha","code":"SA"},{"name":"Sakhalin","code":"SAK"},{"name":"Samara","code":"SAM"},{"name":"Saratov","code":"SAR"},{"name":"Smolensk","code":"SMO"},{"name":"Stavropol Krai","code":"STA"},{"name":"Sverdlovsk","code":"SVE"},{"name":"Tambov","code":"TAM"},{"name":"Tomsk","code":"TOM"},{"name":"Tula","code":"TUL"},{"name":"Tver","code":"TVE"},{"name":"Tyumen","code":"TYU"},{"name":"Tuva","code":"TY"},{"name":"Udmurt","code":"UD"},{"name":"Ulyanovsk","code":"ULY"},{"name":"Vladimir","code":"VLA"},{"name":"Volgograd","code":"VGG"},{"name":"Vologda","code":"VLG"},{"name":"Voronezh","code":"VOR"},{"name":"Yamalo-Nenets Okrug","code":"YAN"},{"name":"Yaroslavl","code":"YAR"},{"name":"Zabaykalsky Krai","code":"ZAB"}]},{"name":"Rwanda","code":"RW"},{"name":"Samoa","code":"WS"},{"name":"San Marino","code":"SM"},{"name":"São Tomé \u0026 Príncipe","code":"ST"},{"name":"Saudi Arabia","code":"SA"},{"name":"Senegal","code":"SN"},{"name":"Serbia","code":"RS"},{"name":"Seychelles","code":"SC"},{"name":"Sierra Leone","code":"SL"},{"name":"Singapore","code":"SG"},{"name":"Sint Maarten","code":"SX"},{"name":"Slovakia","code":"SK"},{"name":"Slovenia","code":"SI"},{"name":"Solomon Islands","code":"SB"},{"name":"Somalia","code":"SO"},{"name":"South Africa","code":"ZA","provinces":[{"name":"Eastern Cape","code":"EC"},{"name":"Free State","code":"FS"},{"name":"Gauteng","code":"GP"},{"name":"KwaZulu-Natal","code":"NL"},{"name":"Limpopo","code":"LP"},{"name":"Mpumalanga","code":"MP"},{"name":"North West","code":"NW"},{"name":"Northern Cape","code":"NC"},{"name":"Western Cape","code":"WC"}]},{"name":"South Georgia \u0026 South Sandwich Islands","code":"GS"},{"name":"South Korea","code":"KR","provinces":[{"name":"Busan","code":"KR-26"},{"name":"North Chungcheong","code":"KR-43"},{"name":"South Chungcheong","code":"KR-44"},{"name":"Daegu","code":"KR-27"},{"name":"Daejeon","code":"KR-30"},{"name":"Gangwon","code":"KR-42"}
1634,{"name":"Gwangju City","code":"KR-29"},{"name":"North Gyeongsang","code":"KR-47"},{"name":"Gyeonggi","code":"KR-41"},{"name":"South Gyeongsang","code":"KR-48"},{"name":"Incheon","code":"KR-28"},{"name":"Jeju","code":"KR-49"},{"name":"North Jeolla","code":"KR-45"},{"name":"South Jeolla","code":"KR-46"},{"name":"Sejong","code":"KR-50"},{"name":"Seoul","code":"KR-11"},{"name":"Ulsan","code":"KR-31"}]},{"name":"South Sudan","code":"SS"},{"name":"Spain","code":"ES","provinces":[{"name":"A Coruña","code":"C"},{"name":"Álava","code":"VI"},{"name":"Albacete","code":"AB"},{"name":"Alicante","code":"A"},{"name":"Almería","code":"AL"},{"name":"Asturias Province","code":"O"},{"name":"Ávila","code":"AV"},{"name":"Badajoz","code":"BA"},{"name":"Balears Province","code":"PM"},{"name":"Barcelona","code":"B"},{"name":"Burgos","code":"BU"},{"name":"Cáceres","code":"CC"},{"name":"Cádiz","code":"CA"},{"name":"Cantabria Province","code":"S"},{"name":"Castellón","code":"CS"},{"name":"Ceuta","code":"CE"},{"name":"Ciudad Real","code":"CR"},{"name":"Córdoba","code":"CO"},{"name":"Cuenca","code":"CU"},{"name":"Girona","code":"GI"},{"name":"Granada","code":"GR"},{"name":"Guadalajara","code":"GU"},{"name":"Gipuzkoa","code":"SS"},{"name":"Huelva","code":"H"},{"name":"Huesca","code":"HU"},{"name":"Jaén","code":"J"},{"name":"La Rioja Province","code":"LO"},{"name":"Las Palmas","code":"GC"},{"name":"León","code":"LE"},{"name":"Lleida","code":"L"},{"name":"Lugo","code":"LU"},{"name":"Madrid Province","code":"M"},{"name":"Málaga","code":"MA"},{"name":"Melilla","code":"ML"},{"name":"Murcia","code":"MU"},{"name":"Navarra","code":"NA"},{"name":"Ourense","code":"OR"},{"name":"Palencia","code":"P"},{"name":"Pontevedra","code":"PO"},{"name":"Salamanca","code":"SA"},{"name":"Santa Cruz de Tenerife","code":"TF"},{"name":"Segovia","code":"SG"},{"name":"Seville","code":"SE"},{"name":"Soria","code":"SO"},{"name":"Tarragona","code":"T"},{"name":"Teruel","code":"TE"},{"name":"Toledo","code":"TO"},{"name":"Valencia","code":"V"},{"name":"Valladolid","code":"VA"},{"name":"Biscay","code":"BI"},{"name":"Zamora","code":"ZA"},{"name":"Zaragoza","code":"Z"}]},{"name":"Sri Lanka","code":"LK"},{"name":"St. Barthélemy","code":"BL"},{"name":"St. Helena","code":"SH"},{"name":"St. Kitts \u0026 Nevis","code":"KN"},{"name":"St. Lucia","code":"LC"},{"name":"St. Martin","code":"MF"},{"name":"St. Pierre \u0026 Miquelon","code":"PM"},{"name":"St. Vincent \u0026 Grenadines","code":"VC"},{"name":"Sudan","code":"SD"},{"name":"Suriname","code":"SR"},{"name":"Svalbard \u0026 Jan Mayen","code":"SJ"},{"name":"Sweden","code":"SE"},{"name":"Switzerland","code":"CH"},{"name":"Taiwan","code":"TW"},{"name":"Tajikistan","code":"TJ"},{"name":"Tanzania","code":"TZ"},{"name":"Thailand","code":"TH","provinces":[{"name":"Amnat Charoen","code":"TH-37"},{"name":"Ang Thong","code":"TH-15"},{"name":"Bangkok","code":"TH-10"},{"name":"Bueng Kan","code":"TH-38"},{"name":"Buri Ram","code":"TH-31"},{"name":"Chachoengsao","code":"TH-24"},{"name":"Chai Nat","code":"TH-18"},{"name":"Chaiyaphum","code":"TH-36"},{"name":"Chanthaburi","code":"TH-22"},{"name":"Chiang Mai","code":"TH-50"},{"name":"Chiang Rai","code":"TH-57"},{"name":"Chon Buri","code":"TH-20"},{"name":"Chumphon","code":"TH-86"},{"name":"Kalasin","code":"TH-46"},{"name":"Kamphaeng Phet","code":"TH-62"},{"name":"Kanchanaburi","code":"TH-71"},{"name":"Khon Kaen","code":"TH-40"},{"name":"Krabi","code":"TH-81"},{"name":"Lampang","code":"TH-52"},{"name":"Lamphun","code":"TH-51"},{"name":"Loei","code":"TH-42"},{"name":"Lopburi","code":"TH-16"},{"name":"Mae Hong Son","code":"TH-58"},{"name":"Maha Sarakham","code":"TH-44"},{"name":"Mukdahan","code":"TH-49"},{"name":"Nakhon Nayok","code":"TH-26"},{"name":"Nakhon Pathom","code":"TH-73"},{"name":"Nakhon Phanom","code":"TH-48"},{"name":"Nakhon Ratchasima","code":"TH-30"},{"name":"Nakhon Sawan","code":"TH-60"},{"name":"Nakhon Si Thammarat","code":"TH-80"},{"name":"Nan","code":"TH-55"},{"name":"Narathiwat","code":"TH-96"},{"name":"Nong Bua Lam Phu","code":"TH-39"},{"name":"Nong Khai","code":"TH-43"},{"name":"Nonthaburi","code":"TH-12"},{"name":"Pathum Thani","code":"TH-13"},{"name":"Pattani","code":"TH-94"},{"name":"Pattaya","code":"TH-S"},{"name":"Phang Nga","code":"TH-82"},{"name":"Phatthalung","code":"TH-93"},{"name":"Phayao","code":"TH-56"},{"name":"Phetchabun","code":"TH-67"},{"name":"Phetchaburi","code":"TH-76"},{"name":"Phichit","code":"TH-66"},{"name":"Phitsanulok","code":"TH-65"},{"name":"Phra Nakhon Si Ayutthaya","code":"TH-14"},{"name":"Phrae","code":"TH-54"},{"name":"Phuket","code":"TH-83"},{"name":"Prachin Buri","code":"TH-25"},{"name":"Prachuap Khiri Khan","code":"TH-77"},{"name":"Ranong","code":"TH-85"},{"name":"Ratchaburi","code":"TH-70"},{"name":"Rayong","code":"TH-21"},{"name":"Roi Et","code":"TH-45"},{"name":"Sa Kaeo","code":"TH-27"},{"name":"Sakon Nakhon","code":"TH-47"},{"name":"Samut Prakan","code":"TH-11"},{"name":"Samut Sakhon","code":"TH-74"},{"name":"Samut Songkhram","code":"TH-75"},{"name":"Saraburi","code":"TH-19"},{"name":"Satun","code":"TH-91"},{"name":"Sing Buri","code":"TH-17"},{"name":"Si Sa Ket","code":"TH-33"},{"name":"Songkhla","code":"TH-90"},{"name":"Sukhothai","code":"TH-64"},{"name":"Suphanburi","code":"TH-72"},{"name":"Surat Thani","code":"TH-84"},{"name":"Surin","code":"TH-32"},{"name":"Tak","code":"TH-63"},{"name":"Trang","code":"TH-92"},{"name":"Trat","code":"TH-23"},{"name":"Ubon Ratchathani","code":"TH-34"},{"name":"Udon Thani","code":"TH-41"},{"name":"Uthai Thani","code":"TH-61"},{"name":"Uttaradit","code":"TH-53"},{"name":"Yala","code":"TH-95"},{"name":"Yasothon","code":"TH-35"}]},{"name":"Timor-Leste","code":"TL"},{"name":"Togo","code":"TG"},{"name":"Tokelau","code":"TK"},{"name":"Tonga","code":"TO"},{"name":"Trinidad \u0026 Tobago","code":"TT"},{"name":"Tristan da Cunha","code":"TA"},{"name":"Tunisia","code":"TN"},{"name":"Turkey","code":"TR"},{"name":"Turkmenistan","code":"TM"},{"name":"Turks \u0026 Caicos Islands","code":"TC"},{"name":"Tuvalu","code":"TV"},{"name":"U.S. Outlying Islands","code":"UM"},{"name":"Uganda","code":"UG"},{"name":"Ukraine","code":"UA"},{"name":"United Arab Emirates","code":"AE","provinces":[{"name":"Abu Dhabi","code":"AZ"},{"name":"Ajman","code":"AJ"},{"name":"Dubai","code":"DU"},{"name":"Fujairah","code":"FU"},{"name":"Ras al-Khaimah","code":"RK"},{"name":"Sharjah","code":"SH"},{"name":"Umm al-Quwain","code":"UQ"}]},{"name":"United Kingdom","code":"GB","provinces":[{"name":"British Forces","code":"BFP"},{"name":"England","code":"ENG"},{"name":"Northern Ireland","code":"NIR"},{"name":"Scotland","code":"SCT"},{"name":"Wales","code":"WLS"}]},{"name":"United States","code":"US","provinces":[{"name":"Alabama","code":"AL"},{"name":"Alaska","code":"AK"},{"name":"American Samoa","code":"AS"},{"name":"Arizona","code":"AZ"},{"name":"Arkansas","code":"AR"},{"name":"California","code":"CA"},{"name":"Colorado","code":"CO"},{"name":"Connecticut","code":"CT"},{"name":"Delaware","code":"DE"},{"name":"Washington DC","code":"DC"},{"name":"Micronesia","code":"FM"},{"name":"Florida","code":"FL"},{"name":"Georgia","code":"GA"},{"name":"Guam","code":"GU"},{"name":"Hawaii","code":"HI"},{"name":"Idaho","code":"ID"},{"name":"Illinois","code":"IL"},{"name":"Indiana","code":"IN"},{"name":"Iowa","code":"IA"},{"name":"Kansas","code":"KS"},{"name":"Kentucky","code":"KY"},{"name":"Louisiana","code":"LA"},{"name":"Maine","code":"ME"},{"name":"Marshall Islands","code":"MH"},{"name":"Maryland","code":"MD"},{"name":"Massachusetts","code":"MA"},{"name":"Michigan","code":"MI"},{"name":"Minnesota","code":"MN"},{"name":"Mississippi","code":"MS"},{"name":"Missouri","code":"MO"},{"name":"Montana","code":"MT"},{"name":"Nebraska","code":"NE"},{"name":"Nevada","code":"NV"},{"name":"New Hampshire","code":"NH"},{"name":"New Jersey","code":"NJ"},{"name":"New Mexico","code":"NM"},{"name":"New York","code":"NY"},{"name":"North Carolina","code":"NC"},{"name":"North Dakota","code":"ND"},{"name":"Northern Mariana Islands","code":"MP"},{"name":"Ohio","code":"OH"},{"name":"Oklahoma","code":"OK"},{"name":"Oregon","code":"OR"},{"name":"Palau","code":"PW"},{"name":"Pennsylvania","code":"PA"},{"name":"Puerto Rico","code":"PR"},{"name":"Rhode Island","code":"RI"},{"name":"South Carolina","code":"SC"},{"name":"South Dakota","code":"SD"},{"name":"Tennessee","code":"TN"},{"name":"Texas","code":"TX"},{"name":"Utah","code":"UT"},{"name":"Vermont","code":"VT"},{"name":"U.S. Virgin Islands","code":"VI"},{"name":"Virginia","code":"VA"},{"name":"Washington","code":"WA"},{"name":"West Virginia","code":"WV"},{"name":"Wisconsin","code":"WI"},{"name":"Wyoming","code":"WY"},{"name":"Armed Forces Americas","code":"AA"},{"name":"Armed Forces Europe","code":"AE"},{"name":"Armed Forces Pacific","code":"AP"}]}
1634,{"name":"Uruguay","code":"UY","provinces":[{"name":"Artigas","code":"UY-AR"},{"name":"Canelones","code":"UY-CA"},{"name":"Cerro Largo","code":"UY-CL"},{"name":"Colonia","code":"UY-CO"},{"name":"Durazno","code":"UY-DU"},{"name":"Flores","code":"UY-FS"},{"name":"Florida","code":"UY-FD"},{"name":"Lavalleja","code":"UY-LA"},{"name":"Maldonado","code":"UY-MA"},{"name":"Montevideo","code":"UY-MO"},{"name":"Paysandú","code":"UY-PA"},{"name":"Río Negro","code":"UY-RN"},{"name":"Rivera","code":"UY-RV"},{"name":"Rocha","code":"UY-RO"},{"name":"Salto","code":"UY-SA"},{"name":"San José","code":"UY-SJ"},{"name":"Soriano","code":"UY-SO"},{"name":"Tacuarembó","code":"UY-TA"},{"name":"Treinta y Tres","code":"UY-TT"}]},{"name":"Uzbekistan","code":"UZ"},{"name":"Vanuatu","code":"VU"},{"name":"Vatican City","code":"VA"},{"name":"Venezuela","code":"VE","provinces":[{"name":"Amazonas","code":"VE-Z"},{"name":"Anzoátegui","code":"VE-B"},{"name":"Apure","code":"VE-C"},{"name":"Aragua","code":"VE-D"},{"name":"Barinas","code":"VE-E"},{"name":"Bolívar","code":"VE-F"},{"name":"Carabobo","code":"VE-G"},{"name":"Cojedes","code":"VE-H"},{"name":"Delta Amacuro","code":"VE-Y"},{"name":"Federal Dependencies","code":"VE-W"},{"name":"Capital","code":"VE-A"},{"name":"Falcón","code":"VE-I"},{"name":"Guárico","code":"VE-J"},{"name":"Vargas","code":"VE-X"},{"name":"Lara","code":"VE-K"},{"name":"Mérida","code":"VE-L"},{"name":"Miranda","code":"VE-M"},{"name":"Monagas","code":"VE-N"},{"name":"Nueva Esparta","code":"VE-O"},{"name":"Portuguesa","code":"VE-P"},{"name":"Sucre","code":"VE-R"},{"name":"Táchira","code":"VE-S"},{"name":"Trujillo","code":"VE-T"},{"name":"Yaracuy","code":"VE-U"},{"name":"Zulia","code":"VE-V"}]},{"name":"Vietnam","code":"VN"},{"name":"Wallis \u0026 Futuna","code":"WF"},{"name":"Western Sahara","code":"EH"},{"name":"Yemen","code":"YE"},{"name":"Zambia","code":"ZM"},{"name":"Zimbabwe","code":"ZW"}],
1635  "locale": "en",
1636  
1637    "localeRootPath": "\/",
1638  
1639  
1640    "adminIsLoggedIn": false
1641  
1642  }
1643;
1644  window.CF.allCountryOptionTags = `<option value="United States" data-provinces="[[&quot;Alabama&quot;,&quot;Alabama&quot;],[&quot;Alaska&quot;,&quot;Alaska&quot;],[&quot;American Samoa&quot;,&quot;American Samoa&quot;],[&quot;Arizona&quot;,&quot;Arizona&quot;],[&quot;Arkansas&quot;,&quot;Arkansas&quot;],[&quot;Armed Forces Americas&quot;,&quot;Armed Forces Americas&quot;],[&quot;Armed Forces Europe&quot;,&quot;Armed Forces Europe&quot;],[&quot;Armed Forces Pacific&quot;,&quot;Armed Forces Pacific&quot;],[&quot;California&quot;,&quot;California&quot;],[&quot;Colorado&quot;,&quot;Colorado&quot;],[&quot;Connecticut&quot;,&quot;Connecticut&quot;],[&quot;Delaware&quot;,&quot;Delaware&quot;],[&quot;District of Columbia&quot;,&quot;Washington DC&quot;],[&quot;Federated States of Micronesia&quot;,&quot;Micronesia&quot;],[&quot;Florida&quot;,&quot;Florida&quot;],[&quot;Georgia&quot;,&quot;Georgia&quot;],[&quot;Guam&quot;,&quot;Guam&quot;],[&quot;Hawaii&quot;,&quot;Hawaii&quot;],[&quot;Idaho&quot;,&quot;Idaho&quot;],[&quot;Illinois&quot;,&quot;Illinois&quot;],[&quot;Indiana&quot;,&quot;Indiana&quot;],[&quot;Iowa&quot;,&quot;Iowa&quot;],[&quot;Kansas&quot;,&quot;Kansas&quot;],[&quot;Kentucky&quot;,&quot;Kentucky&quot;],[&quot;Louisiana&quot;,&quot;Louisiana&quot;],[&quot;Maine&quot;,&quot;Maine&quot;],[&quot;Marshall Islands&quot;,&quot;Marshall Islands&quot;],[&quot;Maryland&quot;,&quot;Maryland&quot;],[&quot;Massachusetts&quot;,&quot;Massachusetts&quot;],[&quot;Michigan&quot;,&quot;Michigan&quot;],[&quot;Minnesota&quot;,&quot;Minnesota&quot;],[&quot;Mississippi&quot;,&quot;Mississippi&quot;],[&quot;Missouri&quot;,&quot;Missouri&quot;],[&quot;Montana&quot;,&quot;Montana&quot;],[&quot;Nebraska&quot;,&quot;Nebraska&quot;],[&quot;Nevada&quot;,&quot;Nevada&quot;],[&quot;New Hampshire&quot;,&quot;New Hampshire&quot;],[&quot;New Jersey&quot;,&quot;New Jersey&quot;],[&quot;New Mexico&quot;,&quot;New Mexico&quot;],[&quot;New York&quot;,&quot;New York&quot;],[&quot;North Carolina&quot;,&quot;North Carolina&quot;],[&quot;North Dakota&quot;,&quot;North Dakota&quot;],[&quot;Northern Mariana Islands&quot;,&quot;Northern Mariana Islands&quot;],[&quot;Ohio&quot;,&quot;Ohio&quot;],[&quot;Oklahoma&quot;,&quot;Oklahoma&quot;],[&quot;Oregon&quot;,&quot;Oregon&quot;],[&quot;Palau&quot;,&quot;Palau&quot;],[&quot;Pennsylvania&quot;,&quot;Pennsylvania&quot;],[&quot;Puerto Rico&quot;,&quot;Puerto Rico&quot;],[&quot;Rhode Island&quot;,&quot;Rhode Island&quot;],[&quot;South Carolina&quot;,&quot;South Carolina&quot;],[&quot;South Dakota&quot;,&quot;South Dakota&quot;],[&quot;Tennessee&quot;,&quot;Tennessee&quot;],[&quot;Texas&quot;,&quot;Texas&quot;],[&quot;Utah&quot;,&quot;Utah&quot;],[&quot;Vermont&quot;,&quot;Vermont&quot;],[&quot;Virgin Islands&quot;,&quot;U.S. Virgin Islands&quot;],[&quot;Virginia&quot;,&quot;Virginia&quot;],[&quot;Washington&quot;,&quot;Washington&quot;],[&quot;West Virginia&quot;,&quot;West Virginia&quot;],[&quot;Wisconsin&quot;,&quot;Wisconsin&quot;],[&quot;Wyoming&quot;,&quot;Wyoming&quot;]]">United States</option>
1645<option value="---" data-provinces="[]">---</option>
1646<option value="Afghanistan" data-provinces="[]">Afghanistan</option>
1647<option value="Aland Islands" data-provinces="[]">Åland Islands</option>
1648<option value="Albania" data-provinces="[]">Albania</option>
1649<option value="Algeria" data-provinces="[]">Algeria</option>
1650<option value="Andorra" data-provinces="[]">Andorra</option>
1651<option value="Angola" data-provinces="[]">Angola</option>
1652<option value="Anguilla" data-provinces="[]">Anguilla</option>
1653<option value="Antigua And Barbuda" data-provinces="[]">Antigua & Barbuda</option>
1654<option value="Argentina" data-provinces="[[&quot;Buenos Aires&quot;,&quot;Buenos Aires Province&quot;],[&quot;Catamarca&quot;,&quot;Catamarca&quot;],[&quot;Chaco&quot;,&quot;Chaco&quot;],[&quot;Chubut&quot;,&quot;Chubut&quot;],[&quot;Ciudad Autónoma de Buenos Aires&quot;,&quot;Buenos Aires (Autonomous City)&quot;],[&quot;Corrientes&quot;,&quot;Corrientes&quot;],[&quot;Córdoba&quot;,&quot;Córdoba&quot;],[&quot;Entre Ríos&quot;,&quot;Entre Ríos&quot;],[&quot;Formosa&quot;,&quot;Formosa&quot;],[&quot;Jujuy&quot;,&quot;Jujuy&quot;],[&quot;La Pampa&quot;,&quot;La Pampa&quot;],[&quot;La Rioja&quot;,&quot;La Rioja&quot;],[&quot;
1654Mendoza&quot;,&quot;Mendoza&quot;],[&quot;Misiones&quot;,&quot;Misiones&quot;],[&quot;Neuquén&quot;,&quot;Neuquén&quot;],[&quot;Río Negro&quot;,&quot;Río Negro&quot;],[&quot;Salta&quot;,&quot;Salta&quot;],[&quot;San Juan&quot;,&quot;San Juan&quot;],[&quot;San Luis&quot;,&quot;San Luis&quot;],[&quot;Santa Cruz&quot;,&quot;Santa Cruz&quot;],[&quot;Santa Fe&quot;,&quot;Santa Fe&quot;],[&quot;Santiago Del Estero&quot;,&quot;Santiago del Estero&quot;],[&quot;Tierra Del Fuego&quot;,&quot;Tierra del Fuego&quot;],[&quot;Tucumán&quot;,&quot;Tucumán&quot;]]">Argentina</option>
1655<option value="Armenia" data-provinces="[]">Armenia</option>
1656<option value="Aruba" data-provinces="[]">Aruba</option>
1657<option value="Ascension Island" data-provinces="[]">Ascension Island</option>
1658<option value="Australia" data-provinces="[[&quot;Australian Capital Territory&quot;,&quot;Australian Capital Territory&quot;],[&quot;New South Wales&quot;,&quot;New South Wales&quot;],[&quot;Northern Territory&quot;,&quot;Northern Territory&quot;],[&quot;Queensland&quot;,&quot;Queensland&quot;],[&quot;South Australia&quot;,&quot;South Australia&quot;],[&quot;Tasmania&quot;,&quot;Tasmania&quot;],[&quot;Victoria&quot;,&quot;Victoria&quot;],[&quot;Western Australia&quot;,&quot;Western Australia&quot;]]">Australia</option>
1659<option value="Austria" data-provinces="[]">Austria</option>
1660<option value="Azerbaijan" data-provinces="[]">Azerbaijan</option>
1661<option value="Bahamas" data-provinces="[]">Bahamas</option>
1662<option value="Bahrain" data-provinces="[]">Bahrain</option>
1663<option value="Bangladesh" data-provinces="[]">Bangladesh</option>
1664<option value="Barbados" data-provinces="[]">Barbados</option>
1665<option value="Belarus" data-provinces="[]">Belarus</option>
1666<option value="Belgium" data-provinces="[]">Belgium</option>
1667<option value="Belize" data-provinces="[]">Belize</option>
1668<option value="Benin" data-provinces="[]">Benin</option>
1669<option value="Bermuda" data-provinces="[]">Bermuda</option>
1670<option value="Bhutan" data-provinces="[]">Bhutan</option>
1671<option value="Bolivia" data-provinces="[]">Bolivia</option>
1672<option value="Bosnia And Herzegovina" data-provinces="[]">Bosnia & Herzegovina</option>
1673<option value="Botswana" data-provinces="[]">Botswana</option>
1674<option value="Brazil" data-provinces="[[&quot;Acre&quot;,&quot;Acre&quot;],[&quot;Alagoas&quot;,&quot;Alagoas&quot;],[&quot;Amapá&quot;,&quot;Amapá&quot;],[&quot;Amazonas&quot;,&quot;Amazonas&quot;],[&quot;Bahia&quot;,&quot;Bahia&quot;],[&quot;Ceará&quot;,&quot;Ceará&quot;],[&quot;Distrito Federal&quot;,&quot;Federal District&quot;],[&quot;Espírito Santo&quot;,&quot;Espírito Santo&quot;],[&quot;Goiás&quot;,&quot;Goiás&quot;],[&quot;Maranhão&quot;,&quot;Maranhão&quot;],[&quot;Mato Grosso&quot;,&quot;Mato Grosso&quot;],[&quot;Mato Grosso do Sul&quot;,&quot;Mato Grosso do Sul&quot;],[&quot;Minas Gerais&quot;,&quot;Minas Gerais&quot;],[&quot;Paraná&quot;,&quot;Paraná&quot;],[&quot;Paraíba&quot;,&quot;Paraíba&quot;],[&quot;Pará&quot;,&quot;Pará&quot;],[&quot;Pernambuco&quot;,&quot;Pernambuco&quot;],[&quot;Piauí&quot;,&quot;Piauí&quot;],[&quot;Rio Grande do Norte&quot;,&quot;Rio Grande do Norte&quot;],[&quot;Rio Grande do Sul&quot;,&quot;Rio Grande do Sul&quot;],[&quot;Rio de Janeiro&quot;,&quot;Rio de Janeiro&quot;],[&quot;Rondônia&quot;,&quot;Rondônia&quot;],[&quot;Roraima&quot;,&quot;Roraima&quot;],[&quot;Santa Catarina&quot;,&quot;Santa Catarina&quot;],[&quot;Sergipe&quot;,&quot;Sergipe&quot;],[&quot;São Paulo&quot;,&quot;São Paulo&quot;],[&quot;Tocantins&quot;,&quot;Tocantins&quot;]]">Brazil</option>
1675<option value="British Indian Ocean Territory" data-provinces="[]">British Indian Ocean Territory</option>
1676<option value="Virgin Islands, British" data-provinces="[]">British Virgin Islands</option>
1677<option value="Brunei" data-provinces="[]">Brunei</option>
1678<option value="Bulgaria" data-provinces="[]">Bulgaria</option>
1679<option value="Burkina Faso" data-provinces="[]">Burkina Faso</option>
1680<option value="Burundi" data-provinces="[]">Burundi</option>
1681<option value="Cambodia" data-provinces="[]">Cambodia</option>
1682<option value="Republic of Cameroon" data-provinces="[]">Cameroon</option>
1683<option value="Canada" data-provinces="[[&quot;Alberta&quot;,&quot;Alberta&quot;],[&quot;British Columbia&quot;,&quot;British Columbia&quot;],[&quot;Manitoba&quot;,&quot;Manitoba&quot;],[&quot;New Brunswick&quot;,&quot;New Brunswick&quot;],[&quot;Newfoundland and Labrador&quot;,&quot;Newfoundland and Labrador&quot;],[&quot;Northwest Territories&quot;,&quot;Northwest Territories&quot;],[&quot;Nova Scotia&quot;,&quot;Nova Scotia&quot;],[&quot;Nunavut&quot;,&quot;Nunavut&quot;],[&quot;Ontario&quot;,&quot;Ontario&quot;],[&quot;Prince Edward Island&quot;,&quot;Prince Edward Island&quot;],[&quot;Quebec&quot;,&quot;Quebec&quot;],[&quot;Saskatchewan&quot;,&quot;Saskatchewan&quot;],[&quot;Yukon&quot;,&quot;Yukon&quot;]]">Canada</option>
1684<option value="Cape Verde" data-provinces="[]">Cape Verde</option>
1685<option value="Caribbean Netherlands" data-provinces="[]">Caribbean Netherlands</option>
1686<option value="Cayman Islands" data-provinces="[]">Cayman Islands</option>
1687<option value="Central African Republic" data-provinces="[]">Central African Republic</option>
1688<option value="Chad" data-provinces="[]">Chad</option>
1689<option value="Chile" data-provinces="[[&quot;Antofagasta&quot;,&quot;Antofagasta&quot;],[&quot;Araucanía&quot;,&quot;Araucanía&quot;],[&quot;Arica and Parinacota&quot;,&quot;
1689Arica y Parinacota&quot;],[&quot;Atacama&quot;,&quot;Atacama&quot;],[&quot;Aysén&quot;,&quot;Aysén&quot;],[&quot;Biobío&quot;,&quot;Bío Bío&quot;],[&quot;Coquimbo&quot;,&quot;Coquimbo&quot;],[&quot;Los Lagos&quot;,&quot;Los Lagos&quot;],[&quot;Los Ríos&quot;,&quot;Los Ríos&quot;],[&quot;Magallanes&quot;,&quot;Magallanes Region&quot;],[&quot;Maule&quot;,&quot;Maule&quot;],[&quot;O&#39;Higgins&quot;,&quot;Libertador General Bernardo O’Higgins&quot;],[&quot;Santiago&quot;,&quot;Santiago Metropolitan&quot;],[&quot;Tarapacá&quot;,&quot;Tarapacá&quot;],[&quot;Valparaíso&quot;,&quot;Valparaíso&quot;],[&quot;Ñuble&quot;,&quot;Ñuble&quot;]]">Chile</option>
1690<option value="China" data-provinces="[[&quot;Anhui&quot;,&quot;Anhui&quot;],[&quot;Beijing&quot;,&quot;Beijing&quot;],[&quot;Chongqing&quot;,&quot;Chongqing&quot;],[&quot;Fujian&quot;,&quot;Fujian&quot;],[&quot;Gansu&quot;,&quot;Gansu&quot;],[&quot;Guangdong&quot;,&quot;Guangdong&quot;],[&quot;Guangxi&quot;,&quot;Guangxi&quot;],[&quot;Guizhou&quot;,&quot;Guizhou&quot;],[&quot;Hainan&quot;,&quot;Hainan&quot;],[&quot;Hebei&quot;,&quot;Hebei&quot;],[&quot;Heilongjiang&quot;,&quot;Heilongjiang&quot;],[&quot;Henan&quot;,&quot;Henan&quot;],[&quot;Hubei&quot;,&quot;Hubei&quot;],[&quot;Hunan&quot;,&quot;Hunan&quot;],[&quot;Inner Mongolia&quot;,&quot;Inner Mongolia&quot;],[&quot;Jiangsu&quot;,&quot;Jiangsu&quot;],[&quot;Jiangxi&quot;,&quot;Jiangxi&quot;],[&quot;Jilin&quot;,&quot;Jilin&quot;],[&quot;Liaoning&quot;,&quot;Liaoning&quot;],[&quot;Ningxia&quot;,&quot;Ningxia&quot;],[&quot;Qinghai&quot;,&quot;Qinghai&quot;],[&quot;Shaanxi&quot;,&quot;Shaanxi&quot;],[&quot;Shandong&quot;,&quot;Shandong&quot;],[&quot;Shanghai&quot;,&quot;Shanghai&quot;],[&quot;Shanxi&quot;,&quot;Shanxi&quot;],[&quot;Sichuan&quot;,&quot;Sichuan&quot;],[&quot;Tianjin&quot;,&quot;Tianjin&quot;],[&quot;Xinjiang&quot;,&quot;Xinjiang&quot;],[&quot;Xizang&quot;,&quot;Tibet&quot;],[&quot;Yunnan&quot;,&quot;Yunnan&quot;],[&quot;Zhejiang&quot;,&quot;Zhejiang&quot;]]">China</option>
1691<option value="Christmas Island" data-provinces="[]">Christmas Island</option>
1692<option value="Cocos (Keeling) Islands" data-provinces="[]">Cocos (Keeling) Islands</option>
1693<option value="Colombia" data-provinces="[[&quot;Amazonas&quot;,&quot;Amazonas&quot;],[&quot;Antioquia&quot;,&quot;Antioquia&quot;],[&quot;Arauca&quot;,&quot;Arauca&quot;],[&quot;Atlántico&quot;,&quot;Atlántico&quot;],[&quot;Bogotá, D.C.&quot;,&quot;Capital District&quot;],[&quot;Bolívar&quot;,&quot;Bolívar&quot;],[&quot;Boyacá&quot;,&quot;Boyacá&quot;],[&quot;Caldas&quot;,&quot;Caldas&quot;],[&quot;Caquetá&quot;,&quot;Caquetá&quot;],[&quot;Casanare&quot;,&quot;Casanare&quot;],[&quot;Cauca&quot;,&quot;Cauca&quot;],[&quot;Cesar&quot;,&quot;Cesar&quot;],[&quot;Chocó&quot;,&quot;Chocó&quot;],[&quot;Cundinamarca&quot;,&quot;Cundinamarca&quot;],[&quot;Córdoba&quot;,&quot;Córdoba&quot;],[&quot;Guainía&quot;,&quot;Guainía&quot;],[&quot;Guaviare&quot;,&quot;Guaviare&quot;],[&quot;Huila&quot;,&quot;Huila&quot;],[&quot;La Guajira&quot;,&quot;La Guajira&quot;],[&quot;Magdalena&quot;,&quot;Magdalena&quot;],[&quot;Meta&quot;,&quot;Meta&quot;],[&quot;Nariño&quot;,&quot;Nariño&quot;],[&quot;Norte de Santander&quot;,&quot;Norte de Santander&quot;],[&quot;Putumayo&quot;,&quot;Putumayo&quot;],[&quot;Quindío&quot;,&quot;Quindío&quot;],[&quot;Risaralda&quot;,&quot;Risaralda&quot;],[&quot;San Andrés, Providencia y Santa Catalina&quot;,&quot;San Andrés \u0026 Providencia&quot;],[&quot;Santander&quot;,&quot;Santander&quot;],[&quot;Sucre&quot;,&quot;Sucre&quot;],[&quot;Tolima&quot;,&quot;Tolima&quot;],[&quot;Valle del Cauca&quot;,&quot;Valle del Cauca&quot;],[&quot;Vaupés&quot;,&quot;Vaupés&quot;],[&quot;Vichada&quot;,&quot;Vichada&quot;]]">Colombia</option>
1694<option value="Comoros" data-provinces="[]">Comoros</option>
1695<option value="Congo" data-provinces="[]">Congo - Brazzaville</option>
1696<option value="Congo, The Democratic Republic Of The" data-provinces="[]">Congo - Kinshasa</option>
1697<option value="Cook Islands" data-provinces="[]">Cook Islands</option>
1698<option value="Costa Rica" data-provinces="[[&quot;Alajuela&quot;,&quot;Alajuela&quot;],[&quot;Cartago&quot;,&quot;Cartago&quot;],[&quot;Guanacaste&quot;,&quot;Guanacaste&quot;],[&quot;Heredia&quot;,&quot;Heredia&quot;],[&quot;Limón&quot;,&quot;Limón&quot;],[&quot;Puntarenas&quot;,&quot;Puntarenas&quot;],[&quot;San José&quot;,&quot;San José&quot;]]">Costa Rica</option>
1699<option value="Croatia" data-provinces="[]">Croatia</option>
1700<option value="Curaçao" data-provinces="[]">Curaçao</option>
1701<option value="Cyprus" data-provinces="[]">Cyprus</option>
1702<option value="Czech Republic" data-provinces="[]">Czechia</option>
1703<option value="Côte d'Ivoire" data-provinces="[]">Côte d’Ivoire</option>
1704<option value="Denmark" data-provinces="[]">Denmark</option>
1705<option value="Djibouti" data-provinces="[]">Djibouti</option>
1706<option value="Dominica" data-provinces="[]">Dominica</option>
1707<option value="Dominican Republic" data-provinces="[]">Dominican Republic</option>
1708<option value="Ecuador" data-provinces="[]">Ecuador</option>
1709<option value="Egypt" data-provinces="[[&quot;6th of October&quot;,&quot;6th of October&quot;],[&quot;Al Sharqia&quot;,&quot;Al Sharqia&quot;],[&quot;Alexandria&quot;,&quot;Alexandria&quot;],[&quot;Aswan&quot;,&quot;Aswan&quot;],[&quot;Asyut&quot;,&quot;Asyut&quot;],[&quot;Beheira&quot;,&quot;Beheira&quot;],[&quot;Beni Suef&quot;,&quot;Beni Suef&quot;],[&quot;Cairo&quot;,&quot;Cairo&quot;],[&quot;Dakahlia&quot;,&quot;Dakahlia&quot;],[&quot;Damietta&quot;,&quot;Damietta&quot;],[&quot;Faiyum&quot;,&quot;Faiyum&quot;],[&quot;Gharbia&quot;,&quot;Gharbia&quot;],[&quot;Giza&quot;,&quot;Giza&quot;],[&quot;Helwan&quot;,&quot;Helwan&quot;],[&quot;Ismailia&quot;,&quot;Ismailia&quot;],[&quot;Kafr el-Sheikh&quot;,&quot;Kafr el-Sheikh&quot;],[&quot;Luxor&quot;,&quot;Luxor&quot;],[&quot;Matrouh&quot;,&quot;Matrouh&quot;],[&quot;Minya&quot;,&quot;Minya&quot;],[&quot;Monufia&quot;,&quot;Monufia&quot;],[&quot;New Valley&quot;,&quot;New Valley&quot;],[&quot;North Sinai&quot;,&quot;North Sinai&quot;],[&quot;Port Said&quot;,&quot;Port Said&quot;],[&quot;Qalyubia&quot;,&quot;Qalyubia&quot;],[&quot;Qena&quot;,&quot;Qena&quot;],[&quot;Red Sea&quot;,&quot;Red Sea&quot;],[&quot;Sohag&quot;,&quot;Sohag&quot;],[&quot;South Sinai&quot;,&quot;South Sinai&quot;],[&quot;Suez&quot;,&quot;Suez&quot;]]">Egypt</option>
1710<option value="El Salvador" data-provinces="[[&quot;Ahuachapán&quot;,&quot;Ahuachapán&quot;],[&quot;Cabañas&quot;,&quot;Cabañas&quot;],[&quot;Chalatenango&quot;,&quot;Chalatenango&quot;],[&quot;Cuscatlán&quot;,&quot;Cuscatlán&quot;],[&quot;La Libertad&quot;,&quot;La Libertad&quot;],[&quot;La Paz&quot;,&quot;La Paz&quot;],[&quot;La Unión&quot;,&quot;La Unión&quot;],[&quot;Morazán&quot;,&quot;Morazán&quot;],[&quot;San Miguel&quot;,&quot;San Miguel&quot;],[&quot;San Salvador&quot;,&quot;San Salvador&quot;],[&quot;San Vicente&quot;,&quot;San Vicente&quot;],[&quot;Santa Ana&quot;,&quot;Santa Ana&quot;],[&quot;Sonsonate&quot;,&quot;Sonsonate&quot;],[&quot;Usulután&quot;,&quot;Usulután&quot;]]">El Salvador</option>
1711<option value="Equatorial Guinea" data-provinces="[]">Equatorial Guinea</option>
1712<option value="Eritrea" data-provinces="[]">Eritrea</option>
1713<option value="Estonia" data-provinces="[]">Estonia</option>
1714<option value="Eswatini" data-provinces="[]">Eswatini</option>
1715<option value="Ethiopia" data-provinces="[]">Ethiopia</option>
1716<option value="Falkland Islands (Malvinas)" data-provinces="[]">Falkland Islands</option>
1717<option value="Faroe Islands" data-provinces="[]">Faroe Islands</option>
1718<option value="Fiji" data-provinces="[]">Fiji</option>
1719<option value="Finland" data-provinces="[]">Finland</option>
1720<option value="France" data-provinces="[]">France</option>
1721<option value="French Guiana" data-provinces="[]">French Guiana</option>
1722<option value="French Polynesia" data-provinces="[]">French Polynesia</option>
1723<option value="French Southern Territories" data-provinces="[]">French Southern Territories</option>
1724<option value="Gabon" data-provinces="[]">Gabon</option>
1725<option value="Gambia" data-provinces="[]">Gambia</option>
1726<option value="Georgia" data-provinces="[]">Georgia</option>
1727<option value="Germany" data-provinces="[]">Germany</option>
1728<option value="Ghana" data-provinces="[]">Ghana</option>
1729<option value="Gibraltar" data-provinces="[]">Gibraltar</option>
1730<option value="Greece" data-provinces="[]">Greece</option>
1731<option value="Greenland" data-provinces="[]">Greenland</option>
1732<option value="Grenada" data-provinces="[]">Grenada</option>
1733<option value="Guadeloupe" data-provinces="[]">Guadeloupe</option>
1734<option value="Guatemala" data-provinces="[[&quot;Alta Verapaz&quot;,&quot;Alta Verapaz&quot;],[&quot;Baja Verapaz&quot;,&quot;Baja Verapaz&quot;],[&quot;Chimaltenango&quot;,&quot;Chimaltenango&quot;],[&quot;Chiquimula&quot;,&quot;Chiquimula&quot;],[&quot;El Progreso&quot;,&quot;El Progreso&quot;],[&quot;Escuintla&quot;,&quot;Escuintla&quot;],[&quot;Guatemala&quot;,&quot;Guatemala&quot;],[&quot;Huehuetenango&quot;,&quot;Huehuetenango&quot;],[&quot;Izabal&quot;,&quot;Izabal&quot;],[&quot;Jalapa&quot;,&quot;Jalapa&quot;],[&quot;Jutiapa&quot;,&quot;Jutiapa&quot;],[&quot;Petén&quot;,&quot;Petén&quot;],[&quot;Quetzaltenango&quot;,&quot;Quetzaltenango&quot;],[&quot;Quiché&quot;,&quot;Quiché&quot;],[&quot;Retalhuleu&quot;,&quot;Retalhuleu&quot;],[&quot;Sacatepéquez&quot;,&quot;Sacatepéquez&quot;],[&quot;San Marcos&quot;,&quot;San Marcos&quot;],[&quot;Santa Rosa&quot;,&quot;Santa Rosa&quot;],[&quot;Sololá&quot;,&quot;Sololá&quot;],[&quot;Suchitepéquez&quot;,&quot;Suchitepéquez&quot;],[&quot;Totonicapán&quot;,&quot;Totonicapán&quot;],[&quot;Zacapa&quot;,&quot;Zacapa&quot;]]">Guatemala</option>
1735<option value="Guernsey" data-provinces="[]">Guernsey</option>
1736<option value="Guinea" data-provinces="[]">Guinea</option>
1737<option value="Guinea Bissau" data-provinces="[]">Guinea-Bissau</option>
1738<option value="Guyana" data-provinces="[]">Guyana</option>
1739<option value="Haiti" data-provinces="[]">Haiti</option>
1740<option value="Honduras" data-provinces="[]">Honduras</option>
1741<option value="Hong Kong" data-provinces="[[&quot;Hong Kong Island&quot;,&quot;Hong Kong Island&quot;],[&quot;Kowloon&quot;,&quot;Kowloon&quot;],[&quot;New Territories&quot;,&quot;New Territories&quot;]]">Hong Kong SAR</option>
1742<option value="Hungary" data-provinces="[]">Hungary</option>
1743<option value="Iceland" data-provinces="[]">Iceland</option>
1744<option value="India" data-provinces="[[&quot;Andaman and Nicobar Islands&quot;,&quot;Andaman and Nicobar Islands&quot;],[&quot;Andhra Pradesh&quot;,&quot;Andhra Pradesh&quot;],[&quot;Arunachal Pradesh&quot;,&quot;Arunachal Pradesh&quot;],[&quot;Assam&quot;,&quot;Assam&quot;],[&quot;Bihar&quot;,&quot;Bihar&quot;],[&quot;Chandigarh&quot;,&quot;Chandigarh&quot;],[&quot;Chhattisgarh&quot;,&quot;Chhattisgarh&quot;],[&quot;Dadra and Nagar Haveli&quot;,&quot;Dadra and Nagar Haveli&quot;],[&quot;Daman and Diu&quot;,&quot;Daman and Diu&quot;],[&quot;Delhi&quot;,&quot;Delhi&quot;],[&quot;Goa&quot;,&quot;Goa&quot;],[&quot;Gujarat&quot;,&quot;Gujarat&quot;],[&quot;Haryana&quot;,&quot;Haryana&quot;],[&quot;Himachal Pradesh&quot;,&quot;Himachal Pradesh&quot;],[&quot;Jammu and Kashmir&quot;,&quot;Jammu and Kashmir&quot;],[&quot;Jharkhand&quot;,&quot;Jharkhand&quot;],[&quot;Karnataka&quot;,&quot;Karnataka&quot;],[&quot;Kerala&quot;,&quot;Kerala&quot;],[&quot;Ladakh&quot;,&quot;Ladakh&quot;],[&quot;Lakshadweep&quot;,&quot;Lakshadweep&quot;],[&quot;Madhya Pradesh&quot;,&quot;Madhya Pradesh&quot;],[&quot;Maharashtra&quot;,&quot;Maharashtra&quot;],[&quot;Manipur&quot;,&quot;Manipur&quot;],[&quot;Meghalaya&quot;,&quot;Meghalaya&quot;],[&quot;Mizoram&quot;,&quot;Mizoram&quot;],[&quot;Nagaland&quot;,&quot;Nagaland&quot;],[&quot;Odisha&quot;,&quot;Odisha&quot;],[&quot;Puducherry&quot;,&quot;Puducherry&quot;],[&quot;Punjab&quot;,&quot;Punjab&quot;],[&quot;Rajasthan&quot;,&quot;Rajasthan&quot;],[&quot;Sikkim&quot;,&quot;Sikkim&quot;],[&quot;Tamil Nadu&quot;,&quot;Tamil Nadu&quot;],[&quot;Telangana&quot;,&quot;Telangana&quot;],[&quot;Tripura&quot;,&quot;Tripura&quot;],[&quot;Uttar Pradesh&quot;,&quot;Uttar Pradesh&quot;],[&quot;Uttarakhand&quot;,&quot;Uttarakhand&quot;],[&quot;West Bengal&quot;,&quot;West Bengal&quot;]]">India</option>
1745<option value="Indonesia" data-provinces="[[&quot;Aceh&quot;,&quot;Aceh&quot;],[&quot;Bali&quot;,&quot;Bali&quot;],[&quot;Bangka Belitung&quot;,&quot;Bangka–Belitung Islands&quot;],[&quot;Banten&quot;,&quot;Banten&quot;],[&quot;Bengkulu&quot;,&quot;Bengkulu&quot;],[&quot;Gorontalo&quot;,&quot;Gorontalo&quot;],[&quot;Jakarta&quot;,&quot;Jakarta&quot;],[&quot;Jambi&quot;,&quot;Jambi&quot;],[&quot;Jawa Barat&quot;,&quot;West Java&quot;],[&quot;Jawa Tengah&quot;,&quot;Central Java&quot;],[&quot;Jawa Timur&quot;,&quot;East Java&quot;],[&quot;Kalimantan Barat&quot;,&quot;West Kalimantan&quot;],[&quot;Kalimantan Selatan&quot;,&quot;South Kalimantan&quot;],[&quot;Kalimantan Tengah&quot;,&quot;Central Kalimantan&quot;],[&quot;Kalimantan Timur&quot;,&quot;East Kalimantan&quot;],[&quot;Kalimantan Utara&quot;,&quot;North Kalimantan&quot;],[&quot;Kepulauan Riau&quot;,&quot;Riau Islands&quot;],[&quot;
1745Lampung&quot;,&quot;Lampung&quot;],[&quot;Maluku&quot;,&quot;Maluku&quot;],[&quot;Maluku Utara&quot;,&quot;North Maluku&quot;],[&quot;North Sumatra&quot;,&quot;North Sumatra&quot;],[&quot;Nusa Tenggara Barat&quot;,&quot;West Nusa Tenggara&quot;],[&quot;Nusa Tenggara Timur&quot;,&quot;East Nusa Tenggara&quot;],[&quot;Papua&quot;,&quot;Papua&quot;],[&quot;Papua Barat&quot;,&quot;West Papua&quot;],[&quot;Riau&quot;,&quot;Riau&quot;],[&quot;South Sumatra&quot;,&quot;South Sumatra&quot;],[&quot;Sulawesi Barat&quot;,&quot;West Sulawesi&quot;],[&quot;Sulawesi Selatan&quot;,&quot;South Sulawesi&quot;],[&quot;Sulawesi Tengah&quot;,&quot;Central Sulawesi&quot;],[&quot;Sulawesi Tenggara&quot;,&quot;Southeast Sulawesi&quot;],[&quot;Sulawesi Utara&quot;,&quot;North Sulawesi&quot;],[&quot;West Sumatra&quot;,&quot;West Sumatra&quot;],[&quot;Yogyakarta&quot;,&quot;Yogyakarta&quot;]]">Indonesia</option>
1746<option value="Iraq" data-provinces="[]">Iraq</option>
1747<option value="Ireland" data-provinces="[[&quot;Carlow&quot;,&quot;Carlow&quot;],[&quot;Cavan&quot;,&quot;Cavan&quot;],[&quot;Clare&quot;,&quot;Clare&quot;],[&quot;Cork&quot;,&quot;Cork&quot;],[&quot;Donegal&quot;,&quot;Donegal&quot;],[&quot;Dublin&quot;,&quot;Dublin&quot;],[&quot;Galway&quot;,&quot;Galway&quot;],[&quot;Kerry&quot;,&quot;Kerry&quot;],[&quot;Kildare&quot;,&quot;Kildare&quot;],[&quot;Kilkenny&quot;,&quot;Kilkenny&quot;],[&quot;Laois&quot;,&quot;Laois&quot;],[&quot;Leitrim&quot;,&quot;Leitrim&quot;],[&quot;Limerick&quot;,&quot;Limerick&quot;],[&quot;Longford&quot;,&quot;Longford&quot;],[&quot;Louth&quot;,&quot;Louth&quot;],[&quot;Mayo&quot;,&quot;Mayo&quot;],[&quot;Meath&quot;,&quot;Meath&quot;],[&quot;Monaghan&quot;,&quot;Monaghan&quot;],[&quot;Offaly&quot;,&quot;Offaly&quot;],[&quot;Roscommon&quot;,&quot;Roscommon&quot;],[&quot;Sligo&quot;,&quot;Sligo&quot;],[&quot;Tipperary&quot;,&quot;Tipperary&quot;],[&quot;Waterford&quot;,&quot;Waterford&quot;],[&quot;Westmeath&quot;,&quot;Westmeath&quot;],[&quot;Wexford&quot;,&quot;Wexford&quot;],[&quot;Wicklow&quot;,&quot;Wicklow&quot;]]">Ireland</option>
1748<option value="Isle Of Man" data-provinces="[]">Isle of Man</option>
1749<option value="Israel" data-provinces="[]">Israel</option>
1750<option value="Italy" data-provinces="[[&quot;Agrigento&quot;,&quot;Agrigento&quot;],[&quot;Alessandria&quot;,&quot;Alessandria&quot;],[&quot;Ancona&quot;,&quot;Ancona&quot;],[&quot;Aosta&quot;,&quot;Aosta Valley&quot;],[&quot;Arezzo&quot;,&quot;Arezzo&quot;],[&quot;Ascoli Piceno&quot;,&quot;Ascoli Piceno&quot;],[&quot;Asti&quot;,&quot;Asti&quot;],[&quot;Avellino&quot;,&quot;Avellino&quot;],[&quot;Bari&quot;,&quot;Bari&quot;],[&quot;Barletta-Andria-Trani&quot;,&quot;Barletta-Andria-Trani&quot;],[&quot;Belluno&quot;,&quot;Belluno&quot;],[&quot;Benevento&quot;,&quot;Benevento&quot;],[&quot;Bergamo&quot;,&quot;Bergamo&quot;],[&quot;Biella&quot;,&quot;Biella&quot;],[&quot;Bologna&quot;,&quot;Bologna&quot;],[&quot;Bolzano&quot;,&quot;South Tyrol&quot;],[&quot;Brescia&quot;,&quot;Brescia&quot;],[&quot;Brindisi&quot;,&quot;Brindisi&quot;],[&quot;Cagliari&quot;,&quot;Cagliari&quot;],[&quot;Caltanissetta&quot;,&quot;Caltanissetta&quot;],[&quot;Campobasso&quot;,&quot;Campobasso&quot;],[&quot;Caserta&quot;,&quot;Caserta&quot;],[&quot;Catania&quot;,&quot;Catania&quot;],[&quot;Catanzaro&quot;,&quot;Catanzaro&quot;],[&quot;Chieti&quot;,&quot;Chieti&quot;],[&quot;Como&quot;,&quot;Como&quot;],[&quot;Cosenza&quot;,&quot;Cosenza&quot;],[&quot;Cremona&quot;,&quot;Cremona&quot;],[&quot;Crotone&quot;,&quot;Crotone&quot;],[&quot;Cuneo&quot;,&quot;Cuneo&quot;],[&quot;Enna&quot;,&quot;Enna&quot;],[&quot;Fermo&quot;,&quot;Fermo&quot;],[&quot;Ferrara&quot;,&quot;Ferrara&quot;],[&quot;Firenze&quot;,&quot;Florence&quot;],[&quot;Foggia&quot;,&quot;Foggia&quot;],[&quot;Forlì-Cesena&quot;,&quot;Forlì-Cesena&quot;],[&quot;Frosinone&quot;,&quot;Frosinone&quot;],[&quot;Gallura Nord-Est Sardegna&quot;,&quot;Gallura Nord-Est Sardegna&quot;],[&quot;Genova&quot;,&quot;Genoa&quot;],[&quot;Gorizia&quot;,&quot;Gorizia&quot;],[&quot;Grosseto&quot;,&quot;Grosseto&quot;],[&quot;Imperia&quot;,&quot;Imperia&quot;],[&quot;Isernia&quot;,&quot;Isernia&quot;],[&quot;L&#39;Aquila&quot;,&quot;L’Aquila&quot;],[&quot;La Spezia&quot;,&quot;La Spezia&quot;],[&quot;Latina&quot;,&quot;Latina&quot;],[&quot;Lecce&quot;,&quot;Lecce&quot;],[&quot;Lecco&quot;,&quot;Lecco&quot;],[&quot;Livorno&quot;,&quot;Livorno&quot;],[&quot;Lodi&quot;,&quot;Lodi&quot;],[&quot;Lucca&quot;,&quot;Lucca&quot;],[&quot;Macerata&quot;,&quot;Macerata&quot;],[&quot;Mantova&quot;,&quot;Mantua&quot;],[&quot;Massa-Carrara&quot;,&quot;Massa and Carrara&quot;],[&quot;Matera&quot;,&quot;Matera&quot;],[&quot;Medio Campidano&quot;,&quot;Medio Campidano&quot;],[&quot;Messina&quot;,&quot;Messina&quot;],[&quot;Milano&quot;,&quot;Milan&quot;],[&quot;Modena&quot;,&quot;Modena&quot;],[&quot;Monza e Brianza&quot;,&quot;Monza and Brianza&quot;],[&quot;Napoli&quot;,&quot;Naples&quot;],[&quot;Novara&quot;,&quot;Novara&quot;],[&quot;Nuoro&quot;,&quot;Nuoro&quot;],[&quot;Ogliastra&quot;,&quot;Ogliastra&quot;],[&quot;Oristano&quot;,&quot;Oristano&quot;],[&quot;Padova&quot;,&quot;Padua&quot;],[&quot;Palermo&quot;,&quot;Palermo&quot;],[&quot;Parma&quot;,&quot;Parma&quot;],[&quot;Pavia&quot;,&quot;Pavia&quot;],[&quot;Perugia&quot;,&quot;Perugia&quot;],[&quot;Pesaro e Urbino&quot;,&quot;Pesaro and Urbino&quot;],[&quot;Pescara&quot;,&quot;Pescara&quot;],[&quot;Piacenza&quot;,&quot;Piacenza&quot;],[&quot;Pisa&quot;,&quot;Pisa&quot;],[&quot;Pistoia&quot;,&quot;Pistoia&quot;],[&quot;Pordenone&quot;,&quot;Pordenone&quot;],[&quot;Potenza&quot;,&quot;Potenza&quot;],[&quot;Prato&quot;,&quot;Prato&quot;],[&quot;Ragusa&quot;,&quot;Ragusa&quot;],[&quot;Ravenna&quot;,&quot;Ravenna&quot;],[&quot;Reggio Calabria&quot;,&quot;Reggio Calabria&quot;],[&quot;Reggio Emilia&quot;,&quot;Reggio Emilia&quot;],[&quot;Rieti&quot;,&quot;Rieti&quot;],[&quot;Rimini&quot;,&quot;Rimini&quot;],[&quot;Roma&quot;,&quot;Rome&quot;],[&quot;Rovigo&quot;,&quot;Rovigo&quot;],[&quot;Salerno&quot;,&quot;Salerno&quot;],[&quot;Sassari&quot;,&quot;Sassari&quot;],[&quot;Savona&quot;,&quot;Savona&quot;],[&quot;Siena&quot;,&quot;Siena&quot;],[&quot;Siracusa&quot;,&quot;Syracuse&quot;],[&quot;Sondrio&quot;,&quot;Sondrio&quot;],[&quot;Sulcis Iglesiente&quot;,&quot;Sulcis Iglesiente&quot;],[&quot;Taranto&quot;,&quot;Taranto&quot;],[&quot;Teramo&quot;,&quot;Teramo&quot;],[&quot;Terni&quot;,&quot;Terni&quot;],[&quot;Torino&quot;,&quot;Turin&quot;],[&quot;Trapani&quot;,&quot;Trapani&quot;],[&quot;Trento&quot;,&quot;Trentino&quot;],[&quot;Treviso&quot;,&quot;Treviso&quot;],[&quot;Trieste&quot;,&quot;Trieste&quot;],[&quot;Udine&quot;,&quot;Udine&quot;],[&quot;Varese&quot;,&quot;Varese&quot;],[&quot;Venezia&quot;,&quot;Venice&quot;],[&quot;Verbano-Cusio-Ossola&quot;,&quot;Verbano-Cusio-Ossola&quot;],[&quot;Vercelli&quot;,&quot;Vercelli&quot;],[&quot;Verona&quot;,&quot;Verona&quot;],[&quot;Vibo Valentia&quot;,&quot;Vibo Valentia&quot;],[&quot;Vicenza&quot;,&quot;Vicenza&quot;],[&quot;Viterbo&quot;,&quot;Viterbo&quot;]]">Italy</option>
1751<option value="Jamaica" data-provinces="[]">Jamaica</option>
1752<option value="Japan" data-provinces="[[&quot;Aichi&quot;,&quot;Aichi&quot;],[&quot;Akita&quot;,&quot;Akita&quot;],[&quot;Aomori&quot;,&quot;Aomori&quot;],[&quot;Chiba&quot;,&quot;Chiba&quot;],[&quot;Ehime&quot;,&quot;Ehime&quot;],[&quot;Fukui&quot;,&quot;Fukui&quot;],[&quot;Fukuoka&quot;,&quot;Fukuoka&quot;],[&quot;Fukushima&quot;,&quot;Fukushima&quot;],[&quot;Gifu&quot;,&quot;Gifu&quot;],[&quot;Gunma&quot;,&quot;Gunma&quot;],[&quot;Hiroshima&quot;,&quot;Hiroshima&quot;],[&quot;Hokkaidō&quot;,&quot;Hokkaido&quot;],[&quot;Hyōgo&quot;,&quot;Hyogo&quot;],[&quot;Ibaraki&quot;,&quot;Ibaraki&quot;],[&quot;Ishikawa&quot;,&quot;Ishikawa&quot;],[&quot;Iwate&quot;,&quot;Iwate&quot;],[&quot;Kagawa&quot;,&quot;Kagawa&quot;],[&quot;Kagoshima&quot;,&quot;Kagoshima&quot;],[&quot;Kanagawa&quot;,&quot;Kanagawa&quot;],[&quot;Kumamoto&quot;,&quot;Kumamoto&quot;],[&quot;Kyōto&quot;,&quot;Kyoto&quot;],[&quot;Kōchi&quot;,&quot;Kochi&quot;],[&quot;Mie&quot;,&quot;Mie&quot;],[&quot;Miyagi&quot;,&quot;Miyagi&quot;],[&quot;Miyazaki&quot;,&quot;Miyazaki&quot;],[&quot;Nagano&quot;,&quot;Nagano&quot;],[&quot;Nagasaki&quot;,&quot;Nagasaki&quot;],[&quot;Nara&quot;,&quot;Nara&quot;],[&quot;Niigata&quot;,&quot;Niigata&quot;],[&quot;Okayama&quot;,&quot;Okayama&quot;],[&quot;Okinawa&quot;,&quot;Okinawa&quot;],[&quot;Saga&quot;,&quot;Saga&quot;],[&quot;Saitama&quot;,&quot;Saitama&quot;],[&quot;Shiga&quot;,&quot;Shiga&quot;],[&quot;Shimane&quot;,&quot;Shimane&quot;],[&quot;Shizuoka&quot;,&quot;Shizuoka&quot;],[&quot;Tochigi&quot;,&quot;Tochigi&quot;],[&quot;Tokushima&quot;,&quot;Tokushima&quot;],[&quot;Tottori&quot;,&quot;Tottori&quot;],[&quot;Toyama&quot;,&quot;Toyama&quot;],[&quot;Tōkyō&quot;,&quot;Tokyo&quot;],[&quot;Wakayama&quot;,&quot;Wakayama&quot;],[&quot;Yamagata&quot;,&quot;Yamagata&quot;],[&quot;Yamaguchi&quot;,&quot;Yamaguchi&quot;],[&quot;Yamanashi&quot;,&quot;Yamanashi&quot;],[&quot;Ōita&quot;,&quot;Oita&quot;],[&quot;Ōsaka&quot;,&quot;Osaka&quot;]]">Japan</option>
1753<option value="Jersey" data-provinces="[]">Jersey</option>
1754<option value="Jordan" data-provinces="[]">Jordan</option>
1755<option value="Kazakhstan" data-provinces="[]">Kazakhstan</option>
1756<option value="Kenya" data-provinces="[]">Kenya</option>
1757<option value="Kiribati" data-provinces="[]">Kiribati</option>
1758<option value="Kosovo" data-provinces="[]">Kosovo</option>
1759<option value="Kuwait" data-provinces="[[&quot;Al Ahmadi&quot;,&quot;Al Ahmadi&quot;],[&quot;Al Asimah&quot;,&quot;Al Asimah&quot;],[&quot;Al Farwaniyah&quot;,&quot;Al Farwaniyah&quot;],[&quot;Al Jahra&quot;,&quot;Al Jahra&quot;],[&quot;Hawalli&quot;,&quot;Hawalli&quot;],[&quot;Mubarak Al-Kabeer&quot;,&quot;Mubarak Al-Kabeer&quot;]]">Kuwait</option>
1760<option value="Kyrgyzstan" data-provinces="[]">Kyrgyzstan</option>
1761<option value="Lao People's Democratic Republic" data-provinces="[]">Laos</option>
1762<option value="Latvia" data-provinces="[]">Latvia</option>
1763<option value="Lebanon" data-provinces="[]">Lebanon</option>
1764<option value="Lesotho" data-provinces="[]">Lesotho</option>
1765<option value="Liberia" data-provinces="[]">Liberia</option>
1766<option value="Libyan Arab Jamahiriya" data-provinces="[]">Libya</option>
1767<option value="Liechtenstein" data-provinces="[]">Liechtenstein</option>
1768<option value="Lithuania" data-provinces="[]">Lithuania</option>
1769<option value="Luxembourg" data-provinces="[]">Luxembourg</option>
1770<option value="Macao" data-provinces="[]">Macao SAR</option>
1771<option value="Madagascar" data-provinces="[]">Madagascar</option>
1772<option value="Malawi" data-provinces="[]">Malawi</option>
1773<option value="Malaysia" data-provinces="[[&quot;Johor&quot;,&quot;Johor&quot;],[&quot;Kedah&quot;,&quot;Kedah&quot;],[&quot;Kelantan&quot;,&quot;Kelantan&quot;],[&quot;Kuala Lumpur&quot;,&quot;Kuala Lumpur&quot;],[&quot;Labuan&quot;,&quot;Labuan&quot;],[&quot;Melaka&quot;,&quot;Malacca&quot;],[&quot;Negeri Sembilan&quot;,&quot;Negeri Sembilan&quot;],[&quot;Pahang&quot;,&quot;Pahang&quot;],[&quot;Penang&quot;,&quot;Penang&quot;],[&quot;Perak&quot;,&quot;Perak&quot;],[&quot;Perlis&quot;,&quot;Perlis&quot;],[&quot;Putrajaya&quot;,&quot;Putrajaya&quot;],[&quot;Sabah&quot;,&quot;Sabah&quot;],[&quot;Sarawak&quot;,&quot;Sarawak&quot;],[&quot;Selangor&quot;,&quot;Selangor&quot;],[&quot;Terengganu&quot;,&quot;Terengganu&quot;]]">Malaysia</option>
1774<option value="Maldives" data-provinces="[]">Maldives</option>
1775<option value="Mali" data-provinces="[]">Mali</option>
1776<option value="Malta" data-provinces="[]">Malta</option>
1777<option value="Martinique" data-provinces="[]">Martinique</option>
1778<option value="Mauritania" data-provinces="[]">Mauritania</option>
1779<option value="Mauritius" data-provinces="[]">Mauritius</option>
1780<option value="Mayotte" data-provinces="[]">Mayotte</option>
1781<option value="Mexico" data-provinces="[[&quot;Aguascalientes&quot;,&quot;Aguascalientes&quot;],[&quot;Baja California&quot;,&quot;Baja California&quot;],[&quot;Baja California Sur&quot;,&quot;Baja California Sur&quot;],[&quot;Campeche&quot;,&quot;Campeche&quot;],[&quot;Chiapas&quot;,&quot;Chiapas&quot;],[&quot;Chihuahua&quot;,&quot;Chihuahua&quot;],[&quot;Ciudad de México&quot;,&quot;Ciudad de Mexico&quot;],[&quot;Coahuila&quot;,&quot;Coahuila&quot;],[&quot;Colima&quot;,&quot;Colima&quot;],[&quot;Durango&quot;,&quot;Durango&quot;],[&quot;Guanajuato&quot;,&quot;Guanajuato&quot;],[&quot;Guerrero&quot;,&quot;Guerrero&quot;],[&quot;Hidalgo&quot;,&quot;Hidalgo&quot;],[&quot;Jalisco&quot;,&quot;Jalisco&quot;],[&quot;Michoacán&quot;,&quot;Michoacán&quot;],[&quot;Morelos&quot;,&quot;Morelos&quot;],[&quot;México&quot;,&quot;Mexico State&quot;],[&quot;Nayarit&quot;,&quot;Nayarit&quot;],[&quot;Nuevo León&quot;,&quot;Nuevo León&quot;],[&quot;Oaxaca&quot;,&quot;Oaxaca&quot;],[&quot;Puebla&quot;,&quot;Puebla&quot;],[&quot;Querétaro&quot;,&quot;Querétaro&quot;],[&quot;Quintana Roo&quot;,&quot;Quintana Roo&quot;],[&quot;San Luis Potosí&quot;,&quot;San Luis Potosí&quot;],[&quot;Sinaloa&quot;,&quot;Sinaloa&quot;],[&quot;Sonora&quot;,&quot;Sonora&quot;],[&quot;Tabasco&quot;,&quot;Tabasco&quot;],[&quot;Tamaulipas&quot;,&quot;Tamaulipas&quot;],[&quot;Tlaxcala&quot;,&quot;Tlaxcala&quot;],[&quot;Veracruz&quot;,&quot;Veracruz&quot;],[&quot;Yucatán&quot;,&quot;Yucatán&quot;],[&quot;Zacatecas&quot;,&quot;Zacatecas&quot;]]">Mexico</option>
1782<option value="Moldova, Republic of" data-provinces="[]">Moldova</option>
1783<option value="Monaco" data-provinces="[]">Monaco</option>
1784<option value="Mongolia" data-provinces="[]">Mongolia</option>
1785<option value="Montenegro" data-provinces="[]">Montenegro</option>
1786<option value="Montserrat" data-provinces="[]">Montserrat</option>
1787<option value="Morocco" data-provinces="[]">Morocco</option>
1788<option value="Mozambique" data-provinces="[]">Mozambique</option>
1789<option value="Myanmar" data-provinces="[]">Myanmar (Burma)</option>
1790<option value="Namibia" data-provinces="[]">Namibia</option>
1791<option value="Nauru" data-provinces="[]">Nauru</option>
1792<option value="Nepal" data-provinces="[]">Nepal</option>
1793<option value="Netherlands" data-provinces="[]">Netherlands</option>
1794<option value="New Caledonia" data-provinces="[]">New Caledonia</option>
1795<option value="New Zealand" data-provinces="[[&quot;Auckland&quot;,&quot;Auckland&quot;],[&quot;Bay of Plenty&quot;,&quot;Bay of Plenty&quot;],[&quot;Canterbury&quot;,&quot;Canterbury&quot;],[&quot;Chatham Islands&quot;,&quot;Chatham Islands&quot;],[&quot;Gisborne&quot;,&quot;Gisborne&quot;],[&quot;Hawke&#39;s Bay&quot;,&quot;Hawke’s Bay&quot;],[&quot;Manawatu-Wanganui&quot;,&quot;Manawatū-Whanganui&quot;],[&quot;Marlborough&quot;,&quot;Marlborough&quot;],[&quot;Nelson&quot;,&quot;Nelson&quot;],[&quot;Northland&quot;,&quot;Northland&quot;],[&quot;Otago&quot;,&quot;Otago&quot;],[&quot;Southland&quot;,&quot;Southland&quot;],[&quot;Taranaki&quot;,&quot;Taranaki&quot;],[&quot;Tasman&quot;,&quot;Tasman&quot;],[&quot;Waikato&quot;,&quot;Waikato&quot;],[&quot;Wellington&quot;,&quot;Wellington&quot;],[&quot;West Coast&quot;,&quot;West Coast&quot;]]">New Zealand</option>
1796<option value="Nicaragua" data-provinces="[]">Nicaragua</option>
1797<option value="Niger" data-provinces="[]">Niger</option>
1798<option value="Nigeria" data-provinces="[[&quot;Abia&quot;,&quot;Abia&quot;],[&quot;Abuja Federal Capital Territory&quot;,&quot;Federal Capital Territory&quot;],[&quot;Adamawa&quot;,&quot;Adamawa&quot;],[&quot;Akwa Ibom&quot;,&quot;Akwa Ibom&quot;],[&quot;Anambra&quot;,&quot;Anambra&quot;],[&quot;Bauchi&quot;,&quot;Bauchi&quot;],[&quot;Bayelsa&quot;,&quot;Bayelsa&quot;],[&quot;Benue&quot;,&quot;Benue&quot;],[&quot;Borno&quot;,&quot;Borno&quot;],[&quot;Cross River&quot;,&quot;Cross River&quot;],[&quot;Delta&quot;,&quot;Delta&quot;],[&quot;Ebonyi&quot;,&quot;Ebonyi&quot;],[&quot;Edo&quot;,&quot;Edo&quot;],[&quot;Ekiti&quot;,&quot;Ekiti&quot;],[&quot;Enugu&quot;,&quot;Enugu&quot;],[&quot;Gombe&quot;,&quot;Gombe&quot;],[&quot;Imo&quot;,&quot;Imo&quot;],[&quot;Jigawa&quot;,&quot;Jigawa&quot;],[&quot;Kaduna&quot;,&quot;Kaduna&quot;],[&quot;Kano&quot;,&quot;Kano&quot;],[&quot;Katsina&quot;,&quot;Katsina&quot;],[&quot;Kebbi&quot;,&quot;Kebbi&quot;],[&quot;Kogi&quot;,&quot;Kogi&quot;],[&quot;Kwara&quot;,&quot;Kwara&quot;],[&quot;Lagos&quot;,&quot;Lagos&quot;],[&quot;Nasarawa&quot;,&quot;Nasarawa&quot;],[&quot;Niger&quot;,&quot;Niger&quot;],[&quot;Ogun&quot;,&quot;Ogun&quot;],[&quot;Ondo&quot;,&quot;Ondo&quot;],[&quot;Osun&quot;,&quot;Osun&quot;],[&quot;Oyo&quot;,&quot;Oyo&quot;],[&quot;Plateau&quot;,&quot;Plateau&quot;],[&quot;Rivers&quot;,&quot;Rivers&quot;],[&quot;Sokoto&quot;,&quot;Sokoto&quot;],[&quot;Taraba&quot;,&quot;Taraba&quot;],[&quot;Yobe&quot;,&quot;Yobe&quot;],[&quot;Zamfara&quot;,&quot;Zamfara&quot;]]">Nigeria</option>
1799<option value="Niue" data-provinces="[]">Niue</option>
1800<option value="Norfolk Island" data-provinces="[]">Norfolk Island</option>
1801<option value="North Macedonia" data-provinces="[]">North Macedonia</option>
1802<option value="Norway" data-provinces="[]">Norway</option>
1803<option value="Oman" data-provinces="[]">Oman</option>
1804<option value="Pakistan" data-provinces="[]">Pakistan</option>
1805<option value="Palestinian Territory, Occupied" data-provinces="[]">Palestinian Territories</option>
1806<option value="Panama" data-provinces="[[&quot;Bocas del Toro&quot;,&quot;Bocas del Toro&quot;],[&quot;Chiriquí&quot;,&quot;Chiriquí&quot;],[&quot;Coclé&quot;,&quot;Coclé&quot;],[&quot;Colón&quot;,&quot;Colón&quot;],[&quot;Darién&quot;,&quot;Darién&quot;],[&quot;Emberá&quot;,&quot;Emberá&quot;],[&quot;Herrera&quot;,&quot;Herrera&quot;],[&quot;Kuna Yala&quot;,&quot;Guna Yala&quot;],[&quot;Los Santos&quot;,&quot;Los Santos&quot;],[&quot;Ngöbe-Buglé&quot;,&quot;Ngöbe-Buglé&quot;],[&quot;Panamá&quot;,&quot;Panamá&quot;],[&quot;Panamá Oeste&quot;,&quot;West Panamá&quot;],[&quot;Veraguas&quot;,&quot;Veraguas&quot;]]">Panama</option>
1807<option value="Papua New Guinea" data-provinces="[]">Papua New Guinea</option>
1808<option value="Paraguay" data-provinces="[]">Paraguay</option>
1809<option value="Peru" data-provinces="[[&quot;Amazonas&quot;,&quot;Amazonas&quot;],[&quot;Apurímac&quot;,&quot;Apurímac&quot;],[&quot;Arequipa&quot;,&quot;Arequipa&quot;],[&quot;Ayacucho&quot;,&quot;Ayacucho&quot;],[&quot;Cajamarca&quot;,&quot;Cajamarca&quot;],[&quot;Callao&quot;,&quot;El Callao&quot;],[&quot;Cuzco&quot;,&quot;Cusco&quot;],[&quot;Huancavelica&quot;,&quot;Huancavelica&quot;],[&quot;Huánuco&quot;,&quot;Huánuco&quot;],[&quot;Ica&quot;,&quot;Ica&quot;],[&quot;Junín&quot;,&quot;Junín&quot;],[&quot;La Libertad&quot;,&quot;La Libertad&quot;],[&quot;Lambayeque&quot;,&quot;Lambayeque&quot;],[&quot;Lima (departamento)&quot;,&quot;Lima (Department)&quot;],[&quot;Lima (provincia)&quot;,&quot;Lima (Metropolitan)&quot;],[&quot;Loreto&quot;,&quot;Loreto&quot;],[&quot;Madre de Dios&quot;,&quot;Madre de Dios&quot;],[&quot;Moquegua&quot;,&quot;Moquegua&quot;],[&quot;Pasco&quot;,&quot;Pasco&quot;],[&quot;Piura&quot;,&quot;Piura&quot;],[&quot;Puno&quot;,&quot;Puno&quot;],[&quot;San Martín&quot;,&quot;San Martín&quot;],[&quot;Tacna&quot;,&quot;Tacna&quot;],[&quot;Tumbes&quot;,&quot;Tumbes&quot;],[&quot;Ucayali&quot;,&quot;Ucayali&quot;],[&quot;Áncash&quot;,&quot;Ancash&quot;]]">
1809Peru</option>
1810<option value="Philippines" data-provinces="[[&quot;Abra&quot;,&quot;Abra&quot;],[&quot;Agusan del Norte&quot;,&quot;Agusan del Norte&quot;],[&quot;Agusan del Sur&quot;,&quot;Agusan del Sur&quot;],[&quot;Aklan&quot;,&quot;Aklan&quot;],[&quot;Albay&quot;,&quot;Albay&quot;],[&quot;Antique&quot;,&quot;Antique&quot;],[&quot;Apayao&quot;,&quot;Apayao&quot;],[&quot;Aurora&quot;,&quot;Aurora&quot;],[&quot;Basilan&quot;,&quot;Basilan&quot;],[&quot;Bataan&quot;,&quot;Bataan&quot;],[&quot;Batanes&quot;,&quot;Batanes&quot;],[&quot;Batangas&quot;,&quot;Batangas&quot;],[&quot;Benguet&quot;,&quot;Benguet&quot;],[&quot;Biliran&quot;,&quot;Biliran&quot;],[&quot;Bohol&quot;,&quot;Bohol&quot;],[&quot;Bukidnon&quot;,&quot;Bukidnon&quot;],[&quot;Bulacan&quot;,&quot;Bulacan&quot;],[&quot;Cagayan&quot;,&quot;Cagayan&quot;],[&quot;Camarines Norte&quot;,&quot;Camarines Norte&quot;],[&quot;Camarines Sur&quot;,&quot;Camarines Sur&quot;],[&quot;Camiguin&quot;,&quot;Camiguin&quot;],[&quot;Capiz&quot;,&quot;Capiz&quot;],[&quot;Catanduanes&quot;,&quot;Catanduanes&quot;],[&quot;Cavite&quot;,&quot;Cavite&quot;],[&quot;Cebu&quot;,&quot;Cebu&quot;],[&quot;Cotabato&quot;,&quot;Cotabato&quot;],[&quot;Davao Occidental&quot;,&quot;Davao Occidental&quot;],[&quot;Davao Oriental&quot;,&quot;Davao Oriental&quot;],[&quot;Davao de Oro&quot;,&quot;Compostela Valley&quot;],[&quot;Davao del Norte&quot;,&quot;Davao del Norte&quot;],[&quot;Davao del Sur&quot;,&quot;Davao del Sur&quot;],[&quot;Dinagat Islands&quot;,&quot;Dinagat Islands&quot;],[&quot;Eastern Samar&quot;,&quot;Eastern Samar&quot;],[&quot;Guimaras&quot;,&quot;Guimaras&quot;],[&quot;Ifugao&quot;,&quot;Ifugao&quot;],[&quot;Ilocos Norte&quot;,&quot;Ilocos Norte&quot;],[&quot;Ilocos Sur&quot;,&quot;Ilocos Sur&quot;],[&quot;Iloilo&quot;,&quot;Iloilo&quot;],[&quot;Isabela&quot;,&quot;Isabela&quot;],[&quot;Kalinga&quot;,&quot;Kalinga&quot;],[&quot;La Union&quot;,&quot;La Union&quot;],[&quot;Laguna&quot;,&quot;Laguna&quot;],[&quot;Lanao del Norte&quot;,&quot;Lanao del Norte&quot;],[&quot;Lanao del Sur&quot;,&quot;Lanao del Sur&quot;],[&quot;Leyte&quot;,&quot;Leyte&quot;],[&quot;Maguindanao&quot;,&quot;Maguindanao&quot;],[&quot;Marinduque&quot;,&quot;Marinduque&quot;],[&quot;Masbate&quot;,&quot;Masbate&quot;],[&quot;Metro Manila&quot;,&quot;Metro Manila&quot;],[&quot;Misamis Occidental&quot;,&quot;Misamis Occidental&quot;],[&quot;Misamis Oriental&quot;,&quot;Misamis Oriental&quot;],[&quot;Mountain Province&quot;,&quot;Mountain&quot;],[&quot;Negros Occidental&quot;,&quot;Negros Occidental&quot;],[&quot;Negros Oriental&quot;,&quot;Negros Oriental&quot;],[&quot;Northern Samar&quot;,&quot;Northern Samar&quot;],[&quot;Nueva Ecija&quot;,&quot;Nueva Ecija&quot;],[&quot;Nueva Vizcaya&quot;,&quot;Nueva Vizcaya&quot;],[&quot;Occidental Mindoro&quot;,&quot;Occidental Mindoro&quot;],[&quot;Oriental Mindoro&quot;,&quot;Oriental Mindoro&quot;],[&quot;Palawan&quot;,&quot;Palawan&quot;],[&quot;Pampanga&quot;,&quot;Pampanga&quot;],[&quot;Pangasinan&quot;,&quot;Pangasinan&quot;],[&quot;Quezon&quot;,&quot;Quezon&quot;],[&quot;Quirino&quot;,&quot;Quirino&quot;],[&quot;Rizal&quot;,&quot;Rizal&quot;],[&quot;Romblon&quot;,&quot;Romblon&quot;],[&quot;Samar&quot;,&quot;Samar&quot;],[&quot;Sarangani&quot;,&quot;Sarangani&quot;],[&quot;Siquijor&quot;,&quot;Siquijor&quot;],[&quot;Sorsogon&quot;,&quot;Sorsogon&quot;],[&quot;South Cotabato&quot;,&quot;South Cotabato&quot;],[&quot;Southern Leyte&quot;,&quot;Southern Leyte&quot;],[&quot;Sultan Kudarat&quot;,&quot;Sultan Kudarat&quot;],[&quot;Sulu&quot;,&quot;Sulu&quot;],[&quot;Surigao del Norte&quot;,&quot;Surigao del Norte&quot;],[&quot;Surigao del Sur&quot;,&quot;Surigao del Sur&quot;],[&quot;Tarlac&quot;,&quot;Tarlac&quot;],[&quot;Tawi-Tawi&quot;,&quot;Tawi-Tawi&quot;],[&quot;Zambales&quot;,&quot;Zambales&quot;],[&quot;Zamboanga Sibugay&quot;,&quot;Zamboanga Sibugay&quot;],[&quot;Zamboanga del Norte&quot;,&quot;Zamboanga del Norte&quot;],[&quot;Zamboanga del Sur&quot;,&quot;Zamboanga del Sur&quot;]]">Philippines</option>
1811<option value="Pitcairn" data-provinces="[]">Pitcairn Islands</option>
1812<option value="Poland" data-provinces="[]">Poland</option>
1813<option value="Portugal" data-provinces="[[&quot;Aveiro&quot;,&quot;Aveiro&quot;],[&quot;Açores&quot;,&quot;Azores&quot;],[&quot;Beja&quot;,&quot;Beja&quot;],[&quot;Braga&quot;,&quot;Braga&quot;],[&quot;Bragança&quot;,&quot;Bragança&quot;],[&quot;Castelo Branco&quot;,&quot;Castelo Branco&quot;],[&quot;Coimbra&quot;,&quot;Coimbra&quot;],[&quot;Faro&quot;,&quot;Faro&quot;],[&quot;Guarda&quot;,&quot;Guarda&quot;],[&quot;Leiria&quot;,&quot;Leiria&quot;],[&quot;Lisboa&quot;,&quot;Lisbon&quot;],[&quot;Madeira&quot;,&quot;Madeira&quot;],[&quot;Portalegre&quot;,&quot;Portalegre&quot;],[&quot;Porto&quot;,&quot;Porto&quot;],[&quot;Santarém&quot;,&quot;Santarém&quot;],[&quot;Setúbal&quot;,&quot;Setúbal&quot;],[&quot;Viana do Castelo&quot;,&quot;Viana do Castelo&quot;],[&quot;Vila Real&quot;,&quot;Vila Real&quot;],[&quot;Viseu&quot;,&quot;Viseu&quot;],[&quot;Évora&quot;,&quot;Évora&quot;]]">Portugal</option>
1814<option value="Qatar" data-provinces="[]">Qatar</option>
1815<option value="Reunion" data-provinces="[]">Réunion</option>
1816<option value="Romania" data-provinces="[[&quot;Alba&quot;,&quot;Alba&quot;],[&quot;Arad&quot;,&quot;Arad&quot;],[&quot;Argeș&quot;,&quot;Argeș&quot;],[&quot;Bacău&quot;,&quot;Bacău&quot;],[&quot;Bihor&quot;,&quot;Bihor&quot;],[&quot;Bistrița-Năsăud&quot;,&quot;Bistriţa-Năsăud&quot;],[&quot;Botoșani&quot;,&quot;Botoşani&quot;],[&quot;Brașov&quot;,&quot;Braşov&quot;],[&quot;Brăila&quot;,&quot;Brăila&quot;],[&quot;București&quot;,&quot;Bucharest&quot;],[&quot;Buzău&quot;,&quot;Buzău&quot;],[&quot;Caraș-Severin&quot;,&quot;Caraș-Severin&quot;],[&quot;Cluj&quot;,&quot;Cluj&quot;],[&quot;Constanța&quot;,&quot;Constanța&quot;],[&quot;Covasna&quot;,&quot;Covasna&quot;],[&quot;Călărași&quot;,&quot;Călărași&quot;],[&quot;Dolj&quot;,&quot;Dolj&quot;],[&quot;Dâmbovița&quot;,&quot;Dâmbovița&quot;],[&quot;Galați&quot;,&quot;Galați&quot;],[&quot;Giurgiu&quot;,&quot;Giurgiu&quot;],[&quot;Gorj&quot;,&quot;Gorj&quot;],[&quot;Harghita&quot;,&quot;Harghita&quot;],[&quot;Hunedoara&quot;,&quot;Hunedoara&quot;],[&quot;Ialomița&quot;,&quot;Ialomița&quot;],[&quot;Iași&quot;,&quot;Iași&quot;],[&quot;Ilfov&quot;,&quot;Ilfov&quot;],[&quot;Maramureș&quot;,&quot;Maramureş&quot;],[&quot;Mehedinți&quot;,&quot;Mehedinți&quot;],[&quot;Mureș&quot;,&quot;Mureş&quot;],[&quot;Neamț&quot;,&quot;Neamţ&quot;],[&quot;Olt&quot;,&quot;Olt&quot;],[&quot;Prahova&quot;,&quot;Prahova&quot;],[&quot;Satu Mare&quot;,&quot;Satu Mare&quot;],[&quot;Sibiu&quot;,&quot;Sibiu&quot;],[&quot;Suceava&quot;,&quot;Suceava&quot;],[&quot;Sălaj&quot;,&quot;Sălaj&quot;],[&quot;Teleorman&quot;,&quot;Teleorman&quot;],[&quot;Timiș&quot;,&quot;Timiș&quot;],[&quot;Tulcea&quot;,&quot;Tulcea&quot;],[&quot;Vaslui&quot;,&quot;Vaslui&quot;],[&quot;Vrancea&quot;,&quot;Vrancea&quot;],[&quot;Vâlcea&quot;,&quot;Vâlcea&quot;]]">Romania</option>
1817<option value="Russia" data-provinces="[[&quot;Altai Krai&quot;,&quot;Altai Krai&quot;],[&quot;Altai Republic&quot;,&quot;Altai&quot;],[&quot;Amur Oblast&quot;,&quot;Amur&quot;],[&quot;Arkhangelsk Oblast&quot;,&quot;Arkhangelsk&quot;],[&quot;Astrakhan Oblast&quot;,&quot;Astrakhan&quot;],[&quot;Belgorod Oblast&quot;,&quot;Belgorod&quot;],[&quot;Bryansk Oblast&quot;,&quot;Bryansk&quot;],[&quot;Chechen Republic&quot;,&quot;Chechen&quot;],[&quot;Chelyabinsk Oblast&quot;,&quot;Chelyabinsk&quot;],[&quot;Chukotka Autonomous Okrug&quot;,&quot;Chukotka Okrug&quot;],[&quot;Chuvash Republic&quot;,&quot;Chuvash&quot;],[&quot;Irkutsk Oblast&quot;,&quot;Irkutsk&quot;],[&quot;Ivanovo Oblast&quot;,&quot;Ivanovo&quot;],[&quot;Jewish Autonomous Oblast&quot;,&quot;Jewish&quot;],[&quot;Kabardino-Balkarian Republic&quot;,&quot;Kabardino-Balkar&quot;],[&quot;Kaliningrad Oblast&quot;,&quot;Kaliningrad&quot;],[&quot;Kaluga Oblast&quot;,&quot;Kaluga&quot;],[&quot;Kamchatka Krai&quot;,&quot;Kamchatka Krai&quot;],[&quot;Karachay–Cherkess Republic&quot;,&quot;Karachay-Cherkess&quot;],[&quot;Kemerovo Oblast&quot;,&quot;Kemerovo&quot;],[&quot;Khabarovsk Krai&quot;,&quot;Khabarovsk Krai&quot;],[&quot;Khanty-Mansi Autonomous Okrug&quot;,&quot;Khanty-Mansi&quot;],[&quot;Kirov Oblast&quot;,&quot;Kirov&quot;],[&quot;Komi Republic&quot;,&quot;Komi&quot;],[&quot;Kostroma Oblast&quot;,&quot;Kostroma&quot;],[&quot;Krasnodar Krai&quot;,&quot;Krasnodar Krai&quot;],[&quot;Krasnoyarsk Krai&quot;,&quot;Krasnoyarsk Krai&quot;],[&quot;Kurgan Oblast&quot;,&quot;Kurgan&quot;],[&quot;Kursk Oblast&quot;,&quot;Kursk&quot;],[&quot;Leningrad Oblast&quot;,&quot;Leningrad&quot;],[&quot;Lipetsk Oblast&quot;,&quot;Lipetsk&quot;],[&quot;Magadan Oblast&quot;,&quot;Magadan&quot;],[&quot;Mari El Republic&quot;,&quot;Mari El&quot;],[&quot;Moscow&quot;,&quot;Moscow&quot;],[&quot;Moscow Oblast&quot;,&quot;Moscow Province&quot;],[&quot;Murmansk Oblast&quot;,&quot;Murmansk&quot;],[&quot;Nizhny Novgorod Oblast&quot;,&quot;Nizhny Novgorod&quot;],[&quot;Novgorod Oblast&quot;,&quot;Novgorod&quot;],[&quot;Novosibirsk Oblast&quot;,&quot;Novosibirsk&quot;],[&quot;Omsk Oblast&quot;,&quot;Omsk&quot;],[&quot;Orenburg Oblast&quot;,&quot;Orenburg&quot;],[&quot;Oryol Oblast&quot;,&quot;Oryol&quot;],[&quot;Penza Oblast&quot;,&quot;Penza&quot;],[&quot;Perm Krai&quot;,&quot;Perm Krai&quot;],[&quot;Primorsky Krai&quot;,&quot;Primorsky Krai&quot;],[&quot;Pskov Oblast&quot;,&quot;Pskov&quot;],[&quot;Republic of Adygeya&quot;,&quot;Adygea&quot;],[&quot;Republic of Bashkortostan&quot;,&quot;Bashkortostan&quot;],[&quot;Republic of Buryatia&quot;,&quot;Buryat&quot;],[&quot;Republic of Dagestan&quot;,&quot;Dagestan&quot;],[&quot;Republic of Ingushetia&quot;,&quot;Ingushetia&quot;],[&quot;Republic of Kalmykia&quot;,&quot;Kalmykia&quot;],[&quot;Republic of Karelia&quot;,&quot;Karelia&quot;],[&quot;Republic of Khakassia&quot;,&quot;Khakassia&quot;],[&quot;Republic of Mordovia&quot;,&quot;Mordovia&quot;],[&quot;Republic of North Ossetia–Alania&quot;,&quot;North Ossetia-Alania&quot;],[&quot;Republic of Tatarstan&quot;,&quot;Tatarstan&quot;],[&quot;Rostov Oblast&quot;,&quot;Rostov&quot;],[&quot;Ryazan Oblast&quot;,&quot;Ryazan&quot;],[&quot;Saint Petersburg&quot;,&quot;Saint Petersburg&quot;],[&quot;Sakha Republic (Yakutia)&quot;,&quot;Sakha&quot;],[&quot;Sakhalin Oblast&quot;,&quot;Sakhalin&quot;],[&quot;Samara Oblast&quot;,&quot;Samara&quot;],[&quot;Saratov Oblast&quot;,&quot;Saratov&quot;],[&quot;Smolensk Oblast&quot;,&quot;Smolensk&quot;],[&quot;Stavropol Krai&quot;,&quot;Stavropol Krai&quot;],[&quot;Sverdlovsk Oblast&quot;,&quot;Sverdlovsk&quot;],[&quot;Tambov Oblast&quot;,&quot;Tambov&quot;],[&quot;Tomsk Oblast&quot;,&quot;Tomsk&quot;],[&quot;Tula Oblast&quot;,&quot;Tula&quot;],[&quot;Tver Oblast&quot;,&quot;Tver&quot;],[&quot;Tyumen Oblast&quot;,&quot;Tyumen&quot;],[&quot;Tyva Republic&quot;,&quot;Tuva&quot;],[&quot;Udmurtia&quot;,&quot;Udmurt&quot;],[&quot;Ulyanovsk Oblast&quot;,&quot;Ulyanovsk&quot;],[&quot;Vladimir Oblast&quot;,&quot;Vladimir&quot;],[&quot;Volgograd Oblast&quot;,&quot;Volgograd&quot;],[&quot;Vologda Oblast&quot;,&quot;Vologda&quot;],[&quot;Voronezh Oblast&quot;,&quot;Voronezh&quot;],[&quot;Yamalo-Nenets Autonomous Okrug&quot;,&quot;Yamalo-Nenets Okrug&quot;],[&quot;Yaroslavl Oblast&quot;,&quot;Yaroslavl&quot;],[&quot;Zabaykalsky Krai&quot;,&quot;Zabaykalsky Krai&quot;]]">Russia</option>
1818<option value="Rwanda" data-provinces="[]">Rwanda</option>
1819<option value="Samoa" data-provinces="[]">Samoa</option>
1820<option value="San Marino" data-provinces="[]">San Marino</option>
1821<option value="Sao Tome And Principe" data-provinces="[]">São Tomé & Príncipe</option>
1822<option value="Saudi Arabia" data-provinces="[]">Saudi Arabia</option>
1823<option value="Senegal" data-provinces="[]">Senegal</option>
1824<option value="Serbia" data-provinces="[]">Serbia</option>
1825<option value="Seychelles" data-provinces="[]">Seychelles</option>
1826<option value="Sierra Leone" data-provinces="[]">Sierra Leone</option>
1827<option value="Singapore" data-provinces="[]">Singapore</option>
1828<option value="Sint Maarten" data-provinces="[]">Sint Maarten</option>
1829<option value="Slovakia" data-provinces="[]">Slovakia</option>
1830<option value="Slovenia" data-provinces="[]">Slovenia</option>
1831<option value="Solomon Islands" data-provinces="[]">Solomon Islands</option>
1832<option value="Somalia" data-provinces="[]">Somalia</option>
1833<option value="South Africa" data-provinces="[[&quot;Eastern Cape&quot;,&quot;Eastern Cape&quot;],[&quot;Free State&quot;,&quot;Free State&quot;],[&quot;Gauteng&quot;,&quot;Gauteng&quot;],[&quot;KwaZulu-Natal&quot;,&quot;KwaZulu-Natal&quot;],[&quot;Limpopo&quot;,&quot;Limpopo&quot;],[&quot;Mpumalanga&quot;,&quot;Mpumalanga&quot;],[&quot;North West&quot;,&quot;North West&quot;],[&quot;Northern Cape&quot;,&quot;Northern Cape&quot;],[&quot;Western Cape&quot;,&quot;Western Cape&quot;]]">South Africa</option>
1834<option value="South Georgia And The South Sandwich Islands" data-provinces="[]">South Georgia & South Sandwich Islands</option>
1835<option value="South Korea" data-provinces="[[&quot;Busan&quot;,&quot;Busan&quot;],[&quot;Chungbuk&quot;,&quot;North Chungcheong&quot;],[&quot;Chungnam&quot;,&quot;South Chungcheong&quot;],[&quot;Daegu&quot;,&quot;Daegu&quot;],[&quot;Daejeon&quot;,&quot;Daejeon&quot;],[&quot;Gangwon&quot;,&quot;Gangwon&quot;],[&quot;Gwangju&quot;,&quot;Gwangju City&quot;],[&quot;Gyeongbuk&quot;,&quot;North Gyeongsang&quot;],[&quot;Gyeonggi&quot;,&quot;Gyeonggi&quot;],[&quot;Gyeongnam&quot;,&quot;South Gyeongsang&quot;],[&quot;Incheon&quot;,&quot;Incheon&quot;],[&quot;Jeju&quot;,&quot;Jeju&quot;],[&quot;Jeonbuk&quot;,&quot;North Jeolla&quot;],[&quot;Jeonnam&quot;,&quot;South Jeolla&quot;],[&quot;Sejong&quot;,&quot;Sejong&quot;],[&quot;Seoul&quot;,&quot;Seoul&quot;],[&quot;Ulsan&quot;,&quot;Ulsan&quot;]]">South Korea</option>
1836<option value="South Sudan" data-provinces="[]">South Sudan</option>
1837<option value="Spain" data-provinces="[[&quot;A Coruña&quot;,&quot;A Coruña&quot;],[&quot;Albacete&quot;,&quot;Albacete&quot;],[&quot;Alicante&quot;,&quot;Alicante&quot;],[&quot;Almería&quot;,&quot;Almería&quot;],[&quot;Asturias&quot;,&quot;Asturias Province&quot;],[&quot;Badajoz&quot;,&quot;Badajoz&quot;],[&quot;Balears&quot;,&quot;Balears Province&quot;],[&quot;Barcelona&quot;,&quot;Barcelona&quot;],[&quot;Burgos&quot;,&quot;Burgos&quot;],[&quot;Cantabria&quot;,&quot;Cantabria Province&quot;],[&quot;Castellón&quot;,&quot;Castellón&quot;],[&quot;Ceuta&quot;,&quot;Ceuta&quot;],[&quot;Ciudad Real&quot;,&quot;Ciudad Real&quot;],[&quot;Cuenca&quot;,&quot;Cuenca&quot;],[&quot;Cáceres&quot;,&quot;Cáceres&quot;],[&quot;Cádiz&quot;,&quot;Cádiz&quot;],[&quot;Córdoba&quot;,&quot;Córdoba&quot;],[&quot;Girona&quot;,&quot;Girona&quot;],[&quot;Granada&quot;,&quot;Granada&quot;],[&quot;Guadalajara&quot;,&quot;Guadalajara&quot;],[&quot;
1837Guipúzcoa&quot;,&quot;Gipuzkoa&quot;],[&quot;Huelva&quot;,&quot;Huelva&quot;],[&quot;Huesca&quot;,&quot;Huesca&quot;],[&quot;Jaén&quot;,&quot;Jaén&quot;],[&quot;La Rioja&quot;,&quot;La Rioja Province&quot;],[&quot;Las Palmas&quot;,&quot;Las Palmas&quot;],[&quot;León&quot;,&quot;León&quot;],[&quot;Lleida&quot;,&quot;Lleida&quot;],[&quot;Lugo&quot;,&quot;Lugo&quot;],[&quot;Madrid&quot;,&quot;Madrid Province&quot;],[&quot;Melilla&quot;,&quot;Melilla&quot;],[&quot;Murcia&quot;,&quot;Murcia&quot;],[&quot;Málaga&quot;,&quot;Málaga&quot;],[&quot;Navarra&quot;,&quot;Navarra&quot;],[&quot;Ourense&quot;,&quot;Ourense&quot;],[&quot;Palencia&quot;,&quot;Palencia&quot;],[&quot;Pontevedra&quot;,&quot;Pontevedra&quot;],[&quot;Salamanca&quot;,&quot;Salamanca&quot;],[&quot;Santa Cruz de Tenerife&quot;,&quot;Santa Cruz de Tenerife&quot;],[&quot;Segovia&quot;,&quot;Segovia&quot;],[&quot;Sevilla&quot;,&quot;Seville&quot;],[&quot;Soria&quot;,&quot;Soria&quot;],[&quot;Tarragona&quot;,&quot;Tarragona&quot;],[&quot;Teruel&quot;,&quot;Teruel&quot;],[&quot;Toledo&quot;,&quot;Toledo&quot;],[&quot;Valencia&quot;,&quot;Valencia&quot;],[&quot;Valladolid&quot;,&quot;Valladolid&quot;],[&quot;Vizcaya&quot;,&quot;Biscay&quot;],[&quot;Zamora&quot;,&quot;Zamora&quot;],[&quot;Zaragoza&quot;,&quot;Zaragoza&quot;],[&quot;Álava&quot;,&quot;Álava&quot;],[&quot;Ávila&quot;,&quot;Ávila&quot;]]">Spain</option>
1838<option value="Sri Lanka" data-provinces="[]">Sri Lanka</option>
1839<option value="Saint Barthélemy" data-provinces="[]">St. Barthélemy</option>
1840<option value="Saint Helena" data-provinces="[]">St. Helena</option>
1841<option value="Saint Kitts And Nevis" data-provinces="[]">St. Kitts & Nevis</option>
1842<option value="Saint Lucia" data-provinces="[]">St. Lucia</option>
1843<option value="Saint Martin" data-provinces="[]">St. Martin</option>
1844<option value="Saint Pierre And Miquelon" data-provinces="[]">St. Pierre & Miquelon</option>
1845<option value="St. Vincent" data-provinces="[]">St. Vincent & Grenadines</option>
1846<option value="Sudan" data-provinces="[]">Sudan</option>
1847<option value="Suriname" data-provinces="[]">Suriname</option>
1848<option value="Svalbard And Jan Mayen" data-provinces="[]">Svalbard & Jan Mayen</option>
1849<option value="Sweden" data-provinces="[]">Sweden</option>
1850<option value="Switzerland" data-provinces="[]">Switzerland</option>
1851<option value="Taiwan" data-provinces="[]">Taiwan</option>
1852<option value="Tajikistan" data-provinces="[]">Tajikistan</option>
1853<option value="Tanzania, United Republic Of" data-provinces="[]">Tanzania</option>
1854<option value="Thailand" data-provinces="[[&quot;Amnat Charoen&quot;,&quot;Amnat Charoen&quot;],[&quot;Ang Thong&quot;,&quot;Ang Thong&quot;],[&quot;Bangkok&quot;,&quot;Bangkok&quot;],[&quot;Bueng Kan&quot;,&quot;Bueng Kan&quot;],[&quot;Buriram&quot;,&quot;Buri Ram&quot;],[&quot;Chachoengsao&quot;,&quot;Chachoengsao&quot;],[&quot;Chai Nat&quot;,&quot;Chai Nat&quot;],[&quot;Chaiyaphum&quot;,&quot;Chaiyaphum&quot;],[&quot;Chanthaburi&quot;,&quot;Chanthaburi&quot;],[&quot;Chiang Mai&quot;,&quot;Chiang Mai&quot;],[&quot;Chiang Rai&quot;,&quot;Chiang Rai&quot;],[&quot;Chon Buri&quot;,&quot;Chon Buri&quot;],[&quot;Chumphon&quot;,&quot;Chumphon&quot;],[&quot;Kalasin&quot;,&quot;Kalasin&quot;],[&quot;Kamphaeng Phet&quot;,&quot;Kamphaeng Phet&quot;],[&quot;Kanchanaburi&quot;,&quot;Kanchanaburi&quot;],[&quot;Khon Kaen&quot;,&quot;Khon Kaen&quot;],[&quot;Krabi&quot;,&quot;Krabi&quot;],[&quot;Lampang&quot;,&quot;Lampang&quot;],[&quot;Lamphun&quot;,&quot;Lamphun&quot;],[&quot;Loei&quot;,&quot;Loei&quot;],[&quot;Lopburi&quot;,&quot;Lopburi&quot;],[&quot;Mae Hong Son&quot;,&quot;Mae Hong Son&quot;],[&quot;Maha Sarakham&quot;,&quot;Maha Sarakham&quot;],[&quot;Mukdahan&quot;,&quot;Mukdahan&quot;],[&quot;Nakhon Nayok&quot;,&quot;Nakhon Nayok&quot;],[&quot;Nakhon Pathom&quot;,&quot;Nakhon Pathom&quot;],[&quot;Nakhon Phanom&quot;,&quot;Nakhon Phanom&quot;],[&quot;Nakhon Ratchasima&quot;,&quot;Nakhon Ratchasima&quot;],[&quot;Nakhon Sawan&quot;,&quot;Nakhon Sawan&quot;],[&quot;Nakhon Si Thammarat&quot;,&quot;Nakhon Si Thammarat&quot;],[&quot;Nan&quot;,&quot;Nan&quot;],[&quot;Narathiwat&quot;,&quot;Narathiwat&quot;],[&quot;Nong Bua Lam Phu&quot;,&quot;Nong Bua Lam Phu&quot;],[&quot;Nong Khai&quot;,&quot;Nong Khai&quot;],[&quot;Nonthaburi&quot;,&quot;Nonthaburi&quot;],[&quot;Pathum Thani&quot;,&quot;Pathum Thani&quot;],[&quot;Pattani&quot;,&quot;Pattani&quot;],[&quot;Pattaya&quot;,&quot;Pattaya&quot;],[&quot;Phangnga&quot;,&quot;Phang Nga&quot;],[&quot;Phatthalung&quot;,&quot;Phatthalung&quot;],[&quot;Phayao&quot;,&quot;Phayao&quot;],[&quot;Phetchabun&quot;,&quot;Phetchabun&quot;],[&quot;Phetchaburi&quot;,&quot;Phetchaburi&quot;],[&quot;Phichit&quot;,&quot;Phichit&quot;],[&quot;Phitsanulok&quot;,&quot;Phitsanulok&quot;],[&quot;
1854Phra Nakhon Si Ayutthaya&quot;,&quot;Phra Nakhon Si Ayutthaya&quot;],[&quot;Phrae&quot;,&quot;Phrae&quot;],[&quot;Phuket&quot;,&quot;Phuket&quot;],[&quot;Prachin Buri&quot;,&quot;Prachin Buri&quot;],[&quot;Prachuap Khiri Khan&quot;,&quot;Prachuap Khiri Khan&quot;],[&quot;Ranong&quot;,&quot;Ranong&quot;],[&quot;Ratchaburi&quot;,&quot;Ratchaburi&quot;],[&quot;Rayong&quot;,&quot;Rayong&quot;],[&quot;Roi Et&quot;,&quot;Roi Et&quot;],[&quot;Sa Kaeo&quot;,&quot;Sa Kaeo&quot;],[&quot;Sakon Nakhon&quot;,&quot;Sakon Nakhon&quot;],[&quot;Samut Prakan&quot;,&quot;Samut Prakan&quot;],[&quot;Samut Sakhon&quot;,&quot;Samut Sakhon&quot;],[&quot;Samut Songkhram&quot;,&quot;Samut Songkhram&quot;],[&quot;Saraburi&quot;,&quot;Saraburi&quot;],[&quot;Satun&quot;,&quot;Satun&quot;],[&quot;Sing Buri&quot;,&quot;Sing Buri&quot;],[&quot;Sisaket&quot;,&quot;Si Sa Ket&quot;],[&quot;Songkhla&quot;,&quot;Songkhla&quot;],[&quot;Sukhothai&quot;,&quot;Sukhothai&quot;],[&quot;Suphan Buri&quot;,&quot;Suphanburi&quot;],[&quot;Surat Thani&quot;,&quot;Surat Thani&quot;],[&quot;Surin&quot;,&quot;Surin&quot;],[&quot;Tak&quot;,&quot;Tak&quot;],[&quot;Trang&quot;,&quot;Trang&quot;],[&quot;Trat&quot;,&quot;Trat&quot;],[&quot;Ubon Ratchathani&quot;,&quot;Ubon Ratchathani&quot;],[&quot;Udon Thani&quot;,&quot;Udon Thani&quot;],[&quot;Uthai Thani&quot;,&quot;Uthai Thani&quot;],[&quot;Uttaradit&quot;,&quot;Uttaradit&quot;],[&quot;Yala&quot;,&quot;Yala&quot;],[&quot;Yasothon&quot;,&quot;Yasothon&quot;]]">Thailand</option>
1855<option value="Timor Leste" data-provinces="[]">Timor-Leste</option>
1856<option value="Togo" data-provinces="[]">Togo</option>
1857<option value="Tokelau" data-provinces="[]">Tokelau</option>
1858<option value="Tonga" data-provinces="[]">Tonga</option>
1859<option value="Trinidad and Tobago" data-provinces="[]">Trinidad & Tobago</option>
1860<option value="Tristan da Cunha" data-provinces="[]">Tristan da Cunha</option>
1861<option value="Tunisia" data-provinces="[]">Tunisia</option>
1862<option value="Turkey" data-provinces="[]">Türkiye</option>
1863<option value="Turkmenistan" data-provinces="[]">Turkmenistan</option>
1864<option value="Turks and Caicos Islands" data-provinces="[]">Turks & Caicos Islands</option>
1865<option value="Tuvalu" data-provinces="[]">Tuvalu</option>
1866<option value="United States Minor Outlying Islands" data-provinces="[]">U.S. Outlying Islands</option>
1867<option value="Uganda" data-provinces="[]">Uganda</option>
1868<option value="Ukraine" data-provinces="[]">Ukraine</option>
1869<option value="United Arab Emirates" data-provinces="[[&quot;Abu Dhabi&quot;,&quot;Abu Dhabi&quot;],[&quot;Ajman&quot;,&quot;Ajman&quot;],[&quot;Dubai&quot;,&quot;Dubai&quot;],[&quot;Fujairah&quot;,&quot;Fujairah&quot;],[&quot;Ras al-Khaimah&quot;,&quot;Ras al-Khaimah&quot;],[&quot;Sharjah&quot;,&quot;Sharjah&quot;],[&quot;Umm al-Quwain&quot;,&quot;Umm al-Quwain&quot;]]">United Arab Emirates</option>
1870<option value="United Kingdom" data-provinces="[[&quot;British Forces&quot;,&quot;British Forces&quot;],[&quot;England&quot;,&quot;England&quot;],[&quot;Northern Ireland&quot;,&quot;Northern Ireland&quot;],[&quot;Scotland&quot;,&quot;Scotland&quot;],[&quot;Wales&quot;,&quot;Wales&quot;]]">United Kingdom</option>
1871<option value="United States" data-provinces="[[&quot;Alabama&quot;,&quot;Alabama&quot;],[&quot;Alaska&quot;,&quot;Alaska&quot;],[&quot;American Samoa&quot;,&quot;American Samoa&quot;],[&quot;Arizona&quot;,&quot;Arizona&quot;],[&quot;Arkansas&quot;,&quot;Arkansas&quot;],[&quot;Armed Forces Americas&quot;,&quot;Armed Forces Americas&quot;],[&quot;Armed Forces Europe&quot;,&quot;Armed Forces Europe&quot;],[&quot;Armed Forces Pacific&quot;,&quot;Armed Forces Pacific&quot;],[&quot;California&quot;,&quot;California&quot;],[&quot;Colorado&quot;,&quot;Colorado&quot;],[&quot;Connecticut&quot;,&quot;Connecticut&quot;],[&quot;Delaware&quot;,&quot;Delaware&quot;],[&quot;District of Columbia&quot;,&quot;Washington DC&quot;],[&quot;Federated States of Micronesia&quot;,&quot;Micronesia&quot;],[&quot;Florida&quot;,&quot;Florida&quot;],[&quot;Georgia&quot;,&quot;Georgia&quot;],[&quot;Guam&quot;,&quot;Guam&quot;],[&quot;Hawaii&quot;,&quot;Hawaii&quot;],[&quot;Idaho&quot;,&quot;Idaho&quot;],[&quot;Illinois&quot;,&quot;Illinois&quot;],[&quot;Indiana&quot;,&quot;Indiana&quot;],[&quot;Iowa&quot;,&quot;Iowa&quot;],[&quot;Kansas&quot;,&quot;Kansas&quot;],[&quot;Kentucky&quot;,&quot;Kentucky&quot;],[&quot;Louisiana&quot;,&quot;Louisiana&quot;],[&quot;Maine&quot;,&quot;Maine&quot;],[&quot;Marshall Islands&quot;,&quot;Marshall Islands&quot;],[&quot;Maryland&quot;,&quot;Maryland&quot;],[&quot;Massachusetts&quot;,&quot;Massachusetts&quot;],[&quot;Michigan&quot;,&quot;Michigan&quot;],[&quot;Minnesota&quot;,&quot;Minnesota&quot;],[&quot;Mississippi&quot;,&quot;Mississippi&quot;],[&quot;Missouri&quot;,&quot;Missouri&quot;],[&quot;Montana&quot;,&quot;Montana&quot;],[&quot;Nebraska&quot;,&quot;Nebraska&quot;],[&quot;Nevada&quot;,&quot;Nevada&quot;],[&quot;New Hampshire&quot;,&quot;New Hampshire&quot;],[&quot;New Jersey&quot;,&quot;New Jersey&quot;],[&quot;New Mexico&quot;,&quot;New Mexico&quot;],[&quot;New York&quot;,&quot;New York&quot;],[&quot;North Carolina&quot;,&quot;North Carolina&quot;],[&quot;North Dakota&quot;,&quot;North Dakota&quot;],[&quot;Northern Mariana Islands&quot;,&quot;Northern Mariana Islands&quot;],[&quot;Ohio&quot;,&quot;Ohio&quot;],[&quot;Oklahoma&quot;,&quot;Oklahoma&quot;],[&quot;Oregon&quot;,&quot;Oregon&quot;],[&quot;Palau&quot;,&quot;Palau&quot;],[&quot;Pennsylvania&quot;,&quot;Pennsylvania&quot;],[&quot;Puerto Rico&quot;,&quot;Puerto Rico&quot;],[&quot;Rhode Island&quot;,&quot;Rhode Island&quot;],[&quot;South Carolina&quot;,&quot;South Carolina&quot;],[&quot;South Dakota&quot;,&quot;South Dakota&quot;],[&quot;Tennessee&quot;,&quot;Tennessee&quot;],[&quot;Texas&quot;,&quot;Texas&quot;],[&quot;Utah&quot;,&quot;Utah&quot;],[&quot;Vermont&quot;,&quot;Vermont&quot;],[&quot;Virgin Islands&quot;,&quot;U.S. Virgin Islands&quot;],[&quot;Virginia&quot;,&quot;Virginia&quot;],[&quot;Washington&quot;,&quot;Washington&quot;],[&quot;West Virginia&quot;,&quot;West Virginia&quot;],[&quot;Wisconsin&quot;,&quot;Wisconsin&quot;],[&quot;Wyoming&quot;,&quot;Wyoming&quot;]]">United States</option>
1872<option value="Uruguay" data-provinces="[[&quot;Artigas&quot;,&quot;Artigas&quot;],[&quot;Canelones&quot;,&quot;Canelones&quot;],[&quot;Cerro Largo&quot;,&quot;Cerro Largo&quot;],[&quot;Colonia&quot;,&quot;Colonia&quot;],[&quot;Durazno&quot;,&quot;Durazno&quot;],[&quot;Flores&quot;,&quot;Flores&quot;],[&quot;Florida&quot;,&quot;Florida&quot;],[&quot;Lavalleja&quot;,&quot;Lavalleja&quot;],[&quot;Maldonado&quot;,&quot;Maldonado&quot;],[&quot;Montevideo&quot;,&quot;Montevideo&quot;],[&quot;Paysandú&quot;,&quot;Paysandú&quot;],[&quot;Rivera&quot;,&quot;Rivera&quot;],[&quot;Rocha&quot;,&quot;Rocha&quot;],[&quot;Río Negro&quot;,&quot;Río Negro&quot;],[&quot;Salto&quot;,&quot;Salto&quot;],[&quot;San José&quot;,&quot;San José&quot;],[&quot;Soriano&quot;,&quot;Soriano&quot;],[&quot;Tacuarembó&quot;,&quot;Tacuarembó&quot;],[&quot;Treinta y Tres&quot;,&quot;Treinta y Tres&quot;]]">Uruguay</option>
1873<option value="Uzbekistan" data-provinces="[]">Uzbekistan</option>
1874<option value="Vanuatu" data-provinces="[]">Vanuatu</option>
1875<option value="Holy See (Vatican City State)" data-provinces="[]">Vatican City</option>
1876<option value="Venezuela" data-provinces="[[&quot;Amazonas&quot;,&quot;Amazonas&quot;],[&quot;Anzoátegui&quot;,&quot;Anzoátegui&quot;],[&quot;Apure&quot;,&quot;Apure&quot;],[&quot;Aragua&quot;,&quot;Aragua&quot;],[&quot;Barinas&quot;,&quot;Barinas&quot;],[&quot;Bolívar&quot;,&quot;Bolívar&quot;],[&quot;Carabobo&quot;,&quot;Carabobo&quot;],[&quot;Cojedes&quot;,&quot;Cojedes&quot;],[&quot;Delta Amacuro&quot;,&quot;Delta Amacuro&quot;],[&quot;Dependencias Federales&quot;,&quot;Federal Dependencies&quot;],[&quot;Distrito Capital&quot;,&quot;Capital&quot;],[&quot;Falcón&quot;,&quot;Falcón&quot;],[&quot;Guárico&quot;,&quot;Guárico&quot;],[&quot;La Guaira&quot;,&quot;Vargas&quot;],[&quot;Lara&quot;,&quot;Lara&quot;],[&quot;Miranda&quot;,&quot;Miranda&quot;],[&quot;Monagas&quot;,&quot;Monagas&quot;],[&quot;Mérida&quot;,&quot;Mérida&quot;],[&quot;Nueva Esparta&quot;,&quot;Nueva Esparta&quot;],[&quot;Portuguesa&quot;,&quot;Portuguesa&quot;],[&quot;Sucre&quot;,&quot;Sucre&quot;],[&quot;Trujillo&quot;,&quot;Trujillo&quot;],[&quot;Táchira&quot;,&quot;Táchira&quot;],[&quot;Yaracuy&quot;,&quot;Yaracuy&quot;],[&quot;Zulia&quot;,&quot;Zulia&quot;]]">Venezuela</option>
1877<option value="Vietnam" data-provinces="[]">Vietnam</option>
1878<option value="Wallis And Futuna" data-provinces="[]">Wallis & Futuna</option>
1879<option value="Western Sahara" data-provinces="[]">Western Sahara</option>
1880<option value="Yemen" data-provinces="[]">Yemen</option>
1881<option value="Zambia" data-provinces="[]">Zambia</option>
1882<option value="Zimbabwe" data-provinces="[]">Zimbabwe</option>`;
1883  window.CF.shippingZoneCountryOptionTags = `<option value="United States" data-provinces="[[&quot;Alabama&quot;,&quot;Alabama&quot;],[&quot;Alaska&quot;,&quot;Alaska&quot;],[&quot;American Samoa&quot;,&quot;American Samoa&quot;],[&quot;Arizona&quot;,&quot;Arizona&quot;],[&quot;Arkansas&quot;,&quot;Arkansas&quot;],[&quot;Armed Forces Americas&quot;,&quot;Armed Forces Americas&quot;],[&quot;Armed Forces Europe&quot;,&quot;Armed Forces Europe&quot;],[&quot;Armed Forces Pacific&quot;,&quot;Armed Forces Pacific&quot;],[&quot;California&quot;,&quot;California&quot;],[&quot;Colorado&quot;,&quot;Colorado&quot;],[&quot;Connecticut&quot;,&quot;Connecticut&quot;],[&quot;Delaware&quot;,&quot;Delaware&quot;],[&quot;District of Columbia&quot;,&quot;Washington DC&quot;],[&quot;Federated States of Micronesia&quot;,&quot;Micronesia&quot;],[&quot;Florida&quot;,&quot;Florida&quot;],[&quot;Georgia&quot;,&quot;Georgia&quot;],[&quot;Guam&quot;,&quot;Guam&quot;],[&quot;Hawaii&quot;,&quot;Hawaii&quot;],[&quot;Idaho&quot;,&quot;Idaho&quot;],[&quot;Illinois&quot;,&quot;Illinois&quot;],[&quot;Indiana&quot;,&quot;Indiana&quot;],[&quot;Iowa&quot;,&quot;Iowa&quot;],[&quot;Kansas&quot;,&quot;Kansas&quot;],[&quot;Kentucky&quot;,&quot;Kentucky&quot;],[&quot;Louisiana&quot;,&quot;Louisiana&quot;],[&quot;Maine&quot;,&quot;Maine&quot;],[&quot;Marshall Islands&quot;,&quot;Marshall Islands&quot;],[&quot;Maryland&quot;,&quot;Maryland&quot;],[&quot;Massachusetts&quot;,&quot;Massachusetts&quot;],[&quot;Michigan&quot;,&quot;Michigan&quot;],[&quot;Minnesota&quot;,&quot;Minnesota&quot;],[&quot;Mississippi&quot;,&quot;Mississippi&quot;],[&quot;Missouri&quot;,&quot;Missouri&quot;],[&quot;Montana&quot;,&quot;Montana&quot;],[&quot;Nebraska&quot;,&quot;Nebraska&quot;],[&quot;Nevada&quot;,&quot;Nevada&quot;],[&quot;New Hampshire&quot;,&quot;New Hampshire&quot;],[&quot;New Jersey&quot;,&quot;New Jersey&quot;],[&quot;New Mexico&quot;,&quot;New Mexico&quot;],[&quot;New York&quot;,&quot;New York&quot;],[&quot;North Carolina&quot;,&quot;North Carolina&quot;],[&quot;North Dakota&quot;,&quot;North Dakota&quot;],[&quot;Northern Mariana Islands&quot;,&quot;Northern Mariana Islands&quot;],[&quot;Ohio&quot;,&quot;Ohio&quot;],[&quot;Oklahoma&quot;,&quot;Oklahoma&quot;],[&quot;Oregon&quot;,&quot;Oregon&quot;],[&quot;Palau&quot;,&quot;Palau&quot;],[&quot;Pennsylvania&quot;,&quot;Pennsylvania&quot;],[&quot;Puerto Rico&quot;,&quot;Puerto Rico&quot;],[&quot;Rhode Island&quot;,&quot;Rhode Island&quot;],[&quot;South Carolina&quot;,&quot;South Carolina&quot;],[&quot;South Dakota&quot;,&quot;South Dakota&quot;],[&quot;Tennessee&quot;,&quot;Tennessee&quot;],[&quot;Texas&quot;,&quot;Texas&quot;],[&quot;Utah&quot;,&quot;Utah&quot;],[&quot;Vermont&quot;,&quot;Vermont&quot;],[&quot;Virgin Islands&quot;,&quot;U.S. Virgin Islands&quot;],[&quot;Virginia&quot;,&quot;Virginia&quot;],[&quot;Washington&quot;,&quot;Washington&quot;],[&quot;West Virginia&quot;,&quot;West Virginia&quot;],[&quot;Wisconsin&quot;,&quot;Wisconsin&quot;],[&quot;Wyoming&quot;,&quot;Wyoming&quot;]]">United States</option>
1884<option value="---" data-provinces="[]">---</option>
1885<option value="Afghanistan" data-provinces="[]">Afghanistan</option>
1886<option value="Aland Islands" data-provinces="[]">Åland Islands</option>
1887<option value="Albania" data-provinces="[]">Albania</option>
1888<option value="Algeria" data-provinces="[]">Algeria</option>
1889<option value="Andorra" data-provinces="[]">Andorra</option>
1890<option value="Angola" data-provinces="[]">Angola</option>
1891<option value="Anguilla" data-provinces="[]">Anguilla</option>
1892<option value="Antigua And Barbuda" data-provinces="[]">Antigua & Barbuda</option>
1893<option value="Argentina" data-provinces="[[&quot;Buenos Aires&quot;,&quot;Buenos Aires Province&quot;],[&quot;Catamarca&quot;,&quot;Catamarca&quot;],[&quot;Chaco&quot;,&quot;Chaco&quot;],[&quot;Chubut&quot;,&quot;Chubut&quot;],[&quot;Ciudad Autónoma de Buenos Aires&quot;,&quot;Buenos Aires (Autonomous City)&quot;],[&quot;Corrientes&quot;,&quot;Corrientes&quot;],[&quot;Córdoba&quot;,&quot;Córdoba&quot;],[&quot;Entre Ríos&quot;,&quot;Entre Ríos&quot;],[&quot;Formosa&quot;,&quot;Formosa&quot;],[&quot;Jujuy&quot;,&quot;Jujuy&quot;],[&quot;La Pampa&quot;,&quot;La Pampa&quot;],[&quot;La Rioja&quot;,&quot;La Rioja&quot;],[&quot;
1893Mendoza&quot;,&quot;Mendoza&quot;],[&quot;Misiones&quot;,&quot;Misiones&quot;],[&quot;Neuquén&quot;,&quot;Neuquén&quot;],[&quot;Río Negro&quot;,&quot;Río Negro&quot;],[&quot;Salta&quot;,&quot;Salta&quot;],[&quot;San Juan&quot;,&quot;San Juan&quot;],[&quot;San Luis&quot;,&quot;San Luis&quot;],[&quot;Santa Cruz&quot;,&quot;Santa Cruz&quot;],[&quot;Santa Fe&quot;,&quot;Santa Fe&quot;],[&quot;Santiago Del Estero&quot;,&quot;Santiago del Estero&quot;],[&quot;Tierra Del Fuego&quot;,&quot;Tierra del Fuego&quot;],[&quot;Tucumán&quot;,&quot;Tucumán&quot;]]">Argentina</option>
1894<option value="Armenia" data-provinces="[]">Armenia</option>
1895<option value="Aruba" data-provinces="[]">Aruba</option>
1896<option value="Ascension Island" data-provinces="[]">Ascension Island</option>
1897<option value="Australia" data-provinces="[[&quot;Australian Capital Territory&quot;,&quot;Australian Capital Territory&quot;],[&quot;New South Wales&quot;,&quot;New South Wales&quot;],[&quot;Northern Territory&quot;,&quot;Northern Territory&quot;],[&quot;Queensland&quot;,&quot;Queensland&quot;],[&quot;South Australia&quot;,&quot;South Australia&quot;],[&quot;Tasmania&quot;,&quot;Tasmania&quot;],[&quot;Victoria&quot;,&quot;Victoria&quot;],[&quot;Western Australia&quot;,&quot;Western Australia&quot;]]">Australia</option>
1898<option value="Austria" data-provinces="[]">Austria</option>
1899<option value="Azerbaijan" data-provinces="[]">Azerbaijan</option>
1900<option value="Bahamas" data-provinces="[]">Bahamas</option>
1901<option value="Bahrain" data-provinces="[]">Bahrain</option>
1902<option value="Bangladesh" data-provinces="[]">Bangladesh</option>
1903<option value="Barbados" data-provinces="[]">Barbados</option>
1904<option value="Belarus" data-provinces="[]">Belarus</option>
1905<option value="Belgium" data-provinces="[]">Belgium</option>
1906<option value="Belize" data-provinces="[]">Belize</option>
1907<option value="Benin" data-provinces="[]">Benin</option>
1908<option value="Bermuda" data-provinces="[]">Bermuda</option>
1909<option value="Bhutan" data-provinces="[]">Bhutan</option>
1910<option value="Bolivia" data-provinces="[]">Bolivia</option>
1911<option value="Bosnia And Herzegovina" data-provinces="[]">Bosnia & Herzegovina</option>
1912<option value="Botswana" data-provinces="[]">Botswana</option>
1913<option value="Brazil" data-provinces="[[&quot;Acre&quot;,&quot;Acre&quot;],[&quot;Alagoas&quot;,&quot;Alagoas&quot;],[&quot;Amapá&quot;,&quot;Amapá&quot;],[&quot;Amazonas&quot;,&quot;Amazonas&quot;],[&quot;Bahia&quot;,&quot;Bahia&quot;],[&quot;Ceará&quot;,&quot;Ceará&quot;],[&quot;Distrito Federal&quot;,&quot;Federal District&quot;],[&quot;Espírito Santo&quot;,&quot;Espírito Santo&quot;],[&quot;Goiás&quot;,&quot;Goiás&quot;],[&quot;Maranhão&quot;,&quot;Maranhão&quot;],[&quot;Mato Grosso&quot;,&quot;Mato Grosso&quot;],[&quot;Mato Grosso do Sul&quot;,&quot;Mato Grosso do Sul&quot;],[&quot;Minas Gerais&quot;,&quot;Minas Gerais&quot;],[&quot;Paraná&quot;,&quot;Paraná&quot;],[&quot;Paraíba&quot;,&quot;Paraíba&quot;],[&quot;Pará&quot;,&quot;Pará&quot;],[&quot;Pernambuco&quot;,&quot;Pernambuco&quot;],[&quot;Piauí&quot;,&quot;Piauí&quot;],[&quot;Rio Grande do Norte&quot;,&quot;Rio Grande do Norte&quot;],[&quot;Rio Grande do Sul&quot;,&quot;Rio Grande do Sul&quot;],[&quot;Rio de Janeiro&quot;,&quot;Rio de Janeiro&quot;],[&quot;Rondônia&quot;,&quot;Rondônia&quot;],[&quot;Roraima&quot;,&quot;Roraima&quot;],[&quot;Santa Catarina&quot;,&quot;Santa Catarina&quot;],[&quot;Sergipe&quot;,&quot;Sergipe&quot;],[&quot;São Paulo&quot;,&quot;São Paulo&quot;],[&quot;Tocantins&quot;,&quot;Tocantins&quot;]]">Brazil</option>
1914<option value="British Indian Ocean Territory" data-provinces="[]">British Indian Ocean Territory</option>
1915<option value="Virgin Islands, British" data-provinces="[]">British Virgin Islands</option>
1916<option value="Brunei" data-provinces="[]">Brunei</option>
1917<option value="Bulgaria" data-provinces="[]">Bulgaria</option>
1918<option value="Burkina Faso" data-provinces="[]">Burkina Faso</option>
1919<option value="Burundi" data-provinces="[]">Burundi</option>
1920<option value="Cambodia" data-provinces="[]">Cambodia</option>
1921<option value="Republic of Cameroon" data-provinces="[]">Cameroon</option>
1922<option value="Canada" data-provinces="[[&quot;Alberta&quot;,&quot;Alberta&quot;],[&quot;British Columbia&quot;,&quot;British Columbia&quot;],[&quot;Manitoba&quot;,&quot;Manitoba&quot;],[&quot;New Brunswick&quot;,&quot;New Brunswick&quot;],[&quot;Newfoundland and Labrador&quot;,&quot;Newfoundland and Labrador&quot;],[&quot;Northwest Territories&quot;,&quot;Northwest Territories&quot;],[&quot;Nova Scotia&quot;,&quot;Nova Scotia&quot;],[&quot;Nunavut&quot;,&quot;Nunavut&quot;],[&quot;Ontario&quot;,&quot;Ontario&quot;],[&quot;Prince Edward Island&quot;,&quot;Prince Edward Island&quot;],[&quot;Quebec&quot;,&quot;Quebec&quot;],[&quot;Saskatchewan&quot;,&quot;Saskatchewan&quot;],[&quot;Yukon&quot;,&quot;Yukon&quot;]]">Canada</option>
1923<option value="Cape Verde" data-provinces="[]">Cape Verde</option>
1924<option value="Caribbean Netherlands" data-provinces="[]">Caribbean Netherlands</option>
1925<option value="Cayman Islands" data-provinces="[]">Cayman Islands</option>
1926<option value="Central African Republic" data-provinces="[]">Central African Republic</option>
1927<option value="Chad" data-provinces="[]">Chad</option>
1928<option value="Chile" data-provinces="[[&quot;Antofagasta&quot;,&quot;Antofagasta&quot;],[&quot;Araucanía&quot;,&quot;Araucanía&quot;],[&quot;Arica and Parinacota&quot;,&quot;
1928Arica y Parinacota&quot;],[&quot;Atacama&quot;,&quot;Atacama&quot;],[&quot;Aysén&quot;,&quot;Aysén&quot;],[&quot;Biobío&quot;,&quot;Bío Bío&quot;],[&quot;Coquimbo&quot;,&quot;Coquimbo&quot;],[&quot;Los Lagos&quot;,&quot;Los Lagos&quot;],[&quot;Los Ríos&quot;,&quot;Los Ríos&quot;],[&quot;Magallanes&quot;,&quot;Magallanes Region&quot;],[&quot;Maule&quot;,&quot;Maule&quot;],[&quot;O&#39;Higgins&quot;,&quot;Libertador General Bernardo O’Higgins&quot;],[&quot;Santiago&quot;,&quot;Santiago Metropolitan&quot;],[&quot;Tarapacá&quot;,&quot;Tarapacá&quot;],[&quot;Valparaíso&quot;,&quot;Valparaíso&quot;],[&quot;Ñuble&quot;,&quot;Ñuble&quot;]]">Chile</option>
1929<option value="China" data-provinces="[[&quot;Anhui&quot;,&quot;Anhui&quot;],[&quot;Beijing&quot;,&quot;Beijing&quot;],[&quot;Chongqing&quot;,&quot;Chongqing&quot;],[&quot;Fujian&quot;,&quot;Fujian&quot;],[&quot;Gansu&quot;,&quot;Gansu&quot;],[&quot;Guangdong&quot;,&quot;Guangdong&quot;],[&quot;Guangxi&quot;,&quot;Guangxi&quot;],[&quot;Guizhou&quot;,&quot;Guizhou&quot;],[&quot;Hainan&quot;,&quot;Hainan&quot;],[&quot;Hebei&quot;,&quot;Hebei&quot;],[&quot;Heilongjiang&quot;,&quot;Heilongjiang&quot;],[&quot;Henan&quot;,&quot;Henan&quot;],[&quot;Hubei&quot;,&quot;Hubei&quot;],[&quot;Hunan&quot;,&quot;Hunan&quot;],[&quot;Inner Mongolia&quot;,&quot;Inner Mongolia&quot;],[&quot;Jiangsu&quot;,&quot;Jiangsu&quot;],[&quot;Jiangxi&quot;,&quot;Jiangxi&quot;],[&quot;Jilin&quot;,&quot;Jilin&quot;],[&quot;Liaoning&quot;,&quot;Liaoning&quot;],[&quot;Ningxia&quot;,&quot;Ningxia&quot;],[&quot;Qinghai&quot;,&quot;Qinghai&quot;],[&quot;Shaanxi&quot;,&quot;Shaanxi&quot;],[&quot;Shandong&quot;,&quot;Shandong&quot;],[&quot;Shanghai&quot;,&quot;Shanghai&quot;],[&quot;Shanxi&quot;,&quot;Shanxi&quot;],[&quot;Sichuan&quot;,&quot;Sichuan&quot;],[&quot;Tianjin&quot;,&quot;Tianjin&quot;],[&quot;Xinjiang&quot;,&quot;Xinjiang&quot;],[&quot;Xizang&quot;,&quot;Tibet&quot;],[&quot;Yunnan&quot;,&quot;Yunnan&quot;],[&quot;Zhejiang&quot;,&quot;Zhejiang&quot;]]">China</option>
1930<option value="Christmas Island" data-provinces="[]">Christmas Island</option>
1931<option value="Cocos (Keeling) Islands" data-provinces="[]">Cocos (Keeling) Islands</option>
1932<option value="Colombia" data-provinces="[[&quot;Amazonas&quot;,&quot;Amazonas&quot;],[&quot;Antioquia&quot;,&quot;Antioquia&quot;],[&quot;Arauca&quot;,&quot;Arauca&quot;],[&quot;Atlántico&quot;,&quot;Atlántico&quot;],[&quot;Bogotá, D.C.&quot;,&quot;Capital District&quot;],[&quot;Bolívar&quot;,&quot;Bolívar&quot;],[&quot;Boyacá&quot;,&quot;Boyacá&quot;],[&quot;Caldas&quot;,&quot;Caldas&quot;],[&quot;Caquetá&quot;,&quot;Caquetá&quot;],[&quot;Casanare&quot;,&quot;Casanare&quot;],[&quot;Cauca&quot;,&quot;Cauca&quot;],[&quot;Cesar&quot;,&quot;Cesar&quot;],[&quot;Chocó&quot;,&quot;Chocó&quot;],[&quot;Cundinamarca&quot;,&quot;Cundinamarca&quot;],[&quot;Córdoba&quot;,&quot;Córdoba&quot;],[&quot;Guainía&quot;,&quot;Guainía&quot;],[&quot;Guaviare&quot;,&quot;Guaviare&quot;],[&quot;Huila&quot;,&quot;Huila&quot;],[&quot;La Guajira&quot;,&quot;La Guajira&quot;],[&quot;Magdalena&quot;,&quot;Magdalena&quot;],[&quot;Meta&quot;,&quot;Meta&quot;],[&quot;Nariño&quot;,&quot;Nariño&quot;],[&quot;Norte de Santander&quot;,&quot;Norte de Santander&quot;],[&quot;Putumayo&quot;,&quot;Putumayo&quot;],[&quot;Quindío&quot;,&quot;Quindío&quot;],[&quot;Risaralda&quot;,&quot;Risaralda&quot;],[&quot;San Andrés, Providencia y Santa Catalina&quot;,&quot;San Andrés \u0026 Providencia&quot;],[&quot;Santander&quot;,&quot;Santander&quot;],[&quot;Sucre&quot;,&quot;Sucre&quot;],[&quot;Tolima&quot;,&quot;Tolima&quot;],[&quot;Valle del Cauca&quot;,&quot;Valle del Cauca&quot;],[&quot;Vaupés&quot;,&quot;Vaupés&quot;],[&quot;Vichada&quot;,&quot;Vichada&quot;]]">Colombia</option>
1933<option value="Comoros" data-provinces="[]">Comoros</option>
1934<option value="Congo" data-provinces="[]">Congo - Brazzaville</option>
1935<option value="Congo, The Democratic Republic Of The" data-provinces="[]">Congo - Kinshasa</option>
1936<option value="Cook Islands" data-provinces="[]">Cook Islands</option>
1937<option value="Costa Rica" data-provinces="[[&quot;Alajuela&quot;,&quot;Alajuela&quot;],[&quot;Cartago&quot;,&quot;Cartago&quot;],[&quot;Guanacaste&quot;,&quot;Guanacaste&quot;],[&quot;Heredia&quot;,&quot;Heredia&quot;],[&quot;Limón&quot;,&quot;Limón&quot;],[&quot;Puntarenas&quot;,&quot;Puntarenas&quot;],[&quot;San José&quot;,&quot;San José&quot;]]">Costa Rica</option>
1938<option value="Croatia" data-provinces="[]">Croatia</option>
1939<option value="Curaçao" data-provinces="[]">Curaçao</option>
1940<option value="Cyprus" data-provinces="[]">Cyprus</option>
1941<option value="Czech Republic" data-provinces="[]">Czechia</option>
1942<option value="Côte d'Ivoire" data-provinces="[]">Côte d’Ivoire</option>
1943<option value="Denmark" data-provinces="[]">Denmark</option>
1944<option value="Djibouti" data-provinces="[]">Djibouti</option>
1945<option value="Dominica" data-provinces="[]">Dominica</option>
1946<option value="Dominican Republic" data-provinces="[]">Dominican Republic</option>
1947<option value="Ecuador" data-provinces="[]">Ecuador</option>
1948<option value="Egypt" data-provinces="[[&quot;6th of October&quot;,&quot;6th of October&quot;],[&quot;Al Sharqia&quot;,&quot;Al Sharqia&quot;],[&quot;Alexandria&quot;,&quot;Alexandria&quot;],[&quot;Aswan&quot;,&quot;Aswan&quot;],[&quot;Asyut&quot;,&quot;Asyut&quot;],[&quot;Beheira&quot;,&quot;Beheira&quot;],[&quot;Beni Suef&quot;,&quot;Beni Suef&quot;],[&quot;Cairo&quot;,&quot;Cairo&quot;],[&quot;Dakahlia&quot;,&quot;Dakahlia&quot;],[&quot;Damietta&quot;,&quot;Damietta&quot;],[&quot;Faiyum&quot;,&quot;Faiyum&quot;],[&quot;Gharbia&quot;,&quot;Gharbia&quot;],[&quot;Giza&quot;,&quot;Giza&quot;],[&quot;Helwan&quot;,&quot;Helwan&quot;],[&quot;Ismailia&quot;,&quot;Ismailia&quot;],[&quot;Kafr el-Sheikh&quot;,&quot;Kafr el-Sheikh&quot;],[&quot;Luxor&quot;,&quot;Luxor&quot;],[&quot;Matrouh&quot;,&quot;Matrouh&quot;],[&quot;Minya&quot;,&quot;Minya&quot;],[&quot;Monufia&quot;,&quot;Monufia&quot;],[&quot;New Valley&quot;,&quot;New Valley&quot;],[&quot;North Sinai&quot;,&quot;North Sinai&quot;],[&quot;Port Said&quot;,&quot;Port Said&quot;],[&quot;Qalyubia&quot;,&quot;Qalyubia&quot;],[&quot;Qena&quot;,&quot;Qena&quot;],[&quot;Red Sea&quot;,&quot;Red Sea&quot;],[&quot;Sohag&quot;,&quot;Sohag&quot;],[&quot;South Sinai&quot;,&quot;South Sinai&quot;],[&quot;Suez&quot;,&quot;Suez&quot;]]">Egypt</option>
1949<option value="El Salvador" data-provinces="[[&quot;Ahuachapán&quot;,&quot;Ahuachapán&quot;],[&quot;Cabañas&quot;,&quot;Cabañas&quot;],[&quot;Chalatenango&quot;,&quot;Chalatenango&quot;],[&quot;Cuscatlán&quot;,&quot;Cuscatlán&quot;],[&quot;La Libertad&quot;,&quot;La Libertad&quot;],[&quot;La Paz&quot;,&quot;La Paz&quot;],[&quot;La Unión&quot;,&quot;La Unión&quot;],[&quot;Morazán&quot;,&quot;Morazán&quot;],[&quot;San Miguel&quot;,&quot;San Miguel&quot;],[&quot;San Salvador&quot;,&quot;San Salvador&quot;],[&quot;San Vicente&quot;,&quot;San Vicente&quot;],[&quot;Santa Ana&quot;,&quot;Santa Ana&quot;],[&quot;Sonsonate&quot;,&quot;Sonsonate&quot;],[&quot;Usulután&quot;,&quot;Usulután&quot;]]">El Salvador</option>
1950<option value="Equatorial Guinea" data-provinces="[]">Equatorial Guinea</option>
1951<option value="Eritrea" data-provinces="[]">Eritrea</option>
1952<option value="Estonia" data-provinces="[]">Estonia</option>
1953<option value="Eswatini" data-provinces="[]">Eswatini</option>
1954<option value="Ethiopia" data-provinces="[]">Ethiopia</option>
1955<option value="Falkland Islands (Malvinas)" data-provinces="[]">Falkland Islands</option>
1956<option value="Faroe Islands" data-provinces="[]">Faroe Islands</option>
1957<option value="Fiji" data-provinces="[]">Fiji</option>
1958<option value="Finland" data-provinces="[]">Finland</option>
1959<option value="France" data-provinces="[]">France</option>
1960<option value="French Guiana" data-provinces="[]">French Guiana</option>
1961<option value="French Polynesia" data-provinces="[]">French Polynesia</option>
1962<option value="French Southern Territories" data-provinces="[]">French Southern Territories</option>
1963<option value="Gabon" data-provinces="[]">Gabon</option>
1964<option value="Gambia" data-provinces="[]">Gambia</option>
1965<option value="Georgia" data-provinces="[]">Georgia</option>
1966<option value="Germany" data-provinces="[]">Germany</option>
1967<option value="Ghana" data-provinces="[]">Ghana</option>
1968<option value="Gibraltar" data-provinces="[]">Gibraltar</option>
1969<option value="Greece" data-provinces="[]">Greece</option>
1970<option value="Greenland" data-provinces="[]">Greenland</option>
1971<option value="Grenada" data-provinces="[]">Grenada</option>
1972<option value="Guadeloupe" data-provinces="[]">Guadeloupe</option>
1973<option value="Guatemala" data-provinces="[[&quot;Alta Verapaz&quot;,&quot;Alta Verapaz&quot;],[&quot;Baja Verapaz&quot;,&quot;Baja Verapaz&quot;],[&quot;Chimaltenango&quot;,&quot;Chimaltenango&quot;],[&quot;Chiquimula&quot;,&quot;Chiquimula&quot;],[&quot;El Progreso&quot;,&quot;El Progreso&quot;],[&quot;Escuintla&quot;,&quot;Escuintla&quot;],[&quot;Guatemala&quot;,&quot;Guatemala&quot;],[&quot;Huehuetenango&quot;,&quot;Huehuetenango&quot;],[&quot;Izabal&quot;,&quot;Izabal&quot;],[&quot;Jalapa&quot;,&quot;Jalapa&quot;],[&quot;Jutiapa&quot;,&quot;Jutiapa&quot;],[&quot;Petén&quot;,&quot;Petén&quot;],[&quot;Quetzaltenango&quot;,&quot;Quetzaltenango&quot;],[&quot;Quiché&quot;,&quot;Quiché&quot;],[&quot;Retalhuleu&quot;,&quot;Retalhuleu&quot;],[&quot;Sacatepéquez&quot;,&quot;Sacatepéquez&quot;],[&quot;San Marcos&quot;,&quot;San Marcos&quot;],[&quot;Santa Rosa&quot;,&quot;Santa Rosa&quot;],[&quot;Sololá&quot;,&quot;Sololá&quot;],[&quot;Suchitepéquez&quot;,&quot;Suchitepéquez&quot;],[&quot;Totonicapán&quot;,&quot;Totonicapán&quot;],[&quot;Zacapa&quot;,&quot;Zacapa&quot;]]">Guatemala</option>
1974<option value="Guernsey" data-provinces="[]">Guernsey</option>
1975<option value="Guinea" data-provinces="[]">Guinea</option>
1976<option value="Guinea Bissau" data-provinces="[]">Guinea-Bissau</option>
1977<option value="Guyana" data-provinces="[]">Guyana</option>
1978<option value="Haiti" data-provinces="[]">Haiti</option>
1979<option value="Honduras" data-provinces="[]">Honduras</option>
1980<option value="Hong Kong" data-provinces="[[&quot;Hong Kong Island&quot;,&quot;Hong Kong Island&quot;],[&quot;Kowloon&quot;,&quot;Kowloon&quot;],[&quot;New Territories&quot;,&quot;New Territories&quot;]]">Hong Kong SAR</option>
1981<option value="Hungary" data-provinces="[]">Hungary</option>
1982<option value="Iceland" data-provinces="[]">Iceland</option>
1983<option value="India" data-provinces="[[&quot;Andaman and Nicobar Islands&quot;,&quot;Andaman and Nicobar Islands&quot;],[&quot;Andhra Pradesh&quot;,&quot;Andhra Pradesh&quot;],[&quot;Arunachal Pradesh&quot;,&quot;Arunachal Pradesh&quot;],[&quot;Assam&quot;,&quot;Assam&quot;],[&quot;Bihar&quot;,&quot;Bihar&quot;],[&quot;Chandigarh&quot;,&quot;Chandigarh&quot;],[&quot;Chhattisgarh&quot;,&quot;Chhattisgarh&quot;],[&quot;Dadra and Nagar Haveli&quot;,&quot;Dadra and Nagar Haveli&quot;],[&quot;Daman and Diu&quot;,&quot;Daman and Diu&quot;],[&quot;Delhi&quot;,&quot;Delhi&quot;],[&quot;Goa&quot;,&quot;Goa&quot;],[&quot;Gujarat&quot;,&quot;Gujarat&quot;],[&quot;Haryana&quot;,&quot;Haryana&quot;],[&quot;Himachal Pradesh&quot;,&quot;Himachal Pradesh&quot;],[&quot;Jammu and Kashmir&quot;,&quot;Jammu and Kashmir&quot;],[&quot;Jharkhand&quot;,&quot;Jharkhand&quot;],[&quot;Karnataka&quot;,&quot;Karnataka&quot;],[&quot;Kerala&quot;,&quot;Kerala&quot;],[&quot;Ladakh&quot;,&quot;Ladakh&quot;],[&quot;Lakshadweep&quot;,&quot;Lakshadweep&quot;],[&quot;Madhya Pradesh&quot;,&quot;Madhya Pradesh&quot;],[&quot;Maharashtra&quot;,&quot;Maharashtra&quot;],[&quot;Manipur&quot;,&quot;Manipur&quot;],[&quot;Meghalaya&quot;,&quot;Meghalaya&quot;],[&quot;Mizoram&quot;,&quot;Mizoram&quot;],[&quot;Nagaland&quot;,&quot;Nagaland&quot;],[&quot;Odisha&quot;,&quot;Odisha&quot;],[&quot;Puducherry&quot;,&quot;Puducherry&quot;],[&quot;Punjab&quot;,&quot;Punjab&quot;],[&quot;Rajasthan&quot;,&quot;Rajasthan&quot;],[&quot;Sikkim&quot;,&quot;Sikkim&quot;],[&quot;Tamil Nadu&quot;,&quot;Tamil Nadu&quot;],[&quot;Telangana&quot;,&quot;Telangana&quot;],[&quot;Tripura&quot;,&quot;Tripura&quot;],[&quot;Uttar Pradesh&quot;,&quot;Uttar Pradesh&quot;],[&quot;Uttarakhand&quot;,&quot;Uttarakhand&quot;],[&quot;West Bengal&quot;,&quot;West Bengal&quot;]]">India</option>
1984<option value="Indonesia" data-provinces="[[&quot;Aceh&quot;,&quot;Aceh&quot;],[&quot;Bali&quot;,&quot;Bali&quot;],[&quot;Bangka Belitung&quot;,&quot;Bangka–Belitung Islands&quot;],[&quot;Banten&quot;,&quot;Banten&quot;],[&quot;Bengkulu&quot;,&quot;Bengkulu&quot;],[&quot;Gorontalo&quot;,&quot;Gorontalo&quot;],[&quot;Jakarta&quot;,&quot;Jakarta&quot;],[&quot;Jambi&quot;,&quot;Jambi&quot;],[&quot;Jawa Barat&quot;,&quot;West Java&quot;],[&quot;Jawa Tengah&quot;,&quot;Central Java&quot;],[&quot;Jawa Timur&quot;,&quot;East Java&quot;],[&quot;Kalimantan Barat&quot;,&quot;West Kalimantan&quot;],[&quot;Kalimantan Selatan&quot;,&quot;South Kalimantan&quot;],[&quot;Kalimantan Tengah&quot;,&quot;Central Kalimantan&quot;],[&quot;Kalimantan Timur&quot;,&quot;East Kalimantan&quot;],[&quot;Kalimantan Utara&quot;,&quot;North Kalimantan&quot;],[&quot;Kepulauan Riau&quot;,&quot;Riau Islands&quot;],[&quot;
1984Lampung&quot;,&quot;Lampung&quot;],[&quot;Maluku&quot;,&quot;Maluku&quot;],[&quot;Maluku Utara&quot;,&quot;North Maluku&quot;],[&quot;North Sumatra&quot;,&quot;North Sumatra&quot;],[&quot;Nusa Tenggara Barat&quot;,&quot;West Nusa Tenggara&quot;],[&quot;Nusa Tenggara Timur&quot;,&quot;East Nusa Tenggara&quot;],[&quot;Papua&quot;,&quot;Papua&quot;],[&quot;Papua Barat&quot;,&quot;West Papua&quot;],[&quot;Riau&quot;,&quot;Riau&quot;],[&quot;South Sumatra&quot;,&quot;South Sumatra&quot;],[&quot;Sulawesi Barat&quot;,&quot;West Sulawesi&quot;],[&quot;Sulawesi Selatan&quot;,&quot;South Sulawesi&quot;],[&quot;Sulawesi Tengah&quot;,&quot;Central Sulawesi&quot;],[&quot;Sulawesi Tenggara&quot;,&quot;Southeast Sulawesi&quot;],[&quot;Sulawesi Utara&quot;,&quot;North Sulawesi&quot;],[&quot;West Sumatra&quot;,&quot;West Sumatra&quot;],[&quot;Yogyakarta&quot;,&quot;Yogyakarta&quot;]]">Indonesia</option>
1985<option value="Iraq" data-provinces="[]">Iraq</option>
1986<option value="Ireland" data-provinces="[[&quot;Carlow&quot;,&quot;Carlow&quot;],[&quot;Cavan&quot;,&quot;Cavan&quot;],[&quot;Clare&quot;,&quot;Clare&quot;],[&quot;Cork&quot;,&quot;Cork&quot;],[&quot;Donegal&quot;,&quot;Donegal&quot;],[&quot;Dublin&quot;,&quot;Dublin&quot;],[&quot;Galway&quot;,&quot;Galway&quot;],[&quot;Kerry&quot;,&quot;Kerry&quot;],[&quot;Kildare&quot;,&quot;Kildare&quot;],[&quot;Kilkenny&quot;,&quot;Kilkenny&quot;],[&quot;Laois&quot;,&quot;Laois&quot;],[&quot;Leitrim&quot;,&quot;Leitrim&quot;],[&quot;Limerick&quot;,&quot;Limerick&quot;],[&quot;Longford&quot;,&quot;Longford&quot;],[&quot;Louth&quot;,&quot;Louth&quot;],[&quot;Mayo&quot;,&quot;Mayo&quot;],[&quot;Meath&quot;,&quot;Meath&quot;],[&quot;Monaghan&quot;,&quot;Monaghan&quot;],[&quot;Offaly&quot;,&quot;Offaly&quot;],[&quot;Roscommon&quot;,&quot;Roscommon&quot;],[&quot;Sligo&quot;,&quot;Sligo&quot;],[&quot;Tipperary&quot;,&quot;Tipperary&quot;],[&quot;Waterford&quot;,&quot;Waterford&quot;],[&quot;Westmeath&quot;,&quot;Westmeath&quot;],[&quot;Wexford&quot;,&quot;Wexford&quot;],[&quot;Wicklow&quot;,&quot;Wicklow&quot;]]">Ireland</option>
1987<option value="Isle Of Man" data-provinces="[]">Isle of Man</option>
1988<option value="Israel" data-provinces="[]">Israel</option>
1989<option value="Italy" data-provinces="[[&quot;Agrigento&quot;,&quot;Agrigento&quot;],[&quot;Alessandria&quot;,&quot;Alessandria&quot;],[&quot;Ancona&quot;,&quot;Ancona&quot;],[&quot;Aosta&quot;,&quot;Aosta Valley&quot;],[&quot;Arezzo&quot;,&quot;Arezzo&quot;],[&quot;Ascoli Piceno&quot;,&quot;Ascoli Piceno&quot;],[&quot;Asti&quot;,&quot;Asti&quot;],[&quot;Avellino&quot;,&quot;Avellino&quot;],[&quot;Bari&quot;,&quot;Bari&quot;],[&quot;Barletta-Andria-Trani&quot;,&quot;Barletta-Andria-Trani&quot;],[&quot;Belluno&quot;,&quot;Belluno&quot;],[&quot;Benevento&quot;,&quot;Benevento&quot;],[&quot;Bergamo&quot;,&quot;Bergamo&quot;],[&quot;Biella&quot;,&quot;Biella&quot;],[&quot;Bologna&quot;,&quot;Bologna&quot;],[&quot;Bolzano&quot;,&quot;South Tyrol&quot;],[&quot;Brescia&quot;,&quot;Brescia&quot;],[&quot;Brindisi&quot;,&quot;Brindisi&quot;],[&quot;Cagliari&quot;,&quot;Cagliari&quot;],[&quot;Caltanissetta&quot;,&quot;Caltanissetta&quot;],[&quot;Campobasso&quot;,&quot;Campobasso&quot;],[&quot;Caserta&quot;,&quot;Caserta&quot;],[&quot;Catania&quot;,&quot;Catania&quot;],[&quot;Catanzaro&quot;,&quot;Catanzaro&quot;],[&quot;Chieti&quot;,&quot;Chieti&quot;],[&quot;Como&quot;,&quot;Como&quot;],[&quot;Cosenza&quot;,&quot;Cosenza&quot;],[&quot;Cremona&quot;,&quot;Cremona&quot;],[&quot;Crotone&quot;,&quot;Crotone&quot;],[&quot;Cuneo&quot;,&quot;Cuneo&quot;],[&quot;Enna&quot;,&quot;Enna&quot;],[&quot;Fermo&quot;,&quot;Fermo&quot;],[&quot;Ferrara&quot;,&quot;Ferrara&quot;],[&quot;Firenze&quot;,&quot;Florence&quot;],[&quot;Foggia&quot;,&quot;Foggia&quot;],[&quot;Forlì-Cesena&quot;,&quot;Forlì-Cesena&quot;],[&quot;Frosinone&quot;,&quot;Frosinone&quot;],[&quot;Gallura Nord-Est Sardegna&quot;,&quot;Gallura Nord-Est Sardegna&quot;],[&quot;Genova&quot;,&quot;Genoa&quot;],[&quot;Gorizia&quot;,&quot;Gorizia&quot;],[&quot;Grosseto&quot;,&quot;Grosseto&quot;],[&quot;Imperia&quot;,&quot;Imperia&quot;],[&quot;Isernia&quot;,&quot;Isernia&quot;],[&quot;L&#39;Aquila&quot;,&quot;L’Aquila&quot;],[&quot;La Spezia&quot;,&quot;La Spezia&quot;],[&quot;Latina&quot;,&quot;Latina&quot;],[&quot;Lecce&quot;,&quot;Lecce&quot;],[&quot;Lecco&quot;,&quot;Lecco&quot;],[&quot;Livorno&quot;,&quot;Livorno&quot;],[&quot;Lodi&quot;,&quot;Lodi&quot;],[&quot;Lucca&quot;,&quot;Lucca&quot;],[&quot;Macerata&quot;,&quot;Macerata&quot;],[&quot;Mantova&quot;,&quot;Mantua&quot;],[&quot;Massa-Carrara&quot;,&quot;Massa and Carrara&quot;],[&quot;Matera&quot;,&quot;Matera&quot;],[&quot;Medio Campidano&quot;,&quot;Medio Campidano&quot;],[&quot;Messina&quot;,&quot;Messina&quot;],[&quot;Milano&quot;,&quot;Milan&quot;],[&quot;Modena&quot;,&quot;Modena&quot;],[&quot;Monza e Brianza&quot;,&quot;Monza and Brianza&quot;],[&quot;Napoli&quot;,&quot;Naples&quot;],[&quot;Novara&quot;,&quot;Novara&quot;],[&quot;Nuoro&quot;,&quot;Nuoro&quot;],[&quot;Ogliastra&quot;,&quot;Ogliastra&quot;],[&quot;Oristano&quot;,&quot;Oristano&quot;],[&quot;Padova&quot;,&quot;Padua&quot;],[&quot;Palermo&quot;,&quot;Palermo&quot;],[&quot;Parma&quot;,&quot;Parma&quot;],[&quot;Pavia&quot;,&quot;Pavia&quot;],[&quot;Perugia&quot;,&quot;Perugia&quot;],[&quot;Pesaro e Urbino&quot;,&quot;Pesaro and Urbino&quot;],[&quot;Pescara&quot;,&quot;Pescara&quot;],[&quot;Piacenza&quot;,&quot;Piacenza&quot;],[&quot;Pisa&quot;,&quot;Pisa&quot;],[&quot;Pistoia&quot;,&quot;Pistoia&quot;],[&quot;Pordenone&quot;,&quot;Pordenone&quot;],[&quot;Potenza&quot;,&quot;Potenza&quot;],[&quot;Prato&quot;,&quot;Prato&quot;],[&quot;Ragusa&quot;,&quot;Ragusa&quot;],[&quot;Ravenna&quot;,&quot;Ravenna&quot;],[&quot;Reggio Calabria&quot;,&quot;Reggio Calabria&quot;],[&quot;Reggio Emilia&quot;,&quot;Reggio Emilia&quot;],[&quot;Rieti&quot;,&quot;Rieti&quot;],[&quot;Rimini&quot;,&quot;Rimini&quot;],[&quot;Roma&quot;,&quot;Rome&quot;],[&quot;Rovigo&quot;,&quot;Rovigo&quot;],[&quot;Salerno&quot;,&quot;Salerno&quot;],[&quot;Sassari&quot;,&quot;Sassari&quot;],[&quot;Savona&quot;,&quot;Savona&quot;],[&quot;Siena&quot;,&quot;Siena&quot;],[&quot;Siracusa&quot;,&quot;Syracuse&quot;],[&quot;Sondrio&quot;,&quot;Sondrio&quot;],[&quot;Sulcis Iglesiente&quot;,&quot;Sulcis Iglesiente&quot;],[&quot;Taranto&quot;,&quot;Taranto&quot;],[&quot;Teramo&quot;,&quot;Teramo&quot;],[&quot;Terni&quot;,&quot;Terni&quot;],[&quot;Torino&quot;,&quot;Turin&quot;],[&quot;Trapani&quot;,&quot;Trapani&quot;],[&quot;Trento&quot;,&quot;Trentino&quot;],[&quot;Treviso&quot;,&quot;Treviso&quot;],[&quot;Trieste&quot;,&quot;Trieste&quot;],[&quot;Udine&quot;,&quot;Udine&quot;],[&quot;Varese&quot;,&quot;Varese&quot;],[&quot;Venezia&quot;,&quot;Venice&quot;],[&quot;Verbano-Cusio-Ossola&quot;,&quot;Verbano-Cusio-Ossola&quot;],[&quot;Vercelli&quot;,&quot;Vercelli&quot;],[&quot;Verona&quot;,&quot;Verona&quot;],[&quot;Vibo Valentia&quot;,&quot;Vibo Valentia&quot;],[&quot;Vicenza&quot;,&quot;Vicenza&quot;],[&quot;Viterbo&quot;,&quot;Viterbo&quot;]]">Italy</option>
1990<option value="Jamaica" data-provinces="[]">Jamaica</option>
1991<option value="Japan" data-provinces="[[&quot;Aichi&quot;,&quot;Aichi&quot;],[&quot;Akita&quot;,&quot;Akita&quot;],[&quot;Aomori&quot;,&quot;Aomori&quot;],[&quot;Chiba&quot;,&quot;Chiba&quot;],[&quot;Ehime&quot;,&quot;Ehime&quot;],[&quot;Fukui&quot;,&quot;Fukui&quot;],[&quot;Fukuoka&quot;,&quot;Fukuoka&quot;],[&quot;Fukushima&quot;,&quot;Fukushima&quot;],[&quot;Gifu&quot;,&quot;Gifu&quot;],[&quot;Gunma&quot;,&quot;Gunma&quot;],[&quot;Hiroshima&quot;,&quot;Hiroshima&quot;],[&quot;Hokkaidō&quot;,&quot;Hokkaido&quot;],[&quot;Hyōgo&quot;,&quot;Hyogo&quot;],[&quot;Ibaraki&quot;,&quot;Ibaraki&quot;],[&quot;Ishikawa&quot;,&quot;Ishikawa&quot;],[&quot;Iwate&quot;,&quot;Iwate&quot;],[&quot;Kagawa&quot;,&quot;Kagawa&quot;],[&quot;Kagoshima&quot;,&quot;Kagoshima&quot;],[&quot;Kanagawa&quot;,&quot;Kanagawa&quot;],[&quot;Kumamoto&quot;,&quot;Kumamoto&quot;],[&quot;Kyōto&quot;,&quot;Kyoto&quot;],[&quot;Kōchi&quot;,&quot;Kochi&quot;],[&quot;Mie&quot;,&quot;Mie&quot;],[&quot;Miyagi&quot;,&quot;Miyagi&quot;],[&quot;Miyazaki&quot;,&quot;Miyazaki&quot;],[&quot;Nagano&quot;,&quot;Nagano&quot;],[&quot;Nagasaki&quot;,&quot;Nagasaki&quot;],[&quot;Nara&quot;,&quot;Nara&quot;],[&quot;Niigata&quot;,&quot;Niigata&quot;],[&quot;Okayama&quot;,&quot;Okayama&quot;],[&quot;Okinawa&quot;,&quot;Okinawa&quot;],[&quot;Saga&quot;,&quot;Saga&quot;],[&quot;Saitama&quot;,&quot;Saitama&quot;],[&quot;Shiga&quot;,&quot;Shiga&quot;],[&quot;Shimane&quot;,&quot;Shimane&quot;],[&quot;Shizuoka&quot;,&quot;Shizuoka&quot;],[&quot;Tochigi&quot;,&quot;Tochigi&quot;],[&quot;Tokushima&quot;,&quot;Tokushima&quot;],[&quot;Tottori&quot;,&quot;Tottori&quot;],[&quot;Toyama&quot;,&quot;Toyama&quot;],[&quot;Tōkyō&quot;,&quot;Tokyo&quot;],[&quot;Wakayama&quot;,&quot;Wakayama&quot;],[&quot;Yamagata&quot;,&quot;Yamagata&quot;],[&quot;Yamaguchi&quot;,&quot;Yamaguchi&quot;],[&quot;Yamanashi&quot;,&quot;Yamanashi&quot;],[&quot;Ōita&quot;,&quot;Oita&quot;],[&quot;Ōsaka&quot;,&quot;Osaka&quot;]]">Japan</option>
1992<option value="Jersey" data-provinces="[]">Jersey</option>
1993<option value="Jordan" data-provinces="[]">Jordan</option>
1994<option value="Kazakhstan" data-provinces="[]">Kazakhstan</option>
1995<option value="Kenya" data-provinces="[]">Kenya</option>
1996<option value="Kiribati" data-provinces="[]">Kiribati</option>
1997<option value="Kosovo" data-provinces="[]">Kosovo</option>
1998<option value="Kuwait" data-provinces="[[&quot;Al Ahmadi&quot;,&quot;Al Ahmadi&quot;],[&quot;Al Asimah&quot;,&quot;Al Asimah&quot;],[&quot;Al Farwaniyah&quot;,&quot;Al Farwaniyah&quot;],[&quot;Al Jahra&quot;,&quot;Al Jahra&quot;],[&quot;Hawalli&quot;,&quot;Hawalli&quot;],[&quot;Mubarak Al-Kabeer&quot;,&quot;Mubarak Al-Kabeer&quot;]]">Kuwait</option>
1999<option value="Kyrgyzstan" data-provinces="[]">Kyrgyzstan</option>
2000<option value="Lao People's Democratic Republic" data-provinces="[]">Laos</option>
2001<option value="Latvia" data-provinces="[]">Latvia</option>
2002<option value="Lebanon" data-provinces="[]">Lebanon</option>
2003<option value="Lesotho" data-provinces="[]">Lesotho</option>
2004<option value="Liberia" data-provinces="[]">Liberia</option>
2005<option value="Libyan Arab Jamahiriya" data-provinces="[]">Libya</option>
2006<option value="Liechtenstein" data-provinces="[]">Liechtenstein</option>
2007<option value="Lithuania" data-provinces="[]">Lithuania</option>
2008<option value="Luxembourg" data-provinces="[]">Luxembourg</option>
2009<option value="Macao" data-provinces="[]">Macao SAR</option>
2010<option value="Madagascar" data-provinces="[]">Madagascar</option>
2011<option value="Malawi" data-provinces="[]">Malawi</option>
2012<option value="Malaysia" data-provinces="[[&quot;Johor&quot;,&quot;Johor&quot;],[&quot;Kedah&quot;,&quot;Kedah&quot;],[&quot;Kelantan&quot;,&quot;Kelantan&quot;],[&quot;Kuala Lumpur&quot;,&quot;Kuala Lumpur&quot;],[&quot;Labuan&quot;,&quot;Labuan&quot;],[&quot;Melaka&quot;,&quot;Malacca&quot;],[&quot;Negeri Sembilan&quot;,&quot;Negeri Sembilan&quot;],[&quot;Pahang&quot;,&quot;Pahang&quot;],[&quot;Penang&quot;,&quot;Penang&quot;],[&quot;Perak&quot;,&quot;Perak&quot;],[&quot;Perlis&quot;,&quot;Perlis&quot;],[&quot;Putrajaya&quot;,&quot;Putrajaya&quot;],[&quot;Sabah&quot;,&quot;Sabah&quot;],[&quot;Sarawak&quot;,&quot;Sarawak&quot;],[&quot;Selangor&quot;,&quot;Selangor&quot;],[&quot;Terengganu&quot;,&quot;Terengganu&quot;]]">Malaysia</option>
2013<option value="Maldives" data-provinces="[]">Maldives</option>
2014<option value="Mali" data-provinces="[]">Mali</option>
2015<option value="Malta" data-provinces="[]">Malta</option>
2016<option value="Martinique" data-provinces="[]">Martinique</option>
2017<option value="Mauritania" data-provinces="[]">Mauritania</option>
2018<option value="Mauritius" data-provinces="[]">Mauritius</option>
2019<option value="Mayotte" data-provinces="[]">Mayotte</option>
2020<option value="Mexico" data-provinces="[[&quot;Aguascalientes&quot;,&quot;Aguascalientes&quot;],[&quot;Baja California&quot;,&quot;Baja California&quot;],[&quot;Baja California Sur&quot;,&quot;Baja California Sur&quot;],[&quot;Campeche&quot;,&quot;Campeche&quot;],[&quot;Chiapas&quot;,&quot;Chiapas&quot;],[&quot;Chihuahua&quot;,&quot;Chihuahua&quot;],[&quot;Ciudad de México&quot;,&quot;Ciudad de Mexico&quot;],[&quot;Coahuila&quot;,&quot;Coahuila&quot;],[&quot;Colima&quot;,&quot;Colima&quot;],[&quot;Durango&quot;,&quot;Durango&quot;],[&quot;Guanajuato&quot;,&quot;Guanajuato&quot;],[&quot;Guerrero&quot;,&quot;Guerrero&quot;],[&quot;Hidalgo&quot;,&quot;Hidalgo&quot;],[&quot;Jalisco&quot;,&quot;Jalisco&quot;],[&quot;Michoacán&quot;,&quot;Michoacán&quot;],[&quot;Morelos&quot;,&quot;Morelos&quot;],[&quot;México&quot;,&quot;Mexico State&quot;],[&quot;Nayarit&quot;,&quot;Nayarit&quot;],[&quot;Nuevo León&quot;,&quot;Nuevo León&quot;],[&quot;Oaxaca&quot;,&quot;Oaxaca&quot;],[&quot;Puebla&quot;,&quot;Puebla&quot;],[&quot;Querétaro&quot;,&quot;Querétaro&quot;],[&quot;Quintana Roo&quot;,&quot;Quintana Roo&quot;],[&quot;San Luis Potosí&quot;,&quot;San Luis Potosí&quot;],[&quot;Sinaloa&quot;,&quot;Sinaloa&quot;],[&quot;Sonora&quot;,&quot;Sonora&quot;],[&quot;Tabasco&quot;,&quot;Tabasco&quot;],[&quot;Tamaulipas&quot;,&quot;Tamaulipas&quot;],[&quot;Tlaxcala&quot;,&quot;Tlaxcala&quot;],[&quot;Veracruz&quot;,&quot;Veracruz&quot;],[&quot;Yucatán&quot;,&quot;Yucatán&quot;],[&quot;Zacatecas&quot;,&quot;Zacatecas&quot;]]">Mexico</option>
2021<option value="Moldova, Republic of" data-provinces="[]">Moldova</option>
2022<option value="Monaco" data-provinces="[]">Monaco</option>
2023<option value="Mongolia" data-provinces="[]">Mongolia</option>
2024<option value="Montenegro" data-provinces="[]">Montenegro</option>
2025<option value="Montserrat" data-provinces="[]">Montserrat</option>
2026<option value="Morocco" data-provinces="[]">Morocco</option>
2027<option value="Mozambique" data-provinces="[]">Mozambique</option>
2028<option value="Myanmar" data-provinces="[]">Myanmar (Burma)</option>
2029<option value="Namibia" data-provinces="[]">Namibia</option>
2030<option value="Nauru" data-provinces="[]">Nauru</option>
2031<option value="Nepal" data-provinces="[]">Nepal</option>
2032<option value="Netherlands" data-provinces="[]">Netherlands</option>
2033<option value="New Caledonia" data-provinces="[]">New Caledonia</option>
2034<option value="New Zealand" data-provinces="[[&quot;Auckland&quot;,&quot;Auckland&quot;],[&quot;Bay of Plenty&quot;,&quot;Bay of Plenty&quot;],[&quot;Canterbury&quot;,&quot;Canterbury&quot;],[&quot;Chatham Islands&quot;,&quot;Chatham Islands&quot;],[&quot;Gisborne&quot;,&quot;Gisborne&quot;],[&quot;Hawke&#39;s Bay&quot;,&quot;Hawke’s Bay&quot;],[&quot;Manawatu-Wanganui&quot;,&quot;Manawatū-Whanganui&quot;],[&quot;Marlborough&quot;,&quot;Marlborough&quot;],[&quot;Nelson&quot;,&quot;Nelson&quot;],[&quot;Northland&quot;,&quot;Northland&quot;],[&quot;Otago&quot;,&quot;Otago&quot;],[&quot;Southland&quot;,&quot;Southland&quot;],[&quot;Taranaki&quot;,&quot;Taranaki&quot;],[&quot;Tasman&quot;,&quot;Tasman&quot;],[&quot;Waikato&quot;,&quot;Waikato&quot;],[&quot;Wellington&quot;,&quot;Wellington&quot;],[&quot;West Coast&quot;,&quot;West Coast&quot;]]">New Zealand</option>
2035<option value="Nicaragua" data-provinces="[]">Nicaragua</option>
2036<option value="Niger" data-provinces="[]">Niger</option>
2037<option value="Nigeria" data-provinces="[[&quot;Abia&quot;,&quot;Abia&quot;],[&quot;Abuja Federal Capital Territory&quot;,&quot;Federal Capital Territory&quot;],[&quot;Adamawa&quot;,&quot;Adamawa&quot;],[&quot;Akwa Ibom&quot;,&quot;Akwa Ibom&quot;],[&quot;Anambra&quot;,&quot;Anambra&quot;],[&quot;Bauchi&quot;,&quot;Bauchi&quot;],[&quot;Bayelsa&quot;,&quot;Bayelsa&quot;],[&quot;Benue&quot;,&quot;Benue&quot;],[&quot;Borno&quot;,&quot;Borno&quot;],[&quot;Cross River&quot;,&quot;Cross River&quot;],[&quot;Delta&quot;,&quot;Delta&quot;],[&quot;Ebonyi&quot;,&quot;Ebonyi&quot;],[&quot;Edo&quot;,&quot;Edo&quot;],[&quot;Ekiti&quot;,&quot;Ekiti&quot;],[&quot;Enugu&quot;,&quot;Enugu&quot;],[&quot;Gombe&quot;,&quot;Gombe&quot;],[&quot;Imo&quot;,&quot;Imo&quot;],[&quot;Jigawa&quot;,&quot;Jigawa&quot;],[&quot;Kaduna&quot;,&quot;Kaduna&quot;],[&quot;Kano&quot;,&quot;Kano&quot;],[&quot;Katsina&quot;,&quot;Katsina&quot;],[&quot;Kebbi&quot;,&quot;Kebbi&quot;],[&quot;Kogi&quot;,&quot;Kogi&quot;],[&quot;Kwara&quot;,&quot;Kwara&quot;],[&quot;Lagos&quot;,&quot;Lagos&quot;],[&quot;Nasarawa&quot;,&quot;Nasarawa&quot;],[&quot;Niger&quot;,&quot;Niger&quot;],[&quot;Ogun&quot;,&quot;Ogun&quot;],[&quot;Ondo&quot;,&quot;Ondo&quot;],[&quot;Osun&quot;,&quot;Osun&quot;],[&quot;Oyo&quot;,&quot;Oyo&quot;],[&quot;Plateau&quot;,&quot;Plateau&quot;],[&quot;Rivers&quot;,&quot;Rivers&quot;],[&quot;Sokoto&quot;,&quot;Sokoto&quot;],[&quot;Taraba&quot;,&quot;Taraba&quot;],[&quot;Yobe&quot;,&quot;Yobe&quot;],[&quot;Zamfara&quot;,&quot;Zamfara&quot;]]">Nigeria</option>
2038<option value="Niue" data-provinces="[]">Niue</option>
2039<option value="Norfolk Island" data-provinces="[]">Norfolk Island</option>
2040<option value="North Macedonia" data-provinces="[]">North Macedonia</option>
2041<option value="Norway" data-provinces="[]">Norway</option>
2042<option value="Oman" data-provinces="[]">Oman</option>
2043<option value="Pakistan" data-provinces="[]">Pakistan</option>
2044<option value="Palestinian Territory, Occupied" data-provinces="[]">Palestinian Territories</option>
2045<option value="Panama" data-provinces="[[&quot;Bocas del Toro&quot;,&quot;Bocas del Toro&quot;],[&quot;Chiriquí&quot;,&quot;Chiriquí&quot;],[&quot;Coclé&quot;,&quot;Coclé&quot;],[&quot;Colón&quot;,&quot;Colón&quot;],[&quot;Darién&quot;,&quot;Darién&quot;],[&quot;Emberá&quot;,&quot;Emberá&quot;],[&quot;Herrera&quot;,&quot;Herrera&quot;],[&quot;Kuna Yala&quot;,&quot;Guna Yala&quot;],[&quot;Los Santos&quot;,&quot;Los Santos&quot;],[&quot;Ngöbe-Buglé&quot;,&quot;Ngöbe-Buglé&quot;],[&quot;Panamá&quot;,&quot;Panamá&quot;],[&quot;Panamá Oeste&quot;,&quot;West Panamá&quot;],[&quot;Veraguas&quot;,&quot;Veraguas&quot;]]">Panama</option>
2046<option value="Papua New Guinea" data-provinces="[]">Papua New Guinea</option>
2047<option value="Paraguay" data-provinces="[]">Paraguay</option>
2048<option value="Peru" data-provinces="[[&quot;Amazonas&quot;,&quot;Amazonas&quot;],[&quot;Apurímac&quot;,&quot;Apurímac&quot;],[&quot;Arequipa&quot;,&quot;Arequipa&quot;],[&quot;Ayacucho&quot;,&quot;Ayacucho&quot;],[&quot;Cajamarca&quot;,&quot;Cajamarca&quot;],[&quot;Callao&quot;,&quot;El Callao&quot;],[&quot;Cuzco&quot;,&quot;Cusco&quot;],[&quot;Huancavelica&quot;,&quot;Huancavelica&quot;],[&quot;Huánuco&quot;,&quot;Huánuco&quot;],[&quot;Ica&quot;,&quot;Ica&quot;],[&quot;Junín&quot;,&quot;Junín&quot;],[&quot;La Libertad&quot;,&quot;La Libertad&quot;],[&quot;Lambayeque&quot;,&quot;Lambayeque&quot;],[&quot;Lima (departamento)&quot;,&quot;Lima (Department)&quot;],[&quot;Lima (provincia)&quot;,&quot;Lima (Metropolitan)&quot;],[&quot;Loreto&quot;,&quot;Loreto&quot;],[&quot;Madre de Dios&quot;,&quot;Madre de Dios&quot;],[&quot;Moquegua&quot;,&quot;Moquegua&quot;],[&quot;Pasco&quot;,&quot;Pasco&quot;],[&quot;Piura&quot;,&quot;Piura&quot;],[&quot;Puno&quot;,&quot;Puno&quot;],[&quot;San Martín&quot;,&quot;San Martín&quot;],[&quot;Tacna&quot;,&quot;Tacna&quot;],[&quot;Tumbes&quot;,&quot;Tumbes&quot;],[&quot;Ucayali&quot;,&quot;Ucayali&quot;],[&quot;Áncash&quot;,&quot;Ancash&quot;]]">
2048Peru</option>
2049<option value="Philippines" data-provinces="[[&quot;Abra&quot;,&quot;Abra&quot;],[&quot;Agusan del Norte&quot;,&quot;Agusan del Norte&quot;],[&quot;Agusan del Sur&quot;,&quot;Agusan del Sur&quot;],[&quot;Aklan&quot;,&quot;Aklan&quot;],[&quot;Albay&quot;,&quot;Albay&quot;],[&quot;Antique&quot;,&quot;Antique&quot;],[&quot;Apayao&quot;,&quot;Apayao&quot;],[&quot;Aurora&quot;,&quot;Aurora&quot;],[&quot;Basilan&quot;,&quot;Basilan&quot;],[&quot;Bataan&quot;,&quot;Bataan&quot;],[&quot;Batanes&quot;,&quot;Batanes&quot;],[&quot;Batangas&quot;,&quot;Batangas&quot;],[&quot;Benguet&quot;,&quot;Benguet&quot;],[&quot;Biliran&quot;,&quot;Biliran&quot;],[&quot;Bohol&quot;,&quot;Bohol&quot;],[&quot;Bukidnon&quot;,&quot;Bukidnon&quot;],[&quot;Bulacan&quot;,&quot;Bulacan&quot;],[&quot;Cagayan&quot;,&quot;Cagayan&quot;],[&quot;Camarines Norte&quot;,&quot;Camarines Norte&quot;],[&quot;Camarines Sur&quot;,&quot;Camarines Sur&quot;],[&quot;Camiguin&quot;,&quot;Camiguin&quot;],[&quot;Capiz&quot;,&quot;Capiz&quot;],[&quot;Catanduanes&quot;,&quot;Catanduanes&quot;],[&quot;Cavite&quot;,&quot;Cavite&quot;],[&quot;Cebu&quot;,&quot;Cebu&quot;],[&quot;Cotabato&quot;,&quot;Cotabato&quot;],[&quot;Davao Occidental&quot;,&quot;Davao Occidental&quot;],[&quot;Davao Oriental&quot;,&quot;Davao Oriental&quot;],[&quot;Davao de Oro&quot;,&quot;Compostela Valley&quot;],[&quot;Davao del Norte&quot;,&quot;Davao del Norte&quot;],[&quot;Davao del Sur&quot;,&quot;Davao del Sur&quot;],[&quot;Dinagat Islands&quot;,&quot;Dinagat Islands&quot;],[&quot;Eastern Samar&quot;,&quot;Eastern Samar&quot;],[&quot;Guimaras&quot;,&quot;Guimaras&quot;],[&quot;Ifugao&quot;,&quot;Ifugao&quot;],[&quot;Ilocos Norte&quot;,&quot;Ilocos Norte&quot;],[&quot;Ilocos Sur&quot;,&quot;Ilocos Sur&quot;],[&quot;Iloilo&quot;,&quot;Iloilo&quot;],[&quot;Isabela&quot;,&quot;Isabela&quot;],[&quot;Kalinga&quot;,&quot;Kalinga&quot;],[&quot;La Union&quot;,&quot;La Union&quot;],[&quot;Laguna&quot;,&quot;Laguna&quot;],[&quot;Lanao del Norte&quot;,&quot;Lanao del Norte&quot;],[&quot;Lanao del Sur&quot;,&quot;Lanao del Sur&quot;],[&quot;Leyte&quot;,&quot;Leyte&quot;],[&quot;Maguindanao&quot;,&quot;Maguindanao&quot;],[&quot;Marinduque&quot;,&quot;Marinduque&quot;],[&quot;Masbate&quot;,&quot;Masbate&quot;],[&quot;Metro Manila&quot;,&quot;Metro Manila&quot;],[&quot;Misamis Occidental&quot;,&quot;Misamis Occidental&quot;],[&quot;Misamis Oriental&quot;,&quot;Misamis Oriental&quot;],[&quot;Mountain Province&quot;,&quot;Mountain&quot;],[&quot;Negros Occidental&quot;,&quot;Negros Occidental&quot;],[&quot;Negros Oriental&quot;,&quot;Negros Oriental&quot;],[&quot;Northern Samar&quot;,&quot;Northern Samar&quot;],[&quot;Nueva Ecija&quot;,&quot;Nueva Ecija&quot;],[&quot;Nueva Vizcaya&quot;,&quot;Nueva Vizcaya&quot;],[&quot;Occidental Mindoro&quot;,&quot;Occidental Mindoro&quot;],[&quot;Oriental Mindoro&quot;,&quot;Oriental Mindoro&quot;],[&quot;Palawan&quot;,&quot;Palawan&quot;],[&quot;Pampanga&quot;,&quot;Pampanga&quot;],[&quot;Pangasinan&quot;,&quot;Pangasinan&quot;],[&quot;Quezon&quot;,&quot;Quezon&quot;],[&quot;Quirino&quot;,&quot;Quirino&quot;],[&quot;Rizal&quot;,&quot;Rizal&quot;],[&quot;Romblon&quot;,&quot;Romblon&quot;],[&quot;Samar&quot;,&quot;Samar&quot;],[&quot;Sarangani&quot;,&quot;Sarangani&quot;],[&quot;Siquijor&quot;,&quot;Siquijor&quot;],[&quot;Sorsogon&quot;,&quot;Sorsogon&quot;],[&quot;South Cotabato&quot;,&quot;South Cotabato&quot;],[&quot;Southern Leyte&quot;,&quot;Southern Leyte&quot;],[&quot;Sultan Kudarat&quot;,&quot;Sultan Kudarat&quot;],[&quot;Sulu&quot;,&quot;Sulu&quot;],[&quot;Surigao del Norte&quot;,&quot;Surigao del Norte&quot;],[&quot;Surigao del Sur&quot;,&quot;Surigao del Sur&quot;],[&quot;Tarlac&quot;,&quot;Tarlac&quot;],[&quot;Tawi-Tawi&quot;,&quot;Tawi-Tawi&quot;],[&quot;Zambales&quot;,&quot;Zambales&quot;],[&quot;Zamboanga Sibugay&quot;,&quot;Zamboanga Sibugay&quot;],[&quot;Zamboanga del Norte&quot;,&quot;Zamboanga del Norte&quot;],[&quot;Zamboanga del Sur&quot;,&quot;Zamboanga del Sur&quot;]]">Philippines</option>
2050<option value="Pitcairn" data-provinces="[]">Pitcairn Islands</option>
2051<option value="Poland" data-provinces="[]">Poland</option>
2052<option value="Portugal" data-provinces="[[&quot;Aveiro&quot;,&quot;Aveiro&quot;],[&quot;Açores&quot;,&quot;Azores&quot;],[&quot;Beja&quot;,&quot;Beja&quot;],[&quot;Braga&quot;,&quot;Braga&quot;],[&quot;Bragança&quot;,&quot;Bragança&quot;],[&quot;Castelo Branco&quot;,&quot;Castelo Branco&quot;],[&quot;Coimbra&quot;,&quot;Coimbra&quot;],[&quot;Faro&quot;,&quot;Faro&quot;],[&quot;Guarda&quot;,&quot;Guarda&quot;],[&quot;Leiria&quot;,&quot;Leiria&quot;],[&quot;Lisboa&quot;,&quot;Lisbon&quot;],[&quot;Madeira&quot;,&quot;Madeira&quot;],[&quot;Portalegre&quot;,&quot;Portalegre&quot;],[&quot;Porto&quot;,&quot;Porto&quot;],[&quot;Santarém&quot;,&quot;Santarém&quot;],[&quot;Setúbal&quot;,&quot;Setúbal&quot;],[&quot;Viana do Castelo&quot;,&quot;Viana do Castelo&quot;],[&quot;Vila Real&quot;,&quot;Vila Real&quot;],[&quot;Viseu&quot;,&quot;Viseu&quot;],[&quot;Évora&quot;,&quot;Évora&quot;]]">Portugal</option>
2053<option value="Qatar" data-provinces="[]">Qatar</option>
2054<option value="Reunion" data-provinces="[]">Réunion</option>
2055<option value="Romania" data-provinces="[[&quot;Alba&quot;,&quot;Alba&quot;],[&quot;Arad&quot;,&quot;Arad&quot;],[&quot;Argeș&quot;,&quot;Argeș&quot;],[&quot;Bacău&quot;,&quot;Bacău&quot;],[&quot;Bihor&quot;,&quot;Bihor&quot;],[&quot;Bistrița-Năsăud&quot;,&quot;Bistriţa-Năsăud&quot;],[&quot;Botoșani&quot;,&quot;Botoşani&quot;],[&quot;Brașov&quot;,&quot;Braşov&quot;],[&quot;Brăila&quot;,&quot;Brăila&quot;],[&quot;București&quot;,&quot;Bucharest&quot;],[&quot;Buzău&quot;,&quot;Buzău&quot;],[&quot;Caraș-Severin&quot;,&quot;Caraș-Severin&quot;],[&quot;Cluj&quot;,&quot;Cluj&quot;],[&quot;Constanța&quot;,&quot;Constanța&quot;],[&quot;Covasna&quot;,&quot;Covasna&quot;],[&quot;Călărași&quot;,&quot;Călărași&quot;],[&quot;Dolj&quot;,&quot;Dolj&quot;],[&quot;Dâmbovița&quot;,&quot;Dâmbovița&quot;],[&quot;Galați&quot;,&quot;Galați&quot;],[&quot;Giurgiu&quot;,&quot;Giurgiu&quot;],[&quot;Gorj&quot;,&quot;Gorj&quot;],[&quot;Harghita&quot;,&quot;Harghita&quot;],[&quot;Hunedoara&quot;,&quot;Hunedoara&quot;],[&quot;Ialomița&quot;,&quot;Ialomița&quot;],[&quot;Iași&quot;,&quot;Iași&quot;],[&quot;Ilfov&quot;,&quot;Ilfov&quot;],[&quot;Maramureș&quot;,&quot;Maramureş&quot;],[&quot;Mehedinți&quot;,&quot;Mehedinți&quot;],[&quot;Mureș&quot;,&quot;Mureş&quot;],[&quot;Neamț&quot;,&quot;Neamţ&quot;],[&quot;Olt&quot;,&quot;Olt&quot;],[&quot;Prahova&quot;,&quot;Prahova&quot;],[&quot;Satu Mare&quot;,&quot;Satu Mare&quot;],[&quot;Sibiu&quot;,&quot;Sibiu&quot;],[&quot;Suceava&quot;,&quot;Suceava&quot;],[&quot;Sălaj&quot;,&quot;Sălaj&quot;],[&quot;Teleorman&quot;,&quot;Teleorman&quot;],[&quot;Timiș&quot;,&quot;Timiș&quot;],[&quot;Tulcea&quot;,&quot;Tulcea&quot;],[&quot;Vaslui&quot;,&quot;Vaslui&quot;],[&quot;Vrancea&quot;,&quot;Vrancea&quot;],[&quot;Vâlcea&quot;,&quot;Vâlcea&quot;]]">Romania</option>
2056<option value="Russia" data-provinces="[[&quot;Altai Krai&quot;,&quot;Altai Krai&quot;],[&quot;Altai Republic&quot;,&quot;Altai&quot;],[&quot;Amur Oblast&quot;,&quot;Amur&quot;],[&quot;Arkhangelsk Oblast&quot;,&quot;Arkhangelsk&quot;],[&quot;Astrakhan Oblast&quot;,&quot;Astrakhan&quot;],[&quot;Belgorod Oblast&quot;,&quot;Belgorod&quot;],[&quot;Bryansk Oblast&quot;,&quot;Bryansk&quot;],[&quot;Chechen Republic&quot;,&quot;Chechen&quot;],[&quot;Chelyabinsk Oblast&quot;,&quot;Chelyabinsk&quot;],[&quot;Chukotka Autonomous Okrug&quot;,&quot;Chukotka Okrug&quot;],[&quot;Chuvash Republic&quot;,&quot;Chuvash&quot;],[&quot;Irkutsk Oblast&quot;,&quot;Irkutsk&quot;],[&quot;Ivanovo Oblast&quot;,&quot;Ivanovo&quot;],[&quot;Jewish Autonomous Oblast&quot;,&quot;Jewish&quot;],[&quot;Kabardino-Balkarian Republic&quot;,&quot;Kabardino-Balkar&quot;],[&quot;Kaliningrad Oblast&quot;,&quot;Kaliningrad&quot;],[&quot;Kaluga Oblast&quot;,&quot;Kaluga&quot;],[&quot;Kamchatka Krai&quot;,&quot;Kamchatka Krai&quot;],[&quot;Karachay–Cherkess Republic&quot;,&quot;Karachay-Cherkess&quot;],[&quot;Kemerovo Oblast&quot;,&quot;Kemerovo&quot;],[&quot;Khabarovsk Krai&quot;,&quot;Khabarovsk Krai&quot;],[&quot;Khanty-Mansi Autonomous Okrug&quot;,&quot;Khanty-Mansi&quot;],[&quot;Kirov Oblast&quot;,&quot;Kirov&quot;],[&quot;Komi Republic&quot;,&quot;Komi&quot;],[&quot;Kostroma Oblast&quot;,&quot;Kostroma&quot;],[&quot;Krasnodar Krai&quot;,&quot;Krasnodar Krai&quot;],[&quot;Krasnoyarsk Krai&quot;,&quot;Krasnoyarsk Krai&quot;],[&quot;Kurgan Oblast&quot;,&quot;Kurgan&quot;],[&quot;Kursk Oblast&quot;,&quot;Kursk&quot;],[&quot;Leningrad Oblast&quot;,&quot;Leningrad&quot;],[&quot;Lipetsk Oblast&quot;,&quot;Lipetsk&quot;],[&quot;Magadan Oblast&quot;,&quot;Magadan&quot;],[&quot;Mari El Republic&quot;,&quot;Mari El&quot;],[&quot;Moscow&quot;,&quot;Moscow&quot;],[&quot;Moscow Oblast&quot;,&quot;Moscow Province&quot;],[&quot;Murmansk Oblast&quot;,&quot;Murmansk&quot;],[&quot;Nizhny Novgorod Oblast&quot;,&quot;Nizhny Novgorod&quot;],[&quot;Novgorod Oblast&quot;,&quot;Novgorod&quot;],[&quot;Novosibirsk Oblast&quot;,&quot;Novosibirsk&quot;],[&quot;Omsk Oblast&quot;,&quot;Omsk&quot;],[&quot;Orenburg Oblast&quot;,&quot;Orenburg&quot;],[&quot;Oryol Oblast&quot;,&quot;Oryol&quot;],[&quot;Penza Oblast&quot;,&quot;Penza&quot;],[&quot;Perm Krai&quot;,&quot;Perm Krai&quot;],[&quot;Primorsky Krai&quot;,&quot;Primorsky Krai&quot;],[&quot;Pskov Oblast&quot;,&quot;Pskov&quot;],[&quot;Republic of Adygeya&quot;,&quot;Adygea&quot;],[&quot;Republic of Bashkortostan&quot;,&quot;Bashkortostan&quot;],[&quot;Republic of Buryatia&quot;,&quot;Buryat&quot;],[&quot;Republic of Dagestan&quot;,&quot;Dagestan&quot;],[&quot;Republic of Ingushetia&quot;,&quot;Ingushetia&quot;],[&quot;Republic of Kalmykia&quot;,&quot;Kalmykia&quot;],[&quot;Republic of Karelia&quot;,&quot;Karelia&quot;],[&quot;Republic of Khakassia&quot;,&quot;Khakassia&quot;],[&quot;Republic of Mordovia&quot;,&quot;Mordovia&quot;],[&quot;Republic of North Ossetia–Alania&quot;,&quot;North Ossetia-Alania&quot;],[&quot;Republic of Tatarstan&quot;,&quot;Tatarstan&quot;],[&quot;Rostov Oblast&quot;,&quot;Rostov&quot;],[&quot;Ryazan Oblast&quot;,&quot;Ryazan&quot;],[&quot;Saint Petersburg&quot;,&quot;Saint Petersburg&quot;],[&quot;Sakha Republic (Yakutia)&quot;,&quot;Sakha&quot;],[&quot;Sakhalin Oblast&quot;,&quot;Sakhalin&quot;],[&quot;Samara Oblast&quot;,&quot;Samara&quot;],[&quot;Saratov Oblast&quot;,&quot;Saratov&quot;],[&quot;Smolensk Oblast&quot;,&quot;Smolensk&quot;],[&quot;Stavropol Krai&quot;,&quot;Stavropol Krai&quot;],[&quot;Sverdlovsk Oblast&quot;,&quot;Sverdlovsk&quot;],[&quot;Tambov Oblast&quot;,&quot;Tambov&quot;],[&quot;Tomsk Oblast&quot;,&quot;Tomsk&quot;],[&quot;Tula Oblast&quot;,&quot;Tula&quot;],[&quot;Tver Oblast&quot;,&quot;Tver&quot;],[&quot;Tyumen Oblast&quot;,&quot;Tyumen&quot;],[&quot;Tyva Republic&quot;,&quot;Tuva&quot;],[&quot;Udmurtia&quot;,&quot;Udmurt&quot;],[&quot;Ulyanovsk Oblast&quot;,&quot;Ulyanovsk&quot;],[&quot;Vladimir Oblast&quot;,&quot;Vladimir&quot;],[&quot;Volgograd Oblast&quot;,&quot;Volgograd&quot;],[&quot;Vologda Oblast&quot;,&quot;Vologda&quot;],[&quot;Voronezh Oblast&quot;,&quot;Voronezh&quot;],[&quot;Yamalo-Nenets Autonomous Okrug&quot;,&quot;Yamalo-Nenets Okrug&quot;],[&quot;Yaroslavl Oblast&quot;,&quot;Yaroslavl&quot;],[&quot;Zabaykalsky Krai&quot;,&quot;Zabaykalsky Krai&quot;]]">Russia</option>
2057<option value="Rwanda" data-provinces="[]">Rwanda</option>
2058<option value="Samoa" data-provinces="[]">Samoa</option>
2059<option value="San Marino" data-provinces="[]">San Marino</option>
2060<option value="Sao Tome And Principe" data-provinces="[]">São Tomé & Príncipe</option>
2061<option value="Saudi Arabia" data-provinces="[]">Saudi Arabia</option>
2062<option value="Senegal" data-provinces="[]">Senegal</option>
2063<option value="Serbia" data-provinces="[]">Serbia</option>
2064<option value="Seychelles" data-provinces="[]">Seychelles</option>
2065<option value="Sierra Leone" data-provinces="[]">Sierra Leone</option>
2066<option value="Singapore" data-provinces="[]">Singapore</option>
2067<option value="Sint Maarten" data-provinces="[]">Sint Maarten</option>
2068<option value="Slovakia" data-provinces="[]">Slovakia</option>
2069<option value="Slovenia" data-provinces="[]">Slovenia</option>
2070<option value="Solomon Islands" data-provinces="[]">Solomon Islands</option>
2071<option value="Somalia" data-provinces="[]">Somalia</option>
2072<option value="South Africa" data-provinces="[[&quot;Eastern Cape&quot;,&quot;Eastern Cape&quot;],[&quot;Free State&quot;,&quot;Free State&quot;],[&quot;Gauteng&quot;,&quot;Gauteng&quot;],[&quot;KwaZulu-Natal&quot;,&quot;KwaZulu-Natal&quot;],[&quot;Limpopo&quot;,&quot;Limpopo&quot;],[&quot;Mpumalanga&quot;,&quot;Mpumalanga&quot;],[&quot;North West&quot;,&quot;North West&quot;],[&quot;Northern Cape&quot;,&quot;Northern Cape&quot;],[&quot;Western Cape&quot;,&quot;Western Cape&quot;]]">South Africa</option>
2073<option value="South Georgia And The South Sandwich Islands" data-provinces="[]">South Georgia & South Sandwich Islands</option>
2074<option value="South Korea" data-provinces="[[&quot;Busan&quot;,&quot;Busan&quot;],[&quot;Chungbuk&quot;,&quot;North Chungcheong&quot;],[&quot;Chungnam&quot;,&quot;South Chungcheong&quot;],[&quot;Daegu&quot;,&quot;Daegu&quot;],[&quot;Daejeon&quot;,&quot;Daejeon&quot;],[&quot;Gangwon&quot;,&quot;Gangwon&quot;],[&quot;Gwangju&quot;,&quot;Gwangju City&quot;],[&quot;Gyeongbuk&quot;,&quot;North Gyeongsang&quot;],[&quot;Gyeonggi&quot;,&quot;Gyeonggi&quot;],[&quot;Gyeongnam&quot;,&quot;South Gyeongsang&quot;],[&quot;Incheon&quot;,&quot;Incheon&quot;],[&quot;Jeju&quot;,&quot;Jeju&quot;],[&quot;Jeonbuk&quot;,&quot;North Jeolla&quot;],[&quot;Jeonnam&quot;,&quot;South Jeolla&quot;],[&quot;Sejong&quot;,&quot;Sejong&quot;],[&quot;Seoul&quot;,&quot;Seoul&quot;],[&quot;Ulsan&quot;,&quot;Ulsan&quot;]]">South Korea</option>
2075<option value="South Sudan" data-provinces="[]">South Sudan</option>
2076<option value="Spain" data-provinces="[[&quot;A Coruña&quot;,&quot;A Coruña&quot;],[&quot;Albacete&quot;,&quot;Albacete&quot;],[&quot;Alicante&quot;,&quot;Alicante&quot;],[&quot;Almería&quot;,&quot;Almería&quot;],[&quot;Asturias&quot;,&quot;Asturias Province&quot;],[&quot;Badajoz&quot;,&quot;Badajoz&quot;],[&quot;Balears&quot;,&quot;Balears Province&quot;],[&quot;Barcelona&quot;,&quot;Barcelona&quot;],[&quot;Burgos&quot;,&quot;Burgos&quot;],[&quot;Cantabria&quot;,&quot;Cantabria Province&quot;],[&quot;Castellón&quot;,&quot;Castellón&quot;],[&quot;Ceuta&quot;,&quot;Ceuta&quot;],[&quot;Ciudad Real&quot;,&quot;Ciudad Real&quot;],[&quot;Cuenca&quot;,&quot;Cuenca&quot;],[&quot;Cáceres&quot;,&quot;Cáceres&quot;],[&quot;Cádiz&quot;,&quot;Cádiz&quot;],[&quot;Córdoba&quot;,&quot;Córdoba&quot;],[&quot;Girona&quot;,&quot;Girona&quot;],[&quot;Granada&quot;,&quot;Granada&quot;],[&quot;Guadalajara&quot;,&quot;Guadalajara&quot;],[&quot;
2076Guipúzcoa&quot;,&quot;Gipuzkoa&quot;],[&quot;Huelva&quot;,&quot;Huelva&quot;],[&quot;Huesca&quot;,&quot;Huesca&quot;],[&quot;Jaén&quot;,&quot;Jaén&quot;],[&quot;La Rioja&quot;,&quot;La Rioja Province&quot;],[&quot;Las Palmas&quot;,&quot;Las Palmas&quot;],[&quot;León&quot;,&quot;León&quot;],[&quot;Lleida&quot;,&quot;Lleida&quot;],[&quot;Lugo&quot;,&quot;Lugo&quot;],[&quot;Madrid&quot;,&quot;Madrid Province&quot;],[&quot;Melilla&quot;,&quot;Melilla&quot;],[&quot;Murcia&quot;,&quot;Murcia&quot;],[&quot;Málaga&quot;,&quot;Málaga&quot;],[&quot;Navarra&quot;,&quot;Navarra&quot;],[&quot;Ourense&quot;,&quot;Ourense&quot;],[&quot;Palencia&quot;,&quot;Palencia&quot;],[&quot;Pontevedra&quot;,&quot;Pontevedra&quot;],[&quot;Salamanca&quot;,&quot;Salamanca&quot;],[&quot;Santa Cruz de Tenerife&quot;,&quot;Santa Cruz de Tenerife&quot;],[&quot;Segovia&quot;,&quot;Segovia&quot;],[&quot;Sevilla&quot;,&quot;Seville&quot;],[&quot;Soria&quot;,&quot;Soria&quot;],[&quot;Tarragona&quot;,&quot;Tarragona&quot;],[&quot;Teruel&quot;,&quot;Teruel&quot;],[&quot;Toledo&quot;,&quot;Toledo&quot;],[&quot;Valencia&quot;,&quot;Valencia&quot;],[&quot;Valladolid&quot;,&quot;Valladolid&quot;],[&quot;Vizcaya&quot;,&quot;Biscay&quot;],[&quot;Zamora&quot;,&quot;Zamora&quot;],[&quot;Zaragoza&quot;,&quot;Zaragoza&quot;],[&quot;Álava&quot;,&quot;Álava&quot;],[&quot;Ávila&quot;,&quot;Ávila&quot;]]">Spain</option>
2077<option value="Sri Lanka" data-provinces="[]">Sri Lanka</option>
2078<option value="Saint Barthélemy" data-provinces="[]">St. Barthélemy</option>
2079<option value="Saint Helena" data-provinces="[]">St. Helena</option>
2080<option value="Saint Kitts And Nevis" data-provinces="[]">St. Kitts & Nevis</option>
2081<option value="Saint Lucia" data-provinces="[]">St. Lucia</option>
2082<option value="Saint Martin" data-provinces="[]">St. Martin</option>
2083<option value="Saint Pierre And Miquelon" data-provinces="[]">St. Pierre & Miquelon</option>
2084<option value="St. Vincent" data-provinces="[]">St. Vincent & Grenadines</option>
2085<option value="Sudan" data-provinces="[]">Sudan</option>
2086<option value="Suriname" data-provinces="[]">Suriname</option>
2087<option value="Svalbard And Jan Mayen" data-provinces="[]">Svalbard & Jan Mayen</option>
2088<option value="Sweden" data-provinces="[]">Sweden</option>
2089<option value="Switzerland" data-provinces="[]">Switzerland</option>
2090<option value="Taiwan" data-provinces="[]">Taiwan</option>
2091<option value="Tajikistan" data-provinces="[]">Tajikistan</option>
2092<option value="Tanzania, United Republic Of" data-provinces="[]">Tanzania</option>
2093<option value="Thailand" data-provinces="[[&quot;Amnat Charoen&quot;,&quot;Amnat Charoen&quot;],[&quot;Ang Thong&quot;,&quot;Ang Thong&quot;],[&quot;Bangkok&quot;,&quot;Bangkok&quot;],[&quot;Bueng Kan&quot;,&quot;Bueng Kan&quot;],[&quot;Buriram&quot;,&quot;Buri Ram&quot;],[&quot;Chachoengsao&quot;,&quot;Chachoengsao&quot;],[&quot;Chai Nat&quot;,&quot;Chai Nat&quot;],[&quot;Chaiyaphum&quot;,&quot;Chaiyaphum&quot;],[&quot;Chanthaburi&quot;,&quot;Chanthaburi&quot;],[&quot;Chiang Mai&quot;,&quot;Chiang Mai&quot;],[&quot;Chiang Rai&quot;,&quot;Chiang Rai&quot;],[&quot;Chon Buri&quot;,&quot;Chon Buri&quot;],[&quot;Chumphon&quot;,&quot;Chumphon&quot;],[&quot;Kalasin&quot;,&quot;Kalasin&quot;],[&quot;Kamphaeng Phet&quot;,&quot;Kamphaeng Phet&quot;],[&quot;Kanchanaburi&quot;,&quot;Kanchanaburi&quot;],[&quot;Khon Kaen&quot;,&quot;Khon Kaen&quot;],[&quot;Krabi&quot;,&quot;Krabi&quot;],[&quot;Lampang&quot;,&quot;Lampang&quot;],[&quot;Lamphun&quot;,&quot;Lamphun&quot;],[&quot;Loei&quot;,&quot;Loei&quot;],[&quot;Lopburi&quot;,&quot;Lopburi&quot;],[&quot;Mae Hong Son&quot;,&quot;Mae Hong Son&quot;],[&quot;Maha Sarakham&quot;,&quot;Maha Sarakham&quot;],[&quot;Mukdahan&quot;,&quot;Mukdahan&quot;],[&quot;Nakhon Nayok&quot;,&quot;Nakhon Nayok&quot;],[&quot;Nakhon Pathom&quot;,&quot;Nakhon Pathom&quot;],[&quot;Nakhon Phanom&quot;,&quot;Nakhon Phanom&quot;],[&quot;Nakhon Ratchasima&quot;,&quot;Nakhon Ratchasima&quot;],[&quot;Nakhon Sawan&quot;,&quot;Nakhon Sawan&quot;],[&quot;Nakhon Si Thammarat&quot;,&quot;Nakhon Si Thammarat&quot;],[&quot;Nan&quot;,&quot;Nan&quot;],[&quot;Narathiwat&quot;,&quot;Narathiwat&quot;],[&quot;Nong Bua Lam Phu&quot;,&quot;Nong Bua Lam Phu&quot;],[&quot;Nong Khai&quot;,&quot;Nong Khai&quot;],[&quot;Nonthaburi&quot;,&quot;Nonthaburi&quot;],[&quot;Pathum Thani&quot;,&quot;Pathum Thani&quot;],[&quot;Pattani&quot;,&quot;Pattani&quot;],[&quot;Pattaya&quot;,&quot;Pattaya&quot;],[&quot;Phangnga&quot;,&quot;Phang Nga&quot;],[&quot;Phatthalung&quot;,&quot;Phatthalung&quot;],[&quot;Phayao&quot;,&quot;Phayao&quot;],[&quot;Phetchabun&quot;,&quot;Phetchabun&quot;],[&quot;Phetchaburi&quot;,&quot;Phetchaburi&quot;],[&quot;Phichit&quot;,&quot;Phichit&quot;],[&quot;Phitsanulok&quot;,&quot;Phitsanulok&quot;],[&quot;
2093Phra Nakhon Si Ayutthaya&quot;,&quot;Phra Nakhon Si Ayutthaya&quot;],[&quot;Phrae&quot;,&quot;Phrae&quot;],[&quot;Phuket&quot;,&quot;Phuket&quot;],[&quot;Prachin Buri&quot;,&quot;Prachin Buri&quot;],[&quot;Prachuap Khiri Khan&quot;,&quot;Prachuap Khiri Khan&quot;],[&quot;Ranong&quot;,&quot;Ranong&quot;],[&quot;Ratchaburi&quot;,&quot;Ratchaburi&quot;],[&quot;Rayong&quot;,&quot;Rayong&quot;],[&quot;Roi Et&quot;,&quot;Roi Et&quot;],[&quot;Sa Kaeo&quot;,&quot;Sa Kaeo&quot;],[&quot;Sakon Nakhon&quot;,&quot;Sakon Nakhon&quot;],[&quot;Samut Prakan&quot;,&quot;Samut Prakan&quot;],[&quot;Samut Sakhon&quot;,&quot;Samut Sakhon&quot;],[&quot;Samut Songkhram&quot;,&quot;Samut Songkhram&quot;],[&quot;Saraburi&quot;,&quot;Saraburi&quot;],[&quot;Satun&quot;,&quot;Satun&quot;],[&quot;Sing Buri&quot;,&quot;Sing Buri&quot;],[&quot;Sisaket&quot;,&quot;Si Sa Ket&quot;],[&quot;Songkhla&quot;,&quot;Songkhla&quot;],[&quot;Sukhothai&quot;,&quot;Sukhothai&quot;],[&quot;Suphan Buri&quot;,&quot;Suphanburi&quot;],[&quot;Surat Thani&quot;,&quot;Surat Thani&quot;],[&quot;Surin&quot;,&quot;Surin&quot;],[&quot;Tak&quot;,&quot;Tak&quot;],[&quot;Trang&quot;,&quot;Trang&quot;],[&quot;Trat&quot;,&quot;Trat&quot;],[&quot;Ubon Ratchathani&quot;,&quot;Ubon Ratchathani&quot;],[&quot;Udon Thani&quot;,&quot;Udon Thani&quot;],[&quot;Uthai Thani&quot;,&quot;Uthai Thani&quot;],[&quot;Uttaradit&quot;,&quot;Uttaradit&quot;],[&quot;Yala&quot;,&quot;Yala&quot;],[&quot;Yasothon&quot;,&quot;Yasothon&quot;]]">Thailand</option>
2094<option value="Timor Leste" data-provinces="[]">Timor-Leste</option>
2095<option value="Togo" data-provinces="[]">Togo</option>
2096<option value="Tokelau" data-provinces="[]">Tokelau</option>
2097<option value="Tonga" data-provinces="[]">Tonga</option>
2098<option value="Trinidad and Tobago" data-provinces="[]">Trinidad & Tobago</option>
2099<option value="Tristan da Cunha" data-provinces="[]">Tristan da Cunha</option>
2100<option value="Tunisia" data-provinces="[]">Tunisia</option>
2101<option value="Turkey" data-provinces="[]">Türkiye</option>
2102<option value="Turkmenistan" data-provinces="[]">Turkmenistan</option>
2103<option value="Turks and Caicos Islands" data-provinces="[]">Turks & Caicos Islands</option>
2104<option value="Tuvalu" data-provinces="[]">Tuvalu</option>
2105<option value="United States Minor Outlying Islands" data-provinces="[]">U.S. Outlying Islands</option>
2106<option value="Uganda" data-provinces="[]">Uganda</option>
2107<option value="Ukraine" data-provinces="[]">Ukraine</option>
2108<option value="United Arab Emirates" data-provinces="[[&quot;Abu Dhabi&quot;,&quot;Abu Dhabi&quot;],[&quot;Ajman&quot;,&quot;Ajman&quot;],[&quot;Dubai&quot;,&quot;Dubai&quot;],[&quot;Fujairah&quot;,&quot;Fujairah&quot;],[&quot;Ras al-Khaimah&quot;,&quot;Ras al-Khaimah&quot;],[&quot;Sharjah&quot;,&quot;Sharjah&quot;],[&quot;Umm al-Quwain&quot;,&quot;Umm al-Quwain&quot;]]">United Arab Emirates</option>
2109<option value="United Kingdom" data-provinces="[[&quot;British Forces&quot;,&quot;British Forces&quot;],[&quot;England&quot;,&quot;England&quot;],[&quot;Northern Ireland&quot;,&quot;Northern Ireland&quot;],[&quot;Scotland&quot;,&quot;Scotland&quot;],[&quot;Wales&quot;,&quot;Wales&quot;]]">United Kingdom</option>
2110<option value="United States" data-provinces="[[&quot;Alabama&quot;,&quot;Alabama&quot;],[&quot;Alaska&quot;,&quot;Alaska&quot;],[&quot;American Samoa&quot;,&quot;American Samoa&quot;],[&quot;Arizona&quot;,&quot;Arizona&quot;],[&quot;Arkansas&quot;,&quot;Arkansas&quot;],[&quot;Armed Forces Americas&quot;,&quot;Armed Forces Americas&quot;],[&quot;Armed Forces Europe&quot;,&quot;Armed Forces Europe&quot;],[&quot;Armed Forces Pacific&quot;,&quot;Armed Forces Pacific&quot;],[&quot;California&quot;,&quot;California&quot;],[&quot;Colorado&quot;,&quot;Colorado&quot;],[&quot;Connecticut&quot;,&quot;Connecticut&quot;],[&quot;Delaware&quot;,&quot;Delaware&quot;],[&quot;District of Columbia&quot;,&quot;Washington DC&quot;],[&quot;Federated States of Micronesia&quot;,&quot;Micronesia&quot;],[&quot;Florida&quot;,&quot;Florida&quot;],[&quot;Georgia&quot;,&quot;Georgia&quot;],[&quot;Guam&quot;,&quot;Guam&quot;],[&quot;Hawaii&quot;,&quot;Hawaii&quot;],[&quot;Idaho&quot;,&quot;Idaho&quot;],[&quot;Illinois&quot;,&quot;Illinois&quot;],[&quot;Indiana&quot;,&quot;Indiana&quot;],[&quot;Iowa&quot;,&quot;Iowa&quot;],[&quot;Kansas&quot;,&quot;Kansas&quot;],[&quot;Kentucky&quot;,&quot;Kentucky&quot;],[&quot;Louisiana&quot;,&quot;Louisiana&quot;],[&quot;Maine&quot;,&quot;Maine&quot;],[&quot;Marshall Islands&quot;,&quot;Marshall Islands&quot;],[&quot;Maryland&quot;,&quot;Maryland&quot;],[&quot;Massachusetts&quot;,&quot;Massachusetts&quot;],[&quot;Michigan&quot;,&quot;Michigan&quot;],[&quot;Minnesota&quot;,&quot;Minnesota&quot;],[&quot;Mississippi&quot;,&quot;Mississippi&quot;],[&quot;Missouri&quot;,&quot;Missouri&quot;],[&quot;Montana&quot;,&quot;Montana&quot;],[&quot;Nebraska&quot;,&quot;Nebraska&quot;],[&quot;Nevada&quot;,&quot;Nevada&quot;],[&quot;New Hampshire&quot;,&quot;New Hampshire&quot;],[&quot;New Jersey&quot;,&quot;New Jersey&quot;],[&quot;New Mexico&quot;,&quot;New Mexico&quot;],[&quot;New York&quot;,&quot;New York&quot;],[&quot;North Carolina&quot;,&quot;North Carolina&quot;],[&quot;North Dakota&quot;,&quot;North Dakota&quot;],[&quot;Northern Mariana Islands&quot;,&quot;Northern Mariana Islands&quot;],[&quot;Ohio&quot;,&quot;Ohio&quot;],[&quot;Oklahoma&quot;,&quot;Oklahoma&quot;],[&quot;Oregon&quot;,&quot;Oregon&quot;],[&quot;Palau&quot;,&quot;Palau&quot;],[&quot;Pennsylvania&quot;,&quot;Pennsylvania&quot;],[&quot;Puerto Rico&quot;,&quot;Puerto Rico&quot;],[&quot;Rhode Island&quot;,&quot;Rhode Island&quot;],[&quot;South Carolina&quot;,&quot;South Carolina&quot;],[&quot;South Dakota&quot;,&quot;South Dakota&quot;],[&quot;Tennessee&quot;,&quot;Tennessee&quot;],[&quot;Texas&quot;,&quot;Texas&quot;],[&quot;Utah&quot;,&quot;Utah&quot;],[&quot;Vermont&quot;,&quot;Vermont&quot;],[&quot;Virgin Islands&quot;,&quot;U.S. Virgin Islands&quot;],[&quot;Virginia&quot;,&quot;Virginia&quot;],[&quot;Washington&quot;,&quot;Washington&quot;],[&quot;West Virginia&quot;,&quot;West Virginia&quot;],[&quot;Wisconsin&quot;,&quot;Wisconsin&quot;],[&quot;Wyoming&quot;,&quot;Wyoming&quot;]]">United States</option>
2111<option value="Uruguay" data-provinces="[[&quot;Artigas&quot;,&quot;Artigas&quot;],[&quot;Canelones&quot;,&quot;Canelones&quot;],[&quot;Cerro Largo&quot;,&quot;Cerro Largo&quot;],[&quot;Colonia&quot;,&quot;Colonia&quot;],[&quot;Durazno&quot;,&quot;Durazno&quot;],[&quot;Flores&quot;,&quot;Flores&quot;],[&quot;Florida&quot;,&quot;Florida&quot;],[&quot;Lavalleja&quot;,&quot;Lavalleja&quot;],[&quot;Maldonado&quot;,&quot;Maldonado&quot;],[&quot;Montevideo&quot;,&quot;Montevideo&quot;],[&quot;Paysandú&quot;,&quot;Paysandú&quot;],[&quot;Rivera&quot;,&quot;Rivera&quot;],[&quot;Rocha&quot;,&quot;Rocha&quot;],[&quot;Río Negro&quot;,&quot;Río Negro&quot;],[&quot;Salto&quot;,&quot;Salto&quot;],[&quot;San José&quot;,&quot;San José&quot;],[&quot;Soriano&quot;,&quot;Soriano&quot;],[&quot;Tacuarembó&quot;,&quot;Tacuarembó&quot;],[&quot;Treinta y Tres&quot;,&quot;Treinta y Tres&quot;]]">Uruguay</option>
2112<option value="Uzbekistan" data-provinces="[]">Uzbekistan</option>
2113<option value="Vanuatu" data-provinces="[]">Vanuatu</option>
2114<option value="Holy See (Vatican City State)" data-provinces="[]">Vatican City</option>
2115<option value="Venezuela" data-provinces="[[&quot;Amazonas&quot;,&quot;Amazonas&quot;],[&quot;Anzoátegui&quot;,&quot;Anzoátegui&quot;],[&quot;Apure&quot;,&quot;Apure&quot;],[&quot;Aragua&quot;,&quot;Aragua&quot;],[&quot;Barinas&quot;,&quot;Barinas&quot;],[&quot;Bolívar&quot;,&quot;Bolívar&quot;],[&quot;Carabobo&quot;,&quot;Carabobo&quot;],[&quot;Cojedes&quot;,&quot;Cojedes&quot;],[&quot;Delta Amacuro&quot;,&quot;Delta Amacuro&quot;],[&quot;Dependencias Federales&quot;,&quot;Federal Dependencies&quot;],[&quot;Distrito Capital&quot;,&quot;Capital&quot;],[&quot;Falcón&quot;,&quot;Falcón&quot;],[&quot;Guárico&quot;,&quot;Guárico&quot;],[&quot;La Guaira&quot;,&quot;Vargas&quot;],[&quot;Lara&quot;,&quot;Lara&quot;],[&quot;Miranda&quot;,&quot;Miranda&quot;],[&quot;Monagas&quot;,&quot;Monagas&quot;],[&quot;Mérida&quot;,&quot;Mérida&quot;],[&quot;Nueva Esparta&quot;,&quot;Nueva Esparta&quot;],[&quot;Portuguesa&quot;,&quot;Portuguesa&quot;],[&quot;Sucre&quot;,&quot;Sucre&quot;],[&quot;Trujillo&quot;,&quot;Trujillo&quot;],[&quot;Táchira&quot;,&quot;Táchira&quot;],[&quot;Yaracuy&quot;,&quot;Yaracuy&quot;],[&quot;Zulia&quot;,&quot;Zulia&quot;]]">Venezuela</option>
2116<option value="Vietnam" data-provinces="[]">Vietnam</option>
2117<option value="Wallis And Futuna" data-provinces="[]">Wallis & Futuna</option>
2118<option value="Western Sahara" data-provinces="[]">Western Sahara</option>
2119<option value="Yemen" data-provinces="[]">Yemen</option>
2120<option value="Zambia" data-provinces="[]">Zambia</option>
2121<option value="Zimbabwe" data-provinces="[]">Zimbabwe</option>`;
2122</script>
2122
2123<!-- END app snippet -->
2124<!-- BEGIN app snippet: initialize-forms -->
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180<script async>
2181  (() => {
2182    const FORM_DATA_TIMEOUT = 10000;
2183
2184    const devToolsEnabled = false;
2185    const latestEmbedVersion = "5.3.0";
2186    const isPreviewApp = "";
2187
2188    const nativeFormContainsErrors = false;
2189    const $preInitStyles = document.querySelector('#cf-pre-init-styles');
2190
2191    let mountedTextEntrypoints = false;
2192
2193    // i.e. ?view=orig, or "email taken" following a form crash
2194    if (onFallbackTemplate() || nativeFormContainsErrors) {
2195      // Reveal the original form
2196      $preInitStyles.parentElement.removeChild($preInitStyles);
2197      return;
2198    }
2199
2200    function start() {
2201      initializeForms();
2202      injectHiddenForms();
2203
2204      // Try for the next 5s to mount any dynamically injected forms.
2205      const intervalId = setInterval(() => {
2206        initializeForms();
2207      }, 100);
2208
2209      setTimeout(() => {
2210        clearInterval(intervalId);
2211      }, 5000);
2212    }
2213
2214    // This fires when a CF form has mounted on the page.
2215    // More reliable than putting this in start(), since developers can manually call
2216    // CF.initializeForms().
2217    window.addEventListener('cf:ready', () => {
2218      injectHiddenForms();
2219    });
2220
2221    if (['interactive', 'complete', 'loaded'].includes(document.readyState)) {
2222      start();
2223    } else {
2224      document.addEventListener('DOMContentLoaded', () => start());
2225    }
2226
2227    window.CF.initializeForms = initializeForms;
2228    const forms = [{"id":"dGtW0L","name":"Update Profile","version":"4.15.5","updated_at":1703085538}];
2229
2230    async function initializeForms() {
2231      // Semi-hack: Prevents older embed scripts from doing anything.
2232      // Any embed script before 4.12.0 checks only for the presence of this attribute,
2233      // not if it strictly equals "true".
2234      document.documentElement.setAttribute('data-cf-initialized', 'loading');
2235
2236      // Only mount text entrypoints once. This is expensive and causes render blocking time on mobile.
2237      if (!mountedTextEntrypoints) {
2238        mountedTextEntrypoints = true;
2239        mountTextEntrypoints();
2240      }
2241
2242      const reactTarget = `<!-- BEGIN app snippet: react-target-markup -->
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282<div class="cf-react-target">
2283  <div class="cf-preload">
2284    
2285      <div class="cf-preload-label cf-preload-item"></div>
2286      <div class="cf-preload-field cf-preload-item"></div>
2287    
2288      <div class="cf-preload-label cf-preload-item"></div>
2289      <div class="cf-preload-field cf-preload-item"></div>
2290    
2291      <div class="cf-preload-label cf-preload-item"></div>
2292      <div class="cf-preload-field cf-preload-item"></div>
2293    
2294      <div class="cf-preload-label cf-preload-item"></div>
2295      <div class="cf-preload-field cf-preload-item"></div>
2296    
2297    
2298      <span class="cf-preload-button cf-preload-item"></span>
2299    
2300      <span class="cf-preload-button cf-preload-item"></span>
2301    
2302  </div>
2303</div><!-- END app snippet -->`;
2304      const $forms = Array.from(document.querySelectorAll('form:not([data-cf-state])'));
2305      const entrypoints = [];
2306
2307      for (let $form of $forms) {
2308        if (isIgnored($form)) continue;
2309
2310        const id = getFormId($form);
2311        if (!id) continue;
2312
2313        const formData = forms.find(form => form.id === id);
2314        if (!formData) {
2315          console.error(`[Customer Fields] Unable to find form data with id ${id}`);
2316          setFormState($form, 'failed');
2317          continue;
2318        }
2319
2320        // Do not try to mount the same form element more than once,
2321        // otherwise failures are much harder to handle.
2322        if (isDetected($form)) continue;
2323        markAsDetected($form);
2324
2325        const $originalForm = $form.cloneNode(true);
2326
2327        // Shopify's captcha script can bind to the form that CF mounted to.
2328        // Their submit handler eventually calls the submit method after generating
2329        // the captcha response token, causing native submission behavior to occur.
2330        // We do not want this, so we override it to a no-op. See #2092
2331        $form.submit = () => {};
2332
2333        injectReactTarget($form);
2334        setFormState($form, 'loading');
2335
2336        const entrypoint = {
2337          $form,
2338          registration: isRegistrationForm($form),
2339          formId: formData.id,
2340          updatedAt: formData.updated_at,
2341          target: formData.target,
2342          originalForm: $originalForm,
2343          version: formData.version,
2344          restore: () => restoreEntrypoint(entrypoint),
2345        };
2346
2347        entrypoints.push(entrypoint);
2348
2349        // Required to be backwards compatible with older versions of the JS Form API, and prevent Shopify captcha
2350        $form.setAttribute('data-cf-form', formData.id);
2351        $form.setAttribute('action', '');
2352      }
2353
2354      if ($preInitStyles && $preInitStyles.parentElement) {
2355        $preInitStyles.parentElement.removeChild($preInitStyles);
2356      }
2357
2358      if (!entrypoints.length) return;
2359
2360      
2361      initializeEmbedScript();
2362
2363      function initializeEmbedScript() {
2364        if (!window.CF.requestedEmbedJS) {
2365          const $script = document.createElement('script');
2366          $script.src = getAssetUrl('customer-fields.js');
2367
2368          document.head.appendChild($script);
2369          window.CF.requestedEmbedJS = true;
2370        }
2371
2372        if (!window.CF.requestedEmbedCSS) {
2373          const $link = document.createElement('link');
2374          $link.href = getAssetUrl('customer-fields.css');
2375          $link.rel = 'stylesheet';
2376          $link.type = 'text/css';
2377
2378          document.head.appendChild($link);
2379          window.CF.requestedEmbedCSS = true;
2380        }
2381      }
2382      
2383
2384      const uniqueEntrypoints = entrypoints.reduce((acc, entrypoint) => {
2385        if (acc.some(e => e.formId === entrypoint.formId)) return acc;
2386        acc.push(entrypoint);
2387
2388        return acc;
2389      }, []);
2390
2391      const fullForms = await Promise.all(uniqueEntrypoints.map(e => getFormData(e.formId, e.updatedAt)));
2392
2393      fullForms.forEach((fullForm, index) => {
2394        // Could be a failed request.
2395        if (!fullForm) return;
2396
2397        const invalidFormTargets = ['customer-account'];
2398        if (invalidFormTargets.includes(fullForm.form.target)) {
2399          console.error('[Customer Fields] Invalid form target', fullForm);
2400          return;
2401        }
2402
2403        entrypoints
2404          .filter(e => e.formId === fullForm.form.id)
2405          .forEach(entrypoint => {
2406            entrypoint.form = {
2407              ...fullForm.form,
2408              currentRevision: fullForm.revision,
2409            };
2410          })
2411      });
2412
2413      entrypoints.forEach(e => {
2414        if (!e.form) {
2415          // Form can be null if the request failed one way or another.
2416          restoreEntrypoint(e);
2417          return;
2418        }
2419      });
2420
2421      if (window.CF.entrypoints) {
2422        window.CF.entrypoints.push(...entrypoints);
2423
2424        if (window.CF.mountForm) {
2425          entrypoints.forEach(entrypoint => {
2426            if (!entrypoint.form) return;
2427            
2428            window.CF.mountForm(entrypoint.form);
2429          });
2430        }
2431      } else {
2432        window.CF.entrypoints = entrypoints;
2433
2434        // The Core class has some logic that gets invoked as a result of this event
2435        // that we only want to fire once, so let's not emit this event multiple times.
2436        document.dispatchEvent(new CustomEvent('cf:entrypoints_ready'));
2437      }
2438
2439      function getFormData(formId, updatedAt) {
2440        return new Promise(resolve => {
2441          const controller = new AbortController();
2442          const timeoutId = setTimeout(() => controller.abort(), FORM_DATA_TIMEOUT);
2443          const maxAttempts = 3;
2444          let attempts = 0;
2445
2446          const attemptFetch = () => {
2447            if (controller.signal.aborted) {
2448              resolve(null);
2449              return;
2450            }
2451
2452            attempts++;
2453
2454            fetch(`https://app.customerfields.com/embed_api/v4/forms/${formId}.json?v=${updatedAt}`, {
2455              headers: {
2456                'X-Shopify-Shop-Domain': "drinktrade.myshopify.com"
2457              },
2458              signal: controller.signal
2459            }).then(response => {
2460              if (controller.signal.aborted) {
2461                resolve(null);
2462                return;
2463              }
2464
2465              if (response.ok) {
2466                response.json().then(resolve);
2467                return;
2468              }
2469
2470              if (attempts < maxAttempts) {
2471                pause(2000).then(() => attemptFetch());
2472                return;
2473              }
2474
2475              console.error(`[Customer Fields] Received non-OK response from the back-end when fetching form ${formId}`)
2476              resolve(null);
2477            }).catch((err) => {
2478              if (controller.signal.aborted) {
2479                resolve(null);
2480                return;
2481              }
2482
2483              if (attempts < maxAttempts) {
2484                pause(2000).then(() => attemptFetch());
2485                return;
2486              }
2487
2488              console.error(`[Customer Fields] Encountered unknown error while fetching form ${formId}`, err);
2489              resolve(null);
2490            });
2491          };
2492
2493          attemptFetch();
2494        });
2495      }
2496
2497      function restoreEntrypoint(entrypoint) {
2498        // This has a side effect of removing the Form class' submit handlers.
2499        // Previously this only replaced the original children within the form, but the submit event
2500        // was still being handled by our script.
2501        entrypoint.$form.replaceWith(entrypoint.originalForm);
2502
2503        // After a form has been restored, make sure we don't touch it again.
2504        // Otherwise we might treat it as an "async mounted" entrypoint and try to mount it again
2505        entrypoint.originalForm.setAttribute('data-cf-ignore', 'true');
2506
2507        // Opacity was set to 0 with the #cf-pre-init-styles element
2508        entrypoint.$form.style.opacity = 1;
2509
2510        console.error(`[Customer Fields] Encountered an issue while mounting form, reverting to original form contents.`, entrypoint);
2511      }
2512
2513      function getAssetUrl(filename) {
2514        // We changed this to always get the latest embed assets
2515        // 4.15.7 included a crucial hotfix for recaptcha, see #2028
2516
2517        return `https://static.customerfields.com/releases/${isPreviewApp ? '' : `${latestEmbedVersion}/`}${filename}`;
2518      }
2519
2520      function injectReactTarget($form) {
2521        const containsReactTarget = !!$form.querySelector('.cf-react-target');
2522        if (containsReactTarget) return;
2523
2524        $form.innerHTML = reactTarget;
2525      }
2526
2527      function isIgnored($form) {
2528        return $form.getAttribute('data-cf-ignore') === 'true';
2529      }
2530
2531      function isDetected($form) {
2532        return $form.__cfDetected === true;
2533      }
2534
2535      function markAsDetected($form) {
2536        $form.__cfDetected = true;
2537      }
2538
2539      function isEditAccountForm($form) {
2540        return $form.getAttribute('data-cf-edit-account') === 'true';
2541      }
2542
2543      function isVintageRegistrationForm($form) {
2544        return (
2545          window.location.pathname.includes('/account/register')
2546            && $form.id === 'create_customer'
2547            && !!$form.getAttribute('data-cf-form')
2548        );
2549      }
2550
2551      function isRegistrationForm($form) {
2552        try {        
2553          const isWithinAppBlock = !!$form.closest('.cf-form-block');
2554          if (isWithinAppBlock) return false;
2555          
2556          const action = $form.getAttribute('action');
2557          if (!action) return false;
2558
2559          const formActionUrl = new URL(action, window.location.origin);
2560          const hasAccountPath = formActionUrl.pathname.endsWith('/account');
2561          const matchesShopDomain = formActionUrl.host === window.location.host;
2562
2563          const hasPostMethod = $form.method.toLowerCase() === 'post';
2564          const $formTypeInput = $form.querySelector('[name="form_type"]')
2565          
2566          const hasCreateCustomerFormType = $formTypeInput && $formTypeInput.value === 'create_customer';
2567          return (matchesShopDomain && hasAccountPath && hasPostMethod) || hasCreateCustomerFormType
2568        } catch (err) {
2569          return false;
2570        }
2571      }
2572
2573      function mountTextEntrypoints() {
2574        const tree = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, (node) => {
2575          if (typeof node.data !== 'string' || !node.data) return NodeFilter.FILTER_REJECT;
2576
2577          return node.data.includes('data-cf-form="') ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
2578        });
2579
2580        /**
2581         * Walks through every text node on the document that contains 'data-cf-form="' and attempts to
2582         * splice a form element in place of every shortcode.
2583         *
2584         * @type Node[]
2585         */
2586        while (tree.nextNode()) {
2587          let node = tree.currentNode;
2588          const parser = new DOMParser();
2589
2590          while (entrypointContent = node.data.match(/<form.*data-cf-form="[a-zA-Z0-9]+".*>.*<\/form>/)) {
2591            const [match] = entrypointContent;
2592
2593            const doc = parser.parseFromString(match, 'text/html');
2594            const $form = doc.body.firstElementChild;
2595
2596            // Substring is better than split here in case the text node contains multiple forms.
2597            const beforeText = node.data.substring(0, node.data.indexOf(match));
2598            const afterText = node.data.substring(node.data.indexOf(match) + match.length);
2599
2600            node.replaceWith($form);
2601            node.data = node.data.replace(match, '');
2602
2603            if (beforeText) $form.insertAdjacentText('beforebegin', beforeText);
2604            if (afterText) {
2605              $form.insertAdjacentText('afterend', afterText);
2606
2607              // Continue scanning the rest of the node text in case there are more forms
2608              node = $form.nextSibling;
2609            }
2610          }
2611        }
2612      }
2613
2614      function getFormId($form) {
2615        const currentFormId = $form.getAttribute('data-cf-form');
2616
2617        let id;
2618
2619        if (isEditAccountForm($form)) {
2620          id = "dGtW0L";
2621        } else if (isVintageRegistrationForm($form) || isRegistrationForm($form)) {
2622          id = "";
2623        }
2624
2625        return id || currentFormId;
2626      }
2627
2628      function setFormState($form, state) {
2629        $form.setAttribute('data-cf-state', state);
2630      }
2631    }
2632
2633    function onFallbackTemplate() {
2634      const params = new URLSearchParams(window.location.search);
2635
2636      return location.pathname.includes('/account/register') && params.get('view') === 'orig';
2637    }
2638
2639    function injectHiddenForms() {
2640      if (!devToolsEnabled && !CF.entrypoints?.length) return;
2641      if (document.querySelector('#cf_hidden_forms')) return;
2642
2643      const container = document.createElement('div');
2644      
2645      container.id = "cf_hidden_forms";
2646      container.style.display = 'none';
2647      container.setAttribute('aria-hidden', 'true');
2648
2649      document.body.appendChild(container);
2650
2651      const loginForm = createLoginForm();
2652      const recoverForm = createRecoverPasswordForm();
2653
2654      container.appendChild(loginForm);
2655      container.appendChild(recoverForm);
2656
2657      if (window.Shopify.captcha) {
2658        // Only applicable for grecaptcha shops, but also safe for hcaptcha
2659        triggerShopifyRecaptchaLoad(container);
2660
2661        window.Shopify.captcha.protect(loginForm);
2662        window.Shopify.captcha.protect(recoverForm);
2663      }
2664    }
2665
2666    function triggerShopifyRecaptchaLoad(container) {
2667      if (document.getElementById('cf-hidden-recaptcha-trigger__create_customer')) return;
2668      if (document.getElementById('cf-hidden-recaptcha-trigger__contact')) return;
2669
2670      // Triggering a focus event on a form causes Shopify to load their recaptcha script.
2671      // This allows our Customer class to handle the copying/injecting of `grecaptcha` so we can
2672      // handle multiple `grecaptcha` instances. See methods `injectRecaptchaScript`
2673      // and `captureShopifyGrecaptcha` in `Customer.ts`.
2674      // Note: We have to try both types, in case the merchant has only one of the two recaptcha
2675      // options checked
2676      const $customerRecaptchaForm = createDummyRecaptchaForm('/account', 'create_customer');
2677      container.appendChild($customerRecaptchaForm);
2678
2679      const $contactRecaptchaForm = createDummyRecaptchaForm('/contact', 'contact');
2680      container.appendChild($contactRecaptchaForm);
2681
2682      triggerFocusEvent($customerRecaptchaForm);
2683      triggerFocusEvent($contactRecaptchaForm);
2684    }
2685
2686    function createDummyRecaptchaForm(action, type) {
2687      const dummyRecaptchaForm = document.createElement('form');
2688      
2689      dummyRecaptchaForm.action = action;
2690      dummyRecaptchaForm.method = "post";
2691      dummyRecaptchaForm.id = `cf-hidden-recaptcha-trigger__${type}`;
2692      dummyRecaptchaForm.setAttribute('data-cf-ignore', 'true');
2693      dummyRecaptchaForm.setAttribute('aria-hidden', 'true');
2694      dummyRecaptchaForm.style.display = 'none';
2695
2696      const formTypeInput = document.createElement('input');
2697
2698      formTypeInput.name = "form_type"
2699      formTypeInput.setAttribute('value', type);
2700
2701      dummyRecaptchaForm.appendChild(formTypeInput);
2702
2703      return dummyRecaptchaForm;
2704    }
2705
2706    function triggerFocusEvent(element) {
2707      const event = new Event('focusin', { bubbles: true, cancelable: false });
2708      element.dispatchEvent(event);
2709    }
2710
2711    function createLoginForm() {
2712      const form = createDummyRecaptchaForm('/account/login', 'customer_login');
2713      const email = document.createElement('input');
2714      email.name = 'customer[email]';
2715
2716      const password = document.createElement('input');
2717      password.name = 'customer[password]';
2718
2719      const redirect = document.createElement('input');
2720      redirect.name = 'return_to';
2721
2722      form.appendChild(email);
2723      form.appendChild(password);
2724      form.appendChild(redirect);
2725      form.setAttribute('aria-hidden', 'true');
2726
2727      return form;
2728    }
2729
2730    function createRecoverPasswordForm() {
2731      const parser = new DOMParser();
2732      const result = parser.parseFromString(`<form method="post" action="/account/recover" accept-charset="UTF-8"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="✓" /><input name="email" value="" /><input name="return_to" value="" /></form>`, 'text/html');
2733      const form = result.querySelector('form');
2734      
2735      form.setAttribute('aria-hidden', 'true');
2736      form.id = "cf_recover_password_form";
2737
2738      return form;
2739    }
2740
2741    function pause(ms) {
2742      return new Promise(resolve => setTimeout(resolve, ms));
2743    }
2744  })();
2745</script>
2745
2746
2747<!-- END app snippet -->
2748<!-- BEGIN app snippet: theme-data -->
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788<script>
2789  document.addEventListener('DOMContentLoaded', async () => {
2790    let theme;
2791
2792    if (window.Shopify) {
2793      theme = {
2794        name: window.Shopify.theme.schema_name,
2795        version: window.Shopify.theme.schema_version,
2796      }
2797    }
2798
2799    if (theme) {
2800      document.documentElement.setAttribute('data-theme-name', theme.name);
2801      document.documentElement.setAttribute('data-theme-version', theme.version);
2802    }
2803  });
2804</script>
2804<!-- END app snippet -->
2805<!-- BEGIN app snippet: form-preload-style -->
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845<style>
2846.cf-preload {
2847  margin-top: 50px;
2848  opacity: 0.5;
2849  text-align: left;
2850}
2851
2852.cf-preload-item {
2853  position: relative;
2854  overflow: hidden;
2855  background: #e2e2e2;
2856  border-radius: 4px;
2857  display: block !important;
2858}
2859
2860.cf-preload-item:before {
2861  content: '';
2862  position: absolute;
2863  top: 0;
2864  left: 0;
2865  height: 100%;
2866  width: 100%;
2867  background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.5), rgba(255,255,255,0.5), rgba(255,255,255,0));
2868  animation: cf-preload 1s cubic-bezier(0.33, 0.8, 0.85, 0.77) infinite;
2869  z-index: 1;
2870}
2871
2872.cf-preload-label {
2873  display: inline-block !important;
2874  width: 50%;
2875  height: 20px;
2876  background: #eee;
2877  margin-bottom: 5px;
2878}
2879
2880.cf-preload-field {
2881  margin-bottom: 25px;
2882  height: 40px;
2883}
2884
2885.cf-preload-button {
2886  display: inline-block !important;
2887  width: 120px;
2888  margin-right: 15px;
2889  height: 40px;
2890}
2891
2892.cf-form-inner {
2893  animation: cf-fadein 500ms cubic-bezier(0.11, 0.33, 0.24, 1);
2894}
2895
2896@keyframes cf-preload {
2897  from {
2898    transform: translateX(-100%);
2899    opacity: 0;
2900  }
2901  to {
2902    transform: translateX(100%);
2903    opacity: 1;
2904  }
2905}
2906
2907@keyframes cf-fadein {
2908  from {
2909    opacity: 0;
2910    transform: translateY(30px);
2911  }
2912  to {
2913    opacity: 1;
2914    transform: translateY(0);
2915  }
2916}
2917</style><!-- END app snippet -->
2918<!-- BEGIN app snippet: inject-edit-link -->
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959  
2960  
2961
2962  
2963
2964  
2965
2966  
2967    
2967<script>
2968      document.addEventListener('DOMContentLoaded', () => {
2969        const target = getTargetLink();
2970        if (!target) return;
2971        const editAccountLink = document.createElement('a');
2972        
2973        editAccountLink.href = `/tools/customr/edit-account`;
2974        editAccountLink.className = `${target.className} cf-edit-account-link`;
2975        editAccountLink.innerText = "Edit account";
2976
2977        target.insertAdjacentElement('afterend', editAccountLink);
2978
2979        // Works reliably in both vertical and horizontal alignments.
2980        // Vertically, height will be the natural line-height based off the current font-size.
2981        // Horizontally, this will act as five space characters in between the links.
2982        // This is better than a static margin on the editAccountLink, as you don't really know what to apply.
2983        // You don't know what alignment you're in, so you'd have to apply either margin-top or margin-left.
2984        // This works as you don't have to check since it works in either situation.
2985        const spacer = document.createElement('div');
2986        spacer.className = "cf-edit-account-link-spacer";
2987        spacer.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
2988
2989        target.insertAdjacentElement('afterend', spacer);
2990
2991        removeVintageCFEditLink();
2992
2993        function getTargetLink() {
2994          const main = document.querySelector('main') || document;
2995          // :not([href*="?page="]) in the querySelector below prevents the "edit account" link from being enjected on the /account/addresses page with pagination. 
2996          const addressesLink = main.querySelector('[href*="/account/addresses"]:not([href*="?page="]):not([data-cf-ignore])');
2997          const logoutLink = main.querySelector('[href*="/account/logout"]:not([data-cf-ignore])');
2998
2999          return addressesLink || logoutLink;
3000        }
3001
3002        function removeVintageCFEditLink() {
3003          // CustomerHub requires the edit link to be present.
3004          if (window.customerHub) return;
3005
3006          // Remove it instead of changing its href attribute.
3007          // We want merchants to ultimately remove all vintage CF code, in the event they do,
3008          // this edit link will be gone.
3009          const editLink = document.querySelector('a[href*="/account?view=edit"]:not([data-cf-ignore])')
3010          if (!editLink) return;
3011
3012          editLink.parentElement.removeChild(editLink);
3013        }
3014      });
3015    </script>
3015
3016
3017    <style>
3018      .cf-edit-account-link {
3019        display: block;
3020      }
3021
3022      /* Theme fixes */
3023      [data-theme-name="Warehouse"] .cf-edit-account-link-spacer {
3024        display: none;
3025      }
3026    </style>
3027  
3028<!-- END app snippet -->
3029<!-- BEGIN app snippet: language -->
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069<script>
3070  window.CF.language = window.CF.language || {};
3071  window.CF.language.editAccountHeading = "Edit account";
3072  window.CF.language.editAccountBackLinkText = "Back to account";
3073</script>
3073<!-- END app snippet -->
3074
3075<!-- BEGIN app snippet: developer-tools -->
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118<script>
3119  (function() {
3120    const callbacksHandled = [];
3121
3122    function handleCallback(callback) {
3123      if (callbacksHandled.indexOf(callback) > -1) return;
3124
3125      callback();
3126      callbacksHandled.push(callback);
3127    };
3128
3129    function domIsReady() {
3130      return /complete|interactive|loaded/.test(document.readyState);
3131    };
3132
3133    function customerExistsInWindow() {
3134      const customerPresent = ('customer' in window.CF);
3135      if (!customerPresent) return false;
3136
3137      const hasCaptchaEnabled = document.body.getAttribute('data-cf-captcha-enabled') === 'true';
3138      if (hasCaptchaEnabled) {
3139        const captchaReady = document.body.getAttribute('data-cf-captcha-ready') === 'true';
3140        if (!captchaReady) return false;
3141      }
3142
3143      return true;
3144    };
3145
3146    function embedFormHasMounted() {
3147      return !!document.querySelector('.cf-form-inner');
3148    };
3149
3150    function customerReady(callback) {
3151      if (customerExistsInWindow()) {
3152        handleCallback(callback);
3153      } else {
3154        function createListener() {
3155          document.addEventListener("cf:customer_ready", function() {
3156            handleCallback(callback);
3157          });
3158        };
3159
3160        if (domIsReady()) {
3161          createListener();
3162        } else {
3163          document.addEventListener("DOMContentLoaded", function() {
3164            if (customerExistsInWindow()) {
3165              handleCallback(callback);
3166            } else {
3167              createListener();
3168            }
3169          });
3170        }
3171      }
3172    }
3173
3174    function formsReady(callback) {
3175      if (embedFormHasMounted()) {
3176        handleCallback(callback);
3177      } else {
3178        function createListener() {
3179          document.addEventListener("cf:ready", function() {
3180            handleCallback(callback);
3181          });
3182        };
3183
3184        if (domIsReady()) {
3185          createListener();
3186        } else {
3187          document.addEventListener("DOMContentLoaded", function() {
3188            if (embedFormHasMounted()) {
3189              handleCallback(callback);
3190            } else {
3191              createListener();
3192            }
3193          });
3194        }
3195      }
3196    };
3197
3198    window.CF.customerReady = customerReady;
3199    window.CF.ready = formsReady;
3200
3201    
3202      window.CF.customerReady = () => {
3203        console.warn('[Customer Fields] In order to access CF.customerReady, you need to enable developer tools in the Customer Fields app embed.');
3204      }
3205    
3206
3207    function initializeApiScript() {
3208      if (window.CF.requestedAPI) return;
3209      window.CF.requestedAPI = true;
3210
3211      const $script = document.createElement('script');
3212      $script.src = getAssetUrl('cf-api.js');
3213
3214      document.head.appendChild($script);
3215    }
3216
3217    function getAssetUrl(filename) {
3218      return `https://static.customerfields.com/releases/5.3.0/${filename}`;
3219    }
3220  })();
3221</script>
3221
3222
3223
3224<!-- END app snippet -->
3225
3226<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-loyalty-rewards/blocks/loader-app-embed-block/2f9660df-5018-4e02-9868-ee1fb88d6ccd -->
3227    
3227<script src="https://cdn-widgetsrepository.yotpo.com/v1/loader/RE8BtND7urgOHdFDaTsGbw" async></script>
3227
3228
3229
3230
3231
3232<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245  
3245<script async src="https://static.klaviyo.com/onsite/js/WmYpcv/klaviyo.js?company_id=WmYpcv"></script>
3245
3246  
3246<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
3246
3247
3248  
3249
3250
3251
3252
3253  
3253<script>
3254    window.klaviyoReviewsProductDesignMode = false
3255  </script>
3255
3256
3257
3258
3259  <!-- BEGIN app snippet: customer-hub-data -->
3259<script>
3260  if (!window.customerHub) {
3261    window.customerHub = {};
3262  }
3263  window.customerHub.storefrontRoutes = {
3264    login: "https://www.drinktrade.com/customer_authentication/redirect?locale=en&region_country=US?return_url=%2F%23k-hub",
3265    register: "https://shopify.com/79471280447/account?locale=en&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJkcmlua3RyYWRlLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MDg3ODc4OCwibmJmIjoxNzkwMjczOTg4fQ.QEQWNp3Q7-k4vtd_RM6aP1SG9v7_bYHuMxjisYwWXsI?return_url=%2F%23k-hub",
3266    logout: "/account/logout",
3267    profile: "/account",
3268    addresses: "/account/addresses",
3269  };
3270  
3271  window.customerHub.userId = null;
3272  
3273  window.customerHub.storeDomain = "drinktrade.myshopify.com";
3274
3275  
3276
3277  
3278    window.customerHub.storeLocale = {
3279        currentLanguage: 'en',
3280        currentCountry: 'US',
3281        availableLanguages: [
3282          
3283            {
3284              iso_code: 'en',
3285              endonym_name: 'English'
3286            }
3287          
3288        ],
3289        availableCountries: [
3290          
3291            {
3292              iso_code: 'US',
3293              name: 'United States',
3294              currency_code: 'USD'
3295            }
3296          
3297        ]
3298    };
3299  
3300</script>
3300
3301<!-- END app snippet -->
3302
3303
3304
3305
3306
3307
3308
3309<!-- END app block --><link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
3310<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 79471280447,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 3310
3310
3311<script>
3312  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
3313</script>
vendor: 1 bytes, line 3313
3313
3314<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
3314).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 79471280447,storefrontBaseUrl: "https://www.drinktrade.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.drinktrade.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b"],webPixelsConfigList: [{"id":"2420801855","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/8a155db7e33f38378045a1700f06df67a5eeed21\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
3314,"dataSharingState":"unrestricted"},{"id":"2414936383","configuration":"{\"shopId\":\"drinktrade.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31536d5a2ef62c1887054e49fd58dba0","type":"APP","apiClientId":4845829,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2079523135","configuration":"{\"accountID\":\"WmYpcv\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"1116799295","configuration":"{\"advertiser\":\"tradecoffee\",\"userId\":\"afa61374-72b6-4fbd-b267-fb18bf532a20\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c19c52670ee3dad6480bef13cf6d1e03","type":"APP","apiClientId":39871250433,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1044316479","configuration":"{\"accountID\":\"10924\",\"micrositeDomain\":\"partners.drinktrade.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9fae8f5cb0b9c97477ac364bb3772a0c","type":"APP","apiClientId":4862993,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"225083711","configuration":"{\"shop\":\"drinktrade.myshopify.com\", \"shopliftUrl\":\"https:\/\/events.shoplift.ai\/api\/events\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dabcda9558be25394b12ce3ce899568b","type":"APP","apiClientId":7521861633,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"118489407","configuration":"{\"apiKey\":\"9V8G3W0Z8J\",\"host\":\"searchserverapi1.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5559ea45e47b67d15b30b79e7c6719da","type":"APP","apiClientId":578825,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"95846719","configuration":"{\"campaignID\":\"9472\",\"externalExecutionURL\":\"https:\/\/engine.saasler.com\/api\/v1\/webhook_executions\/10d9f549551605c49d1ac207b4a34ac4\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7a47b06116c806e4367c27d301f4f458","type":"APP","apiClientId":3546795,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"121700671","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"20","type":"CUSTOM","privacyPurposes":[],"name":"RevenueRoll"},{"id":"133005631","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"24","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Ads"}
3314,{"id":"135233855","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"6","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Ads (Dev)"},{"id":"187400511","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Wellput Tracking"},{"id":"210010431","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Elevar - Checkout Tracking"},{"id":"221544767","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Posthog Checkout Analytics"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Trade Coffee","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"drinktrade.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.drinktrade.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"10539308712255","handle":"discovery-trial-essential","isCollective":false,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54768966205759","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10539310350655","handle":"discovery-trial-signature","isCollective":false,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54769221665087","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9972375879999","handle":"coffee-gift-subscription","isCollective":false,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50875695169855","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9920991953215","handle":"mizudashi-cold-brew-coffee-maker-black-1000ml","isCollective":true,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50570934649151","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9917830693183","handle":"oxo-cold-brew-coffee-maker-40oz","isCollective":true,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50550409462079","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9917830758719","handle":"oxo-compact-cold-brew-maker-24oz","isCollective":true,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50550409494847","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9924663968063","handle":"toddy-essential-brewer","isCollective":false,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50602500096319","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.drinktrade.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"188794601791","themePublished":"true","eventMetadataId":"d8b26296-d018-4720-9125-9fee3331405a","pageType":"page","resourceId":"135353368895","shopId":"79471280447","storefrontBaseUrl":"https:\/\/www.drinktrade.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
3314<script>
3315  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
3316  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
3317  window.ShopifyAnalytics.meta.currency = 'USD';
3318  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":135353368895,"requestId":"6e00a202-f8a2-44d8-adbf-6423022562e4-1790273988"}};
3319  for (var attr in meta) {
3320    window.ShopifyAnalytics.meta[attr] = meta[attr];
3321  }
3322</script>
vendor: 1 bytes, line 3322
3322
3323<script class="analytics">
3324  (function () {
3325    var customDocumentWrite = function(content) {
3326      var jquery = null;
3327
3328      if (window.jQuery) {
3329        jquery = window.jQuery;
3330      } else if (window.Checkout && window.Checkout.$) {
3331        jquery = window.Checkout.$;
3332      }
3333
3334      if (jquery) {
3335        jquery('body').append(content);
3336      }
3337    };
3338
3339    var hasLoggedConversion = function(token) {
3340      if (token) {
3341        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
3342      }
3343      return false;
3344    }
3345
3346    var setCookieIfConversion = function(token) {
3347      if (token) {
3348        var twoMonthsFromNow = new Date(Date.now());
3349        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
3350
3351        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
3352      }
3353    }
3354
3355    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
3356    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
3357    if (trekkie.integrations) {
3358      return;
3359    }
3360    trekkie.methods = [
3361      'identify',
3362      'page',
3363      'ready',
3364      'track',
3365      'trackForm',
3366      'trackLink'
3367    ];
3368    trekkie.factory = function(method) {
3369      return function() {
3370        var args = Array.prototype.slice.call(arguments);
3371        args.unshift(method);
3372        trekkie.push(args);
3373        if (method == 'track' || method == 'page') {
3374          try {
3375            if (window.__TREKKIE_SHIM_QUEUE == null) {
3376              window.__TREKKIE_SHIM_QUEUE = [];
3377            }
3378            window.__TREKKIE_SHIM_QUEUE.push({
3379              from: 'trekkie-stub',
3380              method: method,
3381              args: args.slice(1)
3382            });
3383          } catch (e) {
3384            // no-op
3385          }
3386        }
3387        return trekkie;
3388      };
3389    };
3390    for (var i = 0; i < trekkie.methods.length; i++) {
3391      var key = trekkie.methods[i];
3392      trekkie[key] = trekkie.factory(key);
3393    }
3394    trekkie.load = function(config) {
3395      trekkie.config = config || {};
3396      trekkie.config.initialDocumentCookie = document.cookie;
3397      var first = document.getElementsByTagName('script')[0];
3398var script = document.createElement('script');
3399script.type = 'text/javascript';
3400script.onerror = function(e) {
3401  var scriptFallback = document.createElement('script');
3402  scriptFallback.type = 'text/javascript';
3403  scriptFallback.onerror = function(error) {
3404          var Monorail = {
3405      produce: function produce(monorailDomain, schemaId, payload) {
3406        var currentMs = new Date().getTime();
3407        var event = {
3408          schema_id: schemaId,
3409          payload: payload,
3410          metadata: {
3411            event_created_at_ms: currentMs,
3412            event_sent_at_ms: currentMs
3413          }
3414        };
3415        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
3416      },
3417      sendRequest: function sendRequest(endpointUrl, payload) {
3418        // Try the sendBeacon API
3419        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
3420          var blobData = new window.Blob([payload], {
3421            type: 'text/plain'
3422          });
3423
3424          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
3425            return true;
3426          } // sendBeacon was not successful
3427
3428        } // XHR beacon
3429
3430        var xhr = new XMLHttpRequest();
3431
3432        try {
3433          xhr.open('POST', endpointUrl);
3434          xhr.setRequestHeader('Content-Type', 'text/plain');
3435          xhr.send(payload);
3436        } catch (e) {
3437          console.log(e);
3438        }
3439
3440        return false;
3441      },
3442      isIos12: function isIos12() {
3443        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
3444      }
3445    };
3446    Monorail.produce('monorail-edge.shopifysvc.com',
3447      'trekkie_storefront_load_errors/1.1',
3448      {shop_id: 79471280447,
3449      theme_id: 188794601791,
3450      app_name: "storefront",
3451      context_url: window.location.href,
3452      source_url: "//www.drinktrade.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"});
3453
3454  };
3455  scriptFallback.async = true;
3456  scriptFallback.src = '//www.drinktrade.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
3457  first.parentNode.insertBefore(scriptFallback, first);
3458};
3459script.async = true;
3460script.src = '//www.drinktrade.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
3461first.parentNode.insertBefore(script, first);
3462
3463    };
3464    trekkie.load(
3465      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":79471280447,"isMerchantRequest":null,"themeId":188794601791,"themeCityHash":"18286585190089777245","contentLanguage":"en","currency":"USD","eventMetadataId":"d8b26296-d018-4720-9125-9fee3331405a"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
3466    );
3467
3468    var loaded = false;
3469    trekkie.ready(function() {
3470      if (loaded) return;
3471      loaded = true;
3472
3473      window.ShopifyAnalytics.lib = window.trekkie;
3474
3475      var originalDocumentWrite = document.write;
3476      document.write = customDocumentWrite;
3477      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
3478      document.write = originalDocumentWrite;
3479
3480      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
3481      var token = match? match[1]: undefined;
3482      if (!hasLoggedConversion(token)) {
3483        setCookieIfConversion(token);
3484        
3485      }
3486    });
3487
3488    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":135353368895,"requestId":"6e00a202-f8a2-44d8-adbf-6423022562e4-1790273988","shopifyEmitted":true});
3489
3490    var eventsListenerScript = document.createElement('script');
3491    eventsListenerScript.async = true;
3492    eventsListenerScript.src = "//www.drinktrade.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
3493    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
3494})();</script>
vendor: 1 bytes, line 3494
3494
3495<script
3496  defer
3497  src="https://www.drinktrade.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
3498  data-application="storefront-renderer"
3499  data-shop-id="79471280447"
3500  data-render-region="gcp-us-central1"
3501  data-page-type="page"
3502  data-theme-instance-id="188794601791"
3503  data-theme-name="Shopify Shell theme"
3504  data-theme-version="2.0.0"
3505  data-monorail-region="shop_domain"
3506  data-resource-timing-sampling-rate="10"
3507  data-shs="true"
3508  data-shs-beacon="true"
3509  data-shs-export-with-fetch="true"
3510  data-shs-logs-sample-rate="1"
3511  data-shs-beacon-endpoint="https://www.drinktrade.com/api/collect"
3512></script>
3512
3513<meta name="shopify-y" content="300dea49-bd40-4e46-8c2b-64f7aa1a8e20" data-expiration="1821831588000"><meta name="shopify-s" content="549cd075-a59b-4634-a4e4-611ba79ccb39" data-expiration="1790275788000"><meta name="new-cookie-storage-activated" content="t">
3514</head>
3515
3516  <body class="gradient"><div id="shopify-section-announcement" class="shopify-section announcement__section">
3517
3518
3519
3520  <div class="announcement" style="background-color: #ebff88; color: #252525;">
3521    <p>Free bag of coffee with our Discovery Trial</p>
3522  </div>
3523
3524
3525
3526</div>
3527<div id="shopify-section-header" class="shopify-section header__section">
3528<div style="display: none;">
3529  <span id="hidden-yotpo-points" class="swell-point-balance"></span>
3530</div>
3531<header class="header" data-sg-section="header">
3532  <div class="header__wrapper">
3533    <div class="header__content header__content--desktop-logo-left header__content--desktop-cta-right">
3534      <nav class="header__leftMenu header__leftMenu--no-cta" data-sg-sub-section="menu">
3535        
3536          
3537          
3538            <a
3539              href="/pages/find-my-match"
3540              class="btn btn-black header__getStartBtn header__getStartBtn--mobile-only"
3541              data-sg-track="true"
3542              data-sg-label="build-my-trial"
3543              
3544                data-sg-location="find-my-match-quiz"
3545              
3546              data-sg-section="header"
3547              data-sg-sub-section="menu"
3548              data-element-type="cta"
3549            >
3550              Build my trial
3551            </a>
3552          
3553        
3554
3555        
3556          <div class="header__logo header__logo--desktop header__logo--desktop-left " data-sg-sub-section="logo">
3557            <a
3558              href="/"
3559              data-sg-label="logo"
3560              data-sg-track="true"
3561              data-sg-section="header"
3562              data-sg-sub-section="logo"
3563              data-element-type="logo"
3564            >
3565              <img src="//www.drinktrade.com/cdn/shop/files/Asset_1.svg?crop=center&height=31&v=1694809237&width=96" alt="Trade Coffee" width="96" height="31">
3566            </a>
3567          </div>
3568        
3569
3570        <div class="header__desktop-only" data-sg-sub-section="desktop-cta">
3571          
3572        </div>
3573        <ul class="header__list">
3574          
3575          
3576          
3577
3578
3579              <li class="header__linkItem js-mega-menu">
3580                
3581                  <span
3582                    class="header__linkList header__linkList--disabled text-trade-black"
3583                    data-mega-menu-title="shop-all"
3584                  >
3585                    Shop All
3586                  </span>
3587                
3588
3589<div class="megaMenu" data-mega-menu="Shop All" data-sg-section="shop-all-menu">
3590  <div class="megaMenu__wrapper">
3591    <div class="wrapper">
3592      <h6 class="megaMenu__header">Shop All</h6>
3593      <div class="megaMenu__row">
3594        <ul class="megaMenu__leftNav">
3595          
3596            <li class="megaMenu__leftNavItem">
3597              <a
3598                href="/pages/discover"
3599                class="megaMenu__leftNavLink text-trade-black"
3600                data-sg-track="true"
3601                data-sg-label="build-my-discovery-trial"
3602                
3603                  data-sg-location="find-my-match-quiz-page"
3604                
3605                data-sg-section="header"
3606                data-sg-sub-section="shop-all-submenu"
3607              >
3608                Build my Discovery Trial
3609              </a>
3610            </li>
3611          
3612            <li class="megaMenu__leftNavItem">
3613              <a
3614                href="/collections/all"
3615                class="megaMenu__leftNavLink text-trade-black"
3616                data-sg-track="true"
3617                data-sg-label="browse-coffee"
3618                
3619                  data-sg-location="find-my-match-quiz-page"
3620                
3621                data-sg-section="header"
3622                data-sg-sub-section="shop-all-submenu"
3623              >
3624                Browse Coffee
3625              </a>
3626            </li>
3627          
3628            <li class="megaMenu__leftNavItem">
3629              <a
3630                href="/collections/equipment"
3631                class="megaMenu__leftNavLink text-trade-black"
3632                data-sg-track="true"
3633                data-sg-label="browse-coffee-equipment"
3634                
3635                  data-sg-location="find-my-match-quiz-page"
3636                
3637                data-sg-section="header"
3638                data-sg-sub-section="shop-all-submenu"
3639              >
3640                Browse Coffee Equipment
3641              </a>
3642            </li>
3643          
3644            <li class="megaMenu__leftNavItem">
3645              <a
3646                href="/pages/trade-secrets"
3647                class="megaMenu__leftNavLink text-trade-black"
3648                data-sg-track="true"
3649                data-sg-label="discover-rare-coffees"
3650                
3651                  data-sg-location="find-my-match-quiz-page"
3652                
3653                data-sg-section="header"
3654                data-sg-sub-section="shop-all-submenu"
3655              >
3656                Discover Rare Coffees
3657              </a>
3658            </li>
3659          
3660        </ul>
3661
3662        <div class="megaMenu__nav">
3663          
3664        </div>
3665
3666        <div class="megaMenu__promotion" data-sg-sub-section="promotion">
3667          
3668            <div class="megaMenu__promotionItem">
3669              <div class="megaMenu__promotionImage">
3670                
3671                  <a
3672                    href="/pages/espresso-hub"
3673                    data-sg-label="browse-espresso"
3674                  >
3675                
3676                <img
3677                  src="//www.drinktrade.com/cdn/shop/files/NavImage_Desktop.webp?crop=center&height=600&v=1784739787&width=800"
3678                  alt="Promotion Image"
3679                >
3680                
3681                  </a>
3682                
3683              </div>
3684              
3685                <h6 class="megaMenu__promotionHeading">Browse espresso</h6>
3686              
3687              
3688                <p class="megaMenu__promotionText">Get tips and techniques to help you brew with confidence.</p>
3689              
3690            </div>
3691          
3692
3693          
3694            <div class="megaMenu__promotionItem">
3695              <div class="megaMenu__promotionImage">
3696                
3697                  <a
3698                    href="/pages/cold-brew-offer"
3699                    data-sg-label="cold-brew-youll-crave"
3700                  >
3701                
3702                <img
3703                  src="//www.drinktrade.com/cdn/shop/files/Nav_Shop_LoggedOut_d88045c1-79b0-4653-aee1-ab172ad74f1a.jpg?crop=center&height=600&v=1757952118&width=800"
3704                  alt="Secondary Promotion Image"
3705                >
3706                
3707                  </a>
3708                
3709              </div>
3710              
3711                <h6 class="megaMenu__promotionHeading">Cold brew you'll crave</h6>
3712              
3713              
3714                <p class="megaMenu__promotionText">From smooth and chocolatey to bright & refreshing.</p>
3715              
3716            </div>
3717          
3718        </div>
3719      </div>
3720    </div>
3721  </div>
3722</div>
3723
3724</li>
3725            
3726
3727              <li class="header__linkItem js-mega-menu">
3728                
3729                  <span
3730                    class="header__linkList header__linkList--disabled text-trade-black"
3731                    data-mega-menu-title="gifts"
3732                  >
3733                    Gifts
3734                  </span>
3735                
3736
3737
3738<div class="megaMenu" data-mega-menu="Gifts" data-sg-section="gifts-menu">
3739  <div class="megaMenu__wrapper">
3740    <div class="wrapper">
3741      <h6 class="megaMenu__header">Gifts</h6>
3742      <div class="megaMenu__row">
3743        <ul class="megaMenu__leftNav">
3744          
3745            <li class="megaMenu__leftNavItem">
3746              <a
3747                href="/pages/gifts"
3748                class="megaMenu__leftNavLink text-trade-black"
3749                data-sg-track="true"
3750                data-sg-label="shop-gifts"
3751                
3752                  data-sg-location="find-my-match-quiz-page"
3753                
3754                data-sg-section="header"
3755                data-sg-sub-section="gifts-submenu"
3756              >
3757                Shop Gifts
3758              </a>
3759            </li>
3760          
3761            <li class="megaMenu__leftNavItem">
3762              <a
3763                href="/pages/redeem"
3764                class="megaMenu__leftNavLink text-trade-black"
3765                data-sg-track="true"
3766                data-sg-label="redeem-a-gift"
3767                
3768                  data-sg-location="find-my-match-quiz-page"
3769                
3770                data-sg-section="header"
3771                data-sg-sub-section="gifts-submenu"
3772              >
3773                Redeem a Gift
3774              </a>
3775            </li>
3776          
3777            <li class="megaMenu__leftNavItem">
3778              <a
3779                href="/pages/corporate-gifts"
3780                class="megaMenu__leftNavLink text-trade-black"
3781                data-sg-track="true"
3782                data-sg-label="corporate-gifting"
3783                
3784                  data-sg-location="find-my-match-quiz-page"
3785                
3786                data-sg-section="header"
3787                data-sg-sub-section="gifts-submenu"
3788              >
3789                Corporate Gifting
3790              </a>
3791            </li>
3792          
3793        </ul>
3794
3795        <div class="megaMenu__nav">
3796          
3797        </div>
3798
3799        <div class="megaMenu__promotion" data-sg-sub-section="promotion">
3800          
3801            <div class="megaMenu__promotionItem">
3802              <div class="megaMenu__promotionImage">
3803                
3804                  <a
3805                    href="/products/coffee-gift-subscription"
3806                    data-sg-label="gift-a-coffee-subscription"
3807                  >
3808                
3809                <img
3810                  src="//www.drinktrade.com/cdn/shop/files/Frame_1321323024_df263da2-effc-47b6-9877-6da22c906752.webp?crop=center&height=600&v=1766006898&width=800"
3811                  alt="Promotion Image"
3812                >
3813                
3814                  </a>
3815                
3816              </div>
3817              
3818                <h6 class="megaMenu__promotionHeading">Gift a Coffee Subscription</h6>
3819              
3820              
3821                <p class="megaMenu__promotionText">Choose a subscription length, and we'll handle the rest.</p>
3822              
3823            </div>
3824          
3825
3826          
3827            <div class="megaMenu__promotionItem">
3828              <div class="megaMenu__promotionImage">
3829                
3830                  <a
3831                    href="/pages/redeem"
3832                    data-sg-label="redeem-a-gift"
3833                  >
3834                
3835                <img
3836                  src="//www.drinktrade.com/cdn/shop/files/NavigationBar_Desktop.webp?crop=center&height=600&v=1780578703&width=800"
3837                  alt="Secondary Promotion Image"
3838                >
3839                
3840                  </a>
3841                
3842              </div>
3843              
3844                <h6 class="megaMenu__promotionHeading">Redeem a gift</h6>
3845              
3846              
3847                <p class="megaMenu__promotionText">Got a gift? Let's turn it into something delicious.</p>
3848              
3849            </div>
3850          
3851        </div>
3852      </div>
3853    </div>
3854  </div>
3855</div>
3856
3857</li>
3858            
3859
3860              <li class="header__linkItem js-mega-menu">
3861                
3862                  <span
3863                    class="header__linkList header__linkList--disabled text-trade-black"
3864                    data-mega-menu-title="about-us"
3865                  >
3866                    About Us
3867                  </span>
3868                
3869
3870
3871
3872<div class="megaMenu" data-mega-menu="About Us" data-sg-section="about-us-menu">
3873  <div class="megaMenu__wrapper">
3874    <div class="wrapper">
3875      <h6 class="megaMenu__header">About Us</h6>
3876      <div class="megaMenu__row">
3877        <ul class="megaMenu__leftNav">
3878          
3879            <li class="megaMenu__leftNavItem">
3880              <a
3881                href="/pages/our-story"
3882                class="megaMenu__leftNavLink text-trade-black"
3883                data-sg-track="true"
3884                data-sg-label="our-story"
3885                
3886                  data-sg-location="find-my-match-quiz-page"
3887                
3888                data-sg-section="header"
3889                data-sg-sub-section="about-us-submenu"
3890              >
3891                Our Story
3892              </a>
3893            </li>
3894          
3895            <li class="megaMenu__leftNavItem">
3896              <a
3897                href="https://www.drinktrade.com/pages/roasters"
3898                class="megaMenu__leftNavLink text-trade-black"
3899                data-sg-track="true"
3900                data-sg-label="our-roasters"
3901                
3902                  data-sg-location="find-my-match-quiz-page"
3903                
3904                data-sg-section="header"
3905                data-sg-sub-section="about-us-submenu"
3906              >
3907                Our Roasters
3908              </a>
3909            </li>
3910          
3911            <li class="megaMenu__leftNavItem">
3912              <a
3913                href="https://www.drinktrade.com/pages/blog"
3914                class="megaMenu__leftNavLink text-trade-black"
3915                data-sg-track="true"
3916                data-sg-label="learn"
3917                
3918                  data-sg-location="find-my-match-quiz-page"
3919                
3920                data-sg-section="header"
3921                data-sg-sub-section="about-us-submenu"
3922              >
3923                Learn
3924              </a>
3925            </li>
3926          
3927        </ul>
3928
3929        <div class="megaMenu__nav">
3930          
3931        </div>
3932
3933        <div class="megaMenu__promotion" data-sg-sub-section="promotion">
3934          
3935            <div class="megaMenu__promotionItem">
3936              <div class="megaMenu__promotionImage">
3937                
3938                  <a
3939                    href="/blogs/culture"
3940                    data-sg-label="coffee-101"
3941                  >
3942                
3943                <img
3944                  src="//www.drinktrade.com/cdn/shop/files/LS_trade_031725_7576_1_1.jpg?crop=center&height=600&v=1757952384&width=800"
3945                  alt="Promotion Image"
3946                >
3947                
3948                  </a>
3949                
3950              </div>
3951              
3952                <h6 class="megaMenu__promotionHeading">Coffee 101</h6>
3953              
3954              
3955                <p class="megaMenu__promotionText">Venture into all things coffee.</p>
3956              
3957            </div>
3958          
3959
3960          
3961            <div class="megaMenu__promotionItem">
3962              <div class="megaMenu__promotionImage">
3963                
3964                  <a
3965                    href="/pages/espresso-hub"
3966                    data-sg-label="explore-our-espresso-guide"
3967                  >
3968                
3969                <img
3970                  src="//www.drinktrade.com/cdn/shop/files/NavImage_Desktop.webp?crop=center&height=600&v=1784739787&width=800"
3971                  alt="Secondary Promotion Image"
3972                >
3973                
3974                  </a>
3975                
3976              </div>
3977              
3978                <h6 class="megaMenu__promotionHeading">Explore our espresso guide</h6>
3979              
3980              
3981                <p class="megaMenu__promotionText">Get tips and techniques to help you brew with confidence.</p>
3982              
3983            </div>
3984          
3985        </div>
3986      </div>
3987    </div>
3988  </div>
3989</div>
3990
3991</li>
3992            
3993
3994              <li class="header__linkItem ">
3995                
3996                  <a
3997                    href="/pages/subscribe"
3998                    class="header__linkList text-trade-black"
3999                    data-mega-menu-title="subscribe"
4000                    data-sg-track="true"
4001                    data-sg-label="subscribe"
4002                    
4003                      data-sg-location="find-my-match-quiz-page"
4004                    
4005                    data-sg-section="header"
4006                    data-sg-sub-section="menu"
4007                    data-element-type="page"
4008                  >
4009                    Subscribe
4010                  </a>
4011                
4012</li>
4013            
4014          
4015        </ul>
4016      </nav>
4017      
4018        <div class="header__logo header__logo--mobile" data-sg-sub-section="logo">
4019          <a
4020            href="/"
4021            data-sg-label="logo"
4022            data-sg-track="true"
4023            data-sg-section="header"
4024            data-sg-sub-section="logo"
4025            data-element-type="logo"
4026          >
4027            <img src="//www.drinktrade.com/cdn/shop/files/Asset_1.svg?crop=center&height=24&v=1694809237&width=72" alt="Trade Coffee" width="72" height="24">
4028          </a>
4029        </div>
4030      
4031      
4032      <nav class="header__rightMenu" data-sg-sub-section="secondary-menu">
4033        <ul class="header__list">
4034          
4035          
4036          
4037
4038          
4039        </ul>
4040        <div class="header__icons" data-sg-sub-section="header-icons">
4041          <a
4042  href="#"
4043  class="header__icon header__iconSearch js-search-icon"
4044  data-sg-track="true"
4045  data-sg-label="search"
4046  
4047    data-sg-location="find-my-match-quiz-page"
4048  
4049  data-sg-section="header"
4050  data-sg-sub-section="menu"
4051>
4052  
4053
4054    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4055      <path d="M23.8403 20.0547C26.3394 16.4068 26.2021 11.4035 23.2013 7.87263C19.6073 3.64575 13.267 3.13188 9.04013 6.72484C4.8
40551223 10.3198 4.29837 16.6591 7.89234 20.887C11.4853 25.1149 17.8256 25.6288 22.0535 22.0348L26.5 27.2659" stroke="#252525" stroke-width="1.61538" stroke-linecap="round" stroke-linejoin="round"/>
4056    </svg>
4057
4058  
4059
4060</a>
4061  <a
4062    href="https://account.drinktrade.com"
4063    class="header__icon header__iconAccount header__iconAccount-mobile"
4064    data-sg-track="true"
4065    data-sg-label="account"
4066    
4067      data-sg-location="find-my-match-quiz-page"
4068    
4069    data-sg-section="header"
4070    data-sg-sub-section="menu"
4071    data-element-type="cta"
4072  >
4073    
4074
4075    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4076    <path   fill-rule="evenodd" clip-rule="evenodd" d="M15.9993 4.6768C9.74495 4.6768 4.67582 9.74593 4.67582 16.0003C4.67582 19.4961 6.25993 22.6221 8.74966 24.6993C9.78167 21.6899 12.6339 19.5262 15.9946 19.5262C17.4841 19.5262 18.6912 18.3191 18.6912 16.8297C18.6912 15.3414 17.4843 14.1342 15.9947 14.1342C14.5051 14.1342 13.2982 15.3414 13.2982 16.8297C13.2982 17.1387 13.3501 17.4345 13.4446 17.7082C13.5149 17.9093 13.6058 18.0982 13.7145 18.2697C13.9376 18.6219 13.833 19.0883 13.4808 19.3114C13.1286 19.5345 12.6622 19.4299 12.4391 19.0777C12.2661 18.8046 12.1256 18.5107 12.0188 18.2049L12.0181 18.2027C11.8692 17.7721 11.7884 17.3093 11.7884 16.8297C11.7884 14.5073 13.6716 12.6244 15.9947 12.6244C18.3179 12.6244 20.201 14.5073 20.201 16.8297C20.201 19.1531 18.3178 21.036 15.9946 21.036C13.1351 21.036 10.7314 22.9884 10.0441 25.6333C11.7742 26.7051 13.8144 27.3239 15.9993 27.3239C18.1806 27.3239 20.2179 26.707 21.9462 25.6382C21.5557 24.1311 20.6074 22.8455 19.3326 22.02C18.9826 21.7934 18.8826 21.326 19.1092 20.9761C19.3358 20.6261 19.8032 20.5261 20.1532 20.7527C21.5808 21.6771 22.6808 23.0658 23.2415 24.7052C25.7354 22.6281 27.3229 19.4994 27.3229 16.0003C27.3229 9.74597 22.2528 4.6768 15.9993 4.6768ZM3.16602 16.0003C3.16602 8.91208 8.91111 3.16699 15.9993 3.16699C23.0865 3.16699 28.8327 8.91204 28.8327 16.0003C28.8327 23.0876 23.0866 28.8337 15.9993 28.8337C8.91107 28.8337 3.16602 23.0875 3.16602 16.0003Z" fill="#252525"/>
4077    </svg>
4078
4079  
4080
4081  </a>
4082
4083<a
4084  href="#"
4085  class="header__icon header__iconCart"
4086  onclick="window.openCart()"
4087  data-sg-track="true"
4088  data-sg-label="cart-drawer"
4089  
4090    data-sg-location="find-my-match-quiz-page"
4091  
4092  data-sg-section="header"
4093  data-sg-sub-section="menu"
4094  data-element-type="cta"
4095>
4096  <span class="js-cart-count " data-cart="0">
4097    
4098  </span>
4099  
4100
4101    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4102      <path d="M11.0664 18.1743L20.0492 17.1089C23.3916 16.8305 24.1419 16.1004 24.5124 12.767C24.8828 9.43368 25.2656 7.5498 25.2656 7.5498" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4103      <path d="M11.0664 7.14941L26.8164 7.14941" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4104      <path d="M3.71484 4H4.89819C6.05543 4 7.06417 4.76512 7.34484 5.85579L10.9895 17.9187" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4105      <path d="M21.0418 27.1002C21.9116 27.1002 22.6168 26.395 22.6168 25.5252C22.6168 24.6553 21.9116 23.9502 21.0418 23.9502C20.1719 23.9502 19.4668 24.6553 19.4668 25.5252C19.4668 26.395 20.1719 27.1002 21.0418 27.1002Z" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4106      <path d="M12.6414 27.1002C13.5113 27.1002 14.2164 26.395 14.2164 25.5252C14.2164 24.6553 13.5113 23.9502 12.6414 23.9502C11.7716 23.9502 11.0664 24.6553 11.0664 25.5252C11.0664 26.395 11.7716 27.1002 12.6414 27.1002Z" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4107      <path d="M11.002 17.6499L10.7256 18.6816C10.3684 20.0153 11.3734 21.3249 12.7541 21.3249H22.552" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4108    </svg>
4109  
4110
4111</a>
4112
4113          <a
4114            href="#"
4115            class="header__icon header__iconHamburger js-mobile-nav-open"
4116            data-sg-track="true"
4117            data-sg-label="hamburger"
4118            
4119              data-sg-location="find-my-match-quiz-page"
4120            
4121            data-sg-section="mobile-menu"
4122            data-sg-sub-section="mobile-menu-icon"
4123            data-element-type="cta"
4124          >
4125            
4126
4127    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4128      <path d="M7 23H25" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4129      <path d="M7 16H25" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4130      <path d="M7 9H25" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4131    </svg>
4132
4133  
4134
4135          </a>
4136        </div>
4137
4138        <div class="header__accountMenu js-account-menu">
4139          <div class="header__accountHeader">
4140            <a href="#" class="header__accountClose js-mobile-account-close">
4141              
4142
4143    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4144      <g clip-path="url(#clip0_114_4717)">
4145        <path d="M18.3636 18.364L5.63566 5.63604M5.63566 18.364L18.3636 5.63604" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4146      </g>
4147      <defs>
4148        <clipPath id="clip0_114_4717">
4149          <rect width="24" height="24" fill="white" transform="translate(24 1.04907e-06) rotate(90)"/>
4150        </clipPath>
4151      </defs>
4152    </svg>
4153
4154  
4155
4156            </a>
4157          </div>
4158          <ul class="header__accounList">
4159            
4160            
4161            
4162              
4163                <li class="header__accounItem">
4164                  <a href="/account?view=order_history" class="header__accounLink">Order History</a>
4165                </li>
4166              
4167                <li class="header__accounItem">
4168                  <a href="/account" class="header__accounLink">Account Details</a>
4169                </li>
4170              
4171                <li class="header__accounItem">
4172                  <a href="/account/addresses" class="header__accounLink">Shipping Addresses</a>
4173                </li>
4174              
4175                <li class="header__accounItem">
4176                  <a href="/account/payment" class="header__accounLink">Payment Methods</a>
4177                </li>
4178              
4179                <li class="header__accounItem">
4180                  <a href="/collections" class="header__accounLink">Trade Credit</a>
4181                </li>
4182              
4183                <li class="header__accounItem">
4184                  <a href="/pages/refer-a-friend" class="header__accounLink">Refer A Friend</a>
4185                </li>
4186              
4187                <li class="header__accounItem">
4188                  <a href="https://trade-coffee.gorgias.help/en-US/articles" class="header__accounLink">Help Center</a>
4189                </li>
4190              
4191            
4192            <li class="header__accounItem">
4193              <a
4194                href="/account/logout"
4195                id="customer_logout_link"
4196                class="header__accounLink header__accounLink--red"
4197              >
4198                Logout
4199              </a>
4200            </li>
4201          </ul>
4202        </div>
4203      </nav>
4204
4205      <div class="header__desktop-only" data-sg-sub-section="desktop-cta">
4206        
4207          
4208            
4209            
4210              <a
4211                href="/pages/find-my-match"
4212                class="btn btn-black header__getStartBtn header__getStartBtn--desktop-right header__getStartBtn--desktop-only"
4213                data-sg-track="true"
4214                data-sg-label="build-my-trial"
4215                
4216                  data-sg-location="find-my-match-quiz"
4217                
4218                data-sg-section="header"
4219                data-sg-sub-section="menu"
4220                data-element-type="cta"
4221              >
4222                Build my trial
4223              </a>
4224            
4225          
4226        
4227      </div>
4228    </div>
4229  </div>
4230</header><div class="mobileNav js-mobile-nav" data-sg-section="mobile-nav" data-sg-sub-section="mobile-navigation">
4231  <div class="mobileNav__wrapper">
4232    <div class="mobileNav__row mobileNav__levelOne">
4233      <div class="mobileNav__header">
4234        
4235          <div class="header__logo mobileNav__logo">
4236            <a
4237              href="/"
4238              data-sg-label="logo"
4239            >
4240              <img src="//www.drinktrade.com/cdn/shop/files/Asset_1.svg?crop=center&height=96&v=1694809237&width=300" alt="Trade Coffee" width="300" height="96">
4241            </a>
4242          </div>
4243        
4244        <div class="mobileNav__icons">
4245          <a
4246  href="#"
4247  class="header__icon header__iconSearch js-search-icon"
4248  data-sg-track="true"
4249  data-sg-label="search"
4250  
4251    data-sg-location="find-my-match-quiz-page"
4252  
4253  data-sg-section="header"
4254  data-sg-sub-section="menu"
4255>
4256  
4257
4258    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4259      <path d="M23.8403 20.0547C26.3394 16.4068 26.2021 11.4035 23.2013 7.87263C19.6073 3.64575 13.267 3.13188 9.04013 6.72484C4.8
42591223 10.3198 4.29837 16.6591 7.89234 20.887C11.4853 25.1149 17.8256 25.6288 22.0535 22.0348L26.5 27.2659" stroke="#252525" stroke-width="1.61538" stroke-linecap="round" stroke-linejoin="round"/>
4260    </svg>
4261
4262  
4263
4264</a>
4265  <a
4266    href="https://account.drinktrade.com"
4267    class="header__icon header__iconAccount header__iconAccount-mobile"
4268    data-sg-track="true"
4269    data-sg-label="account"
4270    
4271      data-sg-location="find-my-match-quiz-page"
4272    
4273    data-sg-section="header"
4274    data-sg-sub-section="menu"
4275    data-element-type="cta"
4276  >
4277    
4278
4279    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4280    <path   fill-rule="evenodd" clip-rule="evenodd" d="M15.9993 4.6768C9.74495 4.6768 4.67582 9.74593 4.67582 16.0003C4.67582 19.4961 6.25993 22.6221 8.74966 24.6993C9.78167 21.6899 12.6339 19.5262 15.9946 19.5262C17.4841 19.5262 18.6912 18.3191 18.6912 16.8297C18.6912 15.3414 17.4843 14.1342 15.9947 14.1342C14.5051 14.1342 13.2982 15.3414 13.2982 16.8297C13.2982 17.1387 13.3501 17.4345 13.4446 17.7082C13.5149 17.9093 13.6058 18.0982 13.7145 18.2697C13.9376 18.6219 13.833 19.0883 13.4808 19.3114C13.1286 19.5345 12.6622 19.4299 12.4391 19.0777C12.2661 18.8046 12.1256 18.5107 12.0188 18.2049L12.0181 18.2027C11.8692 17.7721 11.7884 17.3093 11.7884 16.8297C11.7884 14.5073 13.6716 12.6244 15.9947 12.6244C18.3179 12.6244 20.201 14.5073 20.201 16.8297C20.201 19.1531 18.3178 21.036 15.9946 21.036C13.1351 21.036 10.7314 22.9884 10.0441 25.6333C11.7742 26.7051 13.8144 27.3239 15.9993 27.3239C18.1806 27.3239 20.2179 26.707 21.9462 25.6382C21.5557 24.1311 20.6074 22.8455 19.3326 22.02C18.9826 21.7934 18.8826 21.326 19.1092 20.9761C19.3358 20.6261 19.8032 20.5261 20.1532 20.7527C21.5808 21.6771 22.6808 23.0658 23.2415 24.7052C25.7354 22.6281 27.3229 19.4994 27.3229 16.0003C27.3229 9.74597 22.2528 4.6768 15.9993 4.6768ZM3.16602 16.0003C3.16602 8.91208 8.91111 3.16699 15.9993 3.16699C23.0865 3.16699 28.8327 8.91204 28.8327 16.0003C28.8327 23.0876 23.0866 28.8337 15.9993 28.8337C8.91107 28.8337 3.16602 23.0875 3.16602 16.0003Z" fill="#252525"/>
4281    </svg>
4282
4283  
4284
4285  </a>
4286
4287<a
4288  href="#"
4289  class="header__icon header__iconCart"
4290  onclick="window.openCart()"
4291  data-sg-track="true"
4292  data-sg-label="cart-drawer"
4293  
4294    data-sg-location="find-my-match-quiz-page"
4295  
4296  data-sg-section="header"
4297  data-sg-sub-section="menu"
4298  data-element-type="cta"
4299>
4300  <span class="js-cart-count " data-cart="0">
4301    
4302  </span>
4303  
4304
4305    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
4306      <path d="M11.0664 18.1743L20.0492 17.1089C23.3916 16.8305 24.1419 16.1004 24.5124 12.767C24.8828 9.43368 25.2656 7.5498 25.2656 7.5498" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4307      <path d="M11.0664 7.14941L26.8164 7.14941" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4308      <path d="M3.71484 4H4.89819C6.05543 4 7.06417 4.76512 7.34484 5.85579L10.9895 17.9187" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4309      <path d="M21.0418 27.1002C21.9116 27.1002 22.6168 26.395 22.6168 25.5252C22.6168 24.6553 21.9116 23.9502 21.0418 23.9502C20.1719 23.9502 19.4668 24.6553 19.4668 25.5252C19.4668 26.395 20.1719 27.1002 21.0418 27.1002Z" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4310      <path d="M12.6414 27.1002C13.5113 27.1002 14.2164 26.395 14.2164 25.5252C14.2164 24.6553 13.5113 23.9502 12.6414 23.9502C11.7716 23.9502 11.0664 24.6553 11.0664 25.5252C11.0664 26.395 11.7716 27.1002 12.6414 27.1002Z" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4311      <path d="M11.002 17.6499L10.7256 18.6816C10.3684 20.0153 11.3734 21.3249 12.7541 21.3249H22.552" stroke="#252525" stroke-width="1.5" stroke-linecap="round"/>
4312    </svg>
4313  
4314
4315</a>
4316
4317          <a href="#" class="header__icon header__iconClose js-mobile-nav-close">
4318            
4319
4320    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4321      <g clip-path="url(#clip0_114_4717)">
4322        <path d="M18.3636 18.364L5.63566 5.63604M5.63566 18.364L18.3636 5.63604" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4323      </g>
4324      <defs>
4325        <clipPath id="clip0_114_4717">
4326          <rect width="24" height="24" fill="white" transform="translate(24 1.04907e-06) rotate(90)"/>
4327        </clipPath>
4328      </defs>
4329    </svg>
4330
4331  
4332
4333          </a>
4334        </div>
4335      </div>
4336      <div class="mobileNav__content">
4337          <div class="mobileNav__auth">
4338            <a
4339              href="https://account.drinktrade.com"
4340              class="mobileNav__authLink"
4341              data-sg-track="true"
4342              data-sg-label="create-account"
4343              data-sg-location="Find My Match Quiz"
4344              data-sg-section="mobile-nav"
4345              data-sg-sub-section="mobile-menu"
4346              data-element-type="cta"
4347            >
4348              Create account
4349            </a>
4350            <span class="mobileNav__authSeparator">or</span>
4351            <a
4352              href="https://account.drinktrade.com"
4353              class="mobileNav__authLink"
4354              data-sg-track="true"
4355              data-sg-label="log-in"
4356              data-sg-location="Find My Match Quiz"
4357              data-sg-section="mobile-nav"
4358              data-sg-sub-section="mobile-menu"
4359              data-element-type="cta"
4360            >
4361              Log in
4362            </a>
4363          </div>
4364        
4365        <ul class="mobileNav__list">
4366
4367            <li class="mobileNav__linkItem mobileNav__linkAccordion">
4368              <a
4369                href="#"
4370                class="mobileNav__linkList js-mobile-accordion"
4371                data-sg-label="shop-all"role="button"
4372                  aria-expanded="false">
4373                Shop All
4374<span class="mobileNav__accordionIcon">
4375                    <span class="mobileNav__accordionIconPlus">
4376
4377    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4378      <path d="M12 5V19" stroke="#252525" stroke-width="2" stroke-linecap="round"/>
4379      <path d="M5 12H19" stroke="#252525" stroke-width="2" stroke-linecap="round"/>
4380    </svg>
4381
4382  
4383</span>
4384                    <span class="mobileNav__accordionIconMinus">
4385
4386    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4387      <path d="M20 12H4" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4388    </svg>
4389  
4390</span>
4391                  </span></a><div class="mobileNav__accordionContent">
4392<ul class="mobileNav__accordionList">
4393  
4394    <li class="mobileNav__accordionItem">
4395      <a
4396        href="/pages/discover"
4397        class="mobileNav__accordionLink"
4398        data-sg-track="true"
4399        data-sg-label="build-my-discovery-trial"
4400        data-sg-section="header"
4401        data-sg-sub-section="shop-all-submenu"
4402        data-element-type="page"
4403      >
4404        Build my Discovery Trial
4405      </a>
4406    </li>
4407  
4408    <li class="mobileNav__accordionItem">
4409      <a
4410        href="/collections/all"
4411        class="mobileNav__accordionLink"
4412        data-sg-track="true"
4413        data-sg-label="browse-coffee"
4414        data-sg-section="header"
4415        data-sg-sub-section="shop-all-submenu"
4416        data-element-type="page"
4417      >
4418        Browse Coffee
4419      </a>
4420    </li>
4421  
4422    <li class="mobileNav__accordionItem">
4423      <a
4424        href="/collections/equipment"
4425        class="mobileNav__accordionLink"
4426        data-sg-track="true"
4427        data-sg-label="browse-coffee-equipment"
4428        data-sg-section="header"
4429        data-sg-sub-section="shop-all-submenu"
4430        data-element-type="page"
4431      >
4432        Browse Coffee Equipment
4433      </a>
4434    </li>
4435  
4436    <li class="mobileNav__accordionItem">
4437      <a
4438        href="/pages/trade-secrets"
4439        class="mobileNav__accordionLink"
4440        data-sg-track="true"
4441        data-sg-label="discover-rare-coffees"
4442        data-sg-section="header"
4443        data-sg-sub-section="shop-all-submenu"
4444        data-element-type="page"
4445      >
4446        Discover Rare Coffees
4447      </a>
4448    </li>
4449  
4450</ul>
4451
4452
4453  <div class="mobileNav__accordionPromotion">
4454    
4455      <div class="mobileNav__accordionPromotionItem">
4456        <div class="mobileNav__accordionPromotionImage">
4457          <a href="/pages/espresso-hub" data-sg-label="browse-espresso">
4458            <img
4459              src="//www.drinktrade.com/cdn/shop/files/NavImage_Mobile.webp?crop=center&height=236&v=1784739778&width=444"
4460              alt="Browse espresso"
4461              loading="lazy"
4462            >
4463          </a>
4464        </div>
4465        
4466          <h6 class="mobileNav__accordionPromotionHeading">Browse espresso</h6>
4467        
4468        
4469          <p class="mobileNav__accordionPromotionText">Get tips and techniques to help you brew with confidence.</p>
4470        
4471      </div>
4472    
4473
4474    
4475      <div class="mobileNav__accordionPromotionItem">
4476        <div class="mobileNav__accordionPromotionImage">
4477          <a href="/pages/cold-brew-offer" data-sg-label="cold-brew-youll-crave">
4478            <img
4479              src="//www.drinktrade.com/cdn/shop/files/Nav_Shop_LoggedOut-1_0d592370-c9bd-41da-8f63-535b99388ac9.jpg?crop=center&height=236&v=1782502935&width=444"
4480              alt="Cold brew you'll crave"
4481              loading="lazy"
4482            >
4483          </a>
4484        </div>
4485        
4486          <h6 class="mobileNav__accordionPromotionHeading">Cold brew you'll crave</h6>
4487        
4488        
4489          <p class="mobileNav__accordionPromotionText">From smooth and chocolatey to bright & refreshing.</p>
4490        
4491      </div>
4492    
4493  </div>
4494
4495
4496</div></li>
4497          
4498
4499            <li class="mobileNav__linkItem mobileNav__linkAccordion">
4500              <a
4501                href="#"
4502                class="mobileNav__linkList js-mobile-accordion"
4503                data-sg-label="gifts"role="button"
4504                  aria-expanded="false">
4505                Gifts
4506<span class="mobileNav__accordionIcon">
4507                    <span class="mobileNav__accordionIconPlus">
4508
4509    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4510      <path d="M12 5V19" stroke="#252525" stroke-width="2" stroke-linecap="round"/>
4511      <path d="M5 12H19" stroke="#252525" stroke-width="2" stroke-linecap="round"/>
4512    </svg>
4513
4514  
4515</span>
4516                    <span class="mobileNav__accordionIconMinus">
4517
4518    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4519      <path d="M20 12H4" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4520    </svg>
4521  
4522</span>
4523                  </span></a><div class="mobileNav__accordionContent">
4524
4525<ul class="mobileNav__accordionList">
4526  
4527    <li class="mobileNav__accordionItem">
4528      <a
4529        href="/pages/gifts"
4530        class="mobileNav__accordionLink"
4531        data-sg-track="true"
4532        data-sg-label="shop-gifts"
4533        data-sg-section="header"
4534        data-sg-sub-section="gifts-submenu"
4535        data-element-type="page"
4536      >
4537        Shop Gifts
4538      </a>
4539    </li>
4540  
4541    <li class="mobileNav__accordionItem">
4542      <a
4543        href="/pages/redeem"
4544        class="mobileNav__accordionLink"
4545        data-sg-track="true"
4546        data-sg-label="redeem-a-gift"
4547        data-sg-section="header"
4548        data-sg-sub-section="gifts-submenu"
4549        data-element-type="page"
4550      >
4551        Redeem a Gift
4552      </a>
4553    </li>
4554  
4555    <li class="mobileNav__accordionItem">
4556      <a
4557        href="/pages/corporate-gifts"
4558        class="mobileNav__accordionLink"
4559        data-sg-track="true"
4560        data-sg-label="corporate-gifting"
4561        data-sg-section="header"
4562        data-sg-sub-section="gifts-submenu"
4563        data-element-type="page"
4564      >
4565        Corporate Gifting
4566      </a>
4567    </li>
4568  
4569</ul>
4570
4571
4572  <div class="mobileNav__accordionPromotion">
4573    
4574      <div class="mobileNav__accordionPromotionItem">
4575        <div class="mobileNav__accordionPromotionImage">
4576          <a href="/products/coffee-gift-subscription" data-sg-label="gift-a-coffee-subscription">
4577            <img
4578              src="//www.drinktrade.com/cdn/shop/files/Frame_1321323024_df263da2-effc-47b6-9877-6da22c906752.webp?crop=center&height=236&v=1766006898&width=444"
4579              alt="Gift a Coffee Subscription"
4580              loading="lazy"
4581            >
4582          </a>
4583        </div>
4584        
4585          <h6 class="mobileNav__accordionPromotionHeading">Gift a Coffee Subscription</h6>
4586        
4587        
4588          <p class="mobileNav__accordionPromotionText">Choose a subscription length, and we'll handle the rest.</p>
4589        
4590      </div>
4591    
4592
4593    
4594      <div class="mobileNav__accordionPromotionItem">
4595        <div class="mobileNav__accordionPromotionImage">
4596          <a href="/pages/redeem" data-sg-label="redeem-a-gift">
4597            <img
4598              src="//www.drinktrade.com/cdn/shop/files/NavigationBar_Mobile.webp?crop=center&height=236&v=1780578712&width=444"
4599              alt="Redeem a gift"
4600              loading="lazy"
4601            >
4602          </a>
4603        </div>
4604        
4605          <h6 class="mobileNav__accordionPromotionHeading">Redeem a gift</h6>
4606        
4607        
4608          <p class="mobileNav__accordionPromotionText">Got a gift? Let's turn it into something delicious.</p>
4609        
4610      </div>
4611    
4612  </div>
4613
4614
4615</div></li>
4616          
4617
4618            <li class="mobileNav__linkItem mobileNav__linkAccordion">
4619              <a
4620                href="#"
4621                class="mobileNav__linkList js-mobile-accordion"
4622                data-sg-label="about-us"role="button"
4623                  aria-expanded="false">
4624                About Us
4625<span class="mobileNav__accordionIcon">
4626                    <span class="mobileNav__accordionIconPlus">
4627
4628    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4629      <path d="M12 5V19" stroke="#252525" stroke-width="2" stroke-linecap="round"/>
4630      <path d="M5 12H19" stroke="#252525" stroke-width="2" stroke-linecap="round"/>
4631    </svg>
4632
4633  
4634</span>
4635                    <span class="mobileNav__accordionIconMinus">
4636
4637    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4638      <path d="M20 12H4" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4639    </svg>
4640  
4641</span>
4642                  </span></a><div class="mobileNav__accordionContent">
4643
4644
4645<ul class="mobileNav__accordionList">
4646  
4647    <li class="mobileNav__accordionItem">
4648      <a
4649        href="/pages/our-story"
4650        class="mobileNav__accordionLink"
4651        data-sg-track="true"
4652        data-sg-label="our-story"
4653        data-sg-section="header"
4654        data-sg-sub-section="about-us-submenu"
4655        data-element-type="page"
4656      >
4657        Our Story
4658      </a>
4659    </li>
4660  
4661    <li class="mobileNav__accordionItem">
4662      <a
4663        href="https://www.drinktrade.com/pages/roasters"
4664        class="mobileNav__accordionLink"
4665        data-sg-track="true"
4666        data-sg-label="our-roasters"
4667        data-sg-section="header"
4668        data-sg-sub-section="about-us-submenu"
4669        data-element-type="page"
4670      >
4671        Our Roasters
4672      </a>
4673    </li>
4674  
4675    <li class="mobileNav__accordionItem">
4676      <a
4677        href="https://www.drinktrade.com/pages/blog"
4678        class="mobileNav__accordionLink"
4679        data-sg-track="true"
4680        data-sg-label="learn"
4681        data-sg-section="header"
4682        data-sg-sub-section="about-us-submenu"
4683        data-element-type="page"
4684      >
4685        Learn
4686      </a>
4687    </li>
4688  
4689</ul>
4690
4691
4692  <div class="mobileNav__accordionPromotion">
4693    
4694      <div class="mobileNav__accordionPromotionItem">
4695        <div class="mobileNav__accordionPromotionImage">
4696          <a href="/blogs/culture" data-sg-label="coffee-101">
4697            <img
4698              src="//www.drinktrade.com/cdn/shop/files/LS_trade_031725_7576_1_1.jpg?crop=center&height=236&v=1757952384&width=444"
4699              alt="Coffee 101"
4700              loading="lazy"
4701            >
4702          </a>
4703        </div>
4704        
4705          <h6 class="mobileNav__accordionPromotionHeading">Coffee 101</h6>
4706        
4707        
4708          <p class="mobileNav__accordionPromotionText">Venture into all things coffee.</p>
4709        
4710      </div>
4711    
4712
4713    
4714      <div class="mobileNav__accordionPromotionItem">
4715        <div class="mobileNav__accordionPromotionImage">
4716          <a href="/pages/espresso-hub" data-sg-label="explore-our-espresso-guide">
4717            <img
4718              src="//www.drinktrade.com/cdn/shop/files/NavImage_Mobile.webp?crop=center&height=236&v=1784739778&width=444"
4719              alt="Explore our espresso guide"
4720              loading="lazy"
4721            >
4722          </a>
4723        </div>
4724        
4725          <h6 class="mobileNav__accordionPromotionHeading">Explore our espresso guide</h6>
4726        
4727        
4728          <p class="mobileNav__accordionPromotionText">Get tips and techniques to help you brew with confidence.</p>
4729        
4730      </div>
4731    
4732  </div>
4733
4734
4735</div></li>
4736          
4737
4738            <li class="mobileNav__linkItem">
4739              <a
4740                href="/pages/subscribe"
4741                class="mobileNav__linkList"
4742                data-sg-label="subscribe">
4743                Subscribe
4744</a></li>
4745          
4746          
4747        </ul>
4748          
4749          
4750            <div class="mobileNav__cta">
4751              <a
4752                href="/pages/find-my-match"
4753                class="btn btn-black mobileNav__ctaBtn"
4754                data-sg-track="true"
4755                data-sg-label="build-my-trial"
4756                data-sg-location="Find My Match Quiz"
4757                data-sg-section="mobile-nav"
4758                data-sg-sub-section="mobile-menu"
4759                data-element-type="cta"
4760              >
4761                Build my trial
4762              </a>
4763            </div>
4764          
4765        
4766      </div>
4767    </div>
4768  </div>
4769</div>
4770
4771
4772<div
4773  id="account-modal-settings"
4774  style="display: none;"
4775  data-login-heading="Log in to your account"
4776  data-login-subheading="Enter your account details to access your dashboard and coffee preferences."
4777  data-signup-heading="Create your account"
4778  data-signup-subheading="Join Trade to easily manage your dashboard, update coffee preferences, edit deliveries, and more!"
4779  data-forgot-heading="Reset your password"
4780  data-forgot-subheading="Enter your email and we'll send you a link to reset your password."
4781></div>
4782
4783
4784</div>
4785<main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
4786        <div id="shopify-section-template--27489131954495__quiz_app_hnjkmF" class="shopify-section">
4786<script>
4787  window.quizConfig = {
4788    combinedBagSelector: false,
4789    subscriptionBuilderMode: "multi_page_regular",
4790    classicSubscriptionProductId: null,
4791    premiumSubscriptionProductId: null,
4792    classicSubscriptionProductPrice: 0.0,
4793    premiumSubscriptionProductPrice: 0.0,
4794    classicPrepayHackProductId: null,
4795    premiumPrepayHackProductId: null,
4796    assetBase: "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/",
4797    promoBanner: {
4798      text: "Free bag of coffee with our Discovery Trial",
4799      bgColor: "#ebff88",
4800      textColor: "#252525",
4801    },
4802    prepayTiers: {
4803      standardPayPerFreeShipping: false,
4804      standardTier1Discount: 0.2,
4805      standardTier2Discount: 0.4,
4806      doubleStandardPayPerFreeShipping: true,
4807      doubleStandardTier1Discount: 0.2,
4808      doubleStandardTier2Discount: 0.4,
4809      twoLbPayPerFreeShipping: true,
4810      twoLbTier1Discount: 0.2,
4811      twoLbTier2Discount: 0.4,
4812    },
4813    discountConfigs: {
4814      standard_three: { signature: "3d124bcf168b10fee7ff9bffcd09a97064716051", value: 20, type: 'percentage', message: "20% off + free shipping", limit: 1 },
4815      standard_six: { signature: "f1a7eefa4fa0ebe3df80ad40a48703b3414163dc", value: 40, type: 'percentage', message: "40% off + free shipping", limit: 1 },
4816      double_standard_three: { signature: "bf1d73247d8d5fd5955d536889667bc7b26b2747", value: 20, type: 'percentage', message: "20% off + free shipping", limit: 2 },
4817      double_standard_six: { signature: "914a0a49ac4a870fea537deda25d96f56892fbb0", value: 40, type: 'percentage', message: "40% off + free shipping", limit: 2 },
4818      two_lb_three: { signature: "bf1d73247d8d5fd5955d536889667bc7b26b2747", value: 20, type: 'percentage', message: "20% off + free shipping", limit: 2 },
4819      two_lb_six: { signature: "914a0a49ac4a870fea537deda25d96f56892fbb0", value: 40, type: 'percentage', message: "40% off + free shipping", limit: 2 },
4820    },
4821    shippingConfig: { signature: "419788ed593a8c11c1291720ac725532ec04f639", blockId: "quiz_free_shipping", value: true },
4822    pricingTier: {
4823      enabled: true,
4824      gatingDisabled: true,mobileLayout: "toggle",
4825      signatureBadgePersonalized: "Recommended for you",
4826      essential: {
4827        name: "Essential",
4828        coffeeCount: "150+",
4829        roasterCount: 30,
4830        whatsIncluded: "A new coffee you’ll love with each delivery\nRoasted to order for peak freshness",
4831        promoMessaging: "Start your coffee journey with balanced, well-loved classics—an easy way to explore what Trade has to offer.",
4832        badge: "",
4833      },
4834      signature: {
4835        name: "Signature",
4836        coffeeCount: "500+",
4837        roasterCount: 55,
4838        promoMessaging: "Go beyond the basics with our full range of coffees, from adventurous single origins to decafs and espressos.",
4839        badge: "Most popular",whatsIncluded: "Access 180+ single origins, updated weekly\nExplore adventurous coffees \u0026 seasonal releases\nUnlock more espresso \u0026 decaf options",
4840      },
4841    },
4842    espressoBranched: {
4843      enabled: true,
4844    },
4845    // Per-file asset URLs that include the `?v=<modified_time>` cache-bust
4846    // (assetBase deliberately strips it, which is fine for stable assets
4847    // but breaks the browser cache for any file whose content gets
4848    // replaced under the same filename — like the branched-quiz intent
4849    // images and the swapped Moka Pot icon).
4850    quizAssetUrls: {
4851      'quiz-intent-brewed.png':    "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-intent-brewed.png?v=167958451262979157131789675682",
4852      'quiz-intent-espresso.png':  "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-intent-espresso.png?v=14295433266180846381789675682",
4853      'quiz-espresso-machine.svg': "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-espresso-machine.svg?v=166870017327608665211789670861",
4854      'brew-cold-brew.svg':        "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/brew-cold-brew.svg?v=12606041987637483261789670831",
4855      'brew-moka-pot.svg':         "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/brew-moka-pot.svg?v=74750273230240012411789670830",
4856      'quiz-location-icon.svg':    "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-location-icon.svg?v=53341661290541587671789670863",
4857      'quiz-reviews-icon.svg':     "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-reviews-icon.svg?v=112771684609512876131789670863",
4858      // Imagery lifted out of the JS bundle: the world-map backdrop behind the
4859      // origin maps, the reveal loader's US states geometry, and the 14
4860      // Design-System flavor-category icons.
4861      'quiz-world-continents.svg':        "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-world-continents.svg?v=69304439031631811661789670862",
4862      'quiz-us-states.svg':               "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-us-states.svg?v=84903894520868569531789670864",
4863      'quiz-flavor-berry-fruit.svg':      "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-berry-fruit.svg?v=98762958165014399121789670861",
4864      'quiz-flavor-brown-sugar.svg':      "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-brown-sugar.svg?v=11960334023735233601789670862",
4865      'quiz-flavor-citrus.svg':           "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-citrus.svg?v=98548115797749927211789670862",
4866      'quiz-flavor-earthiness.svg':       "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-earthiness.svg?v=50375908625038505021789670863",
4867      'quiz-flavor-florals.svg':          "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-florals.svg?v=44963994435065611991789670864",
4868      'quiz-flavor-fresh-herb.svg':       "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-fresh-herb.svg?v=150607185982748253361789670860",
4869      'quiz-flavor-milk-chocolate.svg':   "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-milk-chocolate.svg?v=167543783734695750771789670861",
4870      'quiz-flavor-nut.svg':              "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-nut.svg?v=70760651502088748451789670861",
4871      'quiz-flavor-ripe-fruit.svg':       "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-ripe-fruit.svg?v=1707940193261013221789670862",
4872      'quiz-flavor-roastiness.svg':       "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-roastiness.svg?v=96804046202412280621789670862",
4873      'quiz-flavor-savoriness.svg':       "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-savoriness.svg?v=63830588873619514451789670863",
4874      'quiz-flavor-spice.svg':            "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-spice.svg?v=155114319468968092521789670863",
4875      'quiz-flavor-sweet-vanilla.svg':    "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-sweet-vanilla.svg?v=49381977623662317891789670864",
4876      'quiz-flavor-tropical-fruit.svg':   "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-flavor-tropical-fruit.svg?v=99423233257195993111789670864",
4877      // Already in Shopify assets, but were resolving through the un-cache-busted
4878      // assetBase fallback: the quiz logo lockup, the brew-method icons and
4879      // the Profile Reveal value-prop icons.
4880      'logos.svg':                             "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/logos.svg?v=132696985408093144811789670859",
4881      'brew-drip.svg':                         "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/brew-drip.svg?v=144341049699429923411789670832",
4882      'brew-espresso.svg':                     "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/brew-espresso.svg?v=16856703635738165841789670828",
4883      'brew-french-press.svg':                 "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/brew-french-press.svg?v=140009584876721692501789670829",
4884      'brew-pourover.svg':                     "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/brew-pourover.svg?v=56617631107919985541789670832",
4885      'brew-aeropress.svg':                    "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/brew-aeropress.svg?v=81867866561007485751789670830",
4886      'tailored-to-your-taste-charcoal.svg':   "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/tailored-to-your-taste-charcoal.svg?v=116948872125123968031789670873",
4887      'roasted-to-order-always-charcoal.svg':  "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/roasted-to-order-always-charcoal.svg?v=81544657799946923331789670865",
4888      'risk-free-charcoal.svg':                "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/risk-free-charcoal.svg?v=115602272698015548391789670862",
4889    },
4890  };
4891</script>
4891
4892<link href="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.page.quiz.css?v=145856553445927932471789670840" rel="stylesheet" type="text/css" media="all" />
4893
4894<div id="quiz-app"></div>
4895
4896<style data-shopify>
4897  #shopify-section-header header.header {
4898    display: none;
4899  }
4900
4901  #shopify-section-footer {
4902    display: none;
4903  }
4904
4905  #shopify-section-announcement {
4906    display: none;
4907  }
4908</style>
4909<script defer src="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.page.quiz.js?v=48935622743110601691790173848"></script>
4909
4910
4911
4912</div><div id="shopify-section-template--27489131954495__subscription_builder_harness_AwEPYe" class="shopify-section"><div
4913  data-sb-harness
4914  
4915  data-subscription-product-id="10539310350655"
4916  class="max-w-[760px] mx-auto px-5 py-10"
4917><div data-subscription-builder-root></div>
4917<script type="application/json" data-sb-config>
4918{"experience":"discovery_trail","products":{"classic":10539308712255,"premium":10539310350655},"prepayBadges":{"tier1":"First Bag Free + free shipping","tier2":"First 2 Bags Free + free shipping"}}
4919</script>
4919
4920</div>
4920<script>
4921  window.quizConfig = window.quizConfig || {};
4922  // Presence of the Subscription Builder section IS the shared-builder
4923  // activation signal — there is no per-host "Use shared Subscription Builder"
4924  // toggle anymore. This snippet merges over the host's quiz-config, so setting
4925  // this flag flips the quiz (order_bags step) and collection-detail-v2
4926  // ("Choose this plan") onto the shared <SubscriptionBuilder>. Drop the section
4927  // and the host falls back to its legacy flow (flag absent → falsy).
4928  window.quizConfig.useSubscriptionBuilder = true;
4929  window.quizConfig.classicSubscriptionProductId = 10539308712255;
4930  window.quizConfig.classicSubscriptionProductPrice = 16.99;
4931
4932  window.quizConfig.premiumSubscriptionProductId = 10539310350655;
4933  window.quizConfig.premiumSubscriptionProductPrice = 21.99;
4934  // The "Prepay 2/4 hack product" is retired: 2/4 prepay is now a native
4935  // selling plan on the subscription products above. This snippet is the
4936  // source of truth wherever the Subscription Builder section is placed, and it
4937  // runs AFTER any host's quiz-config — so actively null the hack ids (not just
4938  // omit them) to clear a stale value a host may have set and guarantee no cart
4939  // path falls back to the obsolete hack products.
4940  window.quizConfig.classicPrepayHackProductId = null;
4941  window.quizConfig.premiumPrepayHackProductId = null;window.quizConfig.assetBase = window.quizConfig.assetBase || "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/";
4942  window.quizConfig.quizAssetUrls = window.quizConfig.quizAssetUrls || {
4943    'quiz-location-icon.svg': "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-location-icon.svg?v=53341661290541587671789670863",
4944    'quiz-reviews-icon.svg':  "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-reviews-icon.svg?v=112771684609512876131789670863",'quiz-us-states.svg': "\/\/www.drinktrade.com\/cdn\/shop\/t\/2106\/assets\/quiz-us-states.svg?v=84903894520868569531789670864",
4945  };
4946  window.quizConfig.prepayTiers = {
4947    discountMode: "free_bags",
4948    priceDisplay: "total",standardTier1Orders: 3,
4949    standardTier2Orders: 6,
4950    doubleStandardTier1Orders: 2,
4951    doubleStandardTier2Orders: 4,
4952    twoLbTier1Orders: 2,
4953    twoLbTier2Orders: 4,
4954    tier1Discount: 0.0,
4955    tier2Discount: 0.0,
4956    tier1FreeBags: 1,
4957    tier2FreeBags: 2,
4958    tier1DollarOff: 0,
4959    tier2DollarOff: 0,
4960    standardPayPerFreeShipping: false,
4961    standardTier1Discount: 0.0,
4962    standardTier2Discount: 0.0,
4963    doubleStandardPayPerFreeShipping: true,
4964    doubleStandardTier1Discount: 0.0,
4965    doubleStandardTier2Discount: 0.0,
4966    twoLbPayPerFreeShipping: true,
4967    twoLbTier1Discount: 0.0,
4968    twoLbTier2Discount: 0.0,
4969    standardTier1FreeBags: 1,
4970    standardTier2FreeBags: 2,
4971    doubleStandardTier1FreeBags: 1,
4972    doubleStandardTier2FreeBags: 2,
4973    twoLbTier1FreeBags: 1,
4974    twoLbTier2FreeBags: 2,
4975    standardTier1DollarOff: 0,
4976    standardTier2DollarOff: 0,
4977    doubleStandardTier1DollarOff: 0,
4978    doubleStandardTier2DollarOff: 0,
4979    twoLbTier1DollarOff: 0,
4980    twoLbTier2DollarOff: 0,
4981  };
4982  window.quizConfig.discountConfigs = { "standard_three_classic":{"signature":"73cddef77338b2ee96cb9feab101f2395eace65b","value":"16.99","type":"fixedAmount","message":"First Bag Free + free shipping","limit":1},"standard_three_premium":{"signature":"f7727a8cf2844e1c9e724ebcbeaa47f130d00eaf","value":"21.99","type":"fixedAmount","message":"First Bag Free + free shipping","limit":1},"standard_six_classic":{"signature":"3fc864ae0949159d8f9598e0e8c7346663349d76","value":"33.98","type":"fixedAmount","message":"First 2 Bags Free + free shipping","limit":1},"standard_six_premium":{"signature":"4887af1bc5cae81f009e79c24d63220b4fe51468","value":"43.98","type":"fixedAmount","message":"First 2 Bags Free + free shipping","limit":1},"double_standard_three_classic":{"signature":"73cddef77338b2ee96cb9feab101f2395eace65b","value":"16.99","type":"fixedAmount","message":"First Bag Free + free shipping","limit":1},"double_standard_three_premium":{"signature":"f7727a8cf2844e1c9e724ebcbeaa47f130d00eaf","value":"21.99","type":"fixedAmount","message":"First Bag Free + free shipping","limit":1},"double_standard_six_classic":{"signature":"3fc864ae0949159d8f9598e0e8c7346663349d76","value":"33.98","type":"fixedAmount","message":"First 2 Bags Free + free shipping","limit":1},"double_standard_six_premium":{"signature":"4887af1bc5cae81f009e79c24d63220b4fe51468","value":"43.98","type":"fixedAmount","message":"First 2 Bags Free + free shipping","limit":1},"two_lb_three_classic":{"signature":"51a80782fa275733ee6447d30dd772ad192986cc","value":"39.99","type":"fixedAmount","message":"First Bag Free + free shipping","limit":1},"two_lb_three_premium":{"signature":"a056ddc7a8d618321418b62666529c2936c8ca10","value":"49.99","type":"fixedAmount","message":"First Bag Free + free shipping","limit":1},"two_lb_six_classic":{"signature":"c56987c75ad246010b5a0beeb9d3e758d5ecd2ab","value":"79.98","type":"fixedAmount","message":"First 2 Bags Free + free shipping","limit":1},"two_lb_six_premium":{"signature":"a1871ffc68e469cfbdaca966ecebea494510065c","value":"99.98","type":"fixedAmount","message":"First 2 Bags Free + free shipping","limit":1}, };
4983  window.quizConfig.shippingConfig = { signature: "419788ed593a8c11c1291720ac725532ec04f639", blockId: "quiz_free_shipping", value: true };
4984</script>
vendor: 1 bytes, line 4984
4984
4985<script
4986  defer
4987  src="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.section.subscription-builder-harness.js?v=46115488430291570931790173856"
4988></script>
4988
4989</div><div id="shopify-section-template--27489131954495__active_subscriber_redirect_XaJm7R" class="shopify-section">
4990
4991
4992</div>
4993      </main><div id="shopify-section-footer" class="shopify-section">
4994<script>
4995  if (!document.querySelector('link[href="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.section.tailwind.css?v=178082145445371909981790173858"]')) {
4996    const link = document.createElement('link');
4997    link.setAttribute('rel', 'stylesheet');
4998    link.setAttribute('href', '//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.section.tailwind.css?v=178082145445371909981790173858');
4999    document.head.appendChild(link);
5000  }
5001</script>
5001
5002
5003<footer class="bg-charcoal-600 text-charcoal-100 pt-[52px] px-4 pb-[40px] md:pt-[62px] md:px-7 md:pb-[40px] xl:py-14 xl:px-11 3xl:px-[124px]">
5004  <div class="max-w-[1920px] mx-auto">
5005    <div class="mb-16 md:mb-[93px] xl:flex xl:justify-between xl:mb-16">
5006      <div class="flex flex-wrap lg:gap-x-6 xl:w-auto xl:flex-nowrap xl:gap-12 2xl:gap-14">
5007        
5008          <div class="w-1/2 mb-[50px] [&:nth-child(n+3)]:mb-0 md:w-[170px] md:mb-0">
5009            <h6 class="font-serif text-xl font-light leading-6 xl:leading-[22px] text-charcoal-100 mb-7">Shop</h6>
5010            <ul class="list-none m-0 p-0"><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5011                  
5012                    <a
5013                      href="/collections/all"
5014                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5015                      data-sg-track="true"
5016                      data-sg-label="all-coffee"
5017                      
5018                        data-sg-location="find-my-match-quiz-page"
5019                      
5020                      data-sg-section="footer"
5021                      data-sg-sub-section="menu"
5022                      data-element-type="page"
5023                    >
5024                      All Coffee
5025                    </a>
5026                  
5027                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5028                  
5029                    <a
5030                      href="/collections/equipment"
5031                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5032                      data-sg-track="true"
5033                      data-sg-label="equipment"
5034                      
5035                        data-sg-location="find-my-match-quiz-page"
5036                      
5037                      data-sg-section="footer"
5038                      data-sg-sub-section="menu"
5039                      data-element-type="page"
5040                    >
5041                      Equipment
5042                    </a>
5043                  
5044                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5045                  
5046                    <a
5047                      href="/pages/gifts"
5048                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5049                      data-sg-track="true"
5050                      data-sg-label="coffee-gifts"
5051                      
5052                        data-sg-location="find-my-match-quiz-page"
5053                      
5054                      data-sg-section="footer"
5055                      data-sg-sub-section="menu"
5056                      data-element-type="page"
5057                    >
5058                      Coffee Gifts
5059                    </a>
5060                  
5061                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5062                  
5063                    <a
5064                      href="/pages/refer-a-friend"
5065                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5066                      data-sg-track="true"
5067                      data-sg-label="refer-a-friend"
5068                      
5069                        data-sg-location="find-my-match-quiz-page"
5070                      
5071                      data-sg-section="footer"
5072                      data-sg-sub-section="menu"
5073                      data-element-type="page"
5074                    >
5075                      Refer a Friend
5076                    </a>
5077                  
5078                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5079                  
5080                    <a
5081                      href="https://www.studentbeans.com/en-us/us/beansid-connect/hosted/trade-coffee"
5082                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5083                      data-sg-track="true"
5084                      data-sg-label="student-discounts"
5085                      
5086                        data-sg-location="find-my-match-quiz-page"
5087                      
5088                      data-sg-section="footer"
5089                      data-sg-sub-section="menu"
5090                      data-element-type="page"
5091                    >
5092                      Student Discounts
5093                    </a>
5094                  
5095                </li></ul>
5096          </div>
5097        
5098          <div class="w-1/2 mb-[50px] [&:nth-child(n+3)]:mb-0 md:w-[170px] md:mb-0">
5099            <h6 class="font-serif text-xl font-light leading-6 xl:leading-[22px] text-charcoal-100 mb-7">Learn</h6>
5100            <ul class="list-none m-0 p-0"><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5101                  
5102                    <a
5103                      href="/blogs/how-to"
5104                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5105                      data-sg-track="true"
5106                      data-sg-label="brewing-how-tos"
5107                      
5108                        data-sg-location="find-my-match-quiz-page"
5109                      
5110                      data-sg-section="footer"
5111                      data-sg-sub-section="menu"
5112                      data-element-type="page"
5113                    >
5114                      Brewing How-To's
5115                    </a>
5116                  
5117                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5118                  
5119                    <a
5120                      href="/pages/blog"
5121                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5122                      data-sg-track="true"
5123                      data-sg-label="blog"
5124                      
5125                        data-sg-location="find-my-match-quiz-page"
5126                      
5127                      data-sg-section="footer"
5128                      data-sg-sub-section="menu"
5129                      data-element-type="page"
5130                    >
5131                      Blog
5132                    </a>
5133                  
5134                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5135                  
5136                    <a
5137                      href="/pages/roasters"
5138                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5139                      data-sg-track="true"
5140                      data-sg-label="our-roasters"
5141                      
5142                        data-sg-location="find-my-match-quiz-page"
5143                      
5144                      data-sg-section="footer"
5145                      data-sg-sub-section="menu"
5146                      data-element-type="page"
5147                    >
5148                      Our Roasters
5149                    </a>
5150                  
5151                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5152                  
5153                    <a
5154                      href="/pages/find-my-match"
5155                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5156                      data-sg-track="true"
5157                      data-sg-label="take-the-quiz"
5158                      
5159                        data-sg-location="find-my-match-quiz-page"
5160                      
5161                      data-sg-section="footer"
5162                      data-sg-sub-section="menu"
5163                      data-element-type="page"
5164                    >
5165                      Take the Quiz
5166                    </a>
5167                  
5168                </li></ul>
5169          </div>
5170        
5171          <div class="w-1/2 mb-[50px] [&:nth-child(n+3)]:mb-0 md:w-[170px] md:mb-0">
5172            <h6 class="font-serif text-xl font-light leading-6 xl:leading-[22px] text-charcoal-100 mb-7">Support</h6>
5173            <ul class="list-none m-0 p-0"><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5174                  
5175                    <a
5176                      href="https://trade-coffee.gorgias.help/en-US/articles/frequently-asked-questions-93360"
5177                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5178                      data-sg-track="true"
5179                      data-sg-label="faqs"
5180                      
5181                        data-sg-location="find-my-match-quiz-page"
5182                      
5183                      data-sg-section="footer"
5184                      data-sg-sub-section="menu"
5185                      data-element-type="page"
5186                    >
5187                      FAQs
5188                    </a>
5189                  
5190                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5191                  
5192                    <a
5193                      href="/pages/contact-us"
5194                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5195                      data-sg-track="true"
5196                      data-sg-label="contact-us"
5197                      
5198                        data-sg-location="find-my-match-quiz-page"
5199                      
5200                      data-sg-section="footer"
5201                      data-sg-sub-section="menu"
5202                      data-element-type="page"
5203                    >
5204                      Contact Us
5205                    </a>
5206                  
5207                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5208                  
5209                    <span class="text-charcoal-100 font-sans text-base font-normal leading-normal">Mon-Fri 9-5 PM EST</span>
5210                  
5211                </li></ul>
5212          </div>
5213        
5214          <div class="w-1/2 mb-[50px] [&:nth-child(n+3)]:mb-0 md:w-[170px] md:mb-0">
5215            <h6 class="font-serif text-xl font-light leading-6 xl:leading-[22px] text-charcoal-100 mb-7">Company</h6>
5216            <ul class="list-none m-0 p-0"><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5217                  
5218                    <a
5219                      href="/pages/our-story"
5220                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5221                      data-sg-track="true"
5222                      data-sg-label="about-us"
5223                      
5224                        data-sg-location="find-my-match-quiz-page"
5225                      
5226                      data-sg-section="footer"
5227                      data-sg-sub-section="menu"
5228                      data-element-type="page"
5229                    >
5230                      About Us
5231                    </a>
5232                  
5233                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5234                  
5235                    <a
5236                      href="/a/careers"
5237                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5238                      data-sg-track="true"
5239                      data-sg-label="careers"
5240                      
5241                        data-sg-location="find-my-match-quiz-page"
5242                      
5243                      data-sg-section="footer"
5244                      data-sg-sub-section="menu"
5245                      data-element-type="page"
5246                    >
5247                      Careers
5248                    </a>
5249                  
5250                </li><li class="mb-[19px] md:mb-4 xl:mb-5 last:mb-0">
5251                  
5252                    <a
5253                      href="https://form.typeform.com/to/roOgS3"
5254                      class="no-underline text-charcoal-100 font-sans text-base font-normal leading-normal hover:underline hover:text-charcoal-100"
5255                      data-sg-track="true"
5256                      data-sg-label="roaster-submissions"
5257                      
5258                        data-sg-location="find-my-match-quiz-page"
5259                      
5260                      data-sg-section="footer"
5261                      data-sg-sub-section="menu"
5262                      data-element-type="page"
5263                    >
5264                      Roaster Submissions
5265                    </a>
5266                  
5267                </li></ul>
5268          </div>
5269        
5270      </div>
5271      <div class="mt-[78px] md:mt-[70px] xl:w-[324px] xl:shrink-0 xl:mt-0">
5272        <div>
5273          
5274            <h4 class="font-serif text-[32px] md:text-4xl font-medium leading-[34px] md:leading-none tracking-[-0.96px] md:tracking-[-1.08px] text-charcoal-100 mb-[21px] md:mb-[23px]">Sign up for email updates</h4>
5275          
5276          <div class="footer__form w-full border-b border-charcoal-400 pb-[5px] xl:pb-0 mb-[30px] xl:mb-[19px]" id="footer__form">
5277            <div class="klaviyo-form-Xp9YtH"></div>
5278          </div>
5279        </div>
5280        
5281          <div class="flex items-center gap-8 [&_a]:flex [&_a]:items-center [&_a]:justify-center [&_a]:w-6 [&_a]:h-6 [&_svg]:w-6 [&_svg]:h-6">
5282            
5283              <a
5284      target="_blank"
5285      href="https://www.facebook.com/tradecoffeeco"
5286      title="Facebook"
5287      aria-label="Facebook"
5288      data-sg-track="true"
5289      data-sg-label="facebook"
5290      
5291        data-sg-location="find-my-match-quiz-page"
5292      
5293      data-sg-section="footer"
5294      data-sg-sub-section="social-menu"
5295    >
5296      <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
5297        <g clip-path="url(#clip0_730_1106)">
5298            <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.1499C24 5.52248 18.6274 0.149902 12 0.149902C5.37258 0.149902 0 5.52248 0 12.1499C0 18.1395 4.38823 23.1039 10.125 24.0041V15.6187H7.07812V12.1499H10.125V9.50615C10.125 6.49865 11.9165 4.8374 14.6576 4.8374C15.9705 4.8374 17.3438 5.07178 17.3438 5.07178V8.0249H15.8306C14.3399 8.0249 13.875 8.94991 13.875 9.89889V12.1499H17.2031L16.6711 15.6187H13.875V24.0041C19.6118 23.1039 24 18.1395 24 12.1499Z" fill="white"/>
5299        </g>
5300        <defs>
5301            <clipPath id="clip0_730_1106">
5302                <rect width="24" height="23.86" fill="white" transform="translate(0 0.149902)"/>
5303            </clipPath>
5304        </defs>
5305      </svg>
5306    </a>
5307            
5308            
5309              <a
5310      target="_blank"
5311      href="https://www.instagram.com/tradecoffeeco/"
5312      title="Instagram"
5313      aria-label="Instagram"
5314      data-sg-track="true"
5315      data-sg-label="instagram"
5316      
5317        data-sg-location="find-my-match-quiz-page"
5318      
5319      data-sg-section="footer"
5320      data-sg-sub-section="social-menu"
5321      data-element-type="cta"
5322    >
5323      <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
5324        <g clip-path="url(#clip0_730_1109)">
5325        <path d="M12 2.3129C15.204 2.3129 15.584 2.3249 16.85 2.3829C20.102 2.5309 21.621 4.0739 21.769 7.3019C21.827 8.5669 21.838 8.9469 21.838 12.1509C21.838 15.3559 21.826 15.7349 21.769 16.9999C21.62 20.2249 20.105 21.7709 16.85 21.9189C15.584 21.9769 15.206 21.9889 12 21.9889C8.796 21.9889 8.416 21.9769 7.151 21.9189C3.891 21.7699 2.38 20.2199 2.232 16.9989C2.174 15.7339 2.162 15.3549 2.162 12.1499C2.162 8.9459 2.175 8.5669 2.232 7.3009C2.381 4.0739 3.896 2.5299 7.151 2.3819C8.417 2.3249 8.796 2.3129 12 2.3129ZM12 0.149902C8.741 0.149902 8.333 0.163902 7.053 0.221902C2.695 0.421902 0.273 2.8399 0.073 7.2019C0.014 8.4829 0 8.8909 0 12.1499C0 15.4089 0.014 15.8179 0.072 17.0979C0.272 21.4559 2.69 23.8779 7.052 24.0779C8.333 24.1359 8.741 24.1499 12 24.1499C15.259 24.1499 15.668 24.1359 16.948 24.0779C21.302 23.8779 23.73 21.4599 23.927 17.0979C23.986 15.8179 24 15.4089 24 12.1499C24 8.8909 23.986 8.4829 23.928 7.2029C23.732 2.8489 21.311 0.422902 16.949 0.222902C15.668 0.163902 15.259 0.149902 12 0.149902ZM12 5.9879C8.597 5.9879 5.838 8.7469 5.838 12.1499C5.838 15.5529 8.597 18.3129 12 18.3129C15.403 18.3129 18.162 15.5539 18.162 12.1499C18.162 8.7469 15.403 5.9879 12 5.9879ZM12 16.1499C9.791 16.1499 8 14.3599 8 12.1499C8 9.9409 9.791 8.1499 12 8.1499C14.209 8.1499 16 9.9409 16 12.1499C16 14.3599 14.209 16.1499 12 16.1499ZM18.406 4.3049C17.61 4.3049 16.965 4.9499 16.965 5.7449C16.965 6.5399 17.61 7.1849 18.406 7.1849C19.201 7.1849 19.845 6.5399 19.845 5.7449C19.845 4.9499 19.201 4.3049 18.406 4.3049Z" fill="white"/>
5326        </g>
5327        <defs>
5328        <clipPath id="clip0_730_1109">
5329        <rect width="24" height="24" fill="white" transform="translate(0 0.149902)"/>
5330        </clipPath>
5331        </defs>
5332      </svg>
5333    </a>
5334            
5335            
5336            
5337              <a
5338      target="_blank"
5339      href="https://cffe.me/3bun17q"
5340      title="Youtube"
5341      aria-label="Youtube"
5342      data-sg-track="true"
5343      data-sg-label="youtube"
5344      
5345        data-sg-location="find-my-match-quiz-page"
5346      
5347      data-sg-section="footer"
5348      data-sg-sub-section="social-menu"
5349      data-element-type="cta"
5350    >
5351      <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
5352        <g clip-path="url(#clip0_730_1115)">
5353        <path d="M19.615 3.33391C16.011 3.08791 7.984 3.08891 4.385 3.33391C0.488 3.59991 0.029 5.95391 0 12.1499C0.029 18.3349 0.484 20.6989 4.385 20.9659C7.985 21.2109 16.011 21.2119 19.615 20.9659C23.512 20.6999 23.971 18.3459 24 12.1499C23.971 5.96491 23.516 3.60091 19.615 3.33391ZM9 16.1499V8.14991L17 12.1429L9 16.1499Z" fill="white"/>
5354        </g>
5355        <defs>
5356        <clipPath id="clip0_730_1115">
5357        <rect width="24" height="24" fill="white" transform="translate(0 0.149902)"/>
5358        </clipPath>
5359        </defs>
5360      </svg>
5361    </a>
5362            
5363          </div>
5364        
5365      </div>
5366    </div>
5367    <div class="md:flex md:flex-row-reverse md:items-end xl:flex-row xl:justify-between">
5368      <div class="mb-10 md:mb-0 md:ml-auto md:text-right xl:ml-0 xl:text-left">
5369        <div class="flex flex-wrap gap-2 gap-x-6 md:gap-x-4 md:justify-end xl:justify-start xl:gap-x-8 mb-[5px] md:mb-1 xl:mb-2">
5370          
5371            
5372              <a
5373                href="/pages/commercial-terms"
5374                class="text-sm xl:text-base leading-[1.6] xl:leading-normal font-normal text-charcoal-100 no-underline hover:underline hover:text-charcoal-100"
5375                data-sg-track="true"
5376                data-sg-label="terms"
5377                
5378                  data-sg-location="find-my-match-quiz-page"
5379                
5380                data-sg-section="footer"
5381                data-sg-sub-section="menu"
5382                data-element-type="page"
5383              >
5384                Terms
5385              </a>
5386            
5387          
5388            
5389              <a
5390                href="/policies/privacy-policy"
5391                class="text-sm xl:text-base leading-[1.6] xl:leading-normal font-normal text-charcoal-100 no-underline hover:underline hover:text-charcoal-100"
5392                data-sg-track="true"
5393                data-sg-label="privacy"
5394                
5395                  data-sg-location="find-my-match-quiz-page"
5396                
5397                data-sg-section="footer"
5398                data-sg-sub-section="menu"
5399                data-element-type="page"
5400              >
5401                Privacy
5402              </a>
5403            
5404          
5405            
5406              <a
5407                href="/pages/california-privacy-notice"
5408                class="text-sm xl:text-base leading-[1.6] xl:leading-normal font-normal text-charcoal-100 no-underline hover:underline hover:text-charcoal-100"
5409                data-sg-track="true"
5410                data-sg-label="ccpa"
5411                
5412                  data-sg-location="find-my-match-quiz-page"
5413                
5414                data-sg-section="footer"
5415                data-sg-sub-section="menu"
5416                data-element-type="page"
5417              >
5418                CCPA
5419              </a>
5420            
5421          
5422            
5423              <a
5424                href="/pages/california-privacy-notice#do-not-sell"
5425                class="text-sm xl:text-base leading-[1.6] xl:leading-normal font-normal text-charcoal-100 no-underline hover:underline hover:text-charcoal-100"
5426                data-sg-track="true"
5427                data-sg-label="do-not-sell-my-personal-information"
5428                
5429                  data-sg-location="find-my-match-quiz-page"
5430                
5431                data-sg-section="footer"
5432                data-sg-sub-section="menu"
5433                data-element-type="page"
5434              >
5435                Do Not Sell My Personal Information
5436              </a>
5437            
5438          
5439        </div>
5440        <p class="text-sm xl:text-base leading-[1.6] xl:leading-normal font-normal text-charcoal-100 m-0 md:text-right xl:text-left">
5441          <span>Copyright</span> © Seed Leaf Inc. 2026 All Rights Reserved
5442        </p>
5443      </div>
5444      
5445        <div class="max-w-[343px] mt-[53px] md:w-[417px] md:max-w-none md:mr-auto md:mt-0 xl:max-w-[355px] xl:w-auto xl:mr-0 xl:ml-auto 2xl:max-w-[403px] [&_svg]:w-full [&_svg]:h-auto" data-footer-logo>
5446          <svg width="343" height="115" viewbox="0 0 343 115" fill="none" xmlns="http://www.w3.org/2000/svg">
5447<path fill-rule="evenodd" clip-rule="evenodd" d="M4.18292 6.86847V28.3621H21.6993V112.622H44.1092V28.3621H61.6256V6.86847H4.18292Z" fill="white"></path>
5448<mask id="mask0_747_1201" style="mask-type:luminance" maskunits="userSpaceOnUse" x="172" y="0" width="83" height="114">
5449<path fill-rule="evenodd" clip-rule="evenodd" d="M172.475 0.9422H254.496V113.998H172.475V0.9422Z" fill="white"></path>
5450</mask>
5451<g mask="url(#mask0_747_1201)">
5452<path fill-rule="evenodd" clip-rule="evenodd" d="M213.451 93.8704C225.051 93.8704 233.216 85.0411 233.216 71.6793C233.216 59.0244 225.617 49.4858 213.451 49.4858C201.35 49.4858 193.551 59.0973 193.551 71.6793C193.551 85.6064 202.277 93.8704 213.451 93.8704ZM234.731 104.525C230.25 110.449 221.734 113.998 212.585 113.998C189.349 113.998 172.475 96.5819 172.475 71.9832C172.475 48.3021 187.323 29.5106 211.858 29.5106C220.19 29.5106 227.627 31.9016 233.423 36.3139V0.9422H254.496V112.624H234.731V104.525Z" fill="white"></path>
5453</g>
5454<mask id="mask1_747_1201" style="mask-type:luminance" maskunits="userSpaceOnUse" x="262" y="29" width="77" height="85">
5455<path fill-rule="evenodd" clip-rule="evenodd" d="M262.519 29.5116H338.815V113.997H262.519V29.5116Z" fill="white"></path>
5456</mask>
5457<g mask="url(#mask1_747_1201)">
5458<path fill-rule="evenodd" clip-rule="evenodd" d="M285.046 62.5013H317.014C315.275 54.1019 310.01 48.453 300.633 48.453C292.707 48.453 286.474 54.0093 285.046 62.5013ZM284.609 79.6346C285.833 88.6673 292.491 94.1373 302.338 94.1373C310.856 94.1373 316.098 89.6649 320.168 82.9416L336.527 92.9695C330.356 105.499 317.833 113.998 302.338 113.998C278.795 113.998 262.519 97.955 262.519 71.9842C262.519 47.5398 278.214 29.5116 300.739 29.5116C324.136 29.5116 338.815 45.9255 338.815 70.3699C338.815 73.7901 338.685 76.9625 338.434 79.6346H284.609Z" fill="white"></path>
5459</g>
5460<path fill-rule="evenodd" clip-rule="evenodd" d="M133.833 96.2326C128.28 96.2326 123.779 91.5005 123.779 85.664C123.779 79.8266 128.28 75.0953 133.833 75.0953C139.385 75.0953 143.886 79.8266 143.886 85.664C143.886 91.5005 139.385 96.2326 133.833 96.2326ZM134.93 29.97C118.323 29.97 106.512 43.2963 106.512 56.1894H126.015C126.542 51.5167 130.14 47.6729 135.094 47.6729C140.43 47.6729 143.959 51.8065 143.959 57.4696V62.0347C140.768 60.1441 136.135 58.9977 130.97 58.9977C114.998 58.9977 104.23 72.4704 104.23 86.3579C104.23 103.157 116.7 113.693 131.101 113.693C138.058 113.693 143.404 111.258 146.866 107.429V112.623H164.741V59.924C164.741 40.8736 152.719 29.97 134.93 29.97Z" fill="white"></path>
5461<path fill-rule="evenodd" clip-rule="evenodd" d="M100.607 53.7091H95.6634C88.1068 53.7091 85.4936 57.5284 85.4936 64.5557V112.623L64.4279 112.623V30.887H85.4936V37.4559C88.2552 33.3319 92.6126 30.5814 100.607 30.5814V53.7091Z" fill="white"></path>
5462</svg>
5463        </div>
5464      
5465    </div>
5466  </div>
5467</footer>
5468
5469
5470</div>
5471<!-- New Cart Drawer -->
5472      <vue-mini-cart
5473  data-add-on-discounts="[]"
5474  data-upsell-products="[
5475    
5476      {
5477        &quot;product&quot;: {
5478          &quot;id&quot;: 9920991953215,
5479          &quot;title&quot;: &quot;Hario Mizudashi Cold Brew Maker&quot;,
5480          &quot;handle&quot;: &quot;mizudashi-cold-brew-coffee-maker-black-1000ml&quot;,
5481          &quot;featured_image&quot;: &quot;\/\/www.drinktrade.com\/cdn\/shop\/files\/Hario_01.png?crop=center\u0026height=80\u0026v=1
5481750791899\u0026width=80&quot;,
5482          &quot;price&quot;: 2950,
5483          &quot;variants&quot;: [{&quot;id&quot;:50570934649151,&quot;title&quot;:&quot;Default Title&quot;,&quot;option1&quot;:&quot;Default Title&quot;,&quot;option2&quot;:null,&quot;option3&quot;:null,&quot;sku&quot;:&quot;HARIOMCPN14BEX&quot;,&quot;requires_shipping&quot;:true,&quot;taxable&quot;:true,&quot;featured_image&quot;:null,&quot;available&quot;:true,&quot;name&quot;:&quot;Hario Mizudashi Cold Brew Maker&quot;,&quot;public_title&quot;:null,&quot;options&quot;:[&quot;Default Title&quot;],&quot;price&quot;:2950,&quot;weight&quot;:907,&quot;compare_at_price&quot;:null,&quot;inventory_management&quot;:&quot;shopify&quot;,&quot;barcode&quot;:&quot;4977642164444&quot;,&quot;requires_selling_plan&quot;:false,&quot;selling_plan_allocations&quot;:[],&quot;quantity_rule&quot;:{&quot;min&quot;:1,&quot;max&quot;:null,&quot;increment&quot;:1}}]
5484        },
5485        &quot;brand_name&quot;: &quot;Hario&quot;
5486      }
5487      , 
5488    
5489      {
5490        &quot;product&quot;: {
5491          &quot;id&quot;: 9917830693183,
5492          &quot;title&quot;: &quot;OXO Cold Brew Coffee Maker&quot;,
5493          &quot;handle&quot;: &quot;oxo-cold-brew-coffee-maker-40oz&quot;,
5494          &quot;featured_image&quot;: &quot;\/\/www.drinktrade.com\/cdn\/shop\/files\/OXOColdBrew02_1.png?crop=center\u0026height=80\u0026v=1750793326\u0026width=80&quot;,
5495          &quot;price&quot;: 5999,
5496          &quot;variants&quot;: [{&quot;id&quot;:50550409462079,&quot;title&quot;:&quot;Default Title&quot;,&quot;option1&quot;:&quot;Default Title&quot;,&quot;option2&quot;:null,&quot;option3&quot;:null,&quot;sku&quot;:&quot;1272880&quot;,&quot;requires_shipping&quot;:true,&quot;taxable&quot;:true,&quot;featured_image&quot;:null,&quot;available&quot;:true,&quot;name&quot;:&quot;OXO Cold Brew Coffee Maker&quot;,&quot;public_title&quot;:null,&quot;options&quot;:[&quot;Default Title&quot;],&quot;price&quot;:5999,&quot;weight&quot;:3629,&quot;compare_at_price&quot;:null,&quot;inventory_management&quot;:&quot;shopify&quot;,&quot;barcode&quot;:&quot;719812037288&quot;,&quot;requires_selling_plan&quot;:false,&quot;selling_plan_allocations&quot;:[],&quot;quantity_rule&quot;:{&quot;min&quot;:1,&quot;max&quot;:null,&quot;increment&quot;:1}}]
5497        },
5498        &quot;brand_name&quot;: &quot;OXO&quot;
5499      }
5500      , 
5501    
5502      {
5503        &quot;product&quot;: {
5504          &quot;id&quot;: 9917830758719,
5505          &quot;title&quot;: &quot;OXO Compact Cold Brew Maker&quot;,
5506          &quot;handle&quot;: &quot;oxo-compact-cold-brew-maker-24oz&quot;,
5507          &quot;featured_image&quot;: &quot;\/\/www.drinktrade.com\/cdn\/shop\/files\/OXO_Compact_Cold_Brew_02_1.png?crop=center\u0026height=80\u0026v=1750794427\u0026width=80&quot;,
5508          &quot;price&quot;: 3999,
5509          &quot;variants&quot;: [{&quot;id&quot;:50550409494847,&quot;title&quot;:&quot;Default Title&quot;,&quot;option1&quot;:&quot;Default Title&quot;,&quot;option2&quot;:null,&quot;option3&quot;:null,&quot;sku&quot;:&quot;11237500&quot;,&quot;requires_shipping&quot;:true,&quot;taxable&quot;:true,&quot;featured_image&quot;:null,&quot;available&quot;:true,&quot;name&quot;:&quot;OXO Compact Cold Brew Maker&quot;,&quot;public_title&quot;:null,&quot;options&quot;:[&quot;Default Title&quot;],&quot;price&quot;:3999,&quot;weight&quot;:907,&quot;compare_at_price&quot;:null,&quot;inventory_management&quot;:&quot;shopify&quot;,&quot;barcode&quot;:&quot;719812685311&quot;,&quot;requires_selling_plan&quot;:false,&quot;selling_plan_allocations&quot;:[],&quot;quantity_rule&quot;:{&quot;min&quot;:1,&quot;max&quot;:null,&quot;increment&quot;:1}}]
5510        },
5511        &quot;brand_name&quot;: &quot;OXO&quot;
5512      }
5513      , 
5514    
5515      {
5516        &quot;product&quot;: {
5517          &quot;id&quot;: 9924663968063,
5518          &quot;title&quot;: &quot;Toddy Essential Brewer&quot;,
5519          &quot;handle&quot;: &quot;toddy-essential-brewer&quot;,
5520          &quot;featured_image&quot;: &quot;\/\/www.drinktrade.com\/cdn\/shop\/files\/Toddy_03.png?crop=center\u0026height=80\u0026v=1750795973\u0026width=80&quot;,
5521          &quot;price&quot;: 3999,
5522          &quot;variants&quot;: [{&quot;id&quot;:50602500096319,&quot;title&quot;:&quot;Default Title&quot;,&quot;option1&quot;:&quot;Default Title&quot;,&quot;option2&quot;:null,&quot;option3&quot;:null,&quot;sku&quot;:&quot;CER-TODDY&quot;,&quot;requires_shipping&quot;:true,&quot;taxable&quot;:true,&quot;featured_image&quot;:null,&quot;available&quot;:false,&quot;name&quot;:&quot;Toddy Essential Brewer&quot;,&quot;public_title&quot;:null,&quot;options&quot;:[&quot;Default Title&quot;],&quot;price&quot;:3999,&quot;weight&quot;:1361,&quot;compare_at_price&quot;:null,&quot;inventory_management&quot;:&quot;shopify&quot;,&quot;barcode&quot;:null,&quot;requires_selling_plan&quot;:false,&quot;selling_plan_allocations&quot;:[],&quot;quantity_rule&quot;:{&quot;min&quot;:1,&quot;max&quot;:null,&quot;increment&quot;:1}}]
5523        },
5524        &quot;brand_name&quot;: &quot;Toddy&quot;
5525      }
5526      
5527    
5528  ]"
5529  data-upsell-title="&quot;&quot;"
5530  data-force-mobile="true"
5531  data-upsell-offer-group="null"
5532  data-upsell-target-offer="null"
5533  data-empty-heading="&quot;
5533Your cart is craving delicious coffee.&quot;"
5534  data-empty-button-text="&quot;Shop Coffee&quot;"
5535  data-empty-button-url="&quot;\/collections\/all&quot;"
5536  data-empty-background-image="&quot;\/\/www.drinktrade.com\/cdn\/shop\/files\/Star_7.svg?v=1768508731\u0026width=480&quot;"
5537  data-empty-icon="&quot;\/\/www.drinktrade.com\/cdn\/shop\/files\/Ico-Coffee_d87007bd-3e01-4163-a2e7-70a51863d656.svg?v=1768508733\u0026width=80&quot;"
5538  data-savings-icon="&quot;\/\/www.drinktrade.com\/cdn\/shop\/files\/Ico-percentage_b17f45a9-ae53-4cea-9ec3-bdb6c998dd79.svg?v=1770738368\u0026width=32&quot;"
5539></vue-mini-cart>
5540
5541<div class="search js-search-modal">
5542  <div class="search__wrapper">
5543    <div class="search__content">
5544      <form class="search__form" action="/pages/search-results-page">
5545        <input
5546          type="text"
5547          placeholder="Search coffee, roasters, and more"
5548          class="search__input"
5549          name="q"
5550          value=""
5551        >
5552        <button type="submit" class="search__button">
5553          
5554
5555    <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
5556      <path d="M23.8403 20.0547C26.3394 16.4068 26.2021 11.4035 23.2013 7.87263C19.6073 3.64575 13.267 3.13188 9.04013 6.72484C4.81223 10.3198 4.29837 16.6591 7.89234 20.887C11.4853 25.1149 17.8256 25.6288 22.0535 22.0348L26.5 27.2659" stroke="#252525" stroke-width="1.61538" stroke-linecap="round" stroke-linejoin="round"/>
5557    </svg>
5558
5559  
5560
5561        </button>
5562      </form>
5563      <a href="#" class="search__close js-search-close">
5564        
5565
5566    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
5567      <g clip-path="url(#clip0_114_4717)">
5568        <path d="M18.3636 18.364L5.63566 5.63604M5.63566 18.364L18.3636 5.63604" stroke="#252525" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
5569      </g>
5570      <defs>
5571        <clipPath id="clip0_114_4717">
5572          <rect width="24" height="24" fill="white" transform="translate(24 1.04907e-06) rotate(90)"/>
5573        </clipPath>
5574      </defs>
5575    </svg>
5576
5577  
5578
5579      </a>
5580    </div>
5581  </div>
5582</div>
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593<div
5594  class="fixed top-0 left-0 w-full h-screen bg-[rgba(37,37,37,0.5)] md:bg-[rgba(26,26,26,0.8)] z-[102] overflow-y-auto opacity-0 invisible transition-all duration-100 pt-16 px-4 pb-4 md:pt-[118px] md:px-8 md:pb-8 xl:pt-20 js-account-modal"
5595  style="transition: opacity 0.1s ease-in, visibility 0.1s ease-out;"
5596  role="dialog"
5597  aria-modal="true"
5598  aria-labelledby="accountModalHeading-login"
5599>
5600  <div class="w-full max-w-[358px] md:w-[605px] md:max-w-none mx-auto bg-white px-6 py-10 md:px-16 md:py-10 rounded-24 shadow-[0px_100px_80px_0px_rgba(0,0,0,0.07),0px_64.815px_46.852px_0px_rgba(0,0,0,0.05),0px_38.519px_25.481px_0px_rgba(0,0,0,0.04),0px_20px_13px_0px_rgba(0,0,0,0.04),0px_8.148px_6.519px_0px_rgba(0,0,0,0.03),0px_1.852px_3.148px_0px_rgba(0,0,0,0.02)] ">
5601    <div class="mx-auto">
5602      
5603      <div class="flex items-start justify-between px-4 mb-10" role="tablist" aria-label="Account actions">
5604        <div class="flex-1 flex flex-col gap-2.5 items-center cursor-pointer js-account-login-tab" data-tab="login" role="tab" aria-selected="true" aria-controls="accountModalPanel-login" tabindex="0">
5605          <p class="text-body-14 font-bold text-charcoal-600 w-full text-center js-login-tab-text">Login</p>
5606          <div class="w-full h-0 relative">
5607            <div class="absolute -top-0.5 left-0 right-0 h-0.5 bg-trade-red js-login-tab-indicator"></div>
5608          </div>
5609        </div>
5610        <div class="flex-1 flex flex-col gap-2.5 items-center cursor-pointer js-account-signup-tab" data-tab="signup" role="tab" aria-selected="false" aria-controls="accountModalPanel-signup" tabindex="-1">
5611          <p class="text-body-14 text-charcoal-400 w-full text-center js-signup-tab-text">Sign up</p>
5612          <div class="w-full h-0 relative">
5613            <div class="absolute -top-0.5 left-0 right-0 h-0.5 bg-charcoal-200 js-signup-tab-indicator"></div>
5614          </div>
5615        </div>
5616      </div>
5617
5618      
5619      <div class="js-account-modal-login" id="accountModalPanel-login" role="tabpanel" aria-labelledby="accountModalHeading-login">
5620        <div class="flex flex-col gap-2 items-start mb-8 text-center">
5621          <h2 id="accountModalHeading-login" class="font-serif text-display-36 max-md:text-[28px] text-charcoal-600 w-full">Log in to your account</h2>
5622          <p class="text-body-16 max-md:text-[14px] text-charcoal-600 w-full">Enter your account details to access your dashboard and coffee preferences.</p>
5623        </div>
5624
5625        <div id="loginForm">
5626          <form method="post" action="/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true"><input type="hidden" name="form_type" value="customer_login" /><input type="hidden" name="utf8" value="✓" />
5627            
5628              <input type="hidden" name="return_to" value="/account?view=my_trade">
5629            
5630
5631            
5632
5633
5634
5635
5636<div class="w-full mb-4">
5637  <div class="relative flex items-center w-full h-14 px-4 bg-surface-white border border-charcoal-200 focus-within:border-charcoal-600 rounded-lg transition-colors duration-200 js-input-field" data-input-wrapper>
5638    <input
5639      type="email"
5640      name="customer[email]"
5641      id="customeremail-email"
5642      class="flex-1 w-full h-full pt-0 pb-0 border-0 bg-transparent text-body-16 text-charcoal-600 outline-none focus:outline-none focus-visible:outline-none transition-[padding] duration-200 placeholder:text-transparent focus:pt-4 peer js-form-input  "
5643      required
5644      autocomplete="email"
5645      
5646      placeholder=" "
5647      style="padding: 14px 0px 0px;"
5648      data-input
5649    >
5650    <label for="customeremail-email" class="absolute left-4 top-1/2 -translate-y-1/2 text-body-16 text-charcoal-300 pointer-events-none transition-all duration-200 peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-body-12 peer-focus:text-charcoal-400 peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-body-12 peer-[:not(:placeholder-shown)]:text-charcoal-400 peer-focus:!text-trade-red">Email</label>
5651
5652    
5653  </div>
5654
5655  
5656
5657  
5658    <p class="mt-2 text-body-12 font-bold text-trade-red js-form-error" style="display: none;" role="alert">Please enter a valid email</p>
5659  
5660</div>
5661
5662<style>
5663  .js-form-error.js-form-error--active {
5664    display: block !important;
5665  }
5666
5667  /* Add red border to input wrapper when error is active (sibling selector) */
5668  .js-input-field:has(~ .js-form-error--active) {
5669    border-color: #F45048 !important;
5670  }
5671</style>
5672
5673
5674            
5675
5676
5677
5678
5679<div class="w-full mb-4">
5680  <div class="relative flex items-center w-full h-14 px-4 bg-surface-white border border-charcoal-200 focus-within:border-charcoal-600 rounded-lg transition-colors duration-200 js-input-field" data-input-wrapper>
5681    <input
5682      type="password"
5683      name="customer[password]"
5684      id="customerpassword-password"
5685      class="flex-1 w-full h-full pt-0 pb-0 border-0 bg-transparent text-body-16 text-charcoal-600 outline-none focus:outline-none focus-visible:outline-none transition-[padding] duration-200 placeholder:text-transparent focus:pt-4 peer js-form-input js-form-input-password "
5686      required
5687      autocomplete="current-password"
5688      
5689      placeholder=" "
5690      style="padding: 14px 0px 0px;"
5691      data-input
5692    >
5693    <label for="customerpassword-password" class="absolute left-4 top-1/2 -translate-y-1/2 text-body-16 text-charcoal-300 pointer-events-none transition-all duration-200 peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-body-12 peer-focus:text-charcoal-400 peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-body-12 peer-[:not(:placeholder-shown)]:text-charcoal-400 peer-focus:!text-trade-red">Password</label>
5694
5695    
5696      <button
5697        type="button"
5698        class="flex-shrink-0 w-4 h-4 ml-4 p-0 border-0 bg-transparent cursor-pointer hover:opacity-70 transition-opacity js-toggle-password"
5699        aria-label="Toggle password visibility"
5700        data-password-toggle
5701      >
5702        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="js-password-icon-visible w-4 h-4">
5703          <path d="M8.00008 10.6667C8.83342 10.6667 9.54175 10.375 10.1251 9.79169C10.7084 9.20835 11.0001 8.50002 11.0001 7.66669C11.0001 6.83335 10.7084 6.12502 10.1251 5.54169C9.54175 4.95835 8.83342 4.66669 8.00008 4.66669C7.16675 4.66669 6.45842 4.95835 5.87508 5.54169C5.29175 6.12502 5.00008 6.83335 5.00008 7.66669C5.00008 8.50002 5.29175 9.20835 5.87508 9.79169C6.45842 10.375 7.16675 10.6667 8.00008 10.6667ZM8.00008 9.46669C7.50008 9.46669 7.07508 9.29169 6.72508 8.94169C6.37508 8.59169 6.20008 8.16669 6.20008 7.66669C6.20008 7.16669 6.37508 6.74169 6.72508 6.39169C7.07508 6.04169 7.50008 5.86669 8.00008 5.86669C8.50008 5.86669 8.92508 6.04169 9.27508 6.39169C9.62508 6.74169 9.80008 7.16669 9.80008 7.66669C9.80008 8.16669 9.62508 8.59169 9.27508 8.94169C8.92508 9.29169 8.50008 9.46669 8.00008 9.46669ZM8.00008 12.6667C6.37786 12.6667 4.90008 12.2139 3.56675 11.3084C2.23341 10.4028 1.26675 9.18891 0.666748 7.66669C1.26675 6.14446 2.23341 4.93058 3.56675 4.02502C4.90008 3.11946 6.37786 2.66669 8.00008 2.66669C9.6223 2.66669 11.1001 3.11946 12.4334 4.02502C13.7667 4.93058 14.7334 6.14446 15.3334 7.66669C14.7334 9.18891 13.7667 10.4028 12.4334 11.3084C11.1001 12.2139 9.6223 12.6667 8.00008 12.6667ZM8.00008 11.3334C9.25564 11.3334 10.4084 11.0028 11.4584 10.3417C12.5084 9.68058 13.3112 8.78891 13.8667 7.66669C13.3112 6.54446 12.5084 5.6528 11.4584 4.99169C10.4084 4.33058 9.25564 4.00002 8.00008 4.00002C6.74453 4.00002 5.59175 4.33058 4.54175 4.99169C3.49175 5.6528 2.68897 6.54446 2.13341 7.66669C2.68897 8.78891 3.49175 9.68058 4.54175 10.3417C5.59175 11.0028 6.74453 11.3334 8.00008 11.3334Z" fill="#252525"/>
5704        </svg>
5705        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="js-password-icon-hidden w-4 h-4 hidden">
5706          <path d="M1 1.33333L13.3333 13.6667" stroke="#1A1A1A"/>
5707          <path d="M8.00008 10.6667C8.83342 10.6667 9.54175 10.375 10.1251 9.79169C10.7084 9.20835 11.0001 8.50002 11.0001 7.66669C11.0001 6.83335 10.7084 6.12502 10.1251 5.54169C9.54175 4.95835 8.83342 4.66669 8.00008 4.66669C7.16675 4.66669 6.45842 4.95835 5.87508 5.54169C5.29175 6.12502 5.00008 6.83335 5.00008 7.66669C5.00008 8.50002 5.29175 9.20835 5.87508 9.79169C6.45842 10.375 7.16675 10.6667 8.00008 10.6667ZM8.00008 9.46669C7.50008 9.46669 7.07508 9.29169 6.72508 8.94169C6.37508 8.59169 6.20008 8.16669 6.20008 7.66669C6.20008 7.16669 6.37508 6.74169 6.72508 6.39169C7.07508 6.04169 7.50008 5.86669 8.00008 5.86669C8.50008 5.86669 8.92508 6.04169 9.27508 6.39169C9.62508 6.74169 9.80008 7.16669 9.80008 7.66669C9.80008 8.16669 9.62508 8.59169 9.27508 8.94169C8.92508 9.29169 8.50008 9.46669 8.00008 9.46669ZM8.00008 12.6667C6.37786 12.6667 4.90008 12.2139 3.56675 11.3084C2.23341 10.4028 1.26675 9.18891 0.666748 7.66669C1.26675 6.14446 2.23341 4.93058 3.56675 4.02502C4.90008 3.11946 6.37786 2.66669 8.00008 2.66669C9.6223 2.66669 11.1001 3.11946 12.4334 4.02502C13.7667 4.93058 14.7334 6.14446 15.3334 7.66669C14.7334 9.18891 13.7667 10.4028 12.4334 11.3084C11.1001 12.2139 9.6223 12.6667 8.00008 12.6667ZM8.00008 11.3334C9.25564 11.3334 10.4084 11.0028 11.4584 10.3417C12.5084 9.68058 13.3112 8.78891 13.8667 7.66669C13.3112 6.54446 12.5084 5.6528 11.4584 4.99169C10.4084 4.33058 9.25564 4.00002 8.00008 4.00002C6.74453 4.00002 5.59175 4.33058 4.54175 4.99169C3.49175 5.6528 2.68897 6.54446 2.13341 7.66669C2.68897 8.78891 3.49175 9.68058 4.54175 10.3417C5.59175 11.0028 6.74453 11.3334 8.00008 11.3334Z" fill="#1A1A1A"/>
5708        </svg>
5709      </button>
5710    
5711  </div>
5712
5713  
5714
5715  
5716    <p class="mt-2 text-body-12 font-bold text-trade-red js-form-error" style="display: none;" role="alert">Please enter a valid password</p>
5717  
5718</div>
5719
5720<style>
5721  .js-form-error.js-form-error--active {
5722    display: block !important;
5723  }
5724
5725  /* Add red border to input wrapper when error is active (sibling selector) */
5726  .js-input-field:has(~ .js-form-error--active) {
5727    border-color: #F45048 !important;
5728  }
5729</style>
5730
5731
5732            
5733
5734            <p class="text-body-16 text-charcoal-600 text-center underline mb-8 cursor-pointer js-account-reset">
5735              Forgot password?
5736            </p>
5737
5738            <div class="flex flex-col gap-4">
5739              <button
5740                type="submit"
5741                class="w-full h-[52px] px-6 bg-charcoal-600 text-white text-body-16 rounded-lg hover:bg-charcoal-500 transition-colors flex items-center justify-center"
5742              >
5743                Log in
5744              </button>
5745              <button
5746                type="button"
5747                class="w-full h-[52px] px-6 border border-[rgba(37,37,37,0.25)] text-charcoal-600 text-body-16 rounded-lg hover:bg-charcoal-50 transition-colors flex items-center justify-center js-account-close"
5748                aria-label="Close modal"
5749              >
5750                Close
5751              </button>
5752            </div>
5753          </form>
5754        </div>
5755      </div>
5756
5757      
5758      <div class="hidden js-account-modal-signup" id="accountModalPanel-signup" role="tabpanel" aria-labelledby="accountModalHeading-signup">
5759        <div class="flex flex-col gap-2 items-start mb-8 text-center">
5760          <h2 id="accountModalHeading-signup" class="font-serif text-display-36 text-charcoal-600 w-full">Create your account</h2>
5761          <p class="text-body-16 text-charcoal-600 w-full">Join Trade to easily manage your dashboard, update coffee preferences, edit deliveries, and more!</p>
5762        </div>
5763
5764        <div id="registerForm">
5765          <form method="post" action="/account" id="create_customer" accept-charset="UTF-8" data-login-with-shop-sign-up="true"><input type="hidden" name="form_type" value="create_customer" /><input type="hidden" name="utf8" value="✓" />
5766            
5767
5768            
5769
5770
5771
5772
5773<div class="w-full mb-4">
5774  <div class="relative flex items-center w-full h-14 px-4 bg-surface-white border border-charcoal-200 focus-within:border-charcoal-600 rounded-lg transition-colors duration-200 js-input-field" data-input-wrapper>
5775    <input
5776      type="text"
5777      name="customer[first_name]"
5778      id="customerfirst_name-text"
5779      class="flex-1 w-full h-full pt-0 pb-0 border-0 bg-transparent text-body-16 text-charcoal-600 outline-none focus:outline-none focus-visible:outline-none transition-[padding] duration-200 placeholder:text-transparent focus:pt-4 peer js-form-input  "
5780      required
5781      autocomplete="given-name"
5782      
5783      placeholder=" "
5784      style="padding: 14px 0px 0px;"
5785      data-input
5786    >
5787    <label for="customerfirst_name-text" class="absolute left-4 top-1/2 -translate-y-1/2 text-body-16 text-charcoal-300 pointer-events-none transition-all duration-200 peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-body-12 peer-focus:text-charcoal-400 peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-body-12 peer-[:not(:placeholder-shown)]:text-charcoal-400 peer-focus:!text-trade-red">First Name</label>
5788
5789    
5790  </div>
5791
5792  
5793
5794  
5795    <p class="mt-2 text-body-12 font-bold text-trade-red js-form-error" style="display: none;" role="alert">Please enter a first name</p>
5796  
5797</div>
5798
5799<style>
5800  .js-form-error.js-form-error--active {
5801    display: block !important;
5802  }
5803
5804  /* Add red border to input wrapper when error is active (sibling selector) */
5805  .js-input-field:has(~ .js-form-error--active) {
5806    border-color: #F45048 !important;
5807  }
5808</style>
5809
5810
5811            
5812
5813
5814
5815
5816<div class="w-full mb-4">
5817  <div class="relative flex items-center w-full h-14 px-4 bg-surface-white border border-charcoal-200 focus-within:border-charcoal-600 rounded-lg transition-colors duration-200 js-input-field" data-input-wrapper>
5818    <input
5819      type="text"
5820      name="customer[last_name]"
5821      id="customerlast_name-text"
5822      class="flex-1 w-full h-full pt-0 pb-0 border-0 bg-transparent text-body-16 text-charcoal-600 outline-none focus:outline-none focus-visible:outline-none transition-[padding] duration-200 placeholder:text-transparent focus:pt-4 peer js-form-input  "
5823      required
5824      autocomplete="family-name"
5825      
5826      placeholder=" "
5827      style="padding: 14px 0px 0px;"
5828      data-input
5829    >
5830    <label for="customerlast_name-text" class="absolute left-4 top-1/2 -translate-y-1/2 text-body-16 text-charcoal-300 pointer-events-none transition-all duration-200 peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-body-12 peer-focus:text-charcoal-400 peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-body-12 peer-[:not(:placeholder-shown)]:text-charcoal-400 peer-focus:!text-trade-red">Last Name</label>
5831
5832    
5833  </div>
5834
5835  
5836
5837  
5838    <p class="mt-2 text-body-12 font-bold text-trade-red js-form-error" style="display: none;" role="alert">Please enter a last name</p>
5839  
5840</div>
5841
5842<style>
5843  .js-form-error.js-form-error--active {
5844    display: block !important;
5845  }
5846
5847  /* Add red border to input wrapper when error is active (sibling selector) */
5848  .js-input-field:has(~ .js-form-error--active) {
5849    border-color: #F45048 !important;
5850  }
5851</style>
5852
5853
5854            
5855
5856
5857
5858
5859<div class="w-full mb-4">
5860  <div class="relative flex items-center w-full h-14 px-4 bg-surface-white border border-charcoal-200 focus-within:border-charcoal-600 rounded-lg transition-colors duration-200 js-input-field" data-input-wrapper>
5861    <input
5862      type="email"
5863      name="customer[email]"
5864      id="customeremail-email"
5865      class="flex-1 w-full h-full pt-0 pb-0 border-0 bg-transparent text-body-16 text-charcoal-600 outline-none focus:outline-none focus-visible:outline-none transition-[padding] duration-200 placeholder:text-transparent focus:pt-4 peer js-form-input  "
5866      required
5867      autocomplete="email"
5868      
5869      placeholder=" "
5870      style="padding: 14px 0px 0px;"
5871      data-input
5872    >
5873    <label for="customeremail-email" class="absolute left-4 top-1/2 -translate-y-1/2 text-body-16 text-charcoal-300 pointer-events-none transition-all duration-200 peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-body-12 peer-focus:text-charcoal-400 peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-body-12 peer-[:not(:placeholder-shown)]:text-charcoal-400 peer-focus:!text-trade-red">Email</label>
5874
5875    
5876  </div>
5877
5878  
5879
5880  
5881    <p class="mt-2 text-body-12 font-bold text-trade-red js-form-error" style="display: none;" role="alert">Please enter a valid email</p>
5882  
5883</div>
5884
5885<style>
5886  .js-form-error.js-form-error--active {
5887    display: block !important;
5888  }
5889
5890  /* Add red border to input wrapper when error is active (sibling selector) */
5891  .js-input-field:has(~ .js-form-error--active) {
5892    border-color: #F45048 !important;
5893  }
5894</style>
5895
5896
5897            
5898
5899
5900
5901
5902<div class="w-full mb-4">
5903  <div class="relative flex items-center w-full h-14 px-4 bg-surface-white border border-charcoal-200 focus-within:border-charcoal-600 rounded-lg transition-colors duration-200 js-input-field" data-input-wrapper>
5904    <input
5905      type="password"
5906      name="customer[password]"
5907      id="customerpassword-password"
5908      class="flex-1 w-full h-full pt-0 pb-0 border-0 bg-transparent text-body-16 text-charcoal-600 outline-none focus:outline-none focus-visible:outline-none transition-[padding] duration-200 placeholder:text-transparent focus:pt-4 peer js-form-input js-form-input-password "
5909      required
5910      autocomplete="new-password"
5911      
5912      placeholder=" "
5913      style="padding: 14px 0px 0px;"
5914      data-input
5915    >
5916    <label for="customerpassword-password" class="absolute left-4 top-1/2 -translate-y-1/2 text-body-16 text-charcoal-300 pointer-events-none transition-all duration-200 peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-body-12 peer-focus:text-charcoal-400 peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-body-12 peer-[:not(:placeholder-shown)]:text-charcoal-400 peer-focus:!text-trade-red">Password</label>
5917
5918    
5919      <button
5920        type="button"
5921        class="flex-shrink-0 w-4 h-4 ml-4 p-0 border-0 bg-transparent cursor-pointer hover:opacity-70 transition-opacity js-toggle-password"
5922        aria-label="Toggle password visibility"
5923        data-password-toggle
5924      >
5925        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="js-password-icon-visible w-4 h-4">
5926          <path d="M8.00008 10.6667C8.83342 10.6667 9.54175 10.375 10.1251 9.79169C10.7084 9.20835 11.0001 8.50002 11.0001 7.66669C11.0001 6.83335 10.7084 6.12502 10.1251 5.54169C9.54175 4.95835 8.83342 4.66669 8.00008 4.66669C7.16675 4.66669 6.45842 4.95835 5.87508 5.54169C5.29175 6.12502 5.00008 6.83335 5.00008 7.66669C5.00008 8.50002 5.29175 9.20835 5.87508 9.79169C6.45842 10.375 7.16675 10.6667 8.00008 10.6667ZM8.00008 9.46669C7.50008 9.46669 7.07508 9.29169 6.72508 8.94169C6.37508 8.59169 6.20008 8.16669 6.20008 7.66669C6.20008 7.16669 6.37508 6.74169 6.72508 6.39169C7.07508 6.04169 7.50008 5.86669 8.00008 5.86669C8.50008 5.86669 8.92508 6.04169 9.27508 6.39169C9.62508 6.74169 9.80008 7.16669 9.80008 7.66669C9.80008 8.16669 9.62508 8.59169 9.27508 8.94169C8.92508 9.29169 8.50008 9.46669 8.00008 9.46669ZM8.00008 12.6667C6.37786 12.6667 4.90008 12.2139 3.56675 11.3084C2.23341 10.4028 1.26675 9.18891 0.666748 7.66669C1.26675 6.14446 2.23341 4.93058 3.56675 4.02502C4.90008 3.11946 6.37786 2.66669 8.00008 2.66669C9.6223 2.66669 11.1001 3.11946 12.4334 4.02502C13.7667 4.93058 14.7334 6.14446 15.3334 7.66669C14.7334 9.18891 13.7667 10.4028 12.4334 11.3084C11.1001 12.2139 9.6223 12.6667 8.00008 12.6667ZM8.00008 11.3334C9.25564 11.3334 10.4084 11.0028 11.4584 10.3417C12.5084 9.68058 13.3112 8.78891 13.8667 7.66669C13.3112 6.54446 12.5084 5.6528 11.4584 4.99169C10.4084 4.33058 9.25564 4.00002 8.00008 4.00002C6.74453 4.00002 5.59175 4.33058 4.54175 4.99169C3.49175 5.6528 2.68897 6.54446 2.13341 7.66669C2.68897 8.78891 3.49175 9.68058 4.54175 10.3417C5.59175 11.0028 6.74453 11.3334 8.00008 11.3334Z" fill="#252525"/>
5927        </svg>
5928        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="js-password-icon-hidden w-4 h-4 hidden">
5929          <path d="M1 1.33333L13.3333 13.6667" stroke="#1A1A1A"/>
5930          <path d="M8.00008 10.6667C8.83342 10.6667 9.54175 10.375 10.1251 9.79169C10.7084 9.20835 11.0001 8.50002 11.0001 7.66669C11.0001 6.83335 10.7084 6.12502 10.1251 5.54169C9.54175 4.95835 8.83342 4.66669 8.00008 4.66669C7.16675 4.66669 6.45842 4.95835 5.87508 5.54169C5.29175 6.12502 5.00008 6.83335 5.00008 7.66669C5.00008 8.50002 5.29175 9.20835 5.87508 9.79169C6.45842 10.375 7.16675 10.6667 8.00008 10.6667ZM8.00008 9.46669C7.50008 9.46669 7.07508 9.29169 6.72508 8.94169C6.37508 8.59169 6.20008 8.16669 6.20008 7.66669C6.20008 7.16669 6.37508 6.74169 6.72508 6.39169C7.07508 6.04169 7.50008 5.86669 8.00008 5.86669C8.50008 5.86669 8.92508 6.04169 9.27508 6.39169C9.62508 6.74169 9.80008 7.16669 9.80008 7.66669C9.80008 8.16669 9.62508 8.59169 9.27508 8.94169C8.92508 9.29169 8.50008 9.46669 8.00008 9.46669ZM8.00008 12.6667C6.37786 12.6667 4.90008 12.2139 3.56675 11.3084C2.23341 10.4028 1.26675 9.18891 0.666748 7.66669C1.26675 6.14446 2.23341 4.93058 3.56675 4.02502C4.90008 3.11946 6.37786 2.66669 8.00008 2.66669C9.6223 2.66669 11.1001 3.11946 12.4334 4.02502C13.7667 4.93058 14.7334 6.14446 15.3334 7.66669C14.7334 9.18891 13.7667 10.4028 12.4334 11.3084C11.1001 12.2139 9.6223 12.6667 8.00008 12.6667ZM8.00008 11.3334C9.25564 11.3334 10.4084 11.0028 11.4584 10.3417C12.5084 9.68058 13.3112 8.78891 13.8667 7.66669C13.3112 6.54446 12.5084 5.6528 11.4584 4.99169C10.4084 4.33058 9.25564 4.00002 8.00008 4.00002C6.74453 4.00002 5.59175 4.33058 4.54175 4.99169C3.49175 5.6528 2.68897 6.54446 2.13341 7.66669C2.68897 8.78891 3.49175 9.68058 4.54175 10.3417C5.59175 11.0028 6.74453 11.3334 8.00008 11.3334Z" fill="#1A1A1A"/>
5931        </svg>
5932      </button>
5933    
5934  </div>
5935
5936  
5937
5938  
5939    <p class="mt-2 text-body-12 font-bold text-trade-red js-form-error" style="display: none;" role="alert">Please enter a password</p>
5940  
5941</div>
5942
5943<style>
5944  .js-form-error.js-form-error--active {
5945    display: block !important;
5946  }
5947
5948  /* Add red border to input wrapper when error is active (sibling selector) */
5949  .js-input-field:has(~ .js-form-error--active) {
5950    border-color: #F45048 !important;
5951  }
5952</style>
5953
5954
5955            <div class="flex flex-col gap-4 mt-8">
5956              <button
5957                type="submit"
5958                class="w-full h-[52px] px-6 bg-charcoal-600 text-white text-body-16 rounded-lg hover:bg-charcoal-500 transition-colors flex items-center justify-center"
5959              >
5960                Create Account
5961              </button>
5962              <button
5963                type="button"
5964                class="w-full h-[52px] px-6 border border-[rgba(37,37,37,0.25)] text-charcoal-600 text-body-16 rounded-lg hover:bg-charcoal-50 transition-colors flex items-center justify-center js-account-close"
5965                aria-label="Close modal"
5966              >
5967                Close
5968              </button>
5969            </div>
5970          </form>
5971        </div>
5972      </div>
5973
5974      
5975      <div class="hidden js-account-modal-reset" id="accountModalPanel-reset" aria-labelledby="accountModalHeading-reset">
5976        <div class="flex flex-col gap-2 items-start mb-8 text-center">
5977          <h2 id="accountModalHeading-reset" class="font-serif text-display-36 text-charcoal-600 w-full">Reset your password</h2>
5978          <p class="text-body-16 text-charcoal-600 w-full">Enter your email and we'll send you a link to reset your password.</p>
5979        </div>
5980
5981        <div id="resetForm">
5982          <form method="post" action="/account/recover" accept-charset="UTF-8"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="✓" />
5983            
5984
5985            
5986
5987
5988
5989
5990<div class="w-full mb-4">
5991  <div class="relative flex items-center w-full h-14 px-4 bg-surface-white border border-charcoal-200 focus-within:border-charcoal-600 rounded-lg transition-colors duration-200 js-input-field" data-input-wrapper>
5992    <input
5993      type="email"
5994      name="email"
5995      id="email-email"
5996      class="flex-1 w-full h-full pt-0 pb-0 border-0 bg-transparent text-body-16 text-charcoal-600 outline-none focus:outline-none focus-visible:outline-none transition-[padding] duration-200 placeholder:text-transparent focus:pt-4 peer js-form-input  "
5997      required
5998      autocomplete="email"
5999      
6000      placeholder=" "
6001      style="padding: 14px 0px 0px;"
6002      data-input
6003    >
6004    <label for="email-email" class="absolute left-4 top-1/2 -translate-y-1/2 text-body-16 text-charcoal-300 pointer-events-none transition-all duration-200 peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-body-12 peer-focus:text-charcoal-400 peer-[:not(:placeholder-shown)]:top-2 peer-[:not(:placeholder-shown)]:translate-y-0 peer-[:not(:placeholder-shown)]:text-body-12 peer-[:not(:placeholder-shown)]:text-charcoal-400 peer-focus:!text-trade-red">Email</label>
6005
6006    
6007  </div>
6008
6009  
6010
6011  
6012    <p class="mt-2 text-body-12 font-bold text-trade-red js-form-error" style="display: none;" role="alert">Please enter a valid email</p>
6013  
6014</div>
6015
6016<style>
6017  .js-form-error.js-form-error--active {
6018    display: block !important;
6019  }
6020
6021  /* Add red border to input wrapper when error is active (sibling selector) */
6022  .js-input-field:has(~ .js-form-error--active) {
6023    border-color: #F45048 !important;
6024  }
6025</style>
6026
6027
6028            <div class="flex flex-col gap-4 mt-8">
6029              <button
6030                type="submit"
6031                class="w-full h-[52px] px-6 bg-charcoal-600 text-white text-body-16 rounded-lg hover:bg-charcoal-500 transition-colors flex items-center justify-center"
6032              >
6033                Reset password
6034              </button>
6035              <p class="text-body-16 text-charcoal-600 text-center underline cursor-pointer js-account-login">
6036                Back to Login
6037              </p>
6038            </div>
6039          </form>
6040        </div>
6041      </div>
6042    </div>
6043  </div>
6044</div>
6045
6046<script>
6047  document.addEventListener('DOMContentLoaded', function () {
6048    // Load modal settings from header section data attributes
6049    const settingsEl = document.getElementById('account-modal-settings');
6050    if (settingsEl) {
6051      const modal = document.querySelector('.js-account-modal');
6052      if (modal) {
6053        // Update login section
6054        const loginHeading = settingsEl.dataset.loginHeading;
6055        const loginSubheading = settingsEl.dataset.loginSubheading;
6056        if (loginHeading) {
6057          const loginHeadingEl = modal.querySelector('.js-account-modal-login h2');
6058          if (loginHeadingEl) loginHeadingEl.textContent = loginHeading;
6059        }
6060        if (loginSubheading) {
6061          const loginSubheadingEl = modal.querySelector('.js-account-modal-login h2 + p');
6062          if (loginSubheadingEl) loginSubheadingEl.textContent = loginSubheading;
6063        }
6064
6065        // Update signup section
6066        const signupHeading = settingsEl.dataset.signupHeading;
6067        const signupSubheading = settingsEl.dataset.signupSubheading;
6068        if (signupHeading) {
6069          const signupHeadingEl = modal.querySelector('.js-account-modal-signup h2');
6070          if (signupHeadingEl) signupHeadingEl.textContent = signupHeading;
6071        }
6072        if (signupSubheading) {
6073          const signupSubheadingEl = modal.querySelector('.js-account-modal-signup h2 + p');
6074          if (signupSubheadingEl) signupSubheadingEl.textContent = signupSubheading;
6075        }
6076
6077        // Update forgot password section
6078        const forgotHeading = settingsEl.dataset.forgotHeading;
6079        const forgotSubheading = settingsEl.dataset.forgotSubheading;
6080        if (forgotHeading) {
6081          const forgotHeadingEl = modal.querySelector('.js-account-modal-reset h2');
6082          if (forgotHeadingEl) forgotHeadingEl.textContent = forgotHeading;
6083        }
6084        if (forgotSubheading) {
6085          const forgotSubheadingEl = modal.querySelector('.js-account-modal-reset h2 + p');
6086          if (forgotSubheadingEl) forgotSubheadingEl.textContent = forgotSubheading;
6087        }
6088      }
6089    }
6090
6091    // Password visibility toggle
6092    const toggleButtons = document.querySelectorAll('.js-toggle-password');
6093    toggleButtons.forEach((button) => {
6094      button.addEventListener('click', function () {
6095        const wrapper = this.closest('.js-input-field');
6096        const input = wrapper.querySelector('.js-form-input-password');
6097        const visibleIcon = this.querySelector('.js-password-icon-visible');
6098        const hiddenIcon = this.querySelector('.js-password-icon-hidden');
6099
6100        if (input.type === 'password') {
6101          input.type = 'text';
6102          visibleIcon.classList.add('hidden');
6103          hiddenIcon.classList.remove('hidden');
6104        } else {
6105          input.type = 'password';
6106          visibleIcon.classList.remove('hidden');
6107          hiddenIcon.classList.add('hidden');
6108        }
6109      });
6110    });
6111  });
6112</script>
6112
6113
6114<!-- Vendor Modules -->
6115
6116<script src="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.vendors.js?v=118887118964782433581790173859" type="text/javascript"></script>
6116
6117
6118<!-- Common Modules -->
6119
6120<script src="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.common.js?v=121417447354656180351790173857" type="text/javascript"></script>
6120
6121
6122<!-- Layout Modules -->
6123
6124<script src="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.theme.js?v=166949724950009917481790173857" type="text/javascript"></script>
6124
6125
6126<!-- Template Modules -->
6127
6128<script src="//www.drinktrade.com/cdn/shop/t/2106/assets/bundle.page.js?v=117859048990827806731790173847" type="text/javascript"></script>
6128
6129
6130<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6130
6131</body>
6132</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.