{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./src/components/UtplBibliotecaBooks.vue?3b4c","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/bootstrap-vue/dist/bootstrap-vue.css?d6f0","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesShadow.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack:///./node_modules/@vue/web-component-wrapper/dist/vue-wc-wrapper.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./src/components/UtplBibliotecaBooks.vue?6b76","webpack:///src/components/UtplBibliotecaBooks.vue","webpack:///./src/components/UtplBibliotecaBooks.vue?2dc5","webpack:///./src/components/UtplBibliotecaBooks.vue","webpack:///./node_modules/@vue/cli-service/lib/commands/build/entry-wc.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./src/styles/styles-biblioteca-wc.css","webpack:///./node_modules/bootstrap-vue/dist/bootstrap-vue.css","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/@soda/get-current-script/index.js","webpack:///external \"Vue\"","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css?be50","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./src/components/UtplBibliotecaBooks.vue?c5be","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./src/components/UtplBibliotecaBooks.vue?569c","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","validator","validators","Axios","instanceConfig","this","defaults","interceptors","request","response","config","arguments","url","method","toLowerCase","transitional","undefined","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","clarifyTimeoutError","requestInterceptorChain","synchronousRequestInterceptors","forEach","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","promise","responseInterceptorChain","push","chain","Array","apply","concat","Promise","resolve","length","then","shift","newConfig","onFulfilled","onRejected","error","reject","getUri","params","paramsSerializer","replace","data","callback","arr","global","factory","document","w","Error","window","noGlobal","getProto","getPrototypeOf","slice","flat","array","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","jquery","constructor","toArray","num","pushStack","elems","ret","merge","prevObject","each","map","elem","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","copy","copyIsArray","clone","target","deep","isPlainObject","isArray","expando","Math","random","isReady","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","callbackInverse","matches","callbackExpect","arg","guid","iterator","split","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","cached","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","_","flag","Identity","v","Thrower","ex","adoptValue","noValue","fail","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","configurable","set","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","div","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","err","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","complete","timer","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","responseFields","dataFilter","throws","active","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","_jQuery","_$","$","noConflict","thisArg","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","getDefaultAdapter","adapter","stringifySafely","rawValue","parser","encoder","isString","stringify","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","transformResponse","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","cssWithMappingToString","useSourceMap","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","sourceRoot","sourceMap","base64","unescape","mediaQuery","dedupe","alreadyImportedModules","default","locals","__inject__","shadowRoot","__CANCEL__","encode","serializedParams","isDate","toISOString","hashmarkIndex","listToStyles","parentId","newStyles","media","part","addStylesToShadowDOM","addStyles","injectedStyles","_injectedStyles","addStyle","createStyleElement","styleElement","styleSheet","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","isStandardBrowserEnv","originURL","msie","navigator","userAgent","urlParsingNode","resolveURL","search","hostname","port","pathname","charAt","requestURL","nextTick","platform","arch","execPath","title","pid","browser","env","argv","binding","path","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","createError","Popper","_interopDefaultLegacy","$__default","Popper__default","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","_extends","assign","_inheritsLoose","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","getSpecialTransitionEndEvent","transitionEndEmulator","_this","called","Util","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","getUID","getSelectorFromElement","element","hrefAttr","querySelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","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","customEvent","_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","classList","hasAttribute","avoidTriggerChange","initialButton","inputBtn","tagName","_len","_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","touch","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","clearInterval","_updateInterval","setInterval","visibilityState","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","move","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","defaultInterval","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","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","capitalizedDimension","scrollSize","triggerArrayLength","$elem","isTransitioning","hasWidth","_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","flip","boundary","reference","popperConfig","DefaultType$5","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","Default","DefaultType","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","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","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","clientHeight","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","paddingLeft","paddingRight","innerWidth","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","scrollDiv","scrollbarWidth","clientWidth","_this11","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","area","br","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","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","fallbackPlacement","customClass","sanitize","DefaultType$3","Event$1","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","isInTheDom","tipId","NAME","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","instance","popper","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","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","scrollSpys","scrollSpysLength","$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","activeElements","_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","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","transformData","isCancel","Cancel","throwIfCancellationRequested","cancelToken","throwIfRequested","signal","aborted","reason","currentScript","NEED_CURRENTSCRIPT_POLYFILL","getCurrentScript","camelizeRE","camelize","str","hyphenateRE","hyphenate","getInitialProps","propsList","res","injectHook","callHooks","vm","$options","createCustomEvent","CustomEvent","isBoolean","isNumber","convertAttributeValue","toVNodes","h","toVNode","getAttributes","domProps","slot","Vue","Component","isAsync","cid","hyphenatedPropsList","camelizedPropsList","camelizedPropsMap","isInitialized","initialize","originalPropsAsObject","reduce","emit","$emit","$root","customElement","dispatchEvent","CustomElement","_wrapper","newVal","syncAttribute","camelized","HTMLElement","super","wrapper","slotChildren","ref","observer","MutationObserver","mutations","hasChildrenChange","attributeName","freeze","$createElement","observe","childList","subtree","characterData","$refs","inner","_isMounted","vueComponent","syncInitialAttributes","resolved","$mount","$el","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","_injectStyles","originalRender","existing","beforeCreate","_vm","_h","_c","_self","staticClass","_l","news","staticStyle","_v","_s","categoria","portada","yearEdicion","titulo","newsUrl","apikey","methods","log","getNews","style0","component","customElements","define","payload","___CSS_LOADER_API_IMPORT___","write","expires","domain","secure","cookie","toGMTString","read","decodeURIComponent","isAbsoluteURL","combineURLs","baseURL","requestedURL","thing","deprecatedWarnings","schema","allowUnknown","formatMessage","desc","getOwnPropertyDescriptor","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","scriptLocation","line","currentLocation","outerHTML","CancelToken","executor","resolvePromise","cancel","_listeners","onfulfilled","_resolve","subscribe","unsubscribe","listener","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","onCanceled","requestData","auth","Authorization","fullPath","onloadend","responseData","responseURL","timeoutErrorMessage","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","ignoreDuplicateOf","substr","FormData","ArrayBuffer","isView","URLSearchParams","product","assignValue","stripBOM","normalizedName","g","Function","createInstance","defaultConfig","axios","all","promises","spread","normalizeArray","allowAboveRoot","up","basename","matchedSlash","xs","f","resolvedPath","resolvedAbsolute","normalize","isAbsolute","trailingSlash","paths","fromParts","toParts","min","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","relativeURL","___CSS_LOADER_AT_RULE_IMPORT_0___","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","debounce","functionToCheck","getType","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","order","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","modifier","bottom","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","defineProperties","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","x","marginBottom","y","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","findIndex","runModifiers","ends","modifiersToRun","isDestroyed","arrowStyles","flipped","positionFixed","isCreated","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","cancelAnimationFrame","setStyles","setAttributes","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","floor","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","size","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","transform","priority","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","subtractLength","onLoad","Defaults","Utils","PopperUtils","use","eject"],"mappings":"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","file":"utpl-biblioteca-books.min.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"5a74\");\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = arguments[1] || {};\n    config.url = arguments[0];\n  } else {\n    config = config || {};\n  }\n\n  config = mergeConfig(this.defaults, config);\n\n  // Set config.method\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  var transitional = config.transitional;\n\n  if (transitional !== undefined) {\n    validator.assertOptions(transitional, {\n      silentJSONParsing: validators.transitional(validators.boolean),\n      forcedJSONParsing: validators.transitional(validators.boolean),\n      clarifyTimeoutError: validators.transitional(validators.boolean)\n    }, false);\n  }\n\n  // filter out skipped interceptors\n  var requestInterceptorChain = [];\n  var synchronousRequestInterceptors = true;\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n      return;\n    }\n\n    synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n    requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  var responseInterceptorChain = [];\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  var promise;\n\n  if (!synchronousRequestInterceptors) {\n    var chain = [dispatchRequest, undefined];\n\n    Array.prototype.unshift.apply(chain, requestInterceptorChain);\n    chain = chain.concat(responseInterceptorChain);\n\n    promise = Promise.resolve(config);\n    while (chain.length) {\n      promise = promise.then(chain.shift(), chain.shift());\n    }\n\n    return promise;\n  }\n\n\n  var newConfig = config;\n  while (requestInterceptorChain.length) {\n    var onFulfilled = requestInterceptorChain.shift();\n    var onRejected = requestInterceptorChain.shift();\n    try {\n      newConfig = onFulfilled(newConfig);\n    } catch (error) {\n      onRejected(error);\n      break;\n    }\n  }\n\n  try {\n    promise = dispatchRequest(newConfig);\n  } catch (error) {\n    return Promise.reject(error);\n  }\n\n  while (responseInterceptorChain.length) {\n    promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  config = mergeConfig(this.defaults, config);\n  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","export * from \"-!../../node_modules/vue-style-loader/index.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UtplBibliotecaBooks.vue?vue&type=style&index=0&lang=css&shadow\"","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n  transitional: {\n    silentJSONParsing: true,\n    forcedJSONParsing: true,\n    clarifyTimeoutError: false\n  },\n\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n      setContentTypeIfUnset(headers, 'application/json');\n      return stringifySafely(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    var transitional = this.transitional || defaults.transitional;\n    var silentJSONParsing = transitional && transitional.silentJSONParsing;\n    var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n    if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw enhanceError(e, this, 'E_JSON_PARSE');\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*'\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item, useSourceMap);\n\n      if (item[2]) {\n        return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n      }\n\n      return content;\n    }).join('');\n  }; // import a list of modules into the list\n  // eslint-disable-next-line func-names\n\n\n  list.i = function (modules, mediaQuery, dedupe) {\n    if (typeof modules === 'string') {\n      // eslint-disable-next-line no-param-reassign\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var i = 0; i < this.length; i++) {\n        // eslint-disable-next-line prefer-destructuring\n        var id = this[i][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _i = 0; _i < modules.length; _i++) {\n      var item = [].concat(modules[_i]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n\n      if (mediaQuery) {\n        if (!item[2]) {\n          item[2] = mediaQuery;\n        } else {\n          item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (useSourceMap && typeof btoa === 'function') {\n    var sourceMapping = toComment(cssMapping);\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n  }\n\n  return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n  // eslint-disable-next-line no-undef\n  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n  var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n  return \"/*# \".concat(data, \" */\");\n}","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../postcss-loader/src/index.js??ref--7-oneOf-3-2!../../postcss-loader/src/index.js??ref--7-oneOf-3-3!./bootstrap-vue.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to Shadow Root\nvar add = require(\"!../../vue-style-loader/lib/addStylesShadow.js\").default\nmodule.exports.__inject__ = function (shadowRoot) {\n  add(\"2b11054f\", content, shadowRoot)\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n  var styles = []\n  var newStyles = {}\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i]\n    var id = item[0]\n    var css = item[1]\n    var media = item[2]\n    var sourceMap = item[3]\n    var part = {\n      id: parentId + ':' + i,\n      css: css,\n      media: media,\n      sourceMap: sourceMap\n    }\n    if (!newStyles[id]) {\n      styles.push(newStyles[id] = { id: id, parts: [part] })\n    } else {\n      newStyles[id].parts.push(part)\n    }\n  }\n  return styles\n}\n","import listToStyles from './listToStyles'\n\nexport default function addStylesToShadowDOM (parentId, list, shadowRoot) {\n  var styles = listToStyles(parentId, list)\n  addStyles(styles, shadowRoot)\n}\n\n/*\ntype StyleObject = {\n  id: number;\n  parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n  css: string;\n  media: string;\n  sourceMap: ?string\n}\n*/\n\nfunction addStyles (styles /* Array<StyleObject> */, shadowRoot) {\n  const injectedStyles =\n    shadowRoot._injectedStyles ||\n    (shadowRoot._injectedStyles = {})\n  for (var i = 0; i < styles.length; i++) {\n    var item = styles[i]\n    var style = injectedStyles[item.id]\n    if (!style) {\n      for (var j = 0; j < item.parts.length; j++) {\n        addStyle(item.parts[j], shadowRoot)\n      }\n      injectedStyles[item.id] = true\n    }\n  }\n}\n\nfunction createStyleElement (shadowRoot) {\n  var styleElement = document.createElement('style')\n  styleElement.type = 'text/css'\n  shadowRoot.appendChild(styleElement)\n  return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */, shadowRoot) {\n  var styleElement = createStyleElement(shadowRoot)\n  var css = obj.css\n  var media = obj.media\n  var sourceMap = obj.sourceMap\n\n  if (media) {\n    styleElement.setAttribute('media', media)\n  }\n\n  if (sourceMap) {\n    // https://developer.chrome.com/devtools/docs/javascript-debugging\n    // this makes source maps inside style tags work properly in Chrome\n    css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n    // http://stackoverflow.com/a/26603875\n    css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n  }\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild)\n    }\n    styleElement.appendChild(document.createTextNode(css))\n  }\n}\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n\n  error.request = request;\n  error.response = response;\n  error.isAxiosError = true;\n\n  error.toJSON = function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  };\n  return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n    (function standardBrowserEnv() {\n      var msie = /(msie|trident)/i.test(navigator.userAgent);\n      var urlParsingNode = document.createElement('a');\n      var originURL;\n\n      /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n      function resolveURL(url) {\n        var href = url;\n\n        if (msie) {\n        // IE needs attribute set twice to normalize properties\n          urlParsingNode.setAttribute('href', href);\n          href = urlParsingNode.href;\n        }\n\n        urlParsingNode.setAttribute('href', href);\n\n        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n        return {\n          href: urlParsingNode.href,\n          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n          host: urlParsingNode.host,\n          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n          hostname: urlParsingNode.hostname,\n          port: urlParsingNode.port,\n          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n            urlParsingNode.pathname :\n            '/' + urlParsingNode.pathname\n        };\n      }\n\n      originURL = resolveURL(window.location.href);\n\n      /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n      return function isURLSameOrigin(requestURL) {\n        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n        return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n      };\n    })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return function isURLSameOrigin() {\n        return true;\n      };\n    })()\n);\n","exports.nextTick = function nextTick(fn) {\n    var args = Array.prototype.slice.call(arguments);\n    args.shift();\n    setTimeout(function () {\n        fn.apply(null, args);\n    }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n    var cwd = '/';\n    var path;\n    exports.cwd = function () { return cwd };\n    exports.chdir = function (dir) {\n        if (!path) path = require('path');\n        cwd = path.resolve(dir, cwd);\n    };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n","/*!\n  * Bootstrap v4.6.1 (https://getbootstrap.com/)\n  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));\n})(this, (function (exports, $, Popper) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n  var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  function _inheritsLoose(subClass, superClass) {\n    subClass.prototype = Object.create(superClass.prototype);\n    subClass.prototype.constructor = subClass;\n\n    _setPrototypeOf(subClass, superClass);\n  }\n\n  function _setPrototypeOf(o, p) {\n    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n      o.__proto__ = p;\n      return o;\n    };\n\n    return _setPrototypeOf(o, p);\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.1): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * Private TransitionEnd Helpers\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    if (obj === null || typeof obj === 'undefined') {\n      return \"\" + obj;\n    }\n\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($__default[\"default\"](event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined;\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $__default[\"default\"](this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $__default[\"default\"].fn.emulateTransitionEnd = transitionEndEmulator;\n    $__default[\"default\"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * Public Util API\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (_) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $__default[\"default\"](element).css('transition-duration');\n      var transitionDelay = $__default[\"default\"](element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $__default[\"default\"](element).trigger(TRANSITION_END);\n    },\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    },\n    jQueryDetection: function jQueryDetection() {\n      if (typeof $__default[\"default\"] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n      }\n\n      var version = $__default[\"default\"].fn.jquery.split(' ')[0].split('.');\n      var minMajor = 1;\n      var ltMajor = 2;\n      var minMinor = 9;\n      var minPatch = 1;\n      var maxMajor = 4;\n\n      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n        throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n      }\n    }\n  };\n  Util.jQueryDetection();\n  setTransitionEndSupport();\n\n  /**\n   * Constants\n   */\n\n  var NAME$a = 'alert';\n  var VERSION$a = '4.6.1';\n  var DATA_KEY$a = 'bs.alert';\n  var EVENT_KEY$a = \".\" + DATA_KEY$a;\n  var DATA_API_KEY$7 = '.data-api';\n  var JQUERY_NO_CONFLICT$a = $__default[\"default\"].fn[NAME$a];\n  var CLASS_NAME_ALERT = 'alert';\n  var CLASS_NAME_FADE$5 = 'fade';\n  var CLASS_NAME_SHOW$7 = 'show';\n  var EVENT_CLOSE = \"close\" + EVENT_KEY$a;\n  var EVENT_CLOSED = \"closed\" + EVENT_KEY$a;\n  var EVENT_CLICK_DATA_API$6 = \"click\" + EVENT_KEY$a + DATA_API_KEY$7;\n  var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n  /**\n   * Class definition\n   */\n\n  var Alert = /*#__PURE__*/function () {\n    function Alert(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Alert.prototype;\n\n    // Public\n    _proto.close = function close(element) {\n      var rootElement = this._element;\n\n      if (element) {\n        rootElement = this._getRootElement(element);\n      }\n\n      var customEvent = this._triggerCloseEvent(rootElement);\n\n      if (customEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._removeElement(rootElement);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default[\"default\"].removeData(this._element, DATA_KEY$a);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._getRootElement = function _getRootElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      var parent = false;\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      if (!parent) {\n        parent = $__default[\"default\"](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n      }\n\n      return parent;\n    };\n\n    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n      var closeEvent = $__default[\"default\"].Event(EVENT_CLOSE);\n      $__default[\"default\"](element).trigger(closeEvent);\n      return closeEvent;\n    };\n\n    _proto._removeElement = function _removeElement(element) {\n      var _this = this;\n\n      $__default[\"default\"](element).removeClass(CLASS_NAME_SHOW$7);\n\n      if (!$__default[\"default\"](element).hasClass(CLASS_NAME_FADE$5)) {\n        this._destroyElement(element);\n\n        return;\n      }\n\n      var transitionDuration = Util.getTransitionDurationFromElement(element);\n      $__default[\"default\"](element).one(Util.TRANSITION_END, function (event) {\n        return _this._destroyElement(element, event);\n      }).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto._destroyElement = function _destroyElement(element) {\n      $__default[\"default\"](element).detach().trigger(EVENT_CLOSED).remove();\n    } // Static\n    ;\n\n    Alert._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default[\"default\"](this);\n        var data = $element.data(DATA_KEY$a);\n\n        if (!data) {\n          data = new Alert(this);\n          $element.data(DATA_KEY$a, data);\n        }\n\n        if (config === 'close') {\n          data[config](this);\n        }\n      });\n    };\n\n    Alert._handleDismiss = function _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault();\n        }\n\n        alertInstance.close(this);\n      };\n    };\n\n    _createClass(Alert, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$a;\n      }\n    }]);\n\n    return Alert;\n  }();\n  /**\n   * Data API implementation\n   */\n\n\n  $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n  /**\n   * jQuery\n   */\n\n  $__default[\"default\"].fn[NAME$a] = Alert._jQueryInterface;\n  $__default[\"default\"].fn[NAME$a].Constructor = Alert;\n\n  $__default[\"default\"].fn[NAME$a].noConflict = function () {\n    $__default[\"default\"].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Alert._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME$9 = 'button';\n  var VERSION$9 = '4.6.1';\n  var DATA_KEY$9 = 'bs.button';\n  var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n  var DATA_API_KEY$6 = '.data-api';\n  var JQUERY_NO_CONFLICT$9 = $__default[\"default\"].fn[NAME$9];\n  var CLASS_NAME_ACTIVE$3 = 'active';\n  var CLASS_NAME_BUTTON = 'btn';\n  var CLASS_NAME_FOCUS = 'focus';\n  var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$9 + DATA_API_KEY$6;\n  var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$9 + DATA_API_KEY$6 + \" \" + (\"blur\" + EVENT_KEY$9 + DATA_API_KEY$6);\n  var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$9 + DATA_API_KEY$6;\n  var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n  var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n  var SELECTOR_DATA_TOGGLE$4 = '[data-toggle=\"button\"]';\n  var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n  var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n  var SELECTOR_ACTIVE$2 = '.active';\n  var SELECTOR_BUTTON = '.btn';\n  /**\n   * Class definition\n   */\n\n  var Button = /*#__PURE__*/function () {\n    function Button(element) {\n      this._element = element;\n      this.shouldAvoidTriggerChange = false;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $__default[\"default\"](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(SELECTOR_INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE$3)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(SELECTOR_ACTIVE$2);\n\n              if (activeElement) {\n                $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$3);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n            if (input.type === 'checkbox' || input.type === 'radio') {\n              input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE$3);\n            }\n\n            if (!this.shouldAvoidTriggerChange) {\n              $__default[\"default\"](input).trigger('change');\n            }\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n        if (addAriaPressed) {\n          this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE$3));\n        }\n\n        if (triggerChangeEvent) {\n          $__default[\"default\"](this._element).toggleClass(CLASS_NAME_ACTIVE$3);\n        }\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default[\"default\"].removeData(this._element, DATA_KEY$9);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n      return this.each(function () {\n        var $element = $__default[\"default\"](this);\n        var data = $element.data(DATA_KEY$9);\n\n        if (!data) {\n          data = new Button(this);\n          $element.data(DATA_KEY$9, data);\n        }\n\n        data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$9;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * Data API implementation\n   */\n\n\n  $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = event.target;\n    var initialButton = button;\n\n    if (!$__default[\"default\"](button).hasClass(CLASS_NAME_BUTTON)) {\n      button = $__default[\"default\"](button).closest(SELECTOR_BUTTON)[0];\n    }\n\n    if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n      event.preventDefault(); // work around Firefox bug #1540995\n    } else {\n      var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n      if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n        event.preventDefault(); // work around Firefox bug #1540995\n\n        return;\n      }\n\n      if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n        Button._jQueryInterface.call($__default[\"default\"](button), 'toggle', initialButton.tagName === 'INPUT');\n      }\n    }\n  }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n    var button = $__default[\"default\"](event.target).closest(SELECTOR_BUTTON)[0];\n    $__default[\"default\"](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  $__default[\"default\"](window).on(EVENT_LOAD_DATA_API$2, function () {\n    // ensure correct active class is set to match the controls' actual values/states\n    // find all checkboxes/readio buttons inside data-toggle groups\n    var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n    for (var i = 0, len = buttons.length; i < len; i++) {\n      var button = buttons[i];\n      var input = button.querySelector(SELECTOR_INPUT);\n\n      if (input.checked || input.hasAttribute('checked')) {\n        button.classList.add(CLASS_NAME_ACTIVE$3);\n      } else {\n        button.classList.remove(CLASS_NAME_ACTIVE$3);\n      }\n    } // find all button toggles\n\n\n    buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$4));\n\n    for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n      var _button = buttons[_i];\n\n      if (_button.getAttribute('aria-pressed') === 'true') {\n        _button.classList.add(CLASS_NAME_ACTIVE$3);\n      } else {\n        _button.classList.remove(CLASS_NAME_ACTIVE$3);\n      }\n    }\n  });\n  /**\n   * jQuery\n   */\n\n  $__default[\"default\"].fn[NAME$9] = Button._jQueryInterface;\n  $__default[\"default\"].fn[NAME$9].Constructor = Button;\n\n  $__default[\"default\"].fn[NAME$9].noConflict = function () {\n    $__default[\"default\"].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return Button._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME$8 = 'carousel';\n  var VERSION$8 = '4.6.1';\n  var DATA_KEY$8 = 'bs.carousel';\n  var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n  var DATA_API_KEY$5 = '.data-api';\n  var JQUERY_NO_CONFLICT$8 = $__default[\"default\"].fn[NAME$8];\n  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n  var SWIPE_THRESHOLD = 40;\n  var CLASS_NAME_CAROUSEL = 'carousel';\n  var CLASS_NAME_ACTIVE$2 = 'active';\n  var CLASS_NAME_SLIDE = 'slide';\n  var CLASS_NAME_RIGHT = 'carousel-item-right';\n  var CLASS_NAME_LEFT = 'carousel-item-left';\n  var CLASS_NAME_NEXT = 'carousel-item-next';\n  var CLASS_NAME_PREV = 'carousel-item-prev';\n  var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n  var DIRECTION_NEXT = 'next';\n  var DIRECTION_PREV = 'prev';\n  var DIRECTION_LEFT = 'left';\n  var DIRECTION_RIGHT = 'right';\n  var EVENT_SLIDE = \"slide\" + EVENT_KEY$8;\n  var EVENT_SLID = \"slid\" + EVENT_KEY$8;\n  var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$8;\n  var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$8;\n  var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$8;\n  var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$8;\n  var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$8;\n  var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$8;\n  var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$8;\n  var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$8;\n  var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$8;\n  var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$5;\n  var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$8 + DATA_API_KEY$5;\n  var SELECTOR_ACTIVE$1 = '.active';\n  var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n  var SELECTOR_ITEM = '.carousel-item';\n  var SELECTOR_ITEM_IMG = '.carousel-item img';\n  var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n  var SELECTOR_INDICATORS = '.carousel-indicators';\n  var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n  var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n  var Default$7 = {\n    interval: 5000,\n    keyboard: true,\n    slide: false,\n    pause: 'hover',\n    wrap: true,\n    touch: true\n  };\n  var DefaultType$7 = {\n    interval: '(number|boolean)',\n    keyboard: 'boolean',\n    slide: '(boolean|string)',\n    pause: '(string|boolean)',\n    wrap: 'boolean',\n    touch: 'boolean'\n  };\n  var PointerType = {\n    TOUCH: 'touch',\n    PEN: 'pen'\n  };\n  /**\n   * Class definition\n   */\n\n  var Carousel = /*#__PURE__*/function () {\n    function Carousel(element, config) {\n      this._items = null;\n      this._interval = null;\n      this._activeElement = null;\n      this._isPaused = false;\n      this._isSliding = false;\n      this.touchTimeout = null;\n      this.touchStartX = 0;\n      this.touchDeltaX = 0;\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);\n      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n      this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Carousel.prototype;\n\n    // Public\n    _proto.next = function next() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_NEXT);\n      }\n    };\n\n    _proto.nextWhenVisible = function nextWhenVisible() {\n      var $element = $__default[\"default\"](this._element); // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n\n      if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n        this.next();\n      }\n    };\n\n    _proto.prev = function prev() {\n      if (!this._isSliding) {\n        this._slide(DIRECTION_PREV);\n      }\n    };\n\n    _proto.pause = function pause(event) {\n      if (!event) {\n        this._isPaused = true;\n      }\n\n      if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n        Util.triggerTransitionEnd(this._element);\n        this.cycle(true);\n      }\n\n      clearInterval(this._interval);\n      this._interval = null;\n    };\n\n    _proto.cycle = function cycle(event) {\n      if (!event) {\n        this._isPaused = false;\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._updateInterval();\n\n        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n      }\n    };\n\n    _proto.to = function to(index) {\n      var _this = this;\n\n      this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeIndex = this._getItemIndex(this._activeElement);\n\n      if (index > this._items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        $__default[\"default\"](this._element).one(EVENT_SLID, function () {\n          return _this.to(index);\n        });\n        return;\n      }\n\n      if (activeIndex === index) {\n        this.pause();\n        this.cycle();\n        return;\n      }\n\n      var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n      this._slide(direction, this._items[index]);\n    };\n\n    _proto.dispose = function dispose() {\n      $__default[\"default\"](this._element).off(EVENT_KEY$8);\n      $__default[\"default\"].removeData(this._element, DATA_KEY$8);\n      this._items = null;\n      this._config = null;\n      this._element = null;\n      this._interval = null;\n      this._isPaused = null;\n      this._isSliding = null;\n      this._activeElement = null;\n      this._indicatorsElement = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$7, config);\n      Util.typeCheckConfig(NAME$8, config, DefaultType$7);\n      return config;\n    };\n\n    _proto._handleSwipe = function _handleSwipe() {\n      var absDeltax = Math.abs(this.touchDeltaX);\n\n      if (absDeltax <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      var direction = absDeltax / this.touchDeltaX;\n      this.touchDeltaX = 0; // swipe left\n\n      if (direction > 0) {\n        this.prev();\n      } // swipe right\n\n\n      if (direction < 0) {\n        this.next();\n      }\n    };\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this2 = this;\n\n      if (this._config.keyboard) {\n        $__default[\"default\"](this._element).on(EVENT_KEYDOWN, function (event) {\n          return _this2._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        $__default[\"default\"](this._element).on(EVENT_MOUSEENTER, function (event) {\n          return _this2.pause(event);\n        }).on(EVENT_MOUSELEAVE, function (event) {\n          return _this2.cycle(event);\n        });\n      }\n\n      if (this._config.touch) {\n        this._addTouchEventListeners();\n      }\n    };\n\n    _proto._addTouchEventListeners = function _addTouchEventListeners() {\n      var _this3 = this;\n\n      if (!this._touchSupported) {\n        return;\n      }\n\n      var start = function start(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchStartX = event.originalEvent.clientX;\n        } else if (!_this3._pointerEvent) {\n          _this3.touchStartX = event.originalEvent.touches[0].clientX;\n        }\n      };\n\n      var move = function move(event) {\n        // ensure swiping with one touch and not pinching\n        _this3.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ? 0 : event.originalEvent.touches[0].clientX - _this3.touchStartX;\n      };\n\n      var end = function end(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n        }\n\n        _this3._handleSwipe();\n\n        if (_this3._config.pause === 'hover') {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          _this3.pause();\n\n          if (_this3.touchTimeout) {\n            clearTimeout(_this3.touchTimeout);\n          }\n\n          _this3.touchTimeout = setTimeout(function (event) {\n            return _this3.cycle(event);\n          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n        }\n      };\n\n      $__default[\"default\"](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n        return e.preventDefault();\n      });\n\n      if (this._pointerEvent) {\n        $__default[\"default\"](this._element).on(EVENT_POINTERDOWN, function (event) {\n          return start(event);\n        });\n        $__default[\"default\"](this._element).on(EVENT_POINTERUP, function (event) {\n          return end(event);\n        });\n\n        this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n      } else {\n        $__default[\"default\"](this._element).on(EVENT_TOUCHSTART, function (event) {\n          return start(event);\n        });\n        $__default[\"default\"](this._element).on(EVENT_TOUCHMOVE, function (event) {\n          return move(event);\n        });\n        $__default[\"default\"](this._element).on(EVENT_TOUCHEND, function (event) {\n          return end(event);\n        });\n      }\n    };\n\n    _proto._keydown = function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault();\n          this.prev();\n          break;\n\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault();\n          this.next();\n          break;\n      }\n    };\n\n    _proto._getItemIndex = function _getItemIndex(element) {\n      this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n      return this._items.indexOf(element);\n    };\n\n    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n      var isNextDirection = direction === DIRECTION_NEXT;\n      var isPrevDirection = direction === DIRECTION_PREV;\n\n      var activeIndex = this._getItemIndex(activeElement);\n\n      var lastItemIndex = this._items.length - 1;\n      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement;\n      }\n\n      var delta = direction === DIRECTION_PREV ? -1 : 1;\n      var itemIndex = (activeIndex + delta) % this._items.length;\n      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n    };\n\n    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      var targetIndex = this._getItemIndex(relatedTarget);\n\n      var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n\n      var slideEvent = $__default[\"default\"].Event(EVENT_SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      });\n      $__default[\"default\"](this._element).trigger(slideEvent);\n      return slideEvent;\n    };\n\n    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n        $__default[\"default\"](indicators).removeClass(CLASS_NAME_ACTIVE$2);\n\n        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n        if (nextIndicator) {\n          $__default[\"default\"](nextIndicator).addClass(CLASS_NAME_ACTIVE$2);\n        }\n      }\n    };\n\n    _proto._updateInterval = function _updateInterval() {\n      var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      if (!element) {\n        return;\n      }\n\n      var elementInterval = parseInt(element.getAttribute('data-interval'), 10);\n\n      if (elementInterval) {\n        this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n        this._config.interval = elementInterval;\n      } else {\n        this._config.interval = this._config.defaultInterval || this._config.interval;\n      }\n    };\n\n    _proto._slide = function _slide(direction, element) {\n      var _this4 = this;\n\n      var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n      var activeElementIndex = this._getItemIndex(activeElement);\n\n      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n      var nextElementIndex = this._getItemIndex(nextElement);\n\n      var isCycling = Boolean(this._interval);\n      var directionalClassName;\n      var orderClassName;\n      var eventDirectionName;\n\n      if (direction === DIRECTION_NEXT) {\n        directionalClassName = CLASS_NAME_LEFT;\n        orderClassName = CLASS_NAME_NEXT;\n        eventDirectionName = DIRECTION_LEFT;\n      } else {\n        directionalClassName = CLASS_NAME_RIGHT;\n        orderClassName = CLASS_NAME_PREV;\n        eventDirectionName = DIRECTION_RIGHT;\n      }\n\n      if (nextElement && $__default[\"default\"](nextElement).hasClass(CLASS_NAME_ACTIVE$2)) {\n        this._isSliding = false;\n        return;\n      }\n\n      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n      if (slideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return;\n      }\n\n      this._isSliding = true;\n\n      if (isCycling) {\n        this.pause();\n      }\n\n      this._setActiveIndicatorElement(nextElement);\n\n      this._activeElement = nextElement;\n      var slidEvent = $__default[\"default\"].Event(EVENT_SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      });\n\n      if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_SLIDE)) {\n        $__default[\"default\"](nextElement).addClass(orderClassName);\n        Util.reflow(nextElement);\n        $__default[\"default\"](activeElement).addClass(directionalClassName);\n        $__default[\"default\"](nextElement).addClass(directionalClassName);\n        var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n        $__default[\"default\"](activeElement).one(Util.TRANSITION_END, function () {\n          $__default[\"default\"](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$2);\n          $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$2 + \" \" + orderClassName + \" \" + directionalClassName);\n          _this4._isSliding = false;\n          setTimeout(function () {\n            return $__default[\"default\"](_this4._element).trigger(slidEvent);\n          }, 0);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$2);\n        $__default[\"default\"](nextElement).addClass(CLASS_NAME_ACTIVE$2);\n        this._isSliding = false;\n        $__default[\"default\"](this._element).trigger(slidEvent);\n      }\n\n      if (isCycling) {\n        this.cycle();\n      }\n    } // Static\n    ;\n\n    Carousel._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default[\"default\"](this).data(DATA_KEY$8);\n\n        var _config = _extends({}, Default$7, $__default[\"default\"](this).data());\n\n        if (typeof config === 'object') {\n          _config = _extends({}, _config, config);\n        }\n\n        var action = typeof config === 'string' ? config : _config.slide;\n\n        if (!data) {\n          data = new Carousel(this, _config);\n          $__default[\"default\"](this).data(DATA_KEY$8, data);\n        }\n\n        if (typeof config === 'number') {\n          data.to(config);\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n          }\n\n          data[action]();\n        } else if (_config.interval && _config.ride) {\n          data.pause();\n          data.cycle();\n        }\n      });\n    };\n\n    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n      var selector = Util.getSelectorFromElement(this);\n\n      if (!selector) {\n        return;\n      }\n\n      var target = $__default[\"default\"](selector)[0];\n\n      if (!target || !$__default[\"default\"](target).hasClass(CLASS_NAME_CAROUSEL)) {\n        return;\n      }\n\n      var config = _extends({}, $__default[\"default\"](target).data(), $__default[\"default\"](this).data());\n\n      var slideIndex = this.getAttribute('data-slide-to');\n\n      if (slideIndex) {\n        config.interval = false;\n      }\n\n      Carousel._jQueryInterface.call($__default[\"default\"](target), config);\n\n      if (slideIndex) {\n        $__default[\"default\"](target).data(DATA_KEY$8).to(slideIndex);\n      }\n\n      event.preventDefault();\n    };\n\n    _createClass(Carousel, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$8;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$7;\n      }\n    }]);\n\n    return Carousel;\n  }();\n  /**\n   * Data API implementation\n   */\n\n\n  $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n  $__default[\"default\"](window).on(EVENT_LOAD_DATA_API$1, function () {\n    var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n\n    for (var i = 0, len = carousels.length; i < len; i++) {\n      var $carousel = $__default[\"default\"](carousels[i]);\n\n      Carousel._jQueryInterface.call($carousel, $carousel.data());\n    }\n  });\n  /**\n   * jQuery\n   */\n\n  $__default[\"default\"].fn[NAME$8] = Carousel._jQueryInterface;\n  $__default[\"default\"].fn[NAME$8].Constructor = Carousel;\n\n  $__default[\"default\"].fn[NAME$8].noConflict = function () {\n    $__default[\"default\"].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return Carousel._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME$7 = 'collapse';\n  var VERSION$7 = '4.6.1';\n  var DATA_KEY$7 = 'bs.collapse';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n  var DATA_API_KEY$4 = '.data-api';\n  var JQUERY_NO_CONFLICT$7 = $__default[\"default\"].fn[NAME$7];\n  var CLASS_NAME_SHOW$6 = 'show';\n  var CLASS_NAME_COLLAPSE = 'collapse';\n  var CLASS_NAME_COLLAPSING = 'collapsing';\n  var CLASS_NAME_COLLAPSED = 'collapsed';\n  var DIMENSION_WIDTH = 'width';\n  var DIMENSION_HEIGHT = 'height';\n  var EVENT_SHOW$4 = \"show\" + EVENT_KEY$7;\n  var EVENT_SHOWN$4 = \"shown\" + EVENT_KEY$7;\n  var EVENT_HIDE$4 = \"hide\" + EVENT_KEY$7;\n  var EVENT_HIDDEN$4 = \"hidden\" + EVENT_KEY$7;\n  var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$7 + DATA_API_KEY$4;\n  var SELECTOR_ACTIVES = '.show, .collapsing';\n  var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"collapse\"]';\n  var Default$6 = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType$6 = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  /**\n   * Class definition\n   */\n\n  var Collapse = /*#__PURE__*/function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$3));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util.getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(CLASS_NAME_COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $__default[\"default\"](actives).not(this._selector).data(DATA_KEY$7);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $__default[\"default\"].Event(EVENT_SHOW$4);\n      $__default[\"default\"](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($__default[\"default\"](actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $__default[\"default\"](actives).data(DATA_KEY$7, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $__default[\"default\"](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $__default[\"default\"](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $__default[\"default\"](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$6);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $__default[\"default\"](_this._element).trigger(EVENT_SHOWN$4);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n        return;\n      }\n\n      var startEvent = $__default[\"default\"].Event(EVENT_HIDE$4);\n      $__default[\"default\"](this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util.reflow(this._element);\n      $__default[\"default\"](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$6);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util.getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $__default[\"default\"]([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(CLASS_NAME_SHOW$6)) {\n              $__default[\"default\"](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $__default[\"default\"](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN$4);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $__default[\"default\"].removeData(this._element, DATA_KEY$7);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$6, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util.typeCheckConfig(NAME$7, config, DefaultType$6);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $__default[\"default\"](this._element).hasClass(DIMENSION_WIDTH);\n      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $__default[\"default\"](children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $__default[\"default\"](element).hasClass(CLASS_NAME_SHOW$6);\n\n      if (triggerArray.length) {\n        $__default[\"default\"](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default[\"default\"](this);\n        var data = $element.data(DATA_KEY$7);\n\n        var _config = _extends({}, Default$6, $element.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $element.data(DATA_KEY$7, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$6;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * Data API implementation\n   */\n\n\n  $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $__default[\"default\"](this);\n    var selector = Util.getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $__default[\"default\"](selectors).each(function () {\n      var $target = $__default[\"default\"](this);\n      var data = $target.data(DATA_KEY$7);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * jQuery\n   */\n\n  $__default[\"default\"].fn[NAME$7] = Collapse._jQueryInterface;\n  $__default[\"default\"].fn[NAME$7].Constructor = Collapse;\n\n  $__default[\"default\"].fn[NAME$7].noConflict = function () {\n    $__default[\"default\"].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return Collapse._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME$6 = 'dropdown';\n  var VERSION$6 = '4.6.1';\n  var DATA_KEY$6 = 'bs.dropdown';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n  var DATA_API_KEY$3 = '.data-api';\n  var JQUERY_NO_CONFLICT$6 = $__default[\"default\"].fn[NAME$6];\n  var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE$1);\n  var CLASS_NAME_DISABLED$1 = 'disabled';\n  var CLASS_NAME_SHOW$5 = 'show';\n  var CLASS_NAME_DROPUP = 'dropup';\n  var CLASS_NAME_DROPRIGHT = 'dropright';\n  var CLASS_NAME_DROPLEFT = 'dropleft';\n  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n  var CLASS_NAME_POSITION_STATIC = 'position-static';\n  var EVENT_HIDE$3 = \"hide\" + EVENT_KEY$6;\n  var EVENT_HIDDEN$3 = \"hidden\" + EVENT_KEY$6;\n  var EVENT_SHOW$3 = \"show\" + EVENT_KEY$6;\n  var EVENT_SHOWN$3 = \"shown\" + EVENT_KEY$6;\n  var EVENT_CLICK = \"click\" + EVENT_KEY$6;\n  var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$6 + DATA_API_KEY$3;\n  var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$6 + DATA_API_KEY$3;\n  var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$6 + DATA_API_KEY$3;\n  var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n  var SELECTOR_FORM_CHILD = '.dropdown form';\n  var SELECTOR_MENU = '.dropdown-menu';\n  var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n  var PLACEMENT_TOP = 'top-start';\n  var PLACEMENT_TOPEND = 'top-end';\n  var PLACEMENT_BOTTOM = 'bottom-start';\n  var PLACEMENT_BOTTOMEND = 'bottom-end';\n  var PLACEMENT_RIGHT = 'right-start';\n  var PLACEMENT_LEFT = 'left-start';\n  var Default$5 = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic',\n    popperConfig: null\n  };\n  var DefaultType$5 = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string',\n    popperConfig: '(null|object)'\n  };\n  /**\n   * Class definition\n   */\n\n  var Dropdown = /*#__PURE__*/function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1)) {\n        return;\n      }\n\n      var isActive = $__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      this.show(true);\n    };\n\n    _proto.show = function show(usePopper) {\n      if (usePopper === void 0) {\n        usePopper = false;\n      }\n\n      if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1) || $__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $__default[\"default\"].Event(EVENT_SHOW$3, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default[\"default\"](parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Totally disable Popper for Dropdowns in Navbar\n\n\n      if (!this._inNavbar && usePopper) {\n        // Check for Popper dependency\n        if (typeof Popper__default[\"default\"] === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $__default[\"default\"](parent).addClass(CLASS_NAME_POSITION_STATIC);\n        }\n\n        this._popper = new Popper__default[\"default\"](referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $__default[\"default\"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n        $__default[\"default\"](document.body).children().on('mouseover', null, $__default[\"default\"].noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $__default[\"default\"](this._menu).toggleClass(CLASS_NAME_SHOW$5);\n      $__default[\"default\"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_SHOWN$3, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1) || !$__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$3, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $__default[\"default\"](parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      $__default[\"default\"](this._menu).toggleClass(CLASS_NAME_SHOW$5);\n      $__default[\"default\"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_HIDDEN$3, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $__default[\"default\"].removeData(this._element, DATA_KEY$6);\n      $__default[\"default\"](this._element).off(EVENT_KEY$6);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $__default[\"default\"](this._element).on(EVENT_CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, this.constructor.Default, $__default[\"default\"](this._element).data(), config);\n      Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(SELECTOR_MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $__default[\"default\"](this._element.parentNode);\n      var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n        placement = $__default[\"default\"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n        placement = PLACEMENT_RIGHT;\n      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n        placement = PLACEMENT_LEFT;\n      } else if ($__default[\"default\"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n        placement = PLACEMENT_BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $__default[\"default\"](this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element));\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        }\n      }; // Disable Popper if we have a static display\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return _extends({}, popperConfig, this._config.popperConfig);\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default[\"default\"](this).data(DATA_KEY$6);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $__default[\"default\"](this).data(DATA_KEY$6, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $__default[\"default\"](toggles[i]).data(DATA_KEY$6);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$__default[\"default\"](parent).hasClass(CLASS_NAME_SHOW$5)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default[\"default\"].contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$3, relatedTarget);\n        $__default[\"default\"](parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default[\"default\"](document.body).children().off('mouseover', null, $__default[\"default\"].noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n\n        if (context._popper) {\n          context._popper.destroy();\n        }\n\n        $__default[\"default\"](dropdownMenu).removeClass(CLASS_NAME_SHOW$5);\n        $__default[\"default\"](parent).removeClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_HIDDEN$3, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util.getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE$1 && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default[\"default\"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      if (this.disabled || $__default[\"default\"](this).hasClass(CLASS_NAME_DISABLED$1)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $__default[\"default\"](parent).hasClass(CLASS_NAME_SHOW$5);\n\n      if (!isActive && event.which === ESCAPE_KEYCODE$1) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (!isActive || event.which === ESCAPE_KEYCODE$1 || event.which === SPACE_KEYCODE) {\n        if (event.which === ESCAPE_KEYCODE$1) {\n          $__default[\"default\"](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n        }\n\n        $__default[\"default\"](this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n        return $__default[\"default\"](item).is(':visible');\n      });\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$6;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$5;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$5;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * Data API implementation\n   */\n\n\n  $__default[\"default\"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$2 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($__default[\"default\"](this), 'toggle');\n  }).on(EVENT_CLICK_DATA_API$2, SELECTOR_FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * jQuery\n   */\n\n  $__default[\"default\"].fn[NAME$6] = Dropdown._jQueryInterface;\n  $__default[\"default\"].fn[NAME$6].Constructor = Dropdown;\n\n  $__default[\"default\"].fn[NAME$6].noConflict = function () {\n    $__default[\"default\"].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME$5 = 'modal';\n  var VERSION$5 = '4.6.1';\n  var DATA_KEY$5 = 'bs.modal';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n  var DATA_API_KEY$2 = '.data-api';\n  var JQUERY_NO_CONFLICT$5 = $__default[\"default\"].fn[NAME$5];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n  var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n  var CLASS_NAME_BACKDROP = 'modal-backdrop';\n  var CLASS_NAME_OPEN = 'modal-open';\n  var CLASS_NAME_FADE$4 = 'fade';\n  var CLASS_NAME_SHOW$4 = 'show';\n  var CLASS_NAME_STATIC = 'modal-static';\n  var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n  var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n  var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n  var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n  var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n  var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n  var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n  var EVENT_CLICK_DISMISS$1 = \"click.dismiss\" + EVENT_KEY$5;\n  var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n  var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n  var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$2;\n  var SELECTOR_DIALOG = '.modal-dialog';\n  var SELECTOR_MODAL_BODY = '.modal-body';\n  var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"modal\"]';\n  var SELECTOR_DATA_DISMISS$1 = '[data-dismiss=\"modal\"]';\n  var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n  var SELECTOR_STICKY_CONTENT = '.sticky-top';\n  var Default$4 = {\n    backdrop: true,\n    keyboard: true,\n    focus: true,\n    show: true\n  };\n  var DefaultType$4 = {\n    backdrop: '(boolean|string)',\n    keyboard: 'boolean',\n    focus: 'boolean',\n    show: 'boolean'\n  };\n  /**\n   * Class definition\n   */\n\n  var Modal = /*#__PURE__*/function () {\n    function Modal(element, config) {\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._dialog = element.querySelector(SELECTOR_DIALOG);\n      this._backdrop = null;\n      this._isShown = false;\n      this._isBodyOverflowing = false;\n      this._ignoreBackdropClick = false;\n      this._isTransitioning = false;\n      this._scrollbarWidth = 0;\n    } // Getters\n\n\n    var _proto = Modal.prototype;\n\n    // Public\n    _proto.toggle = function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    };\n\n    _proto.show = function show(relatedTarget) {\n      var _this = this;\n\n      if (this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var showEvent = $__default[\"default\"].Event(EVENT_SHOW$2, {\n        relatedTarget: relatedTarget\n      });\n      $__default[\"default\"](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = true;\n\n      if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4)) {\n        this._isTransitioning = true;\n      }\n\n      this._checkScrollbar();\n\n      this._setScrollbar();\n\n      this._adjustDialog();\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default[\"default\"](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function (event) {\n        return _this.hide(event);\n      });\n      $__default[\"default\"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n        $__default[\"default\"](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n          if ($__default[\"default\"](event.target).is(_this._element)) {\n            _this._ignoreBackdropClick = true;\n          }\n        });\n      });\n\n      this._showBackdrop(function () {\n        return _this._showElement(relatedTarget);\n      });\n    };\n\n    _proto.hide = function hide(event) {\n      var _this2 = this;\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (!this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$2);\n      $__default[\"default\"](this._element).trigger(hideEvent);\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = false;\n      var transition = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4);\n\n      if (transition) {\n        this._isTransitioning = true;\n      }\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $__default[\"default\"](document).off(EVENT_FOCUSIN);\n      $__default[\"default\"](this._element).removeClass(CLASS_NAME_SHOW$4);\n      $__default[\"default\"](this._element).off(EVENT_CLICK_DISMISS$1);\n      $__default[\"default\"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default[\"default\"](this._element).one(Util.TRANSITION_END, function (event) {\n          return _this2._hideModal(event);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        this._hideModal();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      [window, this._element, this._dialog].forEach(function (htmlElement) {\n        return $__default[\"default\"](htmlElement).off(EVENT_KEY$5);\n      });\n      /**\n       * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n       * Do not move `document` in `htmlElements` array\n       * It will remove `EVENT_CLICK_DATA_API` event that should remain\n       */\n\n      $__default[\"default\"](document).off(EVENT_FOCUSIN);\n      $__default[\"default\"].removeData(this._element, DATA_KEY$5);\n      this._config = null;\n      this._element = null;\n      this._dialog = null;\n      this._backdrop = null;\n      this._isShown = null;\n      this._isBodyOverflowing = null;\n      this._ignoreBackdropClick = null;\n      this._isTransitioning = null;\n      this._scrollbarWidth = null;\n    };\n\n    _proto.handleUpdate = function handleUpdate() {\n      this._adjustDialog();\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$4, config);\n      Util.typeCheckConfig(NAME$5, config, DefaultType$4);\n      return config;\n    };\n\n    _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n      var _this3 = this;\n\n      var hideEventPrevented = $__default[\"default\"].Event(EVENT_HIDE_PREVENTED);\n      $__default[\"default\"](this._element).trigger(hideEventPrevented);\n\n      if (hideEventPrevented.isDefaultPrevented()) {\n        return;\n      }\n\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!isModalOverflowing) {\n        this._element.style.overflowY = 'hidden';\n      }\n\n      this._element.classList.add(CLASS_NAME_STATIC);\n\n      var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n      $__default[\"default\"](this._element).off(Util.TRANSITION_END);\n      $__default[\"default\"](this._element).one(Util.TRANSITION_END, function () {\n        _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n        if (!isModalOverflowing) {\n          $__default[\"default\"](_this3._element).one(Util.TRANSITION_END, function () {\n            _this3._element.style.overflowY = '';\n          }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n        }\n      }).emulateTransitionEnd(modalTransitionDuration);\n\n      this._element.focus();\n    };\n\n    _proto._showElement = function _showElement(relatedTarget) {\n      var _this4 = this;\n\n      var transition = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4);\n      var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element);\n      }\n\n      this._element.style.display = 'block';\n\n      this._element.removeAttribute('aria-hidden');\n\n      this._element.setAttribute('aria-modal', true);\n\n      this._element.setAttribute('role', 'dialog');\n\n      if ($__default[\"default\"](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n        modalBody.scrollTop = 0;\n      } else {\n        this._element.scrollTop = 0;\n      }\n\n      if (transition) {\n        Util.reflow(this._element);\n      }\n\n      $__default[\"default\"](this._element).addClass(CLASS_NAME_SHOW$4);\n\n      if (this._config.focus) {\n        this._enforceFocus();\n      }\n\n      var shownEvent = $__default[\"default\"].Event(EVENT_SHOWN$2, {\n        relatedTarget: relatedTarget\n      });\n\n      var transitionComplete = function transitionComplete() {\n        if (_this4._config.focus) {\n          _this4._element.focus();\n        }\n\n        _this4._isTransitioning = false;\n        $__default[\"default\"](_this4._element).trigger(shownEvent);\n      };\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n        $__default[\"default\"](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n      } else {\n        transitionComplete();\n      }\n    };\n\n    _proto._enforceFocus = function _enforceFocus() {\n      var _this5 = this;\n\n      $__default[\"default\"](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n      .on(EVENT_FOCUSIN, function (event) {\n        if (document !== event.target && _this5._element !== event.target && $__default[\"default\"](_this5._element).has(event.target).length === 0) {\n          _this5._element.focus();\n        }\n      });\n    };\n\n    _proto._setEscapeEvent = function _setEscapeEvent() {\n      var _this6 = this;\n\n      if (this._isShown) {\n        $__default[\"default\"](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n          if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {\n            event.preventDefault();\n\n            _this6.hide();\n          } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {\n            _this6._triggerBackdropTransition();\n          }\n        });\n      } else if (!this._isShown) {\n        $__default[\"default\"](this._element).off(EVENT_KEYDOWN_DISMISS);\n      }\n    };\n\n    _proto._setResizeEvent = function _setResizeEvent() {\n      var _this7 = this;\n\n      if (this._isShown) {\n        $__default[\"default\"](window).on(EVENT_RESIZE, function (event) {\n          return _this7.handleUpdate(event);\n        });\n      } else {\n        $__default[\"default\"](window).off(EVENT_RESIZE);\n      }\n    };\n\n    _proto._hideModal = function _hideModal() {\n      var _this8 = this;\n\n      this._element.style.display = 'none';\n\n      this._element.setAttribute('aria-hidden', true);\n\n      this._element.removeAttribute('aria-modal');\n\n      this._element.removeAttribute('role');\n\n      this._isTransitioning = false;\n\n      this._showBackdrop(function () {\n        $__default[\"default\"](document.body).removeClass(CLASS_NAME_OPEN);\n\n        _this8._resetAdjustments();\n\n        _this8._resetScrollbar();\n\n        $__default[\"default\"](_this8._element).trigger(EVENT_HIDDEN$2);\n      });\n    };\n\n    _proto._removeBackdrop = function _removeBackdrop() {\n      if (this._backdrop) {\n        $__default[\"default\"](this._backdrop).remove();\n        this._backdrop = null;\n      }\n    };\n\n    _proto._showBackdrop = function _showBackdrop(callback) {\n      var _this9 = this;\n\n      var animate = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4) ? CLASS_NAME_FADE$4 : '';\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div');\n        this._backdrop.className = CLASS_NAME_BACKDROP;\n\n        if (animate) {\n          this._backdrop.classList.add(animate);\n        }\n\n        $__default[\"default\"](this._backdrop).appendTo(document.body);\n        $__default[\"default\"](this._element).on(EVENT_CLICK_DISMISS$1, function (event) {\n          if (_this9._ignoreBackdropClick) {\n            _this9._ignoreBackdropClick = false;\n            return;\n          }\n\n          if (event.target !== event.currentTarget) {\n            return;\n          }\n\n          if (_this9._config.backdrop === 'static') {\n            _this9._triggerBackdropTransition();\n          } else {\n            _this9.hide();\n          }\n        });\n\n        if (animate) {\n          Util.reflow(this._backdrop);\n        }\n\n        $__default[\"default\"](this._backdrop).addClass(CLASS_NAME_SHOW$4);\n\n        if (!callback) {\n          return;\n        }\n\n        if (!animate) {\n          callback();\n          return;\n        }\n\n        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n        $__default[\"default\"](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n      } else if (!this._isShown && this._backdrop) {\n        $__default[\"default\"](this._backdrop).removeClass(CLASS_NAME_SHOW$4);\n\n        var callbackRemove = function callbackRemove() {\n          _this9._removeBackdrop();\n\n          if (callback) {\n            callback();\n          }\n        };\n\n        if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4)) {\n          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n          $__default[\"default\"](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n        } else {\n          callbackRemove();\n        }\n      } else if (callback) {\n        callback();\n      }\n    } // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n    ;\n\n    _proto._adjustDialog = function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n      }\n    };\n\n    _proto._resetAdjustments = function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    };\n\n    _proto._checkScrollbar = function _checkScrollbar() {\n      var rect = document.body.getBoundingClientRect();\n      this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n      this._scrollbarWidth = this._getScrollbarWidth();\n    };\n\n    _proto._setScrollbar = function _setScrollbar() {\n      var _this10 = this;\n\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n        var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n        var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n        $__default[\"default\"](fixedContent).each(function (index, element) {\n          var actualPadding = element.style.paddingRight;\n          var calculatedPadding = $__default[\"default\"](element).css('padding-right');\n          $__default[\"default\"](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n        }); // Adjust sticky content margin\n\n        $__default[\"default\"](stickyContent).each(function (index, element) {\n          var actualMargin = element.style.marginRight;\n          var calculatedMargin = $__default[\"default\"](element).css('margin-right');\n          $__default[\"default\"](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n        }); // Adjust body padding\n\n        var actualPadding = document.body.style.paddingRight;\n        var calculatedPadding = $__default[\"default\"](document.body).css('padding-right');\n        $__default[\"default\"](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n      }\n\n      $__default[\"default\"](document.body).addClass(CLASS_NAME_OPEN);\n    };\n\n    _proto._resetScrollbar = function _resetScrollbar() {\n      // Restore fixed content padding\n      var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n      $__default[\"default\"](fixedContent).each(function (index, element) {\n        var padding = $__default[\"default\"](element).data('padding-right');\n        $__default[\"default\"](element).removeData('padding-right');\n        element.style.paddingRight = padding ? padding : '';\n      }); // Restore sticky content\n\n      var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n      $__default[\"default\"](elements).each(function (index, element) {\n        var margin = $__default[\"default\"](element).data('margin-right');\n\n        if (typeof margin !== 'undefined') {\n          $__default[\"default\"](element).css('margin-right', margin).removeData('margin-right');\n        }\n      }); // Restore body padding\n\n      var padding = $__default[\"default\"](document.body).data('padding-right');\n      $__default[\"default\"](document.body).removeData('padding-right');\n      document.body.style.paddingRight = padding ? padding : '';\n    };\n\n    _proto._getScrollbarWidth = function _getScrollbarWidth() {\n      // thx d.walsh\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      return scrollbarWidth;\n    } // Static\n    ;\n\n    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = $__default[\"default\"](this).data(DATA_KEY$5);\n\n        var _config = _extends({}, Default$4, $__default[\"default\"](this).data(), typeof config === 'object' && config ? config : {});\n\n        if (!data) {\n          data = new Modal(this, _config);\n          $__default[\"default\"](this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](relatedTarget);\n        } else if (_config.show) {\n          data.show(relatedTarget);\n        }\n      });\n    };\n\n    _createClass(Modal, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$5;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$4;\n      }\n    }]);\n\n    return Modal;\n  }();\n  /**\n   * Data API implementation\n   */\n\n\n  $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n    var _this11 = this;\n\n    var target;\n    var selector = Util.getSelectorFromElement(this);\n\n    if (selector) {\n      target = document.querySelector(selector);\n    }\n\n    var config = $__default[\"default\"](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default[\"default\"](target).data(), $__default[\"default\"](this).data());\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault();\n    }\n\n    var $target = $__default[\"default\"](target).one(EVENT_SHOW$2, function (showEvent) {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return;\n      }\n\n      $target.one(EVENT_HIDDEN$2, function () {\n        if ($__default[\"default\"](_this11).is(':visible')) {\n          _this11.focus();\n        }\n      });\n    });\n\n    Modal._jQueryInterface.call($__default[\"default\"](target), config, this);\n  });\n  /**\n   * jQuery\n   */\n\n  $__default[\"default\"].fn[NAME$5] = Modal._jQueryInterface;\n  $__default[\"default\"].fn[NAME$5].Constructor = Modal;\n\n  $__default[\"default\"].fn[NAME$5].noConflict = function () {\n    $__default[\"default\"].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return Modal._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.6.1): tools/sanitizer.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n  var DefaultWhitelist = {\n    // Global attributes allowed on any supplied element below.\n    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n    a: ['target', 'href', 'title', 'rel'],\n    area: [],\n    b: [],\n    br: [],\n    col: [],\n    code: [],\n    div: [],\n    em: [],\n    hr: [],\n    h1: [],\n    h2: [],\n    h3: [],\n    h4: [],\n    h5: [],\n    h6: [],\n    i: [],\n    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n    li: [],\n    ol: [],\n    p: [],\n    pre: [],\n    s: [],\n    small: [],\n    span: [],\n    sub: [],\n    sup: [],\n    strong: [],\n    u: [],\n    ul: []\n  };\n  /**\n   * A pattern that recognizes a commonly useful subset of URLs that are safe.\n   *\n   * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n  /**\n   * A pattern that matches safe data URLs. Only matches image, video and audio types.\n   *\n   * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n  function allowedAttribute(attr, allowedAttributeList) {\n    var attrName = attr.nodeName.toLowerCase();\n\n    if (allowedAttributeList.indexOf(attrName) !== -1) {\n      if (uriAttrs.indexOf(attrName) !== -1) {\n        return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));\n      }\n\n      return true;\n    }\n\n    var regExp = allowedAttributeList.filter(function (attrRegex) {\n      return attrRegex instanceof RegExp;\n    }); // Check if a regular expression validates the attribute.\n\n    for (var i = 0, len = regExp.length; i < len; i++) {\n      if (regExp[i].test(attrName)) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n    if (unsafeHtml.length === 0) {\n      return unsafeHtml;\n    }\n\n    if (sanitizeFn && typeof sanitizeFn === 'function') {\n      return sanitizeFn(unsafeHtml);\n    }\n\n    var domParser = new window.DOMParser();\n    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n    var whitelistKeys = Object.keys(whiteList);\n    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n    var _loop = function _loop(i, len) {\n      var el = elements[i];\n      var elName = el.nodeName.toLowerCase();\n\n      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n        el.parentNode.removeChild(el);\n        return \"continue\";\n      }\n\n      var attributeList = [].slice.call(el.attributes); // eslint-disable-next-line unicorn/prefer-spread\n\n      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n      attributeList.forEach(function (attr) {\n        if (!allowedAttribute(attr, whitelistedAttributes)) {\n          el.removeAttribute(attr.nodeName);\n        }\n      });\n    };\n\n    for (var i = 0, len = elements.length; i < len; i++) {\n      var _ret = _loop(i);\n\n      if (_ret === \"continue\") continue;\n    }\n\n    return createdDocument.body.innerHTML;\n  }\n\n  /**\n   * Constants\n   */\n\n  var NAME$4 = 'tooltip';\n  var VERSION$4 = '4.6.1';\n  var DATA_KEY$4 = 'bs.tooltip';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n  var JQUERY_NO_CONFLICT$4 = $__default[\"default\"].fn[NAME$4];\n  var CLASS_PREFIX$1 = 'bs-tooltip';\n  var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n  var CLASS_NAME_FADE$3 = 'fade';\n  var CLASS_NAME_SHOW$3 = 'show';\n  var HOVER_STATE_SHOW = 'show';\n  var HOVER_STATE_OUT = 'out';\n  var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n  var SELECTOR_ARROW = '.arrow';\n  var TRIGGER_HOVER = 'hover';\n  var TRIGGER_FOCUS = 'focus';\n  var TRIGGER_CLICK = 'click';\n  var TRIGGER_MANUAL = 'manual';\n  var AttachmentMap = {\n    AUTO: 'auto',\n    TOP: 'top',\n    RIGHT: 'right',\n    BOTTOM: 'bottom',\n    LEFT: 'left'\n  };\n  var Default$3 = {\n    animation: true,\n    template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    selector: false,\n    placement: 'top',\n    offset: 0,\n    container: false,\n    fallbackPlacement: 'flip',\n    boundary: 'scrollParent',\n    customClass: '',\n    sanitize: true,\n    sanitizeFn: null,\n    whiteList: DefaultWhitelist,\n    popperConfig: null\n  };\n  var DefaultType$3 = {\n    animation: 'boolean',\n    template: 'string',\n    title: '(string|element|function)',\n    trigger: 'string',\n    delay: '(number|object)',\n    html: 'boolean',\n    selector: '(string|boolean)',\n    placement: '(string|function)',\n    offset: '(number|string|function)',\n    container: '(string|element|boolean)',\n    fallbackPlacement: '(string|array)',\n    boundary: '(string|element)',\n    customClass: '(string|function)',\n    sanitize: 'boolean',\n    sanitizeFn: '(null|function)',\n    whiteList: 'object',\n    popperConfig: '(null|object)'\n  };\n  var Event$1 = {\n    HIDE: \"hide\" + EVENT_KEY$4,\n    HIDDEN: \"hidden\" + EVENT_KEY$4,\n    SHOW: \"show\" + EVENT_KEY$4,\n    SHOWN: \"shown\" + EVENT_KEY$4,\n    INSERTED: \"inserted\" + EVENT_KEY$4,\n    CLICK: \"click\" + EVENT_KEY$4,\n    FOCUSIN: \"focusin\" + EVENT_KEY$4,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$4,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$4,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$4\n  };\n  /**\n   * Class definition\n   */\n\n  var Tooltip = /*#__PURE__*/function () {\n    function Tooltip(element, config) {\n      if (typeof Popper__default[\"default\"] === 'undefined') {\n        throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n      } // Private\n\n\n      this._isEnabled = true;\n      this._timeout = 0;\n      this._hoverState = '';\n      this._activeTrigger = {};\n      this._popper = null; // Protected\n\n      this.element = element;\n      this.config = this._getConfig(config);\n      this.tip = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Tooltip.prototype;\n\n    // Public\n    _proto.enable = function enable() {\n      this._isEnabled = true;\n    };\n\n    _proto.disable = function disable() {\n      this._isEnabled = false;\n    };\n\n    _proto.toggleEnabled = function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    };\n\n    _proto.toggle = function toggle(event) {\n      if (!this._isEnabled) {\n        return;\n      }\n\n      if (event) {\n        var dataKey = this.constructor.DATA_KEY;\n        var context = $__default[\"default\"](event.currentTarget).data(dataKey);\n\n        if (!context) {\n          context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n          $__default[\"default\"](event.currentTarget).data(dataKey, context);\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click;\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context);\n        } else {\n          context._leave(null, context);\n        }\n      } else {\n        if ($__default[\"default\"](this.getTipElement()).hasClass(CLASS_NAME_SHOW$3)) {\n          this._leave(null, this);\n\n          return;\n        }\n\n        this._enter(null, this);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      $__default[\"default\"].removeData(this.element, this.constructor.DATA_KEY);\n      $__default[\"default\"](this.element).off(this.constructor.EVENT_KEY);\n      $__default[\"default\"](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n\n      if (this.tip) {\n        $__default[\"default\"](this.tip).remove();\n      }\n\n      this._isEnabled = null;\n      this._timeout = null;\n      this._hoverState = null;\n      this._activeTrigger = null;\n\n      if (this._popper) {\n        this._popper.destroy();\n      }\n\n      this._popper = null;\n      this.element = null;\n      this.config = null;\n      this.tip = null;\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if ($__default[\"default\"](this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      var showEvent = $__default[\"default\"].Event(this.constructor.Event.SHOW);\n\n      if (this.isWithContent() && this._isEnabled) {\n        $__default[\"default\"](this.element).trigger(showEvent);\n        var shadowRoot = Util.findShadowRoot(this.element);\n        var isInTheDom = $__default[\"default\"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return;\n        }\n\n        var tip = this.getTipElement();\n        var tipId = Util.getUID(this.constructor.NAME);\n        tip.setAttribute('id', tipId);\n        this.element.setAttribute('aria-describedby', tipId);\n        this.setContent();\n\n        if (this.config.animation) {\n          $__default[\"default\"](tip).addClass(CLASS_NAME_FADE$3);\n        }\n\n        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n        var attachment = this._getAttachment(placement);\n\n        this.addAttachmentClass(attachment);\n\n        var container = this._getContainer();\n\n        $__default[\"default\"](tip).data(this.constructor.DATA_KEY, this);\n\n        if (!$__default[\"default\"].contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $__default[\"default\"](tip).appendTo(container);\n        }\n\n        $__default[\"default\"](this.element).trigger(this.constructor.Event.INSERTED);\n        this._popper = new Popper__default[\"default\"](this.element, tip, this._getPopperConfig(attachment));\n        $__default[\"default\"](tip).addClass(CLASS_NAME_SHOW$3);\n        $__default[\"default\"](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n        if ('ontouchstart' in document.documentElement) {\n          $__default[\"default\"](document.body).children().on('mouseover', null, $__default[\"default\"].noop);\n        }\n\n        var complete = function complete() {\n          if (_this.config.animation) {\n            _this._fixTransition();\n          }\n\n          var prevHoverState = _this._hoverState;\n          _this._hoverState = null;\n          $__default[\"default\"](_this.element).trigger(_this.constructor.Event.SHOWN);\n\n          if (prevHoverState === HOVER_STATE_OUT) {\n            _this._leave(null, _this);\n          }\n        };\n\n        if ($__default[\"default\"](this.tip).hasClass(CLASS_NAME_FADE$3)) {\n          var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n          $__default[\"default\"](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n        } else {\n          complete();\n        }\n      }\n    };\n\n    _proto.hide = function hide(callback) {\n      var _this2 = this;\n\n      var tip = this.getTipElement();\n      var hideEvent = $__default[\"default\"].Event(this.constructor.Event.HIDE);\n\n      var complete = function complete() {\n        if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip);\n        }\n\n        _this2._cleanTipClass();\n\n        _this2.element.removeAttribute('aria-describedby');\n\n        $__default[\"default\"](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n        if (_this2._popper !== null) {\n          _this2._popper.destroy();\n        }\n\n        if (callback) {\n          callback();\n        }\n      };\n\n      $__default[\"default\"](this.element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $__default[\"default\"](tip).removeClass(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n      if ('ontouchstart' in document.documentElement) {\n        $__default[\"default\"](document.body).children().off('mouseover', null, $__default[\"default\"].noop);\n      }\n\n      this._activeTrigger[TRIGGER_CLICK] = false;\n      this._activeTrigger[TRIGGER_FOCUS] = false;\n      this._activeTrigger[TRIGGER_HOVER] = false;\n\n      if ($__default[\"default\"](this.tip).hasClass(CLASS_NAME_FADE$3)) {\n        var transitionDuration = Util.getTransitionDurationFromElement(tip);\n        $__default[\"default\"](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n\n      this._hoverState = '';\n    };\n\n    _proto.update = function update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Protected\n    ;\n\n    _proto.isWithContent = function isWithContent() {\n      return Boolean(this.getTitle());\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default[\"default\"](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default[\"default\"](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var tip = this.getTipElement();\n      this.setElementContent($__default[\"default\"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n      $__default[\"default\"](tip).removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$3);\n    };\n\n    _proto.setElementContent = function setElementContent($element, content) {\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (this.config.html) {\n          if (!$__default[\"default\"](content).parent().is($element)) {\n            $element.empty().append(content);\n          }\n        } else {\n          $element.text($__default[\"default\"](content).text());\n        }\n\n        return;\n      }\n\n      if (this.config.html) {\n        if (this.config.sanitize) {\n          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n        }\n\n        $element.html(content);\n      } else {\n        $element.text(content);\n      }\n    };\n\n    _proto.getTitle = function getTitle() {\n      var title = this.element.getAttribute('data-original-title');\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n      }\n\n      return title;\n    } // Private\n    ;\n\n    _proto._getPopperConfig = function _getPopperConfig(attachment) {\n      var _this3 = this;\n\n      var defaultBsConfig = {\n        placement: attachment,\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            behavior: this.config.fallbackPlacement\n          },\n          arrow: {\n            element: SELECTOR_ARROW\n          },\n          preventOverflow: {\n            boundariesElement: this.config.boundary\n          }\n        },\n        onCreate: function onCreate(data) {\n          if (data.originalPlacement !== data.placement) {\n            _this3._handlePopperPlacementChange(data);\n          }\n        },\n        onUpdate: function onUpdate(data) {\n          return _this3._handlePopperPlacementChange(data);\n        }\n      };\n      return _extends({}, defaultBsConfig, this.config.popperConfig);\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this4 = this;\n\n      var offset = {};\n\n      if (typeof this.config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element));\n          return data;\n        };\n      } else {\n        offset.offset = this.config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getContainer = function _getContainer() {\n      if (this.config.container === false) {\n        return document.body;\n      }\n\n      if (Util.isElement(this.config.container)) {\n        return $__default[\"default\"](this.config.container);\n      }\n\n      return $__default[\"default\"](document).find(this.config.container);\n    };\n\n    _proto._getAttachment = function _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()];\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this5 = this;\n\n      var triggers = this.config.trigger.split(' ');\n      triggers.forEach(function (trigger) {\n        if (trigger === 'click') {\n          $__default[\"default\"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n            return _this5.toggle(event);\n          });\n        } else if (trigger !== TRIGGER_MANUAL) {\n          var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n          var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n          $__default[\"default\"](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n            return _this5._enter(event);\n          }).on(eventOut, _this5.config.selector, function (event) {\n            return _this5._leave(event);\n          });\n        }\n      });\n\n      this._hideModalHandler = function () {\n        if (_this5.element) {\n          _this5.hide();\n        }\n      };\n\n      $__default[\"default\"](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n\n      if (this.config.selector) {\n        this.config = _extends({}, this.config, {\n          trigger: 'manual',\n          selector: ''\n        });\n      } else {\n        this._fixTitle();\n      }\n    };\n\n    _proto._fixTitle = function _fixTitle() {\n      var titleType = typeof this.element.getAttribute('data-original-title');\n\n      if (this.element.getAttribute('title') || titleType !== 'string') {\n        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n        this.element.setAttribute('title', '');\n      }\n    };\n\n    _proto._enter = function _enter(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default[\"default\"](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default[\"default\"](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n      }\n\n      if ($__default[\"default\"](context.getTipElement()).hasClass(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) {\n        context._hoverState = HOVER_STATE_SHOW;\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_SHOW;\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_SHOW) {\n          context.show();\n        }\n      }, context.config.delay.show);\n    };\n\n    _proto._leave = function _leave(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $__default[\"default\"](event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $__default[\"default\"](event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HOVER_STATE_OUT;\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HOVER_STATE_OUT) {\n          context.hide();\n        }\n      }, context.config.delay.hide);\n    };\n\n    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n      for (var trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      var dataAttributes = $__default[\"default\"](this.element).data();\n      Object.keys(dataAttributes).forEach(function (dataAttr) {\n        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n          delete dataAttributes[dataAttr];\n        }\n      });\n      config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n\n      if (config.sanitize) {\n        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n      }\n\n      return config;\n    };\n\n    _proto._getDelegateConfig = function _getDelegateConfig() {\n      var config = {};\n\n      if (this.config) {\n        for (var key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key];\n          }\n        }\n      }\n\n      return config;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default[\"default\"](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n      if (tabClass !== null && tabClass.length) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n      this.tip = popperData.instance.popper;\n\n      this._cleanTipClass();\n\n      this.addAttachmentClass(this._getAttachment(popperData.placement));\n    };\n\n    _proto._fixTransition = function _fixTransition() {\n      var tip = this.getTipElement();\n      var initConfigAnimation = this.config.animation;\n\n      if (tip.getAttribute('x-placement') !== null) {\n        return;\n      }\n\n      $__default[\"default\"](tip).removeClass(CLASS_NAME_FADE$3);\n      this.config.animation = false;\n      this.hide();\n      this.show();\n      this.config.animation = initConfigAnimation;\n    } // Static\n    ;\n\n    Tooltip._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default[\"default\"](this);\n        var data = $element.data(DATA_KEY$4);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config);\n          $element.data(DATA_KEY$4, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tooltip, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$4;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$3;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$4;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$4;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$1;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$4;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$3;\n      }\n    }]);\n\n    return Tooltip;\n  }();\n  /**\n   * jQuery\n   */\n\n\n  $__default[\"default\"].fn[NAME$4] = Tooltip._jQueryInterface;\n  $__default[\"default\"].fn[NAME$4].Constructor = Tooltip;\n\n  $__default[\"default\"].fn[NAME$4].noConflict = function () {\n    $__default[\"default\"].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return Tooltip._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME$3 = 'popover';\n  var VERSION$3 = '4.6.1';\n  var DATA_KEY$3 = 'bs.popover';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n  var JQUERY_NO_CONFLICT$3 = $__default[\"default\"].fn[NAME$3];\n  var CLASS_PREFIX = 'bs-popover';\n  var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n  var CLASS_NAME_FADE$2 = 'fade';\n  var CLASS_NAME_SHOW$2 = 'show';\n  var SELECTOR_TITLE = '.popover-header';\n  var SELECTOR_CONTENT = '.popover-body';\n\n  var Default$2 = _extends({}, Tooltip.Default, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n  });\n\n  var DefaultType$2 = _extends({}, Tooltip.DefaultType, {\n    content: '(string|element|function)'\n  });\n\n  var Event = {\n    HIDE: \"hide\" + EVENT_KEY$3,\n    HIDDEN: \"hidden\" + EVENT_KEY$3,\n    SHOW: \"show\" + EVENT_KEY$3,\n    SHOWN: \"shown\" + EVENT_KEY$3,\n    INSERTED: \"inserted\" + EVENT_KEY$3,\n    CLICK: \"click\" + EVENT_KEY$3,\n    FOCUSIN: \"focusin\" + EVENT_KEY$3,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$3,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$3,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$3\n  };\n  /**\n   * Class definition\n   */\n\n  var Popover = /*#__PURE__*/function (_Tooltip) {\n    _inheritsLoose(Popover, _Tooltip);\n\n    function Popover() {\n      return _Tooltip.apply(this, arguments) || this;\n    }\n\n    var _proto = Popover.prototype;\n\n    // Overrides\n    _proto.isWithContent = function isWithContent() {\n      return this.getTitle() || this._getContent();\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $__default[\"default\"](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $__default[\"default\"](this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var $tip = $__default[\"default\"](this.getTipElement()); // We use append for html objects to maintain js events\n\n      this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n\n      var content = this._getContent();\n\n      if (typeof content === 'function') {\n        content = content.call(this.element);\n      }\n\n      this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n      $tip.removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$2);\n    } // Private\n    ;\n\n    _proto._getContent = function _getContent() {\n      return this.element.getAttribute('data-content') || this.config.content;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $__default[\"default\"](this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    } // Static\n    ;\n\n    Popover._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default[\"default\"](this).data(DATA_KEY$3);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Popover(this, _config);\n          $__default[\"default\"](this).data(DATA_KEY$3, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Popover, null, [{\n      key: \"VERSION\",\n      get: // Getters\n      function get() {\n        return VERSION$3;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$2;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$3;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$3;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$3;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$2;\n      }\n    }]);\n\n    return Popover;\n  }(Tooltip);\n  /**\n   * jQuery\n   */\n\n\n  $__default[\"default\"].fn[NAME$3] = Popover._jQueryInterface;\n  $__default[\"default\"].fn[NAME$3].Constructor = Popover;\n\n  $__default[\"default\"].fn[NAME$3].noConflict = function () {\n    $__default[\"default\"].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return Popover._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME$2 = 'scrollspy';\n  var VERSION$2 = '4.6.1';\n  var DATA_KEY$2 = 'bs.scrollspy';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n  var DATA_API_KEY$1 = '.data-api';\n  var JQUERY_NO_CONFLICT$2 = $__default[\"default\"].fn[NAME$2];\n  var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n  var CLASS_NAME_ACTIVE$1 = 'active';\n  var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$2;\n  var EVENT_SCROLL = \"scroll\" + EVENT_KEY$2;\n  var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$2 + DATA_API_KEY$1;\n  var METHOD_OFFSET = 'offset';\n  var METHOD_POSITION = 'position';\n  var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n  var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n  var SELECTOR_NAV_LINKS = '.nav-link';\n  var SELECTOR_NAV_ITEMS = '.nav-item';\n  var SELECTOR_LIST_ITEMS = '.list-group-item';\n  var SELECTOR_DROPDOWN$1 = '.dropdown';\n  var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n  var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n  var Default$1 = {\n    offset: 10,\n    method: 'auto',\n    target: ''\n  };\n  var DefaultType$1 = {\n    offset: 'number',\n    method: 'string',\n    target: '(string|element)'\n  };\n  /**\n   * Class definition\n   */\n\n  var ScrollSpy = /*#__PURE__*/function () {\n    function ScrollSpy(element, config) {\n      var _this = this;\n\n      this._element = element;\n      this._scrollElement = element.tagName === 'BODY' ? window : element;\n      this._config = this._getConfig(config);\n      this._selector = this._config.target + \" \" + SELECTOR_NAV_LINKS + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n      this._offsets = [];\n      this._targets = [];\n      this._activeTarget = null;\n      this._scrollHeight = 0;\n      $__default[\"default\"](this._scrollElement).on(EVENT_SCROLL, function (event) {\n        return _this._process(event);\n      });\n      this.refresh();\n\n      this._process();\n    } // Getters\n\n\n    var _proto = ScrollSpy.prototype;\n\n    // Public\n    _proto.refresh = function refresh() {\n      var _this2 = this;\n\n      var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n      var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n      this._offsets = [];\n      this._targets = [];\n      this._scrollHeight = this._getScrollHeight();\n      var targets = [].slice.call(document.querySelectorAll(this._selector));\n      targets.map(function (element) {\n        var target;\n        var targetSelector = Util.getSelectorFromElement(element);\n\n        if (targetSelector) {\n          target = document.querySelector(targetSelector);\n        }\n\n        if (target) {\n          var targetBCR = target.getBoundingClientRect();\n\n          if (targetBCR.width || targetBCR.height) {\n            // TODO (fat): remove sketch reliance on jQuery position/offset\n            return [$__default[\"default\"](target)[offsetMethod]().top + offsetBase, targetSelector];\n          }\n        }\n\n        return null;\n      }).filter(function (item) {\n        return item;\n      }).sort(function (a, b) {\n        return a[0] - b[0];\n      }).forEach(function (item) {\n        _this2._offsets.push(item[0]);\n\n        _this2._targets.push(item[1]);\n      });\n    };\n\n    _proto.dispose = function dispose() {\n      $__default[\"default\"].removeData(this._element, DATA_KEY$2);\n      $__default[\"default\"](this._scrollElement).off(EVENT_KEY$2);\n      this._element = null;\n      this._scrollElement = null;\n      this._config = null;\n      this._selector = null;\n      this._offsets = null;\n      this._targets = null;\n      this._activeTarget = null;\n      this._scrollHeight = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default$1, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n        var id = $__default[\"default\"](config.target).attr('id');\n\n        if (!id) {\n          id = Util.getUID(NAME$2);\n          $__default[\"default\"](config.target).attr('id', id);\n        }\n\n        config.target = \"#\" + id;\n      }\n\n      Util.typeCheckConfig(NAME$2, config, DefaultType$1);\n      return config;\n    };\n\n    _proto._getScrollTop = function _getScrollTop() {\n      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n    };\n\n    _proto._getScrollHeight = function _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n    };\n\n    _proto._getOffsetHeight = function _getOffsetHeight() {\n      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n    };\n\n    _proto._process = function _process() {\n      var scrollTop = this._getScrollTop() + this._config.offset;\n\n      var scrollHeight = this._getScrollHeight();\n\n      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh();\n      }\n\n      if (scrollTop >= maxScroll) {\n        var target = this._targets[this._targets.length - 1];\n\n        if (this._activeTarget !== target) {\n          this._activate(target);\n        }\n\n        return;\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null;\n\n        this._clear();\n\n        return;\n      }\n\n      for (var i = this._offsets.length; i--;) {\n        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i]);\n        }\n      }\n    };\n\n    _proto._activate = function _activate(target) {\n      this._activeTarget = target;\n\n      this._clear();\n\n      var queries = this._selector.split(',').map(function (selector) {\n        return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n      });\n\n      var $link = $__default[\"default\"]([].slice.call(document.querySelectorAll(queries.join(','))));\n\n      if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n        $link.closest(SELECTOR_DROPDOWN$1).find(SELECTOR_DROPDOWN_TOGGLE$1).addClass(CLASS_NAME_ACTIVE$1);\n        $link.addClass(CLASS_NAME_ACTIVE$1);\n      } else {\n        // Set triggered link as active\n        $link.addClass(CLASS_NAME_ACTIVE$1); // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP$1).prev(SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$1); // Handle special case when .nav-link is inside .nav-item\n\n        $link.parents(SELECTOR_NAV_LIST_GROUP$1).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$1);\n      }\n\n      $__default[\"default\"](this._scrollElement).trigger(EVENT_ACTIVATE, {\n        relatedTarget: target\n      });\n    };\n\n    _proto._clear = function _clear() {\n      [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n        return node.classList.contains(CLASS_NAME_ACTIVE$1);\n      }).forEach(function (node) {\n        return node.classList.remove(CLASS_NAME_ACTIVE$1);\n      });\n    } // Static\n    ;\n\n    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $__default[\"default\"](this).data(DATA_KEY$2);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new ScrollSpy(this, _config);\n          $__default[\"default\"](this).data(DATA_KEY$2, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(ScrollSpy, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$2;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$1;\n      }\n    }]);\n\n    return ScrollSpy;\n  }();\n  /**\n   * Data API implementation\n   */\n\n\n  $__default[\"default\"](window).on(EVENT_LOAD_DATA_API, function () {\n    var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));\n    var scrollSpysLength = scrollSpys.length;\n\n    for (var i = scrollSpysLength; i--;) {\n      var $spy = $__default[\"default\"](scrollSpys[i]);\n\n      ScrollSpy._jQueryInterface.call($spy, $spy.data());\n    }\n  });\n  /**\n   * jQuery\n   */\n\n  $__default[\"default\"].fn[NAME$2] = ScrollSpy._jQueryInterface;\n  $__default[\"default\"].fn[NAME$2].Constructor = ScrollSpy;\n\n  $__default[\"default\"].fn[NAME$2].noConflict = function () {\n    $__default[\"default\"].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return ScrollSpy._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME$1 = 'tab';\n  var VERSION$1 = '4.6.1';\n  var DATA_KEY$1 = 'bs.tab';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT$1 = $__default[\"default\"].fn[NAME$1];\n  var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n  var CLASS_NAME_ACTIVE = 'active';\n  var CLASS_NAME_DISABLED = 'disabled';\n  var CLASS_NAME_FADE$1 = 'fade';\n  var CLASS_NAME_SHOW$1 = 'show';\n  var EVENT_HIDE$1 = \"hide\" + EVENT_KEY$1;\n  var EVENT_HIDDEN$1 = \"hidden\" + EVENT_KEY$1;\n  var EVENT_SHOW$1 = \"show\" + EVENT_KEY$1;\n  var EVENT_SHOWN$1 = \"shown\" + EVENT_KEY$1;\n  var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY$1 + DATA_API_KEY;\n  var SELECTOR_DROPDOWN = '.dropdown';\n  var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n  var SELECTOR_ACTIVE = '.active';\n  var SELECTOR_ACTIVE_UL = '> li > .active';\n  var SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\n  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n  var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';\n  /**\n   * Class definition\n   */\n\n  var Tab = /*#__PURE__*/function () {\n    function Tab(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Tab.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default[\"default\"](this._element).hasClass(CLASS_NAME_ACTIVE) || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED)) {\n        return;\n      }\n\n      var target;\n      var previous;\n      var listElement = $__default[\"default\"](this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];\n      var selector = Util.getSelectorFromElement(this._element);\n\n      if (listElement) {\n        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;\n        previous = $__default[\"default\"].makeArray($__default[\"default\"](listElement).find(itemSelector));\n        previous = previous[previous.length - 1];\n      }\n\n      var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$1, {\n        relatedTarget: this._element\n      });\n      var showEvent = $__default[\"default\"].Event(EVENT_SHOW$1, {\n        relatedTarget: previous\n      });\n\n      if (previous) {\n        $__default[\"default\"](previous).trigger(hideEvent);\n      }\n\n      $__default[\"default\"](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (selector) {\n        target = document.querySelector(selector);\n      }\n\n      this._activate(this._element, listElement);\n\n      var complete = function complete() {\n        var hiddenEvent = $__default[\"default\"].Event(EVENT_HIDDEN$1, {\n          relatedTarget: _this._element\n        });\n        var shownEvent = $__default[\"default\"].Event(EVENT_SHOWN$1, {\n          relatedTarget: previous\n        });\n        $__default[\"default\"](previous).trigger(hiddenEvent);\n        $__default[\"default\"](_this._element).trigger(shownEvent);\n      };\n\n      if (target) {\n        this._activate(target, target.parentNode, complete);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $__default[\"default\"].removeData(this._element, DATA_KEY$1);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._activate = function _activate(element, container, callback) {\n      var _this2 = this;\n\n      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default[\"default\"](container).find(SELECTOR_ACTIVE_UL) : $__default[\"default\"](container).children(SELECTOR_ACTIVE);\n      var active = activeElements[0];\n      var isTransitioning = callback && active && $__default[\"default\"](active).hasClass(CLASS_NAME_FADE$1);\n\n      var complete = function complete() {\n        return _this2._transitionComplete(element, active, callback);\n      };\n\n      if (active && isTransitioning) {\n        var transitionDuration = Util.getTransitionDurationFromElement(active);\n        $__default[\"default\"](active).removeClass(CLASS_NAME_SHOW$1).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n      if (active) {\n        $__default[\"default\"](active).removeClass(CLASS_NAME_ACTIVE);\n        var dropdownChild = $__default[\"default\"](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];\n\n        if (dropdownChild) {\n          $__default[\"default\"](dropdownChild).removeClass(CLASS_NAME_ACTIVE);\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false);\n        }\n      }\n\n      $__default[\"default\"](element).addClass(CLASS_NAME_ACTIVE);\n\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true);\n      }\n\n      Util.reflow(element);\n\n      if (element.classList.contains(CLASS_NAME_FADE$1)) {\n        element.classList.add(CLASS_NAME_SHOW$1);\n      }\n\n      var parent = element.parentNode;\n\n      if (parent && parent.nodeName === 'LI') {\n        parent = parent.parentNode;\n      }\n\n      if (parent && $__default[\"default\"](parent).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n        var dropdownElement = $__default[\"default\"](element).closest(SELECTOR_DROPDOWN)[0];\n\n        if (dropdownElement) {\n          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));\n          $__default[\"default\"](dropdownToggleList).addClass(CLASS_NAME_ACTIVE);\n        }\n\n        element.setAttribute('aria-expanded', true);\n      }\n\n      if (callback) {\n        callback();\n      }\n    } // Static\n    ;\n\n    Tab._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $__default[\"default\"](this);\n        var data = $this.data(DATA_KEY$1);\n\n        if (!data) {\n          data = new Tab(this);\n          $this.data(DATA_KEY$1, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tab, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$1;\n      }\n    }]);\n\n    return Tab;\n  }();\n  /**\n   * Data API implementation\n   */\n\n\n  $__default[\"default\"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n    event.preventDefault();\n\n    Tab._jQueryInterface.call($__default[\"default\"](this), 'show');\n  });\n  /**\n   * jQuery\n   */\n\n  $__default[\"default\"].fn[NAME$1] = Tab._jQueryInterface;\n  $__default[\"default\"].fn[NAME$1].Constructor = Tab;\n\n  $__default[\"default\"].fn[NAME$1].noConflict = function () {\n    $__default[\"default\"].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return Tab._jQueryInterface;\n  };\n\n  /**\n   * Constants\n   */\n\n  var NAME = 'toast';\n  var VERSION = '4.6.1';\n  var DATA_KEY = 'bs.toast';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var JQUERY_NO_CONFLICT = $__default[\"default\"].fn[NAME];\n  var CLASS_NAME_FADE = 'fade';\n  var CLASS_NAME_HIDE = 'hide';\n  var CLASS_NAME_SHOW = 'show';\n  var CLASS_NAME_SHOWING = 'showing';\n  var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY;\n  var EVENT_HIDE = \"hide\" + EVENT_KEY;\n  var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n  var EVENT_SHOW = \"show\" + EVENT_KEY;\n  var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n  var SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]';\n  var Default = {\n    animation: true,\n    autohide: true,\n    delay: 500\n  };\n  var DefaultType = {\n    animation: 'boolean',\n    autohide: 'boolean',\n    delay: 'number'\n  };\n  /**\n   * Class definition\n   */\n\n  var Toast = /*#__PURE__*/function () {\n    function Toast(element, config) {\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._timeout = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Toast.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      var showEvent = $__default[\"default\"].Event(EVENT_SHOW);\n      $__default[\"default\"](this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._clearTimeout();\n\n      if (this._config.animation) {\n        this._element.classList.add(CLASS_NAME_FADE);\n      }\n\n      var complete = function complete() {\n        _this._element.classList.remove(CLASS_NAME_SHOWING);\n\n        _this._element.classList.add(CLASS_NAME_SHOW);\n\n        $__default[\"default\"](_this._element).trigger(EVENT_SHOWN);\n\n        if (_this._config.autohide) {\n          _this._timeout = setTimeout(function () {\n            _this.hide();\n          }, _this._config.delay);\n        }\n      };\n\n      this._element.classList.remove(CLASS_NAME_HIDE);\n\n      Util.reflow(this._element);\n\n      this._element.classList.add(CLASS_NAME_SHOWING);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.hide = function hide() {\n      if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n        return;\n      }\n\n      var hideEvent = $__default[\"default\"].Event(EVENT_HIDE);\n      $__default[\"default\"](this._element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._close();\n    };\n\n    _proto.dispose = function dispose() {\n      this._clearTimeout();\n\n      if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n        this._element.classList.remove(CLASS_NAME_SHOW);\n      }\n\n      $__default[\"default\"](this._element).off(EVENT_CLICK_DISMISS);\n      $__default[\"default\"].removeData(this._element, DATA_KEY);\n      this._element = null;\n      this._config = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _extends({}, Default, $__default[\"default\"](this._element).data(), typeof config === 'object' && config ? config : {});\n      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this2 = this;\n\n      $__default[\"default\"](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {\n        return _this2.hide();\n      });\n    };\n\n    _proto._close = function _close() {\n      var _this3 = this;\n\n      var complete = function complete() {\n        _this3._element.classList.add(CLASS_NAME_HIDE);\n\n        $__default[\"default\"](_this3._element).trigger(EVENT_HIDDEN);\n      };\n\n      this._element.classList.remove(CLASS_NAME_SHOW);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._clearTimeout = function _clearTimeout() {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n    } // Static\n    ;\n\n    Toast._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $__default[\"default\"](this);\n        var data = $element.data(DATA_KEY);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new Toast(this, _config);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](this);\n        }\n      });\n    };\n\n    _createClass(Toast, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Toast;\n  }();\n  /**\n   * jQuery\n   */\n\n\n  $__default[\"default\"].fn[NAME] = Toast._jQueryInterface;\n  $__default[\"default\"].fn[NAME].Constructor = Toast;\n\n  $__default[\"default\"].fn[NAME].noConflict = function () {\n    $__default[\"default\"].fn[NAME] = JQUERY_NO_CONFLICT;\n    return Toast._jQueryInterface;\n  };\n\n  exports.Alert = Alert;\n  exports.Button = Button;\n  exports.Carousel = Carousel;\n  exports.Collapse = Collapse;\n  exports.Dropdown = Dropdown;\n  exports.Modal = Modal;\n  exports.Popover = Popover;\n  exports.Scrollspy = ScrollSpy;\n  exports.Tab = Tab;\n  exports.Toast = Toast;\n  exports.Tooltip = Tooltip;\n  exports.Util = Util;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=bootstrap.js.map\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  function getMergedValue(target, source) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge(target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(config1[prop], config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(undefined, config2[prop]);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(undefined, config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(prop) {\n    if (prop in config2) {\n      return getMergedValue(config1[prop], config2[prop]);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  var mergeMap = {\n    'url': valueFromConfig2,\n    'method': valueFromConfig2,\n    'data': valueFromConfig2,\n    'baseURL': defaultToConfig2,\n    'transformRequest': defaultToConfig2,\n    'transformResponse': defaultToConfig2,\n    'paramsSerializer': defaultToConfig2,\n    'timeout': defaultToConfig2,\n    'timeoutMessage': defaultToConfig2,\n    'withCredentials': defaultToConfig2,\n    'adapter': defaultToConfig2,\n    'responseType': defaultToConfig2,\n    'xsrfCookieName': defaultToConfig2,\n    'xsrfHeaderName': defaultToConfig2,\n    'onUploadProgress': defaultToConfig2,\n    'onDownloadProgress': defaultToConfig2,\n    'decompress': defaultToConfig2,\n    'maxContentLength': defaultToConfig2,\n    'maxBodyLength': defaultToConfig2,\n    'transport': defaultToConfig2,\n    'httpAgent': defaultToConfig2,\n    'httpsAgent': defaultToConfig2,\n    'cancelToken': defaultToConfig2,\n    'socketPath': defaultToConfig2,\n    'responseEncoding': defaultToConfig2,\n    'validateStatus': mergeDirectKeys\n  };\n\n  utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n    var merge = mergeMap[prop] || mergeDeepProperties;\n    var configValue = merge(prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new Cancel('canceled');\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n  var currentScript = window.document.currentScript\n  if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n    var getCurrentScript = require('@soda/get-current-script')\n    currentScript = getCurrentScript()\n\n    // for backward compatibility, because previously we directly included the polyfill\n    if (!('currentScript' in document)) {\n      Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n    }\n  }\n\n  var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n  if (src) {\n    __webpack_public_path__ = src[1] // eslint-disable-line\n  }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","const camelizeRE = /-(\\w)/g;\nconst camelize = str => {\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n};\n\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = str => {\n  return str.replace(hyphenateRE, '-$1').toLowerCase()\n};\n\nfunction getInitialProps (propsList) {\n  const res = {};\n  propsList.forEach(key => {\n    res[key] = undefined;\n  });\n  return res\n}\n\nfunction injectHook (options, key, hook) {\n  options[key] = [].concat(options[key] || []);\n  options[key].unshift(hook);\n}\n\nfunction callHooks (vm, hook) {\n  if (vm) {\n    const hooks = vm.$options[hook] || [];\n    hooks.forEach(hook => {\n      hook.call(vm);\n    });\n  }\n}\n\nfunction createCustomEvent (name, args) {\n  return new CustomEvent(name, {\n    bubbles: false,\n    cancelable: false,\n    detail: args\n  })\n}\n\nconst isBoolean = val => /function Boolean/.test(String(val));\nconst isNumber = val => /function Number/.test(String(val));\n\nfunction convertAttributeValue (value, name, { type } = {}) {\n  if (isBoolean(type)) {\n    if (value === 'true' || value === 'false') {\n      return value === 'true'\n    }\n    if (value === '' || value === name || value != null) {\n      return true\n    }\n    return value\n  } else if (isNumber(type)) {\n    const parsed = parseFloat(value, 10);\n    return isNaN(parsed) ? value : parsed\n  } else {\n    return value\n  }\n}\n\nfunction toVNodes (h, children) {\n  const res = [];\n  for (let i = 0, l = children.length; i < l; i++) {\n    res.push(toVNode(h, children[i]));\n  }\n  return res\n}\n\nfunction toVNode (h, node) {\n  if (node.nodeType === 3) {\n    return node.data.trim() ? node.data : null\n  } else if (node.nodeType === 1) {\n    const data = {\n      attrs: getAttributes(node),\n      domProps: {\n        innerHTML: node.innerHTML\n      }\n    };\n    if (data.attrs.slot) {\n      data.slot = data.attrs.slot;\n      delete data.attrs.slot;\n    }\n    return h(node.tagName, data)\n  } else {\n    return null\n  }\n}\n\nfunction getAttributes (node) {\n  const res = {};\n  for (let i = 0, l = node.attributes.length; i < l; i++) {\n    const attr = node.attributes[i];\n    res[attr.nodeName] = attr.nodeValue;\n  }\n  return res\n}\n\nfunction wrap (Vue, Component) {\n  const isAsync = typeof Component === 'function' && !Component.cid;\n  let isInitialized = false;\n  let hyphenatedPropsList;\n  let camelizedPropsList;\n  let camelizedPropsMap;\n\n  function initialize (Component) {\n    if (isInitialized) return\n\n    const options = typeof Component === 'function'\n      ? Component.options\n      : Component;\n\n    // extract props info\n    const propsList = Array.isArray(options.props)\n      ? options.props\n      : Object.keys(options.props || {});\n    hyphenatedPropsList = propsList.map(hyphenate);\n    camelizedPropsList = propsList.map(camelize);\n    const originalPropsAsObject = Array.isArray(options.props) ? {} : options.props || {};\n    camelizedPropsMap = camelizedPropsList.reduce((map, key, i) => {\n      map[key] = originalPropsAsObject[propsList[i]];\n      return map\n    }, {});\n\n    // proxy $emit to native DOM events\n    injectHook(options, 'beforeCreate', function () {\n      const emit = this.$emit;\n      this.$emit = (name, ...args) => {\n        this.$root.$options.customElement.dispatchEvent(createCustomEvent(name, args));\n        return emit.call(this, name, ...args)\n      };\n    });\n\n    injectHook(options, 'created', function () {\n      // sync default props values to wrapper on created\n      camelizedPropsList.forEach(key => {\n        this.$root.props[key] = this[key];\n      });\n    });\n\n    // proxy props as Element properties\n    camelizedPropsList.forEach(key => {\n      Object.defineProperty(CustomElement.prototype, key, {\n        get () {\n          return this._wrapper.props[key]\n        },\n        set (newVal) {\n          this._wrapper.props[key] = newVal;\n        },\n        enumerable: false,\n        configurable: true\n      });\n    });\n\n    isInitialized = true;\n  }\n\n  function syncAttribute (el, key) {\n    const camelized = camelize(key);\n    const value = el.hasAttribute(key) ? el.getAttribute(key) : undefined;\n    el._wrapper.props[camelized] = convertAttributeValue(\n      value,\n      key,\n      camelizedPropsMap[camelized]\n    );\n  }\n\n  class CustomElement extends HTMLElement {\n    constructor () {\n      const self = super();\n      self.attachShadow({ mode: 'open' });\n\n      const wrapper = self._wrapper = new Vue({\n        name: 'shadow-root',\n        customElement: self,\n        shadowRoot: self.shadowRoot,\n        data () {\n          return {\n            props: {},\n            slotChildren: []\n          }\n        },\n        render (h) {\n          return h(Component, {\n            ref: 'inner',\n            props: this.props\n          }, this.slotChildren)\n        }\n      });\n\n      // Use MutationObserver to react to future attribute & slot content change\n      const observer = new MutationObserver(mutations => {\n        let hasChildrenChange = false;\n        for (let i = 0; i < mutations.length; i++) {\n          const m = mutations[i];\n          if (isInitialized && m.type === 'attributes' && m.target === self) {\n            syncAttribute(self, m.attributeName);\n          } else {\n            hasChildrenChange = true;\n          }\n        }\n        if (hasChildrenChange) {\n          wrapper.slotChildren = Object.freeze(toVNodes(\n            wrapper.$createElement,\n            self.childNodes\n          ));\n        }\n      });\n      observer.observe(self, {\n        childList: true,\n        subtree: true,\n        characterData: true,\n        attributes: true\n      });\n    }\n\n    get vueComponent () {\n      return this._wrapper.$refs.inner\n    }\n\n    connectedCallback () {\n      const wrapper = this._wrapper;\n      if (!wrapper._isMounted) {\n        // initialize attributes\n        const syncInitialAttributes = () => {\n          wrapper.props = getInitialProps(camelizedPropsList);\n          hyphenatedPropsList.forEach(key => {\n            syncAttribute(this, key);\n          });\n        };\n\n        if (isInitialized) {\n          syncInitialAttributes();\n        } else {\n          // async & unresolved\n          Component().then(resolved => {\n            if (resolved.__esModule || resolved[Symbol.toStringTag] === 'Module') {\n              resolved = resolved.default;\n            }\n            initialize(resolved);\n            syncInitialAttributes();\n          });\n        }\n        // initialize children\n        wrapper.slotChildren = Object.freeze(toVNodes(\n          wrapper.$createElement,\n          this.childNodes\n        ));\n        wrapper.$mount();\n        this.shadowRoot.appendChild(wrapper.$el);\n      } else {\n        callHooks(this.vueComponent, 'activated');\n      }\n    }\n\n    disconnectedCallback () {\n      callHooks(this.vueComponent, 'deactivated');\n    }\n  }\n\n  if (!isAsync) {\n    initialize(Component);\n  }\n\n  return CustomElement\n}\n\nexport default wrap;\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n        injectStyles.call(\n          this,\n          (options.functional ? this.parent : this).$root.$options.shadowRoot\n        )\n      }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"wrapper-items\"},[_c('div',{ref:\"carousel-news\",staticClass:\"section-items hide-scroll\",attrs:{\"id\":\"carousel-news\"}},_vm._l((_vm.news.titulos),function(item,index){return _c('div',{key:index,staticClass:\"item\"},[_c('div',{staticClass:\"card\",staticStyle:{\"width\":\"18rem\"}},[_c('div',{staticClass:\"clearfix mb-3\"},[_c('span',{staticClass:\"float-start badge rounded-pill bg-tag\"},[_vm._v(_vm._s(item.categoria))])]),_c('img',{staticClass:\"card-img-top\",attrs:{\"src\":item.portada,\"alt\":\"Card image cap\"}}),_c('div',{staticClass:\"card-body\"},[_c('span',{staticClass:\"vertical\"}),_c('span',{staticClass:\"date\"},[_vm._v(_vm._s(item.yearEdicion))]),_c('p',{staticClass:\"card-title\"},[_vm._v(_vm._s(item.titulo))]),_c('span',{staticClass:\"link-noticia\"},[_c('a',{attrs:{\"target\":\"_blank\",\"href\":(\"\" + (item.url))}},[_vm._v(\"Leer más \")])])])])])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"wrapper\">\r\n  \r\n    <div class=\"wrapper-items\">\r\n      <div\r\n        class=\"section-items hide-scroll\"\r\n        id=\"carousel-news\"\r\n        ref=\"carousel-news\"\r\n      >\r\n        <div v-for=\"(item, index) of news.titulos\" :key=\"index\" class=\"item\">\r\n          <div class=\"card\" style=\"width: 18rem\">\r\n            <div class=\"clearfix mb-3\">\r\n              <span class=\"float-start badge rounded-pill bg-tag\"\r\n                >{{item.categoria}}</span\r\n              >\r\n            </div>\r\n            <img\r\n              class=\"card-img-top\"\r\n              :src=\"item.portada\"\r\n              alt=\"Card image cap\"\r\n            />\r\n            <div class=\"card-body\">\r\n              <span class=\"vertical\"></span\r\n              ><span class=\"date\">{{ item.yearEdicion }}</span>\r\n              <p class=\"card-title\">{{ item.titulo }}</p>\r\n              <span class=\"link-noticia\"\r\n                ><a target=\"_blank\" :href=\"`${item.url}`\">Leer más </a></span\r\n              >\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport axios from \"axios\";\r\nimport \"bootstrap\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport \"bootstrap-vue/dist/bootstrap-vue.css\";\r\n\r\nconst newsUrl =\r\n  \"https://srv-si-001.utpl.edu.ec/apim/biblioteca/1.0/novedadesv2/v2/catalogo/titulos/titulos\";\r\n\r\nconst config = {\r\n  headers: {\r\n    apikey:\r\n      \"eyJ4NXQiOiJOVGRtWmpNNFpEazNOalkwWXpjNU1tWm1PRGd3TVRFM01XWXdOREU1TVdSbFpEZzROemM0WkE9PSIsImtpZCI6ImdhdGV3YXlfY2VydGlmaWNhdGVfYWxpYXMiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJVVFBMLkVEVS5FQ1wvYWNjYXJkZW5hczRAY2FyYm9uLnN1cGVyIiwiYXBwbGljYXRpb24iOnsib3duZXIiOiJVVFBMLkVEVS5FQ1wvYWNjYXJkZW5hczQiLCJ0aWVyUXVvdGFUeXBlIjpudWxsLCJ0aWVyIjoiVW5saW1pdGVkIiwibmFtZSI6IlBvcnRhbGVzV2ViIiwiaWQiOjY2MSwidXVpZCI6ImE3NjY3NDJiLTgxMzktNGZlZC1hNGI4LTEzNTA3NGM5YWZjYSJ9LCJpc3MiOiJodHRwczpcL1wvc3J2LXNpLTAwMS51dHBsLmVkdS5lYzo0NDNcL29hdXRoMlwvdG9rZW4iLCJ0aWVySW5mbyI6eyJCcm9uemUiOnsidGllclF1b3RhVHlwZSI6InJlcXVlc3RDb3VudCIsImdyYXBoUUxNYXhDb21wbGV4aXR5IjowLCJncmFwaFFMTWF4RGVwdGgiOjAsInN0b3BPblF1b3RhUmVhY2giOnRydWUsInNwaWtlQXJyZXN0TGltaXQiOjAsInNwaWtlQXJyZXN0VW5pdCI6bnVsbH0sIlVubGltaXRlZCI6eyJ0aWVyUXVvdGFUeXBlIjoicmVxdWVzdENvdW50IiwiZ3JhcGhRTE1heENvbXBsZXhpdHkiOjAsImdyYXBoUUxNYXhEZXB0aCI6MCwic3RvcE9uUXVvdGFSZWFjaCI6dHJ1ZSwic3Bpa2VBcnJlc3RMaW1pdCI6MCwic3Bpa2VBcnJlc3RVbml0IjpudWxsfX0sImtleXR5cGUiOiJQUk9EVUNUSU9OIiwicGVybWl0dGVkUmVmZXJlciI6IiIsInN1YnNjcmliZWRBUElzIjpbeyJzdWJzY3JpYmVyVGVuYW50RG9tYWluIjoiY2FyYm9uLnN1cGVyIiwibmFtZSI6IkJ1eGlzQXBpIiwiY29udGV4dCI6IlwvYXBpbVwvYnV4aXNcLzEuMCIsInB1Ymxpc2hlciI6IlVUUEwuRURVLkVDXC9qc2NhbGRlcm9uIiwidmVyc2lvbiI6IjEuMCIsInN1YnNjcmlwdGlvblRpZXIiOiJVbmxpbWl0ZWQifSx7InN1YnNjcmliZXJUZW5hbnREb21haW4iOiJjYXJib24uc3VwZXIiLCJuYW1lIjoiR3JhcGhBcGkiLCJjb250ZXh0IjoiXC9hcGltXC9ncmFwaFwvMS4wIiwicHVibGlzaGVyIjoiVVRQTC5FRFUuRUNcL2pzY2FsZGVyb24iLCJ2ZXJzaW9uIjoiMS4wIiwic3Vic2NyaXB0aW9uVGllciI6IlVubGltaXRlZCJ9LHsic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJQb3J0YWxBcGkiLCJjb250ZXh0IjoiXC9hcGltXC9wb3J0YWx3ZWIiLCJwdWJsaXNoZXIiOiJVVFBMLkVEVS5FQ1wvanNjYWxkZXJvbiIsInZlcnNpb24iOiIxLjAuMCIsInN1YnNjcmlwdGlvblRpZXIiOiJVbmxpbWl0ZWQifSx7InN1YnNjcmliZXJUZW5hbnREb21haW4iOiJjYXJib24uc3VwZXIiLCJuYW1lIjoiTmV0Q29yZUFwaSIsImNvbnRleHQiOiJcL2FwaW1cL25ldGNvcmVcLzEuMCIsInB1Ymxpc2hlciI6IlVUUEwuRURVLkVDXC9qc2NhbGRlcm9uIiwidmVyc2lvbiI6IjEuMCIsInN1YnNjcmlwdGlvblRpZXIiOiJCcm9uemUifSx7InN1YnNjcmliZXJUZW5hbnREb21haW4iOiJjYXJib24uc3VwZXIiLCJuYW1lIjoiQmlibGlvdGVjYUFwaSIsImNvbnRleHQiOiJcL2FwaW1cL2JpYmxpb3RlY2FcLzEuMCIsInB1Ymxpc2hlciI6IlVUUEwuRURVLkVDXC9qc2NhbGRlcm9uIiwidmVyc2lvbiI6IjEuMCIsInN1YnNjcmlwdGlvblRpZXIiOiJCcm9uemUifV0sInBlcm1pdHRlZElQIjoiIiwiaWF0IjoxNjU3OTA5OTU5LCJqdGkiOiIyYzMzZGRiYi1mNDBmLTQ0NDQtYmIzYy02ZGJiODUyMGVkMzUifQ==.SWKFlpWqBdVgB6z6WGh_R-pK9FiMLZ7gps2S2zp2Hg5K3Sg4CGLq2XTSUpsGY0pWjX0_RO3ucnQMYHL85-EL4_osZRq6QoH-jUMQq_foWIuxJ-tx51Pip2aCaVOMO4TxL-P-S8HSOEvV1hWpp5UbzI0XAAhG8ORwWxBZebAxsbNdvBl85MVxr9dj5hoPz0YkHtjCC9xwgyRSez5LJpWZwzAKBecdhsY86nJl2Vuf43LNxdqTo_h8avg5ewWem9wR4Cgz2MNuRxu-AoszLL2bTDDHZRl7PAJJUjkhtIP_ndsYVOaj6IwYSEbwyZwTHpfis9hI3DQlRlobxkqEllUnpg==\",\r\n  },\r\n};\r\n\r\nexport default {\r\n  name: \"utpl-biblioteca-novedades\",\r\n\r\n  data() {\r\n    return { news: [] };\r\n  },\r\n  methods: {\r\n    getNews() {\r\n      axios\r\n        .get(newsUrl, config)\r\n        .then((response) => (this.news = response.data));\r\n      console.log(this.news);\r\n    },\r\n  },\r\n  created() {\r\n    this.getNews();\r\n  },\r\n};\r\n</script>\r\n<style>\r\n@import \"../styles/styles-biblioteca-wc.css\";\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UtplBibliotecaBooks.vue?vue&type=script&lang=js&shadow\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UtplBibliotecaBooks.vue?vue&type=script&lang=js&shadow\"","import { render, staticRenderFns } from \"./UtplBibliotecaBooks.vue?vue&type=template&id=f184caf0&shadow\"\nimport script from \"./UtplBibliotecaBooks.vue?vue&type=script&lang=js&shadow\"\nexport * from \"./UtplBibliotecaBooks.vue?vue&type=script&lang=js&shadow\"\nfunction injectStyles (context) {\n  \n  var style0 = require(\"./UtplBibliotecaBooks.vue?vue&type=style&index=0&lang=css&shadow\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  null\n  ,true\n)\n\nexport default component.exports","import './setPublicPath'\nimport Vue from 'vue'\nimport wrap from '@vue/web-component-wrapper'\n\n// runtime shared by every component chunk\nimport 'css-loader/dist/runtime/api.js'\nimport 'vue-style-loader/lib/addStylesShadow'\nimport 'vue-loader/lib/runtime/componentNormalizer'\n\nimport utplBibliotecaBooks from '~root/./src/components/UtplBibliotecaBooks.vue?shadow'\nwindow.customElements.define('utpl-biblioteca-books', wrap(Vue, utplBibliotecaBooks))","module.exports = {\n  \"version\": \"0.24.0\"\n};","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n  return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"*{margin:0;padding:0;font-family:Roboto Condensed,sans-serif}.wrapper-items{width:90%;margin:0 auto;max-width:1100px;padding:2em 0}.date{color:#004170;margin-left:20px;font-variant:all-small-caps}.card{width:375px!important;height:320px;border-radius:1em;border:1px solid rgba(0,0,0,.125)}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{font-weight:900;margin-top:5px}.vertical{border-left:3px solid #ffb000;height:500px}.section-items{min-height:0!important;overflow:auto;position:relative;display:flex;flex-flow:nowrap;justify-content:flex-start;align-items:stretch}.bg-tag{background-color:#004170;color:#fff;padding:8px;border-radius:10px!important;margin-top:12px;margin-left:10px;text-transform:uppercase;font-weight:400}.section-items .item{width:250px;min-width:370px;margin-right:2em;position:relative;border:none;border-radius:.5em}.section-items .item a{position:absolute;bottom:0}.body-item a{color:#004170!important;font-weight:600}.section-items img{max-height:170px;-o-object-fit:cover;object-fit:contain;border-top-left-radius:.5em;border-top-right-radius:.5em;width:100%;height:auto;background-color:#f5f5f5}.clearfix{position:absolute}.section-items .body-item h4{font-size:11pt;letter-spacing:-.2px;color:#000;opacity:1;font-weight:800;font:normal normal 800 Poppins;font:normal normal 600 20px/26px Poppins;font-size:15px}.section-items .body-item a,.section-items .body-item p{padding-top:1em;font-size:11pt;line-height:1;text-align:justify;color:#737373}.link-noticia a{color:#004170!important;margin-bottom:12px}.hide-scroll::-webkit-scrollbar{display:none}.navigation-items{display:flex;justify-content:center}.left-items,.right-items{font-size:45pt;margin:0 .4em;color:#eaab00;cursor:pointer}.left-items:hover,.right-items:hover{color:#003f72}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n/*!\\n * BootstrapVue Custom CSS (https://bootstrap-vue.org)\\n */.bv-no-focus-ring:focus{outline:none}@media (max-width:575.98px){.bv-d-xs-down-none{display:none!important}}@media (max-width:767.98px){.bv-d-sm-down-none{display:none!important}}@media (max-width:991.98px){.bv-d-md-down-none{display:none!important}}@media (max-width:1199.98px){.bv-d-lg-down-none{display:none!important}}.bv-d-xl-down-none{display:none!important}.form-control.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control.focus.is-valid{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.focus.is-invalid{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.b-avatar{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0;width:2.5rem;height:2.5rem;font-size:inherit;font-weight:400;line-height:1;max-width:100%;max-height:auto;text-align:center;overflow:visible;position:relative;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}.b-avatar:focus{outline:0}.b-avatar.btn,.b-avatar[href]{padding:0;border:0}.b-avatar.btn .b-avatar-img img,.b-avatar[href] .b-avatar-img img{transition:transform .15s ease-in-out}.b-avatar.btn:not(:disabled):not(.disabled),.b-avatar[href]:not(:disabled):not(.disabled){cursor:pointer}.b-avatar.btn:not(:disabled):not(.disabled):hover .b-avatar-img img,.b-avatar[href]:not(:disabled):not(.disabled):hover .b-avatar-img img{transform:scale(1.15)}.b-avatar.disabled,.b-avatar:disabled,.b-avatar[disabled]{opacity:.65;pointer-events:none}.b-avatar .b-avatar-custom,.b-avatar .b-avatar-img,.b-avatar .b-avatar-text{border-radius:inherit;width:100%;height:100%;overflow:hidden;display:flex;justify-content:center;align-items:center;-webkit-mask-image:radial-gradient(#fff,#000);mask-image:radial-gradient(#fff,#000)}.b-avatar .b-avatar-text{text-transform:uppercase;white-space:nowrap}.b-avatar[href]{text-decoration:none}.b-avatar>.b-icon{width:60%;height:auto;max-width:100%}.b-avatar .b-avatar-img img{width:100%;height:100%;max-height:auto;border-radius:inherit;-o-object-fit:cover;object-fit:cover}.b-avatar .b-avatar-badge{position:absolute;min-height:1.5em;min-width:1.5em;padding:.25em;line-height:1;border-radius:10em;font-size:70%;font-weight:700;z-index:1}.b-avatar-sm{width:1.5rem;height:1.5rem}.b-avatar-sm .b-avatar-text{font-size:.6rem}.b-avatar-sm .b-avatar-badge{font-size:.42rem}.b-avatar-lg{width:3.5rem;height:3.5rem}.b-avatar-lg .b-avatar-text{font-size:1.4rem}.b-avatar-lg .b-avatar-badge{font-size:.98rem}.b-avatar-group .b-avatar-group-inner{display:flex;flex-wrap:wrap}.b-avatar-group .b-avatar{border:1px solid #dee2e6}.b-avatar-group .btn.b-avatar:hover:not(.disabled):not(disabled),.b-avatar-group a.b-avatar:hover:not(.disabled):not(disabled){z-index:1}.b-calendar{display:inline-flex}.b-calendar .b-calendar-inner{min-width:250px}.b-calendar .b-calendar-header,.b-calendar .b-calendar-nav{margin-bottom:.25rem}.b-calendar .b-calendar-nav .btn{padding:.25rem}.b-calendar output{padding:.25rem;font-size:80%}.b-calendar output.readonly{background-color:#e9ecef;opacity:1}.b-calendar .b-calendar-footer{margin-top:.5rem}.b-calendar .b-calendar-grid{padding:0;margin:0;overflow:hidden}.b-calendar .b-calendar-grid .row{flex-wrap:nowrap}.b-calendar .b-calendar-grid-caption{padding:.25rem}.b-calendar .b-calendar-grid-body .col[data-date] .btn{width:32px;height:32px;font-size:14px;line-height:1;margin:3px auto;padding:9px 0}.b-calendar .btn.disabled,.b-calendar .btn:disabled,.b-calendar .btn[aria-disabled=true]{cursor:default;pointer-events:none}.card-img-left{border-top-left-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-img-right{border-top-right-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px)}.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret:before,.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret:after{display:none!important}.dropdown .dropdown-menu:focus{outline:none}.b-dropdown-form{display:inline-block;padding:.25rem 1.5rem;width:100%;clear:both;font-weight:400}.b-dropdown-form:focus{outline:1px dotted!important;outline:5px auto -webkit-focus-ring-color!important}.b-dropdown-form.disabled,.b-dropdown-form:disabled{outline:0!important;color:#adb5bd;pointer-events:none}.b-dropdown-text{display:inline-block;padding:.25rem 1.5rem;margin-bottom:0;width:100%;clear:both;font-weight:lighter}.custom-checkbox.b-custom-control-lg,.input-group-lg .custom-checkbox{font-size:1.25rem;line-height:1.5;padding-left:1.875rem}.custom-checkbox.b-custom-control-lg .custom-control-label:before,.input-group-lg .custom-checkbox .custom-control-label:before{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;border-radius:.3rem}.custom-checkbox.b-custom-control-lg .custom-control-label:after,.input-group-lg .custom-checkbox .custom-control-label:after{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;background-size:50% 50%}.custom-checkbox.b-custom-control-sm,.input-group-sm .custom-checkbox{font-size:.875rem;line-height:1.5;padding-left:1.3125rem}.custom-checkbox.b-custom-control-sm .custom-control-label:before,.input-group-sm .custom-checkbox .custom-control-label:before{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;border-radius:.2rem}.custom-checkbox.b-custom-control-sm .custom-control-label:after,.input-group-sm .custom-checkbox .custom-control-label:after{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;background-size:50% 50%}.custom-switch.b-custom-control-lg,.input-group-lg .custom-switch{padding-left:2.8125rem}.custom-switch.b-custom-control-lg .custom-control-label,.input-group-lg .custom-switch .custom-control-label{font-size:1.25rem;line-height:1.5}.custom-switch.b-custom-control-lg .custom-control-label:before,.input-group-lg .custom-switch .custom-control-label:before{top:.3125rem;height:1.25rem;left:-2.8125rem;width:2.1875rem;border-radius:.625rem}.custom-switch.b-custom-control-lg .custom-control-label:after,.input-group-lg .custom-switch .custom-control-label:after{top:calc(.3125rem + 2px);left:calc(-2.8125rem + 2px);width:calc(1.25rem - 4px);height:calc(1.25rem - 4px);border-radius:.625rem;background-size:50% 50%}.custom-switch.b-custom-control-lg .custom-control-input:checked~.custom-control-label:after,.input-group-lg .custom-switch .custom-control-input:checked~.custom-control-label:after{transform:translateX(.9375rem)}.custom-switch.b-custom-control-sm,.input-group-sm .custom-switch{padding-left:1.96875rem}.custom-switch.b-custom-control-sm .custom-control-label,.input-group-sm .custom-switch .custom-control-label{font-size:.875rem;line-height:1.5}.custom-switch.b-custom-control-sm .custom-control-label:before,.input-group-sm .custom-switch .custom-control-label:before{top:.21875rem;left:-1.96875rem;width:1.53125rem;height:.875rem;border-radius:.4375rem}.custom-switch.b-custom-control-sm .custom-control-label:after,.input-group-sm .custom-switch .custom-control-label:after{top:calc(.21875rem + 2px);left:calc(-1.96875rem + 2px);width:calc(.875rem - 4px);height:calc(.875rem - 4px);border-radius:.4375rem;background-size:50% 50%}.custom-switch.b-custom-control-sm .custom-control-input:checked~.custom-control-label:after,.input-group-sm .custom-switch .custom-control-input:checked~.custom-control-label:after{transform:translateX(.65625rem)}.input-group>.input-group-append:last-child>.btn-group:not(:last-child):not(.dropdown-toggle)>.btn,.input-group>.input-group-append:not(:last-child)>.btn-group>.btn,.input-group>.input-group-prepend>.btn-group>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn-group>.btn,.input-group>.input-group-prepend:first-child>.btn-group:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.btn-group>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.b-form-btn-label-control.form-control{display:flex;align-items:stretch;height:auto;padding:0;background-image:none}.input-group .b-form-btn-label-control.form-control{padding:0}.b-form-btn-label-control.form-control[dir=rtl],[dir=rtl] .b-form-btn-label-control.form-control{flex-direction:row-reverse}.b-form-btn-label-control.form-control[dir=rtl]>label,[dir=rtl] .b-form-btn-label-control.form-control>label{text-align:right}.b-form-btn-label-control.form-control>.btn{line-height:1;font-size:inherit;box-shadow:none!important;border:0}.b-form-btn-label-control.form-control>.btn:disabled{pointer-events:none}.b-form-btn-label-control.form-control.is-valid>.btn{color:#28a745}.b-form-btn-label-control.form-control.is-invalid>.btn{color:#dc3545}.b-form-btn-label-control.form-control>.dropdown-menu{padding:.5rem}.b-form-btn-label-control.form-control>.form-control{height:auto;min-height:calc(1.5em + .75rem);padding-left:.25rem;margin:0;border:0;outline:0;background:transparent;word-break:break-word;font-size:inherit;white-space:normal;cursor:pointer}.b-form-btn-label-control.form-control>.form-control.form-control-sm{min-height:calc(1.5em + .5rem)}.b-form-btn-label-control.form-control>.form-control.form-control-lg{min-height:calc(1.5em + 1rem)}.input-group.input-group-sm .b-form-btn-label-control.form-control>.form-control{min-height:calc(1.5em + .5rem);padding-top:.25rem;padding-bottom:.25rem}.input-group.input-group-lg .b-form-btn-label-control.form-control>.form-control{min-height:calc(1.5em + 1rem);padding-top:.5rem;padding-bottom:.5rem}.b-form-btn-label-control.form-control[aria-disabled=true],.b-form-btn-label-control.form-control[aria-readonly=true]{background-color:#e9ecef;opacity:1}.b-form-btn-label-control.form-control[aria-disabled=true]{pointer-events:none}.b-form-btn-label-control.form-control[aria-disabled=true]>label{cursor:default}.b-form-btn-label-control.btn-group>.dropdown-menu{padding:.5rem}.custom-file-label{white-space:nowrap;overflow-x:hidden}.b-custom-control-lg.custom-file,.b-custom-control-lg .custom-file-input,.b-custom-control-lg .custom-file-label,.input-group-lg.custom-file,.input-group-lg .custom-file-input,.input-group-lg .custom-file-label{font-size:1.25rem;height:calc(1.5em + 1rem + 2px)}.b-custom-control-lg .custom-file-label,.b-custom-control-lg .custom-file-label:after,.input-group-lg .custom-file-label,.input-group-lg .custom-file-label:after{padding:.5rem 1rem;line-height:1.5}.b-custom-control-lg .custom-file-label,.input-group-lg .custom-file-label{border-radius:.3rem}.b-custom-control-lg .custom-file-label:after,.input-group-lg .custom-file-label:after{font-size:inherit;height:calc(1.5em + 1rem);border-radius:0 .3rem .3rem 0}.b-custom-control-sm.custom-file,.b-custom-control-sm .custom-file-input,.b-custom-control-sm .custom-file-label,.input-group-sm.custom-file,.input-group-sm .custom-file-input,.input-group-sm .custom-file-label{font-size:.875rem;height:calc(1.5em + .5rem + 2px)}.b-custom-control-sm .custom-file-label,.b-custom-control-sm .custom-file-label:after,.input-group-sm .custom-file-label,.input-group-sm .custom-file-label:after{padding:.25rem .5rem;line-height:1.5}.b-custom-control-sm .custom-file-label,.input-group-sm .custom-file-label{border-radius:.2rem}.b-custom-control-sm .custom-file-label:after,.input-group-sm .custom-file-label:after{font-size:inherit;height:calc(1.5em + .5rem);border-radius:0 .2rem .2rem 0}.form-control.is-invalid,.form-control.is-valid,.was-validated .form-control:invalid,.was-validated .form-control:valid{background-position:right calc(.375em + .1875rem) center}input[type=color].form-control{height:calc(1.5em + .75rem + 2px);padding:.125rem .25rem}.input-group-sm input[type=color].form-control,input[type=color].form-control.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.125rem .25rem}.input-group-lg input[type=color].form-control,input[type=color].form-control.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.125rem .25rem}input[type=color].form-control:disabled{background-color:#adb5bd;opacity:.65}.input-group>.custom-range{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-range,.input-group>.custom-range+.custom-file,.input-group>.custom-range+.custom-range,.input-group>.custom-range+.custom-select,.input-group>.custom-range+.form-control,.input-group>.custom-range+.form-control-plaintext,.input-group>.custom-select+.custom-range,.input-group>.form-control+.custom-range,.input-group>.form-control-plaintext+.custom-range{margin-left:-1px}.input-group>.custom-range:focus{z-index:3}.input-group>.custom-range:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-range:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-range{padding:0 .75rem;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;height:calc(1.5em + .75rem + 2px);border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.input-group>.custom-range{transition:none}}.input-group>.custom-range:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.input-group>.custom-range:disabled,.input-group>.custom-range[readonly]{background-color:#e9ecef}.input-group-lg>.custom-range{height:calc(1.5em + 1rem + 2px);padding:0 1rem;border-radius:.3rem}.input-group-sm>.custom-range{height:calc(1.5em + .5rem + 2px);padding:0 .5rem;border-radius:.2rem}.input-group .custom-range.is-valid,.was-validated .input-group .custom-range:valid{border-color:#28a745}.input-group .custom-range.is-valid:focus,.was-validated .input-group .custom-range:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-range.is-valid:focus::-webkit-slider-thumb,.was-validated .custom-range:valid:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid:focus::-moz-range-thumb,.was-validated .custom-range:valid:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid:focus::-ms-thumb,.was-validated .custom-range:valid:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid::-webkit-slider-thumb,.was-validated .custom-range:valid::-webkit-slider-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-webkit-slider-thumb:active,.was-validated .custom-range:valid::-webkit-slider-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-webkit-slider-runnable-track,.was-validated .custom-range:valid::-webkit-slider-runnable-track{background-color:rgba(40,167,69,.35)}.custom-range.is-valid::-moz-range-thumb,.was-validated .custom-range:valid::-moz-range-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-moz-range-thumb:active,.was-validated .custom-range:valid::-moz-range-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-moz-range-track,.was-validated .custom-range:valid::-moz-range-track{background:rgba(40,167,69,.35)}.custom-range.is-valid~.valid-feedback,.custom-range.is-valid~.valid-tooltip,.was-validated .custom-range:valid~.valid-feedback,.was-validated .custom-range:valid~.valid-tooltip{display:block}.custom-range.is-valid::-ms-thumb,.was-validated .custom-range:valid::-ms-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-ms-thumb:active,.was-validated .custom-range:valid::-ms-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-ms-track-lower,.custom-range.is-valid::-ms-track-upper,.was-validated .custom-range:valid::-ms-track-lower,.was-validated .custom-range:valid::-ms-track-upper{background:rgba(40,167,69,.35)}.input-group .custom-range.is-invalid,.was-validated .input-group .custom-range:invalid{border-color:#dc3545}.input-group .custom-range.is-invalid:focus,.was-validated .input-group .custom-range:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-range.is-invalid:focus::-webkit-slider-thumb,.was-validated .custom-range:invalid:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid:focus::-moz-range-thumb,.was-validated .custom-range:invalid:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid:focus::-ms-thumb,.was-validated .custom-range:invalid:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid::-webkit-slider-thumb,.was-validated .custom-range:invalid::-webkit-slider-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-webkit-slider-thumb:active,.was-validated .custom-range:invalid::-webkit-slider-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-webkit-slider-runnable-track,.was-validated .custom-range:invalid::-webkit-slider-runnable-track{background-color:rgba(220,53,69,.35)}.custom-range.is-invalid::-moz-range-thumb,.was-validated .custom-range:invalid::-moz-range-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-moz-range-thumb:active,.was-validated .custom-range:invalid::-moz-range-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-moz-range-track,.was-validated .custom-range:invalid::-moz-range-track{background:rgba(220,53,69,.35)}.custom-range.is-invalid~.invalid-feedback,.custom-range.is-invalid~.invalid-tooltip,.was-validated .custom-range:invalid~.invalid-feedback,.was-validated .custom-range:invalid~.invalid-tooltip{display:block}.custom-range.is-invalid::-ms-thumb,.was-validated .custom-range:invalid::-ms-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-ms-thumb:active,.was-validated .custom-range:invalid::-ms-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-ms-track-lower,.custom-range.is-invalid::-ms-track-upper,.was-validated .custom-range:invalid::-ms-track-lower,.was-validated .custom-range:invalid::-ms-track-upper{background:rgba(220,53,69,.35)}.custom-radio.b-custom-control-lg,.input-group-lg .custom-radio{font-size:1.25rem;line-height:1.5;padding-left:1.875rem}.custom-radio.b-custom-control-lg .custom-control-label:before,.input-group-lg .custom-radio .custom-control-label:before{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;border-radius:50%}.custom-radio.b-custom-control-lg .custom-control-label:after,.input-group-lg .custom-radio .custom-control-label:after{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;background:no-repeat 50%/50% 50%}.custom-radio.b-custom-control-sm,.input-group-sm .custom-radio{font-size:.875rem;line-height:1.5;padding-left:1.3125rem}.custom-radio.b-custom-control-sm .custom-control-label:before,.input-group-sm .custom-radio .custom-control-label:before{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;border-radius:50%}.custom-radio.b-custom-control-sm .custom-control-label:after,.input-group-sm .custom-radio .custom-control-label:after{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;background:no-repeat 50%/50% 50%}.b-rating{text-align:center}.b-rating.d-inline-flex{width:auto}.b-rating .b-rating-star,.b-rating .b-rating-value{padding:0 .25em}.b-rating .b-rating-value{min-width:2.5em}.b-rating .b-rating-star{display:inline-flex;justify-content:center;outline:0}.b-rating .b-rating-star .b-rating-icon{display:inline-flex;transition:all .15s ease-in-out}.b-rating.disabled,.b-rating:disabled{background-color:#e9ecef;color:#6c757d}.b-rating:not(.disabled):not(.readonly) .b-rating-star{cursor:pointer}.b-rating:not(.disabled):not(.readonly) .b-rating-star:hover .b-rating-icon,.b-rating:not(.disabled):not(.readonly):focus:not(:hover) .b-rating-star.focused .b-rating-icon{transform:scale(1.5)}.b-rating[dir=rtl] .b-rating-star-half{transform:scaleX(-1)}.b-form-spinbutton{text-align:center;overflow:hidden;background-image:none;padding:0}.b-form-spinbutton[dir=rtl]:not(.flex-column),[dir=rtl] .b-form-spinbutton:not(.flex-column){flex-direction:row-reverse}.b-form-spinbutton output{font-size:inherit;outline:0;border:0;background-color:transparent;width:auto;margin:0;padding:0 .25rem}.b-form-spinbutton output>bdi,.b-form-spinbutton output>div{display:block;min-width:2.25em;height:1.5em}.b-form-spinbutton.flex-column{height:auto;width:auto}.b-form-spinbutton.flex-column output{margin:0 .25rem;padding:.25rem 0}.b-form-spinbutton:not(.d-inline-flex):not(.flex-column){output-width:100%}.b-form-spinbutton.d-inline-flex:not(.flex-column){width:auto}.b-form-spinbutton .btn{line-height:1;box-shadow:none!important}.b-form-spinbutton .btn:disabled{pointer-events:none}.b-form-spinbutton .btn:hover:not(:disabled)>div>.b-icon{transform:scale(1.25)}.b-form-spinbutton.disabled,.b-form-spinbutton.readonly{background-color:#e9ecef}.b-form-spinbutton.disabled{pointer-events:none}.b-form-tags.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.b-form-tags.focus.is-valid{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.b-form-tags.focus.is-invalid{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.b-form-tags.disabled{background-color:#e9ecef}.b-form-tags-list{margin-top:-.25rem}.b-form-tags-list .b-form-tag,.b-form-tags-list .b-form-tags-field{margin-top:.25rem}.b-form-tags-input{color:#495057}.b-form-tag{font-size:75%;font-weight:400;line-height:1.5;margin-right:.25rem}.b-form-tag.disabled{opacity:.75}.b-form-tag>button.b-form-tag-remove{color:inherit;font-size:125%;line-height:1;float:none;margin-left:.25rem}.form-control-lg .b-form-tag,.form-control-sm .b-form-tag{line-height:1.5}.media-aside{display:flex;margin-right:1rem}.media-aside-right{margin-right:0;margin-left:1rem}.modal-backdrop{opacity:.5}.b-pagination-pills .page-item .page-link{border-radius:50rem!important;margin-left:.25rem;line-height:1}.b-pagination-pills .page-item:first-child .page-link{margin-left:0}.popover.b-popover{display:block;opacity:1;outline:0}.popover.b-popover.fade:not(.show){opacity:0}.popover.b-popover.show{opacity:1}.b-popover-primary.popover{background-color:#cce5ff;border-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-primary.bs-popover-top>.arrow:before{border-top-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-primary.bs-popover-top>.arrow:after{border-top-color:#cce5ff}.b-popover-primary.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-primary.bs-popover-right>.arrow:before{border-right-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-primary.bs-popover-right>.arrow:after{border-right-color:#cce5ff}.b-popover-primary.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-primary.bs-popover-bottom>.arrow:before{border-bottom-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-primary.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-primary.bs-popover-bottom .popover-header:before,.b-popover-primary.bs-popover-bottom>.arrow:after{border-bottom-color:#bdddff}.b-popover-primary.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-primary.bs-popover-left>.arrow:before{border-left-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-primary.bs-popover-left>.arrow:after{border-left-color:#cce5ff}.b-popover-primary .popover-header{color:#212529;background-color:#bdddff;border-bottom-color:#a3d0ff}.b-popover-primary .popover-body{color:#004085}.b-popover-secondary.popover{background-color:#e2e3e5;border-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-secondary.bs-popover-top>.arrow:before{border-top-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-secondary.bs-popover-top>.arrow:after{border-top-color:#e2e3e5}.b-popover-secondary.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-secondary.bs-popover-right>.arrow:before{border-right-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-secondary.bs-popover-right>.arrow:after{border-right-color:#e2e3e5}.b-popover-secondary.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-secondary.bs-popover-bottom>.arrow:before{border-bottom-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-secondary.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-secondary.bs-popover-bottom .popover-header:before,.b-popover-secondary.bs-popover-bottom>.arrow:after{border-bottom-color:#dadbde}.b-popover-secondary.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-secondary.bs-popover-left>.arrow:before{border-left-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-secondary.bs-popover-left>.arrow:after{border-left-color:#e2e3e5}.b-popover-secondary .popover-header{color:#212529;background-color:#dadbde;border-bottom-color:#ccced2}.b-popover-secondary .popover-body{color:#383d41}.b-popover-success.popover{background-color:#d4edda;border-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-success.bs-popover-top>.arrow:before{border-top-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-success.bs-popover-top>.arrow:after{border-top-color:#d4edda}.b-popover-success.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-success.bs-popover-right>.arrow:before{border-right-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-success.bs-popover-right>.arrow:after{border-right-color:#d4edda}.b-popover-success.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-success.bs-popover-bottom>.arrow:before{border-bottom-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-success.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-success.bs-popover-bottom .popover-header:before,.b-popover-success.bs-popover-bottom>.arrow:after{border-bottom-color:#c9e8d1}.b-popover-success.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-success.bs-popover-left>.arrow:before{border-left-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-success.bs-popover-left>.arrow:after{border-left-color:#d4edda}.b-popover-success .popover-header{color:#212529;background-color:#c9e8d1;border-bottom-color:#b7e1c1}.b-popover-success .popover-body{color:#155724}.b-popover-info.popover{background-color:#d1ecf1;border-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-info.bs-popover-top>.arrow:before{border-top-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-info.bs-popover-top>.arrow:after{border-top-color:#d1ecf1}.b-popover-info.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-info.bs-popover-right>.arrow:before{border-right-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-info.bs-popover-right>.arrow:after{border-right-color:#d1ecf1}.b-popover-info.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-info.bs-popover-bottom>.arrow:before{border-bottom-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-info.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-info.bs-popover-bottom .popover-header:before,.b-popover-info.bs-popover-bottom>.arrow:after{border-bottom-color:#c5e7ed}.b-popover-info.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-info.bs-popover-left>.arrow:before{border-left-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-info.bs-popover-left>.arrow:after{border-left-color:#d1ecf1}.b-popover-info .popover-header{color:#212529;background-color:#c5e7ed;border-bottom-color:#b2dfe7}.b-popover-info .popover-body{color:#0c5460}.b-popover-warning.popover{background-color:#fff3cd;border-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-warning.bs-popover-top>.arrow:before{border-top-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-warning.bs-popover-top>.arrow:after{border-top-color:#fff3cd}.b-popover-warning.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-warning.bs-popover-right>.arrow:before{border-right-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-warning.bs-popover-right>.arrow:after{border-right-color:#fff3cd}.b-popover-warning.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-warning.bs-popover-bottom>.arrow:before{border-bottom-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-warning.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-warning.bs-popover-bottom .popover-header:before,.b-popover-warning.bs-popover-bottom>.arrow:after{border-bottom-color:#ffefbe}.b-popover-warning.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-warning.bs-popover-left>.arrow:before{border-left-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-warning.bs-popover-left>.arrow:after{border-left-color:#fff3cd}.b-popover-warning .popover-header{color:#212529;background-color:#ffefbe;border-bottom-color:#ffe9a4}.b-popover-warning .popover-body{color:#856404}.b-popover-danger.popover{background-color:#f8d7da;border-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-danger.bs-popover-top>.arrow:before{border-top-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-danger.bs-popover-top>.arrow:after{border-top-color:#f8d7da}.b-popover-danger.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-danger.bs-popover-right>.arrow:before{border-right-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-danger.bs-popover-right>.arrow:after{border-right-color:#f8d7da}.b-popover-danger.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-danger.bs-popover-bottom>.arrow:before{border-bottom-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-danger.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-danger.bs-popover-bottom .popover-header:before,.b-popover-danger.bs-popover-bottom>.arrow:after{border-bottom-color:#f6cace}.b-popover-danger.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-danger.bs-popover-left>.arrow:before{border-left-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-danger.bs-popover-left>.arrow:after{border-left-color:#f8d7da}.b-popover-danger .popover-header{color:#212529;background-color:#f6cace;border-bottom-color:#f2b4ba}.b-popover-danger .popover-body{color:#721c24}.b-popover-light.popover{background-color:#fefefe;border-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-light.bs-popover-top>.arrow:before{border-top-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-light.bs-popover-top>.arrow:after{border-top-color:#fefefe}.b-popover-light.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-light.bs-popover-right>.arrow:before{border-right-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-light.bs-popover-right>.arrow:after{border-right-color:#fefefe}.b-popover-light.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-light.bs-popover-bottom>.arrow:before{border-bottom-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-light.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-light.bs-popover-bottom .popover-header:before,.b-popover-light.bs-popover-bottom>.arrow:after{border-bottom-color:#f6f6f6}.b-popover-light.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-light.bs-popover-left>.arrow:before{border-left-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-light.bs-popover-left>.arrow:after{border-left-color:#fefefe}.b-popover-light .popover-header{color:#212529;background-color:#f6f6f6;border-bottom-color:#eaeaea}.b-popover-light .popover-body{color:#818182}.b-popover-dark.popover{background-color:#d6d8d9;border-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=top]>.arrow:before,.b-popover-dark.bs-popover-top>.arrow:before{border-top-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=top]>.arrow:after,.b-popover-dark.bs-popover-top>.arrow:after{border-top-color:#d6d8d9}.b-popover-dark.bs-popover-auto[x-placement^=right]>.arrow:before,.b-popover-dark.bs-popover-right>.arrow:before{border-right-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=right]>.arrow:after,.b-popover-dark.bs-popover-right>.arrow:after{border-right-color:#d6d8d9}.b-popover-dark.bs-popover-auto[x-placement^=bottom]>.arrow:before,.b-popover-dark.bs-popover-bottom>.arrow:before{border-bottom-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=bottom] .popover-header:before,.b-popover-dark.bs-popover-auto[x-placement^=bottom]>.arrow:after,.b-popover-dark.bs-popover-bottom .popover-header:before,.b-popover-dark.bs-popover-bottom>.arrow:after{border-bottom-color:#ced0d2}.b-popover-dark.bs-popover-auto[x-placement^=left]>.arrow:before,.b-popover-dark.bs-popover-left>.arrow:before{border-left-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=left]>.arrow:after,.b-popover-dark.bs-popover-left>.arrow:after{border-left-color:#d6d8d9}.b-popover-dark .popover-header{color:#212529;background-color:#ced0d2;border-bottom-color:#c1c4c5}.b-popover-dark .popover-body{color:#1b1e21}.b-sidebar-outer{position:fixed;top:0;left:0;right:0;height:0;overflow:visible;z-index:1035}.b-sidebar-backdrop{left:0;z-index:-1;width:100vw;opacity:.6}.b-sidebar,.b-sidebar-backdrop{position:fixed;top:0;height:100vh}.b-sidebar{display:flex;flex-direction:column;width:320px;max-width:100%;max-height:100%;margin:0;outline:0;transform:translateX(0)}.b-sidebar.slide{transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.b-sidebar.slide{transition:none}}.b-sidebar:not(.b-sidebar-right){left:0;right:auto}.b-sidebar:not(.b-sidebar-right).slide:not(.show){transform:translateX(-100%)}.b-sidebar:not(.b-sidebar-right)>.b-sidebar-header .close{margin-left:auto}.b-sidebar.b-sidebar-right{left:auto;right:0}.b-sidebar.b-sidebar-right.slide:not(.show){transform:translateX(100%)}.b-sidebar.b-sidebar-right>.b-sidebar-header .close{margin-right:auto}.b-sidebar>.b-sidebar-header{font-size:1.5rem;padding:.5rem 1rem;display:flex;flex-direction:row;flex-grow:0;align-items:center}[dir=rtl] .b-sidebar>.b-sidebar-header{flex-direction:row-reverse}.b-sidebar>.b-sidebar-header .close{float:none;font-size:1.5rem}.b-sidebar>.b-sidebar-body{flex-grow:1;height:100%;overflow-y:auto}.b-sidebar>.b-sidebar-footer{flex-grow:0}.b-skeleton-wrapper{cursor:wait}.b-skeleton{position:relative;overflow:hidden;background-color:rgba(0,0,0,.12);cursor:wait;-webkit-mask-image:radial-gradient(#fff,#000);mask-image:radial-gradient(#fff,#000)}.b-skeleton:before{content:\\\" \\\"}.b-skeleton-text{height:1rem;margin-bottom:.25rem;border-radius:.25rem}.b-skeleton-button{width:75px;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem}.b-skeleton-avatar{width:2.5em;height:2.5em;border-radius:50%}.b-skeleton-input{height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;line-height:1.5;border:1px solid #ced4da;border-radius:.25rem}.b-skeleton-icon-wrapper svg{color:rgba(0,0,0,.12)}.b-skeleton-img{height:100%;width:100%}.b-skeleton-animate-wave:after{content:\\\"\\\";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);-webkit-animation:b-skeleton-animate-wave 1.75s linear infinite;animation:b-skeleton-animate-wave 1.75s linear infinite}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-wave:after{background:none;-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-wave{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes b-skeleton-animate-wave{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.b-skeleton-animate-fade{-webkit-animation:b-skeleton-animate-fade .875s ease-in-out infinite alternate;animation:b-skeleton-animate-fade .875s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-fade{-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-fade{0%{opacity:1}to{opacity:.4}}@keyframes b-skeleton-animate-fade{0%{opacity:1}to{opacity:.4}}.b-skeleton-animate-throb{-webkit-animation:b-skeleton-animate-throb .875s ease-in infinite alternate;animation:b-skeleton-animate-throb .875s ease-in infinite alternate}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-throb{-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-throb{0%{transform:scale(1)}to{transform:scale(.975)}}@keyframes b-skeleton-animate-throb{0%{transform:scale(1)}to{transform:scale(.975)}}.table.b-table.b-table-fixed{table-layout:fixed}.table.b-table.b-table-no-border-collapse{border-collapse:separate;border-spacing:0}.table.b-table[aria-busy=true]{opacity:.55}.table.b-table>tbody>tr.b-table-details>td{border-top:none!important}.table.b-table>caption{caption-side:bottom}.table.b-table.b-table-caption-top>caption{caption-side:top!important}.table.b-table>tbody>.table-active,.table.b-table>tbody>.table-active>td,.table.b-table>tbody>.table-active>th{background-color:rgba(0,0,0,.075)}.table.b-table.table-hover>tbody>tr.table-active:hover td,.table.b-table.table-hover>tbody>tr.table-active:hover th{color:#212529;background-image:linear-gradient(rgba(0,0,0,.075),rgba(0,0,0,.075));background-repeat:no-repeat}.table.b-table>tbody>.bg-active,.table.b-table>tbody>.bg-active>td,.table.b-table>tbody>.bg-active>th{background-color:hsla(0,0%,100%,.075)!important}.table.b-table.table-hover.table-dark>tbody>tr.bg-active:hover td,.table.b-table.table-hover.table-dark>tbody>tr.bg-active:hover th{color:#fff;background-image:linear-gradient(hsla(0,0%,100%,.075),hsla(0,0%,100%,.075));background-repeat:no-repeat}.b-table-sticky-header,.table-responsive,[class*=table-responsive-]{margin-bottom:1rem}.b-table-sticky-header>.table,.table-responsive>.table,[class*=table-responsive-]>.table{margin-bottom:0}.b-table-sticky-header{overflow-y:auto;max-height:300px}@media print{.b-table-sticky-header{overflow-y:visible!important;max-height:none!important}}@supports (position:sticky){.b-table-sticky-header>.table.b-table>thead>tr>th{position:sticky;top:0;z-index:2}.b-table-sticky-header>.table.b-table>tbody>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>tfoot>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>thead>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tbody>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tfoot>tr>.b-table-sticky-column,.table-responsive>.table.b-table>thead>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tbody>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tfoot>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>thead>tr>.b-table-sticky-column{position:sticky;left:0}.b-table-sticky-header>.table.b-table>thead>tr>.b-table-sticky-column,.table-responsive>.table.b-table>thead>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>thead>tr>.b-table-sticky-column{z-index:5}.b-table-sticky-header>.table.b-table>tbody>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>tfoot>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tbody>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tfoot>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tbody>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tfoot>tr>.b-table-sticky-column{z-index:2}.table.b-table>tbody>tr>.table-b-table-default,.table.b-table>tfoot>tr>.table-b-table-default,.table.b-table>thead>tr>.table-b-table-default{color:#212529;background-color:#fff}.table.b-table.table-dark>tbody>tr>.bg-b-table-default,.table.b-table.table-dark>tfoot>tr>.bg-b-table-default,.table.b-table.table-dark>thead>tr>.bg-b-table-default{color:#fff;background-color:#343a40}.table.b-table.table-striped>tbody>tr:nth-of-type(odd)>.table-b-table-default{background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.05));background-repeat:no-repeat}.table.b-table.table-striped.table-dark>tbody>tr:nth-of-type(odd)>.bg-b-table-default{background-image:linear-gradient(hsla(0,0%,100%,.05),hsla(0,0%,100%,.05));background-repeat:no-repeat}.table.b-table.table-hover>tbody>tr:hover>.table-b-table-default{color:#212529;background-image:linear-gradient(rgba(0,0,0,.075),rgba(0,0,0,.075));background-repeat:no-repeat}.table.b-table.table-hover.table-dark>tbody>tr:hover>.bg-b-table-default{color:#fff;background-image:linear-gradient(hsla(0,0%,100%,.075),hsla(0,0%,100%,.075));background-repeat:no-repeat}}.table.b-table>tfoot>tr>[aria-sort],.table.b-table>thead>tr>[aria-sort]{cursor:pointer;background-image:none;background-repeat:no-repeat;background-size:.65em 1em}.table.b-table>tfoot>tr>[aria-sort]:not(.b-table-sort-icon-left),.table.b-table>thead>tr>[aria-sort]:not(.b-table-sort-icon-left){background-position:right .375rem center;padding-right:calc(.75rem + .65em)}.table.b-table>tfoot>tr>[aria-sort].b-table-sort-icon-left,.table.b-table>thead>tr>[aria-sort].b-table-sort-icon-left{background-position:left .375rem center;padding-left:calc(.75rem + .65em)}.table.b-table>tfoot>tr>[aria-sort=none],.table.b-table>thead>tr>[aria-sort=none]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath opacity='.3' d='M51 1l25 23 24 22H1l25-22zm0 100l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table>tfoot>tr>[aria-sort=ascending],.table.b-table>thead>tr>[aria-sort=ascending]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath d='M51 1l25 23 24 22H1l25-22z'/%3E%3Cpath opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table>tfoot>tr>[aria-sort=descending],.table.b-table>thead>tr>[aria-sort=descending]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3E%3Cpath d='M51 101l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table.table-dark>tfoot>tr>[aria-sort=none],.table.b-table.table-dark>thead>tr>[aria-sort=none],.table.b-table>.thead-dark>tr>[aria-sort=none]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' opacity='.3' d='M51 1l25 23 24 22H1l25-22zm0 100l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table.table-dark>tfoot>tr>[aria-sort=ascending],.table.b-table.table-dark>thead>tr>[aria-sort=ascending],.table.b-table>.thead-dark>tr>[aria-sort=ascending]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M51 1l25 23 24 22H1l25-22z'/%3E%3Cpath fill='%23fff' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table.table-dark>tfoot>tr>[aria-sort=descending],.table.b-table.table-dark>thead>tr>[aria-sort=descending],.table.b-table>.thead-dark>tr>[aria-sort=descending]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3E%3Cpath fill='%23fff' d='M51 101l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table>tfoot>tr>.table-dark[aria-sort=none],.table.b-table>thead>tr>.table-dark[aria-sort=none]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' opacity='.3' d='M51 1l25 23 24 22H1l25-22zm0 100l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table>tfoot>tr>.table-dark[aria-sort=ascending],.table.b-table>thead>tr>.table-dark[aria-sort=ascending]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M51 1l25 23 24 22H1l25-22z'/%3E%3Cpath fill='%23fff' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table>tfoot>tr>.table-dark[aria-sort=descending],.table.b-table>thead>tr>.table-dark[aria-sort=descending]{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3E%3Cpath fill='%23fff' d='M51 101l25-23 24-22H1l25 22z'/%3E%3C/svg%3E\\\")}.table.b-table.table-sm>tfoot>tr>[aria-sort]:not(.b-table-sort-icon-left),.table.b-table.table-sm>thead>tr>[aria-sort]:not(.b-table-sort-icon-left){background-position:right .15rem center;padding-right:calc(.3rem + .65em)}.table.b-table.table-sm>tfoot>tr>[aria-sort].b-table-sort-icon-left,.table.b-table.table-sm>thead>tr>[aria-sort].b-table-sort-icon-left{background-position:left .15rem center;padding-left:calc(.3rem + .65em)}.table.b-table.b-table-selectable:not(.b-table-selectable-no-click)>tbody>tr{cursor:pointer}.table.b-table.b-table-selectable:not(.b-table-selectable-no-click).b-table-selecting.b-table-select-range>tbody>tr{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (max-width:575.98px){.table.b-table.b-table-stacked-sm{display:block;width:100%}.table.b-table.b-table-stacked-sm>caption,.table.b-table.b-table-stacked-sm>tbody,.table.b-table.b-table-stacked-sm>tbody>tr,.table.b-table.b-table-stacked-sm>tbody>tr>td,.table.b-table.b-table-stacked-sm>tbody>tr>th{display:block}.table.b-table.b-table-stacked-sm>tfoot,.table.b-table.b-table-stacked-sm>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-sm>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-sm>thead,.table.b-table.b-table-stacked-sm>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-sm>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-sm>caption{caption-side:top!important}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]:after{display:block;clear:both;content:\\\"\\\"}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked-sm>tbody>tr.bottom-row,.table.b-table.b-table-stacked-sm>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-sm>tbody>tr>:first-child,.table.b-table.b-table-stacked-sm>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-sm>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:767.98px){.table.b-table.b-table-stacked-md{display:block;width:100%}.table.b-table.b-table-stacked-md>caption,.table.b-table.b-table-stacked-md>tbody,.table.b-table.b-table-stacked-md>tbody>tr,.table.b-table.b-table-stacked-md>tbody>tr>td,.table.b-table.b-table-stacked-md>tbody>tr>th{display:block}.table.b-table.b-table-stacked-md>tfoot,.table.b-table.b-table-stacked-md>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-md>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-md>thead,.table.b-table.b-table-stacked-md>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-md>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-md>caption{caption-side:top!important}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]:after{display:block;clear:both;content:\\\"\\\"}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked-md>tbody>tr.bottom-row,.table.b-table.b-table-stacked-md>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-md>tbody>tr>:first-child,.table.b-table.b-table-stacked-md>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-md>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:991.98px){.table.b-table.b-table-stacked-lg{display:block;width:100%}.table.b-table.b-table-stacked-lg>caption,.table.b-table.b-table-stacked-lg>tbody,.table.b-table.b-table-stacked-lg>tbody>tr,.table.b-table.b-table-stacked-lg>tbody>tr>td,.table.b-table.b-table-stacked-lg>tbody>tr>th{display:block}.table.b-table.b-table-stacked-lg>tfoot,.table.b-table.b-table-stacked-lg>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-lg>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-lg>thead,.table.b-table.b-table-stacked-lg>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-lg>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-lg>caption{caption-side:top!important}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]:after{display:block;clear:both;content:\\\"\\\"}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked-lg>tbody>tr.bottom-row,.table.b-table.b-table-stacked-lg>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-lg>tbody>tr>:first-child,.table.b-table.b-table-stacked-lg>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-lg>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:1199.98px){.table.b-table.b-table-stacked-xl{display:block;width:100%}.table.b-table.b-table-stacked-xl>caption,.table.b-table.b-table-stacked-xl>tbody,.table.b-table.b-table-stacked-xl>tbody>tr,.table.b-table.b-table-stacked-xl>tbody>tr>td,.table.b-table.b-table-stacked-xl>tbody>tr>th{display:block}.table.b-table.b-table-stacked-xl>tfoot,.table.b-table.b-table-stacked-xl>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-xl>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-xl>thead,.table.b-table.b-table-stacked-xl>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-xl>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-xl>caption{caption-side:top!important}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]:after{display:block;clear:both;content:\\\"\\\"}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked-xl>tbody>tr.bottom-row,.table.b-table.b-table-stacked-xl>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-xl>tbody>tr>:first-child,.table.b-table.b-table-stacked-xl>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-xl>tbody>tr>[rowspan]+th{border-top-width:3px}}.table.b-table.b-table-stacked{display:block;width:100%}.table.b-table.b-table-stacked>caption,.table.b-table.b-table-stacked>tbody,.table.b-table.b-table-stacked>tbody>tr,.table.b-table.b-table-stacked>tbody>tr>td,.table.b-table.b-table-stacked>tbody>tr>th{display:block}.table.b-table.b-table-stacked>tfoot,.table.b-table.b-table-stacked>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked>thead,.table.b-table.b-table-stacked>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked>caption{caption-side:top!important}.table.b-table.b-table-stacked>tbody>tr>[data-label]:before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 .5rem 0 0;margin:0}.table.b-table.b-table-stacked>tbody>tr>[data-label]:after{display:block;clear:both;content:\\\"\\\"}.table.b-table.b-table-stacked>tbody>tr>[data-label]>div{display:inline-block;width:60%;padding:0 0 0 .5rem;margin:0}.table.b-table.b-table-stacked>tbody>tr.bottom-row,.table.b-table.b-table-stacked>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked>tbody>tr>:first-child,.table.b-table.b-table-stacked>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked>tbody>tr>[rowspan]+th{border-top-width:3px}.b-time{min-width:150px}.b-time[aria-disabled=true] output,.b-time[aria-readonly=true] output,.b-time output.disabled{background-color:#e9ecef;opacity:1}.b-time[aria-disabled=true] output{pointer-events:none}[dir=rtl] .b-time>.d-flex:not(.flex-column){flex-direction:row-reverse}.b-time .b-time-header{margin-bottom:.5rem}.b-time .b-time-header output{padding:.25rem;font-size:80%}.b-time .b-time-footer{margin-top:.5rem}.b-time .b-time-ampm{margin-left:.5rem}.b-toast{display:block;position:relative;max-width:350px;-webkit-backface-visibility:hidden;backface-visibility:hidden;background-clip:padding-box;z-index:1;border-radius:.25rem}.b-toast .toast{background-color:hsla(0,0%,100%,.85)}.b-toast:not(:last-child){margin-bottom:.75rem}.b-toast.b-toast-solid .toast{background-color:#fff}.b-toast .toast{opacity:1}.b-toast .toast.fade:not(.show){opacity:0}.b-toast .toast .toast-body{display:block}.b-toast-primary .toast{background-color:rgba(230,242,255,.85);border-color:rgba(184,218,255,.85);color:#004085}.b-toast-primary .toast .toast-header{color:#004085;background-color:rgba(204,229,255,.85);border-bottom-color:rgba(184,218,255,.85)}.b-toast-primary.b-toast-solid .toast{background-color:#e6f2ff}.b-toast-secondary .toast{background-color:rgba(239,240,241,.85);border-color:rgba(214,216,219,.85);color:#383d41}.b-toast-secondary .toast .toast-header{color:#383d41;background-color:rgba(226,227,229,.85);border-bottom-color:rgba(214,216,219,.85)}.b-toast-secondary.b-toast-solid .toast{background-color:#eff0f1}.b-toast-success .toast{background-color:rgba(230,245,233,.85);border-color:rgba(195,230,203,.85);color:#155724}.b-toast-success .toast .toast-header{color:#155724;background-color:rgba(212,237,218,.85);border-bottom-color:rgba(195,230,203,.85)}.b-toast-success.b-toast-solid .toast{background-color:#e6f5e9}.b-toast-info .toast{background-color:rgba(229,244,247,.85);border-color:rgba(190,229,235,.85);color:#0c5460}.b-toast-info .toast .toast-header{color:#0c5460;background-color:rgba(209,236,241,.85);border-bottom-color:rgba(190,229,235,.85)}.b-toast-info.b-toast-solid .toast{background-color:#e5f4f7}.b-toast-warning .toast{background-color:rgba(255,249,231,.85);border-color:rgba(255,238,186,.85);color:#856404}.b-toast-warning .toast .toast-header{color:#856404;background-color:rgba(255,243,205,.85);border-bottom-color:rgba(255,238,186,.85)}.b-toast-warning.b-toast-solid .toast{background-color:#fff9e7}.b-toast-danger .toast{background-color:rgba(252,237,238,.85);border-color:rgba(245,198,203,.85);color:#721c24}.b-toast-danger .toast .toast-header{color:#721c24;background-color:rgba(248,215,218,.85);border-bottom-color:rgba(245,198,203,.85)}.b-toast-danger.b-toast-solid .toast{background-color:#fcedee}.b-toast-light .toast{background-color:hsla(0,0%,100%,.85);border-color:rgba(253,253,254,.85);color:#818182}.b-toast-light .toast .toast-header{color:#818182;background-color:hsla(0,0%,99.6%,.85);border-bottom-color:rgba(253,253,254,.85)}.b-toast-light.b-toast-solid .toast{background-color:#fff}.b-toast-dark .toast{background-color:rgba(227,229,229,.85);border-color:rgba(198,200,202,.85);color:#1b1e21}.b-toast-dark .toast .toast-header{color:#1b1e21;background-color:rgba(214,216,217,.85);border-bottom-color:rgba(198,200,202,.85)}.b-toast-dark.b-toast-solid .toast{background-color:#e3e5e5}.b-toaster{z-index:1100}.b-toaster .b-toaster-slot{position:relative;display:block}.b-toaster .b-toaster-slot:empty{display:none!important}.b-toaster.b-toaster-bottom-center,.b-toaster.b-toaster-bottom-full,.b-toaster.b-toaster-bottom-left,.b-toaster.b-toaster-bottom-right,.b-toaster.b-toaster-top-center,.b-toaster.b-toaster-top-full,.b-toaster.b-toaster-top-left,.b-toaster.b-toaster-top-right{position:fixed;left:.5rem;right:.5rem;margin:0;padding:0;height:0;overflow:visible}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{position:absolute;max-width:350px;width:100%;left:0;right:0;padding:0;margin:0}.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast,.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast,.b-toaster.b-toaster-top-full .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast,.b-toaster.b-toaster-top-full .b-toaster-slot .toast{width:100%;max-width:100%}.b-toaster.b-toaster-top-center,.b-toaster.b-toaster-top-full,.b-toaster.b-toaster-top-left,.b-toaster.b-toaster-top-right{top:0}.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{top:.5rem}.b-toaster.b-toaster-bottom-center,.b-toaster.b-toaster-bottom-full,.b-toaster.b-toaster-bottom-left,.b-toaster.b-toaster-bottom-right{bottom:0}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot{bottom:.5rem}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{margin-left:auto}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot{margin-right:auto}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-move,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-move{transition:transform .175s}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade{transition-delay:.175s}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active{position:absolute;transition-delay:.175s}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade{transition-delay:0s}.tooltip.b-tooltip{display:block;opacity:.9;outline:0}.tooltip.b-tooltip.fade:not(.show){opacity:0}.tooltip.b-tooltip.show{opacity:.9}.tooltip.b-tooltip.noninteractive{pointer-events:none}.tooltip.b-tooltip .arrow{margin:0 .25rem}.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.bs-tooltip-left .arrow,.tooltip.b-tooltip.bs-tooltip-right .arrow{margin:.25rem 0}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-primary.bs-tooltip-top .arrow:before{border-top-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-primary.bs-tooltip-right .arrow:before{border-right-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow:before{border-bottom-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-primary.bs-tooltip-left .arrow:before{border-left-color:#007bff}.tooltip.b-tooltip-primary .tooltip-inner{color:#fff;background-color:#007bff}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow:before{border-top-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow:before{border-right-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow:before{border-bottom-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow:before{border-left-color:#6c757d}.tooltip.b-tooltip-secondary .tooltip-inner{color:#fff;background-color:#6c757d}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-success.bs-tooltip-top .arrow:before{border-top-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-success.bs-tooltip-right .arrow:before{border-right-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow:before{border-bottom-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-success.bs-tooltip-left .arrow:before{border-left-color:#28a745}.tooltip.b-tooltip-success .tooltip-inner{color:#fff;background-color:#28a745}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-info.bs-tooltip-top .arrow:before{border-top-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-info.bs-tooltip-right .arrow:before{border-right-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow:before{border-bottom-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-info.bs-tooltip-left .arrow:before{border-left-color:#17a2b8}.tooltip.b-tooltip-info .tooltip-inner{color:#fff;background-color:#17a2b8}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-warning.bs-tooltip-top .arrow:before{border-top-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-warning.bs-tooltip-right .arrow:before{border-right-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow:before{border-bottom-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-warning.bs-tooltip-left .arrow:before{border-left-color:#ffc107}.tooltip.b-tooltip-warning .tooltip-inner{color:#212529;background-color:#ffc107}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-danger.bs-tooltip-top .arrow:before{border-top-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-danger.bs-tooltip-right .arrow:before{border-right-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow:before{border-bottom-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-danger.bs-tooltip-left .arrow:before{border-left-color:#dc3545}.tooltip.b-tooltip-danger .tooltip-inner{color:#fff;background-color:#dc3545}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-light.bs-tooltip-top .arrow:before{border-top-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-light.bs-tooltip-right .arrow:before{border-right-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow:before{border-bottom-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-light.bs-tooltip-left .arrow:before{border-left-color:#f8f9fa}.tooltip.b-tooltip-light .tooltip-inner{color:#212529;background-color:#f8f9fa}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=top] .arrow:before,.tooltip.b-tooltip-dark.bs-tooltip-top .arrow:before{border-top-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow:before,.tooltip.b-tooltip-dark.bs-tooltip-right .arrow:before{border-right-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow:before{border-bottom-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow:before,.tooltip.b-tooltip-dark.bs-tooltip-left .arrow:before{border-left-color:#343a40}.tooltip.b-tooltip-dark .tooltip-inner{color:#fff;background-color:#343a40}.b-icon.bi{display:inline-block;overflow:visible;vertical-align:-.15em}.b-icon.b-icon-animation-cylon,.b-icon.b-iconstack .b-icon-animation-cylon>g{transform-origin:center;-webkit-animation:b-icon-animation-cylon .75s ease-in-out infinite alternate;animation:b-icon-animation-cylon .75s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-cylon,.b-icon.b-iconstack .b-icon-animation-cylon>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-cylon-vertical,.b-icon.b-iconstack .b-icon-animation-cylon-vertical>g{transform-origin:center;-webkit-animation:b-icon-animation-cylon-vertical .75s ease-in-out infinite alternate;animation:b-icon-animation-cylon-vertical .75s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-cylon-vertical,.b-icon.b-iconstack .b-icon-animation-cylon-vertical>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-fade,.b-icon.b-iconstack .b-icon-animation-fade>g{transform-origin:center;-webkit-animation:b-icon-animation-fade .75s ease-in-out infinite alternate;animation:b-icon-animation-fade .75s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-fade,.b-icon.b-iconstack .b-icon-animation-fade>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin,.b-icon.b-iconstack .b-icon-animation-spin>g{transform-origin:center;-webkit-animation:b-icon-animation-spin 2s linear infinite normal;animation:b-icon-animation-spin 2s linear infinite normal}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin,.b-icon.b-iconstack .b-icon-animation-spin>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-reverse,.b-icon.b-iconstack .b-icon-animation-spin-reverse>g{transform-origin:center;animation:b-icon-animation-spin 2s linear infinite reverse}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-reverse,.b-icon.b-iconstack .b-icon-animation-spin-reverse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-pulse,.b-icon.b-iconstack .b-icon-animation-spin-pulse>g{transform-origin:center;-webkit-animation:b-icon-animation-spin 1s steps(8) infinite normal;animation:b-icon-animation-spin 1s steps(8) infinite normal}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-pulse,.b-icon.b-iconstack .b-icon-animation-spin-pulse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-reverse-pulse,.b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse>g{transform-origin:center;animation:b-icon-animation-spin 1s steps(8) infinite reverse}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-reverse-pulse,.b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-throb,.b-icon.b-iconstack .b-icon-animation-throb>g{transform-origin:center;-webkit-animation:b-icon-animation-throb .75s ease-in-out infinite alternate;animation:b-icon-animation-throb .75s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-throb,.b-icon.b-iconstack .b-icon-animation-throb>g{-webkit-animation:none;animation:none}}@-webkit-keyframes b-icon-animation-cylon{0%{transform:translateX(-25%)}to{transform:translateX(25%)}}@keyframes b-icon-animation-cylon{0%{transform:translateX(-25%)}to{transform:translateX(25%)}}@-webkit-keyframes b-icon-animation-cylon-vertical{0%{transform:translateY(25%)}to{transform:translateY(-25%)}}@keyframes b-icon-animation-cylon-vertical{0%{transform:translateY(25%)}to{transform:translateY(-25%)}}@-webkit-keyframes b-icon-animation-fade{0%{opacity:.1}to{opacity:1}}@keyframes b-icon-animation-fade{0%{opacity:.1}to{opacity:1}}@-webkit-keyframes b-icon-animation-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes b-icon-animation-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@-webkit-keyframes b-icon-animation-throb{0%{opacity:.5;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes b-icon-animation-throb{0%{opacity:.5;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.btn .b-icon.bi,.dropdown-item .b-icon.bi,.dropdown-toggle .b-icon.bi,.input-group-text .b-icon.bi,.nav-link .b-icon.bi{font-size:125%;vertical-align:text-bottom}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n    (function standardBrowserEnv() {\n      return {\n        write: function write(name, value, expires, path, domain, secure) {\n          var cookie = [];\n          cookie.push(name + '=' + encodeURIComponent(value));\n\n          if (utils.isNumber(expires)) {\n            cookie.push('expires=' + new Date(expires).toGMTString());\n          }\n\n          if (utils.isString(path)) {\n            cookie.push('path=' + path);\n          }\n\n          if (utils.isString(domain)) {\n            cookie.push('domain=' + domain);\n          }\n\n          if (secure === true) {\n            cookie.push('secure');\n          }\n\n          document.cookie = cookie.join('; ');\n        },\n\n        read: function read(name) {\n          var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n          return (match ? decodeURIComponent(match[3]) : null);\n        },\n\n        remove: function remove(name) {\n          this.write(name, '', Date.now() - 86400000);\n        }\n      };\n    })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return {\n        write: function write() {},\n        read: function read() { return null; },\n        remove: function remove() {}\n      };\n    })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return function(value, opt, opts) {\n    if (validator === false) {\n      throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new TypeError('options must be an object');\n  }\n  var keys = Object.keys(options);\n  var i = keys.length;\n  while (i-- > 0) {\n    var opt = keys[i];\n    var validator = schema[opt];\n    if (validator) {\n      var value = options[opt];\n      var result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new TypeError('option ' + opt + ' must be ' + result);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw Error('Unknown option ' + opt);\n    }\n  }\n}\n\nmodule.exports = {\n  assertOptions: assertOptions,\n  validators: validators\n};\n","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define([], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    module.exports = factory();\n  } else {\n    root.getCurrentScript = factory();\n  }\n}(typeof self !== 'undefined' ? self : this, function () {\n  function getCurrentScript () {\n    var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n    // for chrome\n    if (!descriptor && 'currentScript' in document && document.currentScript) {\n      return document.currentScript\n    }\n\n    // for other browsers with native support for currentScript\n    if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n      return document.currentScript\n    }\n  \n    // IE 8-10 support script readyState\n    // IE 11+ & Firefox support stack trace\n    try {\n      throw new Error();\n    }\n    catch (err) {\n      // Find the second match for the \"at\" string to get file src url from stack.\n      var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n        ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n        stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n        scriptLocation = (stackDetails && stackDetails[1]) || false,\n        line = (stackDetails && stackDetails[2]) || false,\n        currentLocation = document.location.href.replace(document.location.hash, ''),\n        pageSource,\n        inlineScriptSourceRegExp,\n        inlineScriptSource,\n        scripts = document.getElementsByTagName('script'); // Live NodeList collection\n  \n      if (scriptLocation === currentLocation) {\n        pageSource = document.documentElement.outerHTML;\n        inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*<script>([\\\\d\\\\D]*?)<\\\\/script>[\\\\d\\\\D]*', 'i');\n        inlineScriptSource = pageSource.replace(inlineScriptSourceRegExp, '$1').trim();\n      }\n  \n      for (var i = 0; i < scripts.length; i++) {\n        // If ready state is interactive, return the script tag\n        if (scripts[i].readyState === 'interactive') {\n          return scripts[i];\n        }\n  \n        // If src matches, return the script tag\n        if (scripts[i].src === scriptLocation) {\n          return scripts[i];\n        }\n  \n        // If inline source matches, return the script tag\n        if (\n          scriptLocation === currentLocation &&\n          scripts[i].innerHTML &&\n          scripts[i].innerHTML.trim() === inlineScriptSource\n        ) {\n          return scripts[i];\n        }\n      }\n  \n      // If no match, return null\n      return null;\n    }\n  };\n\n  return getCurrentScript\n}));\n","module.exports = Vue;","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n\n  // eslint-disable-next-line func-names\n  this.promise.then(function(cancel) {\n    if (!token._listeners) return;\n\n    var i;\n    var l = token._listeners.length;\n\n    for (i = 0; i < l; i++) {\n      token._listeners[i](cancel);\n    }\n    token._listeners = null;\n  });\n\n  // eslint-disable-next-line func-names\n  this.promise.then = function(onfulfilled) {\n    var _resolve;\n    // eslint-disable-next-line func-names\n    var promise = new Promise(function(resolve) {\n      token.subscribe(resolve);\n      _resolve = resolve;\n    }).then(onfulfilled);\n\n    promise.cancel = function reject() {\n      token.unsubscribe(_resolve);\n    };\n\n    return promise;\n  };\n\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n  if (this.reason) {\n    listener(this.reason);\n    return;\n  }\n\n  if (this._listeners) {\n    this._listeners.push(listener);\n  } else {\n    this._listeners = [listener];\n  }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n  if (!this._listeners) {\n    return;\n  }\n  var index = this._listeners.indexOf(listener);\n  if (index !== -1) {\n    this._listeners.splice(index, 1);\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../../postcss-loader/src/index.js??ref--7-oneOf-3-2!../../../postcss-loader/src/index.js??ref--7-oneOf-3-3!./bootstrap.min.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add CSS to Shadow Root\nvar add = require(\"!../../../vue-style-loader/lib/addStylesShadow.js\").default\nmodule.exports.__inject__ = function (shadowRoot) {\n  add(\"b3e30f2e\", content, shadowRoot)\n};","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n    var responseType = config.responseType;\n    var onCanceled;\n    function done() {\n      if (config.cancelToken) {\n        config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (config.signal) {\n        config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !responseType || responseType === 'text' ||  responseType === 'json' ?\n        request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n      var transitional = config.transitional || defaults.transitional;\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(createError(\n        timeoutErrorMessage,\n        config,\n        transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n        cookies.read(config.xsrfCookieName) :\n        undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken || config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = function(cancel) {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n        request.abort();\n        request = null;\n      };\n\n      config.cancelToken && config.cancelToken.subscribe(onCanceled);\n      if (config.signal) {\n        config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    if (!requestData) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/*!\\n * Bootstrap v4.6.1 (https://getbootstrap.com/)\\n * Copyright 2011-2021 The Bootstrap Authors\\n * Copyright 2011-2021 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,\\\"Noto Sans\\\",\\\"Liberation Sans\\\",sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\\\"-1\\\"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\\\"\\\\2014\\\\00A0\\\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem)!important;background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important;background:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\\\") right .75rem center/8px 10px no-repeat,#fff url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\\\") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important;background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important;background:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\\\") right .75rem center/8px 10px no-repeat,#fff url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E\\\") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label:after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label:after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\\\"\\\"}.custom-control-label:after{background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\\\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\\\") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\\\"1\\\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\\\"Browse\\\"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);overflow:hidden;font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:\\\"Browse\\\";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\\\"\\\";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-moz-column-count:3;column-count:3;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:.5rem;color:#6c757d;content:\\\"/\\\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:\\\"\\\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\\\"\\\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\\\"\\\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E\\\")}.carousel-control-next-icon{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E\\\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\\\"\\\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\\\"\\\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!imp