{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./app/assets/images/android-chrome-192x192.png","webpack:///./app/assets/images/android-chrome-384x384.png","webpack:///./app/assets/images/apple-touch-icon.png","webpack:///./app/assets/images/aragonit_logo.png","webpack:///./app/assets/images/arrow.svg","webpack:///./app/assets/images/ceska-sporitelna-logo.svg","webpack:///./app/assets/images/favicon-16x16.png","webpack:///./app/assets/images/favicon-32x32.png","webpack:///./app/assets/images/gallery_1.jpg","webpack:///./app/assets/images/gallery_2.jpg","webpack:///./app/assets/images/gallery_3.jpg","webpack:///./app/assets/images/gallery_4.jpg","webpack:///./app/assets/images/gallery_5.jpg","webpack:///./app/assets/images/gallery_6.jpg","webpack:///./app/assets/images/logo-pekarska.svg","webpack:///./app/assets/images/pekarska-2D-final.svg","webpack:///./app/assets/images/pekarska-hlavni.jpg","webpack:///./app/assets/images/pekarska-pudorys.svg","webpack:///./app/assets/images/pekarska-video_noVW.mp4","webpack:///./app/assets/images/pekarska_final.mp4","webpack:///./app/assets/images/pekarska_mapa_web_bez_pozadi.svg","webpack:///./app/assets/images/pudorys_patro2.svg","webpack:///./app/assets/images/pudorys_patro3.svg","webpack:///./app/assets/images/uvod_foto.png","webpack:///./app/assets/images/uvod_foto_mobil.jpg","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./app/assets/stylesheets/stylesheets.js","webpack:///./app/assets/images sync ^\\.\\/.*$"],"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","isBrowser","window","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","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","createClass","defineProperties","target","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","obj","_extends","assign","source","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","_ref","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","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","this","isDestroyed","instance","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","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","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","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","shift","shiftvariation","_data$offsets","isVertical","side","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","Defaults","Popper","_this","TypeError","classCallCheck","requestAnimationFrame","jquery","Utils","global","PopperUtils","factory","w","Error","noGlobal","getProto","getPrototypeOf","flat","array","apply","class2type","hasOwn","fnToString","ObjectFunctionString","support","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","doc","val","script","createElement","text","getAttribute","head","appendChild","toType","rhtmlSuffix","jQuery","selector","context","init","isArrayLike","elem","constructor","toArray","num","pushStack","elems","ret","merge","prevObject","each","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","textContent","nodeValue","makeArray","results","inArray","isXMLDoc","namespace","namespaceURI","docElem","second","invert","matches","callbackExpect","arg","guid","iterator","_i","pop","whitespace","rtrimCSS","RegExp","bup","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","escapeSelector","sel","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","identifier","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","unloadHandler","setDocument","inDisabledFieldset","addCombinator","disabled","dir","next","childNodes","els","seed","nid","groups","newSelector","newContext","exec","getElementById","id","getElementsByTagName","getElementsByClassName","testContext","scope","tokenize","toSelector","join","querySelectorAll","qsaError","select","cache","cacheLength","markFunction","assert","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","subWindow","webkitMatchesSelector","msMatchesSelector","getById","getElementsByName","disconnectedMatch","cssHas","attrId","getAttributeNode","tag","className","input","innerHTML","compare","sortDetached","expr","elements","matchesSelector","attr","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","pattern","operator","what","_argument","simple","forward","ofType","_context","xml","outerCache","nodeIndex","useCache","diff","firstChild","lastChild","pseudo","args","setFilters","idx","not","matcher","compile","unmatched","has","lang","elemLang","location","root","focus","activeElement","err","safeActiveElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","empty","nextSibling","header","button","_matchIndexes","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","matcherOut","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","filters","unique","getText","isXML","selectors","until","truncate","is","siblings","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","prev","sibling","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","list","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","rejectWith","getErrorHook","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","updateFunc","rerrorNames","asyncError","message","stack","readyException","readyList","completed","catch","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","attrs","dequeue","startLength","hooks","_queueHooks","unshift","stop","setter","clearQueue","tmp","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","defaultValue","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","rhtml","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","on","types","one","origFn","off","leverageNative","isSetup","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","isImmediatePropagationStopped","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","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","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","blur","focusMappedHandler","simulate","attaches","dataHolder","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","rcustomProp","getStyles","opener","swap","old","rboxStyle","curCSS","computed","minWidth","maxWidth","isCustomProp","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","borderBottomWidth","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","computedVal","extra","delta","marginDelta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","aspectRatio","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","orphans","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","origName","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","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","triggerHandler","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","throws","ajaxConvert","getJSON","getScript","wrapAll","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","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","rtrim","proxy","holdReady","hold","parseJSON","_jQuery","_$","$","noConflict","require","gtag","lintrk","conversion_id","firstFloor","secondFloor","ffButton","sfButton","classList","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","Element","mozMatchesSelector","oMatchesSelector","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","link","action","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","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","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","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","refresh","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","onPopState","started","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","tagName","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","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","size","snapshots","read","touch","put","write","Visit","performScroll","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","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","createCommonjsModule","sparkMd5","hex_chr","md5cycle","k","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","substring","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","bytes","substr","SparkMD5","clamp","from","targetArray","sourceArray","begin","appendBinary","_buff","_length","_hash","_finish","getState","setState","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","findElements","toArray$1","eventInit","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","inputSelector","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","WeakMap","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","submitForm","delete","autostart","ActiveStorage","channels","webpackEmptyContext","req","g","Function","_interopDefaultLegacy","$__default","Popper__default","_defineProperties","_createClass","_inheritsLoose","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","getSpecialTransitionEndEvent","transitionEndEmulator","Util","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","getUID","getSelectorFromElement","hrefAttr","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME$a","VERSION$a","DATA_KEY$a","EVENT_KEY$a","DATA_API_KEY$7","JQUERY_NO_CONFLICT$a","CLASS_NAME_ALERT","CLASS_NAME_FADE$5","CLASS_NAME_SHOW$7","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API$6","SELECTOR_DISMISS","Alert","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","NAME$9","VERSION$9","DATA_KEY$9","EVENT_KEY$9","DATA_API_KEY$6","JQUERY_NO_CONFLICT$9","CLASS_NAME_ACTIVE$3","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","EVENT_CLICK_DATA_API$5","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API$2","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE$4","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE$2","SELECTOR_BUTTON","Button","shouldAvoidTriggerChange","triggerChangeEvent","addAriaPressed","avoidTriggerChange","initialButton","inputBtn","_button","NAME$8","VERSION$8","DATA_KEY$8","EVENT_KEY$8","DATA_API_KEY$5","JQUERY_NO_CONFLICT$8","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$2","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$1","EVENT_CLICK_DATA_API$4","SELECTOR_ACTIVE$1","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","Default$7","keyboard","slide","pause","DefaultType$7","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","_updateInterval","visibilityState","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","_this3","move","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","defaultInterval","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$7","VERSION$7","DATA_KEY$7","EVENT_KEY$7","DATA_API_KEY$4","JQUERY_NO_CONFLICT$7","CLASS_NAME_SHOW$6","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_CLICK_DATA_API$3","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE$3","Default$6","DefaultType$6","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$trigger","$target","NAME$6","VERSION$6","DATA_KEY$6","EVENT_KEY$6","DATA_API_KEY$3","JQUERY_NO_CONFLICT$6","ESCAPE_KEYCODE$1","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLASS_NAME_DISABLED$1","CLASS_NAME_SHOW$5","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","EVENT_HIDE$3","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_CLICK","EVENT_CLICK_DATA_API$2","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_DATA_TOGGLE$2","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$5","boundary","popperConfig","DefaultType$5","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","Default","DefaultType","_getPlacement","$parentDropdown","_getOffset","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","NAME$5","VERSION$5","DATA_KEY$5","EVENT_KEY$5","DATA_API_KEY$2","JQUERY_NO_CONFLICT$5","ESCAPE_KEYCODE","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","EVENT_HIDE$2","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$2","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS$1","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$1","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE$1","SELECTOR_DATA_DISMISS$1","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Default$4","backdrop","DefaultType$4","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","allowedAttribute","allowedAttributeList","attrName","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","NAME$4","VERSION$4","DATA_KEY$4","EVENT_KEY$4","JQUERY_NO_CONFLICT$4","CLASS_PREFIX$1","BSCLS_PREFIX_REGEX$1","DISALLOWED_ATTRIBUTES","CLASS_NAME_FADE$3","CLASS_NAME_SHOW$3","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","template","title","fallbackPlacement","customClass","sanitize","DefaultType$3","Event$1","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","NAME","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","initConfigAnimation","NAME$3","VERSION$3","DATA_KEY$3","EVENT_KEY$3","JQUERY_NO_CONFLICT$3","CLASS_PREFIX","BSCLS_PREFIX_REGEX","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","SELECTOR_TITLE","SELECTOR_CONTENT","Default$2","DefaultType$2","Popover","_Tooltip","_getContent","NAME$2","VERSION$2","DATA_KEY$2","EVENT_KEY$2","DATA_API_KEY$1","JQUERY_NO_CONFLICT$2","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","METHOD_OFFSET","METHOD_POSITION","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP$1","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN$1","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE$1","Default$1","DefaultType$1","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","scrollSpys","$spy","NAME$1","VERSION$1","DATA_KEY$1","EVENT_KEY$1","DATA_API_KEY","JQUERY_NO_CONFLICT$1","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","hiddenEvent","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","VERSION","JQUERY_NO_CONFLICT","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","EVENT_CLICK_DISMISS","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","SELECTOR_DATA_DISMISS","autohide","Toast","_clearTimeout","_close","Scrollspy","webpackContext","webpackContextResolve"],"mappings":"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","file":"js/application-f7207abd5e051ea94992.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 = 27);\n","/**!\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';\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\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 return 0;\n}();\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\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}\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n return getScrollParent(getParentNode(element));\n}\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 */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n var nodeName = offsetParent && offsetParent.nodeName;\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n return offsetParent;\n}\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\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 return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\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}\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}\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\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 return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n};\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n return getClientRect(result);\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);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\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;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n return offsets;\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/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n if (placement.indexOf('auto') === -1) {\n return placement;\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/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = {\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/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\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 if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n var noRound = function noRound(v) {\n return v;\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}\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\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';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\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 */\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 if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n 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\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n 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/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\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 */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n 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 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 switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n 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;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n 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 if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\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 data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n 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 if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n 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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n 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 return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\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 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 data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n 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/**\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 */\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 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\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 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n /**\n * 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 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\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 */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\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 * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\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 * 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 * 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 * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * 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 return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\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\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket trac-14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n\n // Pass this if window is not defined yet\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\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\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n var isFunction = function isFunction(obj) {\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 // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n // Support: Android <=2.3 only (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof 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 var version = \"3.7.1\",\n rhtmlSuffix = /HTML$/i,\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n }\n\n // Return just the one element from the set\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems);\n\n // Add the old object onto the stack (as a reference)\n ret.prevObject = this;\n\n // Return the newly-formed element set\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n\n // Skip the boolean and the target\n target = arguments[i] || {};\n i++;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n }\n\n // Extend jQuery itself if only one argument is passed\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name];\n\n // Prevent Object.prototype pollution\n // Prevent never-ending loop\n if (name === \"__proto__\" || target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name];\n\n // Ensure proper type for the source value\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n copyIsArray = false;\n\n // Never move original objects, clone them\n target[name] = jQuery.extend(deep, clone, copy);\n\n // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor;\n\n // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = getProto(obj);\n\n // Objects with no prototype (e.g., `Object.create( null )`) are plain\n if (!proto) {\n return true;\n }\n\n // Objects with prototype are plain iff they were constructed by a global Object function\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n for (name in obj) {\n return false;\n }\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n if (isArrayLike(obj)) {\n length = obj.length;\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n return obj;\n },\n // Retrieve the text value of an array of DOM nodes\n text: function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += jQuery.text(node);\n }\n }\n if (nodeType === 1 || nodeType === 11) {\n return elem.textContent;\n }\n if (nodeType === 9) {\n return elem.documentElement.textContent;\n }\n if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n\n // Do not include comment or processing instruction nodes\n\n return ret;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n isXMLDoc: function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement;\n\n // Assume HTML when documentElement doesn't yet exist, such as inside\n // document fragments.\n return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || \"HTML\");\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n // Go through the array, only saving the items\n // that pass the validator function\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = [];\n\n // Go through the array, translating each of the items to their new values\n if (isArrayLike(elems)) {\n length = elems.length;\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n\n // Go through every key on the object,\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n // Flatten any nested arrays\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n }\n\n // Populate the class2type map\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n var pop = arr.pop;\n var sort = arr.sort;\n var splice = arr.splice;\n var whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n var rtrimCSS = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\");\n\n // Note: an element does not contain itself\n jQuery.contains = function (a, b) {\n var bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (\n // Support: IE 9 - 11+\n // IE doesn't have `contains` on SVG.\n a.contains ? a.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n };\n\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n }\n\n // Control characters and (dependent upon position) numbers get escaped as code points\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n }\n\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\" + ch;\n }\n jQuery.escapeSelector = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n var preferredDoc = document,\n pushNative = push;\n (function () {\n var i,\n Expr,\n outermostContext,\n sortInput,\n hasDuplicate,\n push = pushNative,\n // Local document vars\n document,\n documentElement,\n documentIsHTML,\n rbuggyQSA,\n matches,\n // Instance-specific data\n expando = jQuery.expando,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" + \"loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace +\n // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" +\n // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rleadingCombinator = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n ID: new RegExp(\"^#(\" + identifier + \")\"),\n CLASS: new RegExp(\"^\\\\.(\" + identifier + \")\"),\n TAG: new RegExp(\"^(\" + identifier + \"|[*])\"),\n ATTR: new RegExp(\"^\" + attributes),\n PSEUDO: new RegExp(\"^\" + pseudos),\n CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n bool: new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n needsContext: new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n if (nonHex) {\n // Strip the backslash prefix from a non-hex escape sequence\n return nonHex;\n }\n\n // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n return high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // Used for iframes; see `setDocument`.\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE/Edge.\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && nodeName(elem, \"fieldset\");\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n });\n\n // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n // Optimize for push.apply( _, NodeList )\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n\n // Support: Android <=4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: function (target, els) {\n pushNative.apply(target, slice.call(els));\n },\n call: function (target) {\n pushNative.apply(target, slice.call(arguments, 1));\n }\n };\n }\n function find(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || [];\n\n // Return early from calls with invalid selector or context\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n }\n\n // Try to shortcut find operations (as opposed to filters) in HTML documents\n if (!seed) {\n setDocument(context);\n context = context || document;\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE 9 only\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n push.call(results, elem);\n return results;\n }\n } else {\n return results;\n }\n\n // Element context\n } else {\n // Support: IE 9 only\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && find.contains(context, elem) && elem.id === m) {\n push.call(results, elem);\n return results;\n }\n }\n\n // Type selector\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n\n // Class selector\n } else if ((m = match[3]) && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n\n // Take advantage of querySelectorAll\n if (!nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n newSelector = selector;\n newContext = context;\n\n // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n if (nodeType === 1 && (rdescend.test(selector) || rleadingCombinator.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n\n // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when\n // strict-comparing two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (newContext != context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = jQuery.escapeSelector(nid);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n }\n\n // Prefix every selector in the list\n groups = tokenize(selector);\n i = groups.length;\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n newSelector = groups.join(\",\");\n }\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n\n // All others\n return select(selector.replace(rtrimCSS, \"$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 */\n function createCache() {\n var keys = [];\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties\n // (see https://github.com/jquery/sizzle/issues/157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n return cache[key + \" \"] = value;\n }\n return cache;\n }\n\n /**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // release memory in IE\n el = null;\n }\n }\n\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n function createInputPseudo(type) {\n return function (elem) {\n return nodeName(elem, \"input\") && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n function createButtonPseudo(type) {\n return function (elem) {\n return (nodeName(elem, \"input\") || nodeName(elem, \"button\")) && elem.type === type;\n };\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 */\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n }\n\n // Support: IE 6 - 11+\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n return elem.isDisabled === disabled ||\n // Where there is no isDisabled, check manually\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n return elem.disabled === disabled;\n\n // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n }\n\n // Remaining elements are neither :enabled nor :disabled\n return false;\n };\n }\n\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length;\n\n // Match elements found at the specified indexes\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n\n /**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n }\n\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n function setDocument(node) {\n var subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc;\n\n // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n\n // Update global variables\n document = doc;\n documentElement = document.documentElement;\n documentIsHTML = !jQuery.isXMLDoc(document);\n\n // Support: iOS 7 only, IE 9 - 11+\n // Older browsers didn't support unprefixed `matches`.\n matches = documentElement.matches || documentElement.webkitMatchesSelector || documentElement.msMatchesSelector;\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors\n // (see trac-13936).\n // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n if (documentElement.msMatchesSelector &&\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 9 - 11+, Edge 12 - 18+\n subWindow.addEventListener(\"unload\", unloadHandler);\n }\n\n // Support: IE <10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n support.getById = assert(function (el) {\n documentElement.appendChild(el).id = jQuery.expando;\n return !document.getElementsByName || !document.getElementsByName(jQuery.expando).length;\n });\n\n // Support: IE 9 only\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node.\n support.disconnectedMatch = assert(function (el) {\n return matches.call(el, \"*\");\n });\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // IE/Edge don't support the :scope pseudo-class.\n support.scope = assert(function () {\n return document.querySelectorAll(\":scope\");\n });\n\n // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n // Make sure the `:has()` argument is parsed unforgivingly.\n // We include `*` in the test to detect buggy implementations that are\n // _selectively_ forgiving (specifically when the list includes at least\n // one valid selector).\n // Note that we treat complete lack of support for `:has()` as if it were\n // spec-compliant support, which is fine because use of `:has()` in such\n // environments will fail in the qSA path and fall back to jQuery traversal\n // anyway.\n support.cssHas = assert(function () {\n try {\n document.querySelector(\":has(*,:jqfake)\");\n return false;\n } catch (e) {\n return true;\n }\n });\n\n // ID filter and find\n if (support.getById) {\n Expr.filter.ID = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n Expr.find.ID = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter.ID = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n\n // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n Expr.find.ID = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n\n // Fall back on getElementsByName\n elems = context.getElementsByName(id);\n i = 0;\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n return [];\n }\n };\n }\n\n // Tag\n Expr.find.TAG = function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag);\n\n // DocumentFragment nodes don't have gEBTN\n } else {\n return context.querySelectorAll(tag);\n }\n };\n\n // Class\n Expr.find.CLASS = function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n\n // QSA and matchesSelector support\n\n rbuggyQSA = [];\n\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input;\n documentElement.appendChild(el).innerHTML = \"\" + \"\";\n\n // Support: iOS <=7 - 8 only\n // Boolean attributes and \"value\" are not treated correctly in some XML documents\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n }\n\n // Support: iOS <=7 - 8 only\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n }\n\n // Support: iOS 8 only\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n\n // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n // In some of the document kinds, these selectors wouldn't work natively.\n // This is probably OK but for backwards compatibility we want to maintain\n // handling them through jQuery traversal in jQuery 3.x.\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n }\n\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\");\n\n // Support: IE 9 - 11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n // In some of the document kinds, these selectors wouldn't work natively.\n // This is probably OK but for backwards compatibility we want to maintain\n // handling them through jQuery traversal in jQuery 3.x.\n documentElement.appendChild(el).disabled = true;\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n });\n if (!support.cssHas) {\n // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n // Our regular `try-catch` mechanism fails to detect natively-unsupported\n // pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n // in browsers that parse the `:has()` argument as a forgiving selector list.\n // https://drafts.csswg.org/selectors/#relational now requires the argument\n // to be parsed unforgivingly, but browsers have not yet fully adjusted.\n rbuggyQSA.push(\":has\");\n }\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n\n /* Sorting\n ---------------------------------------------------------------------- */\n\n // Document order sorting\n sortOrder = function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n // Sort on method existence if only one input has compareDocumentPosition\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n if (compare) {\n return compare;\n }\n\n // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) :\n // Otherwise we know they are disconnected\n 1;\n\n // Disconnected nodes\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a === document || a.ownerDocument == preferredDoc && find.contains(preferredDoc, a)) {\n return -1;\n }\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (b === document || b.ownerDocument == preferredDoc && find.contains(preferredDoc, b)) {\n return 1;\n }\n\n // Maintain original order\n return sortInput ? indexOf.call(sortInput, a) - indexOf.call(sortInput, b) : 0;\n }\n return compare & 4 ? -1 : 1;\n };\n return document;\n }\n find.matches = function (expr, elements) {\n return find(expr, null, null, elements);\n };\n find.matchesSelector = function (elem, expr) {\n setDocument(elem);\n if (documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr);\n\n // IE 9's matchesSelector returns false on disconnected nodes\n if (ret || support.disconnectedMatch ||\n // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n return find(expr, document, null, [elem]).length > 0;\n };\n find.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n return jQuery.contains(context, elem);\n };\n find.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (see trac-13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n if (val !== undefined) {\n return val;\n }\n return elem.getAttribute(name);\n };\n find.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n jQuery.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0;\n\n // Unless we *know* we can detect duplicates, assume their presence\n //\n // Support: Android <=4.0+\n // Testing for detecting duplicates is unpredictable so instead assume we can't\n // depend on duplicate detection in all browsers without a stable sort.\n hasDuplicate = !support.sortStable;\n sortInput = !support.sortStable && slice.call(results, 0);\n sort.call(results, sortOrder);\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n while (j--) {\n splice.call(results, duplicates[j], 1);\n }\n }\n\n // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n sortInput = null;\n return results;\n };\n jQuery.fn.uniqueSort = function () {\n return this.pushStack(jQuery.uniqueSort(slice.apply(this)));\n };\n Expr = jQuery.expr = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n ATTR: function (match) {\n match[1] = match[1].replace(runescape, funescape);\n\n // Move the given value to match[3] whether quoted or unquoted\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n return match.slice(0, 4);\n },\n CHILD: function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n find.error(match[0]);\n }\n\n // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\");\n\n // other types prohibit arguments\n } else if (match[3]) {\n find.error(match[0]);\n }\n return match;\n },\n PSEUDO: function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n if (matchExpr.CHILD.test(match[0])) {\n return null;\n }\n\n // Accept quoted arguments as-is\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\";\n\n // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && (\n // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && (\n // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n\n // Return only captures needed by the pseudo filter method (type and argument)\n return match.slice(0, 3);\n }\n },\n filter: {\n TAG: function (nodeNameSelector) {\n var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return nodeName(elem, expectedNodeName);\n };\n },\n CLASS: function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n ATTR: function (name, operator, check) {\n return function (elem) {\n var result = find.attr(elem, name);\n if (result == null) {\n return operator === \"!=\";\n }\n if (!operator) {\n return true;\n }\n result += \"\";\n if (operator === \"=\") {\n return result === check;\n }\n if (operator === \"!=\") {\n return result !== check;\n }\n if (operator === \"^=\") {\n return check && result.indexOf(check) === 0;\n }\n if (operator === \"*=\") {\n return check && result.indexOf(check) > -1;\n }\n if (operator === \"$=\") {\n return check && result.slice(-check.length) === check;\n }\n if (operator === \"~=\") {\n return (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1;\n }\n if (operator === \"|=\") {\n return result === check || result.slice(0, check.length + 1) === check + \"-\";\n }\n return false;\n };\n },\n CHILD: function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ?\n // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n while (node = node[dir]) {\n if (ofType ? nodeName(node, name) : node.nodeType === 1) {\n return false;\n }\n }\n\n // Reverse direction for :only-* (if we haven't yet done so)\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n return true;\n }\n start = [forward ? parent.firstChild : parent.lastChild];\n\n // non-xml :nth-child(...) stores cache data on `parent`\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n outerCache = parent[expando] || (parent[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n while (node = ++nodeIndex && node && node[dir] || (\n // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n outerCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n outerCache = elem[expando] || (elem[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n }\n\n // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? nodeName(node, name) : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {});\n outerCache[type] = [dirruns, diff];\n }\n if (node === elem) {\n break;\n }\n }\n }\n }\n }\n\n // Incorporate the offset, then check against cycle size\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n PSEUDO: function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // https://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find.error(\"unsupported pseudo: \" + pseudo);\n\n // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as jQuery does\n if (fn[expando]) {\n return fn(argument);\n }\n\n // But maintain support for old signatures\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n while (i--) {\n idx = indexOf.call(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n not: markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrimCSS, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length;\n\n // Match elements unmatched by `matcher`\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n\n // Don't keep the element\n // (see https://github.com/jquery/sizzle/issues/299)\n input[0] = null;\n return !results.pop();\n };\n }),\n has: markFunction(function (selector) {\n return function (elem) {\n return find(selector, elem).length > 0;\n };\n }),\n contains: markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || jQuery.text(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // https://www.w3.org/TR/selectors/#lang-pseudo\n lang: markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n find.error(\"unsupported lang: \" + lang);\n }\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n return false;\n };\n }),\n // Miscellaneous\n target: function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n root: function (elem) {\n return elem === documentElement;\n },\n focus: function (elem) {\n return elem === safeActiveElement() && document.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n enabled: createDisabledPseudo(false),\n disabled: createDisabledPseudo(true),\n checked: function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n return nodeName(elem, \"input\") && !!elem.checked || nodeName(elem, \"option\") && !!elem.selected;\n },\n selected: function (elem) {\n // Support: IE <=11+\n // Accessing the selectedIndex property\n // forces the browser to treat the default option as\n // selected when in an optgroup.\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n return elem.selected === true;\n },\n // Contents\n empty: function (elem) {\n // https://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n return true;\n },\n parent: function (elem) {\n return !Expr.pseudos.empty(elem);\n },\n // Element/input types\n header: function (elem) {\n return rheader.test(elem.nodeName);\n },\n input: function (elem) {\n return rinputs.test(elem.nodeName);\n },\n button: function (elem) {\n return nodeName(elem, \"input\") && elem.type === \"button\" || nodeName(elem, \"button\");\n },\n text: function (elem) {\n var attr;\n return nodeName(elem, \"input\") && elem.type === \"text\" && (\n // Support: IE <10 only\n // New HTML5 attribute values (e.g., \"search\") appear\n // with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n first: createPositionalPseudo(function () {\n return [0];\n }),\n last: createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n eq: createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n even: createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n odd: createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n lt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i;\n if (argument < 0) {\n i = argument + length;\n } else if (argument > length) {\n i = length;\n } else {\n i = argument;\n }\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n gt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n })\n }\n };\n Expr.pseudos.nth = Expr.pseudos.eq;\n\n // Add button/input type pseudos\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n\n // Easy API for creating new setFilters\n function setFilters() {}\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n function tokenize(selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n groups.push(tokens = []);\n }\n matched = false;\n\n // Combinators\n if (match = rleadingCombinator.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrimCSS, \" \")\n });\n soFar = soFar.slice(matched.length);\n }\n\n // Filters\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n if (!matched) {\n break;\n }\n }\n\n // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n if (parseOnly) {\n return soFar.length;\n }\n return soFar ? find.error(selector) :\n // Cache the tokens\n tokenCache(selector, groups).slice(0);\n }\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n return selector;\n }\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ?\n // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n return false;\n } :\n // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n outerCache,\n newCache = [dirruns, doneName];\n\n // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n if (skip && nodeName(elem, skip)) {\n elem = elem[dir] || elem;\n } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n outerCache[key] = newCache;\n\n // A match means we're done; a fail means we have to keep checking\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n }\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n return true;\n } : matchers[0];\n }\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n for (; i < len; i++) {\n find(selector, contexts[i], results);\n }\n return results;\n }\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n return newUnmatched;\n }\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n matcherOut,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems;\n if (matcher) {\n // If we have a postFinder, or filtered seed, or non-seed postFilter\n // or preexisting results,\n matcherOut = postFinder || (seed ? preFilter : preexisting || postFilter) ?\n // ...intermediate processing is necessary\n [] :\n // ...otherwise use results directly\n results;\n\n // Find primary matches\n matcher(matcherIn, matcherOut, context, xml);\n } else {\n matcherOut = matcherIn;\n }\n\n // Apply postFilter\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n\n // Un-match failing elements by moving them back to matcherIn\n i = temp.length;\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n postFinder(null, matcherOut = [], temp, xml);\n }\n\n // Move matched elements from seed to results to keep them synchronized\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf.call(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n\n // Add elements to results, through postFinder if defined\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf.call(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n var ret = !leadingRelative && (xml || context != outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n\n // Avoid hanging onto element\n // (see https://github.com/jquery/sizzle/issues/299)\n checkContext = null;\n return ret;\n }];\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n\n // Return special upon seeing a positional matcher\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(\n // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrimCSS, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n matchers.push(matcher);\n }\n }\n return elementMatcher(matchers);\n }\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find.TAG(\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n }\n\n // Add elements passing elementMatchers directly to results\n // Support: iOS <=7 - 9 only\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n // elements by id. (see trac-14142)\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n push.call(results, elem);\n break;\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n\n // Track unmatched elements for set filters\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n }\n\n // Lengthen the array for every element, matched or not\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n\n // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n matchedCount += i;\n\n // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n if (bySet && i !== matchedCount) {\n j = 0;\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n\n // Discard index placeholder values to get only actual matches\n setMatched = condense(setMatched);\n }\n\n // Add matches to results\n push.apply(results, setMatched);\n\n // Seedless set matches succeeding multiple successful matchers stipulate sorting\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n jQuery.uniqueSort(results);\n }\n }\n\n // Override manipulation of globals by nested matchers\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n return unmatched;\n };\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n function compile(selector, match /* Internal Use Only */) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n i = match.length;\n while (i--) {\n cached = matcherFromTokens(match[i]);\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n\n // Cache the compiled function\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n\n // Save selector and tokenization\n cached.selector = selector;\n }\n return cached;\n }\n\n /**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n function select(selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || [];\n\n // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0];\n if (!context) {\n return results;\n\n // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n selector = selector.slice(tokens.shift().value.length);\n }\n\n // Fetch a seed set for right-to-left matching\n i = matchExpr.needsContext.test(selector) ? 0 : tokens.length;\n while (i--) {\n token = tokens[i];\n\n // Abort if we hit a combinator\n if (Expr.relative[type = token.type]) {\n break;\n }\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n break;\n }\n }\n }\n }\n\n // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }\n\n // One-time assignments\n\n // Support: Android <=4.0 - 4.1+\n // Sort stability\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\n\n // Initialize against the default document\n setDocument();\n\n // Support: Android <=4.0 - 4.1+\n // Detached nodes confoundingly follow *each other*\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n });\n jQuery.find = find;\n\n // Deprecated\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.unique = jQuery.uniqueSort;\n\n // These have always been private, but they used to be documented as part of\n // Sizzle so let's maintain them for now for backwards compatibility purposes.\n find.compile = compile;\n find.select = select;\n find.setDocument = setDocument;\n find.tokenize = tokenize;\n find.escape = jQuery.escapeSelector;\n find.getText = jQuery.text;\n find.isXML = jQuery.isXMLDoc;\n find.selectors = jQuery.expr;\n find.support = jQuery.support;\n find.uniqueSort = jQuery.uniqueSort;\n\n /* eslint-enable */\n })();\n var dir = function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n matched.push(elem);\n }\n }\n return matched;\n };\n var siblings = function (n, elem) {\n var matched = [];\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n return matched;\n };\n var rneedsContext = jQuery.expr.match.needsContext;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n\n // Implement the identical functionality for filter and not\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n // Single element\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n // Arraylike of elements (jQuery, arguments, Array)\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n }\n\n // Filtered directly for both simple and complex selectors\n return jQuery.filter(qualifier, elements, not);\n }\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n ret = this.pushStack([]);\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this,\n // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n\n // Initialize a jQuery object\n\n // A central reference to the root jQuery(document)\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (trac-9521)\n // Strict HTML recognition (trac-11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem;\n\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n if (!selector) {\n return this;\n }\n\n // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n root = root || rootjQuery;\n\n // Handle HTML strings\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n }\n\n // Match html or make sure no context is specified for #id\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n\n // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n // HANDLE: $(html, props)\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]);\n\n // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n return this;\n\n // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n return this;\n }\n\n // HANDLE: $(expr, $(...))\n } else if (!context || context.jquery) {\n return (context || root).find(selector);\n\n // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n }\n\n // HANDLE: $(DOMElement)\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this;\n\n // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) :\n // Execute immediately if ready is not present\n selector(jQuery);\n }\n return jQuery.makeArray(selector, this);\n };\n\n // Give the init function the jQuery prototype for later instantiation\n init.prototype = jQuery.fn;\n\n // Initialize central reference\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors);\n\n // Positional selectors never match, since there's no _selection_ context\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 :\n // Don't pass non-elements to jQuery#find\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n }\n\n // Index in selector\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n // Locate the position of the desired element\n return indexOf.call(this,\n // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n return cur;\n }\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null &&\n // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n }\n\n // Reverse order for parents* and prev-derivatives\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\n\n // Convert String-formatted options into Object-formatted ones\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return 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 */\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n var\n // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once;\n\n // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n fired = firing = true;\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n }\n\n // Forget the data if we're done with it\n if (!options.memory) {\n memory = false;\n }\n firing = false;\n\n // Clean up if we're done firing for good\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = [];\n\n // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n if (memory && !firing) {\n fire();\n }\n }\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n\n // Handle firing indexes\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n if (!memory && !firing) {\n list = memory = \"\";\n }\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n if (!firing) {\n fire();\n }\n }\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n return self;\n };\n function Identity(v) {\n return v;\n }\n function Thrower(ex) {\n throw ex;\n }\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject);\n\n // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject);\n\n // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n }\n\n // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [\n // action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\n\n // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then;\n\n // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n if (depth < maxDepth) {\n return;\n }\n returned = handler.apply(that, args);\n\n // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n }\n\n // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n then = returned && (\n // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then;\n\n // Handle a returned thenable\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special));\n\n // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n }\n\n // Handle all other returned values\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n }\n\n // Process the value(s)\n // Default process is resolve\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.error);\n }\n\n // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n deferred.rejectWith(that, args);\n }\n }\n };\n\n // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the error, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getErrorHook) {\n process.error = jQuery.Deferred.getErrorHook();\n\n // The deprecated alias of the above. While the name suggests\n // returning the stack, not an error instance, jQuery just passes\n // it directly to `console.warn` so both will work; an instance\n // just better cooperates with source maps.\n } else if (jQuery.Deferred.getStackHook) {\n process.error = jQuery.Deferred.getStackHook();\n }\n window.setTimeout(process);\n }\n };\n }\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith));\n\n // fulfilled_handlers.add( ... )\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity));\n\n // rejected_handlers.add( ... )\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n\n // Add list-specific methods\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5];\n\n // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n promise[tuple[1]] = list.add;\n\n // Handle state\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n },\n // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable,\n // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable,\n // progress_callbacks.lock\n tuples[0][2].lock,\n // progress_handlers.lock\n tuples[0][3].lock);\n }\n\n // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n list.add(tuple[3].fire);\n\n // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n };\n\n // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n // Make the deferred a promise\n promise.promise(deferred);\n\n // Call given func if any\n if (func) {\n func.call(deferred, deferred);\n }\n\n // All done!\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var\n // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n };\n\n // Single- and empty arguments are adopted like Promise.resolve\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining);\n\n // Use .then() to unwrap secondary thenables (cf. gh-3000)\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n }\n\n // Multiple arguments are aggregated like Promise.all array elements\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n return primary.promise();\n }\n });\n\n // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n // If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n // captured before the async barrier to get the original error cause\n // which may otherwise be hidden.\n jQuery.Deferred.exceptionHook = function (error, asyncError) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, asyncError);\n }\n };\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n };\n\n // The deferred used on DOM ready\n var readyList = jQuery.Deferred();\n jQuery.fn.ready = function (fn) {\n readyList.then(fn)\n\n // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See trac-6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n }\n\n // Remember that the DOM is ready\n jQuery.isReady = true;\n\n // If a normal DOM Ready event fired, decrement, and wait if need be\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n }\n\n // If there are functions bound, to execute\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then;\n\n // The ready event handler and self cleanup method\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.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\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed);\n\n // A fallback to window.onload, that will always work\n window.addEventListener(\"load\", completed);\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\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n // Sets many values\n if (toType(key) === \"object\") {\n chainable = true;\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n\n // Sets one value\n } else if (value !== undefined) {\n chainable = true;\n if (!isFunction(value)) {\n raw = true;\n }\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null;\n\n // ...except when executing function values\n } else {\n bulk = fn;\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n if (chainable) {\n return elems;\n }\n\n // Gets\n if (bulk) {\n return fn.call(elems);\n }\n return len ? fn(elems[0], key) : emptyGet;\n };\n\n // Matches dashed string for camelizing\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g;\n\n // Used by camelCase as callback to replace()\n function fcamelCase(_all, letter) {\n return 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 (trac-9572)\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n var acceptData = function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando];\n\n // If not, create one\n if (!value) {\n value = {};\n\n // We can accept data for non-element nodes in modern browsers,\n // but we should not, see trac-8335.\n // Always return an empty object.\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value;\n\n // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner);\n\n // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value;\n\n // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) :\n // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n }\n\n // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n this.set(owner, key, value);\n\n // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n if (cache === undefined) {\n return;\n }\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key);\n\n // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n i = key.length;\n while (i--) {\n delete cache[key[i]];\n }\n }\n\n // Remove the expando if there's no more data\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data();\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\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n if (data === \"false\") {\n return false;\n }\n if (data === \"null\") {\n return null;\n }\n\n // Only convert to a number if it doesn't change the string\n if (data === +data + \"\") {\n return +data;\n }\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n return data;\n }\n function dataAttr(elem, key, data) {\n var name;\n\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {}\n\n // Make sure we set the data so it isn't changed later\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n return data;\n }\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes;\n\n // Gets all values\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (trac-14894)\n if (attrs[i]) {\n name = attrs[i].name;\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n return data;\n }\n\n // Sets multiple values\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n return access(this, function (value) {\n var data;\n\n // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n data = dataAttr(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // We tried really hard, but the data doesn't exist.\n return;\n }\n\n // Set the data...\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type);\n\n // Speed up dequeue by getting out quickly if this is just a lookup\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n };\n\n // If the fx queue is dequeued, always remove the progress sentinel\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n // Clear up the last queue stop function\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n // Ensure a hooks for this queue\n jQuery._queueHooks(this, type);\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n type = type || \"fx\";\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n };\n\n // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n var isHiddenWithinTree = function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n\n // Inline style trumps all\n return elem.style.display === \"none\" || elem.style.display === \"\" &&\n // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2;\n\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3];\n\n // Iteratively approximate from a nonzero starting point\n initialInUnit = +initial || 1;\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n initialInUnit = initialInUnit / scale;\n }\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit);\n\n // Make sure we update the tween properties later on\n valueParts = valueParts || [];\n }\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0;\n\n // Apply relative offset (+=/-=) if specified\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n return adjusted;\n }\n var defaultDisplayMap = {};\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n if (display) {\n return display;\n }\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n if (display === \"none\") {\n display = \"block\";\n }\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length;\n\n // Determine new display value for elements that need to change\n for (; index < length; index++) {\n elem = elements[index];\n if (!elem.style) {\n continue;\n }\n display = elem.style.display;\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\";\n\n // Remember what we're overwriting\n dataPriv.set(elem, \"display\", display);\n }\n }\n }\n\n // Set the display of the elements in a second loop to avoid constant reflow\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n return elements;\n }\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\");\n\n // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (trac-11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (trac-14901)\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input);\n\n // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n\n // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n\n // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })();\n\n // We have to close these tags to support XHTML (trac-13200)\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n // Support: IE <=9 only\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n var ret;\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n return ret;\n }\n\n // Mark scripts as having already been evaluated\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n var rhtml = /<|&#?\\w+;/;\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n for (; i < l; i++) {\n elem = elems[i];\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n\n // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem));\n\n // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n\n // Deserialize a standard representation\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\n\n // Descend through wrappers to the right content\n j = wrap[0];\n while (j--) {\n tmp = tmp.lastChild;\n }\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, tmp.childNodes);\n\n // Remember the top-level container\n tmp = fragment.firstChild;\n\n // Ensure the created nodes are orphaned (trac-12392)\n tmp.textContent = \"\";\n }\n }\n }\n\n // Remove wrapper from fragment\n fragment.textContent = \"\";\n i = 0;\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n continue;\n }\n attached = isAttached(elem);\n\n // Append to fragment\n tmp = getAll(fragment.appendChild(elem), \"script\");\n\n // Preserve script evaluation history\n if (attached) {\n setGlobalEval(tmp);\n }\n\n // Capture executables\n if (scripts) {\n j = 0;\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n return fragment;\n }\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n function on(elem, types, selector, data, fn, one) {\n var origFn, type;\n\n // Types can be a map of types/handlers\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n return elem;\n }\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n if (one === 1) {\n origFn = fn;\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n\n // Use same guid so caller can remove using origFn\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\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 */\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem);\n\n // Only attach events to objects that accept data\n if (!acceptData(elem)) {\n return;\n }\n\n // Caller can pass in an object of custom data in lieu of the handler\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n }\n\n // Make sure that the handler has a unique ID, used to find/remove it later\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n // Init the element's event structure and main handler, if this is the first\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n // Handle multiple events separated by a space\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // There *must* be a type, no attaching namespace-only handlers\n if (!type) {\n continue;\n }\n\n // If event changes its type, use the special event handlers for the changed type\n special = jQuery.event.special[type] || {};\n\n // If selector defined, determine special event api type, otherwise given type\n type = (selector ? special.delegateType : special.bindType) || type;\n\n // Update special based on newly reset type\n special = jQuery.event.special[type] || {};\n\n // handleObj is passed to all event handlers\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n // Init the event handler queue if we're the first\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n // Only use addEventListener if the special events handler returns false\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n if (special.add) {\n special.add.call(elem, handleObj);\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n // Add to the element's handler list, delegates in front\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n // Keep track of which events have ever been used, for event optimization\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n // Once for each type.namespace in types; type may be omitted\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // Unbind all events (on this namespace, if provided) for the element\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n continue;\n }\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n // Remove matching events\n origCount = j = handlers.length;\n while (j--) {\n handleObj = handlers[j];\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n delete events[type];\n }\n }\n\n // Remove data and the expando if it's no longer used\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\n args[0] = event;\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n event.delegateTarget = this;\n\n // Call the preDispatch hook for the mapped type, and let it bail if desired\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n // Determine handlers\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n // Run delegates first; they may want to stop propagation beneath us\n i = 0;\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n // Call the postDispatch hook for the mapped type\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target;\n\n // Find delegate handlers\n if (delegateCount &&\n // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType &&\n // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (trac-13208)\n // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i];\n\n // Don't conflict with Object.prototype properties (trac-13203)\n sel = handleObj.selector + \" \";\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n }\n\n // Add the remaining (directly-bound) handlers\n cur = this;\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Claim the first handler\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", true);\n }\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Force setup before triggering a click\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n }\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\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.\n function leverageNative(el, type, isSetup) {\n // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n if (!isSetup) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n return;\n }\n\n // Register the controller as a special universal handler for all event namespaces\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var result,\n saved = dataPriv.get(this, type);\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n if (!saved) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved);\n\n // Trigger the native event and capture its result\n this[type]();\n result = dataPriv.get(this, type);\n dataPriv.set(this, type, false);\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result;\n }\n\n // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering\n // the native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n }\n\n // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n } else if (saved) {\n // ...and capture the result\n dataPriv.set(this, type, jQuery.event.trigger(saved[0], saved.slice(1), this));\n\n // Abort handling of the native event by all jQuery handlers while allowing\n // native handlers on the same element to run. On target, this is achieved\n // by stopping immediate propagation just on the jQuery event. However,\n // the native event is re-wrapped by a jQuery one on each level of the\n // propagation so the only way to stop it for jQuery is to stop it for\n // everyone via native `stopPropagation()`. This is not a problem for\n // focus/blur which don't bubble, but it does also stop click on checkboxes\n // and radios. We accept this limitation.\n event.stopPropagation();\n event.isImmediatePropagationStopped = returnTrue;\n }\n }\n });\n }\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n // Event object\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined &&\n // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse;\n\n // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (trac-504, trac-13143)\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget;\n\n // Event type\n } else {\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props) {\n jQuery.extend(this, props);\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n\n // Mark it as fixed\n this[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\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n this.stopPropagation();\n }\n };\n\n // Includes all common event props including KeyEvent and MouseEvent specific props\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n function focusMappedHandler(nativeEvent) {\n if (document.documentMode) {\n // Support: IE 11+\n // Attach a single focusin/focusout handler on the document while someone wants\n // focus/blur. This is because the former are synchronous in IE while the latter\n // are async. In other browsers, all those handlers are invoked synchronously.\n\n // `handle` from private data would already wrap the event, but we need\n // to change the `type` here.\n var handle = dataPriv.get(this, \"handle\"),\n event = jQuery.event.fix(nativeEvent);\n event.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n event.isSimulated = true;\n\n // First, handle focusin/focusout\n handle(nativeEvent);\n\n // ...then, handle focus/blur\n //\n // focus/blur don't bubble while focusin/focusout do; simulate the former by only\n // invoking the handler at the lower level.\n if (event.target === event.currentTarget) {\n // The setup part calls `leverageNative`, which, in turn, calls\n // `jQuery.event.add`, so event handle will already have been set\n // by this point.\n handle(event);\n }\n } else {\n // For non-IE browsers, attach a single capturing handler on the document\n // while someone wants focusin/focusout.\n jQuery.event.simulate(delegateType, nativeEvent.target, jQuery.event.fix(nativeEvent));\n }\n }\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n var attaches;\n\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, true);\n if (document.documentMode) {\n // Support: IE 9 - 11+\n // We use the same native handler for focusin & focus (and focusout & blur)\n // so we need to coordinate setup & teardown parts between those events.\n // Use `delegateType` as the key as `type` is already used by `leverageNative`.\n attaches = dataPriv.get(this, delegateType);\n if (!attaches) {\n this.addEventListener(delegateType, focusMappedHandler);\n }\n dataPriv.set(this, delegateType, (attaches || 0) + 1);\n } else {\n // Return false to allow normal processing in the caller\n return false;\n }\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type);\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n teardown: function () {\n var attaches;\n if (document.documentMode) {\n attaches = dataPriv.get(this, delegateType) - 1;\n if (!attaches) {\n this.removeEventListener(delegateType, focusMappedHandler);\n dataPriv.remove(this, delegateType);\n } else {\n dataPriv.set(this, delegateType, attaches);\n }\n } else {\n // Return false to indicate standard teardown should be applied\n return false;\n }\n },\n // Suppress native focus or blur if we're currently inside\n // a leveraged native-event stack\n _default: function (event) {\n return dataPriv.get(event.target, type);\n },\n delegateType: delegateType\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\n //\n // Support: IE 9 - 11+\n // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n // attach a single handler for both events in IE.\n jQuery.event.special[delegateType] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n dataHolder = document.documentMode ? this : doc,\n attaches = dataPriv.get(dataHolder, delegateType);\n\n // Support: IE 9 - 11+\n // We use the same native handler for focusin & focus (and focusout & blur)\n // so we need to coordinate setup & teardown parts between those events.\n // Use `delegateType` as the key as `type` is already used by `leverageNative`.\n if (!attaches) {\n if (document.documentMode) {\n this.addEventListener(delegateType, focusMappedHandler);\n } else {\n doc.addEventListener(type, focusMappedHandler, true);\n }\n }\n dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n dataHolder = document.documentMode ? this : doc,\n attaches = dataPriv.get(dataHolder, delegateType) - 1;\n if (!attaches) {\n if (document.documentMode) {\n this.removeEventListener(delegateType, focusMappedHandler);\n } else {\n doc.removeEventListener(type, focusMappedHandler, true);\n }\n dataPriv.remove(dataHolder, delegateType);\n } else {\n dataPriv.set(dataHolder, delegateType, attaches);\n }\n }\n };\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).\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n return this;\n }\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n if (fn === false) {\n fn = returnFalse;\n }\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var\n // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g;\n\n // Prefer a tbody over its parent table for containing new rows\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n return elem;\n }\n\n // Replace/restore the type attribute of script elements for safe DOM manipulation\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n return elem;\n }\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n if (dest.nodeType !== 1) {\n return;\n }\n\n // 1. Copy private data: events, handlers, etc.\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n // 2. Copy user data\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n }\n\n // Fix IE bugs, see support tests\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n // Fails to persist the checked state of a cloned checkbox or radio button.\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n\n // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value);\n\n // We can't cloneNode fragments that contain checked, in WebKit\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n domManip(self, args, callback, ignored);\n });\n }\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n // Require either new content or an interest in ignored elements to invoke the callback\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (trac-8070).\n for (; i < l; i++) {\n node = fragment;\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n // Keep references to cloned scripts for later restoration\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n callback.call(collection[i], node, i);\n }\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n\n // Re-enable scripts\n jQuery.map(scripts, restoreScript);\n\n // Evaluate executable scripts on first document insertion\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n // Unwrap a CDATA section containing script contents. This shouldn't be\n // needed as in XML documents they're already not visible when\n // inspecting element contents and in HTML documents they have no\n // meaning but we're preserving that logic for backwards compatibility.\n // This will be removed completely in 4.0. See gh-4904.\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n return collection;\n }\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n node.parentNode.removeChild(node);\n }\n }\n return elem;\n }\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem);\n\n // Fix IE cloning issues\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew jQuery#find here for performance reasons:\n // https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n // Copy the events from the original to the clone\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n // Preserve script evaluation history\n destElements = getAll(clone, \"script\");\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n // Return the cloned set\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n\n // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataPriv.expando] = undefined;\n }\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false));\n\n // Remove any remaining nodes\n elem.textContent = \"\";\n }\n }\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n // See if we can take a shortcut and just use innerHTML\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n // Remove element nodes and prevent memory leaks\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n elem = 0;\n\n // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = [];\n\n // Make the changes, replacing each non-ignored context element with the new content\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n if (parent) {\n parent.replaceChild(elem, this);\n }\n }\n\n // Force callback invocation\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n push.apply(ret, elems.get());\n }\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n var rcustomProp = /^--/;\n var getStyles = function (elem) {\n // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = window;\n }\n return view.getComputedStyle(elem);\n };\n var swap = function (elem, options, callback) {\n var ret,\n name,\n old = {};\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n ret = callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n elem.style[name] = old[name];\n }\n return ret;\n };\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\";\n\n // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\n\n // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\n\n // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\n\n // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container);\n\n // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n div = null;\n }\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\");\n\n // Finish early in limited (non-browser) environments\n if (!div.style) {\n return;\n }\n\n // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (trac-8908)\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n\n // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is `display: block`\n // gets around this issue.\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n return reliableTrDimensionsVal;\n }\n });\n })();\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n isCustomProp = rcustomProp.test(name),\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem);\n\n // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, trac-12537)\n // .css('--customProperty) (gh-3144)\n if (computed) {\n // Support: IE <=9 - 11+\n // IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n // it's only available as `\"cssFloat\"`. We no longer modify properties\n // sent to `.css()` apart from camelCasing, so we need to check both.\n // Normally, this would create difference in behavior: if\n // `getPropertyValue` returns an empty string, the value returned\n // by `.css()` would be `undefined`. This is usually the case for\n // disconnected elements. However, in IE even disconnected elements\n // with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n ret = computed.getPropertyValue(name) || computed[name];\n if (isCustomProp && ret) {\n // Support: Firefox 105+, Chrome <=105+\n // Spec requires trimming whitespace for custom properties (gh-4926).\n // Firefox only trims leading whitespace. Chrome just collapses\n // both leading & trailing whitespace to a single space.\n //\n // Fall back to `undefined` if empty string returned.\n // This collapses a missing definition with property defined\n // and set to an empty string but there's no standard API\n // allowing us to differentiate them without a performance penalty\n // and returning `undefined` aligns with older jQuery.\n //\n // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n // as whitespace while CSS does not, but this is not a problem\n // because CSS preprocessing replaces them with U+000A LINE FEED\n // (which *is* CSS whitespace)\n // https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n ret = ret.replace(rtrimCSS, \"$1\") || undefined;\n }\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n }\n\n // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth;\n\n // Put in the new values to get a computed value out\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width;\n\n // Revert the changed values\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n return ret !== undefined ?\n // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n }\n\n // Hook needed; redefine it so that the support test is not executed again.\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {};\n\n // Return a vendor-prefixed property or undefined\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n while (i--) {\n name = cssPrefixes[i] + capName;\n if (name in emptyStyle) {\n return name;\n }\n }\n }\n\n // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n if (final) {\n return final;\n }\n if (name in emptyStyle) {\n return name;\n }\n return vendorProps[name] = vendorPropName(name) || name;\n }\n var\n // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ?\n // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0,\n marginDelta = 0;\n\n // Adjustment may not be necessary\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n // Count margin delta separately to only add it after scroll gutter adjustment.\n // This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n if (box === \"margin\") {\n marginDelta += jQuery.css(elem, box + cssExpand[i], true, styles);\n }\n\n // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n // For \"border\" or \"margin\", add border\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n\n // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n\n // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n }\n\n // For \"content\" or \"padding\", subtract border\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n }\n\n // Account for positive content-box scroll gutter when requested by providing computedVal\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5\n\n // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n return delta + marginDelta;\n }\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n\n // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n val = \"auto\";\n }\n\n // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n if ((!support.boxSizingReliable() && isBorderBox ||\n // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\n // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" ||\n // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\n // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n valueIsBorderBox = offsetProp in elem;\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n }\n\n // Normalize \"\" and auto\n val = parseFloat(val) || 0;\n\n // Adjust for the element's box model\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles,\n // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageSlice: true,\n columnCount: true,\n flexGrow: true,\n flexShrink: true,\n fontWeight: true,\n gridArea: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnStart: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowStart: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n scale: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeMiterlimit: true,\n strokeOpacity: true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n }\n\n // Make sure that we're working with the right name\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style;\n\n // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Gets hook for the prefixed version, then unprefixed version\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // Check if we're setting a value\n if (value !== undefined) {\n type = typeof value;\n\n // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret);\n\n // Fixes bug trac-9237\n type = \"number\";\n }\n\n // Make sure that null and NaN values aren't set (trac-7116)\n if (value == null || value !== value) {\n return;\n }\n\n // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n }\n\n // background-* props affect original clone's values\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n }\n\n // If a hook was provided, use that value, otherwise just set the specified value\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n }\n\n // Otherwise just get the value from the style object\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name);\n\n // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Try prefixed name followed by the unprefixed name\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // If a hook was provided get the computed value from there\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n }\n\n // Otherwise, if a way to get the computed value exists, use that\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n }\n\n // Convert \"normal\" to computed value\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n }\n\n // Make numeric if forced or a qualifier was provided and val looks numeric\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && (\n // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0;\n\n // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n }\n\n // Convert to pixels if value adjustment is needed\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n });\n\n // These hooks are used by animate to expand properties\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n return expanded;\n }\n };\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n return map;\n }\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n this.now = (this.end - this.start) * eased + this.start;\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result;\n\n // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n }\n\n // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n result = jQuery.css(tween.elem, tween.prop, \"\");\n\n // Empty strings, null, undefined and \"auto\" are converted to 0.\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n };\n\n // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init;\n\n // Back compat <1.8 extension point\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n jQuery.fx.tick();\n }\n }\n\n // Animations created synchronously will run synchronously\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n }\n\n // Generate parameters to create a standard animation\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n };\n\n // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n includeWidth = includeWidth ? 1 : 0;\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n return attrs;\n }\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\");\n\n // Queue-skipping animations hijack the fx hooks\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n }\n\n // Detect show/hide animations\n for (prop in props) {\n value = props[prop];\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true;\n\n // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n }\n\n // Bail out if this is a no-op like .hide().hide()\n propTween = !jQuery.isEmptyObject(props);\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n }\n\n // Restrict \"overflow\" and \"display\" styles during box animations\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n\n // Identify a display type, preferring old show/hide data over the CSS cascade\n restoreDisplay = dataShow && dataShow.display;\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n display = jQuery.css(elem, \"display\");\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n }\n\n // Animate inline elements as inline-block\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n style.display = \"inline-block\";\n }\n }\n }\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n }\n\n // Implement show/hide animations\n propTween = false;\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n }\n\n // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n if (toggle) {\n dataShow.hidden = !hidden;\n }\n\n // Show elements before animating them\n if (hidden) {\n showHide([elem], true);\n }\n\n /* eslint-disable no-loop-func */\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n dataPriv.remove(elem, \"fxshow\");\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n }\n\n // Per-property setup\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks;\n\n // camelCase, specialEasing and expand cssHook pass\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n hooks = jQuery.cssHooks[name];\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name];\n\n // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n deferred.notifyWith(elem, [animation, percent, remaining]);\n\n // If there's more to do, yield\n if (percent < 1 && length) {\n return remaining;\n }\n\n // If this was an empty animation, synthesize a final progress notification\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n }\n\n // Resolve the animation and report its conclusion\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n if (stopped) {\n return this;\n }\n stopped = true;\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n }\n\n // Resolve when we played the last frame; otherwise, reject\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n return this;\n }\n }),\n props = animation.props;\n propFilter(props, animation.opts.specialEasing);\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n return result;\n }\n }\n jQuery.map(props, createTween, animation);\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n }\n\n // Attach callbacks from options\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n var prop,\n index = 0,\n length = props.length;\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n };\n\n // Go to the end state if fx are off\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n }\n\n // Normalize opt.queue - true/undefined/null -> \"fx\"\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n }\n\n // Queueing\n opt.old = opt.complete;\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n return opt;\n };\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\n\n // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n // Empty animations, or finishing resolves immediately\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n }\n\n // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0;\n\n // Enable finishing flag on private data\n data.finish = true;\n\n // Empty the queue first\n jQuery.queue(this, type, []);\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n }\n\n // Look for any active animations, and finish them\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n }\n\n // Look for any animations in the old queue and finish them\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n }\n\n // Turn off finishing flag\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n });\n\n // Generate shortcuts for custom animations\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n for (; i < timers.length; i++) {\n timer = timers[i];\n\n // Run the timer and safely remove it when done (allowing for external removal)\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n if (!timers.length) {\n jQuery.fx.stop();\n }\n fxNow = undefined;\n };\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n jQuery.fx.interval = 13;\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n inProgress = true;\n schedule();\n };\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n\n // Based off of the plugin by Clint Helfers, with permission.\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\";\n\n // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n support.checkOn = input.value !== \"\";\n\n // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n support.optSelected = opt.selected;\n\n // Support: IE <=11 only\n // An input loses its value after becoming a radio\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set attributes on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n // Fallback to prop when attributes are not supported\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n }\n\n // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n elem.setAttribute(name, value + \"\");\n return value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n ret = jQuery.find.attr(elem, name);\n\n // Non-existent attributes return null, we normalize to undefined\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n if (val) {\n elem.value = val;\n }\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n });\n\n // Hooks for boolean attributes\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set properties on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n return elem[name] = value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // Use proper attribute retrieval (trac-12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\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\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent) {\n parent.selectedIndex;\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n\n // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n return [];\n }\n jQuery.fn.extend({\n addClass: function (value) {\n var classNames, cur, curValue, className, i, finalValue;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n classNames = classesToArray(value);\n if (classNames.length) {\n return this.each(function () {\n curValue = getClass(this);\n cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n if (cur.indexOf(\" \" + className + \" \") < 0) {\n cur += className + \" \";\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n this.setAttribute(\"class\", finalValue);\n }\n }\n });\n }\n return this;\n },\n removeClass: function (value) {\n var classNames, cur, curValue, className, i, finalValue;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n classNames = classesToArray(value);\n if (classNames.length) {\n return this.each(function () {\n curValue = getClass(this);\n\n // This expression is here for better compressibility (see addClass)\n cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n\n // Remove *all* instances\n while (cur.indexOf(\" \" + className + \" \") > -1) {\n cur = cur.replace(\" \" + className + \" \", \" \");\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n this.setAttribute(\"class\", finalValue);\n }\n }\n });\n }\n return this;\n },\n toggleClass: function (value, stateVal) {\n var classNames,\n className,\n i,\n self,\n type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n classNames = classesToArray(value);\n return this.each(function () {\n if (isValidValue) {\n // Toggle individual class names\n self = jQuery(this);\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n }\n\n // Toggle whole class name\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n }\n\n // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n ret = elem.value;\n\n // Handle most common string cases\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n }\n\n // Handle cases where value is null/undef or number\n return ret == null ? \"\" : ret;\n }\n return;\n }\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n if (this.nodeType !== 1) {\n return;\n }\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n }\n\n // Treat null/undefined as \"\"; convert numbers to string\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\n\n // If set returns undefined, fall back to normal setting\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val :\n // Support: IE <=10 - 11 only\n // option.text throws exceptions (trac-14686, trac-14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n }\n\n // Loop through all the selected options\n for (; i < max; i++) {\n option = options[i];\n\n // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (trac-2551)\n if ((option.selected || i === index) &&\n // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val();\n\n // We don't need an array for one selects\n if (one) {\n return value;\n }\n\n // Multi-Selects return an array\n values.push(value);\n }\n }\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n while (i--) {\n option = options[i];\n\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n\n /* eslint-enable no-cond-assign */\n }\n\n // Force browsers to behave consistently when non-matching value is set\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n return values;\n }\n }\n }\n });\n\n // Radios and checkboxes getter/setter\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n });\n\n // Return jQuery for attributes-only inclusion\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/;\n\n // Cross-browser xml parsing\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n if (!data || typeof data !== \"string\") {\n return null;\n }\n\n // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n return xml;\n };\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document;\n\n // Don't do events on text and comment nodes\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event);\n\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n\n // Clean up the event in case it is being reused\n event.result = undefined;\n if (!event.target) {\n event.target = elem;\n }\n\n // Clone any incoming data and prepend the event, creating the handler arg list\n data = data == null ? [event] : jQuery.makeArray(data, [event]);\n\n // Allow special events to draw outside the lines\n special = jQuery.event.special[type] || {};\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n // Determine event propagation path in advance, per W3C events spec (trac-9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n // Fire handlers on the event path\n i = 0;\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type;\n\n // jQuery handler\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n if (handle) {\n handle.apply(cur, data);\n }\n\n // Native handler\n handle = ontype && cur[ontype];\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n event.type = type;\n\n // If nobody prevented the default action, do it now\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (trac-6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n if (tmp) {\n elem[ontype] = null;\n }\n\n // Prevent re-triggering of the same event, since we already bubbled it above\n jQuery.event.triggered = type;\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n elem[type]();\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n jQuery.event.triggered = undefined;\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n function buildParams(prefix, obj, traditional, add) {\n var name;\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n }\n\n // Serialize an array of form elements or a set of\n // key/values into a query string\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n if (a == null) {\n return \"\";\n }\n\n // If an array was passed in, assume that it is an array of form elements.\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n }\n\n // Return the resulting serialization\n return s.join(\"&\");\n };\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type;\n\n // Use .is( \":disabled\" ) so that fieldset[disabled] works\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n if (val == null) {\n return null;\n }\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // trac-7653, trac-8125, trac-8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n\n // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n\n // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n // Base inspection function for prefilters and transports\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n return 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 trac-9887\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n return 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 */\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n // Remove auto dataType and get content-type in the process\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n // Check if we're dealing with a known content-type\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n // Check to see if we have a response for the expected dataType\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n // Or just use first one\n finalDataType = finalDataType || firstDataType;\n }\n\n // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n return responses[finalDataType];\n }\n }\n\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice();\n\n // Create converters map with lowercased keys\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n current = dataTypes.shift();\n\n // Convert to each sequential dataType\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n // Apply the dataFilter if provided\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n prev = current;\n current = dataTypes.shift();\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev;\n\n // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n // If none found, seek a pair\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2];\n\n // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n break;\n }\n }\n }\n }\n\n // Apply converter (if not an equivalence)\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n return {\n state: \"success\",\n data: response\n };\n }\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ?\n // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n }\n\n // Force options to be an object\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n if (transport) {\n transport.abort(finalText);\n }\n done(0, finalText);\n return this;\n }\n };\n\n // Attach deferreds\n deferred.promise(jqXHR);\n\n // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n // We also use the url parameter if available\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n // Alias method option to type as per ticket trac-12004\n s.type = options.method || options.type || s.method || s.type;\n\n // Extract dataTypes list\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n // A cross-domain request is in order when the origin doesn't match the current origin.\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\");\n\n // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n try {\n urlAnchor.href = s.url;\n\n // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n }\n\n // Convert data if not already a string\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n // Apply prefilters\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n // If request was aborted inside a prefilter, stop there\n if (completed) {\n return jqXHR;\n }\n\n // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n fireGlobals = jQuery.event && s.global;\n\n // Watch for a new set of requests\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n // Uppercase the type\n s.type = s.type.toUpperCase();\n\n // Determine if request has content\n s.hasContent = !rnoContent.test(s.type);\n\n // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n cacheURL = s.url.replace(rhash, \"\");\n\n // More options handling for requests with no content\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length);\n\n // If data is available and should be processed, append data to url\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n // trac-9682: remove data so that it's not used in an eventual retry\n delete s.data;\n }\n\n // Add or update anti-cache param if needed\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n }\n\n // Put hash and anti-cache on the URL that will be requested (gh-1732)\n s.url = cacheURL + uncached;\n\n // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n }\n\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n // Set the correct header, if data is being sent\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n // Set the Accepts header for the server, depending on the dataType\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n // Check for headers option\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n // Allow custom headers/mimetypes and early abort\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n }\n\n // Aborting is no longer a cancellation\n strAbort = \"abort\";\n\n // Install callbacks on deferreds\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error);\n\n // Get transport\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n // If no transport, we auto-abort\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n // Send global event\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n // If request was aborted inside ajaxSend, stop there\n if (completed) {\n return jqXHR;\n }\n\n // Timeout\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n }\n\n // Propagate others as results\n done(-1, e);\n }\n }\n\n // Callback for when everything is done\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n // Ignore repeat invocations\n if (completed) {\n return;\n }\n completed = true;\n\n // Clear timeout if it exists\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n }\n\n // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n transport = undefined;\n\n // Cache response headers\n responseHeadersString = headers || \"\";\n\n // Set readyState\n jqXHR.readyState = status > 0 ? 4 : 0;\n\n // Determine if successful\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n // Get response data\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n // Use a noop converter for missing script but not if jsonp\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n }\n\n // Convert no matter what (that way responseXXX fields are always set)\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n // If successful, handle type chaining\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n modified = jqXHR.getResponseHeader(\"etag\");\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n // if no content\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n\n // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\";\n\n // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n if (status || !statusText) {\n statusText = \"error\";\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n // Set data for the fake xhr object\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n // Success/Error\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n // Status-dependent callbacks\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n // Complete\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n // Handle the global AJAX counter\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n // The url can be an options object (which then must have .url)\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (trac-11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n }\n\n // The elements to wrap the target around\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n wrap.map(function () {\n var elem = this;\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n return elem;\n }).append(this);\n }\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // trac-1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback;\n\n // Cross domain only allowed if supported through XMLHttpRequest\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password);\n\n // Apply custom fields if provided\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n }\n\n // Override mime type if needed\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n }\n\n // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n }\n\n // Set headers\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n }\n\n // Callback\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete(\n // File: protocol always yields status 0; see trac-8605, trac-14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText,\n // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n };\n\n // Listen to events\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\");\n\n // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n }\n\n // Create the abort callback\n callback = callback(\"abort\");\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // trac-14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n });\n\n // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n });\n\n // Install script dataType\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n });\n\n // Handle cache's special case and crossDomain\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n });\n\n // Bind script tag hack transport\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"