{"version":3,"sources":["webpack:///app.js","webpack:///webpack/bootstrap c25e3531cdae712aa65a","webpack:///external \"jQuery\"","webpack:///./node_modules/bootstrap/js/dist/util.js","webpack:///./src/js/app.js","webpack:///./node_modules/bootstrap/js/dist/button.js","webpack:///./node_modules/bootstrap/js/dist/collapse.js","webpack:///./node_modules/bootstrap/js/dist/dropdown.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/slick-carousel/slick/slick.min.js","webpack:///./node_modules/tinynav/dist/tinynav.js","webpack:///./src/js/scripts.js","webpack:///./src/js/mega-menu.js","webpack:///./src/js/facetwp.js","webpack:///./src/js/slider-controller.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","jQuery","global","factory","this","$","toType","obj","toString","match","toLowerCase","getSpecialTransitionEndEvent","bindType","TRANSITION_END","delegateType","handle","event","$__default","target","is","handleObj","handler","apply","arguments","transitionEndEmulator","duration","_this","called","one","Util","setTimeout","triggerTransitionEnd","e","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","special","_defineProperties","props","length","descriptor","writable","key","_createClass","Constructor","protoProps","staticProps","NAME","JQUERY_NO_CONFLICT","Button","_element","shouldAvoidTriggerChange","_proto","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","type","checked","classList","contains","activeElement","removeClass","focus","hasAttribute","setAttribute","toggleClass","dispose","removeData","_jQueryInterface","avoidTriggerChange","each","$element","data","on","button","initialButton","hasClass","preventDefault","inputBtn","tagName","window","buttons","slice","querySelectorAll","len","add","remove","_i","_len","_button","noConflict","_interopDefaultLegacy","_extends","assign","source","Util__default","DATA_KEY","Default","parent","DefaultType","SELECTOR_DATA_TOGGLE","Collapse","_isTransitioning","_config","_getConfig","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","Event","isDefaultPrevented","dimension","_getDimension","addClass","style","attr","setTransitioning","complete","CLASS_NAME_COLLAPSE","capitalizedDimension","scrollSize","_this2","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","_this3","children","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","Popper","Popper__default","EVENT_KEY","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","disabled","isActive","_clearMenus","usePopper","relatedTarget","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","off","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","which","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","index","indexOf","EVENT_CLICK_DATA_API","__webpack_exports__","microtaskDebounce","Promise","resolve","then","taskDebounce","scheduled","timeoutDuration","isFunction","functionToCheck","getType","getStyleComputedProperty","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","isIE","isIE11","isIE10","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","parseInt","getWindowSizes","height","width","getClientRect","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","findIndex","prop","cur","runModifiers","ends","forEach","console","warn","isDestroyed","instance","arrowStyles","attributes","flipped","options","positionFixed","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","callback","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","removeEventListener","cancelAnimationFrame","isNumeric","isNaN","isFinite","setStyles","unit","setAttributes","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","floor","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","isFirefox","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","clockwise","counter","validPlacements","concat","reverse","placementOpposite","flipOrder","behavior","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","str","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","bound","inner","subtractLength","isBrowser","longerTimeoutBrowsers","navigator","userAgent","supportsMicroTasks","debounce","MSInputMethodContext","documentMode","classCallCheck","createClass","defineProperties","placements","onLoad","Defaults","requestAnimationFrame","bind","Utils","PopperUtils","g","Function","eval","Slick","t","defaults","accessibility","adaptiveHeight","appendArrows","appendDots","arrows","asNavFor","prevArrow","nextArrow","autoplay","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","text","dots","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","focusOnChange","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","responsive","rows","rtl","slide","slidesPerRow","slidesToShow","slidesToScroll","speed","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","verticalSwiping","waitForAnimate","zIndex","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","direction","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","scrolling","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","swiping","$list","touchObject","transformsEnabled","unslicked","extend","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","hidden","paused","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","originalSettings","mozHidden","webkitHidden","autoPlay","proxy","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","instanceUid","htmlExpr","registerBreakpoints","init","activateADA","tabindex","addSlide","slickAdd","unload","appendTo","insertBefore","eq","insertAfter","prependTo","detach","append","reinit","animateHeight","outerHeight","animate","animateSlide","animStart","ceil","applyTransition","disableTransition","getNavTarget","slick","slideHandler","setInterval","clearInterval","buildArrows","removeAttr","buildDots","getDotCount","first","buildOut","wrapAll","wrap","setupInfinite","updateDots","setSlideClasses","buildRows","r","createDocumentFragment","createElement","appendChild","empty","checkResponsive","unslick","refresh","message","checkNavigable","getNavigableIndexes","cleanUpEvents","interrupt","visibility","cleanUpSlideEvents","orientationChange","resize","cleanUpRows","stopImmediatePropagation","fadeSlide","opacity","fadeSlideOut","filterSlides","slickFilter","focusHandler","getCurrent","slickCurrentSlide","getLeft","offsetLeft","outerWidth","getOption","slickGetOption","getSlick","getSlideCount","abs","goTo","slickGoTo","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initADA","role","initArrowEvents","initDotEvents","initSlideEvents","action","initUI","keyCode","onload","onerror","src","progressiveLazyLoad","next","slickNext","pause","slickPause","play","slickPlay","postSlide","prev","slickPrev","breakpoint","splice","settings","clearTimeout","windowDelay","removeSlide","slickRemove","setCSS","setDimensions","setFade","setHeight","setOption","slickSetOption","WebkitTransition","MozTransition","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","clone","parents","swipeDirection","startX","curX","startY","curY","atan2","PI","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","originalEvent","touches","swipeStart","swipeMove","pageX","clientX","pageY","clientY","sqrt","pow","unfilterSlides","slickUnfilter","tinyNav","$nav","namespace_i","l_namespace_i","$select","namespace","header","j","indent","active","addHashHistory","change","location","href","val","after","label","before","url","hover","stop","delay","fadeIn","fadeOut","$header","$menuParent","$megaMenuParent","FWP","num_choices","$parent","loaded","windowResize","mq","matches","$eventsSlider","$heroSlider","$venueSlider","$venueTypesSlider","$venueTypesSliderNav","matchMedia","addListener"],"mappings":"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","file":"app.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = jQuery;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n  * Bootstrap util.js v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n   true ? module.exports = factory(__webpack_require__(0)) :\n  typeof define === 'function' && define.amd ? define(['jquery'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));\n}(this, (function ($) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    if (obj === null || typeof obj === 'undefined') {\n      return \"\" + obj;\n    }\n\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($__default['default'](event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined;\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $__default['default'](this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n    $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (_) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $__default['default'](element).css('transition-duration');\n      var transitionDelay = $__default['default'](element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $__default['default'](element).trigger(TRANSITION_END);\n    },\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    },\n    jQueryDetection: function jQueryDetection() {\n      if (typeof $__default['default'] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n      }\n\n      var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n      var minMajor = 1;\n      var ltMajor = 2;\n      var minMinor = 9;\n      var minPatch = 1;\n      var maxMajor = 4;\n\n      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n        throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n      }\n    }\n  };\n  Util.jQueryDetection();\n  setTransitionEndSupport();\n\n  return Util;\n\n})));\n//# sourceMappingURL=util.js.map\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(3);\n\n__webpack_require__(4);\n\n__webpack_require__(5);\n\n__webpack_require__(1);\n\n__webpack_require__(8);\n\n__webpack_require__(9);\n\n__webpack_require__(10);\n\n__webpack_require__(11);\n\n__webpack_require__(12);\n\n__webpack_require__(13);\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n  * Bootstrap button.js v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n   true ? module.exports = factory(__webpack_require__(0)) :\n  typeof define === 'function' && define.amd ? define(['jquery'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.jQuery));\n}(this, (function ($) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'button';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.button';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var CLASS_NAME_ACTIVE = 'active';\n  var CLASS_NAME_BUTTON = 'btn';\n  var CLASS_NAME_FOCUS = 'focus';\n  var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n  var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\n  var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n  var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n  var SELECTOR_ACTIVE = '.active';\n  var SELECTOR_BUTTON = '.btn';\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY + DATA_API_KEY + \" \" + (\"blur\" + EVENT_KEY + DATA_API_KEY);\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY + DATA_API_KEY;\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Button = /*#__PURE__*/function () {\n    function Button(element) {\n      this._element = element;\n      this.shouldAvoidTriggerChange = false;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(SELECTOR_INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n              if (activeElement) {\n                $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n            if (input.type === 'checkbox' || input.type === 'radio') {\n              input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n            }\n\n            if (!this.shouldAvoidTriggerChange) {\n              $__default['default'](input).trigger('change');\n            }\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n        if (addAriaPressed) {\n          this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));\n        }\n\n        if (triggerChangeEvent) {\n          $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n        }\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Button(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = event.target;\n    var initialButton = button;\n\n    if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {\n      button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];\n    }\n\n    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n      event.preventDefault(); // work around Firefox bug #1540995\n    } else {\n      var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n        event.preventDefault(); // work around Firefox bug #1540995\n\n        return;\n      }\n\n      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n        Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');\n      }\n    }\n  }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];\n    $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n    // ensure correct active class is set to match the controls' actual values/states\n    // find all checkboxes/readio buttons inside data-toggle groups\n    var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n    for (var i = 0, len = buttons.length; i < len; i++) {\n      var button = buttons[i];\n      var input = button.querySelector(SELECTOR_INPUT);\n\n      if (input.checked || input.hasAttribute('checked')) {\n        button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    } // find all button toggles\n\n\n    buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n    for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n      var _button = buttons[_i];\n\n      if (_button.getAttribute('aria-pressed') === 'true') {\n        _button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        _button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Button._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Button;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Button._jQueryInterface;\n  };\n\n  return Button;\n\n})));\n//# sourceMappingURL=button.js.map\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n  * Bootstrap collapse.js v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n   true ? module.exports = factory(__webpack_require__(0), __webpack_require__(1)) :\n  typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.jQuery, global.Util));\n}(this, (function ($, Util) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'collapse';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.collapse';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var Default = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  var EVENT_SHOW = \"show\" + EVENT_KEY;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n  var EVENT_HIDE = \"hide\" + EVENT_KEY;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var CLASS_NAME_SHOW = 'show';\n  var CLASS_NAME_COLLAPSE = 'collapse';\n  var CLASS_NAME_COLLAPSING = 'collapsing';\n  var CLASS_NAME_COLLAPSED = 'collapsed';\n  var DIMENSION_WIDTH = 'width';\n  var DIMENSION_HEIGHT = 'height';\n  var SELECTOR_ACTIVES = '.show, .collapsing';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Collapse = /*#__PURE__*/function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util__default['default'].getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(CLASS_NAME_COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_SHOW);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $__default['default'](actives).data(DATA_KEY, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_HIDE);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util__default['default'].reflow(this._element);\n      $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util__default['default'].getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n              $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util__default['default'].typeCheckConfig(NAME, config, DefaultType);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);\n      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util__default['default'].isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $__default['default'](children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW);\n\n      if (triggerArray.length) {\n        $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util__default['default'].getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY);\n\n        var _config = _extends({}, Default, $element.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $__default['default'](this);\n    var selector = Util__default['default'].getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $__default['default'](selectors).each(function () {\n      var $target = $__default['default'](this);\n      var data = $target.data(DATA_KEY);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Collapse._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Collapse;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Collapse._jQueryInterface;\n  };\n\n  return Collapse;\n\n})));\n//# sourceMappingURL=collapse.js.map\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n  * Bootstrap dropdown.js v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n   true ? module.exports = factory(__webpack_require__(0), __webpack_require__(6), __webpack_require__(1)) :\n  typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));\n}(this, (function ($, Popper, Util) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n  var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'dropdown';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.dropdown';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n  var EVENT_HIDE = \"hide\" + EVENT_KEY;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n  var EVENT_SHOW = \"show\" + EVENT_KEY;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n  var EVENT_CLICK = \"click\" + EVENT_KEY;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY + DATA_API_KEY;\n  var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY + DATA_API_KEY;\n  var CLASS_NAME_DISABLED = 'disabled';\n  var CLASS_NAME_SHOW = 'show';\n  var CLASS_NAME_DROPUP = 'dropup';\n  var CLASS_NAME_DROPRIGHT = 'dropright';\n  var CLASS_NAME_DROPLEFT = 'dropleft';\n  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_POSITION_STATIC = 'position-static';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]';\n  var SELECTOR_FORM_CHILD = '.dropdown form';\n  var SELECTOR_MENU = '.dropdown-menu';\n  var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n  var PLACEMENT_TOP = 'top-start';\n  var PLACEMENT_TOPEND = 'top-end';\n  var PLACEMENT_BOTTOM = 'bottom-start';\n  var PLACEMENT_BOTTOMEND = 'bottom-end';\n  var PLACEMENT_RIGHT = 'right-start';\n  var PLACEMENT_LEFT = 'left-start';\n  var Default = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic',\n    popperConfig: null\n  };\n  var DefaultType = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string',\n    popperConfig: '(null|object)'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      this.show(true);\n    };\n\n    _proto.show = function show(usePopper) {\n      if (usePopper === void 0) {\n        usePopper = false;\n      }\n\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $__default['default'].Event(EVENT_SHOW, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Totally disable Popper for Dropdowns in Navbar\n\n\n      if (!this._inNavbar && usePopper) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper__default['default'] === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util__default['default'].isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);\n        }\n\n        this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n        $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_SHOWN, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $__default['default'].Event(EVENT_HIDE, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      $__default['default'](this._element).off(EVENT_KEY);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n      Util__default['default'].typeCheckConfig(NAME, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(SELECTOR_MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $__default['default'](this._element.parentNode);\n      var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n        placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n        placement = PLACEMENT_RIGHT;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n        placement = PLACEMENT_LEFT;\n      } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n        placement = PLACEMENT_BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $__default['default'](this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }; // Disable Popper if we have a static display\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return _extends({}, popperConfig, this._config.popperConfig);\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $__default['default'](this).data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $__default['default'](toggles[i]).data(DATA_KEY);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $__default['default'].Event(EVENT_HIDE, relatedTarget);\n        $__default['default'](parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n\n        if (context._popper) {\n          context._popper.destroy();\n        }\n\n        $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW);\n        $__default['default'](parent).removeClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util__default['default'].getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW);\n\n      if (!isActive && event.which === ESCAPE_KEYCODE) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n        if (event.which === ESCAPE_KEYCODE) {\n          $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');\n        }\n\n        $__default['default'](this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n        return $__default['default'](item).is(':visible');\n      });\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n  }).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Dropdown._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Dropdown;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Dropdown._jQueryInterface;\n  };\n\n  return Dropdown;\n\n})));\n//# sourceMappingURL=dropdown.js.map\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Popper);\n//# sourceMappingURL=popper.js.map\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(7)))\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(i){\"use strict\"; true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (i),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):\"undefined\"!=typeof exports?module.exports=i(require(\"jquery\")):i(jQuery)}(function(i){\"use strict\";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class=\"slick-prev\" aria-label=\"Previous\" type=\"button\">Previous</button>',nextArrow:'<button class=\"slick-next\" aria-label=\"Next\" type=\"button\">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:\"50px\",cssEase:\"ease\",customPaging:function(e,t){return i('<button type=\"button\" />').text(t+1)},dots:!1,dotsClass:\"slick-dots\",draggable:!0,easing:\"linear\",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:\"ondemand\",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:\"window\",responsive:null,rows:1,rtl:!1,slide:\"\",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden=\"hidden\",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange=\"visibilitychange\",n.windowWidth=0,n.windowTimer=null,s=i(t).data(\"slick\")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden=\"mozHidden\",n.visibilityChange=\"mozvisibilitychange\"):void 0!==document.webkitHidden&&(n.hidden=\"webkitHidden\",n.visibilityChange=\"webkitvisibilitychange\"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\\s*(<[\\w\\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(\".slick-active\").attr({\"aria-hidden\":\"false\"}).find(\"a, input, button, select\").attr({tabindex:\"0\"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if(\"boolean\"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),\"number\"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr(\"data-slick-index\",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]=\"translate(\"+i+\"px, 0px)\",s.$slideTrack.css(o)):(o[s.animType]=\"translate(0px,\"+i+\"px)\",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]=\"translate3d(\"+e+\"px, 0px, 0px)\":o[s.animType]=\"translate3d(0px,\"+e+\"px, 0px)\",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&\"object\"==typeof t&&t.each(function(){var t=i(this).slick(\"getSlick\");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+\" \"+e.options.speed+\"ms \"+e.options.cssEase:t[e.transitionType]=\"opacity \"+e.options.speed+\"ms \"+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass(\"slick-arrow\"),e.$nextArrow=i(e.options.nextArrow).addClass(\"slick-arrow\"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass(\"slick-hidden\").removeAttr(\"aria-hidden tabindex\"),e.$nextArrow.removeClass(\"slick-hidden\").removeAttr(\"aria-hidden tabindex\"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\")):e.$prevArrow.add(e.$nextArrow).addClass(\"slick-hidden\").attr({\"aria-disabled\":\"true\",tabindex:\"-1\"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass(\"slick-dotted\"),t=i(\"<ul />\").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i(\"<li />\").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find(\"li\").first().addClass(\"slick-active\")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+\":not(.slick-cloned)\").addClass(\"slick-slide\"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr(\"data-slick-index\",e).data(\"originalStyling\",i(t).attr(\"style\")||\"\")}),e.$slider.addClass(\"slick-slider\"),e.$slideTrack=0===e.slideCount?i('<div class=\"slick-track\"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class=\"slick-track\"/>').parent(),e.$list=e.$slideTrack.wrap('<div class=\"slick-list\"/>').parent(),e.$slideTrack.css(\"opacity\",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i(\"img[data-lazy]\",e.$slider).not(\"[src]\").addClass(\"slick-loading\"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses(\"number\"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass(\"draggable\")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement(\"div\");for(e=0;e<l.options.rows;e++){var a=document.createElement(\"div\");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+\"%\",display:\"inline-block\"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if(\"window\"===r.respondTo?n=a:\"slider\"===r.respondTo?n=d:\"min\"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,\"unslick\"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,\"unslick\"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger(\"breakpoint\",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is(\"a\")&&e.preventDefault(),l.is(\"li\")||(l=l.closest(\"li\")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case\"previous\":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case\"next\":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case\"index\":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger(\"focus\");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i(\"li\",e.$dots).off(\"click.slick\",e.changeSlide).off(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)).off(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off(\"keydown.slick\",e.keyHandler)),e.$slider.off(\"focus.slick blur.slick\"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off(\"click.slick\",e.changeSlide),e.$nextArrow&&e.$nextArrow.off(\"click.slick\",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off(\"keydown.slick\",e.keyHandler),e.$nextArrow&&e.$nextArrow.off(\"keydown.slick\",e.keyHandler))),e.$list.off(\"touchstart.slick mousedown.slick\",e.swipeHandler),e.$list.off(\"touchmove.slick mousemove.slick\",e.swipeHandler),e.$list.off(\"touchend.slick mouseup.slick\",e.swipeHandler),e.$list.off(\"touchcancel.slick mouseleave.slick\",e.swipeHandler),e.$list.off(\"click.slick\",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off(\"keydown.slick\",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off(\"click.slick\",e.selectHandler),i(window).off(\"orientationchange.slick.slick-\"+e.instanceUid,e.orientationChange),i(window).off(\"resize.slick.slick-\"+e.instanceUid,e.resize),i(\"[draggable!=true]\",e.$slideTrack).off(\"dragstart\",e.preventDefault),i(window).off(\"load.slick.slick-\"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)),e.$list.off(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr(\"style\"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(\".slick-cloned\",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass(\"slick-disabled slick-arrow slick-hidden\").removeAttr(\"aria-hidden aria-disabled tabindex\").css(\"display\",\"\"),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass(\"slick-disabled slick-arrow slick-hidden\").removeAttr(\"aria-hidden aria-disabled tabindex\").css(\"display\",\"\"),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass(\"slick-slide slick-active slick-center slick-visible slick-current\").removeAttr(\"aria-hidden\").removeAttr(\"data-slick-index\").each(function(){i(this).attr(\"style\",i(this).data(\"originalStyling\"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass(\"slick-slider\"),t.$slider.removeClass(\"slick-initialized\"),t.$slider.removeClass(\"slick-dotted\"),t.unslicked=!0,e||t.$slider.trigger(\"destroy\",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]=\"\",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off(\"focus.slick blur.slick\").on(\"focus.slick blur.slick\",\"*\",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(\":focus\"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(\".slick-slide\").eq(i):n.$slideTrack.children(\".slick-slide\").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(\".slick-slide\").eq(i):n.$slideTrack.children(\".slick-slide\").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(\".slick-slide\").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr(\"data-slick-index\")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:\"index\",index:parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass(\"slick-initialized\")||(i(t.$slider).addClass(\"slick-initialized\"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger(\"init\",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(\".slick-cloned\")).attr({\"aria-hidden\":\"true\",tabindex:\"-1\"}).find(\"a, input, button, select\").attr({tabindex:\"-1\"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(\".slick-cloned\")).each(function(t){var s=o.indexOf(t);i(this).attr({role:\"tabpanel\",id:\"slick-slide\"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({\"aria-describedby\":\"slick-slide-control\"+e.instanceUid+s})}),e.$dots.attr(\"role\",\"tablist\").find(\"li\").each(function(s){var n=o[s];i(this).attr({role:\"presentation\"}),i(this).find(\"button\").first().attr({role:\"tab\",id:\"slick-slide-control\"+e.instanceUid+s,\"aria-controls\":\"slick-slide\"+e.instanceUid+n,\"aria-label\":s+1+\" of \"+t,\"aria-selected\":null,tabindex:\"-1\"})}).eq(e.currentSlide).find(\"button\").attr({\"aria-selected\":\"true\",tabindex:\"0\"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr(\"tabindex\",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off(\"click.slick\").on(\"click.slick\",{message:\"previous\"},i.changeSlide),i.$nextArrow.off(\"click.slick\").on(\"click.slick\",{message:\"next\"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on(\"keydown.slick\",i.keyHandler),i.$nextArrow.on(\"keydown.slick\",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i(\"li\",e.$dots).on(\"click.slick\",{message:\"index\"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on(\"keydown.slick\",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i(\"li\",e.$dots).on(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)).on(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)),e.$list.on(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on(\"touchstart.slick mousedown.slick\",{action:\"start\"},e.swipeHandler),e.$list.on(\"touchmove.slick mousemove.slick\",{action:\"move\"},e.swipeHandler),e.$list.on(\"touchend.slick mouseup.slick\",{action:\"end\"},e.swipeHandler),e.$list.on(\"touchcancel.slick mouseleave.slick\",{action:\"end\"},e.swipeHandler),e.$list.on(\"click.slick\",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on(\"keydown.slick\",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on(\"click.slick\",e.selectHandler),i(window).on(\"orientationchange.slick.slick-\"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on(\"resize.slick.slick-\"+e.instanceUid,i.proxy(e.resize,e)),i(\"[draggable!=true]\",e.$slideTrack).on(\"dragstart\",e.preventDefault),i(window).on(\"load.slick.slick-\"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match(\"TEXTAREA|INPUT|SELECT\")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?\"next\":\"previous\"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?\"previous\":\"next\"}}))},e.prototype.lazyLoad=function(){function e(e){i(\"img[data-lazy]\",e).each(function(){var e=i(this),t=i(this).attr(\"data-lazy\"),o=i(this).attr(\"data-srcset\"),s=i(this).attr(\"data-sizes\")||n.$slider.attr(\"data-sizes\"),r=document.createElement(\"img\");r.onload=function(){e.animate({opacity:0},100,function(){o&&(e.attr(\"srcset\",o),s&&e.attr(\"sizes\",s)),e.attr(\"src\",t).animate({opacity:1},200,function(){e.removeAttr(\"data-lazy data-srcset data-sizes\").removeClass(\"slick-loading\")}),n.$slider.trigger(\"lazyLoaded\",[n,e,t])})},r.onerror=function(){e.removeAttr(\"data-lazy\").removeClass(\"slick-loading\").addClass(\"slick-lazyload-error\"),n.$slider.trigger(\"lazyLoadError\",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(\".slick-slide\").slice(o,s),\"anticipated\"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(\".slick-slide\"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(\".slick-slide\")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(\".slick-cloned\").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(\".slick-cloned\").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass(\"slick-loading\"),i.initUI(),\"progressive\"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:\"next\"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger(\"afterChange\",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr(\"tabindex\",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:\"previous\"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i(\"img[data-lazy]\",l.$slider);d.length?(t=d.first(),o=t.attr(\"data-lazy\"),s=t.attr(\"data-srcset\"),n=t.attr(\"data-sizes\")||l.$slider.attr(\"data-sizes\"),(r=document.createElement(\"img\")).onload=function(){s&&(t.attr(\"srcset\",s),n&&t.attr(\"sizes\",n)),t.attr(\"src\",o).removeAttr(\"data-lazy data-srcset data-sizes\").removeClass(\"slick-loading\"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger(\"lazyLoaded\",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr(\"data-lazy\").removeClass(\"slick-loading\").addClass(\"slick-lazyload-error\"),l.$slider.trigger(\"lazyLoadError\",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger(\"allImagesLoaded\",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:\"index\",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if(\"array\"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||\"window\";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass(\"slick-slide\"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on(\"click.slick\",e.selectHandler),e.setSlideClasses(\"number\"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger(\"reInit\",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i=\"boolean\"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e=\"left\"==o.positionProp?Math.ceil(i)+\"px\":\"0px\",t=\"top\"==o.positionProp?Math.ceil(i)+\"px\":\"0px\",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]=\"translate(\"+e+\", \"+t+\")\",o.$slideTrack.css(s)):(s[o.animType]=\"translate3d(\"+e+\", \"+t+\", 0px)\",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:\"0px \"+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+\" 0px\"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(\".slick-slide\").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(\".slick-slide\").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(\".slick-slide\").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:\"relative\",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:\"relative\",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css(\"height\",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if(\"object\"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n=\"multiple\"):\"string\"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],\"responsive\"===arguments[0]&&\"array\"===i.type(arguments[1])?n=\"responsive\":void 0!==arguments[1]&&(n=\"single\")),\"single\"===n)r.options[o]=s;else if(\"multiple\"===n)i.each(o,function(i,e){r.options[i]=e});else if(\"responsive\"===n)for(t in s)if(\"array\"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger(\"setPosition\",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?\"top\":\"left\",\"top\"===i.positionProp?i.$slider.addClass(\"slick-vertical\"):i.$slider.removeClass(\"slick-vertical\"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&(\"number\"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType=\"OTransform\",i.transformType=\"-o-transform\",i.transitionType=\"OTransition\",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType=\"MozTransform\",i.transformType=\"-moz-transform\",i.transitionType=\"MozTransition\",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType=\"webkitTransform\",i.transformType=\"-webkit-transform\",i.transitionType=\"webkitTransition\",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType=\"msTransform\",i.transformType=\"-ms-transform\",i.transitionType=\"msTransition\",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType=\"transform\",i.transformType=\"transform\",i.transitionType=\"transition\"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(\".slick-slide\").removeClass(\"slick-active slick-center slick-current\").attr(\"aria-hidden\",\"true\"),n.$slides.eq(i).addClass(\"slick-current\"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass(\"slick-center\"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass(\"slick-center\")),n.$slides.eq(i).addClass(\"slick-center\")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):t.length<=n.options.slidesToShow?t.addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):t.slice(o,o+n.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"));\"ondemand\"!==n.options.lazyLoad&&\"anticipated\"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",t-s.slideCount).prependTo(s.$slideTrack).addClass(\"slick-cloned\");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",t+s.slideCount).appendTo(s.$slideTrack).addClass(\"slick-cloned\");s.$slideTrack.find(\".slick-cloned\").find(\"[id]\").each(function(){i(this).attr(\"id\",\"\")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(\".slick-slide\")?i(e.target):i(e.target).parents(\".slick-slide\"),s=parseInt(o.attr(\"data-slick-index\"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger(\"beforeChange\",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick(\"getSlick\")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass(\"slick-loading\")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?\"left\":\"right\":o<=360&&o>=315?!1===s.options.rtl?\"left\":\"right\":o>=135&&o<=225?!1===s.options.rtl?\"right\":\"left\":!0===s.options.verticalSwiping?o>=35&&o<=135?\"down\":\"up\":\"vertical\"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger(\"edge\",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case\"left\":case\"down\":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case\"right\":case\"up\":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}\"vertical\"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger(\"swipe\",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||\"ontouchend\"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf(\"mouse\")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case\"start\":e.swipeStart(i);break;case\"move\":e.swipeMove(i);break;case\"end\":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&\"right\"===t||l.currentSlide>=l.getDotCount()&&\"left\"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(\".slick-cloned\",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass(\"slick-slide slick-active slick-visible slick-current\").attr(\"aria-hidden\",\"true\").css(\"width\",\"\")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger(\"unslick\",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\"),i.$nextArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\"),0===i.currentSlide?(i.$prevArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),i.$nextArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),i.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),i.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find(\"li\").removeClass(\"slick-active\").end(),i.$dots.find(\"li\").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass(\"slick-active\"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if(\"object\"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}});\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n/*! http://tinynav.viljamis.com v1.2 by @viljamis */\n(function ($, window, i) {\n  $.fn.tinyNav = function (options) {\n\n    // Default settings\n    var settings = $.extend({\n      'active' : 'selected', // String: Set the \"active\" class\n      'header' : '', // String: Specify text for \"header\" and show header instead of the active item\n      'indent' : '- ', // String: Specify text for indenting sub-items\n      'label'  : '', // String: sets the <label> text for the <select> (if not set, no label will be added)\n      'addHashHistory': false\n    }, options);\n\n    return this.each(function () {\n\n      // Used for namespacing\n      i++;\n\n      var $nav = $(this),\n        // Namespacing\n        namespace = 'tinynav',\n        namespace_i = namespace + i,\n        l_namespace_i = '.l_' + namespace_i,\n        $select = $('<select/>').attr(\"id\", namespace_i).addClass(namespace + ' ' + namespace_i);\n\n      if ($nav.is('ul,ol')) {\n\n        if (settings.header !== '') {\n          $select.append(\n            $('<option/>').text(settings.header)\n          );\n        }\n\n        // Build options\n        var options = '';\n\n        $nav\n          .addClass('l_' + namespace_i)\n          .find('a')\n          .each(function () {\n            options += '<option value=\"' + $(this).attr('href') + '\">';\n            var j;\n            for (j = 0; j < $(this).parents('ul, ol').length - 1; j++) {\n              options += settings.indent;\n            }\n            options += $(this).text() + '</option>';\n          });\n\n        // Append options into a select\n        $select.append(options);\n\n        // Select the active item\n        if (!settings.header) {\n          $select\n            .find(':eq(' + $(l_namespace_i + ' li')\n            .index($(l_namespace_i + ' li.' + settings.active)) + ')')\n            .attr('selected', true);\n        }\n  \n        if (settings.addHashHistory) {\n          // Change window location\n          $select.change(function () {\n            window.location.href = $(this).val();\n          });\n        }\n\n        // Inject select\n        $(l_namespace_i).after($select);\n\n        // Inject label\n        if (settings.label) {\n          $select.before(\n            $(\"<label/>\")\n              .attr(\"for\", namespace_i)\n              .addClass(namespace + '_label ' + namespace_i + '_label')\n              .append(settings.label)\n          );\n        }\n\n      }\n\n    });\n\n  };\n})(jQuery, window, 0);\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n(function ($) {\n    /* Custom JS\n    Feel free to break into separate files if individual functions grow to excessive sizes.\n    Gulp will concatenate and minify separate files automatically.\n    */\n\n    $('.sub-nav ul.nav').tinyNav({\n        active: 'selected', // String: Set the \"active\" class\n        header: 'Choose', // String: Specify text for \"header\" and show header instead of the active item\n        indent: '- ', // String: Specify text for indenting sub-items\n        label: 'Go to' // String: Sets the <label> text for the <select> (if not set, no label will be added)\n    });\n\n    $('.tinynav').on('change', function () {\n        var url = $(this).val(); // get selected value\n        if (url) {\n            // require a URL\n            window.location = url; // redirect\n        }\n        return false;\n    });\n\n    if ($(window).width() > 769) {\n        $('.sub-nav .dropdown').hover(function () {\n            $(this).find('.dropdown-menu').first().stop(true, true).delay(250).fadeIn();\n        }, function () {\n            $(this).find('.dropdown-menu').first().stop(true, true).delay(100).fadeOut();\n        });\n\n        $('.sub-nav .dropdown > a').on('click', function () {\n            location.href = this.href;\n        });\n    }\n})(jQuery);\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\njQuery(function ($) {\n    // Callbacks for MAX MEGA MENU Wordpress Plugin\n\n    var $header = $('#header');\n    var $menuParent = $('li.mega-menu-item');\n    var $megaMenuParent = $('li.mega-menu-megamenu');\n\n    // When Mega Menu is Open, add class to header\n    $menuParent.on('open_panel', function () {\n        $header.addClass('menu-visible');\n    });\n\n    $megaMenuParent.on('open_panel', function () {\n        $header.addClass('mega-menu-visible');\n    });\n\n    // When Mega Menu is Closed, remove class from header\n    $menuParent.on('close_panel', function () {\n        $header.removeClass('menu-visible');\n    });\n\n    $megaMenuParent.on('close_panel', function () {\n        $header.removeClass('mega-menu-visible');\n    });\n});\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n(function ($) {\n    // Callbacks for FacetWP Wordpress Plugin\n\n    $(document).on('facetwp-refresh', function () {\n        $('.facetwp-template').animate({ opacity: 0 }, 500);\n    });\n\n    $(document).on('facetwp-loaded', function () {\n        $.each(FWP.settings.num_choices, function (key, val) {\n            var $parent = $('.facetwp-facet-' + key).closest('.filter-section');\n            0 === val ? $parent.hide() : $parent.show();\n        });\n\n        $('.facetwp-template').animate({ opacity: 1 }, 500);\n\n        if (FWP.loaded) {\n            $('html, body').animate({\n                scrollTop: $('.facetwp-template').offset().top\n            }, 300);\n        }\n    });\n\n    $('.enable-list-view').on('click', function (e) {\n        e.preventDefault();\n        $('.view-toggle').removeClass('active');\n        $(this).addClass('active').parents().find('#venue-results').removeClass('grid-view').addClass('list-view');\n    });\n\n    $('.enable-grid-view').on('click', function (e) {\n        e.preventDefault();\n        $('.view-toggle').removeClass('active');\n        $(this).addClass('active').parents().find('#venue-results').removeClass('list-view').addClass('grid-view');\n    });\n})(jQuery);\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n(function ($) {\n    var $heroSlider = $('#hero-slider');\n    var $venueSlider = $('#venue-slider');\n    var $eventsSlider = $('#events-slider');\n    var $venueTypesSlider = $('#venue-types-slider');\n    var $venueTypesSliderNav = $('#venue-types-slider-nav');\n\n    if ($('#hero-slider .slide').length > 1) {\n        // Initialize hero carousel\n        $heroSlider.slick({\n            autoplay: true,\n            autoplaySpeed: 7000,\n            infinite: true,\n            dots: true,\n            arrows: true,\n            fade: true,\n            appendArrows: '.slider-nav',\n            appendDots: '.slider-nav',\n            prevArrow: \"<button type='button' class='slick-prev'><i class='fal fa-arrow-left'></i><span class='sr-only sr-only-focusable'>Previous</span></button>\",\n            nextArrow: \"<button type='button' class='slick-next'><i class='fal fa-arrow-right'></i><span class='sr-only sr-only-focusable'>Next</span></button>\"\n            // customPaging: function(slider, i) {\n            //     return (\n            //         '<button class=\"tab\"><div>' +\n            //         $(slider.$slides[i]).attr('title') +\n            //         '</div></button>'\n            //     );\n            // },\n        });\n    }\n\n    if ($('#venue-slider .slide').length > 0) {\n        // Initialize venue carousel\n        $venueSlider.slick({\n            slidesToShow: 1,\n            autoplay: true,\n            autoplaySpeed: 3000,\n            infinite: true,\n            dots: true,\n            arrows: true,\n            fade: false,\n            centerMode: true,\n            // centerPadding: '40px',\n            variableWidth: true,\n            appendArrows: '.slider-nav',\n            appendDots: '.slider-nav',\n            prevArrow: \"<button type='button' class='slick-prev'><i class='fal fa-arrow-left'></i></button>\",\n            nextArrow: \"<button type='button' class='slick-next'><i class='fal fa-arrow-right'></i></button>\"\n        });\n    }\n\n    if (matchMedia) {\n        var mq = window.matchMedia('(min-width: 992px)');\n        mq.addListener(windowResize);\n        windowResize(mq);\n    }\n\n    function windowResize(mq) {\n        if ($('#events-slider .slide').length > 1 && !mq.matches) {\n            // Initialize events carousel\n            $eventsSlider.slick({\n                slidesToShow: 4,\n                autoplay: false,\n                infinite: false,\n                dots: false,\n                arrows: true,\n                fade: false,\n                prevArrow: \"<button type='button' class='slick-prev'><i class='fal fa-arrow-left'></i></button>\",\n                nextArrow: \"<button type='button' class='slick-next'><i class='fal fa-arrow-right'></i></button>\",\n                responsive: [{\n                    breakpoint: 992,\n                    settings: {\n                        slidesToShow: 2\n                    }\n                }, {\n                    breakpoint: 576,\n                    settings: {\n                        slidesToShow: 1\n                    }\n                }]\n            });\n        }\n    }\n\n    if ($('#venue-types-slider .slide').length > 1) {\n        // Initialize venue types carousel\n        $venueTypesSlider.slick({\n            slidesToShow: 1,\n            slidesToScroll: 1,\n            autoplay: false,\n            asNavFor: '#venue-types-slider-nav',\n            dots: false,\n            arrows: false,\n            fade: true,\n            adaptiveHeight: true,\n            prevArrow: \"<button type='button' class='slick-prev'><i class='fal fa-arrow-left'></i></button>\",\n            nextArrow: \"<button type='button' class='slick-next'><i class='fal fa-arrow-right'></i></button>\"\n        });\n\n        $venueTypesSliderNav.slick({\n            slidesToShow: 5,\n            autoplay: false,\n            asNavFor: '#venue-types-slider',\n            dots: false,\n            arrows: false,\n            focusOnSelect: true\n        });\n    }\n})(jQuery);\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// app.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c25e3531cdae712aa65a","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 0\n// module chunks = 0","/*!\n  * Bootstrap util.js v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :\n  typeof define === 'function' && define.amd ? define(['jquery'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));\n}(this, (function ($) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.0): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    if (obj === null || typeof obj === 'undefined') {\n      return \"\" + obj;\n    }\n\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($__default['default'](event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined;\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $__default['default'](this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n    $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (_) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $__default['default'](element).css('transition-duration');\n      var transitionDelay = $__default['default'](element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $__default['default'](element).trigger(TRANSITION_END);\n    },\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    },\n    jQueryDetection: function jQueryDetection() {\n      if (typeof $__default['default'] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n      }\n\n      var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n      var minMajor = 1;\n      var ltMajor = 2;\n      var minMinor = 9;\n      var minPatch = 1;\n      var maxMajor = 4;\n\n      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n        throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n      }\n    }\n  };\n  Util.jQueryDetection();\n  setTransitionEndSupport();\n\n  return Util;\n\n})));\n//# sourceMappingURL=util.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/bootstrap/js/dist/util.js\n// module id = 1\n// module chunks = 0","/* eslint no-undef: 0 */\n// import 'babel-polyfill';\n\n// Bootstrap dependencies\n// import 'popper.js';\n// import 'bootstrap/js/dist/alert';\nimport 'bootstrap/js/dist/button';\n// import 'bootstrap/js/dist/carousel';\nimport 'bootstrap/js/dist/collapse';\nimport 'bootstrap/js/dist/dropdown';\n// import 'bootstrap/js/dist/modal';\n// import 'bootstrap/js/dist/popover';\n// import 'bootstrap/js/dist/scrollspy';\n// import 'bootstrap/js/dist/tab';\n// import 'bootstrap/js/dist/tooltip';\nimport 'bootstrap/js/dist/util';\n\n// Vendor\nimport 'slick-carousel/slick/slick.min.js';\nimport 'tinynav/dist/tinynav';\n\n// Custom Scripts\nimport './scripts';\nimport './mega-menu';\nimport './facetwp';\nimport './slider-controller';\n\n\n\n// WEBPACK FOOTER //\n// ./src/js/app.js","/*!\n  * Bootstrap button.js v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :\n  typeof define === 'function' && define.amd ? define(['jquery'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.jQuery));\n}(this, (function ($) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'button';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.button';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var CLASS_NAME_ACTIVE = 'active';\n  var CLASS_NAME_BUTTON = 'btn';\n  var CLASS_NAME_FOCUS = 'focus';\n  var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n  var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\n  var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n  var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n  var SELECTOR_ACTIVE = '.active';\n  var SELECTOR_BUTTON = '.btn';\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY + DATA_API_KEY + \" \" + (\"blur\" + EVENT_KEY + DATA_API_KEY);\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY + DATA_API_KEY;\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Button = /*#__PURE__*/function () {\n    function Button(element) {\n      this._element = element;\n      this.shouldAvoidTriggerChange = false;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(SELECTOR_INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n              if (activeElement) {\n                $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n            if (input.type === 'checkbox' || input.type === 'radio') {\n              input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n            }\n\n            if (!this.shouldAvoidTriggerChange) {\n              $__default['default'](input).trigger('change');\n            }\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n        if (addAriaPressed) {\n          this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));\n        }\n\n        if (triggerChangeEvent) {\n          $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n        }\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Button(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = event.target;\n    var initialButton = button;\n\n    if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {\n      button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];\n    }\n\n    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n      event.preventDefault(); // work around Firefox bug #1540995\n    } else {\n      var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n        event.preventDefault(); // work around Firefox bug #1540995\n\n        return;\n      }\n\n      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n        Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');\n      }\n    }\n  }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];\n    $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n    // ensure correct active class is set to match the controls' actual values/states\n    // find all checkboxes/readio buttons inside data-toggle groups\n    var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n    for (var i = 0, len = buttons.length; i < len; i++) {\n      var button = buttons[i];\n      var input = button.querySelector(SELECTOR_INPUT);\n\n      if (input.checked || input.hasAttribute('checked')) {\n        button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    } // find all button toggles\n\n\n    buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n    for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n      var _button = buttons[_i];\n\n      if (_button.getAttribute('aria-pressed') === 'true') {\n        _button.classList.add(CLASS_NAME_ACTIVE);\n      } else {\n        _button.classList.remove(CLASS_NAME_ACTIVE);\n      }\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Button._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Button;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Button._jQueryInterface;\n  };\n\n  return Button;\n\n})));\n//# sourceMappingURL=button.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/bootstrap/js/dist/button.js\n// module id = 3\n// module chunks = 0","/*!\n  * Bootstrap collapse.js v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :\n  typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.jQuery, global.Util));\n}(this, (function ($, Util) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'collapse';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.collapse';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var Default = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  var EVENT_SHOW = \"show\" + EVENT_KEY;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n  var EVENT_HIDE = \"hide\" + EVENT_KEY;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var CLASS_NAME_SHOW = 'show';\n  var CLASS_NAME_COLLAPSE = 'collapse';\n  var CLASS_NAME_COLLAPSING = 'collapsing';\n  var CLASS_NAME_COLLAPSED = 'collapsed';\n  var DIMENSION_WIDTH = 'width';\n  var DIMENSION_HEIGHT = 'height';\n  var SELECTOR_ACTIVES = '.show, .collapsing';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]';\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Collapse = /*#__PURE__*/function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util__default['default'].getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(CLASS_NAME_COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_SHOW);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $__default['default'](actives).data(DATA_KEY, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $__default['default'](_this._element).trigger(EVENT_SHOWN);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var startEvent = $__default['default'].Event(EVENT_HIDE);\n      $__default['default'](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util__default['default'].reflow(this._element);\n      $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util__default['default'].getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n              $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);\n      $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util__default['default'].typeCheckConfig(NAME, config, DefaultType);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);\n      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util__default['default'].isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $__default['default'](children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW);\n\n      if (triggerArray.length) {\n        $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util__default['default'].getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default['default'](this);\n        var data = $element.data(DATA_KEY);\n\n        var _config = _extends({}, Default, $element.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $__default['default'](this);\n    var selector = Util__default['default'].getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $__default['default'](selectors).each(function () {\n      var $target = $__default['default'](this);\n      var data = $target.data(DATA_KEY);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Collapse._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Collapse;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Collapse._jQueryInterface;\n  };\n\n  return Collapse;\n\n})));\n//# sourceMappingURL=collapse.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/bootstrap/js/dist/collapse.js\n// module id = 4\n// module chunks = 0","/*!\n  * Bootstrap dropdown.js v4.6.0 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :\n  typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));\n}(this, (function ($, Popper, Util) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n  var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'dropdown';\n  var VERSION = '4.6.0';\n  var DATA_KEY = 'bs.dropdown';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n  var EVENT_HIDE = \"hide\" + EVENT_KEY;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n  var EVENT_SHOW = \"show\" + EVENT_KEY;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n  var EVENT_CLICK = \"click\" + EVENT_KEY;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n  var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY + DATA_API_KEY;\n  var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY + DATA_API_KEY;\n  var CLASS_NAME_DISABLED = 'disabled';\n  var CLASS_NAME_SHOW = 'show';\n  var CLASS_NAME_DROPUP = 'dropup';\n  var CLASS_NAME_DROPRIGHT = 'dropright';\n  var CLASS_NAME_DROPLEFT = 'dropleft';\n  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_POSITION_STATIC = 'position-static';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]';\n  var SELECTOR_FORM_CHILD = '.dropdown form';\n  var SELECTOR_MENU = '.dropdown-menu';\n  var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n  var PLACEMENT_TOP = 'top-start';\n  var PLACEMENT_TOPEND = 'top-end';\n  var PLACEMENT_BOTTOM = 'bottom-start';\n  var PLACEMENT_BOTTOMEND = 'bottom-end';\n  var PLACEMENT_RIGHT = 'right-start';\n  var PLACEMENT_LEFT = 'left-start';\n  var Default = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic',\n    popperConfig: null\n  };\n  var DefaultType = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string',\n    popperConfig: '(null|object)'\n  };\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      this.show(true);\n    };\n\n    _proto.show = function show(usePopper) {\n      if (usePopper === void 0) {\n        usePopper = false;\n      }\n\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $__default['default'].Event(EVENT_SHOW, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Totally disable Popper for Dropdowns in Navbar\n\n\n      if (!this._inNavbar && usePopper) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper__default['default'] === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util__default['default'].isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);\n        }\n\n        this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n        $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_SHOWN, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $__default['default'].Event(EVENT_HIDE, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default['default'](parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW);\n      $__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $__default['default'].removeData(this._element, DATA_KEY);\n      $__default['default'](this._element).off(EVENT_KEY);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $__default['default'](this._element).on(EVENT_CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n      Util__default['default'].typeCheckConfig(NAME, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(SELECTOR_MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $__default['default'](this._element.parentNode);\n      var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n        placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n        placement = PLACEMENT_RIGHT;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n        placement = PLACEMENT_LEFT;\n      } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n        placement = PLACEMENT_BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $__default['default'](this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }; // Disable Popper if we have a static display\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return _extends({}, popperConfig, this._config.popperConfig);\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default['default'](this).data(DATA_KEY);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $__default['default'](this).data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $__default['default'](toggles[i]).data(DATA_KEY);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $__default['default'].Event(EVENT_HIDE, relatedTarget);\n        $__default['default'](parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n\n        if (context._popper) {\n          context._popper.destroy();\n        }\n\n        $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW);\n        $__default['default'](parent).removeClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util__default['default'].getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW);\n\n      if (!isActive && event.which === ESCAPE_KEYCODE) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n        if (event.which === ESCAPE_KEYCODE) {\n          $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');\n        }\n\n        $__default['default'](this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n        return $__default['default'](item).is(':visible');\n      });\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n  }).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $__default['default'].fn[NAME] = Dropdown._jQueryInterface;\n  $__default['default'].fn[NAME].Constructor = Dropdown;\n\n  $__default['default'].fn[NAME].noConflict = function () {\n    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Dropdown._jQueryInterface;\n  };\n\n  return Dropdown;\n\n})));\n//# sourceMappingURL=dropdown.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/bootstrap/js/dist/dropdown.js\n// module id = 5\n// module chunks = 0","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/popper.js/dist/esm/popper.js\n// module id = 6\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 7\n// module chunks = 0","!function(i){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],i):\"undefined\"!=typeof exports?module.exports=i(require(\"jquery\")):i(jQuery)}(function(i){\"use strict\";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class=\"slick-prev\" aria-label=\"Previous\" type=\"button\">Previous</button>',nextArrow:'<button class=\"slick-next\" aria-label=\"Next\" type=\"button\">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:\"50px\",cssEase:\"ease\",customPaging:function(e,t){return i('<button type=\"button\" />').text(t+1)},dots:!1,dotsClass:\"slick-dots\",draggable:!0,easing:\"linear\",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:\"ondemand\",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:\"window\",responsive:null,rows:1,rtl:!1,slide:\"\",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden=\"hidden\",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange=\"visibilitychange\",n.windowWidth=0,n.windowTimer=null,s=i(t).data(\"slick\")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden=\"mozHidden\",n.visibilityChange=\"mozvisibilitychange\"):void 0!==document.webkitHidden&&(n.hidden=\"webkitHidden\",n.visibilityChange=\"webkitvisibilitychange\"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\\s*(<[\\w\\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(\".slick-active\").attr({\"aria-hidden\":\"false\"}).find(\"a, input, button, select\").attr({tabindex:\"0\"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if(\"boolean\"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),\"number\"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr(\"data-slick-index\",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]=\"translate(\"+i+\"px, 0px)\",s.$slideTrack.css(o)):(o[s.animType]=\"translate(0px,\"+i+\"px)\",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]=\"translate3d(\"+e+\"px, 0px, 0px)\":o[s.animType]=\"translate3d(0px,\"+e+\"px, 0px)\",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&\"object\"==typeof t&&t.each(function(){var t=i(this).slick(\"getSlick\");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+\" \"+e.options.speed+\"ms \"+e.options.cssEase:t[e.transitionType]=\"opacity \"+e.options.speed+\"ms \"+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass(\"slick-arrow\"),e.$nextArrow=i(e.options.nextArrow).addClass(\"slick-arrow\"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass(\"slick-hidden\").removeAttr(\"aria-hidden tabindex\"),e.$nextArrow.removeClass(\"slick-hidden\").removeAttr(\"aria-hidden tabindex\"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\")):e.$prevArrow.add(e.$nextArrow).addClass(\"slick-hidden\").attr({\"aria-disabled\":\"true\",tabindex:\"-1\"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass(\"slick-dotted\"),t=i(\"<ul />\").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i(\"<li />\").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find(\"li\").first().addClass(\"slick-active\")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+\":not(.slick-cloned)\").addClass(\"slick-slide\"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr(\"data-slick-index\",e).data(\"originalStyling\",i(t).attr(\"style\")||\"\")}),e.$slider.addClass(\"slick-slider\"),e.$slideTrack=0===e.slideCount?i('<div class=\"slick-track\"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class=\"slick-track\"/>').parent(),e.$list=e.$slideTrack.wrap('<div class=\"slick-list\"/>').parent(),e.$slideTrack.css(\"opacity\",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i(\"img[data-lazy]\",e.$slider).not(\"[src]\").addClass(\"slick-loading\"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses(\"number\"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass(\"draggable\")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement(\"div\");for(e=0;e<l.options.rows;e++){var a=document.createElement(\"div\");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+\"%\",display:\"inline-block\"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if(\"window\"===r.respondTo?n=a:\"slider\"===r.respondTo?n=d:\"min\"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,\"unslick\"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,\"unslick\"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger(\"breakpoint\",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is(\"a\")&&e.preventDefault(),l.is(\"li\")||(l=l.closest(\"li\")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case\"previous\":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case\"next\":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case\"index\":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger(\"focus\");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i(\"li\",e.$dots).off(\"click.slick\",e.changeSlide).off(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)).off(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off(\"keydown.slick\",e.keyHandler)),e.$slider.off(\"focus.slick blur.slick\"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off(\"click.slick\",e.changeSlide),e.$nextArrow&&e.$nextArrow.off(\"click.slick\",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off(\"keydown.slick\",e.keyHandler),e.$nextArrow&&e.$nextArrow.off(\"keydown.slick\",e.keyHandler))),e.$list.off(\"touchstart.slick mousedown.slick\",e.swipeHandler),e.$list.off(\"touchmove.slick mousemove.slick\",e.swipeHandler),e.$list.off(\"touchend.slick mouseup.slick\",e.swipeHandler),e.$list.off(\"touchcancel.slick mouseleave.slick\",e.swipeHandler),e.$list.off(\"click.slick\",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off(\"keydown.slick\",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off(\"click.slick\",e.selectHandler),i(window).off(\"orientationchange.slick.slick-\"+e.instanceUid,e.orientationChange),i(window).off(\"resize.slick.slick-\"+e.instanceUid,e.resize),i(\"[draggable!=true]\",e.$slideTrack).off(\"dragstart\",e.preventDefault),i(window).off(\"load.slick.slick-\"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)),e.$list.off(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr(\"style\"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(\".slick-cloned\",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass(\"slick-disabled slick-arrow slick-hidden\").removeAttr(\"aria-hidden aria-disabled tabindex\").css(\"display\",\"\"),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass(\"slick-disabled slick-arrow slick-hidden\").removeAttr(\"aria-hidden aria-disabled tabindex\").css(\"display\",\"\"),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass(\"slick-slide slick-active slick-center slick-visible slick-current\").removeAttr(\"aria-hidden\").removeAttr(\"data-slick-index\").each(function(){i(this).attr(\"style\",i(this).data(\"originalStyling\"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass(\"slick-slider\"),t.$slider.removeClass(\"slick-initialized\"),t.$slider.removeClass(\"slick-dotted\"),t.unslicked=!0,e||t.$slider.trigger(\"destroy\",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]=\"\",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off(\"focus.slick blur.slick\").on(\"focus.slick blur.slick\",\"*\",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(\":focus\"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(\".slick-slide\").eq(i):n.$slideTrack.children(\".slick-slide\").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(\".slick-slide\").eq(i):n.$slideTrack.children(\".slick-slide\").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(\".slick-slide\").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr(\"data-slick-index\")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:\"index\",index:parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass(\"slick-initialized\")||(i(t.$slider).addClass(\"slick-initialized\"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger(\"init\",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(\".slick-cloned\")).attr({\"aria-hidden\":\"true\",tabindex:\"-1\"}).find(\"a, input, button, select\").attr({tabindex:\"-1\"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(\".slick-cloned\")).each(function(t){var s=o.indexOf(t);i(this).attr({role:\"tabpanel\",id:\"slick-slide\"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({\"aria-describedby\":\"slick-slide-control\"+e.instanceUid+s})}),e.$dots.attr(\"role\",\"tablist\").find(\"li\").each(function(s){var n=o[s];i(this).attr({role:\"presentation\"}),i(this).find(\"button\").first().attr({role:\"tab\",id:\"slick-slide-control\"+e.instanceUid+s,\"aria-controls\":\"slick-slide\"+e.instanceUid+n,\"aria-label\":s+1+\" of \"+t,\"aria-selected\":null,tabindex:\"-1\"})}).eq(e.currentSlide).find(\"button\").attr({\"aria-selected\":\"true\",tabindex:\"0\"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr(\"tabindex\",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off(\"click.slick\").on(\"click.slick\",{message:\"previous\"},i.changeSlide),i.$nextArrow.off(\"click.slick\").on(\"click.slick\",{message:\"next\"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on(\"keydown.slick\",i.keyHandler),i.$nextArrow.on(\"keydown.slick\",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i(\"li\",e.$dots).on(\"click.slick\",{message:\"index\"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on(\"keydown.slick\",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i(\"li\",e.$dots).on(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)).on(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)),e.$list.on(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on(\"touchstart.slick mousedown.slick\",{action:\"start\"},e.swipeHandler),e.$list.on(\"touchmove.slick mousemove.slick\",{action:\"move\"},e.swipeHandler),e.$list.on(\"touchend.slick mouseup.slick\",{action:\"end\"},e.swipeHandler),e.$list.on(\"touchcancel.slick mouseleave.slick\",{action:\"end\"},e.swipeHandler),e.$list.on(\"click.slick\",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on(\"keydown.slick\",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on(\"click.slick\",e.selectHandler),i(window).on(\"orientationchange.slick.slick-\"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on(\"resize.slick.slick-\"+e.instanceUid,i.proxy(e.resize,e)),i(\"[draggable!=true]\",e.$slideTrack).on(\"dragstart\",e.preventDefault),i(window).on(\"load.slick.slick-\"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match(\"TEXTAREA|INPUT|SELECT\")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?\"next\":\"previous\"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?\"previous\":\"next\"}}))},e.prototype.lazyLoad=function(){function e(e){i(\"img[data-lazy]\",e).each(function(){var e=i(this),t=i(this).attr(\"data-lazy\"),o=i(this).attr(\"data-srcset\"),s=i(this).attr(\"data-sizes\")||n.$slider.attr(\"data-sizes\"),r=document.createElement(\"img\");r.onload=function(){e.animate({opacity:0},100,function(){o&&(e.attr(\"srcset\",o),s&&e.attr(\"sizes\",s)),e.attr(\"src\",t).animate({opacity:1},200,function(){e.removeAttr(\"data-lazy data-srcset data-sizes\").removeClass(\"slick-loading\")}),n.$slider.trigger(\"lazyLoaded\",[n,e,t])})},r.onerror=function(){e.removeAttr(\"data-lazy\").removeClass(\"slick-loading\").addClass(\"slick-lazyload-error\"),n.$slider.trigger(\"lazyLoadError\",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(\".slick-slide\").slice(o,s),\"anticipated\"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(\".slick-slide\"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(\".slick-slide\")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(\".slick-cloned\").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(\".slick-cloned\").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass(\"slick-loading\"),i.initUI(),\"progressive\"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:\"next\"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger(\"afterChange\",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr(\"tabindex\",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:\"previous\"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i(\"img[data-lazy]\",l.$slider);d.length?(t=d.first(),o=t.attr(\"data-lazy\"),s=t.attr(\"data-srcset\"),n=t.attr(\"data-sizes\")||l.$slider.attr(\"data-sizes\"),(r=document.createElement(\"img\")).onload=function(){s&&(t.attr(\"srcset\",s),n&&t.attr(\"sizes\",n)),t.attr(\"src\",o).removeAttr(\"data-lazy data-srcset data-sizes\").removeClass(\"slick-loading\"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger(\"lazyLoaded\",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr(\"data-lazy\").removeClass(\"slick-loading\").addClass(\"slick-lazyload-error\"),l.$slider.trigger(\"lazyLoadError\",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger(\"allImagesLoaded\",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:\"index\",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if(\"array\"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||\"window\";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass(\"slick-slide\"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on(\"click.slick\",e.selectHandler),e.setSlideClasses(\"number\"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger(\"reInit\",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i=\"boolean\"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e=\"left\"==o.positionProp?Math.ceil(i)+\"px\":\"0px\",t=\"top\"==o.positionProp?Math.ceil(i)+\"px\":\"0px\",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]=\"translate(\"+e+\", \"+t+\")\",o.$slideTrack.css(s)):(s[o.animType]=\"translate3d(\"+e+\", \"+t+\", 0px)\",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:\"0px \"+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+\" 0px\"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(\".slick-slide\").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(\".slick-slide\").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(\".slick-slide\").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:\"relative\",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:\"relative\",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css(\"height\",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if(\"object\"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n=\"multiple\"):\"string\"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],\"responsive\"===arguments[0]&&\"array\"===i.type(arguments[1])?n=\"responsive\":void 0!==arguments[1]&&(n=\"single\")),\"single\"===n)r.options[o]=s;else if(\"multiple\"===n)i.each(o,function(i,e){r.options[i]=e});else if(\"responsive\"===n)for(t in s)if(\"array\"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger(\"setPosition\",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?\"top\":\"left\",\"top\"===i.positionProp?i.$slider.addClass(\"slick-vertical\"):i.$slider.removeClass(\"slick-vertical\"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&(\"number\"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType=\"OTransform\",i.transformType=\"-o-transform\",i.transitionType=\"OTransition\",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType=\"MozTransform\",i.transformType=\"-moz-transform\",i.transitionType=\"MozTransition\",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType=\"webkitTransform\",i.transformType=\"-webkit-transform\",i.transitionType=\"webkitTransition\",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType=\"msTransform\",i.transformType=\"-ms-transform\",i.transitionType=\"msTransition\",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType=\"transform\",i.transformType=\"transform\",i.transitionType=\"transition\"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(\".slick-slide\").removeClass(\"slick-active slick-center slick-current\").attr(\"aria-hidden\",\"true\"),n.$slides.eq(i).addClass(\"slick-current\"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass(\"slick-center\"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass(\"slick-center\")),n.$slides.eq(i).addClass(\"slick-center\")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):t.length<=n.options.slidesToShow?t.addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):t.slice(o,o+n.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"));\"ondemand\"!==n.options.lazyLoad&&\"anticipated\"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",t-s.slideCount).prependTo(s.$slideTrack).addClass(\"slick-cloned\");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",t+s.slideCount).appendTo(s.$slideTrack).addClass(\"slick-cloned\");s.$slideTrack.find(\".slick-cloned\").find(\"[id]\").each(function(){i(this).attr(\"id\",\"\")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(\".slick-slide\")?i(e.target):i(e.target).parents(\".slick-slide\"),s=parseInt(o.attr(\"data-slick-index\"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger(\"beforeChange\",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick(\"getSlick\")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass(\"slick-loading\")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?\"left\":\"right\":o<=360&&o>=315?!1===s.options.rtl?\"left\":\"right\":o>=135&&o<=225?!1===s.options.rtl?\"right\":\"left\":!0===s.options.verticalSwiping?o>=35&&o<=135?\"down\":\"up\":\"vertical\"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger(\"edge\",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case\"left\":case\"down\":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case\"right\":case\"up\":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}\"vertical\"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger(\"swipe\",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||\"ontouchend\"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf(\"mouse\")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case\"start\":e.swipeStart(i);break;case\"move\":e.swipeMove(i);break;case\"end\":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&\"right\"===t||l.currentSlide>=l.getDotCount()&&\"left\"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(\".slick-cloned\",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass(\"slick-slide slick-active slick-visible slick-current\").attr(\"aria-hidden\",\"true\").css(\"width\",\"\")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger(\"unslick\",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\"),i.$nextArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\"),0===i.currentSlide?(i.$prevArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),i.$nextArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),i.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),i.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find(\"li\").removeClass(\"slick-active\").end(),i.$dots.find(\"li\").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass(\"slick-active\"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if(\"object\"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/slick-carousel/slick/slick.min.js\n// module id = 8\n// module chunks = 0","/*! http://tinynav.viljamis.com v1.2 by @viljamis */\n(function ($, window, i) {\n  $.fn.tinyNav = function (options) {\n\n    // Default settings\n    var settings = $.extend({\n      'active' : 'selected', // String: Set the \"active\" class\n      'header' : '', // String: Specify text for \"header\" and show header instead of the active item\n      'indent' : '- ', // String: Specify text for indenting sub-items\n      'label'  : '', // String: sets the <label> text for the <select> (if not set, no label will be added)\n      'addHashHistory': false\n    }, options);\n\n    return this.each(function () {\n\n      // Used for namespacing\n      i++;\n\n      var $nav = $(this),\n        // Namespacing\n        namespace = 'tinynav',\n        namespace_i = namespace + i,\n        l_namespace_i = '.l_' + namespace_i,\n        $select = $('<select/>').attr(\"id\", namespace_i).addClass(namespace + ' ' + namespace_i);\n\n      if ($nav.is('ul,ol')) {\n\n        if (settings.header !== '') {\n          $select.append(\n            $('<option/>').text(settings.header)\n          );\n        }\n\n        // Build options\n        var options = '';\n\n        $nav\n          .addClass('l_' + namespace_i)\n          .find('a')\n          .each(function () {\n            options += '<option value=\"' + $(this).attr('href') + '\">';\n            var j;\n            for (j = 0; j < $(this).parents('ul, ol').length - 1; j++) {\n              options += settings.indent;\n            }\n            options += $(this).text() + '</option>';\n          });\n\n        // Append options into a select\n        $select.append(options);\n\n        // Select the active item\n        if (!settings.header) {\n          $select\n            .find(':eq(' + $(l_namespace_i + ' li')\n            .index($(l_namespace_i + ' li.' + settings.active)) + ')')\n            .attr('selected', true);\n        }\n  \n        if (settings.addHashHistory) {\n          // Change window location\n          $select.change(function () {\n            window.location.href = $(this).val();\n          });\n        }\n\n        // Inject select\n        $(l_namespace_i).after($select);\n\n        // Inject label\n        if (settings.label) {\n          $select.before(\n            $(\"<label/>\")\n              .attr(\"for\", namespace_i)\n              .addClass(namespace + '_label ' + namespace_i + '_label')\n              .append(settings.label)\n          );\n        }\n\n      }\n\n    });\n\n  };\n})(jQuery, window, 0);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/tinynav/dist/tinynav.js\n// module id = 9\n// module chunks = 0","(function ($) {\n    /* Custom JS\n\t   Feel free to break into separate files if individual functions grow to excessive sizes.\n\t   Gulp will concatenate and minify separate files automatically.\n    */\n\n    $('.sub-nav ul.nav').tinyNav({\n        active: 'selected', // String: Set the \"active\" class\n        header: 'Choose', // String: Specify text for \"header\" and show header instead of the active item\n        indent: '- ', // String: Specify text for indenting sub-items\n        label: 'Go to', // String: Sets the <label> text for the <select> (if not set, no label will be added)\n    });\n\n    $('.tinynav').on('change', function () {\n        var url = $(this).val(); // get selected value\n        if (url) {\n            // require a URL\n            window.location = url; // redirect\n        }\n        return false;\n    });\n\n    if ($(window).width() > 769) {\n        $('.sub-nav .dropdown').hover(\n            function () {\n                $(this)\n                    .find('.dropdown-menu')\n                    .first()\n                    .stop(true, true)\n                    .delay(250)\n                    .fadeIn();\n            },\n            function () {\n                $(this)\n                    .find('.dropdown-menu')\n                    .first()\n                    .stop(true, true)\n                    .delay(100)\n                    .fadeOut();\n            }\n        );\n\n        $('.sub-nav .dropdown > a').on('click', function () {\n            location.href = this.href;\n        });\n    }\n})(jQuery);\n\n\n\n// WEBPACK FOOTER //\n// ./src/js/scripts.js","jQuery(function ($) {\n    // Callbacks for MAX MEGA MENU Wordpress Plugin\n\n    const $header = $('#header');\n    const $menuParent = $('li.mega-menu-item');\n    const $megaMenuParent = $('li.mega-menu-megamenu');\n\n    // When Mega Menu is Open, add class to header\n    $menuParent.on('open_panel', function () {\n        $header.addClass('menu-visible');\n    });\n\n    $megaMenuParent.on('open_panel', function () {\n        $header.addClass('mega-menu-visible');\n    });\n\n    // When Mega Menu is Closed, remove class from header\n    $menuParent.on('close_panel', function () {\n        $header.removeClass('menu-visible');\n    });\n\n    $megaMenuParent.on('close_panel', function () {\n        $header.removeClass('mega-menu-visible');\n    });\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/js/mega-menu.js","(function ($) {\n    // Callbacks for FacetWP Wordpress Plugin\n\n    $(document).on('facetwp-refresh', function () {\n        $('.facetwp-template').animate({ opacity: 0 }, 500);\n    });\n\n    $(document).on('facetwp-loaded', function () {\n        $.each(FWP.settings.num_choices, function (key, val) {\n            var $parent = $('.facetwp-facet-' + key).closest('.filter-section');\n            0 === val ? $parent.hide() : $parent.show();\n        });\n\n        $('.facetwp-template').animate({ opacity: 1 }, 500);\n\n        if (FWP.loaded) {\n            $('html, body').animate(\n                {\n                    scrollTop: $('.facetwp-template').offset().top,\n                },\n                300\n            );\n        }\n    });\n\n    $('.enable-list-view').on('click', function (e) {\n        e.preventDefault();\n        $('.view-toggle').removeClass('active');\n        $(this)\n            .addClass('active')\n            .parents()\n            .find('#venue-results')\n            .removeClass('grid-view')\n            .addClass('list-view');\n    });\n\n    $('.enable-grid-view').on('click', function (e) {\n        e.preventDefault();\n        $('.view-toggle').removeClass('active');\n        $(this)\n            .addClass('active')\n            .parents()\n            .find('#venue-results')\n            .removeClass('list-view')\n            .addClass('grid-view');\n    });\n})(jQuery);\n\n\n\n// WEBPACK FOOTER //\n// ./src/js/facetwp.js","(function ($) {\n    const $heroSlider = $('#hero-slider');\n    const $venueSlider = $('#venue-slider');\n    const $eventsSlider = $('#events-slider');\n    const $venueTypesSlider = $('#venue-types-slider');\n    const $venueTypesSliderNav = $('#venue-types-slider-nav');\n\n    if ($('#hero-slider .slide').length > 1) {\n        // Initialize hero carousel\n        $heroSlider.slick({\n            autoplay: true,\n            autoplaySpeed: 7000,\n            infinite: true,\n            dots: true,\n            arrows: true,\n            fade: true,\n            appendArrows: '.slider-nav',\n            appendDots: '.slider-nav',\n            prevArrow:\n                \"<button type='button' class='slick-prev'><i class='fal fa-arrow-left'></i><span class='sr-only sr-only-focusable'>Previous</span></button>\",\n            nextArrow:\n                \"<button type='button' class='slick-next'><i class='fal fa-arrow-right'></i><span class='sr-only sr-only-focusable'>Next</span></button>\",\n            // customPaging: function(slider, i) {\n            //     return (\n            //         '<button class=\"tab\"><div>' +\n            //         $(slider.$slides[i]).attr('title') +\n            //         '</div></button>'\n            //     );\n            // },\n        });\n    }\n\n    if ($('#venue-slider .slide').length > 0) {\n        // Initialize venue carousel\n        $venueSlider.slick({\n            slidesToShow: 1,\n            autoplay: true,\n            autoplaySpeed: 3000,\n            infinite: true,\n            dots: true,\n            arrows: true,\n            fade: false,\n            centerMode: true,\n            // centerPadding: '40px',\n            variableWidth: true,\n            appendArrows: '.slider-nav',\n            appendDots: '.slider-nav',\n            prevArrow:\n                \"<button type='button' class='slick-prev'><i class='fal fa-arrow-left'></i></button>\",\n            nextArrow:\n                \"<button type='button' class='slick-next'><i class='fal fa-arrow-right'></i></button>\",\n        });\n    }\n\n    if (matchMedia) {\n        const mq = window.matchMedia('(min-width: 992px)');\n        mq.addListener(windowResize);\n        windowResize(mq);\n    }\n\n    function windowResize(mq) {\n        if ($('#events-slider .slide').length > 1 && !mq.matches) {\n            // Initialize events carousel\n            $eventsSlider.slick({\n                slidesToShow: 4,\n                autoplay: false,\n                infinite: false,\n                dots: false,\n                arrows: true,\n                fade: false,\n                prevArrow:\n                    \"<button type='button' class='slick-prev'><i class='fal fa-arrow-left'></i></button>\",\n                nextArrow:\n                    \"<button type='button' class='slick-next'><i class='fal fa-arrow-right'></i></button>\",\n                responsive: [\n                    {\n                        breakpoint: 992,\n                        settings: {\n                            slidesToShow: 2,\n                        },\n                    },\n                    {\n                        breakpoint: 576,\n                        settings: {\n                            slidesToShow: 1,\n                        },\n                    },\n                ],\n            });\n        }\n    }\n\n    if ($('#venue-types-slider .slide').length > 1) {\n        // Initialize venue types carousel\n        $venueTypesSlider.slick({\n            slidesToShow: 1,\n            slidesToScroll: 1,\n            autoplay: false,\n            asNavFor: '#venue-types-slider-nav',\n            dots: false,\n            arrows: false,\n            fade: true,\n            adaptiveHeight: true,\n            prevArrow:\n                \"<button type='button' class='slick-prev'><i class='fal fa-arrow-left'></i></button>\",\n            nextArrow:\n                \"<button type='button' class='slick-next'><i class='fal fa-arrow-right'></i></button>\",\n        });\n\n        $venueTypesSliderNav.slick({\n            slidesToShow: 5,\n            autoplay: false,\n            asNavFor: '#venue-types-slider',\n            dots: false,\n            arrows: false,\n            focusOnSelect: true,\n        });\n    }\n})(jQuery);\n\n\n\n// WEBPACK FOOTER //\n// ./src/js/slider-controller.js"],"sourceRoot":""}