(()=>{"use strict";var __webpack_modules__={92:()=>{eval("\n;// CONCATENATED MODULE: ./js/lib/dom-component.js\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nclass DomComponent {\n  constructor($domElement) {\n    _defineProperty(this, \"$domElement\", void 0);\n    if (!$domElement) {\n      return;\n    }\n    this.$domElement = $domElement;\n    this.$domElement.classList.add('js');\n    [this.baseCSSClass] = this.$domElement.classList;\n  }\n  loaded() {\n    this.$domElement.classList.add('js-loaded');\n  }\n  find(selector, keepAsArray = false) {\n    const found = this.findAll(selector);\n    if (!found) {\n      return false;\n    }\n    if (keepAsArray === false) {\n      return found.length > 1 ? found : found[0];\n    }\n    return found;\n  }\n  findAll(selector) {\n    const found = this.$domElement.querySelectorAll(selector);\n    if (found && found.length) {\n      return Array.from(found);\n    }\n    return found;\n  }\n}\n;// CONCATENATED MODULE: ./js/lib/accessibility.js\nfunction makeUnaccessible(el) {\n  el.setAttribute('aria-hidden', 'true');\n  const $ariaHiddenElements = el.querySelectorAll('[aria-hidden]');\n  const $tabindexElements = el.querySelectorAll('[tabindex]');\n  if ($tabindexElements) {\n    Array.from($tabindexElements).map(el => el.setAttribute('tabindex', -1));\n  }\n  if ($ariaHiddenElements) {\n    Array.from($ariaHiddenElements).map(el => el.setAttribute('aria-hidden', 'true'));\n  }\n}\nfunction makeAccessible(el) {\n  el.setAttribute('aria-hidden', 'false');\n  const $ariaHiddenElements = el.querySelectorAll('[aria-hidden]');\n  const $tabindexElements = el.querySelectorAll('[tabindex]');\n  if ($tabindexElements) {\n    Array.from($tabindexElements).map(el => el.setAttribute('tabindex', ''));\n  }\n  if ($ariaHiddenElements) {\n    Array.from($ariaHiddenElements).map(el => el.setAttribute('aria-hidden', 'false'));\n  }\n}\nfunction hideAllChildrenFromScreenreader(el) {\n  const $links = el.querySelectorAll('a');\n  const $inputs = el.querySelectorAll('input');\n  const $selects = el.querySelectorAll('select');\n  const $buttons = el.querySelectorAll('button');\n  if ($links) {\n    Array.from($links).map(el => el.setAttribute('tabindex', -1));\n  }\n  if ($selects) {\n    Array.from($selects).map(el => el.setAttribute('tabindex', -1));\n  }\n  if ($buttons) {\n    Array.from($buttons).map(el => el.setAttribute('tabindex', -1));\n  }\n  if ($links) {\n    Array.from($inputs).map(el => el.setAttribute('tabindex', -1));\n  }\n}\n;// CONCATENATED MODULE: ./js/services/body.js\nconst bodyService = {\n  lock: function () {\n    document.body.classList.add('lock');\n  },\n  unlock: function () {\n    document.body.classList.remove('lock');\n  },\n  setClass: function (className) {\n    document.body.classList.add(className);\n  },\n  unsetClass: function (className) {\n    document.body.classList.remove(className);\n  },\n  hasClass: function (className) {\n    return document.body.classList.contains(className);\n  }\n};\n/* harmony default export */ const body = (bodyService);\n;// CONCATENATED MODULE: ./js/lib/each.js\nfunction each(nodeList, cb) {\n  if (!nodeList || !nodeList.length) {\n    return;\n  }\n  for (let i = 0; i < nodeList.length; i++) {\n    cb(nodeList[i], i);\n  }\n}\n;// CONCATENATED MODULE: ./header/header.js\nfunction header_defineProperty(e, r, t) { return (r = header_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction header_toPropertyKey(t) { var i = header_toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction header_toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\nclass Header extends DomComponent {\n  constructor($domElement) {\n    super($domElement);\n    header_defineProperty(this, \"_showSubMenu\", false);\n    header_defineProperty(this, \"_$activeSubmenuButton\", null);\n    header_defineProperty(this, \"_$activeSubmenu\", null);\n    setTimeout(() => {\n      this.init();\n      this.sizeContainer();\n      this.attachEvents();\n      this.loaded();\n    });\n  }\n  get showSubMenu() {\n    return this._showSubMenu;\n  }\n  set showSubMenu(shouldShow) {\n    if (shouldShow) {\n      this.$topList.classList.add('showing-submenu');\n    } else {\n      this.$topList.classList.remove('showing-submenu');\n    }\n    this._showSubMenu = shouldShow;\n  }\n  get $activeSubmenuButton() {\n    return this._$activeSubmenuButton;\n  }\n  set $activeSubmenuButton(newButton) {\n    if (this.$activeSubmenuButton) {\n      this.$activeSubmenuButton.classList.remove('open');\n      this.$activeSubmenuButton.parentElement.classList.remove('submenu-open');\n      this.$activeSubmenuButton.setAttribute('aria-expanded', 'false');\n    }\n    if (newButton) {\n      newButton.classList.add('open');\n      newButton.parentElement.classList.add('submenu-open');\n      newButton.setAttribute('aria-expanded', 'true');\n    }\n    this._$activeSubmenuButton = newButton;\n  }\n  get $activeSubMenu() {\n    return this._$activeSubmenu;\n  }\n  set $activeSubMenu(newSubmenu) {\n    if (this.$activeSubMenu) {\n      this.$activeSubMenu.classList.remove('active');\n      makeUnaccessible(this.$activeSubMenu);\n    }\n    if (newSubmenu) {\n      newSubmenu.classList.add('active');\n      makeAccessible(newSubmenu);\n    }\n    this._$activeSubmenu = newSubmenu;\n  }\n  init() {\n    this.$openMegaMenuButton = this.find('[js-menu-button]');\n    this.$closeMegaMenuButton = this.find('[js-close-menu-button]');\n    this.$subMenuButtons = this.findAll('[js-sub-menu-button]');\n    this.$submenuBackButtons = this.findAll('[js-back]');\n    this.$topList = this.find('[js-top-list]');\n    this.$megaMenu = this.find('[js-mega-menu]');\n    this.$searchToggle = this.find('[data-js-open-search]');\n    this.$searchMenu = this.find('[data-js-search-menu]');\n    this.$closeSearchMenu = this.find('[data-js-close-search-menu]');\n    this.$searchForm = this.find('[data-js-search-form]');\n    this.$searchRadioOptions = this.find('input[name=\"search-type\"]');\n    this.$searchInput = this.find('[data-js-search-input]');\n    this.$menuContainer = this.find('.header__mega-menu__container');\n    this.$subMenus = this.findAll('[js-submenu]');\n    this.searchTerm = 's';\n  }\n  attachEvents() {\n    window.addEventListener('resize', this.sizeContainer.bind(this));\n    this.$openMegaMenuButton.addEventListener('click', this.openMegaMenu.bind(this));\n    this.$closeMegaMenuButton.addEventListener('click', this.closeMegaMenu.bind(this));\n    each(this.$subMenuButtons, button => {\n      button.addEventListener('click', this.openSubMenu.bind(this));\n    });\n    each(this.$submenuBackButtons, backButton => {\n      backButton.addEventListener('click', this.closeSubmenu.bind(this));\n    });\n    each(this.$searchRadioOptions, radio => {\n      radio.addEventListener('change', this.searchTypeChange.bind(this));\n    });\n    this.$searchToggle.addEventListener('click', this.toggleSearchMenu.bind(this));\n    this.$closeSearchMenu.addEventListener('click', this.toggleSearchMenu.bind(this));\n    // this.$searchForm.addEventListener('submit', this.hijackSearchSubmit.bind(this));\n  }\n  searchTypeChange(e) {\n    console.log('search change', e);\n    const value = e.target.value;\n    const hiddenInputs = this.$searchForm.querySelectorAll('input[type=\"hidden\"]');\n    each(hiddenInputs, input => {\n      input.remove();\n    });\n    if (value === 'site') {\n      const hiddenInput = '<input type=\"hidden\" value=\"google\" name=\"search-choice\" />';\n      this.$searchForm.insertAdjacentHTML('beforeend', hiddenInput);\n      this.$searchForm.action = UMW_CB_Search_Vars.search_root;\n      this.$searchInput.setAttribute('name', 's');\n    } else {\n      const hiddenInput = '<input type=\"hidden\" value=\"employee\" name=\"post_types\" />';\n      this.$searchForm.insertAdjacentHTML('beforeend', hiddenInput);\n      this.$searchForm.action = UMW_CB_Search_Vars.directory_root;\n      this.$searchInput.setAttribute('name', '_sf_s');\n    }\n  }\n  hijackSearchSubmit(e) {\n    e.preventDefault();\n  }\n  toggleSearchMenu(e) {\n    // leave room for the menu button. Subtract its width from the original menu width\n\n    this.$searchMenu.style.width = `calc(100% - ${this.$openMegaMenuButton.offsetWidth}px)`;\n    this.$searchMenu.classList.toggle('open');\n    if (this.$searchMenu.classList.contains('open')) {\n      this.$searchToggle.setAttribute('aria-expanded', 'true');\n    } else {\n      this.$searchToggle.setAttribute('aria-expanded', 'false');\n    }\n  }\n  sizeContainer() {\n    let topHeight = 0;\n    each(this.$subMenus, submenu => {\n      this.$megaMenu.classList.add('offscreen');\n      submenu.classList.add('offscreen');\n      if (submenu.offsetHeight > topHeight) {\n        topHeight = submenu.offsetHeight;\n        this.$menuContainer.style.minHeight = topHeight + 20 + 'px';\n      }\n      submenu.classList.remove('offscreen');\n      this.$megaMenu.classList.remove('offscreen');\n    });\n  }\n  openMegaMenu() {\n    makeAccessible(this.$closeMegaMenuButton);\n    makeUnaccessible(this.$openMegaMenuButton);\n    makeAccessible(this.$megaMenu);\n    this.$openMegaMenuButton.classList.remove('open');\n    this.$closeMegaMenuButton.classList.add('open');\n    this.$domElement.classList.add('mega-menu-open');\n    body.lock();\n    setTimeout(() => {\n      this.$megaMenu.classList.add('open');\n    });\n  }\n  closeMegaMenu() {\n    body.unlock();\n    makeAccessible(this.$openMegaMenuButton);\n    makeUnaccessible(this.$closeMegaMenuButton);\n    makeUnaccessible(this.$megaMenu);\n    this.$openMegaMenuButton.classList.add('open');\n    this.$closeMegaMenuButton.classList.remove('open');\n    this.$domElement.classList.remove('mega-menu-open');\n    this.$megaMenu.classList.remove('open');\n  }\n  openSubMenu(e) {\n    if (e.currentTarget.classList.contains('open')) {\n      this.closeSubmenu();\n      return;\n    }\n    this.showSubMenu = true;\n    this.$activeSubmenuButton = e.currentTarget;\n    const $subMenuEl = e.currentTarget.nextElementSibling;\n    this.$activeSubMenu = $subMenuEl;\n  }\n  closeSubmenu() {\n    this.$activeSubMenu = null;\n    this.$activeSubmenuButton = null;\n    this.showSubMenu = false;\n  }\n}\n/* harmony default export */ const header = (Header);\n;// CONCATENATED MODULE: ./index-header.js\n\n\n// Immediately upon DOMContentLoaded.\nwindow.addEventListener('DOMContentLoaded', () => {\n  new header(document.querySelector('.umw-header'));\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQ0E7QUFDQTtBQUVBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUlBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FDM0RBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUNwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBT0E7QUFDQTtBQUFBO0FBUEE7QUFFQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUM5TUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9qcy9saWIvZG9tLWNvbXBvbmVudC5qcz8xY2JjIiwid2VicGFjazovLy8uL2pzL2xpYi9hY2Nlc3NpYmlsaXR5LmpzPzQyZTgiLCJ3ZWJwYWNrOi8vLy4vanMvc2VydmljZXMvYm9keS5qcz83YWMxIiwid2VicGFjazovLy8uL2pzL2xpYi9lYWNoLmpzP2ZlOWYiLCJ3ZWJwYWNrOi8vLy4vaGVhZGVyL2hlYWRlci5qcz81YTFkIiwid2VicGFjazovLy8uL2luZGV4LWhlYWRlci5qcz8wMTk1Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIERvbUNvbXBvbmVudCB7XHJcblx0JGRvbUVsZW1lbnQ7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCRkb21FbGVtZW50KSB7XHJcblx0XHRpZiAoISRkb21FbGVtZW50KSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLiRkb21FbGVtZW50ID0gJGRvbUVsZW1lbnQ7XHJcblx0XHR0aGlzLiRkb21FbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2pzJyk7XHJcblx0XHRbdGhpcy5iYXNlQ1NTQ2xhc3NdID0gdGhpcy4kZG9tRWxlbWVudC5jbGFzc0xpc3Q7XHJcblx0fVxyXG5cclxuXHRsb2FkZWQoKSB7XHJcblx0XHR0aGlzLiRkb21FbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2pzLWxvYWRlZCcpO1xyXG5cdH1cclxuXHJcblx0ZmluZChzZWxlY3Rvciwga2VlcEFzQXJyYXkgPSBmYWxzZSkge1xyXG5cdFx0Y29uc3QgZm91bmQgPSB0aGlzLmZpbmRBbGwoc2VsZWN0b3IpO1xyXG5cdFx0aWYgKCFmb3VuZCkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0XHRpZiAoa2VlcEFzQXJyYXkgPT09IGZhbHNlKSB7XHJcblx0XHRcdHJldHVybiBmb3VuZC5sZW5ndGggPiAxID8gZm91bmQgOiBmb3VuZFswXTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBmb3VuZDtcclxuXHR9XHJcblxyXG5cdGZpbmRBbGwoc2VsZWN0b3IpIHtcclxuXHRcdGNvbnN0IGZvdW5kID0gdGhpcy4kZG9tRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcclxuXHRcdGlmIChmb3VuZCAmJiBmb3VuZC5sZW5ndGgpIHtcclxuXHRcdFx0cmV0dXJuIEFycmF5LmZyb20oZm91bmQpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGZvdW5kO1xyXG5cdH1cclxufSIsImV4cG9ydCBmdW5jdGlvbiBtYWtlVW5hY2Nlc3NpYmxlKGVsKSB7XHJcblx0ZWwuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XHJcblxyXG5cdGNvbnN0ICRhcmlhSGlkZGVuRWxlbWVudHMgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKFxyXG5cdFx0J1thcmlhLWhpZGRlbl0nXHJcblx0KTtcclxuXHJcblx0Y29uc3QgJHRhYmluZGV4RWxlbWVudHMgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKFxyXG5cdFx0J1t0YWJpbmRleF0nXHJcblx0KTtcclxuXHJcblx0aWYoJHRhYmluZGV4RWxlbWVudHMpIHtcclxuXHRcdEFycmF5LmZyb20oJHRhYmluZGV4RWxlbWVudHMpLm1hcCgoZWwpID0+IGVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAtMSkpO1xyXG5cdH1cclxuXHJcblx0aWYoJGFyaWFIaWRkZW5FbGVtZW50cykge1xyXG5cdFx0QXJyYXkuZnJvbSgkYXJpYUhpZGRlbkVsZW1lbnRzKS5tYXAoKGVsKSA9PiBlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKSk7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFrZUFjY2Vzc2libGUoZWwpIHtcclxuXHRlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJyk7XHJcblxyXG5cdGNvbnN0ICRhcmlhSGlkZGVuRWxlbWVudHMgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKFxyXG5cdFx0J1thcmlhLWhpZGRlbl0nXHJcblx0KTtcclxuXHJcblx0Y29uc3QgJHRhYmluZGV4RWxlbWVudHMgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKFxyXG5cdFx0J1t0YWJpbmRleF0nXHJcblx0KTtcclxuXHJcblx0aWYoJHRhYmluZGV4RWxlbWVudHMpIHtcclxuXHRcdEFycmF5LmZyb20oJHRhYmluZGV4RWxlbWVudHMpLm1hcCgoZWwpID0+IGVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnJykpO1xyXG5cdH1cclxuXHJcblx0aWYoJGFyaWFIaWRkZW5FbGVtZW50cykge1xyXG5cdFx0QXJyYXkuZnJvbSgkYXJpYUhpZGRlbkVsZW1lbnRzKS5tYXAoKGVsKSA9PiBlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJykpO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhpZGVBbGxDaGlsZHJlbkZyb21TY3JlZW5yZWFkZXIoZWwpIHtcclxuXHRjb25zdCAkbGlua3MgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCdhJyk7XHJcblx0Y29uc3QgJGlucHV0cyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0Jyk7XHJcblx0Y29uc3QgJHNlbGVjdHMgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCdzZWxlY3QnKTtcclxuXHRjb25zdCAkYnV0dG9ucyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpO1xyXG5cclxuXHRpZigkbGlua3MpIHtcclxuXHRcdEFycmF5LmZyb20oJGxpbmtzKS5tYXAoKGVsKSA9PiBlbC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgLTEpKTtcclxuXHR9XHJcblx0aWYoJHNlbGVjdHMpIHtcclxuXHRcdEFycmF5LmZyb20oJHNlbGVjdHMpLm1hcCgoZWwpID0+IGVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAtMSkpO1xyXG5cdH1cclxuXHRpZigkYnV0dG9ucykge1xyXG5cdFx0QXJyYXkuZnJvbSgkYnV0dG9ucykubWFwKChlbCkgPT4gZWwuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsIC0xKSk7XHJcblx0fVxyXG5cdGlmKCRsaW5rcykge1xyXG5cdFx0QXJyYXkuZnJvbSgkaW5wdXRzKS5tYXAoKGVsKSA9PiBlbC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgLTEpKTtcclxuXHR9XHJcblxyXG59XHJcbiIsImNvbnN0IGJvZHlTZXJ2aWNlID0ge1xyXG5cdGxvY2s6IGZ1bmN0aW9uKCkge1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdsb2NrJyk7XHJcblx0fSxcclxuXHJcblx0dW5sb2NrOiBmdW5jdGlvbigpIHtcclxuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbG9jaycpO1xyXG5cdH0sXHJcblxyXG5cdHNldENsYXNzOiBmdW5jdGlvbihjbGFzc05hbWUpIHtcclxuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xyXG5cdH0sXHJcblx0dW5zZXRDbGFzczogZnVuY3Rpb24oY2xhc3NOYW1lKSB7XHJcblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcclxuXHR9LFxyXG5cdGhhc0NsYXNzOiBmdW5jdGlvbihjbGFzc05hbWUpIHtcclxuXHRcdHJldHVybiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgYm9keVNlcnZpY2U7IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZWFjaChub2RlTGlzdCwgY2IpIHtcclxuXHRpZiAoIW5vZGVMaXN0IHx8ICFub2RlTGlzdC5sZW5ndGgpIHtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBub2RlTGlzdC5sZW5ndGg7IGkrKykge1xyXG5cdFx0Y2Iobm9kZUxpc3RbaV0sIGkpO1xyXG5cdH1cclxufSIsImltcG9ydCBEb21Db21wb25lbnQgZnJvbSBcIi4uL2pzL2xpYi9kb20tY29tcG9uZW50XCI7XHJcbmltcG9ydCB7bWFrZUFjY2Vzc2libGUsIG1ha2VVbmFjY2Vzc2libGV9IGZyb20gJy4uL2pzL2xpYi9hY2Nlc3NpYmlsaXR5JztcclxuaW1wb3J0IGJvZHkgZnJvbSAnLi4vanMvc2VydmljZXMvYm9keSc7XHJcbmltcG9ydCBlYWNoIGZyb20gJy4uL2pzL2xpYi9lYWNoJztcclxuXHJcbmNsYXNzIEhlYWRlciBleHRlbmRzIERvbUNvbXBvbmVudCB7XHJcbiAgICBfc2hvd1N1Yk1lbnUgPSBmYWxzZTtcclxuXHJcbiAgICBfJGFjdGl2ZVN1Ym1lbnVCdXR0b24gPSBudWxsO1xyXG5cclxuICAgIF8kYWN0aXZlU3VibWVudSA9IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoJGRvbUVsZW1lbnQpIHtcclxuICAgICAgICBzdXBlcigkZG9tRWxlbWVudCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgICAgICAgdGhpcy5zaXplQ29udGFpbmVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXR0YWNoRXZlbnRzKCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGVkKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNob3dTdWJNZW51KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93U3ViTWVudTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgc2hvd1N1Yk1lbnUoc2hvdWxkU2hvdykge1xyXG4gICAgICAgIGlmIChzaG91bGRTaG93KSB7XHJcbiAgICAgICAgICAgIHRoaXMuJHRvcExpc3QuY2xhc3NMaXN0LmFkZCgnc2hvd2luZy1zdWJtZW51Jyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy4kdG9wTGlzdC5jbGFzc0xpc3QucmVtb3ZlKCdzaG93aW5nLXN1Ym1lbnUnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fc2hvd1N1Yk1lbnUgPSBzaG91bGRTaG93O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCAkYWN0aXZlU3VibWVudUJ1dHRvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fJGFjdGl2ZVN1Ym1lbnVCdXR0b247XHJcbiAgICB9XHJcblxyXG4gICAgc2V0ICRhY3RpdmVTdWJtZW51QnV0dG9uKG5ld0J1dHRvbikge1xyXG4gICAgICAgIGlmICh0aGlzLiRhY3RpdmVTdWJtZW51QnV0dG9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuJGFjdGl2ZVN1Ym1lbnVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpO1xyXG4gICAgICAgICAgICB0aGlzLiRhY3RpdmVTdWJtZW51QnV0dG9uLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc3VibWVudS1vcGVuJyk7XHJcbiAgICAgICAgICAgIHRoaXMuJGFjdGl2ZVN1Ym1lbnVCdXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZXdCdXR0b24pIHtcclxuICAgICAgICAgICAgbmV3QnV0dG9uLmNsYXNzTGlzdC5hZGQoJ29wZW4nKTtcclxuICAgICAgICAgICAgbmV3QnV0dG9uLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnc3VibWVudS1vcGVuJyk7XHJcbiAgICAgICAgICAgIG5ld0J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl8kYWN0aXZlU3VibWVudUJ1dHRvbiA9IG5ld0J1dHRvbjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgJGFjdGl2ZVN1Yk1lbnUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuXyRhY3RpdmVTdWJtZW51O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCAkYWN0aXZlU3ViTWVudShuZXdTdWJtZW51KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuJGFjdGl2ZVN1Yk1lbnUpIHtcclxuICAgICAgICAgICAgdGhpcy4kYWN0aXZlU3ViTWVudS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgbWFrZVVuYWNjZXNzaWJsZSh0aGlzLiRhY3RpdmVTdWJNZW51KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5ld1N1Ym1lbnUpIHtcclxuICAgICAgICAgICAgbmV3U3VibWVudS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgbWFrZUFjY2Vzc2libGUobmV3U3VibWVudSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuXyRhY3RpdmVTdWJtZW51ID0gbmV3U3VibWVudTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KCkge1xyXG4gICAgICAgIHRoaXMuJG9wZW5NZWdhTWVudUJ1dHRvbiA9IHRoaXMuZmluZCgnW2pzLW1lbnUtYnV0dG9uXScpO1xyXG4gICAgICAgIHRoaXMuJGNsb3NlTWVnYU1lbnVCdXR0b24gPSB0aGlzLmZpbmQoJ1tqcy1jbG9zZS1tZW51LWJ1dHRvbl0nKTtcclxuICAgICAgICB0aGlzLiRzdWJNZW51QnV0dG9ucyA9IHRoaXMuZmluZEFsbCgnW2pzLXN1Yi1tZW51LWJ1dHRvbl0nKTtcclxuICAgICAgICB0aGlzLiRzdWJtZW51QmFja0J1dHRvbnMgPSB0aGlzLmZpbmRBbGwoJ1tqcy1iYWNrXScpO1xyXG4gICAgICAgIHRoaXMuJHRvcExpc3QgPSB0aGlzLmZpbmQoJ1tqcy10b3AtbGlzdF0nKTtcclxuICAgICAgICB0aGlzLiRtZWdhTWVudSA9IHRoaXMuZmluZCgnW2pzLW1lZ2EtbWVudV0nKTtcclxuICAgICAgICB0aGlzLiRzZWFyY2hUb2dnbGUgPSB0aGlzLmZpbmQoJ1tkYXRhLWpzLW9wZW4tc2VhcmNoXScpO1xyXG4gICAgICAgIHRoaXMuJHNlYXJjaE1lbnUgPSB0aGlzLmZpbmQoJ1tkYXRhLWpzLXNlYXJjaC1tZW51XScpO1xyXG4gICAgICAgIHRoaXMuJGNsb3NlU2VhcmNoTWVudSA9IHRoaXMuZmluZCgnW2RhdGEtanMtY2xvc2Utc2VhcmNoLW1lbnVdJyk7XHJcbiAgICAgICAgdGhpcy4kc2VhcmNoRm9ybSA9IHRoaXMuZmluZCgnW2RhdGEtanMtc2VhcmNoLWZvcm1dJyk7XHJcbiAgICAgICAgdGhpcy4kc2VhcmNoUmFkaW9PcHRpb25zID0gdGhpcy5maW5kKCdpbnB1dFtuYW1lPVwic2VhcmNoLXR5cGVcIl0nKTtcclxuICAgICAgICB0aGlzLiRzZWFyY2hJbnB1dCA9IHRoaXMuZmluZCgnW2RhdGEtanMtc2VhcmNoLWlucHV0XScpO1xyXG4gICAgICAgIHRoaXMuJG1lbnVDb250YWluZXIgPSB0aGlzLmZpbmQoJy5oZWFkZXJfX21lZ2EtbWVudV9fY29udGFpbmVyJyk7XHJcbiAgICAgICAgdGhpcy4kc3ViTWVudXMgPSB0aGlzLmZpbmRBbGwoJ1tqcy1zdWJtZW51XScpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSA9ICdzJztcclxuICAgIH1cclxuXHJcbiAgICBhdHRhY2hFdmVudHMoKSB7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc2l6ZUNvbnRhaW5lci5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgICAgdGhpcy4kb3Blbk1lZ2FNZW51QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vcGVuTWVnYU1lbnUuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy4kY2xvc2VNZWdhTWVudUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xvc2VNZWdhTWVudS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgICAgZWFjaCh0aGlzLiRzdWJNZW51QnV0dG9ucywgKGJ1dHRvbikgPT4ge1xyXG4gICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9wZW5TdWJNZW51LmJpbmQodGhpcykpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBlYWNoKHRoaXMuJHN1Ym1lbnVCYWNrQnV0dG9ucywgKGJhY2tCdXR0b24pID0+IHtcclxuICAgICAgICAgICAgYmFja0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xvc2VTdWJtZW51LmJpbmQodGhpcykpO1xyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIGVhY2godGhpcy4kc2VhcmNoUmFkaW9PcHRpb25zLCAocmFkaW8pID0+IHtcclxuICAgICAgICAgICAgcmFkaW8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5zZWFyY2hUeXBlQ2hhbmdlLmJpbmQodGhpcykpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLiRzZWFyY2hUb2dnbGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRvZ2dsZVNlYXJjaE1lbnUuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy4kY2xvc2VTZWFyY2hNZW51LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy50b2dnbGVTZWFyY2hNZW51LmJpbmQodGhpcykpO1xyXG4gICAgICAgIC8vIHRoaXMuJHNlYXJjaEZvcm0uYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgdGhpcy5oaWphY2tTZWFyY2hTdWJtaXQuYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoVHlwZUNoYW5nZShlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3NlYXJjaCBjaGFuZ2UnLCBlKTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IGhpZGRlbklucHV0cyA9IHRoaXMuJHNlYXJjaEZvcm0ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT1cImhpZGRlblwiXScpO1xyXG4gICAgICAgIGVhY2goaGlkZGVuSW5wdXRzLCAoaW5wdXQpID0+IHtcclxuICAgICAgICAgICAgaW5wdXQucmVtb3ZlKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJ3NpdGUnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhpZGRlbklucHV0ID0gJzxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJnb29nbGVcIiBuYW1lPVwic2VhcmNoLWNob2ljZVwiIC8+J1xyXG4gICAgICAgICAgICB0aGlzLiRzZWFyY2hGb3JtLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywgaGlkZGVuSW5wdXQpO1xyXG4gICAgICAgICAgICB0aGlzLiRzZWFyY2hGb3JtLmFjdGlvbiA9IFVNV19DQl9TZWFyY2hfVmFycy5zZWFyY2hfcm9vdDtcclxuICAgICAgICAgICAgdGhpcy4kc2VhcmNoSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3MnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBoaWRkZW5JbnB1dCA9ICc8aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwiZW1wbG95ZWVcIiBuYW1lPVwicG9zdF90eXBlc1wiIC8+J1xyXG4gICAgICAgICAgICB0aGlzLiRzZWFyY2hGb3JtLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywgaGlkZGVuSW5wdXQpO1xyXG4gICAgICAgICAgICB0aGlzLiRzZWFyY2hGb3JtLmFjdGlvbiA9IFVNV19DQl9TZWFyY2hfVmFycy5kaXJlY3Rvcnlfcm9vdDtcclxuICAgICAgICAgICAgdGhpcy4kc2VhcmNoSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ19zZl9zJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhpamFja1NlYXJjaFN1Ym1pdChlKSB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVNlYXJjaE1lbnUoZSkge1xyXG4gICAgICAgIC8vIGxlYXZlIHJvb20gZm9yIHRoZSBtZW51IGJ1dHRvbi4gU3VidHJhY3QgaXRzIHdpZHRoIGZyb20gdGhlIG9yaWdpbmFsIG1lbnUgd2lkdGhcclxuXHJcbiAgICAgICAgdGhpcy4kc2VhcmNoTWVudS5zdHlsZS53aWR0aCA9IGBjYWxjKDEwMCUgLSAke3RoaXMuJG9wZW5NZWdhTWVudUJ1dHRvbi5vZmZzZXRXaWR0aH1weClgO1xyXG4gICAgICAgIHRoaXMuJHNlYXJjaE1lbnUuY2xhc3NMaXN0LnRvZ2dsZSgnb3BlbicpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy4kc2VhcmNoTWVudS5jbGFzc0xpc3QuY29udGFpbnMoJ29wZW4nKSkge1xyXG4gICAgICAgICAgICB0aGlzLiRzZWFyY2hUb2dnbGUuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLiRzZWFyY2hUb2dnbGUuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNpemVDb250YWluZXIoKSB7XHJcbiAgICAgICAgbGV0IHRvcEhlaWdodCA9IDA7XHJcblxyXG4gICAgICAgIGVhY2godGhpcy4kc3ViTWVudXMsIChzdWJtZW51KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lZ2FNZW51LmNsYXNzTGlzdC5hZGQoJ29mZnNjcmVlbicpO1xyXG4gICAgICAgICAgICBzdWJtZW51LmNsYXNzTGlzdC5hZGQoJ29mZnNjcmVlbicpO1xyXG4gICAgICAgICAgICBpZiAoc3VibWVudS5vZmZzZXRIZWlnaHQgPiB0b3BIZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHRvcEhlaWdodCA9IHN1Ym1lbnUub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbWVudUNvbnRhaW5lci5zdHlsZS5taW5IZWlnaHQgPSAodG9wSGVpZ2h0ICsgMjApICsgJ3B4JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJtZW51LmNsYXNzTGlzdC5yZW1vdmUoJ29mZnNjcmVlbicpO1xyXG4gICAgICAgICAgICB0aGlzLiRtZWdhTWVudS5jbGFzc0xpc3QucmVtb3ZlKCdvZmZzY3JlZW4nKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTWVnYU1lbnUoKSB7XHJcbiAgICAgICAgbWFrZUFjY2Vzc2libGUodGhpcy4kY2xvc2VNZWdhTWVudUJ1dHRvbik7XHJcbiAgICAgICAgbWFrZVVuYWNjZXNzaWJsZSh0aGlzLiRvcGVuTWVnYU1lbnVCdXR0b24pO1xyXG4gICAgICAgIG1ha2VBY2Nlc3NpYmxlKHRoaXMuJG1lZ2FNZW51KTtcclxuICAgICAgICB0aGlzLiRvcGVuTWVnYU1lbnVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpO1xyXG4gICAgICAgIHRoaXMuJGNsb3NlTWVnYU1lbnVCdXR0b24uY2xhc3NMaXN0LmFkZCgnb3BlbicpO1xyXG4gICAgICAgIHRoaXMuJGRvbUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbWVnYS1tZW51LW9wZW4nKTtcclxuICAgICAgICBib2R5LmxvY2soKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy4kbWVnYU1lbnUuY2xhc3NMaXN0LmFkZCgnb3BlbicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlTWVnYU1lbnUoKSB7XHJcbiAgICAgICAgYm9keS51bmxvY2soKTtcclxuICAgICAgICBtYWtlQWNjZXNzaWJsZSh0aGlzLiRvcGVuTWVnYU1lbnVCdXR0b24pO1xyXG4gICAgICAgIG1ha2VVbmFjY2Vzc2libGUodGhpcy4kY2xvc2VNZWdhTWVudUJ1dHRvbik7XHJcbiAgICAgICAgbWFrZVVuYWNjZXNzaWJsZSh0aGlzLiRtZWdhTWVudSk7XHJcbiAgICAgICAgdGhpcy4kb3Blbk1lZ2FNZW51QnV0dG9uLmNsYXNzTGlzdC5hZGQoJ29wZW4nKTtcclxuICAgICAgICB0aGlzLiRjbG9zZU1lZ2FNZW51QnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ29wZW4nKTtcclxuICAgICAgICB0aGlzLiRkb21FbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ21lZ2EtbWVudS1vcGVuJyk7XHJcbiAgICAgICAgdGhpcy4kbWVnYU1lbnUuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvcGVuU3ViTWVudShlKSB7XHJcbiAgICAgICAgaWYgKGUuY3VycmVudFRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ29wZW4nKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlU3VibWVudSgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2hvd1N1Yk1lbnUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuJGFjdGl2ZVN1Ym1lbnVCdXR0b24gPSBlLmN1cnJlbnRUYXJnZXQ7XHJcbiAgICAgICAgY29uc3QgJHN1Yk1lbnVFbCA9IGUuY3VycmVudFRhcmdldC5uZXh0RWxlbWVudFNpYmxpbmc7XHJcbiAgICAgICAgdGhpcy4kYWN0aXZlU3ViTWVudSA9ICRzdWJNZW51RWw7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VTdWJtZW51KCkge1xyXG4gICAgICAgIHRoaXMuJGFjdGl2ZVN1Yk1lbnUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuJGFjdGl2ZVN1Ym1lbnVCdXR0b24gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2hvd1N1Yk1lbnUgPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgSGVhZGVyO1xyXG4iLCJcclxuaW1wb3J0IEhlYWRlciBmcm9tICcuL2hlYWRlci9oZWFkZXInO1xyXG5cclxuLy8gSW1tZWRpYXRlbHkgdXBvbiBET01Db250ZW50TG9hZGVkLlxyXG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsICgpID0+IHtcclxuXHRuZXcgSGVhZGVyKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy51bXctaGVhZGVyJykpO1xyXG59KTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///92\n")}},__webpack_exports__={};__webpack_modules__[92]()})();