{
  "version": 3,
  "sources": ["/cdn/shop/t/17/assets/pdp-analytics.js?codex_test=202608201825"],
  "sourcesContent": ["(function () {\r\n  'use strict';\r\n\r\n  var VERSION = '2.3.0';\r\n  var ENTRY_STORAGE_KEY = 'pdp_entry_source_v1';\r\n  var ENTRY_TTL_MS = 30 * 60 * 1000;\r\n  var MIN_DWELL_MS = 1000;\r\n  var VIEW_THRESHOLD = 0.5;\r\n  var HOVER_SAMPLE_MS = 250;\r\n  var PAGE_DWELL_HEARTBEAT_MS = 15 * 1000;\r\n  var MAX_TEXT_LENGTH = 100;\r\n  var EVENT_NAME_ZH = {\r\n    pdp_page_view: '\u4EA7\u54C1\u9875\u6D4F\u89C8',\r\n    pdp_hero_image_view: '\u4E3B\u56FE\u66DD\u5149',\r\n    pdp_hero_image_dwell: '\u4E3B\u56FE\u505C\u7559',\r\n    pdp_hero_image_zoom: '\u4E3B\u56FE\u653E\u5927',\r\n    pdp_hero_image_hover: '\u4E3B\u56FE\u9F20\u6807\u533A\u57DF\u505C\u7559',\r\n    pdp_reviews_view: '\u8BC4\u8BBA\u6A21\u5757\u66DD\u5149',\r\n    pdp_reviews_click: '\u8BC4\u8BBA\u6A21\u5757\u70B9\u51FB',\r\n    pdp_feature_box_view: '\u5356\u70B9\u6846\u66DD\u5149',\r\n    pdp_feature_box_click: '\u5356\u70B9\u6846\u70B9\u51FB',\r\n    pdp_spec_view: '\u53C2\u6570\u6A21\u5757\u66DD\u5149',\r\n    pdp_spec_click: '\u53C2\u6570\u6A21\u5757\u70B9\u51FB',\r\n    pdp_spec_dwell: '\u53C2\u6570\u6A21\u5757\u505C\u7559',\r\n    pdp_nav_click: '\u5BFC\u822A\u70B9\u51FB',\r\n    pdp_section_view: '\u9875\u9762\u6A21\u5757\u66DD\u5149',\r\n    pdp_section_dwell: '\u9875\u9762\u6A21\u5757\u505C\u7559',\r\n    pdp_exit: '\u9875\u9762\u79BB\u5F00',\r\n    pdp_page_dwell: '\u9875\u9762\u505C\u7559',\r\n    pdp_scene_image_dwell: '\u573A\u666F\u56FE\u505C\u7559',\r\n    pdp_scene_image_view: '\u573A\u666F\u56FE\u66DD\u5149',\r\n    pdp_scene_gif_dwell: '\u573A\u666F\u52A8\u56FE\u505C\u7559',\r\n    pdp_scene_gif_view: '\u573A\u666F\u52A8\u56FE\u66DD\u5149',\r\n    pdp_benefit_image_view: '\u5356\u70B9\u56FE\u66DD\u5149',\r\n    pdp_benefit_image_dwell: '\u5356\u70B9\u56FE\u505C\u7559',\r\n    pdp_influencer_video_view: '\u7EA2\u4EBA\u89C6\u9891\u66DD\u5149',\r\n    pdp_influencer_video_click: '\u7EA2\u4EBA\u89C6\u9891\u70B9\u51FB',\r\n    video_start: '\u89C6\u9891\u5F00\u59CB\u64AD\u653E',\r\n    video_progress: '\u89C6\u9891\u64AD\u653E\u8FDB\u5EA6',\r\n    video_complete: '\u89C6\u9891\u64AD\u653E\u5B8C\u6210',\r\n    pdp_final_section_view: '\u6700\u540E\u4E00\u680F\u66DD\u5149',\r\n    pdp_final_cta_click: '\u6700\u540E\u4E00\u680F\u6309\u94AE\u70B9\u51FB',\r\n    pdp_link_click: '\u9875\u9762\u94FE\u63A5\u70B9\u51FB',\r\n    pdp_entry: '\u4EA7\u54C1\u9875\u5165\u53E3',\r\n    pdp_add_to_cart_click: '\u52A0\u8D2D\u6309\u94AE\u70B9\u51FB',\r\n    pdp_add_to_cart_success: '\u6210\u529F\u52A0\u8D2D',\r\n    pdp_scroll_depth: '\u9875\u9762\u6D4F\u89C8\u6DF1\u5EA6'\r\n  };\r\n\r\n  function now() {\r\n    return window.performance && typeof window.performance.now === 'function'\r\n      ? window.performance.now()\r\n      : Date.now();\r\n  }\r\n\r\n  function roundMs(value) {\r\n    return Math.max(0, Math.round(value || 0));\r\n  }\r\n\r\n  function safeText(value) {\r\n    return String(value || '')\r\n      .replace(/\\s+/g, ' ')\r\n      .trim()\r\n      .slice(0, MAX_TEXT_LENGTH);\r\n  }\r\n\r\n  function attr(element, name, fallback) {\r\n    if (!element) return fallback;\r\n    var value = element.getAttribute(name);\r\n    return value === null || value === '' ? fallback : value;\r\n  }\r\n\r\n  function numberAttr(element, name, fallback) {\r\n    var value = Number(attr(element, name, fallback));\r\n    return Number.isFinite(value) ? value : fallback;\r\n  }\r\n\r\n  function closest(element, selector) {\r\n    if (!element || element.nodeType !== 1) return null;\r\n    return element.closest ? element.closest(selector) : null;\r\n  }\r\n\r\n  function cleanUrl(value) {\r\n    try {\r\n      var url = new URL(value, window.location.href);\r\n      var variant = url.searchParams.get('variant');\r\n      url.search = variant ? '?variant=' + encodeURIComponent(variant) : '';\r\n      url.hash = '';\r\n      return url.href;\r\n    } catch (error) {\r\n      return '';\r\n    }\r\n  }\r\n\r\n  function isInternalUrl(value) {\r\n    try {\r\n      return new URL(value, window.location.href).origin === window.location.origin;\r\n    } catch (error) {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  function deviceType() {\r\n    var width = window.innerWidth || document.documentElement.clientWidth || 0;\r\n    if (width <= 767) return 'mobile';\r\n    if (width <= 1279) return 'tablet';\r\n    return 'desktop';\r\n  }\r\n\r\n  function makeId() {\r\n    if (window.crypto && typeof window.crypto.randomUUID === 'function') {\r\n      return window.crypto.randomUUID();\r\n    }\r\n    return Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 10);\r\n  }\r\n\r\n  function slug(value, fallback) {\r\n    var result = safeText(value)\r\n      .toLowerCase()\r\n      .replace(/[^a-z0-9]+/g, '_')\r\n      .replace(/^_+|_+$/g, '')\r\n      .slice(0, 80);\r\n    return result || fallback || 'unknown';\r\n  }\r\n\r\n  function setData(element, name, value) {\r\n    if (!element || element.hasAttribute(name)) return;\r\n    element.setAttribute(name, String(value === undefined || value === null ? '' : value));\r\n  }\r\n\r\n  function sectionLabel(section, index) {\r\n    var anchor = attr(section, 'section-anchor-id', '');\r\n    if (anchor) return slug(anchor, 'section_' + index);\r\n\r\n    var className = String(section.className || '');\r\n    var id = section.id || '';\r\n    if (/main-product/.test(className)) return 'hero';\r\n    if (/sticky_anchor_bar/.test(id)) return 'navigation';\r\n    if (/specification-table/.test(className)) return 'specifications';\r\n    if (/comparison-table/.test(className)) return 'comparison';\r\n    if (/product-recommendations/.test(className)) return 'recommendations';\r\n    if (/pro_says/.test(id)) return 'influencer_video';\r\n    if (/images-and-text-scrolling/.test(className)) return 'final_support';\r\n    if (/image-with-text-overlay/.test(className)) return 'scene_image_' + index;\r\n    if (/media-with-text/.test(className)) return 'benefit_media_' + index;\r\n    if (/multi-column/.test(className)) return 'feature_boxes_' + index;\r\n    if (/faq/.test(className)) return 'faq';\r\n\r\n    var heading = section.querySelector && section.querySelector('h1,h2,h3,h4');\r\n    if (heading && safeText(heading.textContent)) return slug(heading.textContent, 'section_' + index);\r\n\r\n    var match = id.match(/__([a-z0-9_]+)/i);\r\n    return slug(match ? match[1] : '', 'section_' + index);\r\n  }\r\n\r\n  function annotatePdp() {\r\n    if (window.location.pathname.indexOf('/products/') !== 0) return null;\r\n\r\n    var root = document.querySelector('main#main, main[role=\"main\"], main');\r\n    if (!root) return null;\r\n\r\n    var hero = root.querySelector('[data-pdp-hero]');\r\n    var handleMatch = window.location.pathname.match(/^\\/products\\/([^/?#]+)/);\r\n    var title = root.querySelector('h1');\r\n    var currency = document.querySelector('meta[property=\"og:price:currency\"]');\r\n\r\n    setData(root, 'data-pdp-analytics', '');\r\n    setData(root, 'data-pdp-product-id', attr(hero, 'data-product-id', ''));\r\n    setData(root, 'data-pdp-product-handle', attr(hero, 'data-product-handle', handleMatch ? handleMatch[1] : ''));\r\n    setData(root, 'data-pdp-product-name', title ? safeText(title.textContent) : document.title);\r\n    setData(root, 'data-pdp-currency', currency ? attr(currency, 'content', '') : '');\r\n\r\n    var sections = root.querySelectorAll('[id^=\"shopify-section-template--\"]');\r\n    Array.prototype.forEach.call(sections, function (section, index) {\r\n      setData(section, 'data-pdp-section', '');\r\n      setData(section, 'data-pdp-section-index', index + 1);\r\n      setData(section, 'data-pdp-section-name', sectionLabel(section, index + 1));\r\n    });\r\n\r\n    var navRoot = root.querySelector('[id*=\"sticky_anchor_bar\"]');\r\n    if (navRoot) {\r\n      Array.prototype.forEach.call(navRoot.querySelectorAll('.anchor-item, a[href], button'), function (item, index) {\r\n        setData(item, 'data-pdp-nav', '');\r\n        setData(item, 'data-pdp-nav-index', index + 1);\r\n        setData(item, 'data-pdp-nav-name', safeText(item.textContent) || 'nav_' + (index + 1));\r\n        var anchorId = item.hash ? item.hash.replace(/^#/, '') : safeText(item.textContent);\r\n        setData(item, 'data-pdp-anchor-id', anchorId);\r\n      });\r\n    }\r\n\r\n    var reviews = root.querySelector('[section-anchor-id=\"Reviews\"], #judgeme_product_reviews, .jdgm-review-widget');\r\n    if (reviews) setData(reviews, 'data-pdp-reviews', '');\r\n\r\n    Array.prototype.forEach.call(root.querySelectorAll('.shopify-section--multi-column .multi-column__item'), function (box, index) {\r\n      var heading = box.querySelector('h2,h3,h4,h5,.heading');\r\n      var name = heading ? safeText(heading.textContent) : safeText(box.textContent);\r\n      setData(box, 'data-pdp-feature-box', '');\r\n      setData(box, 'data-pdp-feature-index', index + 1);\r\n      setData(box, 'data-pdp-feature-id', 'feature_' + (index + 1));\r\n      setData(box, 'data-pdp-feature-name', name || 'feature_' + (index + 1));\r\n    });\r\n\r\n    var spec = root.querySelector('[section-anchor-id=\"Specs\"], .shopify-section--specification-table');\r\n    if (spec) {\r\n      setData(spec, 'data-pdp-spec', '');\r\n      setData(spec, 'data-pdp-spec-tab', 'specifications');\r\n      setData(spec, 'data-pdp-spec-section', 'product_specification');\r\n      Array.prototype.forEach.call(spec.querySelectorAll('button, summary, [role=\"button\"]'), function (action) {\r\n        setData(action, 'data-pdp-spec-action', 'toggle');\r\n        setData(action, 'data-pdp-click-element', safeText(action.textContent) || attr(action, 'aria-label', 'spec_control'));\r\n      });\r\n    }\r\n\r\n    Array.prototype.forEach.call(root.querySelectorAll('.shopify-section--image-with-text-overlay img, .images-scrolling-mobile__item, .images-scrolling-desktop__media-wrapper img'), function (image, index) {\r\n      setData(image, 'data-pdp-scene-image', '');\r\n      setData(image, 'data-pdp-scene-image-index', index + 1);\r\n      setData(image, 'data-pdp-scene-image-id', 'scene_' + (index + 1));\r\n    });\r\n\r\n    Array.prototype.forEach.call(root.querySelectorAll('.zl-sequential-video, .zl-mwt-lazy-autoplay-video, video[autoplay]'), function (video, index) {\r\n      setData(video, 'data-pdp-scene-gif', '');\r\n      setData(video, 'data-pdp-scene-gif-index', index + 1);\r\n      setData(video, 'data-pdp-scene-gif-id', 'scene_gif_' + (index + 1));\r\n    });\r\n\r\n    Array.prototype.forEach.call(root.querySelectorAll('.shopify-section--media-with-text img:not(.zl-media-lightbox__image), .shopify-section--multi-column img.rounded'), function (image, index) {\r\n      setData(image, 'data-pdp-benefit-image', '');\r\n      setData(image, 'data-pdp-benefit-image-index', index + 1);\r\n      setData(image, 'data-pdp-benefit-image-id', 'benefit_' + (index + 1));\r\n      setData(image, 'data-pdp-benefit-image-name', attr(image, 'alt', '') || 'benefit_' + (index + 1));\r\n    });\r\n\r\n    var influencer = root.querySelector('[id*=\"pro_says\"], .pros-slider-section');\r\n    if (influencer) {\r\n      var cards = influencer.querySelectorAll('.video-card');\r\n      if (!cards.length) cards = [influencer];\r\n      Array.prototype.forEach.call(cards, function (card, index) {\r\n        var cardTitle = card.querySelector('.video-card__title');\r\n        var richTitle = card.querySelector('.video-card__richtext');\r\n        setData(card, 'data-pdp-influencer-video', '');\r\n        setData(card, 'data-pdp-video-id', 'influencer_' + (index + 1));\r\n        setData(card, 'data-pdp-video-title', safeText((cardTitle ? cardTitle.textContent : '') + ' ' + (richTitle ? richTitle.textContent : '')) || 'influencer_' + (index + 1));\r\n        Array.prototype.forEach.call(card.querySelectorAll('.play-button, button, [role=\"button\"]'), function (control) {\r\n          setData(control, 'data-pdp-influencer-video-click', '');\r\n          setData(control, 'data-pdp-click-element', 'play');\r\n        });\r\n      });\r\n    }\r\n\r\n    var finalSection = root.querySelector('.shopify-section--images-and-text-scrolling');\r\n    if (finalSection) {\r\n      setData(finalSection, 'data-pdp-final-section', '');\r\n      Array.prototype.forEach.call(finalSection.querySelectorAll('a[href], button'), function (cta, index) {\r\n        setData(cta, 'data-pdp-final-cta', '');\r\n        setData(cta, 'data-pdp-button-name', safeText(cta.textContent) || 'final_cta_' + (index + 1));\r\n      });\r\n    }\r\n\r\n    Array.prototype.forEach.call(root.querySelectorAll('form[action*=\"/cart/add\"] button[type=\"submit\"], button[name=\"add\"], [is=\"custom-button\"]'), function (button) {\r\n      setData(button, 'data-pdp-add-to-cart', '');\r\n      var form = closest(button, 'form');\r\n      var variant = form && form.querySelector('[name=\"id\"]');\r\n      setData(button, 'data-pdp-variant-id', variant ? variant.value : '');\r\n    });\r\n\r\n    return root;\r\n  }\r\n\r\n  function sessionSet(key, value) {\r\n    try {\r\n      window.sessionStorage.setItem(key, JSON.stringify(value));\r\n    } catch (error) {\r\n      // Storage can be unavailable in privacy modes. Measurement must not break the PDP.\r\n    }\r\n  }\r\n\r\n  function sessionTake(key) {\r\n    try {\r\n      var raw = window.sessionStorage.getItem(key);\r\n      if (!raw) return null;\r\n      window.sessionStorage.removeItem(key);\r\n      return JSON.parse(raw);\r\n    } catch (error) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  /*\r\n   * This listener intentionally runs sitewide. Mark links that lead to a PDP with:\r\n   * data-pdp-entry-link data-pdp-source-module=\"collection_grid\"\r\n   * data-pdp-source-position=\"3\".\r\n   */\r\n  if (!window.__pdpEntryCaptureInstalled) {\r\n    window.__pdpEntryCaptureInstalled = true;\r\n    document.addEventListener(\r\n      'click',\r\n      function (event) {\r\n        var link = closest(event.target, '[data-pdp-entry-link], a[href*=\"/products/\"]');\r\n        if (!link || !link.href || !isInternalUrl(link.href)) return;\r\n        try {\r\n          if (new URL(link.href, window.location.href).pathname.indexOf('/products/') !== 0) return;\r\n        } catch (error) {\r\n          return;\r\n        }\r\n\r\n        var sourceRoot = closest(link, '[data-pdp-source-module], [id^=\"shopify-section-\"]');\r\n        var sourceModule = attr(link, 'data-pdp-source-module', '');\r\n        if (!sourceModule && sourceRoot) {\r\n          sourceModule = attr(sourceRoot, 'data-pdp-source-module', sectionLabel(sourceRoot, 0));\r\n        }\r\n        if (!sourceModule) sourceModule = slug(document.body && document.body.className, 'unknown');\r\n\r\n        var sourcePosition = attr(link, 'data-pdp-source-position', '');\r\n        if (!sourcePosition && sourceRoot) {\r\n          var productLinks = sourceRoot.querySelectorAll('a[href*=\"/products/\"]');\r\n          sourcePosition = Array.prototype.indexOf.call(productLinks, link) + 1;\r\n        }\r\n\r\n        sessionSet(ENTRY_STORAGE_KEY, {\r\n          source_module: sourceModule || 'unknown',\r\n          source_position: sourcePosition || 'unknown',\r\n          source_link_text: safeText(link.textContent),\r\n          destination_url: cleanUrl(link.href),\r\n          captured_at: Date.now()\r\n        });\r\n      },\r\n      true\r\n    );\r\n  }\r\n\r\n  function boot() {\r\n    var root = annotatePdp() || document.querySelector('[data-pdp-analytics]');\r\n    if (!root || window.__pdpAnalyticsInstalled) return;\r\n    window.__pdpAnalyticsInstalled = true;\r\n\r\n    var debug = attr(root, 'data-pdp-debug', 'false') === 'true';\r\n    var viewId = makeId();\r\n    var productContext = {\r\n      pdp_view_id: viewId,\r\n      product_id: attr(root, 'data-pdp-product-id', ''),\r\n      product_handle: attr(root, 'data-pdp-product-handle', ''),\r\n      product_name: attr(root, 'data-pdp-product-name', '')\r\n    };\r\n\r\n    function push(eventName, params) {\r\n      var payload = {\r\n        event: eventName,\r\n        event_name_zh: EVENT_NAME_ZH[eventName] || eventName,\r\n        pdp_schema_version: VERSION,\r\n        pdp_view_id: productContext.pdp_view_id,\r\n        product_id: productContext.product_id,\r\n        product_handle: productContext.product_handle,\r\n        product_name: productContext.product_name,\r\n        device_type: deviceType(),\r\n        page_location: cleanUrl(window.location.href),\r\n        page_path: window.location.pathname,\r\n        page_title: document.title\r\n      };\r\n      var key;\r\n      params = params || {};\r\n      for (key in params) {\r\n        if (Object.prototype.hasOwnProperty.call(params, key)) payload[key] = params[key];\r\n      }\r\n      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {\r\n        window.Shopify.analytics.publish(eventName, payload);\r\n      } else if (debug && window.console) {\r\n        console.warn('[PDP analytics] Shopify.analytics.publish unavailable', eventName, payload);\r\n      }\r\n      if (debug && window.console) console.log('[PDP analytics]', payload);\r\n    }\r\n\r\n    function indexOfElement(element, selector, attributeName) {\r\n      var explicit = numberAttr(element, attributeName, NaN);\r\n      if (Number.isFinite(explicit)) return explicit;\r\n      return Array.prototype.indexOf.call(root.querySelectorAll(selector), element) + 1;\r\n    }\r\n\r\n    function labelFor(element, attributeName, fallback) {\r\n      return attr(element, attributeName, safeText(element && element.textContent) || fallback || 'unknown');\r\n    }\r\n\r\n    function imageMeta(element, type) {\r\n      var image = element && element.matches && element.matches('img')\r\n        ? element\r\n        : element && element.querySelector\r\n          ? element.querySelector('img')\r\n          : null;\r\n      var selector = '[data-pdp-' + type + ']';\r\n      var prefix = 'data-pdp-' + type.replace(/-/g, '-');\r\n      var source = image ? image.currentSrc || image.src : '';\r\n      var sourceName = '';\r\n      try {\r\n        sourceName = source ? decodeURIComponent(new URL(source, location.href).pathname.split('/').pop()) : '';\r\n      } catch (error) {\r\n        sourceName = '';\r\n      }\r\n      return {\r\n        index: indexOfElement(element, selector, prefix + '-index'),\r\n        name: attr(element, prefix + '-name', image ? attr(image, 'alt', sourceName) : sourceName),\r\n        id: attr(element, prefix + '-id', '')\r\n      };\r\n    }\r\n\r\n    /* A single mutation observer lets app-injected reviews/media join tracking later. */\r\n    var watchers = [];\r\n    function scanWatcher(watcher, node) {\r\n      if (!node || node.nodeType !== 1) return;\r\n      if (node.matches && node.matches(watcher.selector) && !watcher.seen.has(node)) {\r\n        watcher.seen.add(node);\r\n        watcher.onAdd(node);\r\n      }\r\n      if (!node.querySelectorAll) return;\r\n      Array.prototype.forEach.call(node.querySelectorAll(watcher.selector), function (element) {\r\n        if (watcher.seen.has(element)) return;\r\n        watcher.seen.add(element);\r\n        watcher.onAdd(element);\r\n      });\r\n    }\r\n\r\n    function watch(selector, onAdd) {\r\n      var watcher = { selector: selector, onAdd: onAdd, seen: new WeakSet() };\r\n      watchers.push(watcher);\r\n      scanWatcher(watcher, root);\r\n    }\r\n\r\n    if (window.MutationObserver) {\r\n      new MutationObserver(function (records) {\r\n        records.forEach(function (record) {\r\n          Array.prototype.forEach.call(record.addedNodes, function (node) {\r\n            watchers.forEach(function (watcher) {\r\n              scanWatcher(watcher, node);\r\n            });\r\n          });\r\n        });\r\n      }).observe(root, { childList: true, subtree: true });\r\n    }\r\n\r\n    function visibilityTracker(selector, options) {\r\n      if (!window.IntersectionObserver) {\r\n        if (debug && window.console) console.warn('[PDP analytics] IntersectionObserver unavailable:', selector);\r\n        return;\r\n      }\r\n\r\n      var states = [];\r\n      var stateByElement = new WeakMap();\r\n      var threshold = options.threshold || VIEW_THRESHOLD;\r\n      var delay = options.viewDelayMs || 0;\r\n\r\n      function qualify(state) {\r\n        state.timer = null;\r\n        if (!state.inViewport || document.visibilityState === 'hidden' || state.startedAt === null) return;\r\n        if (typeof options.onQualified === 'function') options.onQualified(state.element, state);\r\n        if (!state.viewed && typeof options.onView === 'function') {\r\n          state.viewed = true;\r\n          options.onView(state.element, state);\r\n        }\r\n      }\r\n\r\n      function start(state) {\r\n        if (state.startedAt !== null || !state.inViewport || document.visibilityState === 'hidden') return;\r\n        state.startedAt = now();\r\n        if (delay > 0) state.timer = window.setTimeout(function () { qualify(state); }, delay);\r\n        else qualify(state);\r\n      }\r\n\r\n      function stop(state, reason) {\r\n        if (state.timer) window.clearTimeout(state.timer);\r\n        state.timer = null;\r\n        if (state.startedAt === null) return;\r\n        var elapsed = now() - state.startedAt;\r\n        state.startedAt = null;\r\n        if (typeof options.onDwell === 'function' && elapsed >= (options.minDwellMs || MIN_DWELL_MS)) {\r\n          options.onDwell(state.element, roundMs(elapsed), reason, state);\r\n        }\r\n      }\r\n\r\n      var observer = new IntersectionObserver(\r\n        function (entries) {\r\n          entries.forEach(function (entry) {\r\n            var state = stateByElement.get(entry.target);\r\n            if (!state) return;\r\n            state.inViewport = entry.isIntersecting && entry.intersectionRatio >= threshold;\r\n            if (state.inViewport) start(state);\r\n            else stop(state, 'viewport_exit');\r\n          });\r\n        },\r\n        { threshold: [0, threshold, 1] }\r\n      );\r\n\r\n      watch(selector, function (element) {\r\n        var state = {\r\n          element: element,\r\n          inViewport: false,\r\n          startedAt: null,\r\n          timer: null,\r\n          viewed: false\r\n        };\r\n        states.push(state);\r\n        stateByElement.set(element, state);\r\n        observer.observe(element);\r\n      });\r\n\r\n      document.addEventListener('visibilitychange', function () {\r\n        states.forEach(function (state) {\r\n          if (document.visibilityState === 'hidden') stop(state, 'page_hidden');\r\n          else if (state.inViewport) start(state);\r\n        });\r\n      });\r\n\r\n      window.addEventListener('pagehide', function () {\r\n        states.forEach(function (state) { stop(state, 'page_exit'); });\r\n      });\r\n    }\r\n\r\n    var maxScrollDepth = 0;\r\n    var scrollDepthMilestones = [25, 50, 70, 90, 100];\r\n    var reachedScrollDepth = {};\r\n    var scrollTicking = false;\r\n    function updateScrollDepth() {\r\n      scrollTicking = false;\r\n      var scrollable = Math.max(0, document.documentElement.scrollHeight - window.innerHeight);\r\n      var percent = scrollable === 0 ? 100 : (window.scrollY / scrollable) * 100;\r\n      maxScrollDepth = Math.max(maxScrollDepth, Math.min(100, Math.round(percent)));\r\n      scrollDepthMilestones.forEach(function (milestone) {\r\n        if (maxScrollDepth < milestone || reachedScrollDepth[milestone]) return;\r\n        reachedScrollDepth[milestone] = true;\r\n        push('pdp_scroll_depth', {\r\n          scroll_depth_pct: milestone,\r\n          max_scroll_depth_pct: milestone\r\n        });\r\n      });\r\n    }\r\n    updateScrollDepth();\r\n    window.addEventListener('scroll', function () {\r\n      if (scrollTicking) return;\r\n      scrollTicking = true;\r\n      window.requestAnimationFrame(updateScrollDepth);\r\n    }, { passive: true });\r\n\r\n    var lastVisibleSection = '';\r\n    var lastVisibleSectionIndex = 0;\r\n    var lastVisibleBenefitId = '';\r\n    var lastVisibleBenefitIndex = 0;\r\n    visibilityTracker('[data-pdp-section]', {\r\n      viewDelayMs: 1000,\r\n      onQualified: function (element) {\r\n        lastVisibleSection = labelFor(element, 'data-pdp-section-name', 'unknown');\r\n        lastVisibleSectionIndex = indexOfElement(element, '[data-pdp-section]', 'data-pdp-section-index');\r\n      },\r\n      onView: function (element) {\r\n        push('pdp_section_view', {\r\n          section_name: labelFor(element, 'data-pdp-section-name', 'unknown'),\r\n          section_index: indexOfElement(element, '[data-pdp-section]', 'data-pdp-section-index'),\r\n          max_scroll_depth_pct: maxScrollDepth\r\n        });\r\n      },\r\n      onDwell: function (element, visibleMs, reason) {\r\n        push('pdp_section_dwell', {\r\n          section_name: labelFor(element, 'data-pdp-section-name', 'unknown'),\r\n          section_index: indexOfElement(element, '[data-pdp-section]', 'data-pdp-section-index'),\r\n          visible_ms: visibleMs,\r\n          dwell_end_reason: reason\r\n        });\r\n      }\r\n    });\r\n\r\n    var heroAlreadyTracked = !!root.querySelector('[data-pdp-hero]');\r\n\r\n    /* Hero carousel: skipped when the existing product-gallery tracker is present. */\r\n    (function setupHero() {\r\n      if (heroAlreadyTracked) return;\r\n      if (!window.IntersectionObserver) return;\r\n      var elements = [];\r\n      var ratios = new WeakMap();\r\n      var current = null;\r\n      var startedAt = null;\r\n      var qualificationTimer = null;\r\n      var qualified = false;\r\n      var currentZone = '';\r\n      var hoverByZone = {};\r\n      var lastHoverSample = now();\r\n\r\n      function meta(element) {\r\n        var value = imageMeta(element, 'hero-image');\r\n        return { image_index: value.index, image_name: value.name };\r\n      }\r\n\r\n      function flushHover(element, reason) {\r\n        if (!element || !qualified) return;\r\n        var details = meta(element);\r\n        Object.keys(hoverByZone).forEach(function (zone) {\r\n          var hoverMs = roundMs(hoverByZone[zone]);\r\n          if (hoverMs < MIN_DWELL_MS) return;\r\n          push('pdp_hero_image_hover', {\r\n            image_index: details.image_index,\r\n            image_name: details.image_name,\r\n            hover_zone: zone,\r\n            hover_ms: hoverMs,\r\n            dwell_end_reason: reason\r\n          });\r\n        });\r\n        hoverByZone = {};\r\n        currentZone = '';\r\n      }\r\n\r\n      function settle(reason, keepCurrent) {\r\n        if (qualificationTimer) window.clearTimeout(qualificationTimer);\r\n        qualificationTimer = null;\r\n        if (current && startedAt !== null) {\r\n          var elapsed = now() - startedAt;\r\n          if (qualified && elapsed >= MIN_DWELL_MS) {\r\n            var details = meta(current);\r\n            push('pdp_hero_image_dwell', {\r\n              image_index: details.image_index,\r\n              image_name: details.image_name,\r\n              visible_ms: roundMs(elapsed),\r\n              dwell_end_reason: reason\r\n            });\r\n          }\r\n          flushHover(current, reason);\r\n        }\r\n        startedAt = null;\r\n        if (!keepCurrent) {\r\n          current = null;\r\n          qualified = false;\r\n        }\r\n      }\r\n\r\n      function scheduleQualification() {\r\n        if (!current || qualified || qualificationTimer || startedAt === null) return;\r\n        qualificationTimer = window.setTimeout(function () {\r\n          qualificationTimer = null;\r\n          if (!current || startedAt === null || document.visibilityState === 'hidden') return;\r\n          if ((ratios.get(current) || 0) < VIEW_THRESHOLD) return;\r\n          qualified = true;\r\n          var details = meta(current);\r\n          push('pdp_hero_image_view', {\r\n            image_index: details.image_index,\r\n            image_name: details.image_name\r\n          });\r\n        }, MIN_DWELL_MS);\r\n      }\r\n\r\n      function activate(element, reason, suppressView) {\r\n        if (current === element) {\r\n          if (startedAt === null && document.visibilityState !== 'hidden') {\r\n            startedAt = now();\r\n            scheduleQualification();\r\n          }\r\n          return;\r\n        }\r\n        settle(reason || 'image_switch', false);\r\n        current = element;\r\n        if (!current || document.visibilityState === 'hidden') return;\r\n        startedAt = now();\r\n        qualified = false;\r\n        scheduleQualification();\r\n      }\r\n\r\n      function selectActive(reason, suppressView) {\r\n        if (document.visibilityState === 'hidden') return;\r\n        var best = null;\r\n        var bestRatio = 0;\r\n        elements.forEach(function (element) {\r\n          var ratio = ratios.get(element) || 0;\r\n          if (ratio >= VIEW_THRESHOLD && ratio > bestRatio) {\r\n            best = element;\r\n            bestRatio = ratio;\r\n          }\r\n        });\r\n        if (best) activate(best, reason, suppressView);\r\n        else if (current) settle('viewport_exit', false);\r\n      }\r\n\r\n      var observer = new IntersectionObserver(function (entries) {\r\n        entries.forEach(function (entry) {\r\n          ratios.set(entry.target, entry.isIntersecting ? entry.intersectionRatio : 0);\r\n        });\r\n        selectActive('image_switch', false);\r\n      }, { threshold: [0, VIEW_THRESHOLD, 1] });\r\n\r\n      watch('[data-pdp-hero-image]', function (element) {\r\n        elements.push(element);\r\n        ratios.set(element, 0);\r\n        observer.observe(element);\r\n        element.addEventListener('pointerleave', function () { currentZone = ''; }, { passive: true });\r\n      });\r\n\r\n      root.addEventListener('pointermove', function (event) {\r\n        if (!current || startedAt === null || !current.contains(event.target)) {\r\n          currentZone = '';\r\n          return;\r\n        }\r\n        var rect = current.getBoundingClientRect();\r\n        if (!rect.width || !rect.height) return;\r\n        var column = Math.min(4, Math.max(1, Math.floor(((event.clientX - rect.left) / rect.width) * 4) + 1));\r\n        var row = Math.min(4, Math.max(1, Math.floor(((event.clientY - rect.top) / rect.height) * 4) + 1));\r\n        currentZone = 'r' + row + 'c' + column;\r\n      }, { passive: true });\r\n\r\n      window.setInterval(function () {\r\n        var stamp = now();\r\n        var elapsed = Math.min(HOVER_SAMPLE_MS * 2, stamp - lastHoverSample);\r\n        lastHoverSample = stamp;\r\n        if (!current || startedAt === null || !qualified || !currentZone || document.visibilityState === 'hidden') return;\r\n        hoverByZone[currentZone] = (hoverByZone[currentZone] || 0) + elapsed;\r\n      }, HOVER_SAMPLE_MS);\r\n\r\n      document.addEventListener('visibilitychange', function () {\r\n        if (document.visibilityState === 'hidden') settle('page_hidden', true);\r\n        else if (current && (ratios.get(current) || 0) >= VIEW_THRESHOLD) activate(current, 'page_visible', true);\r\n        else selectActive('page_visible', true);\r\n      });\r\n\r\n      window.addEventListener('pagehide', function () { settle('page_exit', true); });\r\n\r\n      window.__pdpHeroMeta = function () { return current ? meta(current) : null; };\r\n    })();\r\n\r\n    visibilityTracker('[data-pdp-reviews]', {\r\n      viewDelayMs: 1000,\r\n      onView: function () { push('pdp_reviews_view'); }\r\n    });\r\n\r\n    visibilityTracker('[data-pdp-feature-box]', {\r\n      viewDelayMs: 1000,\r\n      onView: function (element) {\r\n        push('pdp_feature_box_view', {\r\n          feature_id: attr(element, 'data-pdp-feature-id', ''),\r\n          feature_name: labelFor(element, 'data-pdp-feature-name', 'unknown'),\r\n          feature_index: indexOfElement(element, '[data-pdp-feature-box]', 'data-pdp-feature-index')\r\n        });\r\n      }\r\n    });\r\n\r\n    visibilityTracker('[data-pdp-spec]', {\r\n      viewDelayMs: 1000,\r\n      onView: function (element) {\r\n        push('pdp_spec_view', {\r\n          spec_tab: attr(element, 'data-pdp-spec-tab', ''),\r\n          spec_section: attr(element, 'data-pdp-spec-section', '')\r\n        });\r\n      },\r\n      onDwell: function (element, visibleMs, reason) {\r\n        push('pdp_spec_dwell', {\r\n          visible_ms: visibleMs,\r\n          spec_tab: attr(element, 'data-pdp-spec-tab', ''),\r\n          spec_section: attr(element, 'data-pdp-spec-section', ''),\r\n          dwell_end_reason: reason\r\n        });\r\n      }\r\n    });\r\n\r\n    visibilityTracker('[data-pdp-scene-image]', {\r\n      viewDelayMs: 1000,\r\n      onView: function (element) {\r\n        var details = imageMeta(element, 'scene-image');\r\n        push('pdp_scene_image_view', {\r\n          scene_id: details.id,\r\n          scene_index: details.index\r\n        });\r\n      },\r\n      onDwell: function (element, visibleMs, reason) {\r\n        var details = imageMeta(element, 'scene-image');\r\n        push('pdp_scene_image_dwell', {\r\n          scene_id: details.id,\r\n          scene_index: details.index,\r\n          visible_ms: visibleMs,\r\n          dwell_end_reason: reason\r\n        });\r\n      }\r\n    });\r\n\r\n    visibilityTracker('[data-pdp-scene-gif]', {\r\n      viewDelayMs: 1000,\r\n      onView: function (element) {\r\n        var details = imageMeta(element, 'scene-gif');\r\n        push('pdp_scene_gif_view', {\r\n          scene_id: details.id,\r\n          scene_index: details.index\r\n        });\r\n      },\r\n      onDwell: function (element, visibleMs, reason) {\r\n        var details = imageMeta(element, 'scene-gif');\r\n        push('pdp_scene_gif_dwell', {\r\n          scene_id: details.id,\r\n          scene_index: details.index,\r\n          visible_ms: visibleMs,\r\n          dwell_end_reason: reason\r\n        });\r\n      }\r\n    });\r\n\r\n    visibilityTracker('[data-pdp-benefit-image]', {\r\n      viewDelayMs: 1000,\r\n      onQualified: function (element) {\r\n        var details = imageMeta(element, 'benefit-image');\r\n        lastVisibleBenefitId = details.id;\r\n        lastVisibleBenefitIndex = details.index;\r\n      },\r\n      onView: function (element) {\r\n        var details = imageMeta(element, 'benefit-image');\r\n        push('pdp_benefit_image_view', {\r\n          benefit_id: details.id,\r\n          benefit_index: details.index,\r\n          benefit_name: details.name\r\n        });\r\n      },\r\n      onDwell: function (element, visibleMs, reason) {\r\n        var details = imageMeta(element, 'benefit-image');\r\n        push('pdp_benefit_image_dwell', {\r\n          benefit_id: details.id,\r\n          benefit_index: details.index,\r\n          benefit_name: details.name,\r\n          visible_ms: visibleMs,\r\n          dwell_end_reason: reason\r\n        });\r\n      }\r\n    });\r\n\r\n    visibilityTracker('[data-pdp-final-section]', {\r\n      viewDelayMs: 1000,\r\n      onView: function () { push('pdp_final_section_view'); }\r\n    });\r\n\r\n    visibilityTracker('[data-pdp-influencer-video]', {\r\n      viewDelayMs: 1000,\r\n      onView: function (element) {\r\n        push('pdp_influencer_video_view', {\r\n          video_id: attr(element, 'data-pdp-video-id', ''),\r\n          video_title: attr(element, 'data-pdp-video-title', '')\r\n        });\r\n      }\r\n    });\r\n\r\n    /* HTML5 video milestones only. YouTube iframes should use GA4 Enhanced Measurement. */\r\n    watch('[data-pdp-influencer-video] video', function (video) {\r\n      var module = closest(video, '[data-pdp-influencer-video]');\r\n      var started = false;\r\n      var milestones = {};\r\n      function videoParams(extra) {\r\n        var base = {\r\n          video_id: attr(module, 'data-pdp-video-id', ''),\r\n          video_title: attr(module, 'data-pdp-video-title', attr(video, 'title', '')),\r\n          video_provider: 'html5',\r\n          video_url: cleanUrl(video.currentSrc || video.src || '')\r\n        };\r\n        Object.keys(extra || {}).forEach(function (key) { base[key] = extra[key]; });\r\n        return base;\r\n      }\r\n      video.addEventListener('play', function () {\r\n        if (started) return;\r\n        started = true;\r\n        push('video_start', videoParams({ video_percent: 0 }));\r\n      });\r\n      video.addEventListener('timeupdate', function () {\r\n        if (!video.duration || !Number.isFinite(video.duration)) return;\r\n        var percent = (video.currentTime / video.duration) * 100;\r\n        [25, 50, 75].forEach(function (milestone) {\r\n          if (percent < milestone || milestones[milestone]) return;\r\n          milestones[milestone] = true;\r\n          push('video_progress', videoParams({ video_percent: milestone }));\r\n        });\r\n      });\r\n      video.addEventListener('ended', function () {\r\n        push('video_complete', videoParams({ video_percent: 100 }));\r\n      });\r\n    });\r\n\r\n    function clickElement(element, attributeName) {\r\n      return attr(element, attributeName, attr(element, 'aria-label', safeText(element.textContent) || element.tagName.toLowerCase()));\r\n    }\r\n\r\n    root.addEventListener('click', function (event) {\r\n      var target = event.target;\r\n      var element;\r\n\r\n      element = closest(target, '[data-pdp-hero-zoom]');\r\n      if (element && !heroAlreadyTracked) {\r\n        var hero = closest(element, '[data-pdp-hero-image]');\r\n        var heroDetails = hero ? imageMeta(hero, 'hero-image') : (window.__pdpHeroMeta ? window.__pdpHeroMeta() : null);\r\n        push('pdp_hero_image_zoom', {\r\n          image_index: heroDetails ? heroDetails.index || heroDetails.image_index : 0,\r\n          image_name: heroDetails ? heroDetails.name || heroDetails.image_name : ''\r\n        });\r\n      }\r\n\r\n      element = closest(target, '[data-pdp-reviews-click]');\r\n      if (!element && closest(target, '[data-pdp-reviews]')) {\r\n        element = closest(target, 'a, button, select, [role=\"button\"], [tabindex], .jdgm-star, .jdgm-gallery__thumbnail') || target;\r\n      }\r\n      if (element && closest(element, '[data-pdp-reviews]')) {\r\n        var reviewClass = String(element.className || '');\r\n        var reviewClick = /write-rev/.test(reviewClass)\r\n          ? 'write_review'\r\n          : /paginate/.test(reviewClass)\r\n            ? 'pagination'\r\n            : /gallery|picture|video/.test(reviewClass)\r\n              ? 'media'\r\n              : /sort/.test(reviewClass)\r\n                ? 'sort'\r\n                : /star|rating|summary/.test(reviewClass)\r\n                  ? 'rating'\r\n                  : clickElement(element, 'data-pdp-click-element');\r\n        push('pdp_reviews_click', { click_element: reviewClick });\r\n      }\r\n\r\n      element = closest(target, '[data-pdp-feature-box]');\r\n      if (element) {\r\n        push('pdp_feature_box_click', {\r\n          feature_id: attr(element, 'data-pdp-feature-id', ''),\r\n          feature_name: labelFor(element, 'data-pdp-feature-name', 'unknown'),\r\n          feature_index: indexOfElement(element, '[data-pdp-feature-box]', 'data-pdp-feature-index')\r\n        });\r\n      }\r\n\r\n      element = closest(target, '[data-pdp-spec-action]');\r\n      if (!element && closest(target, '[data-pdp-spec]')) {\r\n        element = closest(target, 'button, summary, [role=\"button\"]');\r\n      }\r\n      if (element) {\r\n        (function (specActionElement) {\r\n          window.setTimeout(function () {\r\n            var spec = closest(specActionElement, '[data-pdp-spec]');\r\n            var explicitAction = attr(specActionElement, 'data-pdp-spec-action', 'toggle');\r\n            var expanded = attr(specActionElement, 'aria-expanded', '');\r\n            var action = explicitAction === 'toggle'\r\n              ? (expanded === 'true' ? 'expand' : expanded === 'false' ? 'collapse' : 'click')\r\n              : explicitAction;\r\n            push('pdp_spec_click', {\r\n              spec_action: action,\r\n              click_element: clickElement(specActionElement, 'data-pdp-click-element'),\r\n              spec_tab: attr(specActionElement, 'data-pdp-spec-tab', attr(spec, 'data-pdp-spec-tab', '')),\r\n              spec_section: attr(specActionElement, 'data-pdp-spec-section', attr(spec, 'data-pdp-spec-section', ''))\r\n            });\r\n          }, 0);\r\n        })(element);\r\n      }\r\n\r\n      element = closest(target, '[data-pdp-nav]');\r\n      if (element) {\r\n        push('pdp_nav_click', {\r\n          nav_name: labelFor(element, 'data-pdp-nav-name', 'unknown'),\r\n          nav_index: indexOfElement(element, '[data-pdp-nav]', 'data-pdp-nav-index'),\r\n          destination_url: cleanUrl(element.href || ''),\r\n          anchor_id: attr(element, 'data-pdp-anchor-id', element.hash ? element.hash.replace(/^#/, '') : '')\r\n        });\r\n      }\r\n\r\n      element = closest(target, '[data-pdp-influencer-video-click], [data-pdp-influencer-video] video');\r\n      if (element) {\r\n        var videoModule = closest(element, '[data-pdp-influencer-video]');\r\n        push('pdp_influencer_video_click', {\r\n          video_id: attr(videoModule, 'data-pdp-video-id', ''),\r\n          video_title: attr(videoModule, 'data-pdp-video-title', ''),\r\n          click_element: clickElement(element, 'data-pdp-click-element')\r\n        });\r\n      }\r\n\r\n      element = closest(target, '[data-pdp-final-cta]');\r\n      if (element) {\r\n        push('pdp_final_cta_click', {\r\n          button_name: attr(element, 'data-pdp-button-name', ''),\r\n          button_text: safeText(element.textContent),\r\n          destination_url: cleanUrl(element.href || '')\r\n        });\r\n      }\r\n\r\n      element = closest(target, '[data-pdp-add-to-cart]');\r\n      if (element) {\r\n        push('pdp_add_to_cart_click', {\r\n          button_text: safeText(element.textContent),\r\n          variant_id: attr(element, 'data-pdp-variant-id', '')\r\n        });\r\n      }\r\n\r\n      element = closest(target, 'a[href]');\r\n      if (element) {\r\n        push('pdp_link_click', {\r\n          destination_url: cleanUrl(element.href),\r\n          link_type: isInternalUrl(element.href) ? 'internal' : 'external',\r\n          link_text: safeText(element.textContent)\r\n        });\r\n      }\r\n    }, true);\r\n\r\n    var pageVisibleMs = 0;\r\n    var pageVisibleStartedAt = document.visibilityState === 'hidden' ? null : now();\r\n    var exitSent = false;\r\n    var pageDwellHeartbeatMs = Math.max(\r\n      1000,\r\n      numberAttr(root, 'data-pdp-dwell-heartbeat-ms', PAGE_DWELL_HEARTBEAT_MS)\r\n    );\r\n\r\n    function pausePageTimer() {\r\n      if (pageVisibleStartedAt === null) return;\r\n      pageVisibleMs += now() - pageVisibleStartedAt;\r\n      pageVisibleStartedAt = null;\r\n    }\r\n\r\n    function resumePageTimer() {\r\n      if (pageVisibleStartedAt === null && document.visibilityState !== 'hidden') pageVisibleStartedAt = now();\r\n    }\r\n\r\n    function flushPageDwell(reason, force) {\r\n      pausePageTimer();\r\n      var visibleMs = roundMs(pageVisibleMs);\r\n      pageVisibleMs = 0;\r\n      if (visibleMs > 0 || force) {\r\n        push('pdp_page_dwell', {\r\n          visible_ms: visibleMs,\r\n          dwell_end_reason: reason || 'unknown'\r\n        });\r\n      }\r\n      if (document.visibilityState !== 'hidden') resumePageTimer();\r\n      return visibleMs;\r\n    }\r\n\r\n    function sendExit(reason) {\r\n      flushPageDwell(reason || 'page_exit', !exitSent);\r\n      if (exitSent) return;\r\n      exitSent = true;\r\n      updateScrollDepth();\r\n      push('pdp_exit', {\r\n        last_visible_section: lastVisibleSection || 'unknown',\r\n        last_visible_section_index: lastVisibleSectionIndex,\r\n        last_visible_benefit_id: lastVisibleBenefitId,\r\n        last_visible_benefit_index: lastVisibleBenefitIndex,\r\n        max_scroll_depth_pct: maxScrollDepth,\r\n        dwell_end_reason: reason || 'page_exit'\r\n      });\r\n    }\r\n\r\n    window.setInterval(function () {\r\n      if (document.visibilityState !== 'hidden') flushPageDwell('heartbeat', false);\r\n    }, pageDwellHeartbeatMs);\r\n\r\n    document.addEventListener('visibilitychange', function () {\r\n      if (document.visibilityState === 'hidden') sendExit('page_hidden');\r\n      else resumePageTimer();\r\n    });\r\n\r\n    window.addEventListener('pagehide', function () { sendExit('page_exit'); });\r\n\r\n    function trackCartAdded(detail) {\r\n      detail = detail || {};\r\n      push('pdp_add_to_cart_success', {\r\n        currency: detail.currency || attr(root, 'data-pdp-currency', ''),\r\n        value: Number(detail.value || 0),\r\n        item_count: Array.isArray(detail.items) ? detail.items.length : 0\r\n      });\r\n    }\r\n\r\n    document.addEventListener('pdp:cart-added', function (event) {\r\n      trackCartAdded(event.detail || {});\r\n    });\r\n\r\n    window.PDPAnalytics = {\r\n      version: VERSION,\r\n      push: push,\r\n      trackCartAdded: trackCartAdded,\r\n      flush: sendExit\r\n    };\r\n\r\n    push('pdp_page_view');\r\n\r\n    var entry = sessionTake(ENTRY_STORAGE_KEY);\r\n    if (entry && Date.now() - Number(entry.captured_at || 0) <= ENTRY_TTL_MS) {\r\n      var currentUrl = cleanUrl(window.location.href);\r\n      if (entry.destination_url && new URL(entry.destination_url).pathname === new URL(currentUrl).pathname) {\r\n        push('pdp_entry', {\r\n          source_module: entry.source_module,\r\n          source_position: entry.source_position,\r\n          source_link_text: entry.source_link_text,\r\n          destination_url: currentUrl\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot, { once: true });\r\n  else boot();\r\n})();\r\n"],
  "mappings": "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",
  "names": ["entry"]
}
