{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/src/controller.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faCheckCircle.js","webpack:///./node_modules/slideout/dist/slideout.min.js","webpack:///./node_modules/smooth-scroll/dist/smooth-scroll.min.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/hello_controller.js","webpack:///./app/javascript/controllers/navigation_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/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","EventListener","eventTarget","eventName","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","length","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","error","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","set","descriptorPattern","parseEventTarget","eventTargetName","window","document","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","toString","eventNameSuffix","e","getAttribute","Error","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","target","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","setPrototypeOf","__proto__","b","__","constructor","_super","IndexedMultimap","keysByValue","keys","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","split","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","extend","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","arguments","a","apply","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","setAttribute","removeAttribute","replace","char","attributeValueContainsToken","TargetSet","targetName","find","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","join","targetDescriptor","targetAttribute","Scope","targets","data","head","tail","filterElements","closest","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","push","Application","documentElement","router","readyState","register","load","rest","definitions","isArray","unload","identifiers","getControllerForElementAndIdentifier","console","defineTargetProperties","ancestors","getPrototypeOf","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","properties","charAt","toUpperCase","capitalize","Function","_typeof","obj","_defineProperties","props","writable","_defineProperty","_objectSpread","source","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","err","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","performance","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","createElement","IS_IE","indexOf","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","PREFIX_TO_STYLE","STYLE_TO_PREFIX","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","w","styles","hooks","shims","namespace","functions","loaded","domready","fn","setTimeout","doScroll","test","listener","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","global","process","emit","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","callback","arg","invokeCallback","subscriber","owner","settled","_state","_data","promise","handleThenable","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","catch","all","promises","results","remaining","race","picked","meaninglessTransform","x","rotate","flipX","flipY","insertCss","css","style","innerHTML","headChildren","childNodes","beforeChild","child","insertBefore","nextUniqueId","id","random","toArray","array","classArray","classList","getIconName","cls","parts","prefix","iconName","htmlEscape","str","joinStyles","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","width","height","fillBlack","abstract","force","fill","makeInlineSvgAbstract","params","_params$icons","icons","main","mask","symbol","title","maskId","titleId","extra","_params$watchable","watchable","found","widthClass","ceil","attrClass","classes","children","role","tag","args","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","class","makeLayersCounterAbstract","noop$1","preamble","end","perf","subject","initialValue","thisContext","func","bindInternal4","toHex","unicode","charCodeAt","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","_byUnicode","_byLigature","_byOldName","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","byUnicode","styles$1","getCanonicalIcon","autoFetchSvg","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","joinAttributes","noop$2","isWatched","mutators","newOuterHTML","parentNode","outerHTML","newNode","replaceChild","nest","forSvg","RegExp","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","perform","callbackFunction","frame","requestAnimationFrame","mutator","disabled","enableObservation","mo","options","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","_getCanonicalIcon","characterData","classParser","existingPrefix","existingIconName","innerText","parseTransformString","transformString","first","parseFloat","isNaN","parseMeta","_classParser","extraClasses","extraStyles","prop","styleParser","transformParser","symbolParser","extraAttributes","attributesParser","maskParser","MissingIcon","stack","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","cx","cy","opacity","styles$2","asFoundIcon","vectorData","findIcon","FontAwesomeKitConfig","styles$3","generateMutation","nodeMeta","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","generateLayersText","generateSvgReplacementMutation","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","remove","prefixes","prefixesDomQuery","candidates","resolvedMutations","onNode","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","hexValue","substr","iconIdentifier","meta","firstChild","appendChild","processable","operations","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","instance","Constructor","_classCallCheck","protoProps","staticProps","_len","_key","additions","_pullDefinitions","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","container","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","dom","i2svg","_params$node","_params$callback","watch","autoReplaceSvgRoot","autoReplace","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","api","noAuto","parse","text","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","counter","_params$title3","_params$classes3","_params$attributes3","_params$styles3","layer","assembler","_params$classes4","_params$autoReplaceSv","svgPathData","faCheckCircle","code","u","msPointerEnabled","move","h","getElementsByTagName","_startOffsetX","_currentOffsetX","_opening","_moved","_opened","_preventOpen","_touch","touch","_side","side","panel","menu","_fx","fx","_duration","duration","_tolerance","tolerance","_padding","_translateTo","padding","_orientation","_initTouchEvents","open","_setTransition","_translateXTo","transition","close","isOpen","toggle","_onScrollFn","clearTimeout","_preventMove","preventDefault","_resetTouchFn","touches","pageX","clientWidth","_onTouchCancelFn","_onTouchEndFn","abs","_onTouchMoveFn","clientX","enableTouch","disableTouch","destroy","decouple","emitter","webkitRequestAnimationFrame","on","_eventCollection","once","off","splice","C","ignore","header","topOnEmptyHash","speed","speedAsDuration","durationMax","durationMin","clip","easing","customEasing","updateURL","popstate","emitEvents","L","String","InvalidCharacterError","H","scrollHeight","offsetHeight","clientHeight","q","offsetTop","focus","activeElement","outline","scrollTo","Q","CustomEvent","bubbles","anchor","dispatchEvent","O","I","M","A","cancelAnimationFrame","cancelScroll","pageYOffset","offsetParent","min","innerHeight","S","E","floor","history","pushState","smoothScroll","JSON","stringify","matchMedia","defaultPrevented","button","metaKey","ctrlKey","shiftKey","hostname","location","pathname","href","decodeURIComponent","hash","replaceState","state","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","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","param","input","fire","evt","createEvent","initCustomEvent","cancelable","Event","stopEverything","stopPropagation","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","url","dataType","accept","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","serializeElement","additionalParam","inputs","option","selected","checked","encodeURIComponent","formElements","form","el","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","display","click","isRemote","handleRemote","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","Turbolinks","supported","visit","clearCache","setProgressBarDelay","copyObject","defer","throttle","dispatch","initEvent","uuid","Location","absoluteURL","requestURL","wrap","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","toJSON","valueOf","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","timeout","notifyApplicationBeforeRequestStart","setProgress","requestStarted","cancel","abort","lengthComputable","total","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","onload","onerror","ontimeout","onabort","progress","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","show","visible","installStylesheetElement","installProgressElement","startTrickling","hide","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","setInterval","clearInterval","textContent","className","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","onPopState","update","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","tracked","fromHeadElement","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","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","pageXOffset","scrollPositionChanged","SnapshotCache","snapshots","read","put","write","unshift","Visit","performScroll","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","Date","getTime","getTimingMetrics","snapshotCached","clickBubbled","clickCaptured","view","scrollManager","startHistory","enabled","disable","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","warn","ownerDocument","item","F","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","self","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","nextTick","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","attachEvent","task","run","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","browser","env","argv","version","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","dir","umask","webpackContext","req","webpackContextResolve","outputTarget","eve","slideout","Slideout","SmoothScroll","menu_items","anchor_items","set_menu_status","top","current","nav_item","menu_item","require","logicalName","identifierForContextKey","default","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext"],"mappings":"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","file":"js/application-ad52b8dc1da26877645e.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 = 17);\n","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function () {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function () {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function () {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function (e) {\n return \"click\";\n },\n \"button\": function (e) {\n return \"click\";\n },\n \"form\": function (e) {\n return \"submit\";\n },\n \"input\": function (e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function (e) {\n return \"change\";\n },\n \"textarea\": function (e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function () {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function () {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function () {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function () {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function () {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function () {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function () {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function () {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function () {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function () {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function () {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function () {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function () {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function () {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function () {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n console.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function () {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function () {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function () {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","var 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 === \"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) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _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\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\n\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Duotone|Brands|Free|Pro)/;\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready(fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\n\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\n\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\n\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\n\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\n\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\n\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\n\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\n\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\n\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon(_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol(_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var widthClass = \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: extra.styles\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\n\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.14.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\n\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = ('far' in styles);\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\n\nbuild();\n\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\n\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\n\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\n\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\n\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && ['fas', 'far', 'fal', 'fad', 'fab', 'fa'].indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\").concat(tag, \">\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\n\nvar disabled = false;\n\nfunction disableObservation() {\n disabled = true;\n}\n\nfunction enableObservation() {\n disabled = false;\n}\n\nvar mo = null;\n\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\n\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser(node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser(node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\n\nfunction transformParser(node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser(node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser(node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser(node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\n\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\n\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\nvar styles$2 = namespace.styles;\n\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\n\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n var headers = {};\n\n if (_typeof(WINDOW.FontAwesomeKitConfig) === 'object' && typeof window.FontAwesomeKitConfig.token === 'string') {\n headers['fa-kit-token'] = WINDOW.FontAwesomeKitConfig.token;\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(content.length === 3 ? content.substr(1, 1) : content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\n\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\n\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\n\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\n\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\n\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\n\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar prefix = 'fas';\nvar iconName = 'check-circle';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f058';\nvar svgPathData = 'M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z';\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [width, height, ligatures, unicode, svgPathData]\n};\nexports.faCheckCircle = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","!function (t) {\n if (\"object\" == typeof exports && \"undefined\" != typeof module) module.exports = t();else if (\"function\" == typeof define && define.amd) define([], t);else {\n var e;\n \"undefined\" != typeof window ? e = window : \"undefined\" != typeof global ? e = global : \"undefined\" != typeof self && (e = self), e.Slideout = t();\n }\n}(function () {\n var t, e, n;\n return function i(t, e, n) {\n function o(r, a) {\n if (!e[r]) {\n if (!t[r]) {\n var u = typeof require == \"function\" && require;\n if (!a && u) return u(r, !0);\n if (s) return s(r, !0);\n var l = new Error(\"Cannot find module '\" + r + \"'\");\n throw l.code = \"MODULE_NOT_FOUND\", l;\n }\n\n var f = e[r] = {\n exports: {}\n };\n t[r][0].call(f.exports, function (e) {\n var n = t[r][1][e];\n return o(n ? n : e);\n }, f, f.exports, i, t, e, n);\n }\n\n return e[r].exports;\n }\n\n var s = typeof require == \"function\" && require;\n\n for (var r = 0; r < n.length; r++) o(n[r]);\n\n return o;\n }({\n 1: [function (t, e, n) {\n \"use strict\";\n\n var i = t(\"decouple\");\n var o = t(\"emitter\");\n var s;\n var r = false;\n var a = window.document;\n var u = a.documentElement;\n var l = window.navigator.msPointerEnabled;\n var f = {\n start: l ? \"MSPointerDown\" : \"touchstart\",\n move: l ? \"MSPointerMove\" : \"touchmove\",\n end: l ? \"MSPointerUp\" : \"touchend\"\n };\n\n var h = function v() {\n var t = /^(Webkit|Khtml|Moz|ms|O)(?=[A-Z])/;\n var e = a.getElementsByTagName(\"script\")[0].style;\n\n for (var n in e) {\n if (t.test(n)) {\n return \"-\" + n.match(t)[0].toLowerCase() + \"-\";\n }\n }\n\n if (\"WebkitOpacity\" in e) {\n return \"-webkit-\";\n }\n\n if (\"KhtmlOpacity\" in e) {\n return \"-khtml-\";\n }\n\n return \"\";\n }();\n\n function c(t, e) {\n for (var n in e) {\n if (e[n]) {\n t[n] = e[n];\n }\n }\n\n return t;\n }\n\n function p(t, e) {\n t.prototype = c(t.prototype || {}, e.prototype);\n }\n\n function d(t) {\n while (t.parentNode) {\n if (t.getAttribute(\"data-slideout-ignore\") !== null) {\n return t;\n }\n\n t = t.parentNode;\n }\n\n return null;\n }\n\n function _(t) {\n t = t || {};\n this._startOffsetX = 0;\n this._currentOffsetX = 0;\n this._opening = false;\n this._moved = false;\n this._opened = false;\n this._preventOpen = false;\n this._touch = t.touch === undefined ? true : t.touch && true;\n this._side = t.side || \"left\";\n this.panel = t.panel;\n this.menu = t.menu;\n\n if (!this.panel.classList.contains(\"slideout-panel\")) {\n this.panel.classList.add(\"slideout-panel\");\n }\n\n if (!this.panel.classList.contains(\"slideout-panel-\" + this._side)) {\n this.panel.classList.add(\"slideout-panel-\" + this._side);\n }\n\n if (!this.menu.classList.contains(\"slideout-menu\")) {\n this.menu.classList.add(\"slideout-menu\");\n }\n\n if (!this.menu.classList.contains(\"slideout-menu-\" + this._side)) {\n this.menu.classList.add(\"slideout-menu-\" + this._side);\n }\n\n this._fx = t.fx || \"ease\";\n this._duration = parseInt(t.duration, 10) || 300;\n this._tolerance = parseInt(t.tolerance, 10) || 70;\n this._padding = this._translateTo = parseInt(t.padding, 10) || 256;\n this._orientation = this._side === \"right\" ? -1 : 1;\n this._translateTo *= this._orientation;\n\n if (this._touch) {\n this._initTouchEvents();\n }\n }\n\n p(_, o);\n\n _.prototype.open = function () {\n var t = this;\n this.emit(\"beforeopen\");\n\n if (!u.classList.contains(\"slideout-open\")) {\n u.classList.add(\"slideout-open\");\n }\n\n this._setTransition();\n\n this._translateXTo(this._translateTo);\n\n this._opened = true;\n setTimeout(function () {\n t.panel.style.transition = t.panel.style[\"-webkit-transition\"] = \"\";\n t.emit(\"open\");\n }, this._duration + 50);\n return this;\n };\n\n _.prototype.close = function () {\n var t = this;\n\n if (!this.isOpen() && !this._opening) {\n return this;\n }\n\n this.emit(\"beforeclose\");\n\n this._setTransition();\n\n this._translateXTo(0);\n\n this._opened = false;\n setTimeout(function () {\n u.classList.remove(\"slideout-open\");\n t.panel.style.transition = t.panel.style[\"-webkit-transition\"] = t.panel.style[h + \"transform\"] = t.panel.style.transform = \"\";\n t.emit(\"close\");\n }, this._duration + 50);\n return this;\n };\n\n _.prototype.toggle = function () {\n return this.isOpen() ? this.close() : this.open();\n };\n\n _.prototype.isOpen = function () {\n return this._opened;\n };\n\n _.prototype._translateXTo = function (t) {\n this._currentOffsetX = t;\n this.panel.style[h + \"transform\"] = this.panel.style.transform = \"translateX(\" + t + \"px)\";\n return this;\n };\n\n _.prototype._setTransition = function () {\n this.panel.style[h + \"transition\"] = this.panel.style.transition = h + \"transform \" + this._duration + \"ms \" + this._fx;\n return this;\n };\n\n _.prototype._initTouchEvents = function () {\n var t = this;\n this._onScrollFn = i(a, \"scroll\", function () {\n if (!t._moved) {\n clearTimeout(s);\n r = true;\n s = setTimeout(function () {\n r = false;\n }, 250);\n }\n });\n\n this._preventMove = function (e) {\n if (t._moved) {\n e.preventDefault();\n }\n };\n\n a.addEventListener(f.move, this._preventMove);\n\n this._resetTouchFn = function (e) {\n if (typeof e.touches === \"undefined\") {\n return;\n }\n\n t._moved = false;\n t._opening = false;\n t._startOffsetX = e.touches[0].pageX;\n t._preventOpen = !t._touch || !t.isOpen() && t.menu.clientWidth !== 0;\n };\n\n this.panel.addEventListener(f.start, this._resetTouchFn);\n\n this._onTouchCancelFn = function () {\n t._moved = false;\n t._opening = false;\n };\n\n this.panel.addEventListener(\"touchcancel\", this._onTouchCancelFn);\n\n this._onTouchEndFn = function () {\n if (t._moved) {\n t.emit(\"translateend\");\n t._opening && Math.abs(t._currentOffsetX) > t._tolerance ? t.open() : t.close();\n }\n\n t._moved = false;\n };\n\n this.panel.addEventListener(f.end, this._onTouchEndFn);\n\n this._onTouchMoveFn = function (e) {\n if (r || t._preventOpen || typeof e.touches === \"undefined\" || d(e.target)) {\n return;\n }\n\n var n = e.touches[0].clientX - t._startOffsetX;\n var i = t._currentOffsetX = n;\n\n if (Math.abs(i) > t._padding) {\n return;\n }\n\n if (Math.abs(n) > 20) {\n t._opening = true;\n var o = n * t._orientation;\n\n if (t._opened && o > 0 || !t._opened && o < 0) {\n return;\n }\n\n if (!t._moved) {\n t.emit(\"translatestart\");\n }\n\n if (o <= 0) {\n i = n + t._padding * t._orientation;\n t._opening = false;\n }\n\n if (!(t._moved && u.classList.contains(\"slideout-open\"))) {\n u.classList.add(\"slideout-open\");\n }\n\n t.panel.style[h + \"transform\"] = t.panel.style.transform = \"translateX(\" + i + \"px)\";\n t.emit(\"translate\", i);\n t._moved = true;\n }\n };\n\n this.panel.addEventListener(f.move, this._onTouchMoveFn);\n return this;\n };\n\n _.prototype.enableTouch = function () {\n this._touch = true;\n return this;\n };\n\n _.prototype.disableTouch = function () {\n this._touch = false;\n return this;\n };\n\n _.prototype.destroy = function () {\n this.close();\n a.removeEventListener(f.move, this._preventMove);\n this.panel.removeEventListener(f.start, this._resetTouchFn);\n this.panel.removeEventListener(\"touchcancel\", this._onTouchCancelFn);\n this.panel.removeEventListener(f.end, this._onTouchEndFn);\n this.panel.removeEventListener(f.move, this._onTouchMoveFn);\n a.removeEventListener(\"scroll\", this._onScrollFn);\n\n this.open = this.close = function () {};\n\n return this;\n };\n\n e.exports = _;\n }, {\n decouple: 2,\n emitter: 3\n }],\n 2: [function (t, e, n) {\n \"use strict\";\n\n var i = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || function (t) {\n window.setTimeout(t, 1e3 / 60);\n };\n }();\n\n function o(t, e, n) {\n var o,\n s = false;\n\n function r(t) {\n o = t;\n a();\n }\n\n function a() {\n if (!s) {\n i(u);\n s = true;\n }\n }\n\n function u() {\n n.call(t, o);\n s = false;\n }\n\n t.addEventListener(e, r, false);\n return r;\n }\n\n e.exports = o;\n }, {}],\n 3: [function (t, e, n) {\n \"use strict\";\n\n var i = function (t, e) {\n if (!(t instanceof e)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n n.__esModule = true;\n\n var o = function () {\n function t() {\n i(this, t);\n }\n\n t.prototype.on = function e(t, n) {\n this._eventCollection = this._eventCollection || {};\n this._eventCollection[t] = this._eventCollection[t] || [];\n\n this._eventCollection[t].push(n);\n\n return this;\n };\n\n t.prototype.once = function n(t, e) {\n var n = this;\n\n function i() {\n n.off(t, i);\n e.apply(this, arguments);\n }\n\n i.listener = e;\n this.on(t, i);\n return this;\n };\n\n t.prototype.off = function o(t, e) {\n var n = undefined;\n\n if (!this._eventCollection || !(n = this._eventCollection[t])) {\n return this;\n }\n\n n.forEach(function (t, i) {\n if (t === e || t.listener === e) {\n n.splice(i, 1);\n }\n });\n\n if (n.length === 0) {\n delete this._eventCollection[t];\n }\n\n return this;\n };\n\n t.prototype.emit = function s(t) {\n var e = this;\n\n for (var n = arguments.length, i = Array(n > 1 ? n - 1 : 0), o = 1; o < n; o++) {\n i[o - 1] = arguments[o];\n }\n\n var s = undefined;\n\n if (!this._eventCollection || !(s = this._eventCollection[t])) {\n return this;\n }\n\n s = s.slice(0);\n s.forEach(function (t) {\n return t.apply(e, i);\n });\n return this;\n };\n\n return t;\n }();\n\n n[\"default\"] = o;\n e.exports = n[\"default\"];\n }, {}]\n }, {}, [1])(1);\n});","/*! smooth-scroll v16.1.3 | (c) 2020 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\n!function (e, t) {\n \"function\" == typeof define && define.amd ? define([], function () {\n return t(e);\n }) : \"object\" == typeof exports ? module.exports = t(e) : e.SmoothScroll = t(e);\n}(\"undefined\" != typeof global ? global : \"undefined\" != typeof window ? window : this, function (C) {\n \"use strict\";\n\n var w = {\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 L = function () {\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 (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 H = function () {\n return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight);\n },\n q = function (e) {\n return e ? (t = e, parseInt(C.getComputedStyle(t).height, 10) + e.offsetTop) : 0;\n var t;\n },\n x = function (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\"), C.scrollTo(0, t));\n },\n Q = function (e, t, n, o) {\n if (t.emitEvents && \"function\" == typeof C.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 O,\n a,\n I,\n M,\n A = {};\n A.cancelScroll = function (e) {\n cancelAnimationFrame(M), M = null, e || Q(\"scrollCancel\", O);\n }, A.animateScroll = function (a, r, e) {\n A.cancelScroll();\n var i = L(O || w, e || {}),\n s = \"[object Number]\" === Object.prototype.toString.call(a),\n t = s || !a.tagName ? null : a;\n\n if (s || t) {\n var c = C.pageYOffset;\n i.header && !I && (I = document.querySelector(i.header));\n\n var n,\n o,\n u,\n l,\n d,\n f,\n m,\n h,\n p = q(I),\n g = s ? a : function (e, t, n, o) {\n var a = 0;\n if (e.offsetParent) for (; a += e.offsetTop, e = e.offsetParent;);\n return a = Math.max(a - t - n, 0), o && (a = Math.min(a, H() - C.innerHeight)), a;\n }(t, p, parseInt(\"function\" == typeof i.offset ? i.offset(a, r) : i.offset, 10), i.clip),\n y = g - c,\n v = H(),\n S = 0,\n E = (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 b = function (e) {\n var t, n, o;\n l || (l = e), S += e - l, f = c + y * (n = d = 1 < (d = 0 === E ? 0 : S / E) ? 1 : d, \"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), C.scrollTo(0, Math.floor(f)), function (e, t) {\n var n = C.pageYOffset;\n if (e == t || n == t || (c < t && C.innerHeight + n) >= v) return A.cancelScroll(!0), x(a, t, s), Q(\"scrollStop\", i, a, r), !(M = l = null);\n }(f, g) || (M = C.requestAnimationFrame(b), l = e);\n };\n\n 0 === C.pageYOffset && C.scrollTo(0, 0), m = a, h = i, s || history.pushState && h.updateURL && history.pushState({\n smoothScroll: JSON.stringify(h),\n anchor: m.id\n }, document.title, m === document.documentElement ? \"#top\" : \"#\" + m.id), \"matchMedia\" in C && C.matchMedia(\"(prefers-reduced-motion)\").matches ? x(a, Math.floor(g), !1) : (Q(\"scrollStart\", i, a, r), A.cancelScroll(!0), C.requestAnimationFrame(b));\n }\n };\n\n var t = function (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(O.ignore) && a.hostname === C.location.hostname && a.pathname === C.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 (!O.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 = C.location.hash;\n t = t || \"\", history.replaceState({\n smoothScroll: JSON.stringify(e),\n anchor: t || C.pageYOffset\n }, document.title, t || C.location.href);\n }\n }(O), A.animateScroll(n, a));\n }\n },\n n = function (e) {\n if (null !== history.state && history.state.smoothScroll && history.state.smoothScroll === JSON.stringify(O)) {\n var t = history.state.anchor;\n \"string\" == typeof t && t && !(t = document.querySelector(r(history.state.anchor))) || A.animateScroll(t, null, {\n updateURL: !1\n });\n }\n };\n\n A.destroy = function () {\n O && (document.removeEventListener(\"click\", t, !1), C.removeEventListener(\"popstate\", n, !1), A.cancelScroll(), M = I = a = O = null);\n };\n\n return function () {\n if (!(\"querySelector\" in document && \"addEventListener\" in C && \"requestAnimationFrame\" in C && \"closest\" in C.Element.prototype)) throw \"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";\n A.destroy(), O = L(w, e || {}), I = O.header ? document.querySelector(O.header) : null, document.addEventListener(\"click\", t, !1), O.updateURL && O.popstate && C.addEventListener(\"popstate\", n, !1);\n }(), A;\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 (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 () {\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 (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 (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 (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 (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 (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 (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 (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 (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function (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 (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function (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 (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 (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 (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 () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\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 === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","/*\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 (t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function () {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function (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 = t[e], r[e] = 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 () {\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) 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 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 (t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function (t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function (t, e) {\n return t.slice(0, e.length) === e;\n }, n = function (t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function (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, e) {\n return function () {\n return t.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, e) {\n return function () {\n return t.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, e) {\n return function () {\n return t.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++) 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 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) e = r[t].tracked, e && n.push(t);\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) i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\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) 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 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 = i[o].elements, e(n[0], t) && (r = n[0]);\n\n return r;\n }, i = function (t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function (t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function (t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function (t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function (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++) e = o[r], t.getPermanentElementById(e.id) && i.push(e);\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 (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++) s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function (t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) o.call(e, n) && (t[n] = e[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++) t = n[e], o.push(document.head.appendChild(t));\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++) t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\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++) t = n[e], o.push(document.head.removeChild(t));\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++) t = n[e], o.push(document.head.appendChild(t));\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++) i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\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++) a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\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 = i[e], t = this.createScriptElement(n), s.push(r(n, t));\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) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", t.id), {\n element: e,\n permanentElement: t\n };\n }, r = function (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, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) r.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\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++) o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\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, e) {\n return function () {\n return t.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++) e = n[t], o.push(delete this.snapshots[e]);\n\n return o;\n }, r = function (t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.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 (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, e) {\n return function () {\n return t.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;) if (t === document.body) return console.warn(\"You are loading Turbolinks from a