{
  "version": 3,
  "sources": ["/cdn/shop/t/79/assets/sf-bundlelink.js?x=1789182363642"],
  "sourcesContent": ["/* Campaign links into a chosen bundle.\n\n   An ad can point at a specific offer:\n     /pages/bundles?bundle=2-for-30\n     /pages/bundles?bundle=3-for-55\n   and the page opens on that tier. The tabs still work, so the shopper can\n   move to another offer \u2014 the link chooses the starting point, it does not\n   lock anything.\n\n   Accepted forms, all case-insensitive:\n     the label slug   2-for-30, 3for55, \"2 for 40\"\n     the amount alone 30, 40, 55, 60, 85\n     the internal key twoS, two, three, twoP, threeP\n   Anything unrecognised is ignored and the page opens normally, because an\n   ad link with a typo should still land somewhere sensible.\n\n   This runs before the builder starts, so only the chosen range is fetched\n   \u2014 setting it afterwards would load the default range first and throw it\n   away, costing the shopper a needless round trip on a paid click.\n\n   The tab the shopper lands on is written back into the address bar, so a\n   shared or bookmarked link keeps the offer. */\n(function(){\n\"use strict\";\nfunction slug(s){ return String(s||'').toLowerCase().replace(/[^a-z0-9]+/g,'-').replace(/^-|-$/g,'') }\n\nfunction resolve(bundles, want){\n  if(!want) return null;\n  var w=slug(want), keys=Object.keys(bundles||{}), i, k, b, s;\n  /* internal key, exactly as written in the catalogue */\n  for(i=0;i<keys.length;i++) if(slug(keys[i])===w) return keys[i];\n  /* label slug: \"2 for 30 KD\" matches 2-for-30 and 2-for-30-kd */\n  for(i=0;i<keys.length;i++){\n    k=keys[i]; b=bundles[k]; s=slug(b.label);\n    if(s===w || s===w+'-kd' || s.replace(/-kd$/,'')===w) return k;\n  }\n  /* bare amount: 30, 55, 85 */\n  if(/^[0-9]+$/.test(w)){\n    for(i=0;i<keys.length;i++){\n      k=keys[i]; b=bundles[k];\n      if(String(b.label).replace(/[^0-9]/g,'').indexOf(w)>-1 && String(Math.round(b.price/1000))===w) return k;\n    }\n  }\n  return null;\n}\n\nfunction wanted(){\n  var q; try{ q=new URLSearchParams(window.location.search) }catch(e){ return null }\n  return q.get('bundle') || q.get('offer') || q.get('tier');\n}\n\ndocument.addEventListener('DOMContentLoaded', function(){\n  var grid=document.getElementById('bGrid');\n  if(!grid || !window.SF) return;\n  var data={}; try{ data=JSON.parse((document.getElementById('sf-data')||{}).textContent||'{}') }catch(e){}\n  var key=resolve(data.bundles, wanted());\n  if(key && typeof SF.setTier==='function') SF.setTier(key);\n\n  /* Keep the address bar honest as the shopper switches tabs. */\n  if(typeof SF.setTier==='function' && window.history && history.replaceState){\n    var orig=SF.setTier;\n    SF.setTier=function(k){\n      orig(k);\n      var b=(data.bundles||{})[k];\n      if(!b) return;\n      try{\n        var u=new URL(window.location.href);\n        u.searchParams.set('bundle', slug(b.label).replace(/-kd$/,''));\n        history.replaceState({}, '', u.toString());\n      }catch(e){}\n    };\n  }\n});\n})();"],
  "mappings": "CAsBC,UAAU,CACX,aACA,SAAS,KAAK,EAAE,CAAE,OAAO,OAAO,GAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,cAAc,GAAG,EAAE,QAAQ,SAAS,EAAE,CAAE,CAErG,SAAS,QAAQ,QAAS,KAAK,CAC7B,GAAG,CAAC,KAAM,OAAO,KACjB,IAAI,EAAE,KAAK,IAAI,EAAG,KAAK,OAAO,KAAK,SAAS,CAAC,CAAC,EAAG,EAAG,EAAG,EAAG,EAE1D,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAAK,GAAG,KAAK,KAAK,CAAC,CAAC,IAAI,EAAG,OAAO,KAAK,CAAC,EAE9D,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAEpB,GADA,EAAE,KAAK,CAAC,EAAG,EAAE,QAAQ,CAAC,EAAG,EAAE,KAAK,EAAE,KAAK,EACpC,IAAI,GAAK,IAAI,EAAE,OAAS,EAAE,QAAQ,OAAO,EAAE,IAAI,EAAG,OAAO,EAG9D,GAAG,WAAW,KAAK,CAAC,GAClB,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAEpB,GADA,EAAE,KAAK,CAAC,EAAG,EAAE,QAAQ,CAAC,EACnB,OAAO,EAAE,KAAK,EAAE,QAAQ,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAM,OAAO,KAAK,MAAM,EAAE,MAAM,GAAI,CAAC,IAAI,EAAG,OAAO,EAG3G,OAAO,IACT,CAEA,SAAS,QAAQ,CACf,IAAI,EAAG,GAAG,CAAE,EAAE,IAAI,gBAAgB,OAAO,SAAS,MAAM,CAAE,OAAO,EAAE,CAAE,OAAO,IAAK,CACjF,OAAO,EAAE,IAAI,QAAQ,GAAK,EAAE,IAAI,OAAO,GAAK,EAAE,IAAI,MAAM,CAC1D,CAEA,SAAS,iBAAiB,mBAAoB,UAAU,CACtD,IAAI,KAAK,SAAS,eAAe,OAAO,EACxC,GAAG,GAAC,MAAQ,CAAC,OAAO,IACpB,KAAI,KAAK,CAAC,EAAG,GAAG,CAAE,KAAK,KAAK,OAAO,SAAS,eAAe,SAAS,GAAG,CAAC,GAAG,aAAa,IAAI,CAAE,OAAO,EAAE,CAAC,CACxG,IAAI,IAAI,QAAQ,KAAK,QAAS,OAAO,CAAC,EAItC,GAHG,KAAO,OAAO,GAAG,SAAU,YAAY,GAAG,QAAQ,GAAG,EAGrD,OAAO,GAAG,SAAU,YAAc,OAAO,SAAW,QAAQ,aAAa,CAC1E,IAAI,KAAK,GAAG,QACZ,GAAG,QAAQ,SAAS,EAAE,CACpB,KAAK,CAAC,EACN,IAAI,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,EAC1B,GAAI,EACJ,GAAG,CACD,IAAI,EAAE,IAAI,IAAI,OAAO,SAAS,IAAI,EAClC,EAAE,aAAa,IAAI,SAAU,KAAK,EAAE,KAAK,EAAE,QAAQ,OAAO,EAAE,CAAC,EAC7D,QAAQ,aAAa,CAAC,EAAG,GAAI,EAAE,SAAS,CAAC,CAC3C,OAAO,EAAE,CAAC,CACZ,CACF,EACF,CAAC,CACD,GAAG",
  "names": []
}
