PageSourceSearch

https://www.mous.co/cdn/shop/t/300/assets/mous-header.min.js?v=152413835378664920081788512042

js mous.co collected 2026-09-24 08:51:31 UTC 101,518 bytes, 32 lines download raw bytes

1/*
2 * ATTENTION: An "eval-source-map" devtool has been used.
3 * This devtool is neither made for production nor for readable output files.
4 * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6 * or disable the default devtool with "devtool: false".
7 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8 */
9/******/ (() => { // webpackBootstrap
10/******/ 	var __webpack_modules__ = ({
11
12/***/ "./resources/js/sections/mous-header.js":
13/*!**********************************************!*\
14  !*** ./resources/js/sections/mous-header.js ***!
15  \**********************************************/
16/***/ (() => {
17
18eval("function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap;
18 var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEac
18h(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nvar fetchUserLocation = /*#__PURE__*/function () {\n  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n    var countryToRegion, getRegion, baseUrl, queryParams, response, data;\n    return _regeneratorRuntime().wrap(function _callee$(_context) {\n      while (1) switch (_context.prev = _context.next) {\n        case 0:\n          // Define the region mappings\n          countryToRegion = {\n            'US': 'US',\n            'GB': 'UK',\n            // European countries\n            'MK': 'EU',\n            'AT': 'EU',\n            'CZ': 'EU',\n            'EE': 'EU',\n            'HR': 'EU',\n            'HU': 'EU',\n            'IT': 'EU',\n            'LT': 'EU',\n            'LU': 'EU',\n            'LV': 'EU',\n            'PL': 'EU',\n            'PT': 'EU',\n            'SI': 'EU',\n            'SK': 'EU',\n            'BG': 'EU',\n            'AD': 'EU',\n            'RS': 'EU',\n            'AL': 'EU',\n            'BA': 'EU',\n            'CY': 'EU',\n            'FI': 'EU',\n            'GI': 'EU',\n            'GR': 'EU',\n            'MC': 'EU',\n            'ME': 'EU',\n            'MT': 'EU',\n            'RO': 'EU',\n            'DE': 'EU',\n            'DK': 'EU',\n            'FR': 'EU',\n            'IE': 'EU',\n            '
18NL': 'EU',\n            'SE': 'EU',\n            'CH': 'EU',\n            'ES': 'EU',\n            'IS': 'EU',\n            'NO': 'EU',\n            'BE': 'EU',\n            'BY': 'EU',\n            'UA': 'EU',\n            'MD': 'EU'\n            // Add more country codes and their respective regions if needed\n          }; // Define a function to get the region based on country code\n          getRegion = function getRegion(countryCode) {\n            if (countryToRegion[countryCode]) {\n              return countryToRegion[countryCode];\n            } else {\n              return 'ROW';\n            }\n          };\n          baseUrl = \"\".concat(window.Shopify.routes.root, \"browsing_context_suggestions.json\");\n          queryParams = new URLSearchParams({\n            'country[enabled]': 'true',\n            'country[exclude]': window.Shopify.country,\n            'language[enabled]': 'true',\n            'language[exclude]': window.Shopify.language\n          });\n          _context.next = 6;\n          return fetch(\"\".concat(baseUrl, \"?\").concat(queryParams.toString()));\n        case 6:\n          response = _context.sent;\n          _context.next = 9;\n          return response.json();\n        case 9:\n          data = _context.sent;\n          // Determine the region based on the country code\n          userRegion = getRegion(data.detected_values.country.handle);\n          localStorage.setItem(\"userGeoData\", userRegion);\n        case 12:\n        case \"end\":\n          return _context.stop();\n      }\n    }, _callee);\n  }));\n  return function fetchUserLocation() {\n    return _ref.apply(this, arguments);\n  };\n}();\ndocument.addEventListener('DOMContentLoaded', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n  var LocationSelector, locationSelectors, countryFlags, modalCloses, currentDomain, domainParts, domainCountry, selectLocations, manuallyClosed, wasRedirected, userGeoData, userGeoDataString, userSelected;\n  return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n    while (1) switch (_context2.prev = _context2.next) {\n      case 0:\n        LocationSelector = document.getElementById('LocationSelector'); // Legacy modal disabled (toggle off / new section in use) — nothing to do.\n        if (LocationSelector) {\n          _context2.next = 3;\n          break;\n        }\n        return _context2.abrupt(\"return\");\n      case 3:\n        locationSelectors = document.querySelectorAll('.location__selector');\n        countryFlags = document.querySelectorAll('.country-flag');\n        modalCloses = document.querySelectorAll('.icon.icon-close.modal-close');\n        currentDomain = window.location.origin;\n        domainParts = currentDomain.split('.');\n        domainCountry = domainParts[0].replace('https://', '');\n        selectLocations = document.querySelectorAll(\".select-country\");\n        manuallyClosed = sessionStorage.getItem('locationModalClosed');\n        wasRedirected = new URLSearchParams(window.location.search).get('userRedirect');\n        if (wasRedirected) {\n          localStorage.setItem('userSelected', domainCountry);\n        }\n\n        // Check if userGeoData is not in localStorage, then fetch it\n        if (!(localStorage.getItem('userGeoData') == null)) {\n          _context2.next = 16;\n          break;\n        }\n        _context2.next = 16;\n        return fetchUserLocation();\n      case 16:\n        userGeoData = localStorage.getItem('userGeoData'); // For testing, if on dev or local make it look like you're in the UK\n        if (currentDomain.includes('dev') || currentDomain.includes('http://')) {\
18n          domainCountry = 'dev';\n        }\n        if (domainCountry === \"www\") {\n          domainCountry = \"us\";\n        }\n        userGeoDataString = userGeoData ? userGeoData.toString() : '';\n        userSelected = localStorage.getItem('userSelected'); // If domain country does not match user region, show location modal\n        if (domainCountry !== userGeoDataString.toLowerCase() && !manuallyClosed && !wasRedirected) {\n          if (!userSelected || domainCountry !== userSelected.toLowerCase()) {\n            setTimeout(function () {\n              LocationSelector.showModal();\n            }, 1000);\n          }\n        }\n\n        // Event listeners for flag clicks and modal close\n        countryFlags.forEach(function (countryFlag) {\n          countryFlag.addEventListener(\"click\", function (e) {\n            e.preventDefault();\n            LocationSelector.showModal();\n          });\n        });\n        modalCloses.forEach(function (modalClose) {\n          modalClose.addEventListener(\"click\", function () {\n            locationSelectors.forEach(function (locationSelector) {\n              locationSelector.close();\n              sessionStorage.setItem('locationModalClosed', 'true');\n            });\n          });\n        });\n\n        // Event listeners for location selection\n        selectLocations.forEach(function (selectLocation) {\n          selectLocation.addEventListener(\"click\", function (event) {\n            var locationElement = event.target.closest('[data-location]');\n            if (locationElement) {\n              var locationValue = locationElement.getAttribute('data-location').toLowerCase();\n              if (locationValue === domainCountry) {\n                event.preventDefault(); // Prevent unnecessary reload\n                localStorage.setItem(\"userSelected\", locationValue);\n                LocationSelector.close();\n                return;\n              }\n              localStorage.setItem(\"userSelected\", locationValue);\n            }\n          });\n        });\n      case 25:\n      case \"end\":\n        return _context2.stop();\n    }\n  }, _callee2);\n})));\ndocument.addEventListener('DOMContentLoaded', function () {\n  var headerWrapper = document.querySelector('.header-sticky-container');\n  var header = document.querySelector('.mega-menu-outer-shopify-wrapper');\n  var announcementBar = document.querySelector('.announcement-bar');\n  var languageBanner = document.querySelector('.language-banner__container');\n  var mobileMenu = document.querySelector('.mobile-menu-outer-wrapper');\n  if (!headerWrapper || !header) return;\n  var headerHeight = header.getBoundingClientRect().height;\n  var barHeight = 0;\n\n  // The sticky container gets a FIXED height (announcement + full header) so\n  // its flow footprint never changes when the header condenses. If it shrank\n  // with the header, the page would get shorter, scroll anchoring would nudge\n  // scrollY back across the condense threshold, and the announcement bar would\n  // flicker on repeat at that scroll point. A constant footprint makes that\n  // feedback loop impossible at any scroll position.\n  function setBaseHeight() {\n    // Never re-measure while condensed (e.g. a resize mid-page) — that would\n    // bake the condensed height in as the \"full\" height.\n    if (!header.classList.contains('is-condensed')) {\n      headerHeight = header.getBoundingClientRect().height;\n    }\n    barHeight = 0;\n    if (announcementBar) {\n      barHeight = announcementBar.offsetHeight;\n      if (languageBanner) barHeight += languageBanner.offsetHeight;\n    }\n    header.style.top = barHeight + 'px';\n    document.body.style.setProperty('--header-height-base', Math.round(headerHeight) + 'px');\n    headerWrapper.style.height = Math.round(barHeight + headerHeight) + 'px';\n  }\n  var lastScroll = window.scrollY;\n  var autohide = document.body.classList.contains('product') || document.body.classList.contains('collection') || document.querySelector('.landing-page-section');\n  function setOffsets(headerOffset, drawerOffset) {\n    document.body.style.setProperty('--header-offset', headerOffset + 'px');\n    if (mobileMenu) mobileMenu.style.setProperty('--mobile-menu-offset', drawerOffset + 'px');\n  }\n  var visibleRaf = 0;\n  var visibleUntil = 0;\n  function trackVisible() {\n    document.body.style.setProperty('--header-visible-height', Math.max(0, Math.round(header.getBoundingClientRect().bottom)) + 'px');\n    if (performance.now() < visibleUntil) {\n      visibleRaf = requestAnimationFrame(trackVisible);\n    } else {\n      visibleRaf = 0;\n    }\n  }\n  function pingVisible() {\n    visibleUntil = performance.now() + 350; // a touch longer than the slide\n    if (!visibleRaf) trackVisible(); // set now, then it re-arms itself via rAF\n  }\n  function onScroll() {\n    var scroll = window.scrollY;\n    var goingDown = scroll > lastScroll;\n    if (scroll <= barHeight) {\n      header.classList.remove('is-condensed');\n      headerWrapper.style.top = '0px';\n      setOffsets(barHeight, barHeight + headerHeight);\n    } else if (scroll > barHeight + headerHeight) {\n      header.classList.add('is-condensed');\n      if (autohide && goingDown) {\n        headerWrapper.style.top = '-' + (barHeight + headerHeight) + 'px';\n      } else {\n        headerWrapper.style.top = '-' + barHeight + 'px';\n      }\n      setOffsets(0, Math.round(header.getBoundingClientRect().height));\n    }\n    document.body.style.setProperty('--header-height', Math.round(header.getBoundingClientRect().height) + 'px');\n    pingVisible();\n    lastScroll = scroll < 0 ? 0 : scroll;\n  }\n  setBaseHeight();\n  document.body.style.setProperty('--header-height', Math.round(headerHeight) + 'px');\n  setOffsets(barHeight, barHeight + headerHeight);\n  onScroll();\n  pingVisible();\n  window.addEventListener('scroll', onScroll, {\n    passive: true\n  });\n  window.addEventListener('resize', setBaseHeight, {\n    passive: true\n  });\n  if (window.ResizeObserver) {\n    var barObserver = new ResizeObserver(setBaseHeight);\n    if (announcementBar) barObserver.observe(announcementBar);\n    if (languageBanner) barObserver.observe(languageBanner);\n  }\n  var TLL = document.querySelectorAll('.link-group');\n  TLL.forEach(function (item) {\n    var topLevel = item.querySelector('.top-level-link');\n    if (!topLevel) return;\n    topLevel.addEventListener('click', function () {\n      if (!item.hasAttribute('data-link')) {\n        item.classList.add('is-active');\n      }\n    });\n  });\n  document.addEventListener('click', function (event) {\n    TLL.forEach(function (item) {\n      // Check if the clicked target is outside the element and its children\n      if (event.target.classList.contains('mega-menu-dropdown_outer-wrapper')) {\n        item.classList.remove('is-active');\n      }\n      if (!item.contains(event.target)) {\n        item.classList.remove('is-active');\n      }\n    });\n  });\n\n  // Desktop hover-intent: open a dropdown on hover and keep it open while the\n  // pointer is anywhere in the header (incl. the gaps between links). It only\n  // switches when hovering another link that has a dropdown, and closes when\n  // the pointer leaves the header entirely.\n  var megaMenuEl = document.querySelector('.mega-menu');\n  function closeAllGroups() {\n    TLL.forEach(function (item) {\n      item.classList.remove('is-active');\n    });\n  }\n  TLL.forEach(function (item) {\n    if (!item.querySelector('.mega-menu-dropdown_outer-wrapper')) return;\n    item.addEventListener('mouseenter', function () {\n      closeAllGroups();\n      item.classList.add('is-active');\n    });\n  });\n  if (megaMenuEl) megaMenuEl.addEventListener('mouseleave', closeAllGroups);\n\n  /////////////////////////\n  // Mobile Menu\n  /////////////////////////\n\n  var mobileTLL = document.querySelectorAll('.mobile-link-group');\n  var mobileSublinks = document.querySelectorAll('.mobile-sublink');\n  var mobileSublinkL2 = document.querySelectorAll('.mobile-sublinks-column-2');\n  var mobileL1Back = document.querySelectorAll('.column-1-back');\n  var mobileL2Back = document.querySelectorAll('.columns-back');\n  mobileTLL.forEach(function (item) {\n    var topLevel = item.querySelector('.mobile-top-level-link');\n    if (topLevel) {\n      topLevel.addEventListener('click', function (e) {\n        var group = e.currentTarget.closest('.mobile-link-group');\n        var wrapper = group ? group.querySelector('.mobile-menu-dropdown_outer-wrapper') : null;\n        if (wrapper) {\n          wrapper.classList.add('is-active');\n        }\n      });\n    }\n  });\n  mobileSublinks.forEach(function (item) {\n    item.addEventListener('click', function (e) {\n      var dataMenu = e.currentTarget.getAttribute('data-menu');\n      if (dataMenu != null) {\n        // Reset the L1 panel to the top so the bottom-level panel (pinned\n        // at top:0 and one viewport tall) lines up with the visible area.\n        var wrapper = e.currentTarget.closest('.mobile-menu-dropdown_outer-wrapper');\n        if (wrapper) wrapper.scrollTop = 0;\n        mobileSublinkL2.forEach(function (el) {\n          if (el.getAttribute('data-menu') == dataMenu) {\n            el.scrollTop = 0;\n            el.classList.add('is-active');\n          }\n        });\n      }\n    });\n  });\n  mobileL1Back.forEach(function (item) {\n    item.addEventListener('click', function (e) {\n      var wrapper = e.currentTarget.closest('.mobile-menu-dropdown_outer-wrapper');\n      if (wrapper) {\n        wrapper.classList.remove('is-active');\n      }\n    });\n  });\n  mobileL2Back.forEach(function (item) {\n    item.addEventListener('click', function (e) {\n      var col = e.currentTarget.closest('.mobile-sublinks-column-2');\n      if (col) {\n        col.classList.remove('is-active');\n      }\n    });\n  });\n  function resetMobileDrill() {\n    document.querySelectorAll('.mobile-menu-dropdown_outer-wrapper.is-active, .mobile-sublinks-column-2.is-active').forEach(function (el) {\n      el.classList.remove('is-active');\n    });\n  }\n  document.querySelectorAll('.mobile-menu-close').forEach(function (btn) {\n    btn.addEventListener('click', function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      var drawer = document.querySelector('.mobile-menu-outer-wrapper');\n      var trigger = document.querySelector('#open-mobile-menu');\n      if (drawer) drawer.classList.remove('active');\n      if (trigger) trigger.classList.remove('active');\n      resetMobileDrill();\n    });\n  });\n  var drawerEl = document.querySelector('.mobile-menu-outer-wrapper');\n  if (drawerEl) {\n    new MutationObserver(function () {\n      if (!drawerEl.classList.contains('active')) resetMobileDrill();\n    }).observe(drawerEl, {\n      attributes: true,\n      attributeFilter: ['class']\n    });\n  }\n  document.querySelectorAll('.predictive-search-back').forEach(function (btn) {\n    btn.addEventListener('click', function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      var container = document.querySelector('.predictive-search-container');\n      var searchTrigger = document.querySelector('.mega-menu [data-open-search]');\n      if (container) container.classList.remove('active');\n      if (searchTrigger) searchTrigger.classList.remove('active');\n      var menuTrigger = document.querySelector('#open-mobile-menu');\n      if (menuTrigger && !menuTrigger.classList.contains('active')) menuTrigger.click();\n    });\n  });\n  document.querySelectorAll('[data-open-search]').forEach(function (trigger) {\n    trigger.addEventListener('click', function (e) {\n      var container = document.querySelector('.predictive-search-container');\n      if (!container) return;\n      var fromMenu = !!e.currentTarget.closest('.mobile-menu-outer-wrapper');\n      container.classList.toggle('from-menu', fromMenu);\n    });\n  });\n  document.querySelectorAll('.search-clear').forEach(function (btn) {\n    btn.addEventListener('click', function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      var form = btn.closest('.search-bar-qf');\n      var input = form && form.querySelector('input[name=\"q\"]');\n      if (!input) return;\n      input.value = '';\n      input.dispatchEvent(new Event('input', {\n        bubbles: true\n      }));\n      input.dispatchEvent(new Event('keyup', {\n        bubbles: true\n      }));\n      input.focus();\n    });\n  });
18\n  document.querySelectorAll('.mobile-controls .header-search').forEach(function (icon) {\n    icon.addEventListener('click', function (e) {\n      var container = document.querySelector('.predictive-search-container');\n      if (!container || !container.classList.contains('active')) return;\n      e.preventDefault();\n      e.stopPropagation();\n      var searchTrigger = document.querySelector('.mega-menu [data-open-search]');\n      container.classList.remove('active');\n      if (searchTrigger) searchTrigger.classList.remove('active');\n    });\n  });\n});\ndocument.addEventListener('DOMContentLoaded', function () {\n  var overlayHeader = document.querySelector('.mega-menu.is-overlay');\n  if (!overlayHeader) return;\n  var scrolled = false;\n  var hovered = false;\n  var searchOpen = false;\n  var menuOpen = false;\n  function apply() {\n    overlayHeader.classList.toggle('is-solid', scrolled || hovered || searchOpen || menuOpen);\n  }\n  function onScroll() {\n    scrolled = window.scrollY > 0;\n    apply();\n  }\n  if (window.matchMedia('(hover: hover)').matches) {\n    overlayHeader.addEventListener('mouseenter', function () {\n      hovered = true;\n      apply();\n    });\n    overlayHeader.addEventListener('mouseleave', function () {\n      hovered = false;\n      apply();\n    });\n  }\n  var drawer = document.querySelector('.mobile-menu-outer-wrapper');\n  if (drawer) {\n    var syncMenu = function syncMenu() {\n      menuOpen = drawer.classList.contains('active');\n      apply();\n    };\n    new MutationObserver(syncMenu).observe(drawer, {\n      attributes: true,\n      attributeFilter: ['class']\n    });\n    syncMenu();\n  }\n  var searchContainer = document.querySelector('.predictive-search-container');\n  if (searchContainer) {\n    var syncSearch = function syncSearch() {\n      searchOpen = searchContainer.classList.contains('active');\n      apply();\n    };\n    new MutationObserver(syncSearch).observe(searchContainer, {\n      attributes: true,\n      attributeFilter: ['class']\n    });\n    syncSearch();\n  }\n  onScroll();\n  window.addEventListener('scroll', onScroll, {\n    passive: true\n  });\n});\ndocument.addEventListener('DOMContentLoaded', function () {\n  var trigger = document.querySelector('#open-mobile-menu');\n  var drawer = document.querySelector('.mobile-menu-outer-wrapper');\n  var headerEl = document.querySelector('.mega-menu-outer-shopify-wrapper');\n  if (!trigger || !drawer || !headerEl) return;\n  function syncOffset() {\n    // Run after the .active toggle + the CSS pin have applied.\n    requestAnimationFrame(function () {\n      if (!drawer.classList.contains('active')) return;\n      var bottom = Math.max(0, Math.round(headerEl.getBoundingClientRect().bottom));\n      drawer.style.setProperty('--mobile-menu-offset', bottom + 'px');\n    });\n  }\n  trigger.addEventListener('click', syncOffset);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93IiwiZmV0Y2hVc2VyTG9jYXRpb24iLCJfcmVmIiwiX2NhbGxlZSIsImNvdW50cnlUb1JlZ2lvbiIsImdldFJlZ2lvbiIsImJhc2VVcmwiLCJxdWVyeV
18BhcmFtcyIsInJlc3BvbnNlIiwiZGF0YSIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJjb3VudHJ5Q29kZSIsImNvbmNhdCIsIndpbmRvdyIsIlNob3BpZnkiLCJyb3V0ZXMiLCJyb290IiwiVVJMU2VhcmNoUGFyYW1zIiwiY291bnRyeSIsImxhbmd1YWdlIiwiZmV0Y2giLCJ0b1N0cmluZyIsImpzb24iLCJ1c2VyUmVnaW9uIiwiZGV0ZWN0ZWRfdmFsdWVzIiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9jYWxsZWUyIiwiTG9jYXRpb25TZWxlY3RvciIsImxvY2F0aW9uU2VsZWN0b3JzIiwiY291bnRyeUZsYWdzIiwibW9kYWxDbG9zZXMiLCJjdXJyZW50RG9tYWluIiwiZG9tYWluUGFydHMiLCJkb21haW5Db3VudHJ5Iiwic2VsZWN0TG9jYXRpb25zIiwibWFudWFsbHlDbG9zZWQiLCJ3YXNSZWRpcmVjdGVkIiwidXNlckdlb0RhdGEiLCJ1c2VyR2VvRGF0YVN0cmluZyIsInVzZXJTZWxlY3RlZCIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImdldEVsZW1lbnRCeUlkIiwicXVlcnlTZWxlY3RvckFsbCIsImxvY2F0aW9uIiwib3JpZ2luIiwic3BsaXQiLCJyZXBsYWNlIiwic2Vzc2lvblN0b3JhZ2UiLCJnZXRJdGVtIiwic2VhcmNoIiwiZ2V0IiwiaW5jbHVkZXMiLCJ0b0xvd2VyQ2FzZSIsInNldFRpbWVvdXQiLCJzaG93TW9kYWwiLCJjb3VudHJ5RmxhZyIsInByZXZlbnREZWZhdWx0IiwibW9kYWxDbG9zZSIsImxvY2F0aW9uU2VsZWN0b3IiLCJjbG9zZSIsInNlbGVjdExvY2F0aW9uIiwiZXZlbnQiLCJsb2NhdGlvbkVsZW1lbnQiLCJ0YXJnZXQiLCJjbG9zZXN0IiwibG9jYXRpb25WYWx1ZSIsImdldEF0dHJpYnV0ZSIsImhlYWRlcldyYXBwZXIiLCJxdWVyeVNlbGVjdG9yIiwiaGVhZGVyIiwiYW5ub3VuY2VtZW50QmFyIiwibGFuZ3VhZ2VCYW5uZXIiLCJtb2JpbGVNZW51IiwiaGVhZGVySGVpZ2h0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiaGVpZ2h0IiwiYmFySGVpZ2h0Iiwic2V0QmFzZUhlaWdodCIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwib2Zmc2V0SGVpZ2h0Iiwic3R5bGUiLCJ0b3AiLCJib2R5Iiwic2V0UHJvcGVydHkiLCJNYXRoIiwicm91bmQiLCJsYXN0U2Nyb2xsIiwic2Nyb2xsWSIsImF1dG9oaWRlIiwic2V0T2Zmc2V0cyIsImhlYWRlck9mZnNldCIsImRyYXdlck9mZnNldCIsInZpc2libGVSYWYiLCJ2aXNpYmxlVW50aWwiLCJ0cmFja1Zpc2libGUiLCJtYXgiLCJib3R0b20iLCJwZXJmb3JtYW5jZSIsIm5vdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInBpbmdWaXNpYmxlIiwib25TY3JvbGwiLCJzY3JvbGwiLCJnb2luZ0Rvd24iLCJyZW1vdmUiLCJhZGQiLCJwYXNzaXZlIiwiUmVzaXplT2JzZXJ2ZXIiLCJiYXJPYnNlcnZlciIsIm9ic2VydmUiLCJUTEwiLCJpdGVtIiwidG9wTGV2ZWwiLCJoYXNBdHRyaWJ1dGUiLCJtZWdhTWVudUVsIiwiY2xvc2VBbGxHcm91cHMiLCJtb2JpbGVUTEwiLCJtb2JpbGVTdWJsaW5rcyIsIm1vYmlsZVN1YmxpbmtMMiIsIm1vYmlsZUwxQmFjayIsIm1vYmlsZUwyQmFjayIsImdyb3VwIiwiY3VycmVudFRhcmdldCIsIndyYXBwZXIiLCJkYXRhTWVudSIsInNjcm9sbFRvcCIsImVsIiwiY29sIiwicmVzZXRNb2JpbGVEcmlsbCIsImJ0biIsInN0b3BQcm9wYWdhdGlvbiIsImRyYXdlciIsInRyaWdnZXIiLCJkcmF3ZXJFbCIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJhdHRyaWJ1dGVzIiwiYXR0cmlidXRlRmlsdGVyIiwiY29udGFpbmVyIiwic2VhcmNoVHJpZ2dlciIsIm1lbnVUcmlnZ2VyIiwiY2xpY2siLCJmcm9tTWVudSIsInRvZ2dsZSIsImZvcm0iLCJpbnB1dCIsImRpc3BhdGNoRXZlbnQiLCJFdmVudCIsImJ1YmJsZXMiLCJmb2N1cyIsImljb24iLCJvdmVybGF5SGVhZGVyIiwic2Nyb2xsZWQiLCJob3ZlcmVkIiwic2VhcmNoT3BlbiIsIm1lbnVPcGVuIiwibWF0Y2hNZWRpYSIsIm1hdGNoZXMiLCJzeW5jTWVudSIsInNlYXJjaENvbnRhaW5lciIsInN5bmNTZWFyY2giLCJoZWFkZXJFbCIsInN5bmNPZmZzZXQiXSwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcXVpY2tmaXJlLXNob3BpZnktdGhlbWUvLi9yZXNvdXJjZXMvanMvc2VjdGlvbnMvbW91cy1oZWFkZXIuanM/MTNlZCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBmZXRjaFVzZXJMb2NhdGlvbiA9IGFzeW5jICgpID0+IHtcbiAgICAvLyBEZWZpbmUgdGhlIHJlZ2lvbiBtYXBwaW5nc1xuICAgIGNvbnN0IGNvdW50cnlUb1JlZ2lvbiA9IHtcbiAgICAgICAgJ1VTJzogJ1VTJyxcbiAgICAgICAgJ0dCJzogJ1VLJyxcbiAgICAgICAgLy8gRXVyb3BlYW4gY291bnRyaWVzXG4gICAgICAgICdNSyc6ICdFVScsXG4gICAgICAgICdBVCc6ICdFVScsXG4gICAgICAgICdDWic6ICdFVScsXG4gICAgICAgICdFRSc6ICdFVScsXG4gICAgICAgICdIUic6ICdFVScsXG4gICAgICAgICdIVSc6ICdFVScsXG4gICAgICAgICdJVCc6ICdFVScsXG4gICAgICAgICdMVCc6ICdFVScsXG4gICAgICAgICdMVSc6ICdFVScsXG4gICAgICAgICdMVic6ICdFVScsXG4gICAgICAgICdQTCc6ICdFVScsXG4gICAgICAgICdQVCc6ICdFVScsXG4gICAgICAgICdTSSc6ICdFVScsXG4gICAgICAgICdTSyc6ICdFVScsXG4gICAgICAgICdCRyc6ICdFVScsXG4gICAgICAgICdBRCc6ICdFVScsXG4gICAgICAgICdSUyc6ICdFVScsXG4gICAgICAgICdBTCc6ICdFVScsXG4gICAgICAgICdCQSc6ICdFVScsXG4gICAgICAgICdDWSc6ICdFVScsXG4gICAgICAgICdGSSc6ICdFVScsXG4gICAgICAgICdHSSc6ICdFVScsXG4gICAgICAgICdHUic6ICdFVScsXG4gICAgICAgICdNQyc6ICdFVScsXG4gICAgICAgICdNRSc6ICdFVScsXG4gICAgICAgICdNVCc6ICdFVScsXG4gICAgICAgICdSTyc6ICdFVScsXG4gICAgICAgICdERSc6ICdFVScsXG4gICAgICAgICdESyc6ICdFVScsXG4gICAgICAgICdGUic6ICdFVScsXG4gICAgICAgICdJRSc6ICdFVScsXG4gICAgICAgICdOTCc6ICdFVScsXG4gICAgICAgICdTRSc6ICdFVScsXG4gICAgICAgICdDSCc6ICdFVScsXG4gICAgICAgICdFUyc6ICdFVScsXG4gICAgICAgICdJUyc6ICdFVScsXG4gICAgICAgICdOTyc6ICdFVScsXG4gICAgICAgICdCRSc6ICdFVScsXG4gICAgICAgICdCWSc6ICdFVScsXG4gICAgICAgICdVQSc6ICdFVScsXG4gICAgICAgICdNRCc6ICdFVScsXG4gICAgICAgIC8vIEFkZCBtb3JlIGNvdW50cnkgY29kZXMgYW5kIHR
18oZWlyIHJlc3BlY3RpdmUgcmVnaW9ucyBpZiBuZWVkZWRcbiAgICB9O1xuXG4gICAgLy8gRGVmaW5lIGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSByZWdpb24gYmFzZWQgb24gY291bnRyeSBjb2RlXG4gICAgY29uc3QgZ2V0UmVnaW9uID0gKGNvdW50cnlDb2RlKSA9PiB7XG4gICAgICAgIGlmIChjb3VudHJ5VG9SZWdpb25bY291bnRyeUNvZGVdKSB7XG4gICAgICAgICAgICByZXR1cm4gY291bnRyeVRvUmVnaW9uW2NvdW50cnlDb2RlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnUk9XJztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBiYXNlVXJsID0gYCR7d2luZG93LlNob3BpZnkucm91dGVzLnJvb3R9YnJvd3NpbmdfY29udGV4dF9zdWdnZXN0aW9ucy5qc29uYDtcblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICdjb3VudHJ5W2VuYWJsZWRdJzogJ3RydWUnLFxuICAgICAgICAnY291bnRyeVtleGNsdWRlXSc6IHdpbmRvdy5TaG9waWZ5LmNvdW50cnksXG4gICAgICAgICdsYW5ndWFnZVtlbmFibGVkXSc6ICd0cnVlJyxcbiAgICAgICAgJ2xhbmd1YWdlW2V4Y2x1ZGVdJzogd2luZG93LlNob3BpZnkubGFuZ3VhZ2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9PyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSByZWdpb24gYmFzZWQgb24gdGhlIGNvdW50cnkgY29kZVxuICAgIHVzZXJSZWdpb24gPSBnZXRSZWdpb24oZGF0YS5kZXRlY3RlZF92YWx1ZXMuY291bnRyeS5oYW5kbGUpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwidXNlckdlb0RhdGFcIiwgdXNlclJlZ2lvbik7XG59O1xuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IExvY2F0aW9uU2VsZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnTG9jYXRpb25TZWxlY3RvcicpO1xuICAgIC8vIExlZ2FjeSBtb2RhbCBkaXNhYmxlZCAodG9nZ2xlIG9mZiAvIG5ldyBzZWN0aW9uIGluIHVzZSkg4oCUIG5vdGhpbmcgdG8gZG8uXG4gICAgaWYgKCFMb2NhdGlvblNlbGVjdG9yKSByZXR1cm47XG5cbiAgICBjb25zdCBsb2NhdGlvblNlbGVjdG9ycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5sb2NhdGlvbl9fc2VsZWN0b3InKTtcbiAgICBjb25zdCBjb3VudHJ5RmxhZ3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY291bnRyeS1mbGFnJyk7XG4gICAgY29uc3QgbW9kYWxDbG9zZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuaWNvbi5pY29uLWNsb3NlLm1vZGFsLWNsb3NlJyk7XG4gICAgbGV0IGN1cnJlbnREb21haW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgIGNvbnN0IGRvbWFpblBhcnRzID0gY3VycmVudERvbWFpbi5zcGxpdCgnLicpO1xuICAgIGxldCBkb21haW5Db3VudHJ5ID0gZG9tYWluUGFydHNbMF0ucmVwbGFjZSgnaHR0cHM6Ly8nLCAnJyk7XG4gICAgY29uc3Qgc2VsZWN0TG9jYXRpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5zZWxlY3QtY291bnRyeVwiKTtcbiAgICBsZXQgbWFudWFsbHlDbG9zZWQgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdsb2NhdGlvbk1vZGFsQ2xvc2VkJylcbiAgICBsZXQgd2FzUmVkaXJlY3RlZCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KCd1c2VyUmVkaXJlY3QnKTtcblxuICAgIGlmKHdhc1JlZGlyZWN0ZWQpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJTZWxlY3RlZCcsIGRvbWFpbkNvdW50cnkpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHVzZXJHZW9EYXRhIGlzIG5vdCBpbiBsb2NhbFN0b3JhZ2UsIHRoZW4gZmV0Y2ggaXRcbiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJHZW9EYXRhJykgPT0gbnVsbCkge1xuICAgICAgICBhd2FpdCBmZXRjaFVzZXJMb2NhdGlvbigpO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJHZW9EYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJHZW9EYXRhJyk7XG5cbiAgICAvLyBGb3IgdGVzdGluZywgaWYgb24gZGV2IG9yIGxvY2FsIG1ha2UgaXQgbG9vayBsaWtlIHlvdSdyZSBpbiB0aGUgVUtcbiAgICBpZiAoY3VycmVudERvbWFpbi5pbmNsdWRlcygnZGV2JykgfHwgY3VycmVudERvbWFpbi5pbmNsdWRlcygnaHR0cDovLycpKSB7XG4gICAgICAgIGRvbWFpbkNvdW50cnkgPSAnZGV2JztcbiAgICB9XG5cbiAgICBpZiAoZG9tYWluQ291bnRyeSA9PT0gXCJ3d3dcIikge1xuICAgICAgICBkb21haW5Db3VudHJ5ID0gXCJ1c1wiO1xuICAgIH1cblxuICAgIGxldCB1c2VyR2VvRGF0YVN0cmluZyA9IHVzZXJHZW9EYXRhID8gdXNlckdlb0RhdGEudG9TdHJpbmcoKSA6ICcnO1xuICAgIGxldCB1c2VyU2VsZWN0ZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlclNlbGVjdGVkJyk7XG5cbiAgICAvLyBJZiBkb21haW4gY291bnRyeSBkb2VzIG5vdCBtYXRjaCB1c2VyIHJlZ2lvbiwgc2hvdyBsb2NhdGlvbiBtb2RhbFxuICAgIGlmIChkb21haW5Db3VudHJ5ICE9PSB1c2VyR2VvRGF0YVN0cmluZy50b0xvd2VyQ2FzZSgpICYmICFtYW51YWxseUNsb3NlZCAmJiAhd2FzUmVkaXJlY3RlZCkge1xuICAgICAgICBpZiAoIXVzZXJTZWxlY3RlZCB8fCBkb21haW5Db3VudHJ5ICE9PSB1c2VyU2VsZWN0ZWQudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgTG9jYXRpb25TZWxlY3Rvci5zaG93TW9kYWwoKTtcbiAgICAgICAgICAgIH0sIDEwMDApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVudCBsaXN0ZW5lcnMgZm9yIGZsYWcgY2xpY2tzIGFuZCBtb2RhbCBjbG9zZVxuICAgIGNvdW50cnlGbGFncy5mb3JFYWNoKChjb3VudHJ5RmxhZykgPT4ge1xuICAgICAgICBjb3VudHJ5RmxhZy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIExvY2F0aW9uU2VsZWN0b3Iuc2hvd01vZGFsKCk7XG4gICAgICAgI
18H0pO1xuICAgIH0pO1xuXG4gICAgbW9kYWxDbG9zZXMuZm9yRWFjaCgobW9kYWxDbG9zZSkgPT4ge1xuICAgICAgICBtb2RhbENsb3NlLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBsb2NhdGlvblNlbGVjdG9ycy5mb3JFYWNoKChsb2NhdGlvblNlbGVjdG9yKSA9PiB7XG4gICAgICAgICAgICAgICAgbG9jYXRpb25TZWxlY3Rvci5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2xvY2F0aW9uTW9kYWxDbG9zZWQnLCAndHJ1ZScpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBFdmVudCBsaXN0ZW5lcnMgZm9yIGxvY2F0aW9uIHNlbGVjdGlvblxuICAgIHNlbGVjdExvY2F0aW9ucy5mb3JFYWNoKChzZWxlY3RMb2NhdGlvbikgPT4ge1xuICAgICAgICBzZWxlY3RMb2NhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbkVsZW1lbnQgPSBldmVudC50YXJnZXQuY2xvc2VzdCgnW2RhdGEtbG9jYXRpb25dJyk7XG4gICAgICAgICAgICBpZiAobG9jYXRpb25FbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25WYWx1ZSA9IGxvY2F0aW9uRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbG9jYXRpb24nKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uVmFsdWUgPT09IGRvbWFpbkNvdW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gUHJldmVudCB1bm5lY2Vzc2FyeSByZWxvYWRcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJ1c2VyU2VsZWN0ZWRcIiwgbG9jYXRpb25WYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIExvY2F0aW9uU2VsZWN0b3IuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwidXNlclNlbGVjdGVkXCIsIGxvY2F0aW9uVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGhlYWRlcldyYXBwZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLXN0aWNreS1jb250YWluZXInKTtcbiAgICBjb25zdCBoZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVnYS1tZW51LW91dGVyLXNob3BpZnktd3JhcHBlcicpO1xuICAgIGNvbnN0IGFubm91bmNlbWVudEJhciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hbm5vdW5jZW1lbnQtYmFyJyk7XG4gICAgY29uc3QgbGFuZ3VhZ2VCYW5uZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGFuZ3VhZ2UtYmFubmVyX19jb250YWluZXInKTtcbiAgICBjb25zdCBtb2JpbGVNZW51ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1vYmlsZS1tZW51LW91dGVyLXdyYXBwZXInKTtcblxuICAgIGlmICghaGVhZGVyV3JhcHBlciB8fCAhaGVhZGVyKSByZXR1cm47XG5cbiAgICBsZXQgaGVhZGVySGVpZ2h0ID0gaGVhZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICBsZXQgYmFySGVpZ2h0ID0gMDtcblxuICAgIC8vIFRoZSBzdGlja3kgY29udGFpbmVyIGdldHMgYSBGSVhFRCBoZWlnaHQgKGFubm91bmNlbWVudCArIGZ1bGwgaGVhZGVyKSBzb1xuICAgIC8vIGl0cyBmbG93IGZvb3RwcmludCBuZXZlciBjaGFuZ2VzIHdoZW4gdGhlIGhlYWRlciBjb25kZW5zZXMuIElmIGl0IHNocmFua1xuICAgIC8vIHdpdGggdGhlIGhlYWRlciwgdGhlIHBhZ2Ugd291bGQgZ2V0IHNob3J0ZXIsIHNjcm9sbCBhbmNob3Jpbmcgd291bGQgbnVkZ2VcbiAgICAvLyBzY3JvbGxZIGJhY2sgYWNyb3NzIHRoZSBjb25kZW5zZSB0aHJlc2hvbGQsIGFuZCB0aGUgYW5ub3VuY2VtZW50IGJhciB3b3VsZFxuICAgIC8vIGZsaWNrZXIgb24gcmVwZWF0IGF0IHRoYXQgc2Nyb2xsIHBvaW50LiBBIGNvbnN0YW50IGZvb3RwcmludCBtYWtlcyB0aGF0XG4gICAgLy8gZmVlZGJhY2sgbG9vcCBpbXBvc3NpYmxlIGF0IGFueSBzY3JvbGwgcG9zaXRpb24uXG4gICAgZnVuY3Rpb24gc2V0QmFzZUhlaWdodCgpIHtcbiAgICAgICAgLy8gTmV2ZXIgcmUtbWVhc3VyZSB3aGlsZSBjb25kZW5zZWQgKGUuZy4gYSByZXNpemUgbWlkLXBhZ2UpIOKAlCB0aGF0IHdvdWxkXG4gICAgICAgIC8vIGJha2UgdGhlIGNvbmRlbnNlZCBoZWlnaHQgaW4gYXMgdGhlIFwiZnVsbFwiIGhlaWdodC5cbiAgICAgICAgaWYgKCFoZWFkZXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1jb25kZW5zZWQnKSkge1xuICAgICAgICAgICAgaGVhZGVySGVpZ2h0ID0gaGVhZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBiYXJIZWlnaHQgPSAwO1xuICAgICAgICBpZiAoYW5ub3VuY2VtZW50QmFyKSB7XG4gICAgICAgICAgICBiYXJIZWlnaHQgPSBhbm5vdW5jZW1lbnRCYXIub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgaWYgKGxhbmd1YWdlQmFubmVyKSBiYXJIZWlnaHQgKz0gbGFuZ3VhZ2VCYW5uZXIub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGhlYWRlci5zdHlsZS50b3AgPSBiYXJIZWlnaHQgKyAncHgnO1xuICAgICAgICBkb2
18N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWhlYWRlci1oZWlnaHQtYmFzZScsIE1hdGgucm91bmQoaGVhZGVySGVpZ2h0KSArICdweCcpO1xuICAgICAgICBoZWFkZXJXcmFwcGVyLnN0eWxlLmhlaWdodCA9IE1hdGgucm91bmQoYmFySGVpZ2h0ICsgaGVhZGVySGVpZ2h0KSArICdweCc7XG4gICAgfVxuXG4gICAgbGV0IGxhc3RTY3JvbGwgPSB3aW5kb3cuc2Nyb2xsWTtcblxuICAgIGNvbnN0IGF1dG9oaWRlID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ3Byb2R1Y3QnKSB8fFxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnY29sbGVjdGlvbicpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sYW5kaW5nLXBhZ2Utc2VjdGlvbicpXG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRzKGhlYWRlck9mZnNldCwgZHJhd2VyT2Zmc2V0KSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0taGVhZGVyLW9mZnNldCcsIGhlYWRlck9mZnNldCArICdweCcpO1xuICAgICAgICBpZiAobW9iaWxlTWVudSkgbW9iaWxlTWVudS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1tb2JpbGUtbWVudS1vZmZzZXQnLCBkcmF3ZXJPZmZzZXQgKyAncHgnKTtcbiAgICB9XG5cblxuICAgIGxldCB2aXNpYmxlUmFmID0gMDtcbiAgICBsZXQgdmlzaWJsZVVudGlsID0gMDtcbiAgICBmdW5jdGlvbiB0cmFja1Zpc2libGUoKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1oZWFkZXItdmlzaWJsZS1oZWlnaHQnLFxuICAgICAgICAgICAgTWF0aC5tYXgoMCwgTWF0aC5yb3VuZChoZWFkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tKSkgKyAncHgnXG4gICAgICAgICk7XG4gICAgICAgIGlmIChwZXJmb3JtYW5jZS5ub3coKSA8IHZpc2libGVVbnRpbCkge1xuICAgICAgICAgICAgdmlzaWJsZVJhZiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0cmFja1Zpc2libGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmlzaWJsZVJhZiA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcGluZ1Zpc2libGUoKSB7XG4gICAgICAgIHZpc2libGVVbnRpbCA9IHBlcmZvcm1hbmNlLm5vdygpICsgMzUwOyAvLyBhIHRvdWNoIGxvbmdlciB0aGFuIHRoZSBzbGlkZVxuICAgICAgICBpZiAoIXZpc2libGVSYWYpIHRyYWNrVmlzaWJsZSgpOyAvLyBzZXQgbm93LCB0aGVuIGl0IHJlLWFybXMgaXRzZWxmIHZpYSByQUZcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvblNjcm9sbCgpIHtcbiAgICAgICAgY29uc3Qgc2Nyb2xsID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgIGNvbnN0IGdvaW5nRG93biA9IHNjcm9sbCA+IGxhc3RTY3JvbGw7XG5cbiAgICAgICAgaWYgKHNjcm9sbCA8PSBiYXJIZWlnaHQpIHtcbiAgICAgICAgICAgIGhlYWRlci5jbGFzc0xpc3QucmVtb3ZlKCdpcy1jb25kZW5zZWQnKTtcbiAgICAgICAgICAgIGhlYWRlcldyYXBwZXIuc3R5bGUudG9wID0gJzBweCc7XG4gICAgICAgICAgICBzZXRPZmZzZXRzKGJhckhlaWdodCwgYmFySGVpZ2h0ICsgaGVhZGVySGVpZ2h0KTtcbiAgICAgICAgfSBlbHNlIGlmIChzY3JvbGwgPiBiYXJIZWlnaHQgKyBoZWFkZXJIZWlnaHQpIHtcbiAgICAgICAgICAgIGhlYWRlci5jbGFzc0xpc3QuYWRkKCdpcy1jb25kZW5zZWQnKTtcbiAgICAgICAgICAgIGlmIChhdXRvaGlkZSAmJiBnb2luZ0Rvd24pIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJXcmFwcGVyLnN0eWxlLnRvcCA9ICctJyArIChiYXJIZWlnaHQgKyBoZWFkZXJIZWlnaHQpICsgJ3B4JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyV3JhcHBlci5zdHlsZS50b3AgPSAnLScgKyBiYXJIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0T2Zmc2V0cygwLCBNYXRoLnJvdW5kKGhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpKTtcbiAgICAgICAgfVxuICAgICAgICBkb2
18N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWhlYWRlci1oZWlnaHQnLCBNYXRoLnJvdW5kKGhlYWRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpICsgJ3B4Jyk7XG4gICAgICAgIHBpbmdWaXNpYmxlKCk7XG4gICAgICAgIGxhc3RTY3JvbGwgPSBzY3JvbGwgPCAwID8gMCA6IHNjcm9sbDtcbiAgICB9XG5cbiAgICBzZXRCYXNlSGVpZ2h0KCk7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1oZWFkZXItaGVpZ2h0JywgTWF0aC5yb3VuZChoZWFkZXJIZWlnaHQpICsgJ3B4Jyk7XG4gICAgc2V0T2Zmc2V0cyhiYXJIZWlnaHQsIGJhckhlaWdodCArIGhlYWRlckhlaWdodCk7XG5cbiAgICBvblNjcm9sbCgpO1xuICAgIHBpbmdWaXNpYmxlKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHNldEJhc2VIZWlnaHQsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcblxuICAgIGlmICh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgY29uc3QgYmFyT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoc2V0QmFzZUhlaWdodCk7XG4gICAgICAgIGlmIChhbm5vdW5jZW1lbnRCYXIpIGJhck9ic2VydmVyLm9ic2VydmUoYW5ub3VuY2VtZW50QmFyKTtcbiAgICAgICAgaWYgKGxhbmd1YWdlQmFubmVyKSBiYXJPYnNlcnZlci5vYnNlcnZlKGxhbmd1YWdlQmFubmVyKTtcbiAgICB9XG5cblxuXG4gICAgY29uc3QgVExMID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxpbmstZ3JvdXAnKTtcbiAgICBUTEwuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICBjb25zdCB0b3BMZXZlbCA9IGl0ZW0ucXVlcnlTZWxlY3RvcignLnRvcC1sZXZlbC1saW5rJyk7XG4gICAgICAgIGlmICghdG9wTGV2ZWwpIHJldHVybjtcbiAgICAgICAgdG9wTGV2ZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIWl0ZW0uaGFzQXR0cmlidXRlKCdkYXRhLWxpbmsnKSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIFRMTC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgY2xpY2tlZCB0YXJnZXQgaXMgb3V0c2lkZSB0aGUgZWxlbWVudCBhbmQgaXRzIGNoaWxkcmVuXG4gICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnbWVnYS1tZW51LWRyb3Bkb3duX291dGVyLXdyYXBwZXInKSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWl0ZW0uY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gRGVza3RvcCBob3Zlci1pbnRlbnQ6IG9wZW4gYSBkcm9wZG93biBvbiBob3ZlciBhbmQga2VlcCBpdCBvcGVuIHdoaWxlIHRoZVxuICAgIC8vIHBvaW50ZXIgaXMgYW55d2hlcmUgaW4gdGhlIGhlYWRlciAoaW5jbC4gdGhlIGdhcHMgYmV0d2VlbiBsaW5rcykuIEl0IG9ubHlcbiAgICAvLyBzd2l0Y2hlcyB3aGVuIGhvdmVyaW5nIGFub3RoZXIgbGluayB0aGF0IGhhcyBhIGRyb3Bkb3duLCBhbmQgY2xvc2VzIHdoZW5cbiAgICAvLyB0aGUgcG9pbnRlciBsZWF2ZXMgdGhlIGhlYWRlciBlbnRpcmVseS5cbiAgICBjb25zdCBtZWdhTWVudUVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lZ2EtbWVudScpO1xuICAgIGZ1bmN0aW9uIGNsb3NlQWxsR3JvdXBzKCkge1xuICAgICAgICBUTEwuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgeyBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpOyB9KTtcbiAgICB9XG4gICAgVExMLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgaWYgKCFpdGVtLnF1ZXJ5U2VsZWN0b3IoJy5tZWdhLW1lbnUtZHJvcGRvd25fb3V0ZXItd3JhcHBlcicpKSByZXR1cm47XG4gICAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNsb3NlQWxsR3JvdXBzKCk7XG4gICAgICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBpZiAobWVnYU1lbnVFbCkgbWVnYU1lbnVFbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgY2xvc2VBbGxHcm91cHMpO1xuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIE1vYmlsZSBNZW51XG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgbW9iaWxlVExMID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1vYmlsZS1saW5rLWdyb3VwJyk7XG4gICAgY29uc3QgbW9iaWxlU3VibGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9iaWxlLXN1YmxpbmsnKTtcbiAgICBjb25zdCBtb2JpbGVTdWJsaW5rTDIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9iaWxlLXN1YmxpbmtzLWNvbHVtbi0yJyk7XG4gICAgY29uc3QgbW9iaWxlTDFCYWNrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNvbHVtbi0xLWJhY2snKTtcbiAgICBjb25zdCBtb2JpbGVMMkJhY2sgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY29sdW1ucy1iYWNrJyk7XG5cbiAgICBtb2JpbGVUTEwuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICBjb25zdCB0b3BMZXZlbCA9IGl0ZW0ucXVlcnlTZWxlY3RvcignLm1vYmlsZS10b3AtbGV2ZWwtbGluaycpO1xuICAgICAgICBpZiAodG9wTGV2ZWwpIHtcbiAgICAgICAgICAgI
18HRvcExldmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IGUuY3VycmVudFRhcmdldC5jbG9zZXN0KCcubW9iaWxlLWxpbmstZ3JvdXAnKTtcbiAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyID0gZ3JvdXAgPyBncm91cC5xdWVyeVNlbGVjdG9yKCcubW9iaWxlLW1lbnUtZHJvcGRvd25fb3V0ZXItd3JhcHBlcicpIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAod3JhcHBlcikge1xuICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgbW9iaWxlU3VibGlua3MuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFNZW51ID0gZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1tZW51Jyk7XG4gICAgICAgICAgICBpZiAoZGF0YU1lbnUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBMMSBwYW5lbCB0byB0aGUgdG9wIHNvIHRoZSBib3R0b20tbGV2ZWwgcGFuZWwgKHBpbm5lZFxuICAgICAgICAgICAgICAgIC8vIGF0IHRvcDowIGFuZCBvbmUgdmlld3BvcnQgdGFsbCkgbGluZXMgdXAgd2l0aCB0aGUgdmlzaWJsZSBhcmVhLlxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSBlLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgnLm1vYmlsZS1tZW51LWRyb3Bkb3duX291dGVyLXdyYXBwZXInKTtcbiAgICAgICAgICAgICAgICBpZiAod3JhcHBlcikgd3JhcHBlci5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgICAgIG1vYmlsZVN1YmxpbmtMMi5mb3JFYWNoKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZWwuZ2V0QXR0cmlidXRlKCdkYXRhLW1lbnUnKSA9PSBkYXRhTWVudSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWwuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIG1vYmlsZUwxQmFjay5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlciA9IGUuY3VycmVudFRhcmdldC5jbG9zZXN0KCcubW9iaWxlLW1lbnUtZHJvcGRvd25fb3V0ZXItd3JhcHBlcicpO1xuICAgICAgICAgICAgaWYgKHdyYXBwZXIpIHtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBtb2JpbGVMMkJhY2suZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IGUuY3VycmVudFRhcmdldC5jbG9zZXN0KCcubW9iaWxlLXN1YmxpbmtzLWNvbHVtbi0yJyk7XG4gICAgICAgICAgICBpZiAoY29sKSB7XG4gICAgICAgICAgICAgICAgY29sLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHJlc2V0TW9iaWxlRHJpbGwoKSB7XG4gICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLm1vYmlsZS1tZW51LWRyb3Bkb3duX291dGVyLXdyYXBwZXIuaXMtYWN0aXZlLCAubW9iaWxlLXN1YmxpbmtzLWNvbHVtbi0yLmlzLWFjdGl2ZScpXG4gICAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsgZWwuY2xhc3NMaXN0LnJlbW92ZSgnaXMtYWN0aXZlJyk7IH0pO1xuICAgIH1cblxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2JpbGUtbWVudS1jbG9zZScpLmZvckVhY2goZnVuY3Rpb24gKGJ0bikge1xuICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IGRyYXdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tb2JpbGUtbWVudS1vdXRlci13cmFwcGVyJyk7XG4gICAgICAgICAgICBjb25zdCB0cmlnZ2VyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI29wZW4tbW9iaWxlLW1lbnUnKTtcbiAgICAgICAgICAgIGlmIChkcmF3ZXIpIGRyYXdlci5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIGlmICh0cmlnZ2VyKSB0cmlnZ2VyLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgcmVzZXRNb2JpbGVEcmlsbCgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRyYXdlckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1vYmlsZS1tZW51LW91dGVyLXdyYXBwZXInKTtcbiAgICBpZiAoZHJhd2VyRWwpIHtcbiAgICAgICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKCFkcmF3ZXJFbC5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSByZXNldE1vYmlsZURyaWxsKCk7XG4gICAgICAgIH0pLm9ic2VydmUoZHJhd2VyRWwsIHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10gfSk7XG4gICAgfVxuXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByZWRpY3RpdmUtc2VhcmNoLWJhY2snKS5mb3JFYWNoKGZ1bmN0aW9uIChidG4pIHtcbiAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucHJlZGljdGl2ZS1zZWFyY2gtY29udGFpbmVyJyk7XG4gICAgICAgICAgICBjb25zdCBzZWFyY2hUcmlnZ2VyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lZ2EtbWVudSBbZGF0YS1vcGVuLXNlYXJjaF0nKTtcbiAgICAgICAgICAgIGlmIChjb250YWluZXIpIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIGlmIChzZWFyY2hUcmlnZ2VyKSBzZWFyY2hUcmlnZ2VyLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xuXG4gICAgICAgICAgICBjb25zdCBtZW51VHJpZ2dlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNvcGVuLW1vYmlsZS1tZW51Jyk7XG4gICAgICAgICAgICBpZiAobWVudVRyaWdnZXIgJiYgIW1lbnVUcmlnZ2VyLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpIG1lbnVUcmlnZ2VyLmNsaWNrKCk7XG4gICAgICAgI
18H0pO1xuICAgIH0pO1xuXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtb3Blbi1zZWFyY2hdJykuZm9yRWFjaChmdW5jdGlvbiAodHJpZ2dlcikge1xuICAgICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wcmVkaWN0aXZlLXNlYXJjaC1jb250YWluZXInKTtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBmcm9tTWVudSA9ICEhZS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoJy5tb2JpbGUtbWVudS1vdXRlci13cmFwcGVyJyk7XG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LnRvZ2dsZSgnZnJvbS1tZW51JywgZnJvbU1lbnUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zZWFyY2gtY2xlYXInKS5mb3JFYWNoKGZ1bmN0aW9uIChidG4pIHtcbiAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtID0gYnRuLmNsb3Nlc3QoJy5zZWFyY2gtYmFyLXFmJyk7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IGZvcm0gJiYgZm9ybS5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPVwicVwiXScpO1xuICAgICAgICAgICAgaWYgKCFpbnB1dCkgcmV0dXJuO1xuICAgICAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICAgICAgICAgIGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgna2V5dXAnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9iaWxlLWNvbnRyb2xzIC5oZWFkZXItc2VhcmNoJykuZm9yRWFjaChmdW5jdGlvbiAoaWNvbikge1xuICAgICAgICBpY29uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wcmVkaWN0aXZlLXNlYXJjaC1jb250YWluZXInKTtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyIHx8ICFjb250YWluZXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkgcmV0dXJuO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaFRyaWdnZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVnYS1tZW51IFtkYXRhLW9wZW4tc2VhcmNoXScpO1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgaWYgKHNlYXJjaFRyaWdnZXIpIHNlYXJjaFRyaWdnZXIuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufSk7XG5cbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3Qgb3ZlcmxheUhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tZWdhLW1lbnUuaXMtb3ZlcmxheScpO1xuICAgIGlmICghb3ZlcmxheUhlYWRlcikgcmV0dXJuO1xuXG4gICAgbGV0IHNjcm9sbGVkID0gZmFsc2U7XG4gICAgbGV0IGhvdmVyZWQgPSBmYWxzZTtcbiAgICBsZXQgc2VhcmNoT3BlbiA9IGZhbHNlO1xuICAgIGxldCBtZW51T3BlbiA9IGZhbHNlO1xuXG4gICAgZnVuY3Rpb24gYXBwbHkoKSB7XG4gICAgICAgIG92ZXJsYXlIZWFkZXIuY2xhc3NMaXN0LnRvZ2dsZSgnaXMtc29saWQnLCBzY3JvbGxlZCB8fCBob3ZlcmVkIHx8IHNlYXJjaE9wZW4gfHwgbWVudU9wZW4pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG9uU2Nyb2xsKCkge1xuICAgICAgICBzY3JvbGxlZCA9IHdpbmRvdy5zY3JvbGxZID4gMDtcbiAgICAgICAgYXBwbHkoKTtcbiAgICB9XG5cbiAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEoJyhob3ZlcjogaG92ZXIpJykubWF0Y2hlcykge1xuICAgICAgICBvdmVybGF5SGVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmdW5jdGlvbiAoKSB7IGhvdmVyZWQgPSB0cnVlOyBhcHBseSgpOyB9KTtcbiAgICAgICAgb3ZlcmxheUhlYWRlci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24gKCkgeyBob3ZlcmVkID0gZmFsc2U7IGFwcGx5KCk7IH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYXdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tb2JpbGUtbWVudS1vdXRlci13cmFwcGVyJyk7XG4gICAgaWYgKGRyYXdlcikge1xuICAgICAgICBjb25zdCBzeW5jTWVudSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIG1lbnVPcGVuID0gZHJhd2VyLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJyk7XG4gICAgICAgICAgICBhcHBseSgpO1xuICAgICAgICB9O1xuICAgICAgICBuZXcgTXV0YXRpb25PYnNlcnZlcihzeW5jTWVudSkub2JzZXJ2ZShkcmF3ZXIsIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXVxuICAgICAgICB9KTtcbiAgICAgICAgc3luY01lbnUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWFyY2hDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucHJlZGljdGl2ZS1zZWFyY2gtY29udGFpbmVyJyk7XG4gICAgaWYgKHNlYXJjaENvbnRhaW5lcikge1xuICAgICAgICBjb25zdCBzeW5jU2VhcmNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2VhcmNoT3BlbiA9IHNlYXJjaENvbnRhaW5lci5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgYXBwbHkoKTtcbiAgICAgICAgfTtcbiAgICAgICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoc3luY1NlYXJjaCkub2JzZXJ2ZShzZWFyY2hDb250YWluZXIsIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXVxuICAgICAgICB9KTtcbiAgICAgICAgc3luY1NlYXJjaCgpO1xuICAgIH1cblxuICAgIG9uU2Nyb2xsKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsLCB7IHBhc3NpdmU6IHRydWUgfSk7XG59KTtcblxuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHRyaWdnZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjb3Blbi1tb2JpbGUtbWVudScpO1xuICAgIGNvbnN0IGRyYXdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tb2JpbGUtbWVudS1vdXRlci13cmFwcGVyJyk7XG4gICAgY29uc3QgaGVhZGVyRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVnYS1tZW51LW91dGVyLXNob3BpZnktd3JhcHBlcicpO1xuICAgIGlmICghdHJpZ2dlciB8fCAhZHJhd2VyIHx8ICFoZWFkZXJFbCkgcmV0dXJuO1xuXG4gICAgZnVuY3Rpb24gc3luY09mZnNldCgpIHtcbiAgICAgICAgLy8gUnVuIGFmdGVyIHRoZSAuYWN0aXZlIHRvZ2dsZSArIHRoZSBDU1MgcGluIGhhdmUgYXBwbGllZC5cbiAgICAgICAgcmVxdW
18VzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghZHJhd2VyLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGJvdHRvbSA9IE1hdGgubWF4KDAsIE1hdGgucm91bmQoaGVhZGVyRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tKSk7XG4gICAgICAgICAgICBkcmF3ZXIuc3R5bGUuc2V0UHJvcGVydHkoJy0tbW9iaWxlLW1lbnUtb2Zmc2V0JywgYm90dG9tICsgJ3B4Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBzeW5jT2Zmc2V0KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENBQUEsRUFBQWlCLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFNBQUFwQixDQUFBLENBQUFELENB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QzlDdEYsS0FBSyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsSUFBSThJLGdCQUFnQixDQUFDdUIsUUFBUSxDQUFDLENBQUNoRCxPQUFPLENBQUNzQixNQUFNLEVBQUU7TUFDM0NJLFVBQVUsRUFBRSxJQUFJO01BQ2hCQyxlQUFlLEVBQUUsQ0FBQyxPQUFPO0lBQzdCLENBQUMsQ0FBQztJQUNGcUIsUUFBUSxDQUFDLENBQUM7RUFDZDtFQUVBLElBQU1DLGVBQWUsR0FBR3hJLFFBQVEsQ0FBQzZDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQztFQUM5RSxJQUFJMkYsZUFBZSxFQUFFO0lBQ2pCLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQWU7TUFDM0JOLFVBQVUsR0FBR0ssZUFBZSxDQUFDakYsU0FBUyxDQUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDO01BQ3pEdEYsS0FBSyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsSUFBSThJLGdCQUFnQixDQUFDeUIsVUFBVSxDQUFDLENBQUNsRCxPQUFPLENBQUNpRCxlQUFlLEVBQUU7TUFDdER2QixVQUFVLEVBQUUsSUFBSTtNQUNoQkMsZUFBZSxFQUFFLENBQUMsT0FBTztJQUM3QixDQUFDLENBQUM7SUFDRnVCLFVBQVUsQ0FBQyxDQUFDO0VBQ2hCO0VBRUExRCxRQUFRLENBQUMsQ0FBQztFQUNWN0YsTUFBTSxDQUFDZSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU4RSxRQUFRLEVBQUU7SUFBRUssT0FBTyxFQUFFO0VBQUssQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUdGcEYsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZO0VBQ3RELElBQU02RyxPQUFPLEdBQUc5RyxRQUFRLENBQUM2QyxhQU
18FhLENBQUMsbUJBQW1CLENBQUM7RUFDM0QsSUFBTWdFLE1BQU0sR0FBRzdHLFFBQVEsQ0FBQzZDLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQztFQUNuRSxJQUFNNkYsUUFBUSxHQUFHMUksUUFBUSxDQUFDNkMsYUFBYSxDQUFDLGtDQUFrQyxDQUFDO0VBQzNFLElBQUksQ0FBQ2lFLE9BQU8sSUFBSSxDQUFDRCxNQUFNLElBQUksQ0FBQzZCLFFBQVEsRUFBRTtFQUV0QyxTQUFTQyxVQUFVQSxDQUFBLEVBQUc7SUFDbEI7SUFDQTlELHFCQUFxQixDQUFDLFlBQVk7TUFDOUIsSUFBSSxDQUFDZ0MsTUFBTSxDQUFDdEQsU0FBUyxDQUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7TUFDMUMsSUFBTWtCLE1BQU0sR0FBR1osSUFBSSxDQUFDVyxHQUFHLENBQUMsQ0FBQyxFQUFFWCxJQUFJLENBQUNDLEtBQUssQ0FBQzJFLFFBQVEsQ0FBQ3ZGLHFCQUFxQixDQUFDLENBQUMsQ0FBQ3VCLE1BQU0sQ0FBQyxDQUFDO01BQy9FbUMsTUFBTSxDQUFDbkQsS0FBSyxDQUFDRyxXQUFXLENBQUMsc0JBQXNCLEVBQUVhLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0VBQ047RUFFQW9DLE9BQU8sQ0FBQzdHLGdCQUFnQixDQUFDLE9BQU8sRUFBRTBJLFVBQVUsQ0FBQztBQUNqRCxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXSwiZmlsZSI6Ii4vcmVzb3VyY2VzL2pzL3NlY3Rpb25zL21vdXMtaGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/sections/mous-header.js\n");
19
20/***/ })
20
21
22/******/ 	});
23/************************************************************************/
24/******/ 	
25/******/ 	// startup
26/******/ 	// Load entry module and return exports
27/******/ 	// This entry module can't be inlined because the eval-source-map devtool is used.
28/******/ 	var __webpack_exports__ = {};
29/******/ 	__webpack_modules__["./resources/js/sections/mous-header.js"]();
30/******/ 	
31/******/ })()
32;

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.