{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/dist/jquery-exposed.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack:///./app/frontend/images/church.jpeg","webpack:///./app/frontend/images/evlka.png","webpack:///./app/frontend/images/faq/1-100.jpg","webpack:///./app/frontend/images/faq/2-100.jpg","webpack:///./app/frontend/images/faq/3-100.jpg","webpack:///./app/frontend/images/faq/4-100.jpg","webpack:///./app/frontend/images/faq/5-100.jpg","webpack:///./app/frontend/images/faq/6-100.jpg","webpack:///./app/frontend/images/favicon.png","webpack:///./app/frontend/images/favicon/android-chrome-192x192.png","webpack:///./app/frontend/images/favicon/android-chrome-256x256.png","webpack:///./app/frontend/images/favicon/apple-touch-icon.png","webpack:///./app/frontend/images/favicon/favicon-16x16.png","webpack:///./app/frontend/images/favicon/favicon-32x32.png","webpack:///./app/frontend/images/favicon/mstile-150x150.png","webpack:///./app/frontend/images/favicon/safari-pinned-tab.svg","webpack:///./app/frontend/images/favicon_godibesuchen.png","webpack:///./app/frontend/images/footer.png","webpack:///./app/frontend/images/logo.png","webpack:///./app/frontend/images/logo_gottesdienst-besuchen.de.png","webpack:///./app/frontend/images/pdf/box.png","webpack:///./app/frontend/images/pdf/box_old.png","webpack:///./app/frontend/images/pdf/footer.png","webpack:///./app/frontend/images/pdf/header.png","webpack:///./app/frontend/packs/application.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs-exposed.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/@fortawesome/fontawesome-pro/js/fontawesome.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/ekko-lightbox/dist/ekko-lightbox.min.js","webpack:///./app/frontend/components/direct_upload.js","webpack:///./app/frontend/components/tooltip.js","webpack:///./app/frontend/images sync ^\\.\\/.*$","webpack:///./app/frontend/images/favicon/favicon.ico"],"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","___EXPOSE_LOADER_IMPORT___","___EXPOSE_LOADER_GLOBAL_THIS___","_typeof","obj","iterator","constructor","g","this","Function","e","window","isBrowser","document","navigator","timeoutDuration","longerTimeoutBrowsers","length","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","toString","getStyleComputedProperty","element","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","side","arguments","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","_extends","assign","source","getClientRect","offsets","getBoundingClientRect","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","console","warn","enabled","update","isDestroyed","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","push","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Popper","_this","requestAnimationFrame","jquery","Utils","global","PopperUtils","globalThis","self","require","$","on","preventDefault","ekkoLightbox","factory","w","Error","noGlobal","getProto","getPrototypeOf","flat","array","apply","class2type","hasOwn","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","doc","val","script","createElement","text","getAttribute","head","appendChild","toType","jQuery","selector","context","init","isArrayLike","toArray","num","pushStack","elems","ret","merge","prevObject","each","elem","first","eq","last","even","grep","_elem","odd","j","splice","extend","copy","copyIsArray","clone","deep","isPlainObject","isArray","expando","random","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","dir","next","childNodes","els","seed","nid","groups","newSelector","newContext","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","join","querySelectorAll","qsaError","cache","cacheLength","markFunction","assert","addHandle","attrs","handler","attrHandle","siblingCheck","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matcher","unmatched","lang","elemLang","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","contents","prev","sibling","has","targets","closest","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","rnothtmlwhite","Identity","Thrower","ex","adoptValue","reject","noValue","method","promise","fail","Callbacks","_","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","message","readyException","readyList","completed","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","Data","uid","set","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","display","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","values","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","types","one","origFn","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","swap","old","rboxStyle","curCSS","computed","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","scrollboxSizeBuggy","margin","border","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","fx","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","_jQuery","_$","noConflict","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","Element","setData","csrfParam","csrfToken","meta","CSRFProtection","refreshCSRFTokens","CustomEvent","createEvent","initCustomEvent","dispatchEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","parser","isCrossDomain","serializeElement","additionalParam","inputs","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","action","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","define","Turbolinks","supported","history","pushState","visit","controller","clearCache","setProgressBarDelay","copyObject","ELEMENT_NODE","throttle","u","initEvent","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isPrefixedBy","isEqualTo","toCacheKey","toJSON","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","cancel","lengthComputable","loaded","total","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","refresh","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","started","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","tagName","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","size","snapshots","read","touch","put","write","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTime","getTimingMetrics","snapshotCached","frame","_t9","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript","hasAttribute","webpackPolyfill","deprecate","paths","sparkMd5","createCommonjsModule","hex_chr","md5cycle","k","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","substring","rhex","hex","toUtf8","unescape","hexToBinaryString","bytes","substr","SparkMD5","ArrayBuffer","clamp","from","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","_buff","_length","_hash","buff","_finish","getState","setState","hashBinary","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","methodName","_len","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","submitButtonsByForm","WeakMap","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","submitForm","ActiveStorage","_defineProperties","_createClass","transitionEndEmulator","Util","TRANSITION_END","triggerTransitionEnd","getUID","getSelectorFromElement","hrefAttr","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","emulateTransitionEnd","NAME","JQUERY_NO_CONFLICT","Alert","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","JQUERY_NO_CONFLICT$1","Button","triggerChangeEvent","addAriaPressed","classList","initialButton","inputBtn","_button","NAME$2","EVENT_KEY$2","JQUERY_NO_CONFLICT$2","Default","keyboard","slide","pause","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","visibilityState","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","_this3","move","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","defaultInterval","CLASS_NAME_ACTIVE$1","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","$trigger","$target","NAME$4","JQUERY_NO_CONFLICT$4","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","Default$2","boundary","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","_getPlacement","$parentDropdown","_getOffset","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API$4","JQUERY_NO_CONFLICT$5","Default$3","backdrop","DefaultType$3","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","modalBody","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","paddingLeft","paddingRight","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","scrollDiv","scrollbarWidth","_this11","uriAttrs","DefaultWhitelist","br","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","regExp","attrRegex","allowedAttribute","NAME$6","JQUERY_NO_CONFLICT$6","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","template","title","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$4","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE$2","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","initConfigAnimation","NAME$7","JQUERY_NO_CONFLICT$7","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","Event$1","Popover","_Tooltip","subClass","superClass","__proto__","_getContent","CLASS_PREFIX$1","CLASS_NAME_FADE$3","NAME$8","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","SELECTOR_NAV_LINKS","scrollSpys","$spy","JQUERY_NO_CONFLICT$9","Tab","previous","listElement","itemSelector","hiddenEvent","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","JQUERY_NO_CONFLICT$a","DefaultType$7","autohide","Default$7","Toast","_clearTimeout","_close","Scrollspy","_typeof2","_defineProperty","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_s","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","MutationObserver","performance","_ref$userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_BROWSER","IS_DOM","IS_IE","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","PREFIX_TO_STYLE","STYLE_TO_PREFIX","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","FontAwesomeConfig","coerce","getAttrConfig","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","shims","functions","domready","listener","asyncTimer","NOOP","isNode","emit","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","invokeCallback","subscriber","settled","_state","handleThenable","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","P","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","all","promises","race","picked","meaninglessTransform","rotate","flipX","flipY","insertCss","headChildren","beforeChild","child","nextUniqueId","classArray","getIconName","cls","iconName","htmlEscape","joinStyles","acc","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","path","ALL_SPACE","fillBlack","_abstract","force","fill","makeInlineSvgAbstract","_params$icons","icons","main","mask","symbol","maskId","titleId","_params$watchable","watchable","found","isUploadedIcon","widthClass","attrClass","role","uploadedIconWidthStyle","_abstract2","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","makeLayersCounterAbstract","noop$1","preamble","perf","subject","initialValue","thisContext","bindInternal4","toHex","unicode","isPrivateUnicode","cp","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","_byUnicode","_byLigature","_byOldName","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","byUnicode","styles$1","getCanonicalIcon","autoFetchSvg","rest","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","joinAttributes","noop$2","isWatched","mutators","mutation","newOuterHTML","newNode","nest","_abstract4","forSvg","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","perform","mutations","callbackFunction","mutator","enableObservation","mo","observe","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","addedNodes","_getCanonicalIcon","childList","characterData","subtree","classParser","existingPrefix","existingIconName","innerText","parseTransformString","transformString","parseMeta","_classParser","extraClasses","extraStyles","styleParser","transformParser","symbolParser","extraAttributes","attributesParser","maskParser","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","cx","cy","styles$2","asFoundIcon","vectorData","findIcon","kitConfig","iconUploads","descriptiveIconName","resolveCustomIconVersion","FontAwesomeKitConfig","styles$3","generateMutation","nodeMeta","computedFontSize","fontSize","boundingClientRect","generateLayersText","generateSvgReplacementMutation","onTree","htmlClassList","hclAdd","hclRemove","prefixesDomQuery","candidates","resolvedMutations","onNode","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","_content","hexValue","iconIdentifier","_abstract5","processable","operations","drc","fp","rc","dPatt","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","definitions","Library","_classCallCheck","additions","_pullDefinitions","definition","_normalized$key","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","disconnect","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","_params$title3","_params$classes3","_params$attributes3","_params$styles3","layer","assembler","_params$classes4","_params$autoReplaceSv","bunker","FontAwesome","addShims","_namespace$shims","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","f","footer","maxHeight","showArrows","wrapping","alwaysShowClose","loadingMessage","leftArrow","rightArrow","strings","onShow","onShown","onHide","onHidden","onNavigate","onContentLoaded","_$modalArrows","_galleryIndex","_galleryName","_padding","_border","_titleIsShown","_footerIsShown","_wantedWidth","_wantedHeight","_touchstartX","_touchendX","_modalId","_$element","_isBootstrap3","modal","VERSION","h","_$modal","_$modalDialog","_$modalContent","_$modalBody","_$modalHeader","_$modalFooter","_$lightboxContainer","_$lightboxBodyOne","_$lightboxBodyTwo","_calculateBorders","_calculatePadding","_$galleryItems","_navigationalBinder","navigateLeft","navigateRight","updateNavigation","_toggleLoading","_handle","_resize","_swipeGesure","navigateTo","_isImage","_getYoutubeId","_getVimeoId","_getInstagramId","_containerToUse","_updateTitleAndFooter","_detectRemoteType","_error","_preloadImage","_preloadImageByIndex","_showYoutubeVideo","_showVimeoVideo","_showInstagramVideo","_showHtml5Video","_loadRemoteContent","_totalCssByAttribute","_showVideoIframe","_isExternal","Image","outerHeight","_handleUpdate","insertAdjacentHTML","previousElementSibling","tooltip","webpackContext","req","webpackContextResolve"],"mappings":"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","file":"js/application-1687be6566cd3430272e.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 = 28);\n","var ___EXPOSE_LOADER_IMPORT___ = require(\"-!../../babel-loader/lib/index.js?!./jquery.js\");\nvar ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(\"../../expose-loader/dist/runtime/getGlobalThis.js\");\nvar ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"$\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"$\"] = ___EXPOSE_LOADER_IMPORT___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"jQuery\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"jQuery\"] = ___EXPOSE_LOADER_IMPORT___;\nmodule.exports = ___EXPOSE_LOADER_IMPORT___;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\n\n\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\n}\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n\n\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\n}\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n } // Add paddings\n\n\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n\n\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\n}\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\n\n\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\n });\n}\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\n\n\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n\n var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n\n return isRequired;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n }); // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n } // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\n\n\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\n\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n }); // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","\"use strict\"; // eslint-disable-next-line func-names\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function () {\n if ((typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) === 'object') {\n return globalThis;\n }\n\n var g;\n\n try {\n // This works if eval is allowed (see CSP)\n // eslint-disable-next-line no-new-func\n g = this || new Function('return this')();\n } catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object') {\n return window;\n } // This works if the self reference is available\n\n\n if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object') {\n return self;\n } // This works if the global reference is available\n\n\n if (typeof global !== 'undefined') {\n return global;\n }\n }\n\n return g;\n}();","module.exports = __webpack_public_path__ + \"media/images/church-da148a2bd3396c2ae2805679183106f8.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/evlka-8d8907284293ebd71b3f66e588c87a99.png\";","module.exports = __webpack_public_path__ + \"media/images/faq/1-100-9b809ab23dfe3ba0262f724978cb1ee4.jpg\";","module.exports = __webpack_public_path__ + \"media/images/faq/2-100-8a0d930a8a7fd9f30d50f07779fc303b.jpg\";","module.exports = __webpack_public_path__ + \"media/images/faq/3-100-11d6f509f141d3e860c17f64dd2ee2ea.jpg\";","module.exports = __webpack_public_path__ + \"media/images/faq/4-100-415dd6985bb927bb25364d3792165b30.jpg\";","module.exports = __webpack_public_path__ + \"media/images/faq/5-100-3d6c4e05d13d87f1f44a248e8edeee07.jpg\";","module.exports = __webpack_public_path__ + \"media/images/faq/6-100-9f7db7cc9b77b7398ba8c2931cbb50fd.jpg\";","module.exports = __webpack_public_path__ + \"media/images/favicon-947f43a95280997330f9c2c5e26a47f6.png\";","module.exports = __webpack_public_path__ + \"media/images/favicon/android-chrome-192x192-675069c40f3734964a7f56ffbd299583.png\";","module.exports = __webpack_public_path__ + \"media/images/favicon/android-chrome-256x256-9cc526b37b245b1878bd17e07155a53b.png\";","module.exports = __webpack_public_path__ + \"media/images/favicon/apple-touch-icon-422957f89b09a009fdcb8242e4e75a0f.png\";","module.exports = __webpack_public_path__ + \"media/images/favicon/favicon-16x16-fd8b02359abbe7af6edfb9766a3a0cdf.png\";","module.exports = __webpack_public_path__ + \"media/images/favicon/favicon-32x32-d6f0a9afb23fd6ae9238e7f6d4e3482d.png\";","module.exports = __webpack_public_path__ + \"media/images/favicon/mstile-150x150-c471db62b742da2bd038f4d0acae061b.png\";","module.exports = __webpack_public_path__ + \"media/images/favicon/safari-pinned-tab-027018e0004555835d620956ec7cce0d.svg\";","module.exports = __webpack_public_path__ + \"media/images/favicon_godibesuchen-7922fee632f64b469a1fa8ebf7207238.png\";","module.exports = __webpack_public_path__ + \"media/images/footer-f270d7fbc0170ca56cc62144a177e329.png\";","module.exports = __webpack_public_path__ + \"media/images/logo-2724e650b74ad3762a87cca0a260b38f.png\";","module.exports = __webpack_public_path__ + \"media/images/logo_gottesdienst-besuchen.de-be39b6d5006b7944421836b51f1a7032.png\";","module.exports = __webpack_public_path__ + \"media/images/pdf/box-6b110e385782ec91ff1501309257a182.png\";","module.exports = __webpack_public_path__ + \"media/images/pdf/box_old-a43677e61afd60e6c10619bae4a69222.png\";","module.exports = __webpack_public_path__ + \"media/images/pdf/footer-57c4c502daa013d1a984117d92caf263.png\";","module.exports = __webpack_public_path__ + \"media/images/pdf/header-5b8e0a0dddbd63f93ac0ff4db2edc47a.png\";","require(\"jquery\")\nrequire(\"@rails/ujs\").start()\nrequire(\"turbolinks\").start()\nrequire(\"@rails/activestorage\").start()\nrequire(\"popper.js\")\nrequire(\"bootstrap\")\nrequire(\"@fortawesome/fontawesome-pro\")\nrequire(\"ekko-lightbox\")\n\nimport '../stylesheets/application'\n\nrequire(\"../components/direct_upload\");\nrequire('../components/tooltip');\n\nconst images = require.context(\"../images\", true);\nconst imagePath = name => images(name, true);\n\n$(document).on('click', '[data-toggle=\"lightbox\"]', function(event) {\n event.preventDefault();\n $(this).ekkoLightbox();\n});\n","/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.5.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( _i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = parseInt( trStyle.height ) > 3;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = (\n\t\t\t\t\tdataPriv.get( cur, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script\n\t\t\tif ( !isSuccess && jQuery.inArray( \"script\", s.dataTypes ) > -1 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n\n if (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\n var _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\n var _config = _objectSpread({}, _default, initial);\n\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n\n var config = _objectSpread({}, _config);\n\n WINDOW.FontAwesomeConfig = config;\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n var functions = [];\n\n var listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n\n var loaded = false;\n\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n }\n\n function domready(fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n\n var PENDING = 'pending';\n var SETTLED = 'settled';\n var FULFILLED = 'fulfilled';\n var REJECTED = 'rejected';\n\n var NOOP = function NOOP() {};\n\n var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\n var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\n var asyncQueue = [];\n var asyncTimer;\n\n function 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\n function asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n }\n\n function 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\n function 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\n function 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\n function resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n }\n\n function fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n }\n\n function reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n }\n\n function publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n }\n\n function publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n }\n\n function 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\n function notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n }\n /**\n * @class\n */\n\n\n function 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\n P.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\n P.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\n P.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\n P.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\n P.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n };\n\n var picked = typeof Promise === 'function' ? Promise : P;\n var d = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n function 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\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\n function 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\n function 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\n function 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\n function 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\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n }\n\n function 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\n function 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\n function 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\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n\n function 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\n function deGroup(_abstract2) {\n if (_abstract2.tag === 'g') {\n return _abstract2.children;\n } else {\n return [_abstract2];\n }\n }\n\n function 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\n function 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\n function 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\n function 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\n function 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 isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"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 }).filter(function (c) {\n return c !== '' || !!c;\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 var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\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: _objectSpread({}, uploadedIconWidthStyle, 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\n function 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\n function 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\n var noop$1 = function noop() {};\n\n var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"5.15.0\\\"\";\n\n var begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n\n var 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\n var 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\n var 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\n var 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\n function 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\n function codePointAt(string, index) {\n /*! https://mths.be/codepointat v0.2.0 by @mathias */\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n }\n /**\n * Used to check that the character is between the E000..F8FF private unicode\n * range\n */\n\n\n function isPrivateUnicode(iconName) {\n if (iconName.length !== 1) {\n return false;\n } else {\n var cp = codePointAt(iconName, 0);\n return cp >= 57344 && cp <= 63743;\n }\n }\n\n function 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\n var styles = namespace.styles,\n shims = namespace.shims;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n\n var 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\n build();\n\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n\n var styles$1 = namespace.styles;\n\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n\n function 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 && Object.keys(PREFIX_TO_STYLE).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\n function 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\n function 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(''), \"\");\n }\n }\n\n var noop$2 = function noop() {};\n\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n\n function 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\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var _abstract3 = mutation[1];\n\n var newOuterHTML = _abstract3.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 _abstract4 = 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 _abstract4[0].attributes.style;\n delete _abstract4[0].attributes.id;\n\n var splitClasses = _abstract4[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\n _abstract4[0].attributes[\"class\"] = splitClasses.toSvg.join(' ');\n\n var newInnerHTML = _abstract4.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n\n function performOperationSync(op) {\n op();\n }\n\n function 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\n var disabled = false;\n\n function disableObservation() {\n disabled = true;\n }\n\n function enableObservation() {\n disabled = false;\n }\n\n var mo = null;\n\n function 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\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n\n function 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\n function 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\n var 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\n function transformParser(node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n }\n\n function symbolParser(node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n }\n\n function 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\n function 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\n function 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\n function 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\n function MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n }\n\n MissingIcon.prototype = Object.create(Error.prototype);\n MissingIcon.prototype.constructor = MissingIcon;\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n var 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\n var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n });\n\n var 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 };\n var 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 };\n var 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 };\n var missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n };\n var styles$2 = namespace.styles;\n\n function resolveCustomIconVersion() {\n var kitConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var iconName = arguments.length > 1 ? arguments[1] : undefined;\n\n if (iconName && isPrivateUnicode(iconName)) {\n if (kitConfig && kitConfig.iconUploads) {\n var iconUploads = kitConfig.iconUploads;\n var descriptiveIconName = Object.keys(iconUploads).find(function (key) {\n return iconUploads[key] && iconUploads[key].u && iconUploads[key].u === toHex(iconName);\n });\n\n if (descriptiveIconName) {\n return iconUploads[descriptiveIconName].v;\n }\n }\n } else {\n if (kitConfig && kitConfig.iconUploads && kitConfig.iconUploads[iconName] && kitConfig.iconUploads[iconName].v) {\n return kitConfig.iconUploads[iconName].v;\n }\n }\n }\n\n function 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\n function 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 kitToken = null;\n var iconVersion = resolveCustomIconVersion(WINDOW.FontAwesomeKitConfig, iconName);\n\n if (WINDOW.FontAwesomeKitConfig && WINDOW.FontAwesomeKitConfig.token) {\n kitToken = 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\n var styles$3 = namespace.styles;\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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 _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].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 _abstract5 = 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\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 = _abstract5.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\n function replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n }\n\n function 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\n function 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\n var baseStyles = \"svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}\";\n\n function 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\n var 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\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n }\n\n function 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\n function 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\n function 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\n var library = new Library();\n\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n };\n\n var _cssInserted = false;\n var 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 };\n var parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n };\n var 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\n var 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\n var 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\n var 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\n var 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\n var 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\n function bootstrap() {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n\n domready(function () {\n autoReplace();\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements\n });\n });\n }\n\n namespace.hooks = _objectSpread({}, namespace.hooks, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, icons);\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n build();\n autoReplace();\n }\n });\n }\n\n bunker(bootstrap);\n})();","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a