{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/bootstrap/dist/js/bootstrap.min.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/pixel/index.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","e","this","length","configurable","writable","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","apply","arguments","forEach","getOwnPropertyDescriptors","defineProperties","a","u","Math","floor","random","document","getElementById","h","getAttribute","trim","f","querySelector","g","window","getComputedStyle","transitionDuration","transitionDelay","parseFloat","split","dispatchEvent","Event","nodeType","_","addEventListener","removeEventListener","setTimeout","v","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","b","style","parentNode","display","visibility","y","w","offsetHeight","E","jQuery","body","hasAttribute","k","set","id","T","L","C","A","Element","querySelectorAll","S","O","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","D","Boolean","replace","removeAttribute","I","N","j","P","x","R","H","mouseenter","mouseleave","B","M","uidEvent","Q","U","originalHandler","delegationSelector","F","indexOf","W","oneOff","target","q","off","type","V","on","one","charAt","slice","trigger","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","bubbles","z","K","_element","close","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closest","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","getInstance","X","Y","fn","Constructor","noConflict","$","toggle","setAttribute","G","Z","button","J","Number","tt","et","setDataAttribute","removeDataAttribute","getDataAttributes","dataset","getDataAttribute","offset","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","add","nt","matches","find","documentElement","concat","findOne","children","parents","Node","ELEMENT_NODE","prev","previousElementSibling","next","nextElementSibling","it","st","interval","keyboard","slide","pause","wrap","touch","rt","at","TOUCH","PEN","lt","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","to","_getItemIndex","_handleSwipe","abs","_keydown","_addTouchEventListeners","_e","pointerType","clientX","touches","clearTimeout","tagName","_getItemByDirection","_triggerSlideEvent","relatedTarget","direction","from","_setActiveIndicatorElement","parseInt","defaultInterval","carouselInterface","TypeError","ride","dataApiClickHandler","ct","ut","ht","ft","parent","dt","gt","_isTransitioning","_triggerArray","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","collapseInterface","_getDimension","setTransitioning","jquery","pt","mt","_t","vt","bt","flip","boundary","reference","popperConfig","yt","wt","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","clearMenus","getParentFromElement","_getPopperConfig","focus","destroy","update","scheduleUpdate","stopPropagation","Default","DefaultType","_getPlacement","_getOffset","offsets","placement","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","clickEvent","dataApiKeydownHandler","Et","kt","Tt","backdrop","Lt","Ct","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","handleUpdate","appendChild","_enforceFocus","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","className","currentTarget","scrollHeight","clientHeight","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","marginRight","width","clientWidth","At","St","modal","Ot","Dt","It","jt","DOMParser","parseFromString","nodeName","attributes","nodeValue","innerHTML","Pt","xt","Rt","Ht","animation","template","title","delay","html","selector","container","fallbackPlacement","sanitize","sanitizeFn","whiteList","Bt","AUTO","TOP","RIGHT","BOTTOM","LEFT","Mt","area","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","Qt","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Ut","_isEnabled","_timeout","_hoverState","_activeTrigger","element","config","tip","_setListeners","DATA_KEY","enable","disable","toggleEnabled","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","attachShadow","getRootNode","ShadowRoot","ownerDocument","NAME","setContent","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","_cleanTipClass","hover","getTitle","setElementContent","textContent","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTitle","content","map","instance","popper","Ft","Wt","Vt","qt","zt","Kt","Xt","Yt","__proto__","_getContent","$t","Gt","Zt","Jt","method","te","ee","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","_getScrollTop","_getScrollHeight","height","sort","pageYOffset","max","_getOffsetHeight","innerHeight","_activate","_clear","join","ne","ie","oe","_transitionComplete","se","re","tab","ae","autohide","le","ce","ue","he","toast","Alert","Button","Carousel","Collapse","Dropdown","Modal","Popover","ScrollSpy","Tab","Toast","Tooltip","webpackPolyfill","deprecate","paths","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","called","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","defaultView","getParentNode","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","undefined","upperSide","scrollingElement","includeScroll","rect","subtract","modifier","bottom","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","props","descriptor","protoProps","staticProps","_extends","assign","source","getClientRect","result","sizes","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","padding","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","marginBottom","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","data","ends","prop","findIndex","cur","console","warn","isDestroyed","arrowStyles","flipped","options","positionFixed","isCreated","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","prefix","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","cancelAnimationFrame","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","opSide","_data$offsets$arrow","arrowElement","len","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","onLoad","modifierOptions","Popper","_this","requestAnimationFrame","Utils","global","PopperUtils","Function","item","detail","initCustomEvent","Date","getTime","ignore","header","topOnEmptyHash","speed","speedAsDuration","durationMax","durationMin","clip","easing","customEasing","updateURL","popstate","emitEvents","substr","String","charCodeAt","InvalidCharacterError","activeElement","outline","scrollTo","anchor","cancelScroll","history","pushState","smoothScroll","JSON","stringify","matchMedia","metaKey","ctrlKey","shiftKey","hostname","location","pathname","href","decodeURIComponent","replaceState","animateScroll","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","fire","params","evt","stopEverything","stopImmediatePropagation","delegate","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","text","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","parse","head","isCrossDomain","originAnchor","urlAnchor","protocol","toArray","serializeElement","additionalParam","inputs","elements","option","selected","checked","encodeURIComponent","formElements","form","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","action","isRemote","handleRemote","enctype","FormData","append","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","ajaxPrefilter","originalOptions","_rails_loaded","Turbolinks","supported","visit","controller","clearCache","setProgressBarDelay","copyObject","defer","throttle","dispatch","uuid","Location","absoluteURL","requestURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isPrefixedBy","isEqualTo","toCacheKey","toJSON","valueOf","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","timeout","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","cancel","abort","lengthComputable","loaded","total","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","onload","onerror","ontimeout","onabort","progress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","insertBefore","firstChild","opacity","trickleInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","started","stop","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","childNodes","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","clone","cloneNode","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","replaceChild","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","pageXOffset","scrollPositionChanged","SnapshotCache","size","snapshots","has","read","put","write","splice","unshift","Visit","performScroll","_t8","identifier","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","_t9","Controller","clickBubbled","clickCaptured","view","scrollManager","startHistory","stopHistory","cache","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","which","altKey","nodeIsVisitable","currentScript","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","substring","rhex","hex","toUtf8","unescape","hexToBinaryString","bytes","fromCharCode","SparkMD5","reset","ArrayBuffer","clamp","val","num","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","setState","hashBinary","first","second","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","toArray$1","isArray","BlobRecord","checksum","filename","content_type","byte_size","responseType","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","notify","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","submitButtonsByForm","WeakMap","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","submitForm","ActiveStorage","channels","require","webpackEmptyContext","req","_event","tooltipTriggerEl","bootstrap","popoverTriggerEl","SmoothScroll"],"mappings":"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","file":"js/application-34f52800f3e6d01ff609.js","sourcesContent":[" \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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = e(require(\"popper.js\")) : \"function\" == typeof define && define.amd ? define([\"popper.js\"], e) : (t = t || self).bootstrap = e(t.Popper);\n}(this, function (t) {\n \"use strict\";\n\n function e(t, e) {\n for (var n = 0; n < e.length; n++) {\n var i = e[n];\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(t, i.key, i);\n }\n }\n\n function n(t, n, i) {\n return n && e(t.prototype, n), i && e(t, i), t;\n }\n\n function i(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n\n function o(t, e) {\n var n = Object.keys(t);\n\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(t);\n e && (i = i.filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), n.push.apply(n, i);\n }\n\n return n;\n }\n\n function s(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = null != arguments[e] ? arguments[e] : {};\n e % 2 ? o(Object(n), !0).forEach(function (e) {\n i(t, e, n[e]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : o(Object(n)).forEach(function (e) {\n Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e));\n });\n }\n\n return t;\n }\n\n t = t && Object.prototype.hasOwnProperty.call(t, \"default\") ? t[\"default\"] : t;\n\n var r,\n a,\n l,\n c,\n u = function u(t) {\n do {\n t += Math.floor(1e6 * Math.random());\n } while (document.getElementById(t));\n\n return t;\n },\n h = function h(t) {\n var e = t.getAttribute(\"data-target\");\n\n if (!e || \"#\" === e) {\n var n = t.getAttribute(\"href\");\n e = n && \"#\" !== n ? n.trim() : null;\n }\n\n return e;\n },\n f = function f(t) {\n var e = h(t);\n return e && document.querySelector(e) ? e : null;\n },\n d = function d(t) {\n var e = h(t);\n return e ? document.querySelector(e) : null;\n },\n g = function g(t) {\n if (!t) return 0;\n var e = window.getComputedStyle(t),\n n = e.transitionDuration,\n i = e.transitionDelay,\n o = parseFloat(n),\n s = parseFloat(i);\n return o || s ? (n = n.split(\",\")[0], i = i.split(\",\")[0], 1e3 * (parseFloat(n) + parseFloat(i))) : 0;\n },\n p = function p(t) {\n t.dispatchEvent(new Event(\"transitionend\"));\n },\n m = function m(t) {\n return (t[0] || t).nodeType;\n },\n _ = function _(t, e) {\n var n = !1,\n i = e + 5;\n t.addEventListener(\"transitionend\", function e() {\n n = !0, t.removeEventListener(\"transitionend\", e);\n }), setTimeout(function () {\n n || p(t);\n }, i);\n },\n v = function v(t, e, n) {\n Object.keys(n).forEach(function (i) {\n var o,\n s = n[i],\n r = e[i],\n a = r && m(r) ? \"element\" : null == (o = r) ? \"\" + o : {}.toString.call(o).match(/\\s([a-z]+)/i)[1].toLowerCase();\n if (!new RegExp(s).test(a)) throw new Error(t.toUpperCase() + ': Option \"' + i + '\" provided type \"' + a + '\" but expected type \"' + s + '\".');\n });\n },\n b = function b(t) {\n if (!t) return !1;\n\n if (t.style && t.parentNode && t.parentNode.style) {\n var e = getComputedStyle(t),\n n = getComputedStyle(t.parentNode);\n return \"none\" !== e.display && \"none\" !== n.display && \"hidden\" !== e.visibility;\n }\n\n return !1;\n },\n y = function y() {\n return function () {};\n },\n w = function w(t) {\n return t.offsetHeight;\n },\n E = function E() {\n var t = window.jQuery;\n return t && !document.body.hasAttribute(\"data-no-jquery\") ? t : null;\n },\n k = (r = {}, a = 1, {\n set: function set(t, e, n) {\n void 0 === t.key && (t.key = {\n key: e,\n id: a\n }, a++), r[t.key.id] = n;\n },\n get: function get(t, e) {\n if (!t || void 0 === t.key) return null;\n var n = t.key;\n return n.key === e ? r[n.id] : null;\n },\n \"delete\": function _delete(t, e) {\n if (void 0 !== t.key) {\n var n = t.key;\n n.key === e && (delete r[n.id], delete t.key);\n }\n }\n }),\n T = function T(t, e, n) {\n k.set(t, e, n);\n },\n L = function L(t, e) {\n return k.get(t, e);\n },\n C = function C(t, e) {\n k[\"delete\"](t, e);\n },\n A = Element.prototype.querySelectorAll,\n S = Element.prototype.querySelector,\n O = (l = new CustomEvent(\"Bootstrap\", {\n cancelable: !0\n }), (c = document.createElement(\"div\")).addEventListener(\"Bootstrap\", function () {\n return null;\n }), l.preventDefault(), c.dispatchEvent(l), l.defaultPrevented),\n D = /:scope\\b/;\n\n (function () {\n var t = document.createElement(\"div\");\n\n try {\n t.querySelectorAll(\":scope *\");\n } catch (t) {\n return !1;\n }\n\n return !0;\n })() || (A = function A(t) {\n if (!D.test(t)) return this.querySelectorAll(t);\n var e = Boolean(this.id);\n e || (this.id = u(\"scope\"));\n var n = null;\n\n try {\n t = t.replace(D, \"#\" + this.id), n = this.querySelectorAll(t);\n } finally {\n e || this.removeAttribute(\"id\");\n }\n\n return n;\n }, S = function S(t) {\n if (!D.test(t)) return this.querySelector(t);\n var e = A.call(this, t);\n return void 0 !== e[0] ? e[0] : null;\n });\n var I = E(),\n N = /[^.]*(?=\\..*)\\.|.*/,\n j = /\\..*/,\n P = /::\\d+$/,\n x = {},\n R = 1,\n H = {\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n },\n B = [\"click\", \"dblclick\", \"mouseup\", \"mousedown\", \"contextmenu\", \"mousewheel\", \"DOMMouseScroll\", \"mouseover\", \"mouseout\", \"mousemove\", \"selectstart\", \"selectend\", \"keydown\", \"keypress\", \"keyup\", \"orientationchange\", \"touchstart\", \"touchmove\", \"touchend\", \"touchcancel\", \"pointerdown\", \"pointermove\", \"pointerup\", \"pointerleave\", \"pointercancel\", \"gesturestart\", \"gesturechange\", \"gestureend\", \"focus\", \"blur\", \"change\", \"reset\", \"select\", \"submit\", \"focusin\", \"focusout\", \"load\", \"unload\", \"beforeunload\", \"resize\", \"move\", \"DOMContentLoaded\", \"readystatechange\", \"error\", \"abort\", \"scroll\"];\n\n function M(t, e) {\n return e && e + \"::\" + R++ || t.uidEvent || R++;\n }\n\n function Q(t) {\n var e = M(t);\n return t.uidEvent = e, x[e] = x[e] || {}, x[e];\n }\n\n function U(t, e, n) {\n void 0 === n && (n = null);\n\n for (var i = Object.keys(t), o = 0, s = i.length; o < s; o++) {\n var r = t[i[o]];\n if (r.originalHandler === e && r.delegationSelector === n) return r;\n }\n\n return null;\n }\n\n function F(t, e, n) {\n var i = \"string\" == typeof e,\n o = i ? n : e,\n s = t.replace(j, \"\"),\n r = H[s];\n return r && (s = r), B.indexOf(s) > -1 || (s = t), [i, o, s];\n }\n\n function W(t, e, n, i, o) {\n if (\"string\" == typeof e && t) {\n n || (n = i, i = null);\n var s = F(e, n, i),\n r = s[0],\n a = s[1],\n l = s[2],\n c = Q(t),\n u = c[l] || (c[l] = {}),\n h = U(u, a, r ? n : null);\n if (h) h.oneOff = h.oneOff && o;else {\n var f = M(a, e.replace(N, \"\")),\n d = r ? function (t, e, n) {\n return function i(o) {\n for (var s = t.querySelectorAll(e), r = o.target; r && r !== this; r = r.parentNode) {\n for (var a = s.length; a--;) {\n if (s[a] === r) return i.oneOff && q.off(t, o.type, n), n.apply(r, [o]);\n }\n }\n\n return null;\n };\n }(t, n, i) : function (t, e) {\n return function n(i) {\n return n.oneOff && q.off(t, i.type, e), e.apply(t, [i]);\n };\n }(t, n);\n d.delegationSelector = r ? n : null, d.originalHandler = a, d.oneOff = o, d.uidEvent = f, u[f] = d, t.addEventListener(l, d, r);\n }\n }\n }\n\n function V(t, e, n, i, o) {\n var s = U(e[n], i, o);\n s && (t.removeEventListener(n, s, Boolean(o)), delete e[n][s.uidEvent]);\n }\n\n var q = {\n on: function on(t, e, n, i) {\n W(t, e, n, i, !1);\n },\n one: function one(t, e, n, i) {\n W(t, e, n, i, !0);\n },\n off: function off(t, e, n, i) {\n if (\"string\" == typeof e && t) {\n var o = F(e, n, i),\n s = o[0],\n r = o[1],\n a = o[2],\n l = a !== e,\n c = Q(t),\n u = \".\" === e.charAt(0);\n\n if (void 0 === r) {\n u && Object.keys(c).forEach(function (n) {\n !function (t, e, n, i) {\n var o = e[n] || {};\n Object.keys(o).forEach(function (s) {\n if (s.indexOf(i) > -1) {\n var r = o[s];\n V(t, e, n, r.originalHandler, r.delegationSelector);\n }\n });\n }(t, c, n, e.slice(1));\n });\n var h = c[a] || {};\n Object.keys(h).forEach(function (n) {\n var i = n.replace(P, \"\");\n\n if (!l || e.indexOf(i) > -1) {\n var o = h[n];\n V(t, c, a, o.originalHandler, o.delegationSelector);\n }\n });\n } else {\n if (!c || !c[a]) return;\n V(t, c, a, r, s ? n : null);\n }\n }\n },\n trigger: function trigger(t, e, n) {\n if (\"string\" != typeof e || !t) return null;\n var i,\n o = e.replace(j, \"\"),\n s = e !== o,\n r = B.indexOf(o) > -1,\n a = !0,\n l = !0,\n c = !1,\n u = null;\n return s && I && (i = I.Event(e, n), I(t).trigger(i), a = !i.isPropagationStopped(), l = !i.isImmediatePropagationStopped(), c = i.isDefaultPrevented()), r ? (u = document.createEvent(\"HTMLEvents\")).initEvent(o, a, !0) : u = new CustomEvent(e, {\n bubbles: a,\n cancelable: !0\n }), void 0 !== n && Object.keys(n).forEach(function (t) {\n Object.defineProperty(u, t, {\n get: function get() {\n return n[t];\n }\n });\n }), c && (u.preventDefault(), O || Object.defineProperty(u, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n })), l && t.dispatchEvent(u), u.defaultPrevented && void 0 !== i && i.preventDefault(), u;\n }\n },\n z = \"alert\",\n K = function () {\n function t(t) {\n this._element = t, this._element && T(t, \"bs.alert\", this);\n }\n\n var e = t.prototype;\n return e.close = function (t) {\n var e = this._element;\n t && (e = this._getRootElement(t));\n\n var n = this._triggerCloseEvent(e);\n\n null === n || n.defaultPrevented || this._removeElement(e);\n }, e.dispose = function () {\n C(this._element, \"bs.alert\"), this._element = null;\n }, e._getRootElement = function (t) {\n return d(t) || t.closest(\".alert\");\n }, e._triggerCloseEvent = function (t) {\n return q.trigger(t, \"close.bs.alert\");\n }, e._removeElement = function (t) {\n var e = this;\n\n if (t.classList.remove(\"show\"), t.classList.contains(\"fade\")) {\n var n = g(t);\n q.one(t, \"transitionend\", function () {\n return e._destroyElement(t);\n }), _(t, n);\n } else this._destroyElement(t);\n }, e._destroyElement = function (t) {\n t.parentNode && t.parentNode.removeChild(t), q.trigger(t, \"closed.bs.alert\");\n }, t.jQueryInterface = function (e) {\n return this.each(function () {\n var n = L(this, \"bs.alert\");\n n || (n = new t(this)), \"close\" === e && n[e](this);\n });\n }, t.handleDismiss = function (t) {\n return function (e) {\n e && e.preventDefault(), t.close(this);\n };\n }, t.getInstance = function (t) {\n return L(t, \"bs.alert\");\n }, n(t, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }]), t;\n }();\n\n q.on(document, \"click.bs.alert.data-api\", '[data-dismiss=\"alert\"]', K.handleDismiss(new K()));\n var X = E();\n\n if (X) {\n var Y = X.fn[z];\n X.fn[z] = K.jQueryInterface, X.fn[z].Constructor = K, X.fn[z].noConflict = function () {\n return X.fn[z] = Y, K.jQueryInterface;\n };\n }\n\n var $ = function () {\n function t(t) {\n this._element = t, T(t, \"bs.button\", this);\n }\n\n var e = t.prototype;\n return e.toggle = function () {\n this._element.setAttribute(\"aria-pressed\", this._element.classList.toggle(\"active\"));\n }, e.dispose = function () {\n C(this._element, \"bs.button\"), this._element = null;\n }, t.jQueryInterface = function (e) {\n return this.each(function () {\n var n = L(this, \"bs.button\");\n n || (n = new t(this)), \"toggle\" === e && n[e]();\n });\n }, t.getInstance = function (t) {\n return L(t, \"bs.button\");\n }, n(t, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }]), t;\n }();\n\n q.on(document, \"click.bs.button.data-api\", '[data-toggle=\"button\"]', function (t) {\n t.preventDefault();\n var e = t.target.closest('[data-toggle=\"button\"]'),\n n = L(e, \"bs.button\");\n n || (n = new $(e)), n.toggle();\n });\n var G = E();\n\n if (G) {\n var Z = G.fn.button;\n G.fn.button = $.jQueryInterface, G.fn.button.Constructor = $, G.fn.button.noConflict = function () {\n return G.fn.button = Z, $.jQueryInterface;\n };\n }\n\n function J(t) {\n return \"true\" === t || \"false\" !== t && (t === Number(t).toString() ? Number(t) : \"\" === t || \"null\" === t ? null : t);\n }\n\n function tt(t) {\n return t.replace(/[A-Z]/g, function (t) {\n return \"-\" + t.toLowerCase();\n });\n }\n\n var et = {\n setDataAttribute: function setDataAttribute(t, e, n) {\n t.setAttribute(\"data-\" + tt(e), n);\n },\n removeDataAttribute: function removeDataAttribute(t, e) {\n t.removeAttribute(\"data-\" + tt(e));\n },\n getDataAttributes: function getDataAttributes(t) {\n if (!t) return {};\n var e = s({}, t.dataset);\n return Object.keys(e).forEach(function (t) {\n e[t] = J(e[t]);\n }), e;\n },\n getDataAttribute: function getDataAttribute(t, e) {\n return J(t.getAttribute(\"data-\" + tt(e)));\n },\n offset: function offset(t) {\n var e = t.getBoundingClientRect();\n return {\n top: e.top + document.body.scrollTop,\n left: e.left + document.body.scrollLeft\n };\n },\n position: function position(t) {\n return {\n top: t.offsetTop,\n left: t.offsetLeft\n };\n },\n toggleClass: function toggleClass(t, e) {\n t && (t.classList.contains(e) ? t.classList.remove(e) : t.classList.add(e));\n }\n },\n nt = {\n matches: function matches(t, e) {\n return t.matches(e);\n },\n find: function find(t, e) {\n var n;\n return void 0 === e && (e = document.documentElement), (n = []).concat.apply(n, A.call(e, t));\n },\n findOne: function findOne(t, e) {\n return void 0 === e && (e = document.documentElement), S.call(e, t);\n },\n children: function children(t, e) {\n var n,\n i = (n = []).concat.apply(n, t.children);\n return i.filter(function (t) {\n return t.matches(e);\n });\n },\n parents: function parents(t, e) {\n for (var n = [], i = t.parentNode; i && i.nodeType === Node.ELEMENT_NODE && 3 !== i.nodeType;) {\n this.matches(i, e) && n.push(i), i = i.parentNode;\n }\n\n return n;\n },\n prev: function prev(t, e) {\n for (var n = t.previousElementSibling; n;) {\n if (n.matches(e)) return [n];\n n = n.previousElementSibling;\n }\n\n return [];\n },\n next: function next(t, e) {\n for (var n = t.nextElementSibling; n;) {\n if (this.matches(n, e)) return [n];\n n = n.nextElementSibling;\n }\n\n return [];\n }\n },\n it = \"carousel\",\n ot = \".bs.carousel\",\n st = {\n interval: 5e3,\n keyboard: !0,\n slide: !1,\n pause: \"hover\",\n wrap: !0,\n touch: !0\n },\n rt = {\n interval: \"(number|boolean)\",\n keyboard: \"boolean\",\n slide: \"(boolean|string)\",\n pause: \"(string|boolean)\",\n wrap: \"boolean\",\n touch: \"boolean\"\n },\n at = {\n TOUCH: \"touch\",\n PEN: \"pen\"\n },\n lt = function () {\n function t(t, e) {\n this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = nt.findOne(\".carousel-indicators\", this._element), this._touchSupported = \"ontouchstart\" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent), this._addEventListeners(), T(t, \"bs.carousel\", this);\n }\n\n var e = t.prototype;\n return e.next = function () {\n this._isSliding || this._slide(\"next\");\n }, e.nextWhenVisible = function () {\n !document.hidden && b(this._element) && this.next();\n }, e.prev = function () {\n this._isSliding || this._slide(\"prev\");\n }, e.pause = function (t) {\n t || (this._isPaused = !0), nt.findOne(\".carousel-item-next, .carousel-item-prev\", this._element) && (p(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null;\n }, e.cycle = function (t) {\n t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config && this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval));\n }, e.to = function (t) {\n var e = this;\n this._activeElement = nt.findOne(\".active.carousel-item\", this._element);\n\n var n = this._getItemIndex(this._activeElement);\n\n if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) q.one(this._element, \"slid.bs.carousel\", function () {\n return e.to(t);\n });else {\n if (n === t) return this.pause(), void this.cycle();\n var i = t > n ? \"next\" : \"prev\";\n\n this._slide(i, this._items[t]);\n }\n }, e.dispose = function () {\n q.off(this._element, ot), C(this._element, \"bs.carousel\"), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null;\n }, e._getConfig = function (t) {\n return t = s(s({}, st), t), v(it, t, rt), t;\n }, e._handleSwipe = function () {\n var t = Math.abs(this.touchDeltaX);\n\n if (!(t <= 40)) {\n var e = t / this.touchDeltaX;\n this.touchDeltaX = 0, e > 0 && this.prev(), e < 0 && this.next();\n }\n }, e._addEventListeners = function () {\n var t = this;\n this._config.keyboard && q.on(this._element, \"keydown.bs.carousel\", function (e) {\n return t._keydown(e);\n }), \"hover\" === this._config.pause && (q.on(this._element, \"mouseenter.bs.carousel\", function (e) {\n return t.pause(e);\n }), q.on(this._element, \"mouseleave.bs.carousel\", function (e) {\n return t.cycle(e);\n })), this._config.touch && this._touchSupported && this._addTouchEventListeners();\n }, e._addTouchEventListeners = function () {\n var t = this,\n e = function e(_e) {\n t._pointerEvent && at[_e.pointerType.toUpperCase()] ? t.touchStartX = _e.clientX : t._pointerEvent || (t.touchStartX = _e.touches[0].clientX);\n },\n n = function n(e) {\n t._pointerEvent && at[e.pointerType.toUpperCase()] && (t.touchDeltaX = e.clientX - t.touchStartX), t._handleSwipe(), \"hover\" === t._config.pause && (t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout(function (e) {\n return t.cycle(e);\n }, 500 + t._config.interval));\n };\n\n nt.find(\".carousel-item img\", this._element).forEach(function (t) {\n q.on(t, \"dragstart.bs.carousel\", function (t) {\n return t.preventDefault();\n });\n }), this._pointerEvent ? (q.on(this._element, \"pointerdown.bs.carousel\", function (t) {\n return e(t);\n }), q.on(this._element, \"pointerup.bs.carousel\", function (t) {\n return n(t);\n }), this._element.classList.add(\"pointer-event\")) : (q.on(this._element, \"touchstart.bs.carousel\", function (t) {\n return e(t);\n }), q.on(this._element, \"touchmove.bs.carousel\", function (e) {\n return function (e) {\n e.touches && e.touches.length > 1 ? t.touchDeltaX = 0 : t.touchDeltaX = e.touches[0].clientX - t.touchStartX;\n }(e);\n }), q.on(this._element, \"touchend.bs.carousel\", function (t) {\n return n(t);\n }));\n }, e._keydown = function (t) {\n if (!/input|textarea/i.test(t.target.tagName)) switch (t.key) {\n case \"ArrowLeft\":\n t.preventDefault(), this.prev();\n break;\n\n case \"ArrowRight\":\n t.preventDefault(), this.next();\n }\n }, e._getItemIndex = function (t) {\n return this._items = t && t.parentNode ? nt.find(\".carousel-item\", t.parentNode) : [], this._items.indexOf(t);\n }, e._getItemByDirection = function (t, e) {\n var n = \"next\" === t,\n i = \"prev\" === t,\n o = this._getItemIndex(e),\n s = this._items.length - 1;\n\n if ((i && 0 === o || n && o === s) && !this._config.wrap) return e;\n var r = (o + (\"prev\" === t ? -1 : 1)) % this._items.length;\n return -1 === r ? this._items[this._items.length - 1] : this._items[r];\n }, e._triggerSlideEvent = function (t, e) {\n var n = this._getItemIndex(t),\n i = this._getItemIndex(nt.findOne(\".active.carousel-item\", this._element));\n\n return q.trigger(this._element, \"slide.bs.carousel\", {\n relatedTarget: t,\n direction: e,\n from: i,\n to: n\n });\n }, e._setActiveIndicatorElement = function (t) {\n if (this._indicatorsElement) {\n for (var e = nt.find(\".active\", this._indicatorsElement), n = 0; n < e.length; n++) {\n e[n].classList.remove(\"active\");\n }\n\n var i = this._indicatorsElement.children[this._getItemIndex(t)];\n\n i && i.classList.add(\"active\");\n }\n }, e._slide = function (t, e) {\n var n,\n i,\n o,\n s = this,\n r = nt.findOne(\".active.carousel-item\", this._element),\n a = this._getItemIndex(r),\n l = e || r && this._getItemByDirection(t, r),\n c = this._getItemIndex(l),\n u = Boolean(this._interval);\n\n if (\"next\" === t ? (n = \"carousel-item-left\", i = \"carousel-item-next\", o = \"left\") : (n = \"carousel-item-right\", i = \"carousel-item-prev\", o = \"right\"), l && l.classList.contains(\"active\")) this._isSliding = !1;else if (!this._triggerSlideEvent(l, o).defaultPrevented && r && l) {\n if (this._isSliding = !0, u && this.pause(), this._setActiveIndicatorElement(l), this._element.classList.contains(\"slide\")) {\n l.classList.add(i), w(l), r.classList.add(n), l.classList.add(n);\n var h = parseInt(l.getAttribute(\"data-interval\"), 10);\n h ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = h) : this._config.interval = this._config.defaultInterval || this._config.interval;\n var f = g(r);\n q.one(r, \"transitionend\", function () {\n l.classList.remove(n, i), l.classList.add(\"active\"), r.classList.remove(\"active\", i, n), s._isSliding = !1, setTimeout(function () {\n q.trigger(s._element, \"slid.bs.carousel\", {\n relatedTarget: l,\n direction: o,\n from: a,\n to: c\n });\n }, 0);\n }), _(r, f);\n } else r.classList.remove(\"active\"), l.classList.add(\"active\"), this._isSliding = !1, q.trigger(this._element, \"slid.bs.carousel\", {\n relatedTarget: l,\n direction: o,\n from: a,\n to: c\n });\n\n u && this.cycle();\n }\n }, t.carouselInterface = function (e, n) {\n var i = L(e, \"bs.carousel\"),\n o = s(s({}, st), et.getDataAttributes(e));\n \"object\" == _typeof(n) && (o = s(s({}, o), n));\n var r = \"string\" == typeof n ? n : o.slide;\n if (i || (i = new t(e, o)), \"number\" == typeof n) i.to(n);else if (\"string\" == typeof r) {\n if (void 0 === i[r]) throw new TypeError('No method named \"' + r + '\"');\n i[r]();\n } else o.interval && o.ride && (i.pause(), i.cycle());\n }, t.jQueryInterface = function (e) {\n return this.each(function () {\n t.carouselInterface(this, e);\n });\n }, t.dataApiClickHandler = function (e) {\n var n = d(this);\n\n if (n && n.classList.contains(\"carousel\")) {\n var i = s(s({}, et.getDataAttributes(n)), et.getDataAttributes(this)),\n o = this.getAttribute(\"data-slide-to\");\n o && (i.interval = !1), t.carouselInterface(n, i), o && L(n, \"bs.carousel\").to(o), e.preventDefault();\n }\n }, t.getInstance = function (t) {\n return L(t, \"bs.carousel\");\n }, n(t, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }, {\n key: \"Default\",\n get: function get() {\n return st;\n }\n }]), t;\n }();\n\n q.on(document, \"click.bs.carousel.data-api\", \"[data-slide], [data-slide-to]\", lt.dataApiClickHandler), q.on(window, \"load.bs.carousel.data-api\", function () {\n for (var t = nt.find('[data-ride=\"carousel\"]'), e = 0, n = t.length; e < n; e++) {\n lt.carouselInterface(t[e], L(t[e], \"bs.carousel\"));\n }\n });\n var ct = E();\n\n if (ct) {\n var ut = ct.fn[it];\n ct.fn[it] = lt.jQueryInterface, ct.fn[it].Constructor = lt, ct.fn[it].noConflict = function () {\n return ct.fn[it] = ut, lt.jQueryInterface;\n };\n }\n\n var ht = \"collapse\",\n ft = {\n toggle: !0,\n parent: \"\"\n },\n dt = {\n toggle: \"boolean\",\n parent: \"(string|element)\"\n },\n gt = function () {\n function t(t, e) {\n this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = nt.find('[data-toggle=\"collapse\"][href=\"#' + t.id + '\"],[data-toggle=\"collapse\"][data-target=\"#' + t.id + '\"]');\n\n for (var n = nt.find('[data-toggle=\"collapse\"]'), i = 0, o = n.length; i < o; i++) {\n var s = n[i],\n r = f(s),\n a = nt.find(r).filter(function (e) {\n return e === t;\n });\n null !== r && a.length && (this._selector = r, this._triggerArray.push(s));\n }\n\n this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle(), T(t, \"bs.collapse\", this);\n }\n\n var e = t.prototype;\n return e.toggle = function () {\n this._element.classList.contains(\"show\") ? this.hide() : this.show();\n }, e.show = function () {\n var e = this;\n\n if (!this._isTransitioning && !this._element.classList.contains(\"show\")) {\n var n, i;\n this._parent && 0 === (n = nt.find(\".show, .collapsing\", this._parent).filter(function (t) {\n return \"string\" == typeof e._config.parent ? t.getAttribute(\"data-parent\") === e._config.parent : t.classList.contains(\"collapse\");\n })).length && (n = null);\n var o = nt.findOne(this._selector);\n\n if (n) {\n var s = n.filter(function (t) {\n return o !== t;\n });\n if ((i = s[0] ? L(s[0], \"bs.collapse\") : null) && i._isTransitioning) return;\n }\n\n if (!q.trigger(this._element, \"show.bs.collapse\").defaultPrevented) {\n n && n.forEach(function (e) {\n o !== e && t.collapseInterface(e, \"hide\"), i || T(e, \"bs.collapse\", null);\n });\n\n var r = this._getDimension();\n\n this._element.classList.remove(\"collapse\"), this._element.classList.add(\"collapsing\"), this._element.style[r] = 0, this._triggerArray.length && this._triggerArray.forEach(function (t) {\n t.classList.remove(\"collapsed\"), t.setAttribute(\"aria-expanded\", !0);\n }), this.setTransitioning(!0);\n var a = \"scroll\" + (r[0].toUpperCase() + r.slice(1)),\n l = g(this._element);\n q.one(this._element, \"transitionend\", function () {\n e._element.classList.remove(\"collapsing\"), e._element.classList.add(\"collapse\", \"show\"), e._element.style[r] = \"\", e.setTransitioning(!1), q.trigger(e._element, \"shown.bs.collapse\");\n }), _(this._element, l), this._element.style[r] = this._element[a] + \"px\";\n }\n }\n }, e.hide = function () {\n var t = this;\n\n if (!this._isTransitioning && this._element.classList.contains(\"show\") && !q.trigger(this._element, \"hide.bs.collapse\").defaultPrevented) {\n var e = this._getDimension();\n\n this._element.style[e] = this._element.getBoundingClientRect()[e] + \"px\", w(this._element), this._element.classList.add(\"collapsing\"), this._element.classList.remove(\"collapse\", \"show\");\n var n = this._triggerArray.length;\n if (n > 0) for (var i = 0; i < n; i++) {\n var o = this._triggerArray[i],\n s = d(o);\n s && !s.classList.contains(\"show\") && (o.classList.add(\"collapsed\"), o.setAttribute(\"aria-expanded\", !1));\n }\n this.setTransitioning(!0);\n this._element.style[e] = \"\";\n var r = g(this._element);\n q.one(this._element, \"transitionend\", function () {\n t.setTransitioning(!1), t._element.classList.remove(\"collapsing\"), t._element.classList.add(\"collapse\"), q.trigger(t._element, \"hidden.bs.collapse\");\n }), _(this._element, r);\n }\n }, e.setTransitioning = function (t) {\n this._isTransitioning = t;\n }, e.dispose = function () {\n C(this._element, \"bs.collapse\"), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null;\n }, e._getConfig = function (t) {\n return (t = s(s({}, ft), t)).toggle = Boolean(t.toggle), v(ht, t, dt), t;\n }, e._getDimension = function () {\n return this._element.classList.contains(\"width\") ? \"width\" : \"height\";\n }, e._getParent = function () {\n var t = this,\n e = this._config.parent;\n m(e) ? void 0 === e.jquery && void 0 === e[0] || (e = e[0]) : e = nt.findOne(e);\n var n = '[data-toggle=\"collapse\"][data-parent=\"' + e + '\"]';\n return nt.find(n, e).forEach(function (e) {\n var n = d(e);\n\n t._addAriaAndCollapsedClass(n, [e]);\n }), e;\n }, e._addAriaAndCollapsedClass = function (t, e) {\n if (t) {\n var n = t.classList.contains(\"show\");\n e.length && e.forEach(function (t) {\n n ? t.classList.remove(\"collapsed\") : t.classList.add(\"collapsed\"), t.setAttribute(\"aria-expanded\", n);\n });\n }\n }, t.collapseInterface = function (e, n) {\n var i = L(e, \"bs.collapse\"),\n o = s(s(s({}, ft), et.getDataAttributes(e)), \"object\" == _typeof(n) && n ? n : {});\n\n if (!i && o.toggle && \"string\" == typeof n && /show|hide/.test(n) && (o.toggle = !1), i || (i = new t(e, o)), \"string\" == typeof n) {\n if (void 0 === i[n]) throw new TypeError('No method named \"' + n + '\"');\n i[n]();\n }\n }, t.jQueryInterface = function (e) {\n return this.each(function () {\n t.collapseInterface(this, e);\n });\n }, t.getInstance = function (t) {\n return L(t, \"bs.collapse\");\n }, n(t, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }, {\n key: \"Default\",\n get: function get() {\n return ft;\n }\n }]), t;\n }();\n\n q.on(document, \"click.bs.collapse.data-api\", '[data-toggle=\"collapse\"]', function (t) {\n \"A\" === t.target.tagName && t.preventDefault();\n var e = et.getDataAttributes(this),\n n = f(this);\n nt.find(n).forEach(function (t) {\n var n,\n i = L(t, \"bs.collapse\");\n i ? (null === i._parent && \"string\" == typeof e.parent && (i._config.parent = e.parent, i._parent = i._getParent()), n = \"toggle\") : n = e, gt.collapseInterface(t, n);\n });\n });\n var pt = E();\n\n if (pt) {\n var mt = pt.fn[ht];\n pt.fn[ht] = gt.jQueryInterface, pt.fn[ht].Constructor = gt, pt.fn[ht].noConflict = function () {\n return pt.fn[ht] = mt, gt.jQueryInterface;\n };\n }\n\n var _t = \"dropdown\",\n vt = new RegExp(\"ArrowUp|ArrowDown|Escape\"),\n bt = {\n offset: 0,\n flip: !0,\n boundary: \"scrollParent\",\n reference: \"toggle\",\n display: \"dynamic\",\n popperConfig: null\n },\n yt = {\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 wt = function () {\n function e(t, e) {\n this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners(), T(t, \"bs.dropdown\", this);\n }\n\n var i = e.prototype;\n return i.toggle = function () {\n if (!this._element.disabled && !this._element.classList.contains(\"disabled\")) {\n var t = this._element.classList.contains(\"show\");\n\n e.clearMenus(), t || this.show();\n }\n }, i.show = function () {\n if (!(this._element.disabled || this._element.classList.contains(\"disabled\") || this._menu.classList.contains(\"show\"))) {\n var n = e.getParentFromElement(this._element),\n i = {\n relatedTarget: this._element\n };\n\n if (!q.trigger(this._element, \"show.bs.dropdown\", i).defaultPrevented) {\n if (!this._inNavbar) {\n if (void 0 === t) throw new TypeError(\"Bootstrap's dropdowns require Popper.js (https://popper.js.org)\");\n var o = this._element;\n \"parent\" === this._config.reference ? o = n : m(this._config.reference) && (o = this._config.reference, void 0 !== this._config.reference.jquery && (o = this._config.reference[0])), \"scrollParent\" !== this._config.boundary && n.classList.add(\"position-static\"), this._popper = new t(o, this._menu, this._getPopperConfig());\n }\n\n var s;\n if (\"ontouchstart\" in document.documentElement && !n.closest(\".navbar-nav\")) (s = []).concat.apply(s, document.body.children).forEach(function (t) {\n return q.on(t, \"mouseover\", null, function () {});\n });\n this._element.focus(), this._element.setAttribute(\"aria-expanded\", !0), et.toggleClass(this._menu, \"show\"), et.toggleClass(this._element, \"show\"), q.trigger(n, \"shown.bs.dropdown\", i);\n }\n }\n }, i.hide = function () {\n if (!this._element.disabled && !this._element.classList.contains(\"disabled\") && this._menu.classList.contains(\"show\")) {\n var t = e.getParentFromElement(this._element),\n n = {\n relatedTarget: this._element\n };\n q.trigger(t, \"hide.bs.dropdown\", n).defaultPrevented || (this._popper && this._popper.destroy(), et.toggleClass(this._menu, \"show\"), et.toggleClass(this._element, \"show\"), q.trigger(t, \"hidden.bs.dropdown\", n));\n }\n }, i.dispose = function () {\n C(this._element, \"bs.dropdown\"), q.off(this._element, \".bs.dropdown\"), this._element = null, this._menu = null, this._popper && (this._popper.destroy(), this._popper = null);\n }, i.update = function () {\n this._inNavbar = this._detectNavbar(), this._popper && this._popper.scheduleUpdate();\n }, i._addEventListeners = function () {\n var t = this;\n q.on(this._element, \"click.bs.dropdown\", function (e) {\n e.preventDefault(), e.stopPropagation(), t.toggle();\n });\n }, i._getConfig = function (t) {\n return t = s(s(s({}, this.constructor.Default), et.getDataAttributes(this._element)), t), v(_t, t, this.constructor.DefaultType), t;\n }, i._getMenuElement = function () {\n return nt.next(this._element, \".dropdown-menu\")[0];\n }, i._getPlacement = function () {\n var t = this._element.parentNode,\n e = \"bottom-start\";\n return t.classList.contains(\"dropup\") ? (e = \"top-start\", this._menu.classList.contains(\"dropdown-menu-right\") && (e = \"top-end\")) : t.classList.contains(\"dropright\") ? e = \"right-start\" : t.classList.contains(\"dropleft\") ? e = \"left-start\" : this._menu.classList.contains(\"dropdown-menu-right\") && (e = \"bottom-end\"), e;\n }, i._detectNavbar = function () {\n return Boolean(this._element.closest(\".navbar\"));\n }, i._getOffset = function () {\n var t = this,\n e = {};\n return \"function\" == typeof this._config.offset ? e.fn = function (e) {\n return e.offsets = s(s({}, e.offsets), t._config.offset(e.offsets, t._element) || {}), e;\n } : e.offset = this._config.offset, e;\n }, i._getPopperConfig = function () {\n var t = {\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 };\n return \"static\" === this._config.display && (t.modifiers.applyStyle = {\n enabled: !1\n }), s(s({}, t), this._config.popperConfig);\n }, e.dropdownInterface = function (t, n) {\n var i = L(t, \"bs.dropdown\");\n\n if (i || (i = new e(t, \"object\" == _typeof(n) ? n : null)), \"string\" == typeof n) {\n if (void 0 === i[n]) throw new TypeError('No method named \"' + n + '\"');\n i[n]();\n }\n }, e.jQueryInterface = function (t) {\n return this.each(function () {\n e.dropdownInterface(this, t);\n });\n }, e.clearMenus = function (t) {\n if (!t || 2 !== t.button && (\"keyup\" !== t.type || \"Tab\" === t.key)) for (var n = nt.find('[data-toggle=\"dropdown\"]'), i = 0, o = n.length; i < o; i++) {\n var s = e.getParentFromElement(n[i]),\n r = L(n[i], \"bs.dropdown\"),\n a = {\n relatedTarget: n[i]\n };\n\n if (t && \"click\" === t.type && (a.clickEvent = t), r) {\n var l = r._menu;\n if (n[i].classList.contains(\"show\")) if (!(t && (\"click\" === t.type && /input|textarea/i.test(t.target.tagName) || \"keyup\" === t.type && \"Tab\" === t.key) && l.contains(t.target))) if (!q.trigger(s, \"hide.bs.dropdown\", a).defaultPrevented) {\n var c;\n if (\"ontouchstart\" in document.documentElement) (c = []).concat.apply(c, document.body.children).forEach(function (t) {\n return q.off(t, \"mouseover\", null, function () {});\n });\n n[i].setAttribute(\"aria-expanded\", \"false\"), r._popper && r._popper.destroy(), l.classList.remove(\"show\"), n[i].classList.remove(\"show\"), q.trigger(s, \"hidden.bs.dropdown\", a);\n }\n }\n }\n }, e.getParentFromElement = function (t) {\n return d(t) || t.parentNode;\n }, e.dataApiKeydownHandler = function (t) {\n if (!(/input|textarea/i.test(t.target.tagName) ? \"Space\" === t.key || \"Escape\" !== t.key && (\"ArrowDown\" !== t.key && \"ArrowUp\" !== t.key || t.target.closest(\".dropdown-menu\")) : !vt.test(t.key)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !this.classList.contains(\"disabled\"))) {\n var n = e.getParentFromElement(this),\n i = this.classList.contains(\"show\");\n if (\"Escape\" === t.key) return (this.matches('[data-toggle=\"dropdown\"]') ? this : nt.prev(this, '[data-toggle=\"dropdown\"]')[0]).focus(), void e.clearMenus();\n\n if (i && \"Space\" !== t.key) {\n var o = nt.find(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\", n).filter(b);\n\n if (o.length) {\n var s = o.indexOf(t.target);\n \"ArrowUp\" === t.key && s > 0 && s--, \"ArrowDown\" === t.key && s < o.length - 1 && s++, o[s = -1 === s ? 0 : s].focus();\n }\n } else e.clearMenus();\n }\n }, e.getInstance = function (t) {\n return L(t, \"bs.dropdown\");\n }, n(e, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }, {\n key: \"Default\",\n get: function get() {\n return bt;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return yt;\n }\n }]), e;\n }();\n\n q.on(document, \"keydown.bs.dropdown.data-api\", '[data-toggle=\"dropdown\"]', wt.dataApiKeydownHandler), q.on(document, \"keydown.bs.dropdown.data-api\", \".dropdown-menu\", wt.dataApiKeydownHandler), q.on(document, \"click.bs.dropdown.data-api\", wt.clearMenus), q.on(document, \"keyup.bs.dropdown.data-api\", wt.clearMenus), q.on(document, \"click.bs.dropdown.data-api\", '[data-toggle=\"dropdown\"]', function (t) {\n t.preventDefault(), t.stopPropagation(), wt.dropdownInterface(this, \"toggle\");\n }), q.on(document, \"click.bs.dropdown.data-api\", \".dropdown form\", function (t) {\n return t.stopPropagation();\n });\n var Et = E();\n\n if (Et) {\n var kt = Et.fn[_t];\n Et.fn[_t] = wt.jQueryInterface, Et.fn[_t].Constructor = wt, Et.fn[_t].noConflict = function () {\n return Et.fn[_t] = kt, wt.jQueryInterface;\n };\n }\n\n var Tt = {\n backdrop: !0,\n keyboard: !0,\n focus: !0,\n show: !0\n },\n Lt = {\n backdrop: \"(boolean|string)\",\n keyboard: \"boolean\",\n focus: \"boolean\",\n show: \"boolean\"\n },\n Ct = function () {\n function t(t, e) {\n this._config = this._getConfig(e), this._element = t, this._dialog = nt.findOne(\".modal-dialog\", t), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0, T(t, \"bs.modal\", this);\n }\n\n var e = t.prototype;\n return e.toggle = function (t) {\n return this._isShown ? this.hide() : this.show(t);\n }, e.show = function (t) {\n var e = this;\n\n if (!this._isShown && !this._isTransitioning) {\n this._element.classList.contains(\"fade\") && (this._isTransitioning = !0);\n var n = q.trigger(this._element, \"show.bs.modal\", {\n relatedTarget: t\n });\n this._isShown || n.defaultPrevented || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), q.on(this._element, \"click.dismiss.bs.modal\", '[data-dismiss=\"modal\"]', function (t) {\n return e.hide(t);\n }), q.on(this._dialog, \"mousedown.dismiss.bs.modal\", function () {\n q.one(e._element, \"mouseup.dismiss.bs.modal\", function (t) {\n t.target === e._element && (e._ignoreBackdropClick = !0);\n });\n }), this._showBackdrop(function () {\n return e._showElement(t);\n }));\n }\n }, e.hide = function (t) {\n var e = this;\n\n if ((t && t.preventDefault(), this._isShown && !this._isTransitioning) && !q.trigger(this._element, \"hide.bs.modal\").defaultPrevented) {\n this._isShown = !1;\n\n var n = this._element.classList.contains(\"fade\");\n\n if (n && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), q.off(document, \"focusin.bs.modal\"), this._element.classList.remove(\"show\"), q.off(this._element, \"click.dismiss.bs.modal\"), q.off(this._dialog, \"mousedown.dismiss.bs.modal\"), n) {\n var i = g(this._element);\n q.one(this._element, \"transitionend\", function (t) {\n return e._hideModal(t);\n }), _(this._element, i);\n } else this._hideModal();\n }\n }, e.dispose = function () {\n [window, this._element, this._dialog].forEach(function (t) {\n return q.off(t, \".bs.modal\");\n }), q.off(document, \"focusin.bs.modal\"), C(this._element, \"bs.modal\"), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null;\n }, e.handleUpdate = function () {\n this._adjustDialog();\n }, e._getConfig = function (t) {\n return t = s(s({}, Tt), t), v(\"modal\", t, Lt), t;\n }, e._showElement = function (t) {\n var e = this,\n n = this._element.classList.contains(\"fade\"),\n i = nt.findOne(\".modal-body\", this._dialog);\n\n this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = \"block\", this._element.removeAttribute(\"aria-hidden\"), this._element.setAttribute(\"aria-modal\", !0), this._element.setAttribute(\"role\", \"dialog\"), this._element.scrollTop = 0, i && (i.scrollTop = 0), n && w(this._element), this._element.classList.add(\"show\"), this._config.focus && this._enforceFocus();\n\n var o = function o() {\n e._config.focus && e._element.focus(), e._isTransitioning = !1, q.trigger(e._element, \"shown.bs.modal\", {\n relatedTarget: t\n });\n };\n\n if (n) {\n var s = g(this._dialog);\n q.one(this._dialog, \"transitionend\", o), _(this._dialog, s);\n } else o();\n }, e._enforceFocus = function () {\n var t = this;\n q.off(document, \"focusin.bs.modal\"), q.on(document, \"focusin.bs.modal\", function (e) {\n document === e.target || t._element === e.target || t._element.contains(e.target) || t._element.focus();\n });\n }, e._setEscapeEvent = function () {\n var t = this;\n this._isShown ? q.on(this._element, \"keydown.dismiss.bs.modal\", function (e) {\n t._config.keyboard && \"Escape\" === e.key ? (e.preventDefault(), t.hide()) : t._config.keyboard || \"Escape\" !== e.key || t._triggerBackdropTransition();\n }) : q.off(this._element, \"keydown.dismiss.bs.modal\");\n }, e._setResizeEvent = function () {\n var t = this;\n this._isShown ? q.on(window, \"resize.bs.modal\", function () {\n return t._adjustDialog();\n }) : q.off(window, \"resize.bs.modal\");\n }, e._hideModal = function () {\n var t = this;\n this._element.style.display = \"none\", this._element.setAttribute(\"aria-hidden\", !0), this._element.removeAttribute(\"aria-modal\"), this._element.removeAttribute(\"role\"), this._isTransitioning = !1, this._showBackdrop(function () {\n document.body.classList.remove(\"modal-open\"), t._resetAdjustments(), t._resetScrollbar(), q.trigger(t._element, \"hidden.bs.modal\");\n });\n }, e._removeBackdrop = function () {\n this._backdrop.parentNode.removeChild(this._backdrop), this._backdrop = null;\n }, e._showBackdrop = function (t) {\n var e = this,\n n = this._element.classList.contains(\"fade\") ? \"fade\" : \"\";\n\n if (this._isShown && this._config.backdrop) {\n if (this._backdrop = document.createElement(\"div\"), this._backdrop.className = \"modal-backdrop\", n && this._backdrop.classList.add(n), document.body.appendChild(this._backdrop), q.on(this._element, \"click.dismiss.bs.modal\", function (t) {\n e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && e._triggerBackdropTransition();\n }), n && w(this._backdrop), this._backdrop.classList.add(\"show\"), !n) return void t();\n var i = g(this._backdrop);\n q.one(this._backdrop, \"transitionend\", t), _(this._backdrop, i);\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(\"show\");\n\n var o = function o() {\n e._removeBackdrop(), t();\n };\n\n if (this._element.classList.contains(\"fade\")) {\n var s = g(this._backdrop);\n q.one(this._backdrop, \"transitionend\", o), _(this._backdrop, s);\n } else o();\n } else t();\n }, e._triggerBackdropTransition = function () {\n var t = this;\n\n if (\"static\" === this._config.backdrop) {\n if (q.trigger(this._element, \"hidePrevented.bs.modal\").defaultPrevented) return;\n\n this._element.classList.add(\"modal-static\");\n\n var e = g(this._element);\n q.one(this._element, \"transitionend\", function () {\n t._element.classList.remove(\"modal-static\");\n }), _(this._element, e), this._element.focus();\n } else this.hide();\n }, e._adjustDialog = function () {\n var t = this._element.scrollHeight > document.documentElement.clientHeight;\n !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + \"px\"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + \"px\");\n }, e._resetAdjustments = function () {\n this._element.style.paddingLeft = \"\", this._element.style.paddingRight = \"\";\n }, e._checkScrollbar = function () {\n var t = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(t.left + t.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth();\n }, e._setScrollbar = function () {\n var t = this;\n\n if (this._isBodyOverflowing) {\n nt.find(\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\").forEach(function (e) {\n var n = e.style.paddingRight,\n i = window.getComputedStyle(e)[\"padding-right\"];\n et.setDataAttribute(e, \"padding-right\", n), e.style.paddingRight = parseFloat(i) + t._scrollbarWidth + \"px\";\n }), nt.find(\".sticky-top\").forEach(function (e) {\n var n = e.style.marginRight,\n i = window.getComputedStyle(e)[\"margin-right\"];\n et.setDataAttribute(e, \"margin-right\", n), e.style.marginRight = parseFloat(i) - t._scrollbarWidth + \"px\";\n });\n var e = document.body.style.paddingRight,\n n = window.getComputedStyle(document.body)[\"padding-right\"];\n et.setDataAttribute(document.body, \"padding-right\", e), document.body.style.paddingRight = parseFloat(n) + this._scrollbarWidth + \"px\";\n }\n\n document.body.classList.add(\"modal-open\");\n }, e._resetScrollbar = function () {\n nt.find(\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\").forEach(function (t) {\n var e = et.getDataAttribute(t, \"padding-right\");\n void 0 !== e && (et.removeDataAttribute(t, \"padding-right\"), t.style.paddingRight = e);\n }), nt.find(\".sticky-top\").forEach(function (t) {\n var e = et.getDataAttribute(t, \"margin-right\");\n void 0 !== e && (et.removeDataAttribute(t, \"margin-right\"), t.style.marginRight = e);\n });\n var t = et.getDataAttribute(document.body, \"padding-right\");\n void 0 === t ? document.body.style.paddingRight = \"\" : (et.removeDataAttribute(document.body, \"padding-right\"), document.body.style.paddingRight = t);\n }, e._getScrollbarWidth = function () {\n var t = document.createElement(\"div\");\n t.className = \"modal-scrollbar-measure\", document.body.appendChild(t);\n var e = t.getBoundingClientRect().width - t.clientWidth;\n return document.body.removeChild(t), e;\n }, t.jQueryInterface = function (e, n) {\n return this.each(function () {\n var i = L(this, \"bs.modal\"),\n o = s(s(s({}, Tt), et.getDataAttributes(this)), \"object\" == _typeof(e) && e ? e : {});\n\n if (i || (i = new t(this, o)), \"string\" == typeof e) {\n if (void 0 === i[e]) throw new TypeError('No method named \"' + e + '\"');\n i[e](n);\n } else o.show && i.show(n);\n });\n }, t.getInstance = function (t) {\n return L(t, \"bs.modal\");\n }, n(t, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Tt;\n }\n }]), t;\n }();\n\n q.on(document, \"click.bs.modal.data-api\", '[data-toggle=\"modal\"]', function (t) {\n var e = this,\n n = d(this);\n \"A\" !== this.tagName && \"AREA\" !== this.tagName || t.preventDefault(), q.one(n, \"show.bs.modal\", function (t) {\n t.defaultPrevented || q.one(n, \"hidden.bs.modal\", function () {\n b(e) && e.focus();\n });\n });\n var i = L(n, \"bs.modal\");\n\n if (!i) {\n var o = s(s({}, et.getDataAttributes(n)), et.getDataAttributes(this));\n i = new Ct(n, o);\n }\n\n i.show(this);\n });\n var At = E();\n\n if (At) {\n var St = At.fn.modal;\n At.fn.modal = Ct.jQueryInterface, At.fn.modal.Constructor = Ct, At.fn.modal.noConflict = function () {\n return At.fn.modal = St, Ct.jQueryInterface;\n };\n }\n\n var Ot = [\"background\", \"cite\", \"href\", \"itemtype\", \"longdesc\", \"poster\", \"src\", \"xlink:href\"],\n Dt = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,\n It = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i,\n Nt = {\n \"*\": [\"class\", \"dir\", \"id\", \"lang\", \"role\", /^aria-[\\w-]*$/i],\n a: [\"target\", \"href\", \"title\", \"rel\"],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: [\"src\", \"srcset\", \"alt\", \"title\", \"width\", \"height\"],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n\n function jt(t, e, n) {\n var i;\n if (!t.length) return t;\n if (n && \"function\" == typeof n) return n(t);\n\n for (var o = new window.DOMParser().parseFromString(t, \"text/html\"), s = Object.keys(e), r = (i = []).concat.apply(i, o.body.querySelectorAll(\"*\")), a = function a(t, n) {\n var i,\n o = r[t],\n a = o.nodeName.toLowerCase();\n if (-1 === s.indexOf(a)) return o.parentNode.removeChild(o), \"continue\";\n var l = (i = []).concat.apply(i, o.attributes),\n c = [].concat(e[\"*\"] || [], e[a] || []);\n l.forEach(function (t) {\n (function (t, e) {\n var n = t.nodeName.toLowerCase();\n if (-1 !== e.indexOf(n)) return -1 === Ot.indexOf(n) || Boolean(t.nodeValue.match(Dt) || t.nodeValue.match(It));\n\n for (var i = e.filter(function (t) {\n return t instanceof RegExp;\n }), o = 0, s = i.length; o < s; o++) {\n if (n.match(i[o])) return !0;\n }\n\n return !1;\n })(t, c) || o.removeAttribute(t.nodeName);\n });\n }, l = 0, c = r.length; l < c; l++) {\n a(l);\n }\n\n return o.body.innerHTML;\n }\n\n var Pt = \"tooltip\",\n xt = new RegExp(\"(^|\\\\s)bs-tooltip\\\\S+\", \"g\"),\n Rt = [\"sanitize\", \"whiteList\", \"sanitizeFn\"],\n Ht = {\n animation: \"boolean\",\n template: \"string\",\n title: \"(string|element|function)\",\n trigger: \"string\",\n delay: \"(number|object)\",\n html: \"boolean\",\n selector: \"(string|boolean)\",\n placement: \"(string|function)\",\n offset: \"(number|string|function)\",\n container: \"(string|element|boolean)\",\n fallbackPlacement: \"(string|array)\",\n boundary: \"(string|element)\",\n sanitize: \"boolean\",\n sanitizeFn: \"(null|function)\",\n whiteList: \"object\",\n popperConfig: \"(null|object)\"\n },\n Bt = {\n AUTO: \"auto\",\n TOP: \"top\",\n RIGHT: \"right\",\n BOTTOM: \"bottom\",\n LEFT: \"left\"\n },\n Mt = {\n animation: !0,\n template: '
',\n trigger: \"hover focus\",\n title: \"\",\n delay: 0,\n html: !1,\n selector: !1,\n placement: \"top\",\n offset: 0,\n container: !1,\n fallbackPlacement: \"flip\",\n boundary: \"scrollParent\",\n sanitize: !0,\n sanitizeFn: null,\n whiteList: Nt,\n popperConfig: null\n },\n Qt = {\n HIDE: \"hide.bs.tooltip\",\n HIDDEN: \"hidden.bs.tooltip\",\n SHOW: \"show.bs.tooltip\",\n SHOWN: \"shown.bs.tooltip\",\n INSERTED: \"inserted.bs.tooltip\",\n CLICK: \"click.bs.tooltip\",\n FOCUSIN: \"focusin.bs.tooltip\",\n FOCUSOUT: \"focusout.bs.tooltip\",\n MOUSEENTER: \"mouseenter.bs.tooltip\",\n MOUSELEAVE: \"mouseleave.bs.tooltip\"\n },\n Ut = function () {\n function e(e, n) {\n if (void 0 === t) throw new TypeError(\"Bootstrap's tooltips require Popper.js (https://popper.js.org)\");\n this._isEnabled = !0, this._timeout = 0, this._hoverState = \"\", this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(n), this.tip = null, this._setListeners(), T(e, this.constructor.DATA_KEY, this);\n }\n\n var i = e.prototype;\n return i.enable = function () {\n this._isEnabled = !0;\n }, i.disable = function () {\n this._isEnabled = !1;\n }, i.toggleEnabled = function () {\n this._isEnabled = !this._isEnabled;\n }, i.toggle = function (t) {\n if (this._isEnabled) if (t) {\n var e = this.constructor.DATA_KEY,\n n = L(t.target, e);\n n || (n = new this.constructor(t.target, this._getDelegateConfig()), T(t.target, e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n);\n } else {\n if (this.getTipElement().classList.contains(\"show\")) return void this._leave(null, this);\n\n this._enter(null, this);\n }\n }, i.dispose = function () {\n clearTimeout(this._timeout), C(this.element, this.constructor.DATA_KEY), q.off(this.element, this.constructor.EVENT_KEY), q.off(this.element.closest(\".modal\"), \"hide.bs.modal\", this._hideModalHandler), this.tip && this.tip.parentNode.removeChild(this.tip), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null;\n }, i.show = function () {\n var e = this;\n if (\"none\" === this.element.style.display) throw new Error(\"Please use show on visible elements\");\n\n if (this.isWithContent() && this._isEnabled) {\n var n = q.trigger(this.element, this.constructor.Event.SHOW),\n i = function t(e) {\n if (!document.documentElement.attachShadow) return null;\n\n if (\"function\" == typeof e.getRootNode) {\n var n = e.getRootNode();\n return n instanceof ShadowRoot ? n : null;\n }\n\n return e instanceof ShadowRoot ? e : e.parentNode ? t(e.parentNode) : null;\n }(this.element),\n o = null === i ? this.element.ownerDocument.documentElement.contains(this.element) : i.contains(this.element);\n\n if (n.defaultPrevented || !o) return;\n var s = this.getTipElement(),\n r = u(this.constructor.NAME);\n s.setAttribute(\"id\", r), this.element.setAttribute(\"aria-describedby\", r), this.setContent(), this.config.animation && s.classList.add(\"fade\");\n\n var a = \"function\" == typeof this.config.placement ? this.config.placement.call(this, s, this.element) : this.config.placement,\n l = this._getAttachment(a);\n\n this._addAttachmentClass(l);\n\n var c,\n h = this._getContainer();\n\n if (T(s, this.constructor.DATA_KEY, this), this.element.ownerDocument.documentElement.contains(this.tip) || h.appendChild(s), q.trigger(this.element, this.constructor.Event.INSERTED), this._popper = new t(this.element, s, this._getPopperConfig(l)), s.classList.add(\"show\"), \"ontouchstart\" in document.documentElement) (c = []).concat.apply(c, document.body.children).forEach(function (t) {\n q.on(t, \"mouseover\", function () {});\n });\n\n var f = function f() {\n e.config.animation && e._fixTransition();\n var t = e._hoverState;\n e._hoverState = null, q.trigger(e.element, e.constructor.Event.SHOWN), \"out\" === t && e._leave(null, e);\n };\n\n if (this.tip.classList.contains(\"fade\")) {\n var d = g(this.tip);\n q.one(this.tip, \"transitionend\", f), _(this.tip, d);\n } else f();\n }\n }, i.hide = function () {\n var t = this,\n e = this.getTipElement(),\n n = function n() {\n \"show\" !== t._hoverState && e.parentNode && e.parentNode.removeChild(e), t._cleanTipClass(), t.element.removeAttribute(\"aria-describedby\"), q.trigger(t.element, t.constructor.Event.HIDDEN), t._popper.destroy();\n };\n\n if (!q.trigger(this.element, this.constructor.Event.HIDE).defaultPrevented) {\n var i;\n if (e.classList.remove(\"show\"), \"ontouchstart\" in document.documentElement) (i = []).concat.apply(i, document.body.children).forEach(function (t) {\n return q.off(t, \"mouseover\", y);\n });\n\n if (this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, this.tip.classList.contains(\"fade\")) {\n var o = g(e);\n q.one(e, \"transitionend\", n), _(e, o);\n } else n();\n\n this._hoverState = \"\";\n }\n }, i.update = function () {\n null !== this._popper && this._popper.scheduleUpdate();\n }, i.isWithContent = function () {\n return Boolean(this.getTitle());\n }, i.getTipElement = function () {\n if (this.tip) return this.tip;\n var t = document.createElement(\"div\");\n return t.innerHTML = this.config.template, this.tip = t.children[0], this.tip;\n }, i.setContent = function () {\n var t = this.getTipElement();\n this.setElementContent(nt.findOne(\".tooltip-inner\", t), this.getTitle()), t.classList.remove(\"fade\", \"show\");\n }, i.setElementContent = function (t, e) {\n if (null !== t) return \"object\" == _typeof(e) && m(e) ? (e.jquery && (e = e[0]), void (this.config.html ? e.parentNode !== t && (t.innerHTML = \"\", t.appendChild(e)) : t.textContent = e.textContent)) : void (this.config.html ? (this.config.sanitize && (e = jt(e, this.config.whiteList, this.config.sanitizeFn)), t.innerHTML = e) : t.textContent = e);\n }, i.getTitle = function () {\n var t = this.element.getAttribute(\"data-original-title\");\n return t || (t = \"function\" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t;\n }, i._getPopperConfig = function (t) {\n var e = this;\n return s(s({}, {\n placement: t,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: \".\" + this.constructor.NAME + \"-arrow\"\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function onCreate(t) {\n t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t);\n },\n onUpdate: function onUpdate(t) {\n return e._handlePopperPlacementChange(t);\n }\n }), this.config.popperConfig);\n }, i._addAttachmentClass = function (t) {\n this.getTipElement().classList.add(\"bs-tooltip-\" + t);\n }, i._getOffset = function () {\n var t = this,\n e = {};\n return \"function\" == typeof this.config.offset ? e.fn = function (e) {\n return e.offsets = s(s({}, e.offsets), t.config.offset(e.offsets, t.element) || {}), e;\n } : e.offset = this.config.offset, e;\n }, i._getContainer = function () {\n return !1 === this.config.container ? document.body : m(this.config.container) ? this.config.container : nt.findOne(this.config.container);\n }, i._getAttachment = function (t) {\n return Bt[t.toUpperCase()];\n }, i._setListeners = function () {\n var t = this;\n this.config.trigger.split(\" \").forEach(function (e) {\n if (\"click\" === e) q.on(t.element, t.constructor.Event.CLICK, t.config.selector, function (e) {\n return t.toggle(e);\n });else if (\"manual\" !== e) {\n var n = \"hover\" === e ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN,\n i = \"hover\" === e ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT;\n q.on(t.element, n, t.config.selector, function (e) {\n return t._enter(e);\n }), q.on(t.element, i, t.config.selector, function (e) {\n return t._leave(e);\n });\n }\n }), this._hideModalHandler = function () {\n t.element && t.hide();\n }, q.on(this.element.closest(\".modal\"), \"hide.bs.modal\", this._hideModalHandler), this.config.selector ? this.config = s(s({}, this.config), {}, {\n trigger: \"manual\",\n selector: \"\"\n }) : this._fixTitle();\n }, i._fixTitle = function () {\n var t = _typeof(this.element.getAttribute(\"data-original-title\"));\n\n (this.element.getAttribute(\"title\") || \"string\" !== t) && (this.element.setAttribute(\"data-original-title\", this.element.getAttribute(\"title\") || \"\"), this.element.setAttribute(\"title\", \"\"));\n }, i._enter = function (t, e) {\n var n = this.constructor.DATA_KEY;\n (e = e || L(t.target, n)) || (e = new this.constructor(t.target, this._getDelegateConfig()), T(t.target, n, e)), t && (e._activeTrigger[\"focusin\" === t.type ? \"focus\" : \"hover\"] = !0), e.getTipElement().classList.contains(\"show\") || \"show\" === e._hoverState ? e._hoverState = \"show\" : (clearTimeout(e._timeout), e._hoverState = \"show\", e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function () {\n \"show\" === e._hoverState && e.show();\n }, e.config.delay.show) : e.show());\n }, i._leave = function (t, e) {\n var n = this.constructor.DATA_KEY;\n (e = e || L(t.target, n)) || (e = new this.constructor(t.target, this._getDelegateConfig()), T(t.target, n, e)), t && (e._activeTrigger[\"focusout\" === t.type ? \"focus\" : \"hover\"] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = \"out\", e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function () {\n \"out\" === e._hoverState && e.hide();\n }, e.config.delay.hide) : e.hide());\n }, i._isWithActiveTrigger = function () {\n for (var t in this._activeTrigger) {\n if (this._activeTrigger[t]) return !0;\n }\n\n return !1;\n }, i._getConfig = function (t) {\n var e = et.getDataAttributes(this.element);\n return Object.keys(e).forEach(function (t) {\n -1 !== Rt.indexOf(t) && delete e[t];\n }), t && \"object\" == _typeof(t.container) && t.container.jquery && (t.container = t.container[0]), \"number\" == typeof (t = s(s(s({}, this.constructor.Default), e), \"object\" == _typeof(t) && t ? t : {})).delay && (t.delay = {\n show: t.delay,\n hide: t.delay\n }), \"number\" == typeof t.title && (t.title = t.title.toString()), \"number\" == typeof t.content && (t.content = t.content.toString()), v(Pt, t, this.constructor.DefaultType), t.sanitize && (t.template = jt(t.template, t.whiteList, t.sanitizeFn)), t;\n }, i._getDelegateConfig = function () {\n var t = {};\n if (this.config) for (var e in this.config) {\n this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);\n }\n return t;\n }, i._cleanTipClass = function () {\n var t = this.getTipElement(),\n e = t.getAttribute(\"class\").match(xt);\n null !== e && e.length > 0 && e.map(function (t) {\n return t.trim();\n }).forEach(function (e) {\n return t.classList.remove(e);\n });\n }, i._handlePopperPlacementChange = function (t) {\n var e = t.instance;\n this.tip = e.popper, this._cleanTipClass(), this._addAttachmentClass(this._getAttachment(t.placement));\n }, i._fixTransition = function () {\n var t = this.getTipElement(),\n e = this.config.animation;\n null === t.getAttribute(\"x-placement\") && (t.classList.remove(\"fade\"), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e);\n }, e.jQueryInterface = function (t) {\n return this.each(function () {\n var n = L(this, \"bs.tooltip\"),\n i = \"object\" == _typeof(t) && t;\n\n if ((n || !/dispose|hide/.test(t)) && (n || (n = new e(this, i)), \"string\" == typeof t)) {\n if (void 0 === n[t]) throw new TypeError('No method named \"' + t + '\"');\n n[t]();\n }\n });\n }, e.getInstance = function (t) {\n return L(t, \"bs.tooltip\");\n }, n(e, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Mt;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return Pt;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return \"bs.tooltip\";\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Qt;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return \".bs.tooltip\";\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return Ht;\n }\n }]), e;\n }(),\n Ft = E();\n\n if (Ft) {\n var Wt = Ft.fn[Pt];\n Ft.fn[Pt] = Ut.jQueryInterface, Ft.fn[Pt].Constructor = Ut, Ft.fn[Pt].noConflict = function () {\n return Ft.fn[Pt] = Wt, Ut.jQueryInterface;\n };\n }\n\n var Vt = \"popover\",\n qt = new RegExp(\"(^|\\\\s)bs-popover\\\\S+\", \"g\"),\n zt = s(s({}, Ut.Default), {}, {\n placement: \"right\",\n trigger: \"click\",\n content: \"\",\n template: '

'\n }),\n Kt = s(s({}, Ut.DefaultType), {}, {\n content: \"(string|element|function)\"\n }),\n Xt = {\n HIDE: \"hide.bs.popover\",\n HIDDEN: \"hidden.bs.popover\",\n SHOW: \"show.bs.popover\",\n SHOWN: \"shown.bs.popover\",\n INSERTED: \"inserted.bs.popover\",\n CLICK: \"click.bs.popover\",\n FOCUSIN: \"focusin.bs.popover\",\n FOCUSOUT: \"focusout.bs.popover\",\n MOUSEENTER: \"mouseenter.bs.popover\",\n MOUSELEAVE: \"mouseleave.bs.popover\"\n },\n Yt = function (t) {\n var e, i;\n\n function o() {\n return t.apply(this, arguments) || this;\n }\n\n i = t, (e = o).prototype = Object.create(i.prototype), e.prototype.constructor = e, e.__proto__ = i;\n var s = o.prototype;\n return s.isWithContent = function () {\n return this.getTitle() || this._getContent();\n }, s.setContent = function () {\n var t = this.getTipElement();\n this.setElementContent(nt.findOne(\".popover-header\", t), this.getTitle());\n\n var e = this._getContent();\n\n \"function\" == typeof e && (e = e.call(this.element)), this.setElementContent(nt.findOne(\".popover-body\", t), e), t.classList.remove(\"fade\", \"show\");\n }, s._addAttachmentClass = function (t) {\n this.getTipElement().classList.add(\"bs-popover-\" + t);\n }, s._getContent = function () {\n return this.element.getAttribute(\"data-content\") || this.config.content;\n }, s._cleanTipClass = function () {\n var t = this.getTipElement(),\n e = t.getAttribute(\"class\").match(qt);\n null !== e && e.length > 0 && e.map(function (t) {\n return t.trim();\n }).forEach(function (e) {\n return t.classList.remove(e);\n });\n }, o.jQueryInterface = function (t) {\n return this.each(function () {\n var e = L(this, \"bs.popover\"),\n n = \"object\" == _typeof(t) ? t : null;\n\n if ((e || !/dispose|hide/.test(t)) && (e || (e = new o(this, n), T(this, \"bs.popover\", e)), \"string\" == typeof t)) {\n if (void 0 === e[t]) throw new TypeError('No method named \"' + t + '\"');\n e[t]();\n }\n });\n }, o.getInstance = function (t) {\n return L(t, \"bs.popover\");\n }, n(o, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }, {\n key: \"Default\",\n get: function get() {\n return zt;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return Vt;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return \"bs.popover\";\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Xt;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return \".bs.popover\";\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return Kt;\n }\n }]), o;\n }(Ut),\n $t = E();\n\n if ($t) {\n var Gt = $t.fn[Vt];\n $t.fn[Vt] = Yt.jQueryInterface, $t.fn[Vt].Constructor = Yt, $t.fn[Vt].noConflict = function () {\n return $t.fn[Vt] = Gt, Yt.jQueryInterface;\n };\n }\n\n var Zt = \"scrollspy\",\n Jt = {\n offset: 10,\n method: \"auto\",\n target: \"\"\n },\n te = {\n offset: \"number\",\n method: \"string\",\n target: \"(string|element)\"\n },\n ee = function () {\n function t(t, e) {\n var n = this;\n this._element = t, this._scrollElement = \"BODY\" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + \" .nav-link,\" + this._config.target + \" .list-group-item,\" + this._config.target + \" .dropdown-item\", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, q.on(this._scrollElement, \"scroll.bs.scrollspy\", function (t) {\n return n._process(t);\n }), this.refresh(), this._process(), T(t, \"bs.scrollspy\", this);\n }\n\n var e = t.prototype;\n return e.refresh = function () {\n var t = this,\n e = this._scrollElement === this._scrollElement.window ? \"offset\" : \"position\",\n n = \"auto\" === this._config.method ? e : this._config.method,\n i = \"position\" === n ? this._getScrollTop() : 0;\n this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), nt.find(this._selector).map(function (t) {\n var e,\n o = f(t);\n\n if (o && (e = nt.findOne(o)), e) {\n var s = e.getBoundingClientRect();\n if (s.width || s.height) return [et[n](e).top + i, o];\n }\n\n return null;\n }).filter(function (t) {\n return t;\n }).sort(function (t, e) {\n return t[0] - e[0];\n }).forEach(function (e) {\n t._offsets.push(e[0]), t._targets.push(e[1]);\n });\n }, e.dispose = function () {\n C(this._element, \"bs.scrollspy\"), q.off(this._scrollElement, \".bs.scrollspy\"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null;\n }, e._getConfig = function (t) {\n if (\"string\" != typeof (t = s(s({}, Jt), \"object\" == _typeof(t) && t ? t : {})).target && m(t.target)) {\n var e = t.target.id;\n e || (e = u(Zt), t.target.id = e), t.target = \"#\" + e;\n }\n\n return v(Zt, t, te), t;\n }, e._getScrollTop = function () {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n }, e._getScrollHeight = function () {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }, e._getOffsetHeight = function () {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n }, e._process = function () {\n var t = this._getScrollTop() + this._config.offset,\n e = this._getScrollHeight(),\n n = this._config.offset + e - this._getOffsetHeight();\n\n if (this._scrollHeight !== e && this.refresh(), t >= n) {\n var i = this._targets[this._targets.length - 1];\n this._activeTarget !== i && this._activate(i);\n } else {\n if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear();\n\n for (var o = this._offsets.length; o--;) {\n this._activeTarget !== this._targets[o] && t >= this._offsets[o] && (void 0 === this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o]);\n }\n }\n }, e._activate = function (t) {\n this._activeTarget = t, this._clear();\n\n var e = this._selector.split(\",\").map(function (e) {\n return e + '[data-target=\"' + t + '\"],' + e + '[href=\"' + t + '\"]';\n }),\n n = nt.findOne(e.join(\",\"));\n\n n.classList.contains(\"dropdown-item\") ? (nt.findOne(\".dropdown-toggle\", n.closest(\".dropdown\")).classList.add(\"active\"), n.classList.add(\"active\")) : (n.classList.add(\"active\"), nt.parents(n, \".nav, .list-group\").forEach(function (t) {\n nt.prev(t, \".nav-link, .list-group-item\").forEach(function (t) {\n return t.classList.add(\"active\");\n }), nt.prev(t, \".nav-item\").forEach(function (t) {\n nt.children(t, \".nav-link\").forEach(function (t) {\n return t.classList.add(\"active\");\n });\n });\n })), q.trigger(this._scrollElement, \"activate.bs.scrollspy\", {\n relatedTarget: t\n });\n }, e._clear = function () {\n nt.find(this._selector).filter(function (t) {\n return t.classList.contains(\"active\");\n }).forEach(function (t) {\n return t.classList.remove(\"active\");\n });\n }, t.jQueryInterface = function (e) {\n return this.each(function () {\n var n = L(this, \"bs.scrollspy\");\n\n if (n || (n = new t(this, \"object\" == _typeof(e) && e)), \"string\" == typeof e) {\n if (void 0 === n[e]) throw new TypeError('No method named \"' + e + '\"');\n n[e]();\n }\n });\n }, t.getInstance = function (t) {\n return L(t, \"bs.scrollspy\");\n }, n(t, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Jt;\n }\n }]), t;\n }();\n\n q.on(window, \"load.bs.scrollspy.data-api\", function () {\n nt.find('[data-spy=\"scroll\"]').forEach(function (t) {\n return new ee(t, et.getDataAttributes(t));\n });\n });\n var ne = E();\n\n if (ne) {\n var ie = ne.fn[Zt];\n ne.fn[Zt] = ee.jQueryInterface, ne.fn[Zt].Constructor = ee, ne.fn[Zt].noConflict = function () {\n return ne.fn[Zt] = ie, ee.jQueryInterface;\n };\n }\n\n var oe = function () {\n function t(t) {\n this._element = t, T(this._element, \"bs.tab\", this);\n }\n\n var e = t.prototype;\n return e.show = function () {\n var t = this;\n\n if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(\"active\") || this._element.classList.contains(\"disabled\"))) {\n var e,\n n = d(this._element),\n i = this._element.closest(\".nav, .list-group\");\n\n if (i) {\n var o = \"UL\" === i.nodeName || \"OL\" === i.nodeName ? \":scope > li > .active\" : \".active\";\n e = (e = nt.find(o, i))[e.length - 1];\n }\n\n var s = null;\n\n if (e && (s = q.trigger(e, \"hide.bs.tab\", {\n relatedTarget: this._element\n })), !(q.trigger(this._element, \"show.bs.tab\", {\n relatedTarget: e\n }).defaultPrevented || null !== s && s.defaultPrevented)) {\n this._activate(this._element, i);\n\n var r = function r() {\n q.trigger(e, \"hidden.bs.tab\", {\n relatedTarget: t._element\n }), q.trigger(t._element, \"shown.bs.tab\", {\n relatedTarget: e\n });\n };\n\n n ? this._activate(n, n.parentNode, r) : r();\n }\n }\n }, e.dispose = function () {\n C(this._element, \"bs.tab\"), this._element = null;\n }, e._activate = function (t, e, n) {\n var i = this,\n o = (!e || \"UL\" !== e.nodeName && \"OL\" !== e.nodeName ? nt.children(e, \".active\") : nt.find(\":scope > li > .active\", e))[0],\n s = n && o && o.classList.contains(\"fade\"),\n r = function r() {\n return i._transitionComplete(t, o, n);\n };\n\n if (o && s) {\n var a = g(o);\n o.classList.remove(\"show\"), q.one(o, \"transitionend\", r), _(o, a);\n } else r();\n }, e._transitionComplete = function (t, e, n) {\n if (e) {\n e.classList.remove(\"active\");\n var i = nt.findOne(\":scope > .dropdown-menu .active\", e.parentNode);\n i && i.classList.remove(\"active\"), \"tab\" === e.getAttribute(\"role\") && e.setAttribute(\"aria-selected\", !1);\n }\n\n (t.classList.add(\"active\"), \"tab\" === t.getAttribute(\"role\") && t.setAttribute(\"aria-selected\", !0), w(t), t.classList.contains(\"fade\") && t.classList.add(\"show\"), t.parentNode && t.parentNode.classList.contains(\"dropdown-menu\")) && (t.closest(\".dropdown\") && nt.find(\".dropdown-toggle\").forEach(function (t) {\n return t.classList.add(\"active\");\n }), t.setAttribute(\"aria-expanded\", !0));\n n && n();\n }, t.jQueryInterface = function (e) {\n return this.each(function () {\n var n = L(this, \"bs.tab\") || new t(this);\n\n if (\"string\" == typeof e) {\n if (void 0 === n[e]) throw new TypeError('No method named \"' + e + '\"');\n n[e]();\n }\n });\n }, t.getInstance = function (t) {\n return L(t, \"bs.tab\");\n }, n(t, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }]), t;\n }();\n\n q.on(document, \"click.bs.tab.data-api\", '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]', function (t) {\n t.preventDefault(), (L(this, \"bs.tab\") || new oe(this)).show();\n });\n var se = E();\n\n if (se) {\n var re = se.fn.tab;\n se.fn.tab = oe.jQueryInterface, se.fn.tab.Constructor = oe, se.fn.tab.noConflict = function () {\n return se.fn.tab = re, oe.jQueryInterface;\n };\n }\n\n var ae = {\n animation: \"boolean\",\n autohide: \"boolean\",\n delay: \"number\"\n },\n le = {\n animation: !0,\n autohide: !0,\n delay: 500\n },\n ce = function () {\n function t(t, e) {\n this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners(), T(t, \"bs.toast\", this);\n }\n\n var e = t.prototype;\n return e.show = function () {\n var t = this;\n\n if (!q.trigger(this._element, \"show.bs.toast\").defaultPrevented) {\n this._config.animation && this._element.classList.add(\"fade\");\n\n var e = function e() {\n t._element.classList.remove(\"showing\"), t._element.classList.add(\"show\"), q.trigger(t._element, \"shown.bs.toast\"), t._config.autohide && (t._timeout = setTimeout(function () {\n t.hide();\n }, t._config.delay));\n };\n\n if (this._element.classList.remove(\"hide\"), w(this._element), this._element.classList.add(\"showing\"), this._config.animation) {\n var n = g(this._element);\n q.one(this._element, \"transitionend\", e), _(this._element, n);\n } else e();\n }\n }, e.hide = function () {\n var t = this;\n\n if (this._element.classList.contains(\"show\") && !q.trigger(this._element, \"hide.bs.toast\").defaultPrevented) {\n var e = function e() {\n t._element.classList.add(\"hide\"), q.trigger(t._element, \"hidden.bs.toast\");\n };\n\n if (this._element.classList.remove(\"show\"), this._config.animation) {\n var n = g(this._element);\n q.one(this._element, \"transitionend\", e), _(this._element, n);\n } else e();\n }\n }, e.dispose = function () {\n clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(\"show\") && this._element.classList.remove(\"show\"), q.off(this._element, \"click.dismiss.bs.toast\"), C(this._element, \"bs.toast\"), this._element = null, this._config = null;\n }, e._getConfig = function (t) {\n return t = s(s(s({}, le), et.getDataAttributes(this._element)), \"object\" == _typeof(t) && t ? t : {}), v(\"toast\", t, this.constructor.DefaultType), t;\n }, e._setListeners = function () {\n var t = this;\n q.on(this._element, \"click.dismiss.bs.toast\", '[data-dismiss=\"toast\"]', function () {\n return t.hide();\n });\n }, t.jQueryInterface = function (e) {\n return this.each(function () {\n var n = L(this, \"bs.toast\");\n\n if (n || (n = new t(this, \"object\" == _typeof(e) && e)), \"string\" == typeof e) {\n if (void 0 === n[e]) throw new TypeError('No method named \"' + e + '\"');\n n[e](this);\n }\n });\n }, t.getInstance = function (t) {\n return L(t, \"bs.toast\");\n }, n(t, null, [{\n key: \"VERSION\",\n get: function get() {\n return \"5.0.0-alpha1\";\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return ae;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return le;\n }\n }]), t;\n }(),\n ue = E();\n\n if (ue) {\n var he = ue.fn.toast;\n ue.fn.toast = ce.jQueryInterface, ue.fn.toast.Constructor = ce, ue.fn.toast.noConflict = function () {\n return ue.fn.toast = he, ce.jQueryInterface;\n };\n }\n\n return {\n Alert: K,\n Button: $,\n Carousel: lt,\n Collapse: gt,\n Dropdown: wt,\n Modal: Ct,\n Popover: Yt,\n ScrollSpy: ee,\n Tab: oe,\n Toast: ce,\n Tooltip: Ut\n };\n});","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.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' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\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* 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*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\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 */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\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 */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\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 */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\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 */\n\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\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\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/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\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 */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\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 */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\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 } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\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\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\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 */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\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 */\n\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 } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // 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 } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\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 */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\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 * 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 */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\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 * 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\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\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 return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(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\nvar defineProperty = function defineProperty(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 * 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 */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\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 */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // 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\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 }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // 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\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\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 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 var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\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; // 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\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\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 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 var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\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 return getClientRect(offset);\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 */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\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\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\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\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 */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\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\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\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); // In case of HTML, we need a different computation\n\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 } // Add paddings\n\n\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 return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\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 */\n\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 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 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 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 var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\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 */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\n\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 * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\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 */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\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 popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\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 * 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 */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\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 */\n\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 } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\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 */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\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\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\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 data = fn(data, modifier);\n }\n });\n return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\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 }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // 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\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\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 * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\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 * 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 */\n\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\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\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(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\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, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\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 */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\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 */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\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 */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(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 */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\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 */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\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 */\n\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); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\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 */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // 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\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\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 */\n\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 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 var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\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 * @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 */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // 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\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\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // 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\n var prefixedProperty = getSupportedPropertyName('transform'); // 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\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is 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\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\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 } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.
\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 */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\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\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\n return isRequired;\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 */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\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 var isVertical = ['left', 'right'].indexOf(placement) !== -1;\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 // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\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; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\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 return data;\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 */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.
\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.
\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 */\n\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']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\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 */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\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 * @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 */\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 var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\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 var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\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 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 var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\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 : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\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 */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\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\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\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 */\n\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]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\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\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\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 * 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 */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // 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\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // 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\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\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\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 } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\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]; // Convert the values with units to absolute pixels to allow our computations\n\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 // 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 }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\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 * @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 */\n\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 var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\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 * @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 */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // 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\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\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\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\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\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\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 data.offsets.popper = popper;\n return data;\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 */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\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 */\n\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 * @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 */\n\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 var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\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.
\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 */\n\n\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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.
\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.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\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.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\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 /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\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 * 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.
\n * These can be overridden using the `options` argument of Popper.js.
\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 */\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.
\n * By default, it is set to no-op.
\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.
\n * By default, it is set to no-op.
\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 * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\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 }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\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 }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\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\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 }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\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 } // 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 * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\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 * 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.
\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;\nexport default Popper;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! smooth-scroll v16.1.3 | (c) 2020 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\nwindow.Element && !Element.prototype.closest && (Element.prototype.closest = function (e) {\n var t,\n n = (this.document || this.ownerDocument).querySelectorAll(e),\n o = this;\n\n do {\n for (t = n.length; 0 <= --t && n.item(t) !== o;) {\n ;\n }\n } while (t < 0 && (o = o.parentElement));\n\n return o;\n}), function () {\n if (\"function\" == typeof window.CustomEvent) return;\n\n function e(e, t) {\n t = t || {\n bubbles: !1,\n cancelable: !1,\n detail: void 0\n };\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), n;\n }\n\n e.prototype = window.Event.prototype, window.CustomEvent = e;\n}(), function () {\n for (var r = 0, e = [\"ms\", \"moz\", \"webkit\", \"o\"], t = 0; t < e.length && !window.requestAnimationFrame; ++t) {\n window.requestAnimationFrame = window[e[t] + \"RequestAnimationFrame\"], window.cancelAnimationFrame = window[e[t] + \"CancelAnimationFrame\"] || window[e[t] + \"CancelRequestAnimationFrame\"];\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function (e, t) {\n var n = new Date().getTime(),\n o = Math.max(0, 16 - (n - r)),\n a = window.setTimeout(function () {\n e(n + o);\n }, o);\n return r = n + o, a;\n }), window.cancelAnimationFrame || (window.cancelAnimationFrame = function (e) {\n clearTimeout(e);\n });\n}(), function (e, t) {\n \"function\" == typeof define && define.amd ? define([], function () {\n return t(e);\n }) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? module.exports = t(e) : e.SmoothScroll = t(e);\n}(\"undefined\" != typeof global ? global : \"undefined\" != typeof window ? window : this, function (M) {\n \"use strict\";\n\n var q = {\n ignore: \"[data-scroll-ignore]\",\n header: null,\n topOnEmptyHash: !0,\n speed: 500,\n speedAsDuration: !1,\n durationMax: null,\n durationMin: null,\n clip: !0,\n offset: 0,\n easing: \"easeInOutCubic\",\n customEasing: null,\n updateURL: !0,\n popstate: !0,\n emitEvents: !0\n },\n I = function I() {\n var n = {};\n return Array.prototype.forEach.call(arguments, function (e) {\n for (var t in e) {\n if (!e.hasOwnProperty(t)) return;\n n[t] = e[t];\n }\n }), n;\n },\n r = function r(e) {\n \"#\" === e.charAt(0) && (e = e.substr(1));\n\n for (var t, n = String(e), o = n.length, a = -1, r = \"\", i = n.charCodeAt(0); ++a < o;) {\n if (0 === (t = n.charCodeAt(a))) throw new InvalidCharacterError(\"Invalid character: the input contains U+0000.\");\n 1 <= t && t <= 31 || 127 == t || 0 === a && 48 <= t && t <= 57 || 1 === a && 48 <= t && t <= 57 && 45 === i ? r += \"\\\\\" + t.toString(16) + \" \" : r += 128 <= t || 45 === t || 95 === t || 48 <= t && t <= 57 || 65 <= t && t <= 90 || 97 <= t && t <= 122 ? n.charAt(a) : \"\\\\\" + n.charAt(a);\n }\n\n return \"#\" + r;\n },\n F = function F() {\n return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight);\n },\n L = function L(e) {\n return e ? (t = e, parseInt(M.getComputedStyle(t).height, 10) + e.offsetTop) : 0;\n var t;\n },\n x = function x(e, t, n) {\n 0 === e && document.body.focus(), n || (e.focus(), document.activeElement !== e && (e.setAttribute(\"tabindex\", \"-1\"), e.focus(), e.style.outline = \"none\"), M.scrollTo(0, t));\n },\n H = function H(e, t, n, o) {\n if (t.emitEvents && \"function\" == typeof M.CustomEvent) {\n var a = new CustomEvent(e, {\n bubbles: !0,\n detail: {\n anchor: n,\n toggle: o\n }\n });\n document.dispatchEvent(a);\n }\n };\n\n return function (o, e) {\n var b,\n a,\n A,\n O,\n C = {};\n C.cancelScroll = function (e) {\n cancelAnimationFrame(O), O = null, e || H(\"scrollCancel\", b);\n }, C.animateScroll = function (a, r, e) {\n C.cancelScroll();\n var i = I(b || q, e || {}),\n c = \"[object Number]\" === Object.prototype.toString.call(a),\n t = c || !a.tagName ? null : a;\n\n if (c || t) {\n var s = M.pageYOffset;\n i.header && !A && (A = document.querySelector(i.header));\n\n var n,\n o,\n u,\n l,\n m,\n d,\n f,\n h,\n p = L(A),\n g = c ? a : function (e, t, n, o) {\n var a = 0;\n if (e.offsetParent) for (; a += e.offsetTop, e = e.offsetParent;) {\n ;\n }\n return a = Math.max(a - t - n, 0), o && (a = Math.min(a, F() - M.innerHeight)), a;\n }(t, p, parseInt(\"function\" == typeof i.offset ? i.offset(a, r) : i.offset, 10), i.clip),\n y = g - s,\n v = F(),\n w = 0,\n S = (n = y, u = (o = i).speedAsDuration ? o.speed : Math.abs(n / 1e3 * o.speed), o.durationMax && u > o.durationMax ? o.durationMax : o.durationMin && u < o.durationMin ? o.durationMin : parseInt(u, 10)),\n E = function E(e) {\n var t, n, o;\n l || (l = e), w += e - l, d = s + y * (n = m = 1 < (m = 0 === S ? 0 : w / S) ? 1 : m, \"easeInQuad\" === (t = i).easing && (o = n * n), \"easeOutQuad\" === t.easing && (o = n * (2 - n)), \"easeInOutQuad\" === t.easing && (o = n < .5 ? 2 * n * n : (4 - 2 * n) * n - 1), \"easeInCubic\" === t.easing && (o = n * n * n), \"easeOutCubic\" === t.easing && (o = --n * n * n + 1), \"easeInOutCubic\" === t.easing && (o = n < .5 ? 4 * n * n * n : (n - 1) * (2 * n - 2) * (2 * n - 2) + 1), \"easeInQuart\" === t.easing && (o = n * n * n * n), \"easeOutQuart\" === t.easing && (o = 1 - --n * n * n * n), \"easeInOutQuart\" === t.easing && (o = n < .5 ? 8 * n * n * n * n : 1 - 8 * --n * n * n * n), \"easeInQuint\" === t.easing && (o = n * n * n * n * n), \"easeOutQuint\" === t.easing && (o = 1 + --n * n * n * n * n), \"easeInOutQuint\" === t.easing && (o = n < .5 ? 16 * n * n * n * n * n : 1 + 16 * --n * n * n * n * n), t.customEasing && (o = t.customEasing(n)), o || n), M.scrollTo(0, Math.floor(d)), function (e, t) {\n var n = M.pageYOffset;\n if (e == t || n == t || (s < t && M.innerHeight + n) >= v) return C.cancelScroll(!0), x(a, t, c), H(\"scrollStop\", i, a, r), !(O = l = null);\n }(d, g) || (O = M.requestAnimationFrame(E), l = e);\n };\n\n 0 === M.pageYOffset && M.scrollTo(0, 0), f = a, h = i, c || history.pushState && h.updateURL && history.pushState({\n smoothScroll: JSON.stringify(h),\n anchor: f.id\n }, document.title, f === document.documentElement ? \"#top\" : \"#\" + f.id), \"matchMedia\" in M && M.matchMedia(\"(prefers-reduced-motion)\").matches ? x(a, Math.floor(g), !1) : (H(\"scrollStart\", i, a, r), C.cancelScroll(!0), M.requestAnimationFrame(E));\n }\n };\n\n var t = function t(e) {\n if (!e.defaultPrevented && !(0 !== e.button || e.metaKey || e.ctrlKey || e.shiftKey) && \"closest\" in e.target && (a = e.target.closest(o)) && \"a\" === a.tagName.toLowerCase() && !e.target.closest(b.ignore) && a.hostname === M.location.hostname && a.pathname === M.location.pathname && /#/.test(a.href)) {\n var t, n;\n\n try {\n t = r(decodeURIComponent(a.hash));\n } catch (e) {\n t = r(a.hash);\n }\n\n if (\"#\" === t) {\n if (!b.topOnEmptyHash) return;\n n = document.documentElement;\n } else n = document.querySelector(t);\n\n (n = n || \"#top\" !== t ? n : document.documentElement) && (e.preventDefault(), function (e) {\n if (history.replaceState && e.updateURL && !history.state) {\n var t = M.location.hash;\n t = t || \"\", history.replaceState({\n smoothScroll: JSON.stringify(e),\n anchor: t || M.pageYOffset\n }, document.title, t || M.location.href);\n }\n }(b), C.animateScroll(n, a));\n }\n },\n n = function n(e) {\n if (null !== history.state && history.state.smoothScroll && history.state.smoothScroll === JSON.stringify(b)) {\n var t = history.state.anchor;\n \"string\" == typeof t && t && !(t = document.querySelector(r(history.state.anchor))) || C.animateScroll(t, null, {\n updateURL: !1\n });\n }\n };\n\n C.destroy = function () {\n b && (document.removeEventListener(\"click\", t, !1), M.removeEventListener(\"popstate\", n, !1), C.cancelScroll(), O = A = a = b = null);\n };\n\n return function () {\n if (!(\"querySelector\" in document && \"addEventListener\" in M && \"requestAnimationFrame\" in M && \"closest\" in M.Element.prototype)) throw \"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";\n C.destroy(), b = I(q, e || {}), A = b.header ? document.querySelector(b.header) : null, document.addEventListener(\"click\", t, !1), b.updateURL && b.popstate && M.addEventListener(\"popstate\", n, !1);\n }(), C;\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n CSRFProtection(xhr);\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function visit(t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function clearCache() {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function setProgressBarDelay(t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) {\n n = t[e], r[e] = n;\n }\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) {\n r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n }\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function r(t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function e(t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function o(t, e) {\n return t.slice(0, e.length) === e;\n }, n = function n(t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t, e) {\n return function () {\n return _t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t2, e) {\n return function () {\n return _t2.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function t(_t3, e) {\n return function () {\n return _t3.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t4, e) {\n return function () {\n return _t4.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) {\n u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) {\n e = r[t].tracked, e && n.push(t);\n }\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) {\n i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n }\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) {\n o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n }\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) {\n n = i[o].elements, e(n[0], t) && (r = n[0]);\n }\n\n return r;\n }, i = function i(t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function o(t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function r(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function n(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function e(t, _e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === _e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) {\n e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n }\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function r(t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) {\n s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n }\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function n(t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) {\n o.call(e, n) && (t[n] = e[n]);\n }\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n }\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.removeChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) {\n i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n }\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) {\n a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n }\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) {\n n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n }\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function t(_t5) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", _t5.id), {\n element: e,\n permanentElement: _t5\n };\n }, r = function r(t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function t(_t6, e) {\n function n() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n r.call(e, o) && (_t6[o] = e[o]);\n }\n\n return n.prototype = e.prototype, _t6.prototype = new n(), _t6.__super__ = e.prototype, _t6;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) {\n o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n }\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t7, e) {\n return function () {\n return _t7.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) {\n e = n[t], o.push(delete this.snapshots[e]);\n }\n\n return o;\n }, r = function r(t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t8, e) {\n return function () {\n return _t8.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function n(t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t9, e) {\n return function () {\n return _t9.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) {\n if (t === document.body) return console.warn(\"You are loading Turbolinks from a